<?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>205802</bug_id>
          
          <creation_ts>2020-01-06 08:13:03 -0800</creation_ts>
          <short_desc>Implement MediaRecorder backend in GPUProcess</short_desc>
          <delta_ts>2020-01-08 04:45:14 -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>WebRTC</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>205868</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>philipj</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1603043</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-06 08:13:03 -0800</bug_when>
    <thetext>Implement MediaRecorder backend in GPUProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603045</commentid>
    <comment_count>1</comment_count>
      <attachid>386846</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-06 08:16:29 -0800</bug_when>
    <thetext>Created attachment 386846
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603050</commentid>
    <comment_count>2</comment_count>
      <attachid>386848</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-06 08:33:59 -0800</bug_when>
    <thetext>Created attachment 386848
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603066</commentid>
    <comment_count>3</comment_count>
      <attachid>386851</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-06 08:55:06 -0800</bug_when>
    <thetext>Created attachment 386851
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603077</commentid>
    <comment_count>4</comment_count>
      <attachid>386853</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-06 09:16:17 -0800</bug_when>
    <thetext>Created attachment 386853
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603456</commentid>
    <comment_count>5</comment_count>
      <attachid>386936</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-06 23:16:32 -0800</bug_when>
    <thetext>Created attachment 386936
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603465</commentid>
    <comment_count>6</comment_count>
      <attachid>386942</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-06 23:55:47 -0800</bug_when>
    <thetext>Created attachment 386942
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603473</commentid>
    <comment_count>7</comment_count>
      <attachid>386946</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-07 00:22:23 -0800</bug_when>
    <thetext>Created attachment 386946
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603514</commentid>
    <comment_count>8</comment_count>
      <attachid>386957</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-07 03:13:21 -0800</bug_when>
    <thetext>Created attachment 386957
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603528</commentid>
    <comment_count>9</comment_count>
      <attachid>386961</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-07 05:00:28 -0800</bug_when>
    <thetext>Created attachment 386961
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603535</commentid>
    <comment_count>10</comment_count>
      <attachid>386961</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-01-07 06:04:00 -0800</bug_when>
    <thetext>Comment on attachment 386961
Patch

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

&gt; Source/WebCore/testing/Internals.cpp:555
&gt; +    page.mediaRecorderProvider().setUseGPUProcess(true);

Is this the correct default?

&gt; Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:153
&gt; +#if PLATFORM(COCOA) &amp;&amp; USE(LIBWEBRTC)

Should this be &quot;#if PLATFORM(COCOA) &amp;&amp; ENABLE(MEDIA_STREAM&quot;?

&gt; Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:181
&gt; +    if (decoder.messageReceiverName() == Messages::RemoteMediaRecorders::messageReceiverName()) {
&gt; +        mediaRecorders().didReceiveMessageFromWebProcess(connection, decoder);
&gt; +        return;
&gt; +    }
&gt; +    if (decoder.messageReceiverName() == Messages::RemoteMediaRecorder::messageReceiverName()) {

&quot;RemoteMediaRecorders&quot; is a bit subtle and easy to confuse with &quot;RemoteMediaRecorder&quot;. Maybe something like &quot;RemoteMediaRecorderManager&quot; instead?

&gt; Source/WebKit/WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:52
&gt; +    // FIXME: We would better to throw an exception to JavaScript if writer creation fails.

s/We would better to throw an exception/We should throw an exception/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603536</commentid>
    <comment_count>11</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-07 06:10:15 -0800</bug_when>
    <thetext>(In reply to Eric Carlson from comment #10)
&gt; Comment on attachment 386961 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=386961&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/testing/Internals.cpp:555
&gt; &gt; +    page.mediaRecorderProvider().setUseGPUProcess(true);
&gt; 
&gt; Is this the correct default?

I think so, I am not sure we will enable MediaRecorder by default without GPUProcess.

&gt; 
&gt; &gt; Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:153
&gt; &gt; +#if PLATFORM(COCOA) &amp;&amp; USE(LIBWEBRTC)
&gt; 
&gt; Should this be &quot;#if PLATFORM(COCOA) &amp;&amp; ENABLE(MEDIA_STREAM&quot;?

Right.

&gt; &gt; Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:181
&gt; &gt; +    if (decoder.messageReceiverName() == Messages::RemoteMediaRecorders::messageReceiverName()) {
&gt; &gt; +        mediaRecorders().didReceiveMessageFromWebProcess(connection, decoder);
&gt; &gt; +        return;
&gt; &gt; +    }
&gt; &gt; +    if (decoder.messageReceiverName() == Messages::RemoteMediaRecorder::messageReceiverName()) {
&gt; 
&gt; &quot;RemoteMediaRecorders&quot; is a bit subtle and easy to confuse with
&gt; &quot;RemoteMediaRecorder&quot;. Maybe something like &quot;RemoteMediaRecorderManager&quot;
&gt; instead?

OK, will go with manager.

&gt; &gt; Source/WebKit/WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:52
&gt; &gt; +    // FIXME: We would better to throw an exception to JavaScript if writer creation fails.
&gt; 
&gt; s/We would better to throw an exception/We should throw an exception/

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603541</commentid>
    <comment_count>12</comment_count>
      <attachid>386961</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-07 06:15:53 -0800</bug_when>
    <thetext>Comment on attachment 386961
Patch

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

&gt;&gt;&gt; Source/WebKit/WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:52
&gt;&gt;&gt; +    // FIXME: We would better to throw an exception to JavaScript if writer creation fails.
&gt;&gt; 
&gt;&gt; s/We would better to throw an exception/We should throw an exception/
&gt; 
&gt; OK

Actually, I implemented it now using m_errorCallback, will remove this FIXME.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603543</commentid>
    <comment_count>13</comment_count>
      <attachid>386965</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-07 06:37:07 -0800</bug_when>
    <thetext>Created attachment 386965
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603548</commentid>
    <comment_count>14</comment_count>
      <attachid>386966</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-07 07:11:50 -0800</bug_when>
    <thetext>Created attachment 386966
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603554</commentid>
    <comment_count>15</comment_count>
      <attachid>386968</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-07 07:30:42 -0800</bug_when>
    <thetext>Created attachment 386968
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603594</commentid>
    <comment_count>16</comment_count>
      <attachid>386968</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-07 09:08:11 -0800</bug_when>
    <thetext>Comment on attachment 386968
Patch for landing

Clearing flags on attachment: 386968

Committed r254132: &lt;https://trac.webkit.org/changeset/254132&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603595</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-07 09:08:13 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603596</commentid>
    <comment_count>18</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-07 09:09:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/58376117&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603625</commentid>
    <comment_count>19</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-01-07 10:12:11 -0800</bug_when>
    <thetext>This broke WinCairo, as indicated by EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603627</commentid>
    <comment_count>20</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-07 10:13:38 -0800</bug_when>
    <thetext>(In reply to Ross Kirsling from comment #19)
&gt; This broke WinCairo, as indicated by EWS.

I did not see it :(
Will fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603630</commentid>
    <comment_count>21</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-01-07 10:15:11 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #20)
&gt; (In reply to Ross Kirsling from comment #19)
&gt; &gt; This broke WinCairo, as indicated by EWS.
&gt; 
&gt; I did not see it :(
&gt; Will fix it.

No worries -- thanks Youenn!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603635</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-07 10:29:36 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 205868</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604025</commentid>
    <comment_count>23</comment_count>
      <attachid>387091</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-08 03:06:59 -0800</bug_when>
    <thetext>Created attachment 387091
Build fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604039</commentid>
    <comment_count>24</comment_count>
      <attachid>387091</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-08 04:45:12 -0800</bug_when>
    <thetext>Comment on attachment 387091
Build fixes

Clearing flags on attachment: 387091

Committed r254194: &lt;https://trac.webkit.org/changeset/254194&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604040</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-08 04:45:14 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386846</attachid>
            <date>2020-01-06 08:16:29 -0800</date>
            <delta_ts>2020-01-06 08:33:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205802-20200106171628.patch</filename>
            <type>text/plain</type>
            <size>91363</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTY1NWRkZmQ4ZWEzZmM5
YWIyYjQ0ODhjZjJhNjQ2ODU3YWFmZGQ5MC4uZWJhMzNhMjcyNjc3NWQ1YTI0YjFhYjZjZjJhMmYw
N2VlNDBhZGFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIwLTAxLTA2ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgTWVkaWFS
ZWNvcmRlciBiYWNrZW5kIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTgwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMgYXMgTWVkaWFS
ZWNvcmRlciBpbXBsZW1lbnRhdGlvbiBpbiBXZWJLaXRUZXN0UnVubmVyIHdpbGwgdXNlIEdQVVBy
b2Nlc3MuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUpOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmg6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29y
ZGVyUHJpdmF0ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3Jk
ZXJQcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGlu
LmNwcDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAg
ICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAg
ICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Om1lZGlhUmVjb3Jk
ZXJQcm92aWRlcik6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOgorICAg
ICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
cjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVBy
aXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZS5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnRlcm5hbHM6OnNldFVzZUdQVVByb2Nlc3NGb3JXZWJSVEMpOgorCiAyMDIwLTAxLTA2
ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBYTUxIVFRQUmVx
dWVzdCBQT1NUcyBibG9iIGRhdGEgdG8gYSBjdXN0b20gV0tVUkxTY2hlbWVIYW5kbGVyIHByb3Rv
Y29sIGNyYXNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ0N2VkMzAyODY1OWY3OWJkZWE3N2I2ZWY4NGFmZThhZTc0
YWE2Y2IuLjk0MGEzZjIyZGJjMmFiODYxMjg1YWVkMmUzNTA3YTYyYTAxMzIwMzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNjMgQEAKKzIwMjAtMDEtMDYgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBNZWRpYVJlY29yZGVyIGJhY2tlbmQgaW4gR1BV
UHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA1ODAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6dXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
Om1lZGlhUmVjb3JkZXJzKToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWFjL2NvbS5hcHBsZS5X
ZWJLaXQuR1BVUHJvY2Vzcy5zYi5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVNZWRpYVJlY29yZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UmVjb3JkZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXI6
OlJlbW90ZU1lZGlhUmVjb3JkZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29y
ZGVyOjp+UmVtb3RlTWVkaWFSZWNvcmRlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UmVjb3JkZXI6OnN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVy
OjphdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUmVjb3JkZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUmVjb3JkZXI6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6ZmV0Y2hEYXRhKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFSZWNvcmRlcjo6c3RvcFJlY29yZGluZyk6CisgICAgICAgICogR1BVUHJvY2Vzcy93
ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAg
KiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyczo6UmVtb3RlTWVkaWFSZWNvcmRlcnMp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyczo6flJlbW90ZU1lZGlhUmVj
b3JkZXJzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcnM6OmRpZFJlY2Vp
dmVSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUmVjb3JkZXJzOjpjcmVhdGVSZWNvcmRlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUmVjb3JkZXJzOjpyZWxlYXNlUmVjb3JkZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJzLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVJlY29yZGVyczo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vzcyk6CisgICAg
ICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMubWVzc2FnZXMuaW46
IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAq
IFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaDogQWRk
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJJZGVudGlm
aWVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29y
ZGVyUHJpdmF0ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJp
dmF0ZTo6TWVkaWFSZWNvcmRlclByaXZhdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29y
ZGVyUHJpdmF0ZTo6fk1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVk
aWFSZWNvcmRlclByaXZhdGU6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQpOgorICAgICAgICAoV2ViS2l0
OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6OnN0b3JhZ2VDaGFuZ2VkKToKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6OmZldGNoRGF0YSk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdG9wUmVjb3JkaW5nKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaDogQWRkZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVj
b3JkZXJQcml2YXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNv
cmRlclByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9vdmVycmlkZGVuTWVkaWFUeXBlKToKKwogMjAy
MC0wMS0wNSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTWVkaWEgaW4gR1BVIHByb2Nlc3NdIEFkZCByZW1vdGUgTUlNRSB0eXBlIGNhY2hlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNDRhZjI4NmU0M2MwOTFhYjg0OGMxNDA4MzY2Y2U2
OWZjZmZmNTZjZS4uNWU0MmY1N2ZmNTRmNjkwOTBiNWRjZWVlNGY1NzBmMGY5ZDU2OGNmMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAxLTA2ICB5
b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgTWVk
aWFSZWNvcmRlciBiYWNrZW5kIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTgwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAo
LVtXZWJWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6Z3JvdXBOYW1lOl0p
OgorICAgICAgICAoLVtXZWJWaWV3IGluaXRTaW1wbGVIVE1MRG9jdW1lbnRXaXRoU3R5bGU6ZnJh
bWU6cHJlZmVyZW5jZXM6Z3JvdXBOYW1lOl0pOgorCiAyMDIwLTAxLTA1ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBhIHNvdWNlIG9mIFdlYktp
dDEgdGVzdCBmbGFraW5lc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcAppbmRleCA5OTFlYTJhMGYzZDIyNDRkZjFlOGVl
MjdmNzkwODZkM2VjNDNkNmYwLi5hZGYzNTA0ODg3YTIzNzE3N2E0ZDlkNmZhYTljN2YzYTMxMzJk
MjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXIuY3BwCkBAIC0zNCw2ICszNCw4IEBACiAjaW5jbHVkZSAiRXZlbnROYW1l
cy5oIgogI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmgiCiAjaW5jbHVkZSAiTWVk
aWFSZWNvcmRlclByaXZhdGUuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCIK
KyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAi
V2luZG93RXZlbnRMb29wLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KQEAg
LTUwLDcgKzUyLDcgQEAgY3JlYXRvckZ1bmN0aW9uIE1lZGlhUmVjb3JkZXI6Om1fY3VzdG9tQ3Jl
YXRvciA9IG51bGxwdHI7CiAKIEV4Y2VwdGlvbk9yPFJlZjxNZWRpYVJlY29yZGVyPj4gTWVkaWFS
ZWNvcmRlcjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgUmVmPE1lZGlhU3RyZWFtPiYmIHN0
cmVhbSwgT3B0aW9ucyYmIG9wdGlvbnMpCiB7Ci0gICAgYXV0byBwcml2YXRlSW5zdGFuY2UgPSBN
ZWRpYVJlY29yZGVyOjpnZXRQcml2YXRlSW1wbChzdHJlYW0tPnByaXZhdGVTdHJlYW0oKSk7Cisg
ICAgYXV0byBwcml2YXRlSW5zdGFuY2UgPSBNZWRpYVJlY29yZGVyOjpjcmVhdGVNZWRpYVJlY29y
ZGVyUHJpdmF0ZShkb2N1bWVudCwgc3RyZWFtLT5wcml2YXRlU3RyZWFtKCkpOwogICAgIGlmICgh
cHJpdmF0ZUluc3RhbmNlKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVk
RXJyb3IsICJUaGUgTWVkaWFSZWNvcmRlciBpcyB1bnN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3Jt
Il9zIH07CiAgICAgYXV0byByZWNvcmRlciA9IGFkb3B0UmVmKCpuZXcgTWVkaWFSZWNvcmRlcihk
b2N1bWVudCwgV1RGTW92ZShzdHJlYW0pLCBXVEZNb3ZlKHByaXZhdGVJbnN0YW5jZSksIFdURk1v
dmUob3B0aW9ucykpKTsKQEAgLTYzLDE3ICs2NSwxNiBAQCB2b2lkIE1lZGlhUmVjb3JkZXI6OnNl
dEN1c3RvbVByaXZhdGVSZWNvcmRlckNyZWF0b3IoY3JlYXRvckZ1bmN0aW9uIGNyZWF0b3IpCiAg
ICAgbV9jdXN0b21DcmVhdG9yID0gY3JlYXRvcjsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPE1lZGlh
UmVjb3JkZXJQcml2YXRlPiBNZWRpYVJlY29yZGVyOjpnZXRQcml2YXRlSW1wbChjb25zdCBNZWRp
YVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJp
dmF0ZT4gTWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoRG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBpZiAo
bV9jdXN0b21DcmVhdG9yKQogICAgICAgICByZXR1cm4gbV9jdXN0b21DcmVhdG9yKCk7CiAgICAg
Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgcmV0dXJuIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZG
SW1wbDo6Y3JlYXRlKHN0cmVhbSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzdHJlYW0pOwot
ICAgIHJldHVybiBudWxscHRyOwotI2VuZGlmCisgICAgYXV0byogcGFnZSA9IGRvY3VtZW50LnBh
Z2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0
dXJuIHBhZ2UtPm1lZGlhUmVjb3JkZXJQcm92aWRlcigpLmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2
YXRlKHN0cmVhbSk7CiB9CiAKIE1lZGlhUmVjb3JkZXI6Ok1lZGlhUmVjb3JkZXIoRG9jdW1lbnQm
IGRvY3VtZW50LCBSZWY8TWVkaWFTdHJlYW0+JiYgc3RyZWFtLCBzdGQ6OnVuaXF1ZV9wdHI8TWVk
aWFSZWNvcmRlclByaXZhdGU+JiYgcHJpdmF0ZUltcGwsIE9wdGlvbnMmJiBvcHRpb24pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRl
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIu
aAppbmRleCBlYjZmOTZhNmFlMGEzOWJhMTBiNTIwYmI5OGNjNGVlMWI1MzkzNzQ0Li4wNjM5NTJh
OTY3ZGFjMjJhMjc0ZjU0N2FlNGNiY2FlMmNlNmRhZDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKQEAgLTc1LDcgKzc1
LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBNZWRpYVJlY29yZGVyKERvY3VtZW50JiwgUmVm
PE1lZGlhU3RyZWFtPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+JiYs
IE9wdGlvbnMmJiA9IHsgfSk7CiAKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVj
b3JkZXJQcml2YXRlPiBnZXRQcml2YXRlSW1wbChjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmKTsK
KyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBjcmVhdGVN
ZWRpYVJlY29yZGVyUHJpdmF0ZShEb2N1bWVudCYsIGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYp
OwogICAgIAogICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
UHJvdmlkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ZWM1ZWE5YzA1NmYyZDc5N2YzZTFkNDg4ODE0NWVj
YjFkNjBjYjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92
aWRlci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclBy
aXZhdGVBVkZJbXBsLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGQ6OnVu
aXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IE1lZGlhUmVjb3JkZXJQcm92aWRlcjo6Y3Jl
YXRlTWVkaWFSZWNvcmRlclByaXZhdGUoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0p
Cit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgcmV0dXJuIE1lZGlhUmVjb3JkZXJQcml2YXRl
QVZGSW1wbDo6Y3JlYXRlKHN0cmVhbSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShzdHJlYW0p
OworICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlk
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42MDJkMGU3MjVmZDMxNmI0NDUyNjA1NmJmY2EzZDVhOGRlMTgzMmUz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXJQcm92aWRlci5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVJlY29yZGVy
UHJpdmF0ZTsKK2NsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZTsKKworY2xhc3MgV0VCQ09SRV9FWFBP
UlQgTWVkaWFSZWNvcmRlclByb3ZpZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4gY3Jl
YXRlKCkgeyByZXR1cm4gbWFrZVVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCk7IH0K
KyAgICB2aXJ0dWFsIH5NZWRpYVJlY29yZGVyUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CisKKyAgICB2
aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlTWVkaWFS
ZWNvcmRlclByaXZhdGUoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJik7CisKKyAgICB2b2lkIHNl
dFVzZUdQVVByb2Nlc3MoYm9vbCB2YWx1ZSkgeyBtX3VzZUdQVVByb2Nlc3MgPSB2YWx1ZTsgfQor
Citwcm90ZWN0ZWQ6CisgICAgYm9vbCBtX3VzZUdQVVByb2Nlc3MgeyBmYWxzZSB9OworfTsKKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1Bpbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmNwcAppbmRleCA3
ZjBjNjU5ZDg0ZDFiZDI3ZDJhNTZiODRiZWU5MThlZjU4MzI2YTM4Li5lMjEwYThkYjhkYTBmMjY5
NGM1YTRmNWVlZTVlNzExOWNlZjA2ODk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL2ZpZG8vUGluLmNwcApAQCAtNDEsOSArNDEsMTYgQEAKICNpbmNsdWRlICJDcnlwdG9L
ZXlBRVMuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlFQy5oIgogI2luY2x1ZGUgIkNyeXB0b0tleUhN
QUMuaCIKKyNpbmNsdWRlICJEZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oIgorI2luY2x1ZGUgIldl
YkF1dGhlbnRpY2F0aW9uQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSA8cGFsL2NyeXB0by9DcnlwdG9E
aWdlc3QuaD4KIAogbmFtZXNwYWNlIGZpZG8gewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1
c2luZyBDQk9SID0gY2Jvcjo6Q0JPUlZhbHVlOworCitjb25zdGV4cHIgc2l6ZV90IGtSZXNwb25z
ZUNvZGVMZW5ndGggPSAxOworCiBuYW1lc3BhY2UgcGluIHsKIHVzaW5nIG5hbWVzcGFjZSBjYm9y
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CmluZGV4IDkyOTdkMDQ0ZTQ0ODI3OGRiZTdjOTE2OWJiMzI2YzlkZmI3
MDQyNWIuLmVjYmI2YjA4ZGNkNjlhYjFiZGI1MTRmNDJiMjI0MTk1MWJlMzNhZTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CkBAIC0xNTEsNiArMTUxLDcgQEAgTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29u
dHJvbHNIb3N0LmNwcAogCiBNb2R1bGVzL21lZGlhcmVjb3JkZXIvQmxvYkV2ZW50LmNwcAogTW9k
dWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwCitNb2R1bGVzL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcAogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXJFcnJvckV2ZW50LmNwcAogCiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9IVE1MTWVkaWFF
bGVtZW50TWVkaWFTZXNzaW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDA3OWU5NDY5YjExZmJiZjE2N2ExNzAyMmY1OTk5
NzQwY2Y2NjFiNTguLmQzYmY2MWRmZjg3OTY3MTY0ZDUxZTIzN2M3ZjNjYjczNGIwNWU2ODAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTEwOTksNiArMTA5OSw3IEBACiAJCTQxNzYxMkIwMUUzQTk5NDAwMEMzRDgxRCAvKiBMaWJX
ZWJSVENNZWRpYUVuZHBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTc2MTJBQzFFM0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDTWVkaWFFbmRw
b2ludC5oICovOyB9OwogCQk0MTc2MTJCMTFFM0E5OTQwMDBDM0Q4MUQgLyogTGliV2ViUlRDUGVl
ckNvbm5lY3Rpb25CYWNrZW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxNzYxMkFEMUUzQTk5M0IwMEMzRDgxRCAvKiBMaWJXZWJSVENQZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3BwICovOyB9OwogCQk0MTc2MTJCMjFFM0E5OTQwMDBDM0Q4MUQgLyog
TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc2MTJBRTFFM0E5OTNCMDBDM0Q4MUQgLyogTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmggKi87IH07CisJCTQxNzZFODk2MjNDMzUzN0IwMDNF
ODNGRSAvKiBNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzZFODhGMjNDMzQ4RDIwMDNFODNGRSAvKiBNZWRpYVJl
Y29yZGVyUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0MTdEQTZEOTEzNzM0RTZFMDA3QzU3RkIgLyogSW50ZXJuYWxzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxN0RBNENGMTM3MzQz
MjYwMDdDNTdGQiAvKiBJbnRlcm5hbHMuY3BwICovOyB9OwogCQk0MTdEQTZEQTEzNzM0RTZFMDA3
QzU3RkIgLyogSW50ZXJuYWxzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTdEQTRDRTEzNzM0MzI2MDA3QzU3RkIgLyogSW50ZXJuYWxzLmggKi87IH07
CiAJCTQxN0RBNzFEMTM3MzVERkEwMDdDNTdGQiAvKiBKU0ludGVybmFscy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTdEQTcxQjEzNzM1REZBMDA3
QzU3RkIgLyogSlNJbnRlcm5hbHMuY3BwICovOyB9OwpAQCAtMTM3Miw5ICsxMzczLDkgQEAKIAkJ
NEJERUEzMkMyMTgwMzNFQjAwNTJERkNEIC8qIEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEJERUEzMkIyMTgw
MzNFQjAwNTJERkNEIC8qIEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5oICovOyB9OwogCQk0RDNC
MDBBQjIxNUQ2OUE3MDA3NkI5ODMgLyogTWVkaWFSZWNvcmRlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEQzQjAwQTkyMTVENjlBNzAwNzZCOTgzIC8q
IE1lZGlhUmVjb3JkZXIuaCAqLzsgfTsKIAkJNEQzQjAwQUYyMTVENkE2OTAwNzZCOTgzIC8qIEJs
b2JFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NEQzQjAwQUQyMTVENkE2OTAwNzZCOTgzIC8qIEJsb2JFdmVudC5oICovOyB9OwotCQk0RDNCNTAx
NjIxN0U1OEI3MDA2NjVEQjEgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREM0I1MDE0MjE3RTU4QjcwMDY2NURC
MSAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZS5oICovOyB9OworCQk0RDNCNTAxNjIxN0U1OEI3MDA2
NjVEQjEgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREM0I1MDE0MjE3RTU4QjcwMDY2NURCMSAvKiBNZWRpYVJl
Y29yZGVyUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTRENzNGOTQ2MjE4QkM1RkEwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0
ZUFWRkltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDRENzNGOTQ0MjE4QkM1RkEwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwu
aCAqLzsgfTsKLQkJNEQ3M0Y5NEUyMThDNEE4NzAwM0EzRUQ2IC8qIE1lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDRENzNGOTRDMjE4QzRBODcwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlckNvY29hLmggKi87IH07CisJCTRENzNGOTRFMjE4QzRBODcwMDNBM0VENiAvKiBNZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0RDczRjk0QzIxOEM0QTg3MDAzQTNFRDYgLyogTWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXJDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTREQjcxMzBEMjE2RUNCNEQwMDk2QTRERCAvKiBNZWRpYVJlY29yZGVy
RXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNERCNzEzMEMyMTZFQzJCRDAwOTZBNEREIC8qIE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50Lmgg
Ki87IH07CiAJCTRFMTk1OTIyMEEzOURBQkEwMDIyMEZFNSAvKiBNZWRpYUZlYXR1cmVOYW1lcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEUxOTU5MjAw
QTM5REFCQTAwMjIwRkU1IC8qIE1lZGlhRmVhdHVyZU5hbWVzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNEUxOTU5MkEwQTM5REFDQzAwMjIwRkU1
IC8qIE1lZGlhUXVlcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDRFMTk1OTI0MEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTczOTgsNiArNzM5OSw4
IEBACiAJCTQxNzYxMkFFMUUzQTk5M0IwMEMzRDgxRCAvKiBMaWJXZWJSVENQZWVyQ29ubmVjdGlv
bkJhY2tlbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGliV2ViUlRDUGVl
ckNvbm5lY3Rpb25CYWNrZW5kLmg7IHBhdGggPSBsaWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5l
Y3Rpb25CYWNrZW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzY5MDAzMjJG
Q0Q4RjIwMEIxNTc2RCAvKiBNZWRpYVNvdXJjZVJlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1lZGlhU291cmNlUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDE3NjkwMDQyMkZDRDhGMjAwQjE1NzZEIC8qIE1lZGlhU291cmNlUmVnaXN0
cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFTb3VyY2VS
ZWdpc3RyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODhGMjNDMzQ4
RDIwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTWVkaWFSZWNvcmRlclByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQxNzZFODkxMjNDMzRCNzUwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJv
dmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3N0Y1MUMyMzgyNTQ0MDAwQzA0NDg2IC8q
IEJhc2VBdWRpb1NoYXJlZFVuaXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQmFzZUF1ZGlvU2hhcmVkVW5pdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxNzdGNTFFMjM4MjU0NUUwMEMwNDQ4NiAvKiBCYXNlQXVkaW9TaGFyZWRVbml0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VBdWRpb1NoYXJlZFVuaXQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3REE0Q0UxMzczNDMyNjAwN0M1N0ZCIC8qIElu
dGVybmFscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRlcm5hbHMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4OTMxLDYgKzE4OTM0LDggQEAKIAkJCQk0
REI3MTMwRTIxNkVFQkFFMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuY3BwICov
LAogCQkJCTREQjcxMzBDMjE2RUMyQkQwMDk2QTRERCAvKiBNZWRpYVJlY29yZGVyRXJyb3JFdmVu
dC5oICovLAogCQkJCTREQjcxMzBBMjE2RUMyQkMwMDk2QTRERCAvKiBNZWRpYVJlY29yZGVyRXJy
b3JFdmVudC5pZGwgKi8sCisJCQkJNDE3NkU4OEYyM0MzNDhEMjAwM0U4M0ZFIC8qIE1lZGlhUmVj
b3JkZXJQcm92aWRlci5oICovLAorCQkJCTQxNzZFODkxMjNDMzRCNzUwMDNFODNGRSAvKiBNZWRp
YVJlY29yZGVyUHJvdmlkZXIuY3BwICovLAogCQkJKTsKIAkJCXBhdGggPSBtZWRpYXJlY29yZGVy
OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTMyMDM5LDYgKzMyMDQ0LDcgQEAKIAkJ
CQk2RUQ4NzhDNTE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBOERGNEFFOTA5ODBDNDJDMDA1Mjk4MUIgLyogUmVuZGVyVGFibGVDZWxs
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOERGNEFGMTA5ODBDNDJDMDA1Mjk4MUIgLyogUmVuZGVy
VGFibGVDb2wuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxNzZFODk2MjNDMzUzN0IwMDNFODNGRSAv
KiBNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4REY0QUVFMDk4
MEM0MkMwMDUyOTgxQiAvKiBSZW5kZXJUYWJsZVJvdy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThE
RjRBRUYwOTgwQzQyQzAwNTI5ODFCIC8qIFJlbmRlclRhYmxlU2VjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNFQTQ4OEMwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlclRleHQuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCAwZWI1YTEy
MGFmODc2NTMwYzVjNmNmN2RhZTAwOTkyMWZhMzY0MjlhLi4zNTZmNjUxZDE1Y2IwY2RiYTBlZDVk
Zjc2MTVmZGNmZDYyMzUwZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNw
cApAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1ZGUgIklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIgog
I2luY2x1ZGUgIkluc3BlY3RvckNsaWVudC5oIgogI2luY2x1ZGUgIkxpYldlYlJUQ1Byb3ZpZGVy
LmgiCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTmV0d29y
a1N0b3JhZ2VTZXNzaW9uLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VDb25m
aWd1cmF0aW9uLmgiCkBAIC01NzEsMTAgKzU3MiwxNCBAQCBSZWY8U3RvcmFnZU5hbWVzcGFjZT4g
RW1wdHlTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI6OmNyZWF0ZVRyYW5zaWVudExvY2FsU3RvcmFn
ZQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5U3RvcmFnZU5hbWVzcGFjZSB7IHNlc3Np
b25JRCB9KTsKIH0KIAotY2xhc3MgRW1wdHlTdG9yYWdlU2Vzc2lvblByb3ZpZGVyIDogcHVibGlj
IFN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIgeworY2xhc3MgRW1wdHlTdG9yYWdlU2Vzc2lvblByb3Zp
ZGVyIGZpbmFsIDogcHVibGljIFN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIgewogICAgIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiogc3RvcmFnZVNlc3Npb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBudWxs
cHRyOyB9CiB9OwogCitjbGFzcyBFbXB0eU1lZGlhUmVjb3JkZXJQcm92aWRlciBmaW5hbCA6IHB1
YmxpYyBNZWRpYVJlY29yZGVyUHJvdmlkZXIgeworICAgIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJl
Y29yZGVyUHJpdmF0ZT4gY3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoY29uc3QgTWVkaWFTdHJl
YW1Qcml2YXRlJikgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQorfTsKKwogUGFnZUNvbmZpZ3Vy
YXRpb24gcGFnZUNvbmZpZ3VyYXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKIHsKICAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbiB7CkBA
IC01ODUsNyArNTkwLDggQEAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb25XaXRo
RW1wdHlDbGllbnRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAgICAgQ2FjaGVTdG9y
YWdlUHJvdmlkZXI6OmNyZWF0ZSgpLAogICAgICAgICBhZG9wdFJlZigqbmV3IEVtcHR5QmFja0Zv
cndhcmRDbGllbnQpLAogICAgICAgICBDb29raWVKYXI6OmNyZWF0ZShhZG9wdFJlZigqbmV3IEVt
cHR5U3RvcmFnZVNlc3Npb25Qcm92aWRlcikpLAotICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PigpCisgICAgICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlQcm9n
cmVzc1RyYWNrZXJDbGllbnQ+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlNZWRpYVJl
Y29yZGVyUHJvdmlkZXI+KCkKICAgICB9OwogCiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEVt
cHR5Q2hyb21lQ2xpZW50PiBkdW1teUNocm9tZUNsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4
IDc1YjVmZDAxYTViZDY2MzBmN2ZlYzZiN2U3ZTIzYmZhMTAwM2Q4MDIuLjNlZDhjNDJhYjZlMTA5
ZmU3YjUwOTRlZTE5MWVkOWI0MTc0ZDQ2MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMjQ2LDYg
KzI0Niw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlv
bikKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICAsIG1fc3BlZWNoU3ludGhlc2lz
Q2xpZW50KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNoU3ludGhlc2lzQ2xpZW50KSkK
ICNlbmRpZgorICAgICwgbV9tZWRpYVJlY29yZGVyUHJvdmlkZXIoKFdURk1vdmUocGFnZUNvbmZp
Z3VyYXRpb24ubWVkaWFSZWNvcmRlclByb3ZpZGVyKSkpCiAgICAgLCBtX2xpYldlYlJUQ1Byb3Zp
ZGVyKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24ubGliV2ViUlRDUHJvdmlkZXIpKQogICAgICwg
bV92ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkoU2Nyb2xsRWxhc3RpY2l0eUFsbG93ZWQpCiAgICAg
LCBtX2hvcml6b250YWxTY3JvbGxFbGFzdGljaXR5KFNjcm9sbEVsYXN0aWNpdHlBbGxvd2VkKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaAppbmRleCA4OWFhZDRhNzA2YzMzY2Y1MTYyMmZlY2U5MTcwMmY1ZTBmMmJlYjZj
Li5iMjZjNTM2YzVhMTcyNzQyZTc1ZGUwMTk3MGVkODBlZTdhNDdlOWU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aApAQCAtMTEwLDYgKzExMCw3IEBAIGNsYXNzIExpYldlYlJUQ1Byb3ZpZGVyOwogY2xhc3MgTG93
UG93ZXJNb2RlTm90aWZpZXI7CiBjbGFzcyBNZWRpYUNhblN0YXJ0TGlzdGVuZXI7CiBjbGFzcyBN
ZWRpYVBsYXliYWNrVGFyZ2V0OworY2xhc3MgTWVkaWFSZWNvcmRlclByb3ZpZGVyOwogY2xhc3Mg
UGFnZUNvbmZpZ3VyYXRpb247CiBjbGFzcyBQYWdlQ29uc29sZUNsaWVudDsKIGNsYXNzIFBhZ2VE
ZWJ1Z2dhYmxlOwpAQCAtNTg0LDYgKzU4NSw3IEBAIHB1YmxpYzoKICAgICBEYXRhYmFzZVByb3Zp
ZGVyJiBkYXRhYmFzZVByb3ZpZGVyKCkgeyByZXR1cm4gbV9kYXRhYmFzZVByb3ZpZGVyOyB9CiAg
ICAgQ2FjaGVTdG9yYWdlUHJvdmlkZXImIGNhY2hlU3RvcmFnZVByb3ZpZGVyKCkgeyByZXR1cm4g
bV9jYWNoZVN0b3JhZ2VQcm92aWRlcjsgfQogICAgIFNvY2tldFByb3ZpZGVyJiBzb2NrZXRQcm92
aWRlcigpIHsgcmV0dXJuIG1fc29ja2V0UHJvdmlkZXI7IH0KKyAgICBNZWRpYVJlY29yZGVyUHJv
dmlkZXImIG1lZGlhUmVjb3JkZXJQcm92aWRlcigpIHsgcmV0dXJuIG1fbWVkaWFSZWNvcmRlclBy
b3ZpZGVyOyB9CiAgICAgQ29va2llSmFyJiBjb29raWVKYXIoKSB7IHJldHVybiBtX2Nvb2tpZUph
ci5nZXQoKTsgfQogCiAgICAgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyJiBzdG9yYWdlTmFtZXNw
YWNlUHJvdmlkZXIoKSB7IHJldHVybiBtX3N0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5nZXQoKTsg
fQpAQCAtNzk1LDYgKzc5Nyw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVj
aFN5bnRoZXNpc0NsaWVudD4gbV9zcGVlY2hTeW50aGVzaXNDbGllbnQ7CiAjZW5kaWYKIAorICAg
IFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+IG1fbWVkaWFSZWNvcmRlclByb3ZpZGVy
OwogICAgIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4gbV9saWJXZWJSVENQcm92aWRlcjsK
ICAgICBSVENDb250cm9sbGVyIG1fcnRjQ29udHJvbGxlcjsKIApAQCAtOTIwLDcgKzkyMyw2IEBA
IHByaXZhdGU6CiAgICAgUmVmPFVzZXJDb250ZW50UHJvdmlkZXI+IG1fdXNlckNvbnRlbnRQcm92
aWRlcjsKICAgICBSZWY8VmlzaXRlZExpbmtTdG9yZT4gbV92aXNpdGVkTGlua1N0b3JlOwogICAg
IFJlZlB0cjxXaGVlbEV2ZW50VGVzdE1vbml0b3I+IG1fd2hlZWxFdmVudFRlc3RNb25pdG9yOwot
CiAgICAgSGFzaFNldDxBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIqPiBtX2FjdGl2aXR5U3Rh
dGVDaGFuZ2VPYnNlcnZlcnM7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfVVNBR0UpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGVmODc3YTU1ODgyMWU0NDY3
ZjQ1Y2EzYzA1MjFjYWYyMmQ5MDdkZGUuLjMzOGY0ZTdjMTkxMjFhZjE3OTQyZDAxNzI0Y2UyOTEx
M2M1ZDNmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCkBA
IC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiRHJhZ0NsaWVudC5oIgogI2luY2x1ZGUgIkVkaXRv
ckNsaWVudC5oIgogI2luY2x1ZGUgIkxpYldlYlJUQ1Byb3ZpZGVyLmgiCisjaW5jbHVkZSAiTWVk
aWFSZWNvcmRlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50
LmgiCiAjaW5jbHVkZSAiUGx1Z0luQ2xpZW50LmgiCiAjaW5jbHVkZSAiUGx1Z2luSW5mb1Byb3Zp
ZGVyLmgiCkBAIC01NSw3ICs1Niw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFnZUNv
bmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
VW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQcm92aWRl
cj4mJiBzb2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmIGxpYldl
YlJUQ1Byb3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9yYWdlUHJv
dmlkZXIsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVudCwgUmVmPENv
b2tpZUphcj4mJiBjb29raWVKYXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYg
cHJvZ3Jlc3NUcmFja2VyQ2xpZW50KQorUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0
aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiBl
ZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiBzb2NrZXRQcm92aWRlciwgVW5pcXVl
UmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmIGxpYldlYlJUQ1Byb3ZpZGVyLCBSZWY8Q2FjaGVTdG9y
YWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9yYWdlUHJvdmlkZXIsIFJlZjxCYWNrRm9yd2FyZENsaWVu
dD4mJiBiYWNrRm9yd2FyZENsaWVudCwgUmVmPENvb2tpZUphcj4mJiBjb29raWVKYXIsIFVuaXF1
ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50LCBVbmlx
dWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYmIG1lZGlhUmVjb3JkZXJQcm92aWRlcikKICAg
ICA6IHNlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBlZGl0b3JDbGllbnQoV1RGTW92ZShlZGl0
b3JDbGllbnQpKQogICAgICwgc29ja2V0UHJvdmlkZXIoV1RGTW92ZShzb2NrZXRQcm92aWRlcikp
CkBAIC02NCw2ICs2NSw3IEBAIFBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbihQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDCiAgICAgLCBiYWNrRm9y
d2FyZENsaWVudChXVEZNb3ZlKGJhY2tGb3J3YXJkQ2xpZW50KSkKICAgICAsIGNvb2tpZUphcihX
VEZNb3ZlKGNvb2tpZUphcikpCiAgICAgLCBjYWNoZVN0b3JhZ2VQcm92aWRlcihXVEZNb3ZlKGNh
Y2hlU3RvcmFnZVByb3ZpZGVyKSkKKyAgICAsIG1lZGlhUmVjb3JkZXJQcm92aWRlcihXVEZNb3Zl
KG1lZGlhUmVjb3JkZXJQcm92aWRlcikpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNv
bmZpZ3VyYXRpb24uaAppbmRleCAxOTFhMDJiNjE1ZjQwYTk4MGM0MjFmN2ZiZjNmMzE2ZDJiMTY0
ZmVmLi4zYThlZDMzNDQwYzJjMTg4NTI4MzE4OTE4YTc1MjJiOTIxN2Y0NzZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCkBAIC01Miw2ICs1Miw3IEBAIGNsYXNzIEVk
aXRvckNsaWVudDsKIGNsYXNzIEZyYW1lTG9hZGVyQ2xpZW50OwogY2xhc3MgSW5zcGVjdG9yQ2xp
ZW50OwogY2xhc3MgTGliV2ViUlRDUHJvdmlkZXI7CitjbGFzcyBNZWRpYVJlY29yZGVyUHJvdmlk
ZXI7CiBjbGFzcyBQYXltZW50Q29vcmRpbmF0b3JDbGllbnQ7CiBjbGFzcyBQZXJmb3JtYW5jZUxv
Z2dpbmdDbGllbnQ7CiBjbGFzcyBQbHVnSW5DbGllbnQ7CkBAIC02OCw3ICs2OSw3IEBAIGNsYXNz
IFNwZWVjaFN5bnRoZXNpc0NsaWVudDsKIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9uIHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShQYWdlQ29uZmlndXJhdGlvbik7IFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2VDb25maWd1cmF0aW9uKFBB
TDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmLCBSZWY8U29ja2V0UHJvdmlk
ZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiwgUmVmPENhY2hlU3RvcmFnZVBy
b3ZpZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYsIFJlZjxDb29raWVKYXI+JiYsIFVu
aXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIFBh
Z2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYm
LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiwg
UmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYsIFJl
ZjxDb29raWVKYXI+JiYsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYsIFVuaXF1
ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIH5QYWdl
Q29uZmlndXJhdGlvbigpOwogICAgIFBhZ2VDb25maWd1cmF0aW9uKFBhZ2VDb25maWd1cmF0aW9u
JiYpOwogCkBAIC0xMjMsNiArMTI0LDcgQEAgcHVibGljOgogICAgIFJlZlB0cjxEZXZpY2VPcmll
bnRhdGlvblVwZGF0ZVByb3ZpZGVyPiBkZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyOwog
I2VuZGlmCiAgICAgVmVjdG9yPFN0cmluZz4gY29yc0Rpc2FibGluZ1BhdHRlcm5zOworICAgIFVu
aXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+IG1lZGlhUmVjb3JkZXJQcm92aWRlcjsKIH07
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIv
Y29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNv
Y29hLmgKaW5kZXggZmZmNDVkNjM5MzhkYjMzOGI0NzI0YjdhNzQ2Y2UzNzI0ZmExZDNhYi4uNTE5
NzhiYjZkOGQxYTFiMGU1YzFjN2EwMTUxMjIyYmQ4YmRmYjJhOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlckNvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRl
ci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmgKQEAgLTQ5LDkgKzQ5LDEw
IEBAIGNsYXNzIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CiBjbGFzcyBNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZTsKIGNsYXNzIFBsYXRmb3JtQXVkaW9EYXRhOwogCi1jbGFzcyBNZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxNZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlciwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4sIHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4geworY2xhc3MgV0VCQ09SRV9F
WFBPUlQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNv
dW50ZWQ8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6
Ok1haW4+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+
IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
PiBjcmVhdGUoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIGF1ZGlvVHJhY2ssIGNvbnN0
IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiB2aWRlb1RyYWNrKTsKKyAgICBzdGF0aWMgUmVmUHRy
PE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiBjcmVhdGUoYm9vbCBoYXNBdWRpbywgaW50IHdp
ZHRoLCBpbnQgaGVpZ2h0KTsKICAgICB+TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIoKTsKICAg
ICAKICAgICBib29sIHNldHVwV3JpdGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29j
b2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KaW5kZXggOTJmZTJhNDUwZTU5M2YyNGE5Njhm
YWVmMGE2Yjk2Zjk1YWRlMzUxMy4uMDY5Yzg4NzRmMDA5ZTA5NmMyNDlhMDc4MDE5MGRkODA0OGM2
YjliZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9j
b2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0
ZXJDb2NvYS5tbQpAQCAtOTAsNiArOTAsMTcgQEAgc3RhdGljIE5TU3RyaW5nICpnZXRBVkVuY29k
ZXJCaXRSYXRlS2V5V2l0aEZhbGxiYWNrKCkKIH0KIAogUmVmUHRyPE1lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyPiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y3JlYXRlKGNvbnN0IE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlKiBhdWRpb1RyYWNrLCBjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZSogdmlkZW9UcmFjaykKK3sKKyAgICBpbnQgd2lkdGggPSAwLCBoZWlnaHQgPSAwOworICAg
IGlmICh2aWRlb1RyYWNrKSB7CisgICAgICAgIGF1dG8mIHNldHRpbmdzID0gdmlkZW9UcmFjay0+
c2V0dGluZ3MoKTsKKyAgICAgICAgd2lkdGggPSBzZXR0aW5ncy53aWR0aCgpOworICAgICAgICBo
ZWlnaHQgPSBzZXR0aW5ncy5oZWlnaHQoKTsKKyAgICB9CisgICAgcmV0dXJuIGNyZWF0ZSghIWF1
ZGlvVHJhY2ssIHdpZHRoLCBoZWlnaHQpOworfQorCitSZWZQdHI8TWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXI+IE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjcmVhdGUoYm9vbCBoYXNBdWRp
bywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogewogICAgIE5TU3RyaW5nICpkaXJlY3RvcnkgPSBG
aWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJ2aWRlb3MiKTsKICAgICBOU1N0
cmluZyAqZmlsZW5hbWUgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIi8lbGxkLm1wNCIs
IENNQ2xvY2tHZXRUaW1lKENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpLnZhbHVlXTsKQEAgLTEw
NiwxMiArMTE3LDExIEBAIFJlZlB0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXI6OmNyZWF0ZShjb25zdCBNZWRpCiAKICAgICBhdXRvIHdyaXRl
ciA9IGFkb3B0UmVmKCpuZXcgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIoV1RGTW92ZShhdkFz
c2V0V3JpdGVyKSwgV1RGTW92ZShmaWxlUGF0aCkpKTsKIAotICAgIGlmIChhdWRpb1RyYWNrICYm
ICF3cml0ZXItPnNldEF1ZGlvSW5wdXQoKSkKKyAgICBpZiAoaGFzQXVkaW8gJiYgIXdyaXRlci0+
c2V0QXVkaW9JbnB1dCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGlmICh2aWRl
b1RyYWNrKSB7Ci0gICAgICAgIGF1dG8mIHNldHRpbmdzID0gdmlkZW9UcmFjay0+c2V0dGluZ3Mo
KTsKLSAgICAgICAgaWYgKCF3cml0ZXItPnNldFZpZGVvSW5wdXQoc2V0dGluZ3Mud2lkdGgoKSwg
c2V0dGluZ3MuaGVpZ2h0KCkpKQorICAgIGlmICh3aWR0aCAmJiBoZWlnaHQpIHsKKyAgICAgICAg
aWYgKCF3cml0ZXItPnNldFZpZGVvSW5wdXQod2lkdGgsIGhlaWdodCkpCiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKaW5kZXggNGEwNjg0NDM4Y2U2
NjVkN2NkMDRkYTEwZWExMWE1YmMyYjZmMjlmNS4uZGU0NGQ4OGVmNWI5YzM4MTQwNDRlMDVmN2My
OGJlZTE4YTcyZWQwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKQEAgLTgxLDcgKzgxLDcgQEAgcHVibGlj
OgogCiAgICAgU3RyaW5nIGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQogCi0gICAgTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGVWZWN0b3IgdHJhY2tzKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBP
UlQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGVWZWN0b3IgdHJhY2tzKCkgY29uc3Q7CiAgICAgTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUqIGFjdGl2ZVZpZGVvVHJhY2soKSB7IHJldHVybiBtX2FjdGl2
ZVZpZGVvVHJhY2s7IH0KIAogICAgIGJvb2wgYWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9pc0Fj
dGl2ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKaW5kZXggYTRlYzQzOGE5ODQ0ZmM4MjUx
NjE5ZWQzMzk4ZmZmN2FlYmIxOTIyNi4uZDA5ZjNlYmYwNGQzMGZhNTNmY2MyZTMwMmVhMDgwMzk0
OGQwMTEyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCkBAIC0xMDAsNyArMTAwLDcgQEAg
cHVibGljOgogICAgIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gY2xvbmUoKTsKIAogICAg
IFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSgpIHsgcmV0dXJuIG1fc291cmNlLmdldCgpOyB9
Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlKCkgY29uc3Q7CisgICAgV0VCQ09S
RV9FWFBPUlQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlKCkgY29uc3Q7CiAKICAgICB2
b2lkIGVuZFRyYWNrKCk7CiAKQEAgLTExMCw3ICsxMTAsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBo
YXNPYnNlcnZlcihPYnNlcnZlciYpIGNvbnN0OwogI2VuZGlmCiAKLSAgICBjb25zdCBSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBP
UlQgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0Owog
ICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygp
IGNvbnN0OwogCiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMmLCBSZWFsdGltZU1lZGlhU291cmNlOjpBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBmMWExNjRkMTczMDVlZGYxZmU2ZWRi
YTFkOGM5ODQwMzNjOGQ1NGEwLi4wOWE0ZTcwOGI4MjI4MDk0MzUwYjcxZjgzZDRhZWRiODAzN2Q4
OWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xMjIsNiArMTIyLDcg
QEAKICNpbmNsdWRlICJNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5LmgiCiAjaW5jbHVk
ZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCisjaW5jbHVkZSAi
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTWVkaWFSZXNvdXJjZUxvYWRlci5o
IgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2suaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5o
IgpAQCAtNTUwLDYgKzU1MSw4IEBAIHZvaWQgSW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0
YXRlKFBhZ2UmIHBhZ2UpCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0SW50ZXJydXB0QXVkaW9PblBhZ2VW
aXNpYmlsaXR5Q2hhbmdlRW5hYmxlZChmYWxzZSk7CisgICAgV2ViQ29yZTo6TWVkaWFSZWNvcmRl
cjo6c2V0Q3VzdG9tUHJpdmF0ZVJlY29yZGVyQ3JlYXRvcihudWxscHRyKTsKKyAgICBwYWdlLm1l
ZGlhUmVjb3JkZXJQcm92aWRlcigpLnNldFVzZUdQVVByb2Nlc3ModHJ1ZSk7CiAjZW5kaWYKIAog
ICAgIEhUTUxDYW52YXNFbGVtZW50OjpzZXRNYXhQaXhlbE1lbW9yeUZvclRlc3RpbmcoMCk7IC8v
IFRoaXMgbWVhbnMgdXNlIHRoZSBkZWZhdWx0IHZhbHVlLgpAQCAtMTU1OCw3ICsxNTYxLDkgQEAg
dm9pZCBJbnRlcm5hbHM6OnNldFVzZUdQVVByb2Nlc3NGb3JXZWJSVEMoYm9vbCB1c2VHUFVQcm9j
ZXNzKQogICAgIGF1dG8qIGRvY3VtZW50ID0gY29udGV4dERvY3VtZW50KCk7CiAgICAgaWYgKCFk
b2N1bWVudCB8fCAhZG9jdW1lbnQtPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuOworCiAgICAgZG9j
dW1lbnQtPnBhZ2UoKS0+bGliV2ViUlRDUHJvdmlkZXIoKS5zZXRVc2VHUFVQcm9jZXNzKHVzZUdQ
VVByb2Nlc3MpOworICAgIGRvY3VtZW50LT5wYWdlKCktPm1lZGlhUmVjb3JkZXJQcm92aWRlcigp
LnNldFVzZUdQVVByb2Nlc3ModXNlR1BVUHJvY2Vzcyk7CiAjZW5kaWYKIH0KICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDc5OTRl
M2NhNzc3NjMyOWQ2Zjc1ZDdhYWYwYzkzZmQ5YWEwNTllMTAuLmI5ODgwYmMwYWNmNmY2MWMwMmIz
YjM3ZDJjNGNiZWViYTEwMjA4MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3QKQEAgLTE5LDYgKzE5LDggQEAgJChQUk9KRUNUX0RJUikvR1BVUHJv
Y2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluCiAkKFBST0pFQ1RfRElS
KS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJX
ZWJSVENDb2RlY3NQcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy93
ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMubWVzc2FnZXMuaW4KICQoUFJPSkVD
VF9ESVIpL05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1
c3RvbVByb3RvY29sTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1By
b2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggMGNkMjNlMDFiYmFjZDJl
YzRhMGJkYzNiZGZmMmJlMGQ3YjYwYjAxYi4uZDcyMDYyM2FiYWNhZGRlOTdjNWYzNWMyNzMyZjU4
ZGY5Yjk2MjcwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0CkBAIC0xMjksNiArMTI5LDEyIEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlck1lc3NhZ2VzUmVwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVz
c2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZWNvcmRlck1lc3Nh
Z2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZXNSZXBsaWVz
LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1l
ZGlhUmVjb3JkZXJzTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZWNvcmRlcnNNZXNzYWdlcy5oCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlY29y
ZGVyc01lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMu
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDlkM2UyYTkwYzdiNGQ5MGE0MjZjNzZh
NGUwNWU2YjJmODFjYzBlOWUuLmE1Njg2MDFiNzdiMWRiZDdmZmQ2MzZkZTdiNjM0YjFmZTJiMTI4
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE0Myw2ICsxNDMsOCBAQCBNRVNT
QUdFX1JFQ0VJVkVSUyA9IFwKICAgICBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5IFwK
ICAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIgXAogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5IFwKKyAgICBSZW1vdGVNZWRpYVJlY29yZGVyIFwKKyAgICBSZW1vdGVNZWRpYVJl
Y29yZGVycyBcCiAgICAgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIgXAogICAgIFJlbW90ZU9i
amVjdFJlZ2lzdHJ5IFwKICAgICBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvciBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKaW5kZXggNTJhOTVjZTBkZWQ3MDNkNjFkMzRhOWQxN2YwYzhiNDJlNjY0ZmRkYS4uN2Y2NjMz
YTdkNzk4YTE1NDY0NmUyOTliNjk4MWQ5MjUzYjJjYzc3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMzks
NiArMzksOSBAQAogI2luY2x1ZGUgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgiCiAjaW5j
bHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUg
IlJlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVj
b3JkZXJzLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlcnNNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yVHJhbnNhY3Rpb24uaCIKQEAgLTEzNyw5ICsxNDAsNyBAQCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5JiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp1c2VyTWVkaWFDYXB0
dXJlTWFuYWdlcgogCiAgICAgcmV0dXJuICptX3VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7
CiB9Ci0jZW5kaWYKIAotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQogTGli
V2ViUlRDQ29kZWNzUHJveHkmIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxpYldlYlJUQ0Nv
ZGVjc1Byb3h5KCkKIHsKICAgICBpZiAoIW1fbGliV2ViUlRDQ29kZWNzUHJveHkpCkBAIC0xNDks
NiArMTUwLDE2IEBAIExpYldlYlJUQ0NvZGVjc1Byb3h5JiBHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpsaWJXZWJSVENDb2RlY3NQcm94eSgpCiB9CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKENP
Q09BKSAmJiBVU0UoTElCV0VCUlRDKQorUmVtb3RlTWVkaWFSZWNvcmRlcnMmIEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6Om1lZGlhUmVjb3JkZXJzKCkKK3sKKyAgICBpZiAoIW1fcmVtb3RlTWVk
aWFSZWNvcmRlcnMpCisgICAgICAgIG1fcmVtb3RlTWVkaWFSZWNvcmRlcnMgPSBtYWtlVW5pcXVl
PFJlbW90ZU1lZGlhUmVjb3JkZXJzPigqdGhpcyk7CisKKyAgICByZXR1cm4gKm1fcmVtb3RlTWVk
aWFSZWNvcmRlcnM7Cit9CisjZW5kaWYKKwogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVj
b2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkg
PT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCkpIHsKQEAgLTE2Myw2ICsxNzQsMTQgQEAgdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIEkK
ICAgICAgICAgdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpLmRpZFJlY2VpdmVNZXNzYWdl
RnJvbUdQVVByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpS
ZW1vdGVNZWRpYVJlY29yZGVyczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIG1l
ZGlhUmVjb3JkZXJzKCkuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vzcyhjb25uZWN0aW9u
LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoZGVjb2Rlci5tZXNz
YWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBtZWRpYVJlY29yZGVycygpLmRpZFJlY2VpdmVS
ZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VC
UlRDKQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6
TGliV2ViUlRDQ29kZWNzUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5k
ZXggYWM3MTI1ZDczOGQ4Njg4OGVlYThiNGE5MjUxNWY5ZGU0ZDFmNmIwNC4uODljNGNhMWMyMjJm
YTVjOWE1NGZhNmMwNTZkYTk4MjNiYjU2ZWQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC00MSw4ICs0MSw5IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgR1BVUHJvY2VzczsKIGNsYXNzIExpYldlYlJUQ0Nv
ZGVjc1Byb3h5OwogY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk7Ci1jbGFzcyBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OworY2xhc3MgUmVtb3RlTWVkaWFSZWNvcmRlcnM7
CiBjbGFzcyBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjsKK2NsYXNzIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk7CiAKIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MKICAgICA6
IHB1YmxpYyBSZWZDb3VudGVkPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+CkBAIC03MSw2ICs3
Miw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKICAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5JiB1c2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5KCk7CisgICAgUmVtb3RlTWVkaWFSZWNvcmRlcnMmIG1lZGlhUmVj
b3JkZXJzKCk7CiAjZW5kaWYKIAogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CkBAIC04
OSw2ICs5MSw3IEBAIHByaXZhdGU6CiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAj
aWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgc3RkOjp1bmlx
dWVfcHRyPFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk+IG1fdXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFSZWNvcmRlcnM+IG1f
cmVtb3RlTWVkaWFSZWNvcmRlcnM7CiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNF
KExJQldFQlJUQykKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDQ29kZWNzUHJveHk+IG1f
bGliV2ViUlRDQ29kZWNzUHJveHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuR1BVUHJvY2Vzcy5zYi5pbiBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluCmluZGV4IGQ2
MzJiZWViY2IzNWQ3NGUzOGUwY2IxODYxYjdmMDU3YTVmMzZkOTQuLjliNzQxMmJiNGRhNmNlZjJm
NzJiMjdmNWE0MWZkZWRhNzE2OTgwNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluCkBA
IC04MzYsMyArODM2LDcgQEAKICAgICAgICAgKGlva2l0LXVzZXItY2xpZW50LWNsYXNzICJJT1VT
QkludGVyZmFjZVVzZXJDbGllbnRWMiIpKQogICAgIChhbGxvdyBkZXZpY2UtY2FtZXJhKSkKICNl
bmRpZiAvLyBQTEFURk9STShNQUMpCisKKyhhbGxvdyBmaWxlLXJlYWQqIGZpbGUtd3JpdGUqIChz
dWJwYXRoIChwYXJhbSAiREFSV0lOX1VTRVJfQ0FDSEVfRElSIikpKQorCisoYWxsb3cgZmlsZS1y
ZWFkKiBmaWxlLXdyaXRlKiAoc3VicGF0aCAocGFyYW0gIkRBUldJTl9VU0VSX1RFTVBfRElSIikp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRp
YVJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVk
aWFSZWNvcmRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmYwNzY4MzZjZWJlZWFhYTE0NjViODYyYzRhZTYw
N2U0NDM3NmIyYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93
ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAKQEAgLTAsMCArMSwxMzYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlci5o
IgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1
ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdC
dWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1JlbW90ZVZpZGVvU2FtcGxlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9X
ZWJBdWRpb0J1ZmZlckxpc3QuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0ZDo6dW5pcXVl
X3B0cjxSZW1vdGVNZWRpYVJlY29yZGVyPiBSZW1vdGVNZWRpYVJlY29yZGVyOjpjcmVhdGUoR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgTWVkaWFS
ZWNvcmRlcklkZW50aWZpZXIgaWRlbnRpZmllciwgYm9vbCByZWNvcmRBdWRpbywgaW50IHdpZHRo
LCBpbnQgaGVpZ2h0KQoreworICAgIGF1dG8gd3JpdGVyID0gTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXI6OmNyZWF0ZShyZWNvcmRBdWRpbywgd2lkdGgsIGhlaWdodCk7CisgICAgaWYgKCF3cml0
ZXIpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8
UmVtb3RlTWVkaWFSZWNvcmRlcj4obmV3IFJlbW90ZU1lZGlhUmVjb3JkZXIgeyBncHVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLCBpZGVudGlmaWVyLCB3cml0ZXIucmVsZWFzZU5vbk51bGwoKSwgcmVj
b3JkQXVkaW8gfSk7Cit9CisKK1JlbW90ZU1lZGlhUmVjb3JkZXI6OlJlbW90ZU1lZGlhUmVjb3Jk
ZXIoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcywg
TWVkaWFSZWNvcmRlcklkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPE1lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyPiYmIHdyaXRlciwgYm9vbCByZWNvcmRBdWRpbykKKyAgICA6IG1fZ3B1Q29ubmVj
dGlvblRvV2ViUHJvY2VzcyhncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQorICAgICwgbV9pZGVu
dGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX3dyaXRlcihXVEZNb3ZlKHdyaXRlcikpCit7Cisg
ICAgaWYgKHJlY29yZEF1ZGlvKQorICAgICAgICBtX3JpbmdCdWZmZXIgPSBtYWtlVW5pcXVlPENB
UmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4obnVsbHB0
cikpOworfQorCitSZW1vdGVNZWRpYVJlY29yZGVyOjp+UmVtb3RlTWVkaWFSZWNvcmRlcigpCit7
Cit9CisKK1NoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBSZW1vdGVNZWRpYVJlY29yZGVyOjpzdG9y
YWdlKCkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2Um
PihtX3JpbmdCdWZmZXItPnN0b3JhZ2UoKSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZWNvcmRl
cjo6YXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUm
IGhhbmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlw
dGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7CisgICAgQVNTRVJUKG1fcmluZ0J1ZmZl
cik7CisgICAgaWYgKCFtX3JpbmdCdWZmZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZGVz
Y3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKKworICAgIGlmIChoYW5kbGUuaXNOdWxsKCkpIHsKKyAg
ICAgICAgbV9yaW5nQnVmZmVyLT5kZWFsbG9jYXRlKCk7CisgICAgICAgIHN0b3JhZ2UoKS5zZXRS
ZWFkT25seShmYWxzZSk7CisgICAgICAgIHN0b3JhZ2UoKS5zZXRTdG9yYWdlKG51bGxwdHIpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbWVtb3J5
ID0gU2hhcmVkTWVtb3J5OjptYXAoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJl
YWRPbmx5KTsKKyAgICBzdG9yYWdlKCkuc2V0U3RvcmFnZShXVEZNb3ZlKG1lbW9yeSkpOworICAg
IHN0b3JhZ2UoKS5zZXRSZWFkT25seSh0cnVlKTsKKworICAgIG1fcmluZ0J1ZmZlci0+YWxsb2Nh
dGUoZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJl
Y29yZGVyOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51
bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKK3sK
KyAgICBBU1NFUlQobV9yaW5nQnVmZmVyKTsKKyAgICBpZiAoIW1fcmluZ0J1ZmZlcikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9yaW5nQnVmZmVyLT5zZXRDdXJyZW50RnJhbWVCb3VuZHMoc3Rh
cnRGcmFtZSwgZW5kRnJhbWUpOworCisgICAgV2ViQXVkaW9CdWZmZXJMaXN0IGF1ZGlvRGF0YSht
X2Rlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisgICAgbV9yaW5nQnVmZmVyLT5mZXRjaChh
dWRpb0RhdGEubGlzdCgpLCBudW1iZXJPZkZyYW1lcywgdGltZS50aW1lVmFsdWUoKSk7CisKKyAg
ICBtX3dyaXRlci0+YXBwZW5kQXVkaW9TYW1wbGVCdWZmZXIoYXVkaW9EYXRhLCBtX2Rlc2NyaXB0
aW9uLCB0aW1lLCBudW1iZXJPZkZyYW1lcyk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZWNvcmRl
cjo6dmlkZW9TYW1wbGVBdmFpbGFibGUoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUmJiByZW1v
dGVTYW1wbGUpCit7CisgICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9uIHx8IG1faW1hZ2VU
cmFuc2ZlclNlc3Npb24tPnBpeGVsRm9ybWF0KCkgIT0gcmVtb3RlU2FtcGxlLnZpZGVvRm9ybWF0
KCkpCisgICAgICAgIG1faW1hZ2VUcmFuc2ZlclNlc3Npb24gPSBJbWFnZVRyYW5zZmVyU2Vzc2lv
blZUOjpjcmVhdGUocmVtb3RlU2FtcGxlLnZpZGVvRm9ybWF0KCkpOworCisgICAgaWYgKCFtX2lt
YWdlVHJhbnNmZXJTZXNzaW9uKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBzYW1wbGVCdWZmZXIgPSBtX2ltYWdlVHJh
bnNmZXJTZXNzaW9uLT5jcmVhdGVNZWRpYVNhbXBsZShyZW1vdGVTYW1wbGUuc3VyZmFjZSgpLCBy
ZW1vdGVTYW1wbGUudGltZSgpLCByZW1vdGVTYW1wbGUuc2l6ZSgpKTsKKyAgICBpZiAoIXNhbXBs
ZUJ1ZmZlcikgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIG1fd3JpdGVyLT5hcHBlbmRWaWRlb1NhbXBsZUJ1ZmZlcihzYW1wbGVC
dWZmZXItPnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKK30KKwordm9p
ZCBSZW1vdGVNZWRpYVJlY29yZGVyOjpmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJ
UEM6OkRhdGFSZWZlcmVuY2UmJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gbXA0
TWltZVR5cGUoTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoInZpZGVvL21wNCIpKTsKKyAgICBtX3dy
aXRlci0+ZmV0Y2hEYXRhKFsmbXA0TWltZVR5cGUgPSBtcDRNaW1lVHlwZS5nZXQoKSwgY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byYmIGRhdGEpIG11
dGFibGUgeworICAgICAgICBhdXRvKiBwb2ludGVyID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1
aW50OF90Kj4oZGF0YSA/IGRhdGEtPmRhdGEoKSA6IG51bGxwdHIpOworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihJUEM6OkRhdGFSZWZlcmVuY2UgeyBwb2ludGVyLCBkYXRhID8gZGF0YS0+c2l6
ZSgpIDogMCB9LCBtcDRNaW1lVHlwZSk7CisgICAgfSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFS
ZWNvcmRlcjo6c3RvcFJlY29yZGluZygpCit7CisgICAgbV93cml0ZXItPnN0b3BSZWNvcmRpbmco
KTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRhOGQxNzU1YzU5NTMw
YzIzMTM2YjQ3N2I5YThhMDg1NDQxNGY1NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5oCkBAIC0wLDAgKzEsODUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBF
TkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVySWRlbnRpZmllci5o
IgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmg+CisjaW5jbHVkZSA8
d3RmL01lZGlhVGltZS5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Citj
bGFzcyBEYXRhUmVmZXJlbmNlOworY2xhc3MgRGVjb2RlcjsKK30KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworY2xhc3MgQ0FSaW5nQnVmZmVyOworY2xhc3MgSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDsK
K2NsYXNzIFJlbW90ZVZpZGVvU2FtcGxlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKK2NsYXNzIFNoYXJlZFJpbmdCdWZmZXJTdG9y
YWdlOworCitjbGFzcyBSZW1vdGVNZWRpYVJlY29yZGVyIDogcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VS
ZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVJlY29yZGVyPiBjcmVhdGUoR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyYsIE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLCBib29sIHJlY29yZEF1
ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworICAgIH5SZW1vdGVNZWRpYVJlY29yZGVyKCk7
CisKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYpIGZpbmFsOworCitwcml2YXRlOgorICAgIFJlbW90ZU1lZGlhUmVjb3JkZXIoR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyYsIE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLCBSZWY8V2ViQ29y
ZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+JiYsIGJvb2wgcmVjb3JkQXVkaW8pOworCisg
ICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc1N0b3JhZ2VD
aGFuZ2VkKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRp
b1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworICAgIHZvaWQg
YXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMs
IHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKKyAgICB2b2lkIHZpZGVv
U2FtcGxlQXZhaWxhYmxlKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlJiYpOworICAgIHZvaWQg
ZmV0Y2hEYXRhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSVBDOjpEYXRhUmVmZXJlbmNlJiYsIGNv
bnN0IFN0cmluZyYgbWltZVR5cGUpPiYmKTsKKyAgICB2b2lkIHN0b3BSZWNvcmRpbmcoKTsKKwor
ICAgIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBzdG9yYWdlKCk7CisKKyAgICBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzJiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CisgICAgTWVkaWFS
ZWNvcmRlcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFJlZjxXZWJDb3JlOjpNZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlcj4gbV93cml0ZXI7CisKKyAgICBXZWJDb3JlOjpDQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZmZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ+IG1faW1hZ2VUcmFuc2ZlclNlc3Npb247Cit9Owor
Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMx
NGVkYzUzNjEwMjNlZGM3ODI3ODBjNGQ0NmU5ZDE1Yjk0ODEzOWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIubWVz
c2FnZXMuaW4KQEAgLTAsMCArMSwzNCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisj
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21l
c3NhZ2VzIC0+IFJlbW90ZU1lZGlhUmVjb3JkZXIgTm90UmVmQ291bnRlZCB7CisgICAgQXVkaW9T
YW1wbGVzU3RvcmFnZUNoYW5nZWQoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZSBzdG9yYWdl
SGFuZGxlLCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gZGVzY3JpcHRpb24sIHVp
bnQ2NF90IG51bWJlck9mRnJhbWVzKQorICAgIEF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRp
bWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVp
bnQ2NF90IGVuZEZyYW1lKQorICAgIFZpZGVvU2FtcGxlQXZhaWxhYmxlKFdlYkNvcmU6OlJlbW90
ZVZpZGVvU2FtcGxlIHNhbXBsZSkKKyAgICBGZXRjaERhdGEoKSAtPiAoSVBDOjpEYXRhUmVmZXJl
bmNlIGJ1ZmZlciwgU3RyaW5nIG1pbWVUeXBlKSBBc3luYworICAgIFN0b3BSZWNvcmRpbmcoKQor
fQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlTWVkaWFSZWNvcmRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTYxYjc3NGI2ZDFlNDg4ZDA3
OTllNGM0MzU3ZTJkOGIxYjhmMWQ5NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMuY3BwCkBAIC0wLDAgKzEsNjkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVk
aWFSZWNvcmRlcnMuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlY29yZGVyLmgiCisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitSZW1vdGVNZWRpYVJlY29yZGVyczo6UmVtb3RlTWVkaWFSZWNvcmRlcnMoR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcykKKyAgICA6IG1f
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcyhncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQorewor
fQorCitSZW1vdGVNZWRpYVJlY29yZGVyczo6flJlbW90ZU1lZGlhUmVjb3JkZXJzKCkKK3sKK30K
Kwordm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyczo6ZGlkUmVjZWl2ZVJlbW90ZU1lZGlhUmVjb3Jk
ZXJNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNv
ZGVyKQoreworICAgIGlmIChhdXRvKiByZWNvcmRlciA9IG1fcmVjb3JkZXJzLmdldChtYWtlT2Jq
ZWN0SWRlbnRpZmllcjxNZWRpYVJlY29yZGVySWRlbnRpZmllclR5cGU+KGRlY29kZXIuZGVzdGlu
YXRpb25JRCgpKSkpCisgICAgICAgIHJlY29yZGVyLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0
aW9uLCBkZWNvZGVyKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyczo6Y3JlYXRlUmVj
b3JkZXIoTWVkaWFSZWNvcmRlcklkZW50aWZpZXIgaWRlbnRpZmllciwgYm9vbCByZWNvcmRBdWRp
bywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQoreworICAgIEFTU0VSVCghbV9yZWNvcmRlcnMuY29u
dGFpbnMoaWRlbnRpZmllcikpOworICAgIGF1dG8gcmVjb3JkZXIgPSBSZW1vdGVNZWRpYVJlY29y
ZGVyOjpjcmVhdGUobV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBpZGVudGlmaWVyLCByZWNv
cmRBdWRpbywgd2lkdGgsIGhlaWdodCk7CisgICAgaWYgKCFyZWNvcmRlcikgeworICAgICAgICAv
LyBGSVhNRTogU2VuZCBiYWNrIGVycm9yLgorICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1f
cmVjb3JkZXJzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKHJlY29yZGVyKSk7Cit9CisKK3ZvaWQg
UmVtb3RlTWVkaWFSZWNvcmRlcnM6OnJlbGVhc2VSZWNvcmRlcihNZWRpYVJlY29yZGVySWRlbnRp
ZmllciBpZGVudGlmaWVyKQoreworICAgIEFTU0VSVChtX3JlY29yZGVycy5jb250YWlucyhpZGVu
dGlmaWVyKSk7CisgICAgbV9yZWNvcmRlcnMucmVtb3ZlKGlkZW50aWZpZXIpOworfQorCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVNZWRpYVJlY29yZGVycy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVNZWRpYVJlY29yZGVycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3NmYxNzk0YTUwNDM2Y2ZiZjBlMmU2YTA5
ODU4NjAzNDNkYmEyOTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJzLmgKQEAgLTAsMCArMSw2NyBAQAorCisKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUo
R1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVySWRlbnRpZmllci5oIgorI2lu
Y2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25h
bWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIERlY29kZXI7Cit9CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOworY2xh
c3MgUmVtb3RlTWVkaWFSZWNvcmRlcjsKKworY2xhc3MgUmVtb3RlTWVkaWFSZWNvcmRlcnMgOiBw
cml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBSZW1vdGVNZWRpYVJlY29yZGVycyhHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzJik7CisgICAgflJlbW90ZU1lZGlhUmVjb3JkZXJzKCk7CisKKyAgICB2
b2lkIGRpZFJlY2VpdmVSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nl
c3MoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpIHsg
ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7IH0KKworcHJpdmF0ZToKKyAg
ICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisgICAgdm9pZCBjcmVhdGVSZWNv
cmRlcihNZWRpYVJlY29yZGVySWRlbnRpZmllciwgYm9vbCByZWNvcmRBdWRpbywgaW50IHdpZHRo
LCBpbnQgaGVpZ2h0KTsKKyAgICB2b2lkIHJlbGVhc2VSZWNvcmRlcihNZWRpYVJlY29yZGVySWRl
bnRpZmllcik7CisKKyAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2dwdUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M7CisgICAgSGFzaE1hcDxNZWRpYVJlY29yZGVySWRlbnRpZmllciwgc3Rk
Ojp1bmlxdWVfcHRyPFJlbW90ZU1lZGlhUmVjb3JkZXI+PiBtX3JlY29yZGVyczsKK307CisKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZU1lZGlhUmVjb3JkZXJzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NGU1
ZGU5MjkyNjU0NDdhNWYwYWVjZTA2YTQ2YzIwNTVkZDVlZmU1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5tZXNz
YWdlcy5pbgpAQCAtMCwwICsxLDMxIEBACisjIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJl
IG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMg
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVz
c2FnZXMgLT4gUmVtb3RlTWVkaWFSZWNvcmRlcnMgTm90UmVmQ291bnRlZCB7CisgICAgQ3JlYXRl
UmVjb3JkZXIoV2ViS2l0OjpNZWRpYVJlY29yZGVySWRlbnRpZmllciBpZCwgYm9vbCBoYXNBdWRp
bywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQorICAgIFJlbGVhc2VSZWNvcmRlcihXZWJLaXQ6Ok1l
ZGlhUmVjb3JkZXJJZGVudGlmaWVyIGlkKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDY5MDYzMTA2Y2FiNTQwMjFjNDI4OTZjZGNiNzYz
YTc1NmY3OGFmODYuLmYxMWYxNjExNGYwN2EyZTBkYzY0YWVkODIwZDU4YzdiNjhkNzMwYmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMjIwLDYgKzIyMCw3
IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAg
ICdXZWJLaXQ6OkFjdGl2aXR5U3RhdGVDaGFuZ2VJRCcsCiAgICAgICAgICdXZWJLaXQ6OkxheWVy
SG9zdGluZ0NvbnRleHRJRCcsCiAgICAgICAgICdXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXInLAorICAgICAgICAnV2ViS2l0OjpNZWRpYVJlY29yZGVySWRlbnRpZmll
cicsCiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyJywKICAg
ICAgICAgJ1dlYktpdDo6UlRDRGVjb2RlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpT
dG9yYWdlQXJlYUlkZW50aWZpZXInLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggY2E1MjYwM2VkNWIwN2NjMWEx
MDcyMTczNmVkNDZjNjc4OTQxMzMxMi4uNDk0ZDI5MjA1NDg2ODIwZmZmYjRlMmI0OThhODkzNzNl
MmZhOGY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0yNCw2ICsyNCw4IEBACiBHUFVQcm9jZXNzL0dQVVBy
b2Nlc3MuY3BwCiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCiBHUFVQ
cm9jZXNzL0dQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCitHUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcAorR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFS
ZWNvcmRlcnMuY3BwCiAvL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHkuY3BwCiAvL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAK
IC8vR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcApAQCAtNTEzLDYgKzUx
NSw4IEBAIFdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAogLy9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwCiBXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuY3BwIEBuby11bmlmeQogV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKK1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKK1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRp
YVJlY29yZGVyUHJvdmlkZXIuY3BwCiAKIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggNjBiMzlmMzdjNTc4NTU2MjFmMjlmNjZiOTYxN2Q5
YTdiM2RhNzAzZC4uNWE4MjI5ODc2MTkyZDYxZDQ4ZWQyNThhZGNmOGY4MzdlNzRkNmIyNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXQvU291cmNlc0NvY29hLnR4dApAQCAtNjM1LDUgKzYzNSw3IEBAIEdQVVByb2Nlc3NQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAKIEdQVVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwCiBMaWJXZWJS
VENDb2RlY3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIExpYldlYlJUQ0NvZGVjc01lc3NhZ2VS
ZWNlaXZlci5jcHAKK1JlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1v
dGVNZWRpYVJlY29yZGVyc01lc3NhZ2VSZWNlaXZlci5jcHAKIFNlcnZpY2VXb3JrZXJGZXRjaFRh
c2tNZXNzYWdlUmVjZWl2ZXIuY3BwCiBUZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCAxYjU4ODY4ZjUyZWNmNzEzMzJiOTRmOGQ0YjEyNGVhYjhmOWFlNzUzLi5l
MmU3MTM0ZmFiNGIwNzg2NGFjZGJhZDlmZTA4MTgzNjYyOWE3MmZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMzMjksNiArMzMyOSwx
NyBAQAogCQk0MTcyMTk4QzIzQjYxMkU4MDBBRTU2ODYgLyogUlRDRGVjb2RlcklkZW50aWZpZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDRGVjb2RlcklkZW50aWZpZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3MjE5OEQyM0I2MkM3QzAwQUU1Njg2
IC8qIExpYldlYlJUQ0NvZGVjcy5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaWJXZWJSVENDb2RlY3MubWVz
c2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzY5MDEzMjJGREQ0MUIw
MEIxNTc2RCAvKiBOZXR3b3JrUlRDUHJvdmlkZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBOZXR3b3JrUlRDUHJvdmlkZXIubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQxNzZFODkyMjNDMzRENkUwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJv
dmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFSZWNvcmRlclByb3ZpZGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODkzMjNDMzRENkYwMDNFODNGRSAvKiBNZWRpYVJl
Y29yZGVyUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFSZWNvcmRlclByb3Zp
ZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OTQyM0MzNEUyNjAw
M0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJQcml2YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OTUyM0MzNEUyNzAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQ
cml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJQ
cml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODk3MjNDMzYxQkQw
MDNFODNGRSAvKiBNZWRpYVJlY29yZGVySWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNZWRpYVJlY29yZGVySWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0MTc2RTg5ODIzQzM2Njc3MDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNv
cmRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJlY29y
ZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODk5MjNDMzZEOEUwMDNF
ODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVNZWRpYVJlY29yZGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0MTc2RTg5QTIzQzM2RjcxMDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlcnMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZWNvcmRl
cnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc2RTg5QjIzQzM3MjIyMDAz
RTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlcnMubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gUmVtb3RlTWVkaWFSZWNvcmRlcnMubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQxNzZFODlDMjNDMzc0NzkwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJl
Y29yZGVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVj
b3JkZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODlE
MjNDMzc2RDUwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVjb3JkZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc5MTVBQzIyNTZCQjc0MDBENkY5N0UgLyogV2ViU29j
a2V0Q2hhbm5lbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJT
b2NrZXRDaGFubmVsLmNwcDsgcGF0aCA9IE5ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzkxNUFEMjI1NkJCNzQwMEQ2Rjk3RSAvKiBX
ZWJTb2NrZXRDaGFubmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlNv
Y2tldENoYW5uZWwuaDsgcGF0aCA9IE5ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc5MTVCMDIyNTZDMEQ2MDBENkY5N0UgLyogV2ViU29j
a2V0Q2hhbm5lbE1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2Vi
U29ja2V0Q2hhbm5lbE1hbmFnZXIuaDsgcGF0aCA9IE5ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbE1h
bmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcxMzAsNiArNzE0MSwxMSBA
QAogCQkJCTQxNzIxOThBMjNCNjEyODIwMEFFNTY4NiAvKiBMaWJXZWJSVENDb2RlY3MuY3BwICov
LAogCQkJCTQxNzIxOTg5MjNCNjEyODIwMEFFNTY4NiAvKiBMaWJXZWJSVENDb2RlY3MuaCAqLywK
IAkJCQk0MTcyMTk4RDIzQjYyQzdDMDBBRTU2ODYgLyogTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2Vz
LmluICovLAorCQkJCTQxNzZFODk3MjNDMzYxQkQwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVySWRl
bnRpZmllci5oICovLAorCQkJCTQxNzZFODk0MjNDMzRFMjYwMDNFODNGRSAvKiBNZWRpYVJlY29y
ZGVyUHJpdmF0ZS5jcHAgKi8sCisJCQkJNDE3NkU4OTUyM0MzNEUyNzAwM0U4M0ZFIC8qIE1lZGlh
UmVjb3JkZXJQcml2YXRlLmggKi8sCisJCQkJNDE3NkU4OTMyM0MzNEQ2RjAwM0U4M0ZFIC8qIE1l
ZGlhUmVjb3JkZXJQcm92aWRlci5jcHAgKi8sCisJCQkJNDE3NkU4OTIyM0MzNEQ2RTAwM0U4M0ZF
IC8qIE1lZGlhUmVjb3JkZXJQcm92aWRlci5oICovLAogCQkJCTQxNzIxOThDMjNCNjEyRTgwMEFF
NTY4NiAvKiBSVENEZWNvZGVySWRlbnRpZmllci5oICovLAogCQkJKTsKIAkJCXBhdGggPSB3ZWJy
dGM7CkBAIC03MTQxLDYgKzcxNTcsMTIgQEAKIAkJCQk0MUUwQTdDNjIzQjYzOTc4MDA1NjEwNjAg
LyogTGliV2ViUlRDQ29kZWNzUHJveHkuaCAqLywKIAkJCQk0MUUwQTdDNzIzQjYzOTc5MDA1NjEw
NjAgLyogTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJNDFFMEE3Qzgy
M0I2Mzk3OTAwNTYxMDYwIC8qIExpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tICovLAorCQkJCTQxNzZF
ODlEMjNDMzc2RDUwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyLmNwcCAqLywKKwkJCQk0
MTc2RTg5ODIzQzM2Njc3MDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlci5oICovLAorCQkJ
CTQxNzZFODlDMjNDMzc0NzkwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2Vz
LmluICovLAorCQkJCTQxNzZFODlBMjNDMzZGNzEwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29y
ZGVycy5jcHAgKi8sCisJCQkJNDE3NkU4OTkyM0MzNkQ4RTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlh
UmVjb3JkZXJzLmggKi8sCisJCQkJNDE3NkU4OUIyM0MzNzIyMjAwM0U4M0ZFIC8qIFJlbW90ZU1l
ZGlhUmVjb3JkZXJzLm1lc3NhZ2VzLmluICovLAogCQkJKTsKIAkJCXBhdGggPSB3ZWJydGM7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmRlMmQ2NmJmYmNiNDlkOTM4OTM4NjU4YzAwMGVhMzFkOTJlYmY3MjcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUmVjb3JkZXJQ
cm92aWRlci5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCIKKworI2lmIFBMQVRGT1JN
KENPQ09BKQorI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oIgorI2VuZGlm
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQ
cml2YXRlPiBNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRl
KE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAg
IHJldHVybiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmNyZWF0ZShzdHJlYW0pOworI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0oc3RyZWFtKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyNlbmRp
ZgorfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUmVjb3JkZXJQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTBlOGQ0ODFmODZhMzVk
MGQ5ZWU5ZmI4M2VhZWU2NmRjNzlkZmNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaApAQCAtMCwwICsx
LDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgTWVkaWFSZWNvcmRlclByaXZhdGU7CitjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7
CisKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIE1lZGlhUmVjb3JkZXJQcm92aWRlciB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFVuaXF1ZVJlZjxNZWRp
YVJlY29yZGVyUHJvdmlkZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIG1ha2VVbmlxdWVSZWY8TWVkaWFS
ZWNvcmRlclByb3ZpZGVyPigpOyB9CisgICAgdmlydHVhbCB+TWVkaWFSZWNvcmRlclByb3ZpZGVy
KCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRl
clByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKE1lZGlhU3RyZWFtUHJpdmF0ZSYp
OworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvTWVkaWFSZWNvcmRlcklkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL01lZGlhUmVjb3JkZXJJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJmMDRlMzMz
ZmU4NDYzMjNjY2NlNzkzODVjYTc1MmI1NjQxOTNlZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJJZGVudGlmaWVyLmgK
QEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8
d3RmL09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2VudW0gTWVk
aWFSZWNvcmRlcklkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIE1lZGlhUmVjb3JkZXJJZGVudGlm
aWVyID0gT2JqZWN0SWRlbnRpZmllcjxNZWRpYVJlY29yZGVySWRlbnRpZmllclR5cGU+OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
OGJhZmJjMjU5YjgxNWQxZjZhOWE4MGM5ZDAwNmVmNzM4MzAwMGYzCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZh
dGUuY3BwCkBAIC0wLDAgKzEsMTM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlLmgiCisKKyNpbmNsdWRlICJSZW1vdGVN
ZWRpYVJlY29yZGVyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlY29yZGVyc01l
c3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL01lZGlhU3RyZWFtUHJpdmF0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5o
PgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwordXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitNZWRpYVJlY29yZGVy
UHJpdmF0ZTo6TWVkaWFSZWNvcmRlclByaXZhdGUoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJiBz
dHJlYW0pCisgICAgOiBtX2lkZW50aWZpZXIoTWVkaWFSZWNvcmRlcklkZW50aWZpZXI6OmdlbmVy
YXRlKCkpCisgICAgLCBtX2Nvbm5lY3Rpb24oV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJl
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkpCit7CisgICAgLy8gRklYTUU6IHdl
IHdpbGwgbmVlZCB0byBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgYXVkaW8vdmlkZW8g
dHJhY2tzCisgICAgLy8gQ3VycmVudGx5IHdlIG9ubHkgY2hvb3NlIHRoZSBmaXJzdCB0cmFjayBh
cyB0aGUgcmVjb3JkZWQgdHJhY2suCisgICAgLy8gRklYTUU6IFdlIHdvdWxkIGJldHRlciB0byB0
aHJvdyBhbiBleGNlcHRpb24gdG8gSmF2YVNjcmlwdCBpZiB3cml0ZXIgY3JlYXRpb24gZmFpbHMu
CisKKyAgICBjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogYXVkaW9UcmFjayB7IG51bGxw
dHIgfTsKKyAgICBjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogdmlkZW9UcmFjayB7IG51
bGxwdHIgfTsKKyAgICBmb3IgKGF1dG8mIHRyYWNrIDogc3RyZWFtLnRyYWNrcygpKSB7CisgICAg
ICAgIGlmICghdHJhY2stPmVuYWJsZWQoKSB8fCB0cmFjay0+ZW5kZWQoKSkKKyAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICBzd2l0Y2ggKHRyYWNrLT50eXBlKCkpIHsKKyAgICAgICAgY2Fz
ZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzogeworICAgICAgICAgICAgYXV0byYg
c2V0dGluZ3MgPSB0cmFjay0+c2V0dGluZ3MoKTsKKyAgICAgICAgICAgIGlmICghdmlkZW9UcmFj
ayAmJiBzZXR0aW5ncy5zdXBwb3J0c1dpZHRoKCkgJiYgc2V0dGluZ3Muc3VwcG9ydHNIZWlnaHQo
KSkgeworICAgICAgICAgICAgICAgIHZpZGVvVHJhY2sgPSB0cmFjay5nZXQoKTsKKyAgICAgICAg
ICAgICAgICBtX3JlY29yZGVkVmlkZW9UcmFja0lEID0gdmlkZW9UcmFjay0+aWQoKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW86CisgICAgICAgICAgICBpZiAoIWF1ZGlvVHJh
Y2spIHsKKyAgICAgICAgICAgICAgICBtX3JpbmdCdWZmZXIgPSBtYWtlVW5pcXVlPENBUmluZ0J1
ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4odGhpcykpOworICAg
ICAgICAgICAgICAgIGF1ZGlvVHJhY2sgPSB0cmFjay5nZXQoKTsKKyAgICAgICAgICAgICAgICBt
X3JlY29yZGVkQXVkaW9UcmFja0lEID0gYXVkaW9UcmFjay0+aWQoKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5
cGU6Ok5vbmU6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBtX2Nv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXJzOjpDcmVhdGVSZWNv
cmRlciB7IG1faWRlbnRpZmllciwgISFhdWRpb1RyYWNrLCB2aWRlb1RyYWNrID8gdmlkZW9UcmFj
ay0+c2V0dGluZ3MoKS53aWR0aCgpIDogMCwgdmlkZW9UcmFjayA/IHZpZGVvVHJhY2stPnNldHRp
bmdzKCkuaGVpZ2h0KCkgOiAwIH0sIDApOworfQorCitNZWRpYVJlY29yZGVyUHJpdmF0ZTo6fk1l
ZGlhUmVjb3JkZXJQcml2YXRlKCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
OlJlbW90ZU1lZGlhUmVjb3JkZXJzOjpSZWxlYXNlUmVjb3JkZXIgeyBtX2lkZW50aWZpZXIgfSwg
MCk7Cit9CisKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQo
V2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBXZWJDb3JlOjpNZWRpYVNh
bXBsZSYgc2FtcGxlKQoreworICAgIGlmICh0cmFjay5pZCgpICE9IG1fcmVjb3JkZWRWaWRlb1Ry
YWNrSUQpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoYXV0byByZW1vdGVTYW1wbGUgPSBSZW1v
dGVWaWRlb1NhbXBsZTo6Y3JlYXRlKHNhbXBsZSkpCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6VmlkZW9TYW1wbGVBdmFpbGFibGUgeyBX
VEZNb3ZlKCpyZW1vdGVTYW1wbGUpIH0sIG1faWRlbnRpZmllcik7Cit9CisKK3ZvaWQgTWVkaWFS
ZWNvcmRlclByaXZhdGU6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZSYgdHJhY2ssIGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgUGxhdGZv
cm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVz
Y3JpcHRpb24sIHNpemVfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBpZiAodHJhY2suaWQoKSAh
PSBtX3JlY29yZGVkQXVkaW9UcmFja0lEKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9k
ZXNjcmlwdGlvbiAhPSBkZXNjcmlwdGlvbikgeworICAgICAgICBBU1NFUlQoZGVzY3JpcHRpb24u
cGxhdGZvcm1EZXNjcmlwdGlvbigpLnR5cGUgPT0gUGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRp
b1N0cmVhbUJhc2ljVHlwZSk7CisgICAgICAgIG1fZGVzY3JpcHRpb24gPSAqV1RGOjpnZXQ8Y29u
c3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNj
cmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKKworICAgICAgICAvLyBBbGxvY2F0ZSBhIHJpbmcgYnVm
ZmVyIGxhcmdlIGVub3VnaCB0byBjb250YWluIDIgc2Vjb25kcyBvZiBhdWRpby4KKyAgICAgICAg
bV9udW1iZXJPZkZyYW1lcyA9IG1fZGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgpICogMjsKKyAgICAg
ICAgbV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShtX2Rlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9u
KCksIG1fbnVtYmVyT2ZGcmFtZXMpOworICAgIH0KKworICAgIEFTU0VSVChpczxXZWJBdWRpb0J1
ZmZlckxpc3Q+KGF1ZGlvRGF0YSkpOworICAgIG1fcmluZ0J1ZmZlci0+c3RvcmUoZG93bmNhc3Q8
V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRpb0RhdGEpLmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRp
bWUudGltZVZhbHVlKCkpOworICAgIHVpbnQ2NF90IHN0YXJ0RnJhbWU7CisgICAgdWludDY0X3Qg
ZW5kRnJhbWU7CisgICAgbV9yaW5nQnVmZmVyLT5nZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRG
cmFtZSwgZW5kRnJhbWUpOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3Rl
TWVkaWFSZWNvcmRlcjo6QXVkaW9TYW1wbGVzQXZhaWxhYmxlIHsgdGltZSwgbnVtYmVyT2ZGcmFt
ZXMsIHN0YXJ0RnJhbWUsIGVuZEZyYW1lIH0sIG1faWRlbnRpZmllcik7Cit9CisKK3ZvaWQgTWVk
aWFSZWNvcmRlclByaXZhdGU6OnN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSogc3RvcmFnZSkK
K3sKKyAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7CisgICAgaWYgKHN0b3JhZ2UpCisg
ICAgICAgIHN0b3JhZ2UtPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVj
dGlvbjo6UmVhZE9ubHkpOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3Rl
TWVkaWFSZWNvcmRlcjo6QXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQgeyBoYW5kbGUsIG1fZGVz
Y3JpcHRpb24sIHN0YXRpY19jYXN0PHVpbnQ2NF90PihtX251bWJlck9mRnJhbWVzKSB9LCBtX2lk
ZW50aWZpZXIpOworfQorCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpmZXRjaERhdGEoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmLCBjb25z
dCBTdHJpbmcmIG1pbWVUeXBlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBtX2Nvbm5l
Y3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6
RmV0Y2hEYXRhIHsgfSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKGF1dG8mJiBkYXRhLCBhdXRvJiYgbWltZVR5cGUpIG11dGFibGUgeworICAgICAgICBS
ZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXI7CisgICAgICAgIGlmICghZGF0YS5zaXplKCkpCisg
ICAgICAgICAgICBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLmRhdGEoKSwgZGF0
YS5zaXplKCkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGJ1ZmZlciksIG1p
bWVUeXBlKTsKKyAgICB9LCBtX2lkZW50aWZpZXIpOworfQorCit2b2lkIE1lZGlhUmVjb3JkZXJQ
cml2YXRlOjpzdG9wUmVjb3JkaW5nKCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OlN0b3BSZWNvcmRpbmcgeyB9LCBtX2lkZW50aWZpZXIp
OworfQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVk
aWFSZWNvcmRlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L01lZGlhUmVjb3JkZXJQcml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWY4OWViMzk3MGRiZjIxZTYzMmIx
ZmU4ZmZlZDIwZjU5MjMyNWU2ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKQEAgLTAsMCArMSw3MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLmgi
CisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L01lZGlhUmVjb3JkZXJQcml2YXRlLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVj
dGlvbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIE1lZGlhUmVjb3JkZXJQcml2
YXRlIGZpbmFsIDogcHVibGljIFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlLCBwdWJsaWMg
U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OkNsaWVudCB7CisgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgTWVkaWFSZWNvcmRlclByaXZhdGUoY29uc3Qg
V2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlJik7CisgICAgfk1lZGlhUmVjb3JkZXJQcml2YXRl
KCk7CisKK3ByaXZhdGU6CisgICAgLy8gV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGUKKyAg
ICB2b2lkIHNhbXBsZUJ1ZmZlclVwZGF0ZWQoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmLCBXZWJDb3JlOjpNZWRpYVNhbXBsZSYpIGZpbmFsOworICAgIHZvaWQgYXVkaW9TYW1wbGVz
QXZhaWxhYmxlKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgY29uc3QgV1RGOjpN
ZWRpYVRpbWUmLCBjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IFdlYkNv
cmU6OkF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOworICAgIHZvaWQgZmV0
Y2hEYXRhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZl
cj4mJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk+JiYpIGZpbmFsOworICAgIHZvaWQgc3RvcFJl
Y29yZGluZygpIGZpbmFsOworCisgICAgLy8gU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OkNsaWVu
dAorICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5Kik7CisKKyAgICBNZWRpYVJl
Y29yZGVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9u
PiBtX2Nvbm5lY3Rpb247CisgICAgU3RyaW5nIG1fcmVjb3JkZWRBdWRpb1RyYWNrSUQ7CisgICAg
U3RyaW5nIG1fcmVjb3JkZWRWaWRlb1RyYWNrSUQ7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2Vi
Q29yZTo6Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZmZXI7CisgICAgV2ViQ29yZTo6Q0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb24geyB9OworICAgIGludDY0X3QgbV9udW1iZXJP
ZkZyYW1lcyB7IDAgfTsKK307CisKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBF
TkFCTEUoR1BVX1BST0NFU1MpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjA0MGM3YTRlYWNlZmQyYzdlYjE2YWRmY2NlNjliODE2OGM0ZTdkYmUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJv
dmlkZXIuY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgiCisKKyNpbmNsdWRlICJNZWRp
YVJlY29yZGVyUHJpdmF0ZS5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK3N0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJp
dmF0ZT4gTWVkaWFSZWNvcmRlclByb3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShj
b25zdCBNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKK3sKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisgICAgaWYgKCFtX3VzZUdQVVByb2Nlc3MpCisgICAgICAgIHJldHVybiBXZWJDb3JlOjpN
ZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKHN0cmVhbSk7
CisKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxNZWRpYVJlY29yZGVyUHJpdmF0ZT4oc3RyZWFtKTsK
KyNlbHNlCisgICAgcmV0dXJuIFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcjo6Y3JlYXRl
TWVkaWFSZWNvcmRlclByaXZhdGUoc3RyZWFtKTsKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NF
U1MpCit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmNmMjcwMWUwZTU2
NzU3YmM1YTBlYjc5NzBjY2E1NjM2MDQ0MGI3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5oCkBAIC0w
LDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYkNv
cmUvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBNZWRpYVJlY29yZGVyUHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6TWVkaWFSZWNv
cmRlclByb3ZpZGVyIHsKK3B1YmxpYzoKKyAgICBNZWRpYVJlY29yZGVyUHJvdmlkZXIoKSA9IGRl
ZmF1bHQ7CisKK3ByaXZhdGU6CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Ok1lZGlhUmVj
b3JkZXJQcml2YXRlPiBjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShjb25zdCBXZWJDb3JlOjpN
ZWRpYVN0cmVhbVByaXZhdGUmKSBmaW5hbDsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZWQ0MmJkMTk5OGU0YWRlYzhkMjFmNDVl
NjFjYTBlN2RiOTgxZWY5MS4uM2NhOGJlOGVmNzdmOTI3ODk3N2Q3YzMyNTQ5YzY1MWQ0MWVhY2Nk
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAg
LTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJMaWJXZWJSVENQcm92aWRlci5oIgogI2luY2x1ZGUg
IkxvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk1lZGlh
UmVjb3JkZXJQcm92aWRlci5oIgogI2luY2x1ZGUgIk5ldHNjYXBlUGx1Z2luLmgiCiAjaW5jbHVk
ZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgpAQCAtNDYwLDcgKzQ2MSw4IEBAIFdlYlBhZ2U6Oldl
YlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYg
cGFyYW1ldGVycykKICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuY2FjaGVTdG9yYWdl
UHJvdmlkZXIoKSwKICAgICAgICAgV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OmNyZWF0ZSgqdGhp
cyksCiAgICAgICAgIFdlYkNvb2tpZUphcjo6Y3JlYXRlKCksCi0gICAgICAgIG1ha2VVbmlxdWVS
ZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50PigqdGhpcykKKyAgICAgICAgbWFrZVVuaXF1ZVJl
ZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCp0aGlzKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJl
ZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKICAgICApOwogICAgIHBhZ2VDb25maWd1cmF0aW9u
LmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnQoKnRoaXMpOwogI2lmIEVOQUJMRShD
T05URVhUX01FTlVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CmluZGV4IDRjNDE4NjRkODlmNDA1NjdlZDgxZWQyZWZlZmI1MDFmNjc1M2RiODQuLjIwYjE2Y2E0
YWNkNjQwNzBiNTU0ZDMzNDgyMWFkNDQ3N2YzYzQ0MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTM3LDYgKzM3LDcgQEAKICNpbXBvcnQgIkRPTUlu
dGVybmFsLmgiCiAjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVJhbmdl
SW50ZXJuYWwuaCIKKyNpbXBvcnQgIk1lZGlhUmVjb3JkZXJQcml2YXRlLmgiCiAjaW1wb3J0ICJQ
YWdlU3RvcmFnZVNlc3Npb25Qcm92aWRlci5oIgogI2ltcG9ydCAiU3RvcmFnZVRocmVhZC5oIgog
I2ltcG9ydCAiV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmgiCkBAIC0xNDQ4LDcgKzE0NDksOCBA
QCBzdGF0aWMgdm9pZCBXZWJLaXRJbml0aWFsaXplR2FtZXBhZFByb3ZpZGVySWZOZWNlc3Nhcnko
KQogICAgICAgICBXZWJDb3JlOjpDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlKCksCiAgICAg
ICAgIEJhY2tGb3J3YXJkTGlzdDo6Y3JlYXRlKHNlbGYpLAogICAgICAgICBXZWJDb3JlOjpDb29r
aWVKYXI6OmNyZWF0ZShzdG9yYWdlUHJvdmlkZXIuY29weVJlZigpKSwKLSAgICAgICAgbWFrZVVu
aXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KHNlbGYpCisgICAgICAgIG1ha2VVbmlx
dWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50PihzZWxmKSwKKyAgICAgICAgV2ViQ29yZTo6
TWVkaWFSZWNvcmRlclByb3ZpZGVyOjpjcmVhdGUoKQogICAgICk7CiAjaWYgIVBMQVRGT1JNKElP
U19GQU1JTFkpCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNo
cm9tZUNsaWVudChzZWxmKTsKQEAgLTE3MTcsNyArMTcxOSw4IEBAIHN0YXRpYyB2b2lkIFdlYktp
dEluaXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiAgICAgICAgIFdlYkNvcmU6
OkNhY2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUoKSwKICAgICAgICAgQmFja0ZvcndhcmRMaXN0
OjpjcmVhdGUoc2VsZiksCiAgICAgICAgIFdlYkNvcmU6OkNvb2tpZUphcjo6Y3JlYXRlKHN0b3Jh
Z2VQcm92aWRlci5jb3B5UmVmKCkpLAotICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNz
VHJhY2tlckNsaWVudD4oc2VsZikKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1Ry
YWNrZXJDbGllbnQ+KHNlbGYpLAorICAgICAgICBNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0
ZSgpCiAgICAgKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2Vi
Q2hyb21lQ2xpZW50SU9TKHNlbGYpOwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386848</attachid>
            <date>2020-01-06 08:33:59 -0800</date>
            <delta_ts>2020-01-06 08:55:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205802-20200106173357.patch</filename>
            <type>text/plain</type>
            <size>91415</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTY1NWRkZmQ4ZWEzZmM5
YWIyYjQ0ODhjZjJhNjQ2ODU3YWFmZGQ5MC4uZWJhMzNhMjcyNjc3NWQ1YTI0YjFhYjZjZjJhMmYw
N2VlNDBhZGFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIwLTAxLTA2ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgTWVkaWFS
ZWNvcmRlciBiYWNrZW5kIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTgwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMgYXMgTWVkaWFS
ZWNvcmRlciBpbXBsZW1lbnRhdGlvbiBpbiBXZWJLaXRUZXN0UnVubmVyIHdpbGwgdXNlIEdQVVBy
b2Nlc3MuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUpOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmg6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29y
ZGVyUHJpdmF0ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3Jk
ZXJQcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGlu
LmNwcDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAg
ICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAg
ICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Om1lZGlhUmVjb3Jk
ZXJQcm92aWRlcik6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOgorICAg
ICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
cjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVBy
aXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZS5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnRlcm5hbHM6OnNldFVzZUdQVVByb2Nlc3NGb3JXZWJSVEMpOgorCiAyMDIwLTAxLTA2
ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBYTUxIVFRQUmVx
dWVzdCBQT1NUcyBibG9iIGRhdGEgdG8gYSBjdXN0b20gV0tVUkxTY2hlbWVIYW5kbGVyIHByb3Rv
Y29sIGNyYXNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ0N2VkMzAyODY1OWY3OWJkZWE3N2I2ZWY4NGFmZThhZTc0
YWE2Y2IuLjk0MGEzZjIyZGJjMmFiODYxMjg1YWVkMmUzNTA3YTYyYTAxMzIwMzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNjMgQEAKKzIwMjAtMDEtMDYgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBNZWRpYVJlY29yZGVyIGJhY2tlbmQgaW4gR1BV
UHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA1ODAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6dXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
Om1lZGlhUmVjb3JkZXJzKToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWFjL2NvbS5hcHBsZS5X
ZWJLaXQuR1BVUHJvY2Vzcy5zYi5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVNZWRpYVJlY29yZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UmVjb3JkZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXI6
OlJlbW90ZU1lZGlhUmVjb3JkZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29y
ZGVyOjp+UmVtb3RlTWVkaWFSZWNvcmRlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UmVjb3JkZXI6OnN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVy
OjphdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUmVjb3JkZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUmVjb3JkZXI6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6ZmV0Y2hEYXRhKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFSZWNvcmRlcjo6c3RvcFJlY29yZGluZyk6CisgICAgICAgICogR1BVUHJvY2Vzcy93
ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAg
KiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyczo6UmVtb3RlTWVkaWFSZWNvcmRlcnMp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyczo6flJlbW90ZU1lZGlhUmVj
b3JkZXJzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcnM6OmRpZFJlY2Vp
dmVSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUmVjb3JkZXJzOjpjcmVhdGVSZWNvcmRlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUmVjb3JkZXJzOjpyZWxlYXNlUmVjb3JkZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJzLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVJlY29yZGVyczo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vzcyk6CisgICAg
ICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMubWVzc2FnZXMuaW46
IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAq
IFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaDogQWRk
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJJZGVudGlm
aWVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29y
ZGVyUHJpdmF0ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJp
dmF0ZTo6TWVkaWFSZWNvcmRlclByaXZhdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29y
ZGVyUHJpdmF0ZTo6fk1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVk
aWFSZWNvcmRlclByaXZhdGU6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQpOgorICAgICAgICAoV2ViS2l0
OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6OnN0b3JhZ2VDaGFuZ2VkKToKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6OmZldGNoRGF0YSk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdG9wUmVjb3JkaW5nKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaDogQWRkZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVj
b3JkZXJQcml2YXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNv
cmRlclByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9vdmVycmlkZGVuTWVkaWFUeXBlKToKKwogMjAy
MC0wMS0wNSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTWVkaWEgaW4gR1BVIHByb2Nlc3NdIEFkZCByZW1vdGUgTUlNRSB0eXBlIGNhY2hlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNDRhZjI4NmU0M2MwOTFhYjg0OGMxNDA4MzY2Y2U2
OWZjZmZmNTZjZS4uNWU0MmY1N2ZmNTRmNjkwOTBiNWRjZWVlNGY1NzBmMGY5ZDU2OGNmMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAxLTA2ICB5
b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgTWVk
aWFSZWNvcmRlciBiYWNrZW5kIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTgwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAo
LVtXZWJWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6Z3JvdXBOYW1lOl0p
OgorICAgICAgICAoLVtXZWJWaWV3IGluaXRTaW1wbGVIVE1MRG9jdW1lbnRXaXRoU3R5bGU6ZnJh
bWU6cHJlZmVyZW5jZXM6Z3JvdXBOYW1lOl0pOgorCiAyMDIwLTAxLTA1ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBhIHNvdWNlIG9mIFdlYktp
dDEgdGVzdCBmbGFraW5lc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcAppbmRleCA5OTFlYTJhMGYzZDIyNDRkZjFlOGVl
MjdmNzkwODZkM2VjNDNkNmYwLi5hZGYzNTA0ODg3YTIzNzE3N2E0ZDlkNmZhYTljN2YzYTMxMzJk
MjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXIuY3BwCkBAIC0zNCw2ICszNCw4IEBACiAjaW5jbHVkZSAiRXZlbnROYW1l
cy5oIgogI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmgiCiAjaW5jbHVkZSAiTWVk
aWFSZWNvcmRlclByaXZhdGUuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCIK
KyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAi
V2luZG93RXZlbnRMb29wLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KQEAg
LTUwLDcgKzUyLDcgQEAgY3JlYXRvckZ1bmN0aW9uIE1lZGlhUmVjb3JkZXI6Om1fY3VzdG9tQ3Jl
YXRvciA9IG51bGxwdHI7CiAKIEV4Y2VwdGlvbk9yPFJlZjxNZWRpYVJlY29yZGVyPj4gTWVkaWFS
ZWNvcmRlcjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgUmVmPE1lZGlhU3RyZWFtPiYmIHN0
cmVhbSwgT3B0aW9ucyYmIG9wdGlvbnMpCiB7Ci0gICAgYXV0byBwcml2YXRlSW5zdGFuY2UgPSBN
ZWRpYVJlY29yZGVyOjpnZXRQcml2YXRlSW1wbChzdHJlYW0tPnByaXZhdGVTdHJlYW0oKSk7Cisg
ICAgYXV0byBwcml2YXRlSW5zdGFuY2UgPSBNZWRpYVJlY29yZGVyOjpjcmVhdGVNZWRpYVJlY29y
ZGVyUHJpdmF0ZShkb2N1bWVudCwgc3RyZWFtLT5wcml2YXRlU3RyZWFtKCkpOwogICAgIGlmICgh
cHJpdmF0ZUluc3RhbmNlKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVk
RXJyb3IsICJUaGUgTWVkaWFSZWNvcmRlciBpcyB1bnN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3Jt
Il9zIH07CiAgICAgYXV0byByZWNvcmRlciA9IGFkb3B0UmVmKCpuZXcgTWVkaWFSZWNvcmRlcihk
b2N1bWVudCwgV1RGTW92ZShzdHJlYW0pLCBXVEZNb3ZlKHByaXZhdGVJbnN0YW5jZSksIFdURk1v
dmUob3B0aW9ucykpKTsKQEAgLTYzLDE3ICs2NSwxNiBAQCB2b2lkIE1lZGlhUmVjb3JkZXI6OnNl
dEN1c3RvbVByaXZhdGVSZWNvcmRlckNyZWF0b3IoY3JlYXRvckZ1bmN0aW9uIGNyZWF0b3IpCiAg
ICAgbV9jdXN0b21DcmVhdG9yID0gY3JlYXRvcjsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPE1lZGlh
UmVjb3JkZXJQcml2YXRlPiBNZWRpYVJlY29yZGVyOjpnZXRQcml2YXRlSW1wbChjb25zdCBNZWRp
YVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJp
dmF0ZT4gTWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoRG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBpZiAo
bV9jdXN0b21DcmVhdG9yKQogICAgICAgICByZXR1cm4gbV9jdXN0b21DcmVhdG9yKCk7CiAgICAg
Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgcmV0dXJuIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZG
SW1wbDo6Y3JlYXRlKHN0cmVhbSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzdHJlYW0pOwot
ICAgIHJldHVybiBudWxscHRyOwotI2VuZGlmCisgICAgYXV0byogcGFnZSA9IGRvY3VtZW50LnBh
Z2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0
dXJuIHBhZ2UtPm1lZGlhUmVjb3JkZXJQcm92aWRlcigpLmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2
YXRlKHN0cmVhbSk7CiB9CiAKIE1lZGlhUmVjb3JkZXI6Ok1lZGlhUmVjb3JkZXIoRG9jdW1lbnQm
IGRvY3VtZW50LCBSZWY8TWVkaWFTdHJlYW0+JiYgc3RyZWFtLCBzdGQ6OnVuaXF1ZV9wdHI8TWVk
aWFSZWNvcmRlclByaXZhdGU+JiYgcHJpdmF0ZUltcGwsIE9wdGlvbnMmJiBvcHRpb24pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRl
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIu
aAppbmRleCBlYjZmOTZhNmFlMGEzOWJhMTBiNTIwYmI5OGNjNGVlMWI1MzkzNzQ0Li4wNjM5NTJh
OTY3ZGFjMjJhMjc0ZjU0N2FlNGNiY2FlMmNlNmRhZDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKQEAgLTc1LDcgKzc1
LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBNZWRpYVJlY29yZGVyKERvY3VtZW50JiwgUmVm
PE1lZGlhU3RyZWFtPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+JiYs
IE9wdGlvbnMmJiA9IHsgfSk7CiAKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVj
b3JkZXJQcml2YXRlPiBnZXRQcml2YXRlSW1wbChjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmKTsK
KyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBjcmVhdGVN
ZWRpYVJlY29yZGVyUHJpdmF0ZShEb2N1bWVudCYsIGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYp
OwogICAgIAogICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
UHJvdmlkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ZWM1ZWE5YzA1NmYyZDc5N2YzZTFkNDg4ODE0NWVj
YjFkNjBjYjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92
aWRlci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclBy
aXZhdGVBVkZJbXBsLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGQ6OnVu
aXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IE1lZGlhUmVjb3JkZXJQcm92aWRlcjo6Y3Jl
YXRlTWVkaWFSZWNvcmRlclByaXZhdGUoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0p
Cit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgcmV0dXJuIE1lZGlhUmVjb3JkZXJQcml2YXRl
QVZGSW1wbDo6Y3JlYXRlKHN0cmVhbSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShzdHJlYW0p
OworICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlk
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41ZGU0MTM0Y2MwMGRjMDdmMzFkNGQ2OGM2YzM1MmRlYzliNmI3MmVl
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXJQcm92aWRlci5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVJlY29yZGVy
UHJpdmF0ZTsKK2NsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZTsKKworY2xhc3MgV0VCQ09SRV9FWFBP
UlQgTWVkaWFSZWNvcmRlclByb3ZpZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
K3B1YmxpYzoKKyAgICBNZWRpYVJlY29yZGVyUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CisgICAgdmly
dHVhbCB+TWVkaWFSZWNvcmRlclByb3ZpZGVyKCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCBz
dGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3JkZXJQ
cml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYpOworCisgICAgdm9pZCBzZXRVc2VHUFVQ
cm9jZXNzKGJvb2wgdmFsdWUpIHsgbV91c2VHUFVQcm9jZXNzID0gdmFsdWU7IH0KKworcHJvdGVj
dGVkOgorICAgIGJvb2wgbV91c2VHUFVQcm9jZXNzIHsgZmFsc2UgfTsKK307CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1Bpbi5jcHAKaW5kZXggN2YwYzY1OWQ4
NGQxYmQyN2QyYTU2Yjg0YmVlOTE4ZWY1ODMyNmEzOC4uZTIxMGE4ZGI4ZGEwZjI2OTRjNWE0ZjVl
ZWU1ZTcxMTljZWYwNjg5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9maWRvL1Bpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9m
aWRvL1Bpbi5jcHAKQEAgLTQxLDkgKzQxLDE2IEBACiAjaW5jbHVkZSAiQ3J5cHRvS2V5QUVTLmgi
CiAjaW5jbHVkZSAiQ3J5cHRvS2V5RUMuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlITUFDLmgiCisj
aW5jbHVkZSAiRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuaCIKKyNpbmNsdWRlICJXZWJBdXRoZW50
aWNhdGlvbkNvbnN0YW50cy5oIgogI2luY2x1ZGUgPHBhbC9jcnlwdG8vQ3J5cHRvRGlnZXN0Lmg+
CiAKIG5hbWVzcGFjZSBmaWRvIHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwordXNpbmcgQ0JP
UiA9IGNib3I6OkNCT1JWYWx1ZTsKKworY29uc3RleHByIHNpemVfdCBrUmVzcG9uc2VDb2RlTGVu
Z3RoID0gMTsKKwogbmFtZXNwYWNlIHBpbiB7CiB1c2luZyBuYW1lc3BhY2UgY2JvcjsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAppbmRleCA5Mjk3ZDA0NGU0NDgyNzhkYmU3YzkxNjliYjMyNmM5ZGZiNzA0MjViLi5l
Y2JiNmIwOGRjZDY5YWIxYmRiNTE0ZjQyYjIyNDE5NTFiZTMzYWUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApA
QCAtMTUxLDYgKzE1MSw3IEBAIE1vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9z
dC5jcHAKIAogTW9kdWxlcy9tZWRpYXJlY29yZGVyL0Jsb2JFdmVudC5jcHAKIE1vZHVsZXMvbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcAorTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXJQcm92aWRlci5jcHAKIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
RXJyb3JFdmVudC5jcHAKIAogTW9kdWxlcy9tZWRpYXNlc3Npb24vSFRNTE1lZGlhRWxlbWVudE1l
ZGlhU2Vzc2lvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAwNzllOTQ2OWIxMWZiYmYxNjdhMTcwMjJmNTk5OTc0MGNmNjYx
YjU4Li4xM2QxNjRkMTc4ZTRlNTViNDYyOWM0ZTJhZWNlZDM2OTkzMDYzZDg4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDk5
LDYgKzEwOTksNyBAQAogCQk0MTc2MTJCMDFFM0E5OTQwMDBDM0Q4MUQgLyogTGliV2ViUlRDTWVk
aWFFbmRwb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDE3NjEyQUMxRTNBOTkzQjAwQzNEODFEIC8qIExpYldlYlJUQ01lZGlhRW5kcG9pbnQuaCAq
LzsgfTsKIAkJNDE3NjEyQjExRTNBOTk0MDAwQzNEODFEIC8qIExpYldlYlJUQ1BlZXJDb25uZWN0
aW9uQmFja2VuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MTc2MTJBRDFFM0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rpb25C
YWNrZW5kLmNwcCAqLzsgfTsKIAkJNDE3NjEyQjIxRTNBOTk0MDAwQzNEODFEIC8qIExpYldlYlJU
Q1BlZXJDb25uZWN0aW9uQmFja2VuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDE3NjEyQUUxRTNBOTkzQjAwQzNEODFEIC8qIExpYldlYlJUQ1BlZXJD
b25uZWN0aW9uQmFja2VuZC5oICovOyB9OworCQk0MTc2RTg5NjIzQzM1MzdCMDAzRTgzRkUgLyog
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTc2RTg4RjIzQzM0OEQyMDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclBy
b3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNDE3REE2RDkxMzczNEU2RTAwN0M1N0ZCIC8qIEludGVybmFscy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTdEQTRDRjEzNzM0MzI2MDA3QzU3
RkIgLyogSW50ZXJuYWxzLmNwcCAqLzsgfTsKIAkJNDE3REE2REExMzczNEU2RTAwN0M1N0ZCIC8q
IEludGVybmFscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDE3REE0Q0UxMzczNDMyNjAwN0M1N0ZCIC8qIEludGVybmFscy5oICovOyB9OwogCQk0MTdE
QTcxRDEzNzM1REZBMDA3QzU3RkIgLyogSlNJbnRlcm5hbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3REE3MUIxMzczNURGQTAwN0M1N0ZCIC8q
IEpTSW50ZXJuYWxzLmNwcCAqLzsgfTsKQEAgLTEzNzIsOSArMTM3Myw5IEBACiAJCTRCREVBMzJD
MjE4MDMzRUIwMDUyREZDRCAvKiBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCREVBMzJCMjE4MDMzRUIwMDUy
REZDRCAvKiBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuaCAqLzsgfTsKIAkJNEQzQjAwQUIyMTVE
NjlBNzAwNzZCOTgzIC8qIE1lZGlhUmVjb3JkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREM0IwMEE5MjE1RDY5QTcwMDc2Qjk4MyAvKiBNZWRpYVJl
Y29yZGVyLmggKi87IH07CiAJCTREM0IwMEFGMjE1RDZBNjkwMDc2Qjk4MyAvKiBCbG9iRXZlbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREM0IwMEFE
MjE1RDZBNjkwMDc2Qjk4MyAvKiBCbG9iRXZlbnQuaCAqLzsgfTsKLQkJNEQzQjUwMTYyMTdFNThC
NzAwNjY1REIxIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RDNCNTAxNDIxN0U1OEI3MDA2NjVEQjEgLyogTWVk
aWFSZWNvcmRlclByaXZhdGUuaCAqLzsgfTsKKwkJNEQzQjUwMTYyMTdFNThCNzAwNjY1REIxIC8q
IE1lZGlhUmVjb3JkZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0RDNCNTAxNDIxN0U1OEI3MDA2NjVEQjEgLyogTWVkaWFSZWNvcmRlclBy
aXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk0RDczRjk0NjIxOEJDNUZBMDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RDczRjk0
NDIxOEJDNUZBMDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmggKi87IH07
Ci0JCTRENzNGOTRFMjE4QzRBODcwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
ckNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
RDczRjk0QzIxOEM0QTg3MDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2Nv
YS5oICovOyB9OworCQk0RDczRjk0RTIxOEM0QTg3MDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNEQ3M0Y5NEMyMThDNEE4NzAwM0EzRUQ2IC8qIE1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyQ29jb2EuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk0REI3MTMwRDIxNkVDQjREMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZl
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREQjcx
MzBDMjE2RUMyQkQwMDk2QTRERCAvKiBNZWRpYVJlY29yZGVyRXJyb3JFdmVudC5oICovOyB9Owog
CQk0RTE5NTkyMjBBMzlEQUJBMDAyMjBGRTUgLyogTWVkaWFGZWF0dXJlTmFtZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRFMTk1OTIwMEEzOURBQkEw
MDIyMEZFNSAvKiBNZWRpYUZlYXR1cmVOYW1lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTRFMTk1OTJBMEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRp
YVF1ZXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
RTE5NTkyNDBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC03Mzk4LDYgKzczOTksOCBAQAogCQk0
MTc2MTJBRTFFM0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5k
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExpYldlYlJUQ1BlZXJDb25uZWN0
aW9uQmFja2VuZC5oOyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFj
a2VuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc2OTAwMzIyRkNEOEYyMDBC
MTU3NkQgLyogTWVkaWFTb3VyY2VSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNZWRpYVNvdXJjZVJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxNzY5MDA0MjJGQ0Q4RjIwMEIxNTc2RCAvKiBNZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU291cmNlUmVnaXN0cnku
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc2RTg4RjIzQzM0OEQyMDAzRTgz
RkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lZGlhUmVjb3JkZXJQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0MTc2RTg5MTIzQzM0Qjc1MDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJQcm92aWRlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzdGNTFDMjM4MjU0NDAwMEMwNDQ4NiAvKiBCYXNlQXVk
aW9TaGFyZWRVbml0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJh
c2VBdWRpb1NoYXJlZFVuaXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc3
RjUxRTIzODI1NDVFMDBDMDQ0ODYgLyogQmFzZUF1ZGlvU2hhcmVkVW5pdC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBCYXNlQXVkaW9TaGFyZWRVbml0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxN0RBNENFMTM3MzQzMjYwMDdDNTdGQiAvKiBJbnRlcm5hbHMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW50ZXJuYWxzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODkzMSw2ICsxODkzNCw4IEBACiAJCQkJNERCNzEzMEUy
MTZFRUJBRTAwOTZBNEREIC8qIE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmNwcCAqLywKIAkJCQk0
REI3MTMwQzIxNkVDMkJEMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaCAqLywK
IAkJCQk0REI3MTMwQTIxNkVDMkJDMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQu
aWRsICovLAorCQkJCTQxNzZFODkxMjNDMzRCNzUwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJv
dmlkZXIuY3BwICovLAorCQkJCTQxNzZFODhGMjNDMzQ4RDIwMDNFODNGRSAvKiBNZWRpYVJlY29y
ZGVyUHJvdmlkZXIuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWVkaWFyZWNvcmRlcjsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0zMTQ3Myw2ICszMTQ3OCw3IEBACiAJCQkJNEQzQjUw
MTYyMTdFNThCNzAwNjY1REIxIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0RDczRjk0NjIxOEJDNUZBMDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVB
VkZJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RDczRjk0RTIxOEM0QTg3MDAzQTNFRDYgLyog
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE3
NkU4OTYyM0MzNTM3QjAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92aWRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQzkwODQzRDAxQjE4RTQ3RDAwQjY4NTY0IC8qIE1lZGlhUmVtb3RlQ29udHJv
bHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEOEFDQThGMUQyMzk3MTkwMEVDQzU5RSAvKiBNZWRp
YVJlbW90ZVNvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRUVGQ0Q3QTE5REIzMUY3MDAz
ODc2RDcgLyogTWVkaWFSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDBlYjVhMTIwYWY4NzY1MzBjNWM2Y2Y3ZGFl
MDA5OTIxZmEzNjQyOWEuLjM1NmY2NTFkMTVjYjBjZGJhMGVkNWRmNzYxNWZkY2ZkNjIzNTBlNjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01Myw2ICs1Myw3IEBA
CiAjaW5jbHVkZSAiSURCQ29ubmVjdGlvblRvU2VydmVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9y
Q2xpZW50LmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJNZWRp
YVJlY29yZGVyUHJvdmlkZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrU3RvcmFnZVNlc3Npb24uaCIK
ICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRpb24uaCIKQEAgLTU3
MSwxMCArNTcyLDE0IEBAIFJlZjxTdG9yYWdlTmFtZXNwYWNlPiBFbXB0eVN0b3JhZ2VOYW1lc3Bh
Y2VQcm92aWRlcjo6Y3JlYXRlVHJhbnNpZW50TG9jYWxTdG9yYWdlCiAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgRW1wdHlTdG9yYWdlTmFtZXNwYWNlIHsgc2Vzc2lvbklEIH0pOwogfQogCi1jbGFz
cyBFbXB0eVN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIgOiBwdWJsaWMgU3RvcmFnZVNlc3Npb25Qcm92
aWRlciB7CitjbGFzcyBFbXB0eVN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIgZmluYWwgOiBwdWJsaWMg
U3RvcmFnZVNlc3Npb25Qcm92aWRlciB7CiAgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKiBzdG9y
YWdlU2Vzc2lvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KIH07CiAKK2NsYXNz
IEVtcHR5TWVkaWFSZWNvcmRlclByb3ZpZGVyIGZpbmFsIDogcHVibGljIE1lZGlhUmVjb3JkZXJQ
cm92aWRlciB7CisgICAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBjcmVh
dGVNZWRpYVJlY29yZGVyUHJpdmF0ZShjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmKSBmaW5hbCB7
IHJldHVybiBudWxscHRyOyB9Cit9OworCiBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJh
dGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIFBh
Z2VDb25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uIHsKQEAgLTU4NSw3ICs1OTAsOCBAQCBQ
YWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgICAgICBDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRl
KCksCiAgICAgICAgIGFkb3B0UmVmKCpuZXcgRW1wdHlCYWNrRm9yd2FyZENsaWVudCksCiAgICAg
ICAgIENvb2tpZUphcjo6Y3JlYXRlKGFkb3B0UmVmKCpuZXcgRW1wdHlTdG9yYWdlU2Vzc2lvblBy
b3ZpZGVyKSksCi0gICAgICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlQcm9ncmVzc1RyYWNrZXJDbGll
bnQ+KCkKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0eVByb2dyZXNzVHJhY2tlckNsaWVudD4o
KSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0eU1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQog
ICAgIH07CiAKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlDaHJvbWVDbGllbnQ+IGR1
bW15Q2hyb21lQ2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNzViNWZkMDFhNWJkNjYzMGY3
ZmVjNmI3ZTdlMjNiZmExMDAzZDgwMi4uM2VkOGM0MmFiNmUxMDlmZTdiNTA5NGVlMTkxZWQ5YjQx
NzRkNDYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0yNDYsNiArMjQ2LDcgQEAgUGFnZTo6UGFn
ZShQYWdlQ29uZmlndXJhdGlvbiYmIHBhZ2VDb25maWd1cmF0aW9uKQogI2lmIEVOQUJMRShTUEVF
Q0hfU1lOVEhFU0lTKQogICAgICwgbV9zcGVlY2hTeW50aGVzaXNDbGllbnQoV1RGTW92ZShwYWdl
Q29uZmlndXJhdGlvbi5zcGVlY2hTeW50aGVzaXNDbGllbnQpKQogI2VuZGlmCisgICAgLCBtX21l
ZGlhUmVjb3JkZXJQcm92aWRlcigoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5tZWRpYVJlY29y
ZGVyUHJvdmlkZXIpKSkKICAgICAsIG1fbGliV2ViUlRDUHJvdmlkZXIoV1RGTW92ZShwYWdlQ29u
ZmlndXJhdGlvbi5saWJXZWJSVENQcm92aWRlcikpCiAgICAgLCBtX3ZlcnRpY2FsU2Nyb2xsRWxh
c3RpY2l0eShTY3JvbGxFbGFzdGljaXR5QWxsb3dlZCkKICAgICAsIG1faG9yaXpvbnRhbFNjcm9s
bEVsYXN0aWNpdHkoU2Nyb2xsRWxhc3RpY2l0eUFsbG93ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDg5
YWFkNGE3MDZjMzNjZjUxNjIyZmVjZTkxNzAyZjVlMGYyYmViNmMuLmIyNmM1MzZjNWExNzI3NDJl
NzVkZTAxOTcwZWQ4MGVlN2E0N2U5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0xMTAsNiArMTEwLDcg
QEAgY2xhc3MgTGliV2ViUlRDUHJvdmlkZXI7CiBjbGFzcyBMb3dQb3dlck1vZGVOb3RpZmllcjsK
IGNsYXNzIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcjsKIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXQ7
CitjbGFzcyBNZWRpYVJlY29yZGVyUHJvdmlkZXI7CiBjbGFzcyBQYWdlQ29uZmlndXJhdGlvbjsK
IGNsYXNzIFBhZ2VDb25zb2xlQ2xpZW50OwogY2xhc3MgUGFnZURlYnVnZ2FibGU7CkBAIC01ODQs
NiArNTg1LDcgQEAgcHVibGljOgogICAgIERhdGFiYXNlUHJvdmlkZXImIGRhdGFiYXNlUHJvdmlk
ZXIoKSB7IHJldHVybiBtX2RhdGFiYXNlUHJvdmlkZXI7IH0KICAgICBDYWNoZVN0b3JhZ2VQcm92
aWRlciYgY2FjaGVTdG9yYWdlUHJvdmlkZXIoKSB7IHJldHVybiBtX2NhY2hlU3RvcmFnZVByb3Zp
ZGVyOyB9CiAgICAgU29ja2V0UHJvdmlkZXImIHNvY2tldFByb3ZpZGVyKCkgeyByZXR1cm4gbV9z
b2NrZXRQcm92aWRlcjsgfQorICAgIE1lZGlhUmVjb3JkZXJQcm92aWRlciYgbWVkaWFSZWNvcmRl
clByb3ZpZGVyKCkgeyByZXR1cm4gbV9tZWRpYVJlY29yZGVyUHJvdmlkZXI7IH0KICAgICBDb29r
aWVKYXImIGNvb2tpZUphcigpIHsgcmV0dXJuIG1fY29va2llSmFyLmdldCgpOyB9CiAKICAgICBT
dG9yYWdlTmFtZXNwYWNlUHJvdmlkZXImIHN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcigpIHsgcmV0
dXJuIG1fc3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmdldCgpOyB9CkBAIC03OTUsNiArNzk3LDcg
QEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoU3ludGhlc2lzQ2xpZW50PiBt
X3NwZWVjaFN5bnRoZXNpc0NsaWVudDsKICNlbmRpZgogCisgICAgVW5pcXVlUmVmPE1lZGlhUmVj
b3JkZXJQcm92aWRlcj4gbV9tZWRpYVJlY29yZGVyUHJvdmlkZXI7CiAgICAgVW5pcXVlUmVmPExp
YldlYlJUQ1Byb3ZpZGVyPiBtX2xpYldlYlJUQ1Byb3ZpZGVyOwogICAgIFJUQ0NvbnRyb2xsZXIg
bV9ydGNDb250cm9sbGVyOwogCkBAIC05MjAsNyArOTIzLDYgQEAgcHJpdmF0ZToKICAgICBSZWY8
VXNlckNvbnRlbnRQcm92aWRlcj4gbV91c2VyQ29udGVudFByb3ZpZGVyOwogICAgIFJlZjxWaXNp
dGVkTGlua1N0b3JlPiBtX3Zpc2l0ZWRMaW5rU3RvcmU7CiAgICAgUmVmUHRyPFdoZWVsRXZlbnRU
ZXN0TW9uaXRvcj4gbV93aGVlbEV2ZW50VGVzdE1vbml0b3I7Ci0KICAgICBIYXNoU2V0PEFjdGl2
aXR5U3RhdGVDaGFuZ2VPYnNlcnZlcio+IG1fYWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyczsK
IAogI2lmIEVOQUJMRShSRVNPVVJDRV9VU0FHRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29u
ZmlndXJhdGlvbi5jcHAKaW5kZXggZWY4NzdhNTU4ODIxZTQ0NjdmNDVjYTNjMDUyMWNhZjIyZDkw
N2RkZS4uMzM4ZjRlN2MxOTEyMWFmMTc5NDJkMDE3MjRjZTI5MTEzYzVkM2YyYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNp
bmNsdWRlICJEcmFnQ2xpZW50LmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIu
aCIKICNpbmNsdWRlICJQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJQbHVn
SW5DbGllbnQuaCIKICNpbmNsdWRlICJQbHVnaW5JbmZvUHJvdmlkZXIuaCIKQEAgLTU1LDcgKzU2
LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNv
bmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xp
ZW50PiYmIGVkaXRvckNsaWVudCwgUmVmPFNvY2tldFByb3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVy
LCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYgbGliV2ViUlRDUHJvdmlkZXIsIFJlZjxD
YWNoZVN0b3JhZ2VQcm92aWRlcj4mJiBjYWNoZVN0b3JhZ2VQcm92aWRlciwgUmVmPEJhY2tGb3J3
YXJkQ2xpZW50PiYmIGJhY2tGb3J3YXJkQ2xpZW50LCBSZWY8Q29va2llSmFyPiYmIGNvb2tpZUph
ciwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiBwcm9ncmVzc1RyYWNrZXJDbGll
bnQpCitQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNsaWVudCwgUmVmPFNv
Y2tldFByb3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlk
ZXI+JiYgbGliV2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiBjYWNo
ZVN0b3JhZ2VQcm92aWRlciwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJhY2tGb3J3YXJkQ2xp
ZW50LCBSZWY8Q29va2llSmFyPiYmIGNvb2tpZUphciwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tl
ckNsaWVudD4mJiBwcm9ncmVzc1RyYWNrZXJDbGllbnQsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVy
UHJvdmlkZXI+JiYgbWVkaWFSZWNvcmRlclByb3ZpZGVyKQogICAgIDogc2Vzc2lvbklEKHNlc3Np
b25JRCkKICAgICAsIGVkaXRvckNsaWVudChXVEZNb3ZlKGVkaXRvckNsaWVudCkpCiAgICAgLCBz
b2NrZXRQcm92aWRlcihXVEZNb3ZlKHNvY2tldFByb3ZpZGVyKSkKQEAgLTY0LDYgKzY1LDcgQEAg
UGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgVW5pcXVlUmVmPEVkaXRvckMKICAgICAsIGJhY2tGb3J3YXJkQ2xpZW50KFdURk1vdmUo
YmFja0ZvcndhcmRDbGllbnQpKQogICAgICwgY29va2llSmFyKFdURk1vdmUoY29va2llSmFyKSkK
ICAgICAsIGNhY2hlU3RvcmFnZVByb3ZpZGVyKFdURk1vdmUoY2FjaGVTdG9yYWdlUHJvdmlkZXIp
KQorICAgICwgbWVkaWFSZWNvcmRlclByb3ZpZGVyKFdURk1vdmUobWVkaWFSZWNvcmRlclByb3Zp
ZGVyKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmln
dXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4
IDE5MWEwMmI2MTVmNDBhOTgwYzQyMWY3ZmJmM2YzMTZkMmIxNjRmZWYuLjNhOGVkMzM0NDBjMmMx
ODg1MjgzMTg5MThhNzUyMmI5MjE3ZjQ3NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25m
aWd1cmF0aW9uLmgKQEAgLTUyLDYgKzUyLDcgQEAgY2xhc3MgRWRpdG9yQ2xpZW50OwogY2xhc3Mg
RnJhbWVMb2FkZXJDbGllbnQ7CiBjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CiBjbGFzcyBMaWJXZWJS
VENQcm92aWRlcjsKK2NsYXNzIE1lZGlhUmVjb3JkZXJQcm92aWRlcjsKIGNsYXNzIFBheW1lbnRD
b29yZGluYXRvckNsaWVudDsKIGNsYXNzIFBlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudDsKIGNsYXNz
IFBsdWdJbkNsaWVudDsKQEAgLTY4LDcgKzY5LDcgQEAgY2xhc3MgU3BlZWNoU3ludGhlc2lzQ2xp
ZW50OwogY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb24gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KFBhZ2VDb25maWd1cmF0aW9uKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQsIFVuaXF1
ZVJlZjxFZGl0b3JDbGllbnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVlUmVmPExp
YldlYlJUQ1Byb3ZpZGVyPiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJlZjxCYWNr
Rm9yd2FyZENsaWVudD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNzVHJh
Y2tlckNsaWVudD4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFM
OjpTZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRl
cj4mJiwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJv
dmlkZXI+JiYsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5p
cXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQ
cm92aWRlcj4mJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgflBhZ2VDb25maWd1cmF0aW9uKCk7CiAg
ICAgUGFnZUNvbmZpZ3VyYXRpb24oUGFnZUNvbmZpZ3VyYXRpb24mJik7CiAKQEAgLTEyMyw2ICsx
MjQsNyBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlk
ZXI+IGRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI7CiAjZW5kaWYKICAgICBWZWN0b3I8
U3RyaW5nPiBjb3JzRGlzYWJsaW5nUGF0dGVybnM7CisgICAgVW5pcXVlUmVmPE1lZGlhUmVjb3Jk
ZXJQcm92aWRlcj4gbWVkaWFSZWNvcmRlclByb3ZpZGVyOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlckNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAppbmRleCBmZmY0NWQ2
MzkzOGRiMzM4YjQ3MjRiN2E3NDZjZTM3MjRmYTFkM2FiLi41MTk3OGJiNmQ4ZDFhMWIwZTVjMWM3
YTAxNTEyMjJiZDhiZGZiMmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyQ29jb2EuaApAQCAtNDksOSArNDksMTAgQEAgY2xhc3MgQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbjsKIGNsYXNzIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOwogY2xhc3MgUGxh
dGZvcm1BdWRpb0RhdGE7CiAKLWNsYXNzIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIDogcHVi
bGljIFRocmVhZFNhZmVSZWZDb3VudGVkPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyLCBXVEY6
OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyPiB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBNZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxNZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlciwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4sIHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gewogcHVibGljOgogICAgIHN0
YXRpYyBSZWZQdHI8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IGNyZWF0ZShjb25zdCBNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZSogYXVkaW9UcmFjaywgY29uc3QgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUqIHZpZGVvVHJhY2spOworICAgIHN0YXRpYyBSZWZQdHI8TWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXI+IGNyZWF0ZShib29sIGhhc0F1ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOwog
ICAgIH5NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcigpOwogICAgIAogICAgIGJvb2wgc2V0dXBX
cml0ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3Jk
ZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0
ZXJDb2NvYS5tbQppbmRleCA5MmZlMmE0NTBlNTkzZjI0YTk2OGZhZWYwYTZiOTZmOTVhZGUzNTEz
Li4wNjljODg3NGYwMDllMDk2YzI0OWEwNzgwMTkwZGQ4MDQ4YzZiOWJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQ
cml2YXRlV3JpdGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFy
ZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCkBAIC05MCw2
ICs5MCwxNyBAQCBzdGF0aWMgTlNTdHJpbmcgKmdldEFWRW5jb2RlckJpdFJhdGVLZXlXaXRoRmFs
bGJhY2soKQogfQogCiBSZWZQdHI8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IE1lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyOjpjcmVhdGUoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUq
IGF1ZGlvVHJhY2ssIGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiB2aWRlb1RyYWNrKQor
eworICAgIGludCB3aWR0aCA9IDAsIGhlaWdodCA9IDA7CisgICAgaWYgKHZpZGVvVHJhY2spIHsK
KyAgICAgICAgYXV0byYgc2V0dGluZ3MgPSB2aWRlb1RyYWNrLT5zZXR0aW5ncygpOworICAgICAg
ICB3aWR0aCA9IHNldHRpbmdzLndpZHRoKCk7CisgICAgICAgIGhlaWdodCA9IHNldHRpbmdzLmhl
aWdodCgpOworICAgIH0KKyAgICByZXR1cm4gY3JlYXRlKCEhYXVkaW9UcmFjaywgd2lkdGgsIGhl
aWdodCk7Cit9CisKK1JlZlB0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gTWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXI6OmNyZWF0ZShib29sIGhhc0F1ZGlvLCBpbnQgd2lkdGgsIGludCBo
ZWlnaHQpCiB7CiAgICAgTlNTdHJpbmcgKmRpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRl
bXBvcmFyeURpcmVjdG9yeShAInZpZGVvcyIpOwogICAgIE5TU3RyaW5nICpmaWxlbmFtZSA9IFtO
U1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiLyVsbGQubXA0IiwgQ01DbG9ja0dldFRpbWUoQ01D
bG9ja0dldEhvc3RUaW1lQ2xvY2soKSkudmFsdWVdOwpAQCAtMTA2LDEyICsxMTcsMTEgQEAgUmVm
UHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
cjo6Y3JlYXRlKGNvbnN0IE1lZGkKIAogICAgIGF1dG8gd3JpdGVyID0gYWRvcHRSZWYoKm5ldyBN
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcihXVEZNb3ZlKGF2QXNzZXRXcml0ZXIpLCBXVEZNb3Zl
KGZpbGVQYXRoKSkpOwogCi0gICAgaWYgKGF1ZGlvVHJhY2sgJiYgIXdyaXRlci0+c2V0QXVkaW9J
bnB1dCgpKQorICAgIGlmIChoYXNBdWRpbyAmJiAhd3JpdGVyLT5zZXRBdWRpb0lucHV0KCkpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgaWYgKHZpZGVvVHJhY2spIHsKLSAgICAgICAg
YXV0byYgc2V0dGluZ3MgPSB2aWRlb1RyYWNrLT5zZXR0aW5ncygpOwotICAgICAgICBpZiAoIXdy
aXRlci0+c2V0VmlkZW9JbnB1dChzZXR0aW5ncy53aWR0aCgpLCBzZXR0aW5ncy5oZWlnaHQoKSkp
CisgICAgaWYgKHdpZHRoICYmIGhlaWdodCkgeworICAgICAgICBpZiAoIXdyaXRlci0+c2V0Vmlk
ZW9JbnB1dCh3aWR0aCwgaGVpZ2h0KSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1Qcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVByaXZhdGUuaAppbmRleCA0YTA2ODQ0MzhjZTY2NWQ3Y2QwNGRhMTBlYTExYTVi
YzJiNmYyOWY1Li5kZTQ0ZDg4ZWY1YjljMzgxNDA0NGUwNWY3YzI4YmVlMThhNzJlZDAzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVBy
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVByaXZhdGUuaApAQCAtODEsNyArODEsNyBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgaWQo
KSBjb25zdCB7IHJldHVybiBtX2lkOyB9CiAKLSAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZl
Y3RvciB0cmFja3MoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZVZlY3RvciB0cmFja3MoKSBjb25zdDsKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZSogYWN0aXZlVmlkZW9UcmFjaygpIHsgcmV0dXJuIG1fYWN0aXZlVmlkZW9UcmFjazsgfQogCiAg
ICAgYm9vbCBhY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX2lzQWN0aXZlOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUuaAppbmRleCBhNGVjNDM4YTk4NDRmYzgyNTE2MTllZDMzOThmZmY3YWViYjE5
MjI2Li5kMDlmM2ViZjA0ZDMwZmE1M2ZjYzJlMzAyZWEwODAzOTQ4ZDAxMTI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmgKQEAgLTEwMCw3ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgUmVmPE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBjbG9uZSgpOwogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZSYgc291cmNlKCkgeyByZXR1cm4gbV9zb3VyY2UuZ2V0KCk7IH0KLSAgICBSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlIHR5cGUoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlIHR5cGUoKSBjb25zdDsKIAogICAgIHZvaWQgZW5kVHJhY2soKTsKIApA
QCAtMTEwLDcgKzExMCw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc09ic2VydmVyKE9ic2VydmVy
JikgY29uc3Q7CiAjZW5kaWYKIAotICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5n
cyYgc2V0dGluZ3MoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3Q7CiAgICAgY29uc3QgUmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgY29uc3Q7CiAKICAgICB2b2lk
IGFwcGx5Q29uc3RyYWludHMoY29uc3QgTWVkaWFDb25zdHJhaW50cyYsIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OkFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCmluZGV4IGYxYTE2NGQxNzMwNWVkZjFmZTZlZGJhMWQ4Yzk4NDAzM2M4ZDU0YTAu
LjA5YTRlNzA4YjgyMjgwOTQzNTBiNzFmODNkNGFlZGI4MDM3ZDg5YTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTEyMiw2ICsxMjIsNyBAQAogI2luY2x1ZGUgIk1lZGlh
RW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnkuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgog
I2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlk
ZXIuaCIKICNpbmNsdWRlICJNZWRpYVJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTWVkaWFT
dHJlYW1UcmFjay5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCkBAIC01NTAsNiArNTUxLDgg
QEAgdm9pZCBJbnRlcm5hbHM6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoUGFnZSYgcGFnZSkKIAog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hh
cmVkRmVhdHVyZXMoKS5zZXRJbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxpdHlDaGFuZ2VFbmFi
bGVkKGZhbHNlKTsKKyAgICBXZWJDb3JlOjpNZWRpYVJlY29yZGVyOjpzZXRDdXN0b21Qcml2YXRl
UmVjb3JkZXJDcmVhdG9yKG51bGxwdHIpOworICAgIHBhZ2UubWVkaWFSZWNvcmRlclByb3ZpZGVy
KCkuc2V0VXNlR1BVUHJvY2Vzcyh0cnVlKTsKICNlbmRpZgogCiAgICAgSFRNTENhbnZhc0VsZW1l
bnQ6OnNldE1heFBpeGVsTWVtb3J5Rm9yVGVzdGluZygwKTsgLy8gVGhpcyBtZWFucyB1c2UgdGhl
IGRlZmF1bHQgdmFsdWUuCkBAIC0xNTU4LDcgKzE1NjEsOSBAQCB2b2lkIEludGVybmFsczo6c2V0
VXNlR1BVUHJvY2Vzc0ZvcldlYlJUQyhib29sIHVzZUdQVVByb2Nlc3MpCiAgICAgYXV0byogZG9j
dW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVu
dC0+cGFnZSgpKQogICAgICAgICByZXR1cm47CisKICAgICBkb2N1bWVudC0+cGFnZSgpLT5saWJX
ZWJSVENQcm92aWRlcigpLnNldFVzZUdQVVByb2Nlc3ModXNlR1BVUHJvY2Vzcyk7CisgICAgZG9j
dW1lbnQtPnBhZ2UoKS0+bWVkaWFSZWNvcmRlclByb3ZpZGVyKCkuc2V0VXNlR1BVUHJvY2Vzcyh1
c2VHUFVQcm9jZXNzKTsKICNlbmRpZgogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggNzk5NGUzY2E3Nzc2MzI5ZDZmNzVkN2Fh
ZjBjOTNmZDlhYTA1OWUxMC4uYjk4ODBiYzBhY2Y2ZjYxYzAyYjNiMzdkMmM0Y2JlZWJhMTAyMDgy
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApA
QCAtMTksNiArMTksOCBAQCAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUu
V2ViS2l0LkdQVVByb2Nlc3Muc2IuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIp
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1l
c3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJl
Y29yZGVyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVNZWRpYVJlY29yZGVycy5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nl
c3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9O
ZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2Vi
SURCU2VydmVyLm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAppbmRleCAwY2QyM2UwMWJiYWNkMmVjNGEwYmRjM2JkZmYyYmUwZDdi
NjBiMDFiLi5kNzIwNjIzYWJhY2FkZGU5N2M1ZjM1YzI3MzJmNThkZjliOTYyNzA2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBi
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEyOSw2
ICsxMjksMTIgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXNSZXAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZWNv
cmRlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZWNvcmRlcnNNZXNzYWdl
UmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SZW1vdGVNZWRpYVJlY29yZGVyc01lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVjb3JkZXJzTWVzc2FnZXNSZXBsaWVz
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNz
YWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKaW5kZXggOWQzZTJhOTBjN2I0ZDkwYTQyNmM3NmE0ZTA1ZTZiMmY4MWNjMGU5ZS4u
YTU2ODYwMWI3N2IxZGJkN2ZmZDYzNmRlN2I2MzRiMWZlMmIxMjhkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMubWFrZQpAQCAtMTQzLDYgKzE0Myw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAog
ICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkgXAogICAgIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlciBcCiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkgXAorICAgIFJl
bW90ZU1lZGlhUmVjb3JkZXIgXAorICAgIFJlbW90ZU1lZGlhUmVjb3JkZXJzIFwKICAgICBSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlciBcCiAgICAgUmVtb3RlT2JqZWN0UmVnaXN0cnkgXAogICAg
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA1MmE5NWNlMGRl
ZDcwM2Q2MWQzNGE5ZDE3ZjBjOGI0MmU2NjRmZGRhLi43ZjY2MzNhN2Q3OThhMTU0NjQ2ZTI5OWI2
OTgxZDkyNTNiMmNjNzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0zOSw2ICszOSw5IEBACiAjaW5jbHVk
ZSAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRl
ck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlcnMuaCIKKyNpbmNsdWRl
ICJSZW1vdGVNZWRpYVJlY29yZGVyc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXIuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlv
bi5oIgpAQCAtMTM3LDkgKzE0MCw3IEBAIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkmIEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyCiAKICAgICBy
ZXR1cm4gKm1fdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKIH0KLSNlbmRpZgogCi0jaWYg
UExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCiBMaWJXZWJSVENDb2RlY3NQcm94eSYg
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bGliV2ViUlRDQ29kZWNzUHJveHkoKQogewogICAg
IGlmICghbV9saWJXZWJSVENDb2RlY3NQcm94eSkKQEAgLTE0OSw2ICsxNTAsMTYgQEAgTGliV2Vi
UlRDQ29kZWNzUHJveHkmIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxpYldlYlJUQ0NvZGVj
c1Byb3h5KCkKIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJS
VEMpCitSZW1vdGVNZWRpYVJlY29yZGVycyYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bWVk
aWFSZWNvcmRlcnMoKQoreworICAgIGlmICghbV9yZW1vdGVNZWRpYVJlY29yZGVycykKKyAgICAg
ICAgbV9yZW1vdGVNZWRpYVJlY29yZGVycyA9IG1ha2VVbmlxdWU8UmVtb3RlTWVkaWFSZWNvcmRl
cnM+KCp0aGlzKTsKKworICAgIHJldHVybiAqbV9yZW1vdGVNZWRpYVJlY29yZGVyczsKK30KKyNl
bmRpZgorCiB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewog
ICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewpAQCAtMTYz
LDYgKzE3NCwxNCBAQCB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSQogICAgICAgICB1c2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5KCkuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2Vzcyhjb25u
ZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBpZiAoZGVjb2Rl
ci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXJz
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgbWVkaWFSZWNvcmRlcnMoKS5kaWRS
ZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9
PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7
CisgICAgICAgIG1lZGlhUmVjb3JkZXJzKCkuZGlkUmVjZWl2ZVJlbW90ZU1lZGlhUmVjb3JkZXJN
ZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQogI2Vu
ZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCiAgICAgaWYgKGRlY29k
ZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94
eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBhYzcxMjVkNzM4ZDg2ODg4
ZWVhOGI0YTkyNTE1ZjlkZTRkMWY2YjA0Li44OWM0Y2ExYzIyMmZhNWM5YTU0ZmE2YzA1NmRhOTgy
M2JiNTZlZDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTQxLDggKzQxLDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiBjbGFzcyBHUFVQcm9jZXNzOwogY2xhc3MgTGliV2ViUlRDQ29kZWNzUHJveHk7CiBjbGFzcyBS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKLWNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk7CitjbGFzcyBSZW1vdGVNZWRpYVJlY29yZGVyczsKIGNsYXNzIFJlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyOworY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKIAog
Y2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcwogICAgIDogcHVibGljIFJlZkNvdW50ZWQ8
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4KQEAgLTcxLDYgKzcyLDcgQEAgcHJpdmF0ZToKICNl
bmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkmIHVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHko
KTsKKyAgICBSZW1vdGVNZWRpYVJlY29yZGVycyYgbWVkaWFSZWNvcmRlcnMoKTsKICNlbmRpZgog
CiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKQEAgLTg5LDYgKzkxLDcgQEAgcHJpdmF0
ZToKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICNpZiBQTEFURk9STShDT0NPQSkg
JiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eT4gbV91c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OworICAgIHN0
ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVJlY29yZGVycz4gbV9yZW1vdGVNZWRpYVJlY29yZGVy
czsKICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQogICAgIHN0
ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENDb2RlY3NQcm94eT4gbV9saWJXZWJSVENDb2RlY3NQcm94
eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldl
YktpdC5HUFVQcm9jZXNzLnNiLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9jb20u
YXBwbGUuV2ViS2l0LkdQVVByb2Nlc3Muc2IuaW4KaW5kZXggZDYzMmJlZWJjYjM1ZDc0ZTM4ZTBj
YjE4NjFiN2YwNTdhNWYzNmQ5NC4uOWI3NDEyYmI0ZGE2Y2VmMmY3MmIyN2Y1YTQxZmRlZGE3MTY5
ODA1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUu
V2ViS2l0LkdQVVByb2Nlc3Muc2IuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21h
Yy9jb20uYXBwbGUuV2ViS2l0LkdQVVByb2Nlc3Muc2IuaW4KQEAgLTgzNiwzICs4MzYsNyBAQAog
ICAgICAgICAoaW9raXQtdXNlci1jbGllbnQtY2xhc3MgIklPVVNCSW50ZXJmYWNlVXNlckNsaWVu
dFYyIikpCiAgICAgKGFsbG93IGRldmljZS1jYW1lcmEpKQogI2VuZGlmIC8vIFBMQVRGT1JNKE1B
QykKKworKGFsbG93IGZpbGUtcmVhZCogZmlsZS13cml0ZSogKHN1YnBhdGggKHBhcmFtICJEQVJX
SU5fVVNFUl9DQUNIRV9ESVIiKSkpCisKKyhhbGxvdyBmaWxlLXJlYWQqIGZpbGUtd3JpdGUqIChz
dWJwYXRoIChwYXJhbSAiREFSV0lOX1VTRVJfVEVNUF9ESVIiKSkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mZjA3NjgzNmNlYmVlYWFhMTQ2NWI4NjJjNGFlNjA3ZTQ0Mzc2YjJjCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJl
Y29yZGVyLmNwcApAQCAtMCwwICsxLDEzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlY29yZGVyLmgiCisKKyNpZiBQTEFURk9STShD
T0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZl
clN0b3JhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVt
b3RlVmlkZW9TYW1wbGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RkOjp1bmlxdWVfcHRyPFJlbW90ZU1lZGlhUmVj
b3JkZXI+IFJlbW90ZU1lZGlhUmVjb3JkZXI6OmNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBNZWRpYVJlY29yZGVySWRlbnRpZmllciBp
ZGVudGlmaWVyLCBib29sIHJlY29yZEF1ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCit7Cisg
ICAgYXV0byB3cml0ZXIgPSBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y3JlYXRlKHJlY29y
ZEF1ZGlvLCB3aWR0aCwgaGVpZ2h0KTsKKyAgICBpZiAoIXdyaXRlcikKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVJlY29yZGVy
PihuZXcgUmVtb3RlTWVkaWFSZWNvcmRlciB7IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIGlk
ZW50aWZpZXIsIHdyaXRlci5yZWxlYXNlTm9uTnVsbCgpLCByZWNvcmRBdWRpbyB9KTsKK30KKwor
UmVtb3RlTWVkaWFSZWNvcmRlcjo6UmVtb3RlTWVkaWFSZWNvcmRlcihHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBNZWRpYVJlY29yZGVySWRlbnRp
ZmllciBpZGVudGlmaWVyLCBSZWY8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+JiYgd3JpdGVy
LCBib29sIHJlY29yZEF1ZGlvKQorICAgIDogbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGdw
dUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCisgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikK
KyAgICAsIG1fd3JpdGVyKFdURk1vdmUod3JpdGVyKSkKK3sKKyAgICBpZiAocmVjb3JkQXVkaW8p
CisgICAgICAgIG1fcmluZ0J1ZmZlciA9IG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5p
cXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihudWxscHRyKSk7Cit9CisKK1JlbW90ZU1l
ZGlhUmVjb3JkZXI6On5SZW1vdGVNZWRpYVJlY29yZGVyKCkKK3sKK30KKworU2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2UmIFJlbW90ZU1lZGlhUmVjb3JkZXI6OnN0b3JhZ2UoKQoreworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci0+c3Rv
cmFnZSgpKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyOjphdWRpb1NhbXBsZXNTdG9y
YWdlQ2hhbmdlZChjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYgaGFuZGxlLCBjb25zdCBXZWJD
b3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1i
ZXJPZkZyYW1lcykKK3sKKyAgICBBU1NFUlQobV9yaW5nQnVmZmVyKTsKKyAgICBpZiAoIW1fcmlu
Z0J1ZmZlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9kZXNjcmlwdGlvbiA9IGRlc2NyaXB0
aW9uOworCisgICAgaWYgKGhhbmRsZS5pc051bGwoKSkgeworICAgICAgICBtX3JpbmdCdWZmZXIt
PmRlYWxsb2NhdGUoKTsKKyAgICAgICAgc3RvcmFnZSgpLnNldFJlYWRPbmx5KGZhbHNlKTsKKyAg
ICAgICAgc3RvcmFnZSgpLnNldFN0b3JhZ2UobnVsbHB0cik7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1h
cChoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworICAgIHN0b3Jh
Z2UoKS5zZXRTdG9yYWdlKFdURk1vdmUobWVtb3J5KSk7CisgICAgc3RvcmFnZSgpLnNldFJlYWRP
bmx5KHRydWUpOworCisgICAgbV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgbnVt
YmVyT2ZGcmFtZXMpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXI6OmF1ZGlvU2FtcGxl
c0F2YWlsYWJsZShNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2
NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQoreworICAgIEFTU0VSVChtX3JpbmdC
dWZmZXIpOworICAgIGlmICghbV9yaW5nQnVmZmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X3JpbmdCdWZmZXItPnNldEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7
CisKKyAgICBXZWJBdWRpb0J1ZmZlckxpc3QgYXVkaW9EYXRhKG1fZGVzY3JpcHRpb24sIG51bWJl
ck9mRnJhbWVzKTsKKyAgICBtX3JpbmdCdWZmZXItPmZldGNoKGF1ZGlvRGF0YS5saXN0KCksIG51
bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsKKworICAgIG1fd3JpdGVyLT5hcHBlbmRB
dWRpb1NhbXBsZUJ1ZmZlcihhdWRpb0RhdGEsIG1fZGVzY3JpcHRpb24sIHRpbWUsIG51bWJlck9m
RnJhbWVzKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyOjp2aWRlb1NhbXBsZUF2YWls
YWJsZShXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSYmIHJlbW90ZVNhbXBsZSkKK3sKKyAgICBp
ZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+cGl4
ZWxGb3JtYXQoKSAhPSByZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSkKKyAgICAgICAgbV9pbWFn
ZVRyYW5zZmVyU2Vzc2lvbiA9IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShyZW1vdGVT
YW1wbGUudmlkZW9Gb3JtYXQoKSk7CisKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24p
IHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0
ZU1lZGlhU2FtcGxlKHJlbW90ZVNhbXBsZS5zdXJmYWNlKCksIHJlbW90ZVNhbXBsZS50aW1lKCks
IHJlbW90ZVNhbXBsZS5zaXplKCkpOworICAgIGlmICghc2FtcGxlQnVmZmVyKSB7CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV93
cml0ZXItPmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKHNhbXBsZUJ1ZmZlci0+cGxhdGZvcm1TYW1w
bGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVjb3Jk
ZXI6OmZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6RGF0YVJlZmVyZW5jZSYm
LCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBtcDRNaW1lVHlwZShNQUtFX1NUQVRJ
Q19TVFJJTkdfSU1QTCgidmlkZW8vbXA0IikpOworICAgIG1fd3JpdGVyLT5mZXRjaERhdGEoWyZt
cDRNaW1lVHlwZSA9IG1wNE1pbWVUeXBlLmdldCgpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvJiYgZGF0YSkgbXV0YWJsZSB7CisgICAgICAgIGF1
dG8qIHBvaW50ZXIgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRhID8gZGF0
YS0+ZGF0YSgpIDogbnVsbHB0cik7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKElQQzo6RGF0
YVJlZmVyZW5jZSB7IHBvaW50ZXIsIGRhdGEgPyBkYXRhLT5zaXplKCkgOiAwIH0sIG1wNE1pbWVU
eXBlKTsKKyAgICB9KTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyOjpzdG9wUmVjb3Jk
aW5nKCkKK3sKKyAgICBtX3dyaXRlci0+c3RvcFJlY29yZGluZygpOworfQorCit9CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRp
YVJlY29yZGVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlh
UmVjb3JkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NGE4ZDE3NTVjNTk1MzBjMjMxMzZiNDc3YjlhOGEwODU0
NDE0ZjU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmgKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiTWVzc2Fn
ZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaD4KKyNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CisK
K25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIERhdGFSZWZlcmVuY2U7
CitjbGFzcyBEZWNvZGVyOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDQVJpbmdC
dWZmZXI7CitjbGFzcyBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOworY2xhc3MgUmVtb3RlVmlkZW9T
YW1wbGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOworY2xhc3MgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U7CisKK2NsYXNzIFJlbW90
ZU1lZGlhUmVjb3JkZXIgOiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PFJlbW90ZU1lZGlhUmVjb3JkZXI+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwg
TWVkaWFSZWNvcmRlcklkZW50aWZpZXIsIGJvb2wgcmVjb3JkQXVkaW8sIGludCB3aWR0aCwgaW50
IGhlaWdodCk7CisgICAgflJlbW90ZU1lZGlhUmVjb3JkZXIoKTsKKworICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKK3By
aXZhdGU6CisgICAgUmVtb3RlTWVkaWFSZWNvcmRlcihHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
JiwgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlcj4mJiwgYm9vbCByZWNvcmRBdWRpbyk7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VS
ZWNlaXZlcgorICAgIHZvaWQgYXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQoY29uc3QgU2hhcmVk
TWVtb3J5OjpIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24m
LCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFi
bGUoTWVkaWFUaW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFt
ZSwgdWludDY0X3QgZW5kRnJhbWUpOworICAgIHZvaWQgdmlkZW9TYW1wbGVBdmFpbGFibGUoV2Vi
Q29yZTo6UmVtb3RlVmlkZW9TYW1wbGUmJik7CisgICAgdm9pZCBmZXRjaERhdGEoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChJUEM6OkRhdGFSZWZlcmVuY2UmJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSk+JiYpOworICAgIHZvaWQgc3RvcFJlY29yZGluZygpOworCisgICAgU2hhcmVkUmluZ0J1ZmZl
clN0b3JhZ2UmIHN0b3JhZ2UoKTsKKworICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIG1f
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzczsKKyAgICBNZWRpYVJlY29yZGVySWRlbnRpZmllciBt
X2lkZW50aWZpZXI7CisgICAgUmVmPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
PiBtX3dyaXRlcjsKKworICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rl
c2NyaXB0aW9uOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+IG1f
cmluZ0J1ZmZlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNl
c3Npb25WVD4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbjsKK307CisKK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3Jk
ZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1l
ZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzE0ZWRjNTM2MTAyM2VkYzc4Mjc4
MGM0ZDQ2ZTlkMTViOTQ4MTM5ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsx
LDM0IEBACisjIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgUExBVEZP
Uk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlTWVk
aWFSZWNvcmRlciBOb3RSZWZDb3VudGVkIHsKKyAgICBBdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdl
ZChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFt
ZXMpCisgICAgQXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBu
dW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCisg
ICAgVmlkZW9TYW1wbGVBdmFpbGFibGUoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUgc2FtcGxl
KQorICAgIEZldGNoRGF0YSgpIC0+IChJUEM6OkRhdGFSZWZlcmVuY2UgYnVmZmVyLCBTdHJpbmcg
bWltZVR5cGUpIEFzeW5jCisgICAgU3RvcFJlY29yZGluZygpCit9CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVy
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3Jk
ZXJzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hNjFiNzc0YjZkMWU0ODhkMDc5OWU0YzQzNTdlMmQ4YjFiOGYx
ZDk3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9S
ZW1vdGVNZWRpYVJlY29yZGVycy5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlY29yZGVycy5oIgorCisj
aWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlJl
bW90ZU1lZGlhUmVjb3JkZXIuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZU1lZGlh
UmVjb3JkZXJzOjpSZW1vdGVNZWRpYVJlY29yZGVycyhHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
JiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQorICAgIDogbV9ncHVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCit7Cit9CisKK1JlbW90ZU1lZGlhUmVj
b3JkZXJzOjp+UmVtb3RlTWVkaWFSZWNvcmRlcnMoKQoreworfQorCit2b2lkIFJlbW90ZU1lZGlh
UmVjb3JkZXJzOjpkaWRSZWNlaXZlUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgaWYgKGF1
dG8qIHJlY29yZGVyID0gbV9yZWNvcmRlcnMuZ2V0KG1ha2VPYmplY3RJZGVudGlmaWVyPE1lZGlh
UmVjb3JkZXJJZGVudGlmaWVyVHlwZT4oZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpKSkKKyAgICAg
ICAgcmVjb3JkZXItPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworfQor
Cit2b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXJzOjpjcmVhdGVSZWNvcmRlcihNZWRpYVJlY29yZGVy
SWRlbnRpZmllciBpZGVudGlmaWVyLCBib29sIHJlY29yZEF1ZGlvLCBpbnQgd2lkdGgsIGludCBo
ZWlnaHQpCit7CisgICAgQVNTRVJUKCFtX3JlY29yZGVycy5jb250YWlucyhpZGVudGlmaWVyKSk7
CisgICAgYXV0byByZWNvcmRlciA9IFJlbW90ZU1lZGlhUmVjb3JkZXI6OmNyZWF0ZShtX2dwdUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MsIGlkZW50aWZpZXIsIHJlY29yZEF1ZGlvLCB3aWR0aCwgaGVp
Z2h0KTsKKyAgICBpZiAoIXJlY29yZGVyKSB7CisgICAgICAgIC8vIEZJWE1FOiBTZW5kIGJhY2sg
ZXJyb3IuCisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbV9yZWNvcmRlcnMuYWRkKGlkZW50
aWZpZXIsIFdURk1vdmUocmVjb3JkZXIpKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlY29yZGVy
czo6cmVsZWFzZVJlY29yZGVyKE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7
CisgICAgQVNTRVJUKG1fcmVjb3JkZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBtX3Jl
Y29yZGVycy5yZW1vdmUoaWRlbnRpZmllcik7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJzLmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJzLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjc2ZjE3OTRhNTA0MzZjZmJmMGUyZTZhMDk4NTg2MDM0M2RiYTI5NQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVk
aWFSZWNvcmRlcnMuaApAQCAtMCwwICsxLDY3IEBACisKKworLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2lu
Y2x1ZGUgIk1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2Vp
dmVyLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFz
cyBDb25uZWN0aW9uOworY2xhc3MgRGVjb2RlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CitjbGFzcyBSZW1vdGVNZWRpYVJlY29y
ZGVyOworCitjbGFzcyBSZW1vdGVNZWRpYVJlY29yZGVycyA6IHByaXZhdGUgSVBDOjpNZXNzYWdl
UmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4
cGxpY2l0IFJlbW90ZU1lZGlhUmVjb3JkZXJzKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsK
KyAgICB+UmVtb3RlTWVkaWFSZWNvcmRlcnMoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVJlbW90
ZU1lZGlhUmVjb3JkZXJNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwor
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShj
b25uZWN0aW9uLCBkZWNvZGVyKTsgfQorCitwcml2YXRlOgorICAgIC8vIElQQzo6TWVzc2FnZVJl
Y2VpdmVyCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImKSBmaW5hbDsKKyAgICB2b2lkIGNyZWF0ZVJlY29yZGVyKE1lZGlhUmVjb3JkZXJJ
ZGVudGlmaWVyLCBib29sIHJlY29yZEF1ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworICAg
IHZvaWQgcmVsZWFzZVJlY29yZGVyKE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyKTsKKworICAgIEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzczsKKyAg
ICBIYXNoTWFwPE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3Rl
TWVkaWFSZWNvcmRlcj4+IG1fcmVjb3JkZXJzOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMu
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlh
UmVjb3JkZXJzLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0ZTVkZTkyOTI2NTQ0N2E1ZjBhZWNl
MDZhNDZjMjA1NWRkNWVmZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJzLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEs
MzEgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
IyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBQTEFURk9S
TShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVNZWRp
YVJlY29yZGVycyBOb3RSZWZDb3VudGVkIHsKKyAgICBDcmVhdGVSZWNvcmRlcihXZWJLaXQ6Ok1l
ZGlhUmVjb3JkZXJJZGVudGlmaWVyIGlkLCBib29sIGhhc0F1ZGlvLCBpbnQgd2lkdGgsIGludCBo
ZWlnaHQpCisgICAgUmVsZWFzZVJlY29yZGVyKFdlYktpdDo6TWVkaWFSZWNvcmRlcklkZW50aWZp
ZXIgaWQpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMu
cHkKaW5kZXggNjkwNjMxMDZjYWI1NDAyMWM0Mjg5NmNkY2I3NjNhNzU2Zjc4YWY4Ni4uZjExZjE2
MTE0ZjA3YTJlMGRjNjRhZWQ4MjBkNThjN2I2OGQ3MzBiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yMjAsNiArMjIwLDcgQEAgZGVmIHR5cGVzX3RoYXRf
Y2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYktpdDo6QWN0aXZpdHlT
dGF0ZUNoYW5nZUlEJywKICAgICAgICAgJ1dlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEJywK
ICAgICAgICAgJ1dlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllcicsCisg
ICAgICAgICdXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktp
dDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpSVENE
ZWNvZGVySWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmll
cicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dAppbmRleCBjYTUyNjAzZWQ1YjA3Y2MxYTEwNzIxNzM2ZWQ0NmM2Nzg5NDEz
MzEyLi40OTRkMjkyMDU0ODY4MjBmZmZiNGUyYjQ5OGE4OTM3M2UyZmE4ZjVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50
eHQKQEAgLTI0LDYgKzI0LDggQEAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKIEdQVVByb2Nl
c3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAKK0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3Jk
ZXIuY3BwCitHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5jcHAKIC8vR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKIC8vR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAogLy9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUmVzb3VyY2UuY3BwCkBAIC01MTMsNiArNTE1LDggQEAgV2ViUHJvY2Vzcy9H
UFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiAvL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTUlNRVR5cGVDYWNoZS5jcHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL0dQVS93ZWJydGMv
TGliV2ViUlRDQ29kZWNzLmNwcAorV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQ
cml2YXRlLmNwcAorV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5j
cHAKIAogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKIFdl
YlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4
dAppbmRleCA2MGIzOWYzN2M1Nzg1NTYyMWYyOWY2NmI5NjE3ZDlhN2IzZGE3MDNkLi41YTgyMjk4
NzYxOTJkNjFkNDhlZDI1OGFkY2Y4ZjgzN2U3NGQ2YjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
CkBAIC02MzUsNSArNjM1LDcgQEAgR1BVUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAog
R1BVUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAKIExpYldlYlJUQ0NvZGVjc1Byb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcAogTGliV2ViUlRDQ29kZWNzTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3Rl
TWVkaWFSZWNvcmRlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZU1lZGlhUmVjb3JkZXJzTWVz
c2FnZVJlY2VpdmVyLmNwcAogU2VydmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VSZWNlaXZlci5j
cHAKIFRleHRDaGVja2luZ0NvbnRyb2xsZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDFiNTg4
NjhmNTJlY2Y3MTMzMmI5NGY4ZDRiMTI0ZWFiOGY5YWU3NTMuLmUyZTcxMzRmYWI0YjA3ODY0YWNk
YmFkOWZlMDgxODM2NjI5YTcyZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzMyOSw2ICszMzI5LDE3IEBACiAJCTQxNzIxOThDMjNC
NjEyRTgwMEFFNTY4NiAvKiBSVENEZWNvZGVySWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSVENEZWNvZGVySWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTcyMTk4RDIzQjYyQzdDMDBBRTU2ODYgLyogTGliV2ViUlRDQ29kZWNz
Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IExpYldlYlJUQ0NvZGVjcy5tZXNzYWdlcy5pbjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3NjkwMTMyMkZERDQxQjAwQjE1NzZEIC8qIE5ldHdvcmtS
VENQcm92aWRlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5l
dHdvcmtSVENQcm92aWRlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4
OTIyM0MzNEQ2RTAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92aWRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNZWRpYVJlY29yZGVyUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDE3NkU4OTMyM0MzNEQ2RjAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0MTc2RTg5NDIzQzM0RTI2MDAzRTgzRkUgLyogTWVkaWFSZWNv
cmRlclByaXZhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVk
aWFSZWNvcmRlclByaXZhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc2
RTg5NTIzQzM0RTI3MDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFSZWNvcmRlclByaXZhdGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OTcyM0MzNjFCRDAwM0U4M0ZFIC8qIE1lZGlhUmVj
b3JkZXJJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlh
UmVjb3JkZXJJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZF
ODk4MjNDMzY2NzcwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVjb3JkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OTkyM0MzNkQ4RTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlh
UmVjb3JkZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlh
UmVjb3JkZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODlBMjNDMzZG
NzEwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlY29yZGVycy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODlCMjNDMzcyMjIwMDNFODNGRSAvKiBSZW1vdGVNZWRp
YVJlY29yZGVycy5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVNZWRp
YVJlY29yZGVycy5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3
NkU4OUMyM0MzNzQ3OTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFSZWNvcmRlci5tZXNzYWdlcy5pbjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OUQyM0MzNzZENTAwM0U4M0ZFIC8q
IFJlbW90ZU1lZGlhUmVjb3JkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVtb3RlTWVkaWFSZWNvcmRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxNzkxNUFDMjI1NkJCNzQwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlNvY2tldENoYW5uZWwuY3BwOyBw
YXRoID0gTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDE3OTE1QUQyMjU2QkI3NDAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWwuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViU29ja2V0Q2hhbm5lbC5oOyBwYXRo
ID0gTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxNzkxNUIwMjI1NkMwRDYwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsTWFuYWdlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJTb2NrZXRDaGFubmVsTWFuYWdl
ci5oOyBwYXRoID0gTmV0d29yay9XZWJTb2NrZXRDaGFubmVsTWFuYWdlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNzEzMCw2ICs3MTQxLDExIEBACiAJCQkJNDE3MjE5OEEyM0I2
MTI4MjAwQUU1Njg2IC8qIExpYldlYlJUQ0NvZGVjcy5jcHAgKi8sCiAJCQkJNDE3MjE5ODkyM0I2
MTI4MjAwQUU1Njg2IC8qIExpYldlYlJUQ0NvZGVjcy5oICovLAogCQkJCTQxNzIxOThEMjNCNjJD
N0MwMEFFNTY4NiAvKiBMaWJXZWJSVENDb2RlY3MubWVzc2FnZXMuaW4gKi8sCisJCQkJNDE3NkU4
OTcyM0MzNjFCRDAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLmggKi8sCisJCQkJ
NDE3NkU4OTQyM0MzNEUyNjAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCAqLywK
KwkJCQk0MTc2RTg5NTIzQzM0RTI3MDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCAq
LywKKwkJCQk0MTc2RTg5MzIzQzM0RDZGMDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVy
LmNwcCAqLywKKwkJCQk0MTc2RTg5MjIzQzM0RDZFMDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclBy
b3ZpZGVyLmggKi8sCiAJCQkJNDE3MjE5OEMyM0I2MTJFODAwQUU1Njg2IC8qIFJUQ0RlY29kZXJJ
ZGVudGlmaWVyLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHdlYnJ0YzsKQEAgLTcxNDEsNiArNzE1
NywxMiBAQAogCQkJCTQxRTBBN0M2MjNCNjM5NzgwMDU2MTA2MCAvKiBMaWJXZWJSVENDb2RlY3NQ
cm94eS5oICovLAogCQkJCTQxRTBBN0M3MjNCNjM5NzkwMDU2MTA2MCAvKiBMaWJXZWJSVENDb2Rl
Y3NQcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQk0MUUwQTdDODIzQjYzOTc5MDA1NjEwNjAgLyog
TGliV2ViUlRDQ29kZWNzUHJveHkubW0gKi8sCisJCQkJNDE3NkU4OUQyM0MzNzZENTAwM0U4M0ZF
IC8qIFJlbW90ZU1lZGlhUmVjb3JkZXIuY3BwICovLAorCQkJCTQxNzZFODk4MjNDMzY2NzcwMDNF
ODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyLmggKi8sCisJCQkJNDE3NkU4OUMyM0MzNzQ3OTAw
M0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJNDE3NkU4
OUEyM0MzNkY3MTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXJzLmNwcCAqLywKKwkJCQk0
MTc2RTg5OTIzQzM2RDhFMDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlcnMuaCAqLywKKwkJ
CQk0MTc2RTg5QjIzQzM3MjIyMDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlcnMubWVzc2Fn
ZXMuaW4gKi8sCiAJCQkpOwogCQkJcGF0aCA9IHdlYnJ0YzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUmVjb3JkZXJQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGUyZDY2YmZiY2I0OWQ5
Mzg5Mzg2NThjMDAwZWEzMWQ5MmViZjcyNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcApAQCAtMCww
ICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1l
ZGlhUmVjb3JkZXJQcm92aWRlci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAi
TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IE1lZGlhUmVjb3Jk
ZXJQcm92aWRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoTWVkaWFTdHJlYW1Qcml2YXRl
JiBzdHJlYW0pCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgcmV0dXJuIE1lZGlhUmVjb3Jk
ZXJQcml2YXRlQVZGSW1wbDo6Y3JlYXRlKHN0cmVhbSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShzdHJlYW0pOworICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCit9CisKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFSZWNvcmRlclByb3Zp
ZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUmVjb3JkZXJQ
cm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxMGU4ZDQ4MWY4NmEzNWQwZDllZTlmYjgzZWFlZTY2ZGM3
OWRmY2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUmVjb3JkZXJQcm92aWRlci5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVJlY29y
ZGVyUHJpdmF0ZTsKK2NsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZTsKKworY2xhc3MgV0VCQ09SRV9F
WFBPUlQgTWVkaWFSZWNvcmRlclByb3ZpZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4g
Y3JlYXRlKCkgeyByZXR1cm4gbWFrZVVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCk7
IH0KKyAgICB2aXJ0dWFsIH5NZWRpYVJlY29yZGVyUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CisKKyAg
ICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlTWVk
aWFSZWNvcmRlclByaXZhdGUoTWVkaWFTdHJlYW1Qcml2YXRlJik7Cit9OworCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVySWRl
bnRpZmllci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNv
cmRlcklkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmYwNGUzMzNmZTg0NjMyM2NjY2U3OTM4NWNh
NzUyYjU2NDE5M2VkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlcklkZW50aWZpZXIuaApAQCAtMCwwICsxLDM1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmll
ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBNZWRpYVJlY29yZGVySWRlbnRpZmll
clR5cGUgeyB9OwordXNpbmcgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIgPSBPYmplY3RJZGVudGlm
aWVyPE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFS
ZWNvcmRlclByaXZhdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
TWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4YmFmYmMyNTliODE1ZDFmNmE5
YTgwYzlkMDA2ZWY3MzgzMDAwZjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKQEAgLTAsMCArMSwx
MzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFS
ZWNvcmRlclByaXZhdGUuaCIKKworI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVjb3JkZXJzTWVzc2FnZXMuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTdHJlYW1Q
cml2YXRlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CisKKyNpZiBQTEFURk9STShD
T0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK01lZGlhUmVjb3JkZXJQcml2YXRlOjpNZWRpYVJlY29y
ZGVyUHJpdmF0ZShjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKKyAgICA6IG1faWRl
bnRpZmllcihNZWRpYVJlY29yZGVySWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKKyAgICAsIG1fY29u
bmVjdGlvbihXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlv
bigpLmNvbm5lY3Rpb24oKSkKK3sKKyAgICAvLyBGSVhNRTogd2Ugd2lsbCBuZWVkIHRvIGltcGxl
bWVudCBzdXBwb3J0IGZvciBtdWx0aXBsZSBhdWRpby92aWRlbyB0cmFja3MKKyAgICAvLyBDdXJy
ZW50bHkgd2Ugb25seSBjaG9vc2UgdGhlIGZpcnN0IHRyYWNrIGFzIHRoZSByZWNvcmRlZCB0cmFj
ay4KKyAgICAvLyBGSVhNRTogV2Ugd291bGQgYmV0dGVyIHRvIHRocm93IGFuIGV4Y2VwdGlvbiB0
byBKYXZhU2NyaXB0IGlmIHdyaXRlciBjcmVhdGlvbiBmYWlscy4KKworICAgIGNvbnN0IE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlKiBhdWRpb1RyYWNrIHsgbnVsbHB0ciB9OworICAgIGNvbnN0IE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlKiB2aWRlb1RyYWNrIHsgbnVsbHB0ciB9OworICAgIGZvciAo
YXV0byYgdHJhY2sgOiBzdHJlYW0udHJhY2tzKCkpIHsKKyAgICAgICAgaWYgKCF0cmFjay0+ZW5h
YmxlZCgpIHx8IHRyYWNrLT5lbmRlZCgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IHN3aXRjaCAodHJhY2stPnR5cGUoKSkgeworICAgICAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGU6OlZpZGVvOiB7CisgICAgICAgICAgICBhdXRvJiBzZXR0aW5ncyA9IHRyYWNrLT5z
ZXR0aW5ncygpOworICAgICAgICAgICAgaWYgKCF2aWRlb1RyYWNrICYmIHNldHRpbmdzLnN1cHBv
cnRzV2lkdGgoKSAmJiBzZXR0aW5ncy5zdXBwb3J0c0hlaWdodCgpKSB7CisgICAgICAgICAgICAg
ICAgdmlkZW9UcmFjayA9IHRyYWNrLmdldCgpOworICAgICAgICAgICAgICAgIG1fcmVjb3JkZWRW
aWRlb1RyYWNrSUQgPSB2aWRlb1RyYWNrLT5pZCgpOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpU
eXBlOjpBdWRpbzoKKyAgICAgICAgICAgIGlmICghYXVkaW9UcmFjaykgeworICAgICAgICAgICAg
ICAgIG1fcmluZ0J1ZmZlciA9IG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVm
PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPih0aGlzKSk7CisgICAgICAgICAgICAgICAgYXVkaW9U
cmFjayA9IHRyYWNrLmdldCgpOworICAgICAgICAgICAgICAgIG1fcmVjb3JkZWRBdWRpb1RyYWNr
SUQgPSBhdWRpb1RyYWNrLT5pZCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZToKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcnM6OkNyZWF0ZVJlY29yZGVyIHsgbV9pZGVudGlmaWVy
LCAhIWF1ZGlvVHJhY2ssIHZpZGVvVHJhY2sgPyB2aWRlb1RyYWNrLT5zZXR0aW5ncygpLndpZHRo
KCkgOiAwLCB2aWRlb1RyYWNrID8gdmlkZW9UcmFjay0+c2V0dGluZ3MoKS5oZWlnaHQoKSA6IDAg
fSwgMCk7Cit9CisKK01lZGlhUmVjb3JkZXJQcml2YXRlOjp+TWVkaWFSZWNvcmRlclByaXZhdGUo
KQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRl
cnM6OlJlbGVhc2VSZWNvcmRlciB7IG1faWRlbnRpZmllciB9LCAwKTsKK30KKwordm9pZCBNZWRp
YVJlY29yZGVyUHJpdmF0ZTo6c2FtcGxlQnVmZmVyVXBkYXRlZChXZWJDb3JlOjpNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZSYgdHJhY2ssIFdlYkNvcmU6Ok1lZGlhU2FtcGxlJiBzYW1wbGUpCit7Cisg
ICAgaWYgKHRyYWNrLmlkKCkgIT0gbV9yZWNvcmRlZFZpZGVvVHJhY2tJRCkKKyAgICAgICAgcmV0
dXJuOworICAgIGlmIChhdXRvIHJlbW90ZVNhbXBsZSA9IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVh
dGUoc2FtcGxlKSkKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVJlY29yZGVyOjpWaWRlb1NhbXBsZUF2YWlsYWJsZSB7IFdURk1vdmUoKnJlbW90ZVNhbXBs
ZSkgfSwgbV9pZGVudGlmaWVyKTsKK30KKwordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6YXVk
aW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFj
aywgY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9E
YXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IG51
bWJlck9mRnJhbWVzKQoreworICAgIGlmICh0cmFjay5pZCgpICE9IG1fcmVjb3JkZWRBdWRpb1Ry
YWNrSUQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2Rlc2NyaXB0aW9uICE9IGRlc2Ny
aXB0aW9uKSB7CisgICAgICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9u
KCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsK
KyAgICAgICAgbV9kZXNjcmlwdGlvbiA9ICpXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2lj
RGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRp
b24pOworCisgICAgICAgIC8vIEFsbG9jYXRlIGEgcmluZyBidWZmZXIgbGFyZ2UgZW5vdWdoIHRv
IGNvbnRhaW4gMiBzZWNvbmRzIG9mIGF1ZGlvLgorICAgICAgICBtX251bWJlck9mRnJhbWVzID0g
bV9kZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAyOworICAgICAgICBtX3JpbmdCdWZmZXItPmFs
bG9jYXRlKG1fZGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgbV9udW1iZXJPZkZyYW1l
cyk7CisgICAgfQorCisgICAgQVNTRVJUKGlzPFdlYkF1ZGlvQnVmZmVyTGlzdD4oYXVkaW9EYXRh
KSk7CisgICAgbV9yaW5nQnVmZmVyLT5zdG9yZShkb3duY2FzdDxXZWJBdWRpb0J1ZmZlckxpc3Q+
KGF1ZGlvRGF0YSkubGlzdCgpLCBudW1iZXJPZkZyYW1lcywgdGltZS50aW1lVmFsdWUoKSk7Cisg
ICAgdWludDY0X3Qgc3RhcnRGcmFtZTsKKyAgICB1aW50NjRfdCBlbmRGcmFtZTsKKyAgICBtX3Jp
bmdCdWZmZXItPmdldEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7Cisg
ICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyOjpBdWRp
b1NhbXBsZXNBdmFpbGFibGUgeyB0aW1lLCBudW1iZXJPZkZyYW1lcywgc3RhcnRGcmFtZSwgZW5k
RnJhbWUgfSwgbV9pZGVudGlmaWVyKTsKK30KKwordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6
c3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlKQoreworICAgIFNoYXJlZE1lbW9y
eTo6SGFuZGxlIGhhbmRsZTsKKyAgICBpZiAoc3RvcmFnZSkKKyAgICAgICAgc3RvcmFnZS0+Y3Jl
YXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7Cisg
ICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyOjpBdWRp
b1NhbXBsZXNTdG9yYWdlQ2hhbmdlZCB7IGhhbmRsZSwgbV9kZXNjcmlwdGlvbiwgc3RhdGljX2Nh
c3Q8dWludDY0X3Q+KG1fbnVtYmVyT2ZGcmFtZXMpIH0sIG1faWRlbnRpZmllcik7Cit9CisKK3Zv
aWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OmZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyOjpGZXRjaERhdGEgeyB9LCBbY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byYmIGRhdGEs
IGF1dG8mJiBtaW1lVHlwZSkgbXV0YWJsZSB7CisgICAgICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+
IGJ1ZmZlcjsKKyAgICAgICAgaWYgKCFkYXRhLnNpemUoKSkKKyAgICAgICAgICAgIGJ1ZmZlciA9
IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoYnVmZmVyKSwgbWltZVR5cGUpOworICAgIH0sIG1f
aWRlbnRpZmllcik7Cit9CisKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OnN0b3BSZWNvcmRp
bmcoKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNv
cmRlcjo6U3RvcFJlY29yZGluZyB7IH0sIG1faWRlbnRpZmllcik7Cit9CisKK30KKworI2VuZGlm
IC8vIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZh
dGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hZjg5ZWIzOTcwZGJmMjFlNjMyYjFmZThmZmVkMjBmNTkyMzI1ZTZk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
TWVkaWFSZWNvcmRlclByaXZhdGUuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQor
CisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlcklkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFSZWNvcmRlclByaXZh
dGUuaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworfQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgTWVkaWFSZWNvcmRlclByaXZhdGUgZmluYWwgOiBwdWJsaWMg
V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGUsIHB1YmxpYyBTaGFyZWRSaW5nQnVmZmVyU3Rv
cmFnZTo6Q2xpZW50IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAg
ICBleHBsaWNpdCBNZWRpYVJlY29yZGVyUHJpdmF0ZShjb25zdCBXZWJDb3JlOjpNZWRpYVN0cmVh
bVByaXZhdGUmKTsKKyAgICB+TWVkaWFSZWNvcmRlclByaXZhdGUoKTsKKworcHJpdmF0ZToKKyAg
ICAvLyBXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZQorICAgIHZvaWQgc2FtcGxlQnVmZmVy
VXBkYXRlZChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIFdlYkNvcmU6Ok1lZGlh
U2FtcGxlJikgZmluYWw7CisgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoV2ViQ29yZTo6
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFdl
YkNvcmU6OlBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgV2ViQ29yZTo6QXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiYsIHNpemVfdCkgZmluYWw7CisgICAgdm9pZCBmZXRjaERhdGEoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmLCBjb25zdCBTdHJpbmcm
IG1pbWVUeXBlKT4mJikgZmluYWw7CisgICAgdm9pZCBzdG9wUmVjb3JkaW5nKCkgZmluYWw7CisK
KyAgICAvLyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50CisgICAgdm9pZCBzdG9yYWdl
Q2hhbmdlZChTaGFyZWRNZW1vcnkqKTsKKworICAgIE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyIG1f
aWRlbnRpZmllcjsKKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAg
ICBTdHJpbmcgbV9yZWNvcmRlZEF1ZGlvVHJhY2tJRDsKKyAgICBTdHJpbmcgbV9yZWNvcmRlZFZp
ZGVvVHJhY2tJRDsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+
IG1fcmluZ0J1ZmZlcjsKKyAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9k
ZXNjcmlwdGlvbiB7IH07CisgICAgaW50NjRfdCBtX251bWJlck9mRnJhbWVzIHsgMCB9OworfTsK
KworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFS
ZWNvcmRlclByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDQwYzdhNGVhY2VmZDJjN2Vi
MTZhZGZjY2U2OWI4MTY4YzRlN2RiZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAKQEAgLTAsMCAr
MSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRp
YVJlY29yZGVyUHJvdmlkZXIuaCIKKworI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlLmgi
CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlPiBNZWRpYVJlY29yZGVy
UHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtUHJp
dmF0ZSYgc3RyZWFtKQoreworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBpZiAoIW1fdXNl
R1BVUHJvY2VzcykKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRl
cjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoc3RyZWFtKTsKKworICAgIHJldHVybiBtYWtl
VW5pcXVlPE1lZGlhUmVjb3JkZXJQcml2YXRlPihzdHJlYW0pOworI2Vsc2UKKyAgICByZXR1cm4g
V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0
ZShzdHJlYW0pOworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKK30KKworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclBy
b3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29y
ZGVyUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yY2YyNzAxZTBlNTY3NTdiYzVhMGViNzk3MGNjYTU2
MzYwNDQwYjdmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVJlY29yZGVyUHJv
dmlkZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIE1lZGlhUmVjb3JkZXJQcm92
aWRlciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXIgeworcHVi
bGljOgorICAgIE1lZGlhUmVjb3JkZXJQcm92aWRlcigpID0gZGVmYXVsdDsKKworcHJpdmF0ZToK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0
ZU1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZSYp
IGZpbmFsOworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAppbmRleCBlZDQyYmQxOTk4ZTRhZGVjOGQyMWY0NWU2MWNhMGU3ZGI5ODFlZjkxLi4z
Y2E4YmU4ZWY3N2Y5Mjc4OTc3ZDdjMzI1NDljNjUxZDQxZWFjY2RjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2lu
Y2x1ZGUgIkxpYldlYlJUQ1Byb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTG9hZFBhcmFtZXRlcnMuaCIK
ICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgi
CiAjaW5jbHVkZSAiTmV0c2NhcGVQbHVnaW4uaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uLmgiCkBAIC00NjAsNyArNDYxLDggQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgICAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5jYWNoZVN0b3JhZ2VQcm92aWRlcigpLAogICAgICAg
ICBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6Y3JlYXRlKCp0aGlzKSwKICAgICAgICAgV2ViQ29v
a2llSmFyOjpjcmVhdGUoKSwKLSAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNr
ZXJDbGllbnQ+KCp0aGlzKQorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tl
ckNsaWVudD4oKnRoaXMpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92
aWRlcj4oKQogICAgICk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3
IFdlYkNocm9tZUNsaWVudCgqdGhpcyk7CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggNGM0MTg2NGQ4OWY0
MDU2N2VkODFlZDJlZmVmYjUwMWY2NzUzZGI4NC4uMTliMjIxY2IyMjc4M2M1YjY0YzM1M2QwMjg1
YTQ0OGY0NTNkMGI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQpAQCAtMTgwLDYgKzE4MCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmlu
Z3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9nSW5pdGlhbGl6YXRpb24uaD4KICNpbXBvcnQgPFdl
YkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgorI2ltcG9ydCA8V2ViQ29yZS9NZWRpYVJlY29yZGVy
UHJvdmlkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvTWVtb3J5Q2FjaGUuaD4KICNpbXBvcnQgPFdl
YkNvcmUvTWVtb3J5UmVsZWFzZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNl
c3Npb24uaD4KQEAgLTE0NDgsNyArMTQ0OSw4IEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRpYWxp
emVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiAgICAgICAgIFdlYkNvcmU6OkNhY2hlU3Rv
cmFnZVByb3ZpZGVyOjpjcmVhdGUoKSwKICAgICAgICAgQmFja0ZvcndhcmRMaXN0OjpjcmVhdGUo
c2VsZiksCiAgICAgICAgIFdlYkNvcmU6OkNvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRl
ci5jb3B5UmVmKCkpLAotICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNs
aWVudD4oc2VsZikKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGll
bnQ+KHNlbGYpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQ
cm92aWRlcj4oKQogICAgICk7CiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgcGFnZUNv
bmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudChzZWxmKTsKQEAg
LTE3MTcsNyArMTcxOSw4IEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRpYWxpemVHYW1lcGFkUHJv
dmlkZXJJZk5lY2Vzc2FyeSgpCiAgICAgICAgIFdlYkNvcmU6OkNhY2hlU3RvcmFnZVByb3ZpZGVy
OjpjcmVhdGUoKSwKICAgICAgICAgQmFja0ZvcndhcmRMaXN0OjpjcmVhdGUoc2VsZiksCiAgICAg
ICAgIFdlYkNvcmU6OkNvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkp
LAotICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oc2VsZikK
KyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KHNlbGYpLAor
ICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQog
ICAgICk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9t
ZUNsaWVudElPUyhzZWxmKTsKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386851</attachid>
            <date>2020-01-06 08:55:06 -0800</date>
            <delta_ts>2020-01-06 09:16:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205802-20200106175504.patch</filename>
            <type>text/plain</type>
            <size>91514</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTY1NWRkZmQ4ZWEzZmM5
YWIyYjQ0ODhjZjJhNjQ2ODU3YWFmZGQ5MC4uZWJhMzNhMjcyNjc3NWQ1YTI0YjFhYjZjZjJhMmYw
N2VlNDBhZGFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIwLTAxLTA2ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgTWVkaWFS
ZWNvcmRlciBiYWNrZW5kIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTgwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMgYXMgTWVkaWFS
ZWNvcmRlciBpbXBsZW1lbnRhdGlvbiBpbiBXZWJLaXRUZXN0UnVubmVyIHdpbGwgdXNlIEdQVVBy
b2Nlc3MuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUpOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmg6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29y
ZGVyUHJpdmF0ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3Jk
ZXJQcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGlu
LmNwcDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAg
ICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAg
ICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Om1lZGlhUmVjb3Jk
ZXJQcm92aWRlcik6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOgorICAg
ICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
cjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVBy
aXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZS5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnRlcm5hbHM6OnNldFVzZUdQVVByb2Nlc3NGb3JXZWJSVEMpOgorCiAyMDIwLTAxLTA2
ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBYTUxIVFRQUmVx
dWVzdCBQT1NUcyBibG9iIGRhdGEgdG8gYSBjdXN0b20gV0tVUkxTY2hlbWVIYW5kbGVyIHByb3Rv
Y29sIGNyYXNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ0N2VkMzAyODY1OWY3OWJkZWE3N2I2ZWY4NGFmZThhZTc0
YWE2Y2IuLjk0MGEzZjIyZGJjMmFiODYxMjg1YWVkMmUzNTA3YTYyYTAxMzIwMzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNjMgQEAKKzIwMjAtMDEtMDYgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBNZWRpYVJlY29yZGVyIGJhY2tlbmQgaW4gR1BV
UHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA1ODAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6dXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
Om1lZGlhUmVjb3JkZXJzKToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWFjL2NvbS5hcHBsZS5X
ZWJLaXQuR1BVUHJvY2Vzcy5zYi5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVNZWRpYVJlY29yZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UmVjb3JkZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXI6
OlJlbW90ZU1lZGlhUmVjb3JkZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29y
ZGVyOjp+UmVtb3RlTWVkaWFSZWNvcmRlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UmVjb3JkZXI6OnN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVy
OjphdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUmVjb3JkZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUmVjb3JkZXI6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6ZmV0Y2hEYXRhKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFSZWNvcmRlcjo6c3RvcFJlY29yZGluZyk6CisgICAgICAgICogR1BVUHJvY2Vzcy93
ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAg
KiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyczo6UmVtb3RlTWVkaWFSZWNvcmRlcnMp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyczo6flJlbW90ZU1lZGlhUmVj
b3JkZXJzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcnM6OmRpZFJlY2Vp
dmVSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUmVjb3JkZXJzOjpjcmVhdGVSZWNvcmRlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUmVjb3JkZXJzOjpyZWxlYXNlUmVjb3JkZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJzLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVJlY29yZGVyczo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vzcyk6CisgICAg
ICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMubWVzc2FnZXMuaW46
IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAq
IFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaDogQWRk
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJJZGVudGlm
aWVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29y
ZGVyUHJpdmF0ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJp
dmF0ZTo6TWVkaWFSZWNvcmRlclByaXZhdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29y
ZGVyUHJpdmF0ZTo6fk1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVk
aWFSZWNvcmRlclByaXZhdGU6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQpOgorICAgICAgICAoV2ViS2l0
OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6OnN0b3JhZ2VDaGFuZ2VkKToKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6OmZldGNoRGF0YSk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdG9wUmVjb3JkaW5nKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaDogQWRkZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVj
b3JkZXJQcml2YXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNv
cmRlclByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9vdmVycmlkZGVuTWVkaWFUeXBlKToKKwogMjAy
MC0wMS0wNSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTWVkaWEgaW4gR1BVIHByb2Nlc3NdIEFkZCByZW1vdGUgTUlNRSB0eXBlIGNhY2hlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNDRhZjI4NmU0M2MwOTFhYjg0OGMxNDA4MzY2Y2U2
OWZjZmZmNTZjZS4uNWU0MmY1N2ZmNTRmNjkwOTBiNWRjZWVlNGY1NzBmMGY5ZDU2OGNmMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAxLTA2ICB5
b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgTWVk
aWFSZWNvcmRlciBiYWNrZW5kIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTgwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAo
LVtXZWJWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6Z3JvdXBOYW1lOl0p
OgorICAgICAgICAoLVtXZWJWaWV3IGluaXRTaW1wbGVIVE1MRG9jdW1lbnRXaXRoU3R5bGU6ZnJh
bWU6cHJlZmVyZW5jZXM6Z3JvdXBOYW1lOl0pOgorCiAyMDIwLTAxLTA1ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBhIHNvdWNlIG9mIFdlYktp
dDEgdGVzdCBmbGFraW5lc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcAppbmRleCA5OTFlYTJhMGYzZDIyNDRkZjFlOGVl
MjdmNzkwODZkM2VjNDNkNmYwLi5hZGYzNTA0ODg3YTIzNzE3N2E0ZDlkNmZhYTljN2YzYTMxMzJk
MjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXIuY3BwCkBAIC0zNCw2ICszNCw4IEBACiAjaW5jbHVkZSAiRXZlbnROYW1l
cy5oIgogI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmgiCiAjaW5jbHVkZSAiTWVk
aWFSZWNvcmRlclByaXZhdGUuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCIK
KyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAi
V2luZG93RXZlbnRMb29wLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KQEAg
LTUwLDcgKzUyLDcgQEAgY3JlYXRvckZ1bmN0aW9uIE1lZGlhUmVjb3JkZXI6Om1fY3VzdG9tQ3Jl
YXRvciA9IG51bGxwdHI7CiAKIEV4Y2VwdGlvbk9yPFJlZjxNZWRpYVJlY29yZGVyPj4gTWVkaWFS
ZWNvcmRlcjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgUmVmPE1lZGlhU3RyZWFtPiYmIHN0
cmVhbSwgT3B0aW9ucyYmIG9wdGlvbnMpCiB7Ci0gICAgYXV0byBwcml2YXRlSW5zdGFuY2UgPSBN
ZWRpYVJlY29yZGVyOjpnZXRQcml2YXRlSW1wbChzdHJlYW0tPnByaXZhdGVTdHJlYW0oKSk7Cisg
ICAgYXV0byBwcml2YXRlSW5zdGFuY2UgPSBNZWRpYVJlY29yZGVyOjpjcmVhdGVNZWRpYVJlY29y
ZGVyUHJpdmF0ZShkb2N1bWVudCwgc3RyZWFtLT5wcml2YXRlU3RyZWFtKCkpOwogICAgIGlmICgh
cHJpdmF0ZUluc3RhbmNlKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVk
RXJyb3IsICJUaGUgTWVkaWFSZWNvcmRlciBpcyB1bnN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3Jt
Il9zIH07CiAgICAgYXV0byByZWNvcmRlciA9IGFkb3B0UmVmKCpuZXcgTWVkaWFSZWNvcmRlcihk
b2N1bWVudCwgV1RGTW92ZShzdHJlYW0pLCBXVEZNb3ZlKHByaXZhdGVJbnN0YW5jZSksIFdURk1v
dmUob3B0aW9ucykpKTsKQEAgLTYzLDE3ICs2NSwxNiBAQCB2b2lkIE1lZGlhUmVjb3JkZXI6OnNl
dEN1c3RvbVByaXZhdGVSZWNvcmRlckNyZWF0b3IoY3JlYXRvckZ1bmN0aW9uIGNyZWF0b3IpCiAg
ICAgbV9jdXN0b21DcmVhdG9yID0gY3JlYXRvcjsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPE1lZGlh
UmVjb3JkZXJQcml2YXRlPiBNZWRpYVJlY29yZGVyOjpnZXRQcml2YXRlSW1wbChjb25zdCBNZWRp
YVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJp
dmF0ZT4gTWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoRG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBpZiAo
bV9jdXN0b21DcmVhdG9yKQogICAgICAgICByZXR1cm4gbV9jdXN0b21DcmVhdG9yKCk7CiAgICAg
Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgcmV0dXJuIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZG
SW1wbDo6Y3JlYXRlKHN0cmVhbSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzdHJlYW0pOwot
ICAgIHJldHVybiBudWxscHRyOwotI2VuZGlmCisgICAgYXV0byogcGFnZSA9IGRvY3VtZW50LnBh
Z2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0
dXJuIHBhZ2UtPm1lZGlhUmVjb3JkZXJQcm92aWRlcigpLmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2
YXRlKHN0cmVhbSk7CiB9CiAKIE1lZGlhUmVjb3JkZXI6Ok1lZGlhUmVjb3JkZXIoRG9jdW1lbnQm
IGRvY3VtZW50LCBSZWY8TWVkaWFTdHJlYW0+JiYgc3RyZWFtLCBzdGQ6OnVuaXF1ZV9wdHI8TWVk
aWFSZWNvcmRlclByaXZhdGU+JiYgcHJpdmF0ZUltcGwsIE9wdGlvbnMmJiBvcHRpb24pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRl
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIu
aAppbmRleCBlYjZmOTZhNmFlMGEzOWJhMTBiNTIwYmI5OGNjNGVlMWI1MzkzNzQ0Li4wNjM5NTJh
OTY3ZGFjMjJhMjc0ZjU0N2FlNGNiY2FlMmNlNmRhZDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKQEAgLTc1LDcgKzc1
LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBNZWRpYVJlY29yZGVyKERvY3VtZW50JiwgUmVm
PE1lZGlhU3RyZWFtPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+JiYs
IE9wdGlvbnMmJiA9IHsgfSk7CiAKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVj
b3JkZXJQcml2YXRlPiBnZXRQcml2YXRlSW1wbChjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmKTsK
KyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBjcmVhdGVN
ZWRpYVJlY29yZGVyUHJpdmF0ZShEb2N1bWVudCYsIGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYp
OwogICAgIAogICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
UHJvdmlkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ZWM1ZWE5YzA1NmYyZDc5N2YzZTFkNDg4ODE0NWVj
YjFkNjBjYjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92
aWRlci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclBy
aXZhdGVBVkZJbXBsLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGQ6OnVu
aXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IE1lZGlhUmVjb3JkZXJQcm92aWRlcjo6Y3Jl
YXRlTWVkaWFSZWNvcmRlclByaXZhdGUoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0p
Cit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgcmV0dXJuIE1lZGlhUmVjb3JkZXJQcml2YXRl
QVZGSW1wbDo6Y3JlYXRlKHN0cmVhbSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShzdHJlYW0p
OworICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlk
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41ZGU0MTM0Y2MwMGRjMDdmMzFkNGQ2OGM2YzM1MmRlYzliNmI3MmVl
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXJQcm92aWRlci5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVJlY29yZGVy
UHJpdmF0ZTsKK2NsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZTsKKworY2xhc3MgV0VCQ09SRV9FWFBP
UlQgTWVkaWFSZWNvcmRlclByb3ZpZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
K3B1YmxpYzoKKyAgICBNZWRpYVJlY29yZGVyUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CisgICAgdmly
dHVhbCB+TWVkaWFSZWNvcmRlclByb3ZpZGVyKCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCBz
dGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3JkZXJQ
cml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYpOworCisgICAgdm9pZCBzZXRVc2VHUFVQ
cm9jZXNzKGJvb2wgdmFsdWUpIHsgbV91c2VHUFVQcm9jZXNzID0gdmFsdWU7IH0KKworcHJvdGVj
dGVkOgorICAgIGJvb2wgbV91c2VHUFVQcm9jZXNzIHsgZmFsc2UgfTsKK307CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1Bpbi5jcHAKaW5kZXggN2YwYzY1OWQ4
NGQxYmQyN2QyYTU2Yjg0YmVlOTE4ZWY1ODMyNmEzOC4uZTIxMGE4ZGI4ZGEwZjI2OTRjNWE0ZjVl
ZWU1ZTcxMTljZWYwNjg5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9maWRvL1Bpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9m
aWRvL1Bpbi5jcHAKQEAgLTQxLDkgKzQxLDE2IEBACiAjaW5jbHVkZSAiQ3J5cHRvS2V5QUVTLmgi
CiAjaW5jbHVkZSAiQ3J5cHRvS2V5RUMuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlITUFDLmgiCisj
aW5jbHVkZSAiRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuaCIKKyNpbmNsdWRlICJXZWJBdXRoZW50
aWNhdGlvbkNvbnN0YW50cy5oIgogI2luY2x1ZGUgPHBhbC9jcnlwdG8vQ3J5cHRvRGlnZXN0Lmg+
CiAKIG5hbWVzcGFjZSBmaWRvIHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwordXNpbmcgQ0JP
UiA9IGNib3I6OkNCT1JWYWx1ZTsKKworY29uc3RleHByIHNpemVfdCBrUmVzcG9uc2VDb2RlTGVu
Z3RoID0gMTsKKwogbmFtZXNwYWNlIHBpbiB7CiB1c2luZyBuYW1lc3BhY2UgY2JvcjsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAppbmRleCA5Mjk3ZDA0NGU0NDgyNzhkYmU3YzkxNjliYjMyNmM5ZGZiNzA0MjViLi5l
Y2JiNmIwOGRjZDY5YWIxYmRiNTE0ZjQyYjIyNDE5NTFiZTMzYWUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApA
QCAtMTUxLDYgKzE1MSw3IEBAIE1vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9z
dC5jcHAKIAogTW9kdWxlcy9tZWRpYXJlY29yZGVyL0Jsb2JFdmVudC5jcHAKIE1vZHVsZXMvbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcAorTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXJQcm92aWRlci5jcHAKIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
RXJyb3JFdmVudC5jcHAKIAogTW9kdWxlcy9tZWRpYXNlc3Npb24vSFRNTE1lZGlhRWxlbWVudE1l
ZGlhU2Vzc2lvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAwNzllOTQ2OWIxMWZiYmYxNjdhMTcwMjJmNTk5OTc0MGNmNjYx
YjU4Li4xM2QxNjRkMTc4ZTRlNTViNDYyOWM0ZTJhZWNlZDM2OTkzMDYzZDg4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDk5
LDYgKzEwOTksNyBAQAogCQk0MTc2MTJCMDFFM0E5OTQwMDBDM0Q4MUQgLyogTGliV2ViUlRDTWVk
aWFFbmRwb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDE3NjEyQUMxRTNBOTkzQjAwQzNEODFEIC8qIExpYldlYlJUQ01lZGlhRW5kcG9pbnQuaCAq
LzsgfTsKIAkJNDE3NjEyQjExRTNBOTk0MDAwQzNEODFEIC8qIExpYldlYlJUQ1BlZXJDb25uZWN0
aW9uQmFja2VuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MTc2MTJBRDFFM0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rpb25C
YWNrZW5kLmNwcCAqLzsgfTsKIAkJNDE3NjEyQjIxRTNBOTk0MDAwQzNEODFEIC8qIExpYldlYlJU
Q1BlZXJDb25uZWN0aW9uQmFja2VuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDE3NjEyQUUxRTNBOTkzQjAwQzNEODFEIC8qIExpYldlYlJUQ1BlZXJD
b25uZWN0aW9uQmFja2VuZC5oICovOyB9OworCQk0MTc2RTg5NjIzQzM1MzdCMDAzRTgzRkUgLyog
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTc2RTg4RjIzQzM0OEQyMDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclBy
b3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNDE3REE2RDkxMzczNEU2RTAwN0M1N0ZCIC8qIEludGVybmFscy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTdEQTRDRjEzNzM0MzI2MDA3QzU3
RkIgLyogSW50ZXJuYWxzLmNwcCAqLzsgfTsKIAkJNDE3REE2REExMzczNEU2RTAwN0M1N0ZCIC8q
IEludGVybmFscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDE3REE0Q0UxMzczNDMyNjAwN0M1N0ZCIC8qIEludGVybmFscy5oICovOyB9OwogCQk0MTdE
QTcxRDEzNzM1REZBMDA3QzU3RkIgLyogSlNJbnRlcm5hbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3REE3MUIxMzczNURGQTAwN0M1N0ZCIC8q
IEpTSW50ZXJuYWxzLmNwcCAqLzsgfTsKQEAgLTEzNzIsOSArMTM3Myw5IEBACiAJCTRCREVBMzJD
MjE4MDMzRUIwMDUyREZDRCAvKiBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCREVBMzJCMjE4MDMzRUIwMDUy
REZDRCAvKiBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuaCAqLzsgfTsKIAkJNEQzQjAwQUIyMTVE
NjlBNzAwNzZCOTgzIC8qIE1lZGlhUmVjb3JkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREM0IwMEE5MjE1RDY5QTcwMDc2Qjk4MyAvKiBNZWRpYVJl
Y29yZGVyLmggKi87IH07CiAJCTREM0IwMEFGMjE1RDZBNjkwMDc2Qjk4MyAvKiBCbG9iRXZlbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREM0IwMEFE
MjE1RDZBNjkwMDc2Qjk4MyAvKiBCbG9iRXZlbnQuaCAqLzsgfTsKLQkJNEQzQjUwMTYyMTdFNThC
NzAwNjY1REIxIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RDNCNTAxNDIxN0U1OEI3MDA2NjVEQjEgLyogTWVk
aWFSZWNvcmRlclByaXZhdGUuaCAqLzsgfTsKKwkJNEQzQjUwMTYyMTdFNThCNzAwNjY1REIxIC8q
IE1lZGlhUmVjb3JkZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0RDNCNTAxNDIxN0U1OEI3MDA2NjVEQjEgLyogTWVkaWFSZWNvcmRlclBy
aXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk0RDczRjk0NjIxOEJDNUZBMDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RDczRjk0
NDIxOEJDNUZBMDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmggKi87IH07
Ci0JCTRENzNGOTRFMjE4QzRBODcwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
ckNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
RDczRjk0QzIxOEM0QTg3MDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2Nv
YS5oICovOyB9OworCQk0RDczRjk0RTIxOEM0QTg3MDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNEQ3M0Y5NEMyMThDNEE4NzAwM0EzRUQ2IC8qIE1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyQ29jb2EuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk0REI3MTMwRDIxNkVDQjREMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZl
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREQjcx
MzBDMjE2RUMyQkQwMDk2QTRERCAvKiBNZWRpYVJlY29yZGVyRXJyb3JFdmVudC5oICovOyB9Owog
CQk0RTE5NTkyMjBBMzlEQUJBMDAyMjBGRTUgLyogTWVkaWFGZWF0dXJlTmFtZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRFMTk1OTIwMEEzOURBQkEw
MDIyMEZFNSAvKiBNZWRpYUZlYXR1cmVOYW1lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTRFMTk1OTJBMEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRp
YVF1ZXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
RTE5NTkyNDBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC03Mzk4LDYgKzczOTksOCBAQAogCQk0
MTc2MTJBRTFFM0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5k
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExpYldlYlJUQ1BlZXJDb25uZWN0
aW9uQmFja2VuZC5oOyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFj
a2VuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc2OTAwMzIyRkNEOEYyMDBC
MTU3NkQgLyogTWVkaWFTb3VyY2VSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNZWRpYVNvdXJjZVJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxNzY5MDA0MjJGQ0Q4RjIwMEIxNTc2RCAvKiBNZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU291cmNlUmVnaXN0cnku
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc2RTg4RjIzQzM0OEQyMDAzRTgz
RkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lZGlhUmVjb3JkZXJQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0MTc2RTg5MTIzQzM0Qjc1MDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJQcm92aWRlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzdGNTFDMjM4MjU0NDAwMEMwNDQ4NiAvKiBCYXNlQXVk
aW9TaGFyZWRVbml0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJh
c2VBdWRpb1NoYXJlZFVuaXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc3
RjUxRTIzODI1NDVFMDBDMDQ0ODYgLyogQmFzZUF1ZGlvU2hhcmVkVW5pdC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBCYXNlQXVkaW9TaGFyZWRVbml0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxN0RBNENFMTM3MzQzMjYwMDdDNTdGQiAvKiBJbnRlcm5hbHMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW50ZXJuYWxzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODkzMSw2ICsxODkzNCw4IEBACiAJCQkJNERCNzEzMEUy
MTZFRUJBRTAwOTZBNEREIC8qIE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmNwcCAqLywKIAkJCQk0
REI3MTMwQzIxNkVDMkJEMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaCAqLywK
IAkJCQk0REI3MTMwQTIxNkVDMkJDMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQu
aWRsICovLAorCQkJCTQxNzZFODkxMjNDMzRCNzUwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJv
dmlkZXIuY3BwICovLAorCQkJCTQxNzZFODhGMjNDMzQ4RDIwMDNFODNGRSAvKiBNZWRpYVJlY29y
ZGVyUHJvdmlkZXIuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWVkaWFyZWNvcmRlcjsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0zMTQ3Myw2ICszMTQ3OCw3IEBACiAJCQkJNEQzQjUw
MTYyMTdFNThCNzAwNjY1REIxIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0RDczRjk0NjIxOEJDNUZBMDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVB
VkZJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RDczRjk0RTIxOEM0QTg3MDAzQTNFRDYgLyog
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE3
NkU4OTYyM0MzNTM3QjAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92aWRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQzkwODQzRDAxQjE4RTQ3RDAwQjY4NTY0IC8qIE1lZGlhUmVtb3RlQ29udHJv
bHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEOEFDQThGMUQyMzk3MTkwMEVDQzU5RSAvKiBNZWRp
YVJlbW90ZVNvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRUVGQ0Q3QTE5REIzMUY3MDAz
ODc2RDcgLyogTWVkaWFSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDBlYjVhMTIwYWY4NzY1MzBjNWM2Y2Y3ZGFl
MDA5OTIxZmEzNjQyOWEuLmZiNDM5ZTJhYWJlNjNjM2Q4ZTRmMGEyOWVjZWVkODM0MmQxMmZhYTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01Myw2ICs1Myw4IEBA
CiAjaW5jbHVkZSAiSURCQ29ubmVjdGlvblRvU2VydmVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9y
Q2xpZW50LmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJNZWRp
YVJlY29yZGVyUHJpdmF0ZS5oIgorI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92aWRlci5oIgog
I2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJQYWdlQ29uZmlndXJhdGlvbi5oIgpAQCAtNTcxLDEwICs1NzMsMTcgQEAgUmVmPFN0
b3JhZ2VOYW1lc3BhY2U+IEVtcHR5U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOjpjcmVhdGVUcmFu
c2llbnRMb2NhbFN0b3JhZ2UKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbXB0eVN0b3JhZ2VO
YW1lc3BhY2UgeyBzZXNzaW9uSUQgfSk7CiB9CiAKLWNsYXNzIEVtcHR5U3RvcmFnZVNlc3Npb25Q
cm92aWRlciA6IHB1YmxpYyBTdG9yYWdlU2Vzc2lvblByb3ZpZGVyIHsKK2NsYXNzIEVtcHR5U3Rv
cmFnZVNlc3Npb25Qcm92aWRlciBmaW5hbCA6IHB1YmxpYyBTdG9yYWdlU2Vzc2lvblByb3ZpZGVy
IHsKICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24qIHN0b3JhZ2VTZXNzaW9uKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbnVsbHB0cjsgfQogfTsKIAorY2xhc3MgRW1wdHlNZWRpYVJlY29yZGVyUHJv
dmlkZXIgZmluYWwgOiBwdWJsaWMgTWVkaWFSZWNvcmRlclByb3ZpZGVyIHsKK3B1YmxpYzoKKyAg
ICBFbXB0eU1lZGlhUmVjb3JkZXJQcm92aWRlcigpID0gZGVmYXVsdDsKK3ByaXZhdGU6CisgICAg
c3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBjcmVhdGVNZWRpYVJlY29yZGVy
UHJpdmF0ZShjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmKSBmaW5hbCB7IHJldHVybiBudWxscHRy
OyB9Cit9OworCiBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNs
aWVudHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIFBhZ2VDb25maWd1cmF0aW9u
IHBhZ2VDb25maWd1cmF0aW9uIHsKQEAgLTU4NSw3ICs1OTQsOCBAQCBQYWdlQ29uZmlndXJhdGlv
biBwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKQogICAgICAgICBDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlKCksCiAgICAgICAgIGFk
b3B0UmVmKCpuZXcgRW1wdHlCYWNrRm9yd2FyZENsaWVudCksCiAgICAgICAgIENvb2tpZUphcjo6
Y3JlYXRlKGFkb3B0UmVmKCpuZXcgRW1wdHlTdG9yYWdlU2Vzc2lvblByb3ZpZGVyKSksCi0gICAg
ICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCkKKyAgICAgICAg
bWFrZVVuaXF1ZVJlZjxFbXB0eVByb2dyZXNzVHJhY2tlckNsaWVudD4oKSwKKyAgICAgICAgbWFr
ZVVuaXF1ZVJlZjxFbXB0eU1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgIH07CiAKICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlDaHJvbWVDbGllbnQ+IGR1bW15Q2hyb21lQ2xpZW50
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNzViNWZkMDFhNWJkNjYzMGY3ZmVjNmI3ZTdlMjNiZmEx
MDAzZDgwMi4uM2VkOGM0MmFiNmUxMDlmZTdiNTA5NGVlMTkxZWQ5YjQxNzRkNDYwMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCkBAIC0yNDYsNiArMjQ2LDcgQEAgUGFnZTo6UGFnZShQYWdlQ29uZmlndXJh
dGlvbiYmIHBhZ2VDb25maWd1cmF0aW9uKQogI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQog
ICAgICwgbV9zcGVlY2hTeW50aGVzaXNDbGllbnQoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5z
cGVlY2hTeW50aGVzaXNDbGllbnQpKQogI2VuZGlmCisgICAgLCBtX21lZGlhUmVjb3JkZXJQcm92
aWRlcigoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5tZWRpYVJlY29yZGVyUHJvdmlkZXIpKSkK
ICAgICAsIG1fbGliV2ViUlRDUHJvdmlkZXIoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5saWJX
ZWJSVENQcm92aWRlcikpCiAgICAgLCBtX3ZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eShTY3JvbGxF
bGFzdGljaXR5QWxsb3dlZCkKICAgICAsIG1faG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkoU2Ny
b2xsRWxhc3RpY2l0eUFsbG93ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDg5YWFkNGE3MDZjMzNjZjUx
NjIyZmVjZTkxNzAyZjVlMGYyYmViNmMuLmIyNmM1MzZjNWExNzI3NDJlNzVkZTAxOTcwZWQ4MGVl
N2E0N2U5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0xMTAsNiArMTEwLDcgQEAgY2xhc3MgTGliV2Vi
UlRDUHJvdmlkZXI7CiBjbGFzcyBMb3dQb3dlck1vZGVOb3RpZmllcjsKIGNsYXNzIE1lZGlhQ2Fu
U3RhcnRMaXN0ZW5lcjsKIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXQ7CitjbGFzcyBNZWRpYVJl
Y29yZGVyUHJvdmlkZXI7CiBjbGFzcyBQYWdlQ29uZmlndXJhdGlvbjsKIGNsYXNzIFBhZ2VDb25z
b2xlQ2xpZW50OwogY2xhc3MgUGFnZURlYnVnZ2FibGU7CkBAIC01ODQsNiArNTg1LDcgQEAgcHVi
bGljOgogICAgIERhdGFiYXNlUHJvdmlkZXImIGRhdGFiYXNlUHJvdmlkZXIoKSB7IHJldHVybiBt
X2RhdGFiYXNlUHJvdmlkZXI7IH0KICAgICBDYWNoZVN0b3JhZ2VQcm92aWRlciYgY2FjaGVTdG9y
YWdlUHJvdmlkZXIoKSB7IHJldHVybiBtX2NhY2hlU3RvcmFnZVByb3ZpZGVyOyB9CiAgICAgU29j
a2V0UHJvdmlkZXImIHNvY2tldFByb3ZpZGVyKCkgeyByZXR1cm4gbV9zb2NrZXRQcm92aWRlcjsg
fQorICAgIE1lZGlhUmVjb3JkZXJQcm92aWRlciYgbWVkaWFSZWNvcmRlclByb3ZpZGVyKCkgeyBy
ZXR1cm4gbV9tZWRpYVJlY29yZGVyUHJvdmlkZXI7IH0KICAgICBDb29raWVKYXImIGNvb2tpZUph
cigpIHsgcmV0dXJuIG1fY29va2llSmFyLmdldCgpOyB9CiAKICAgICBTdG9yYWdlTmFtZXNwYWNl
UHJvdmlkZXImIHN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcigpIHsgcmV0dXJuIG1fc3RvcmFnZU5h
bWVzcGFjZVByb3ZpZGVyLmdldCgpOyB9CkBAIC03OTUsNiArNzk3LDcgQEAgcHJpdmF0ZToKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoU3ludGhlc2lzQ2xpZW50PiBtX3NwZWVjaFN5bnRoZXNp
c0NsaWVudDsKICNlbmRpZgogCisgICAgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4g
bV9tZWRpYVJlY29yZGVyUHJvdmlkZXI7CiAgICAgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVy
PiBtX2xpYldlYlJUQ1Byb3ZpZGVyOwogICAgIFJUQ0NvbnRyb2xsZXIgbV9ydGNDb250cm9sbGVy
OwogCkBAIC05MjAsNyArOTIzLDYgQEAgcHJpdmF0ZToKICAgICBSZWY8VXNlckNvbnRlbnRQcm92
aWRlcj4gbV91c2VyQ29udGVudFByb3ZpZGVyOwogICAgIFJlZjxWaXNpdGVkTGlua1N0b3JlPiBt
X3Zpc2l0ZWRMaW5rU3RvcmU7CiAgICAgUmVmUHRyPFdoZWVsRXZlbnRUZXN0TW9uaXRvcj4gbV93
aGVlbEV2ZW50VGVzdE1vbml0b3I7Ci0KICAgICBIYXNoU2V0PEFjdGl2aXR5U3RhdGVDaGFuZ2VP
YnNlcnZlcio+IG1fYWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyczsKIAogI2lmIEVOQUJMRShS
RVNPVVJDRV9VU0FHRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZp
Z3VyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAK
aW5kZXggZWY4NzdhNTU4ODIxZTQ0NjdmNDVjYTNjMDUyMWNhZjIyZDkwN2RkZS4uMzM4ZjRlN2Mx
OTEyMWFmMTc5NDJkMDE3MjRjZTI5MTEzYzVkM2YyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJEcmFnQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDUHJv
dmlkZXIuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCIKICNpbmNsdWRlICJQ
ZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJQbHVnSW5DbGllbnQuaCIKICNp
bmNsdWRlICJQbHVnaW5JbmZvUHJvdmlkZXIuaCIKQEAgLTU1LDcgKzU2LDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1QYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNs
aWVudCwgUmVmPFNvY2tldFByb3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGli
V2ViUlRDUHJvdmlkZXI+JiYgbGliV2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92
aWRlcj4mJiBjYWNoZVN0b3JhZ2VQcm92aWRlciwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJh
Y2tGb3J3YXJkQ2xpZW50LCBSZWY8Q29va2llSmFyPiYmIGNvb2tpZUphciwgVW5pcXVlUmVmPFBy
b2dyZXNzVHJhY2tlckNsaWVudD4mJiBwcm9ncmVzc1RyYWNrZXJDbGllbnQpCitQYWdlQ29uZmln
dXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlx
dWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNsaWVudCwgUmVmPFNvY2tldFByb3ZpZGVyPiYm
IHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYgbGliV2ViUlRD
UHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiBjYWNoZVN0b3JhZ2VQcm92aWRl
ciwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJhY2tGb3J3YXJkQ2xpZW50LCBSZWY8Q29va2ll
SmFyPiYmIGNvb2tpZUphciwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiBwcm9n
cmVzc1RyYWNrZXJDbGllbnQsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYgbWVk
aWFSZWNvcmRlclByb3ZpZGVyKQogICAgIDogc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIGVk
aXRvckNsaWVudChXVEZNb3ZlKGVkaXRvckNsaWVudCkpCiAgICAgLCBzb2NrZXRQcm92aWRlcihX
VEZNb3ZlKHNvY2tldFByb3ZpZGVyKSkKQEAgLTY0LDYgKzY1LDcgQEAgUGFnZUNvbmZpZ3VyYXRp
b246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVm
PEVkaXRvckMKICAgICAsIGJhY2tGb3J3YXJkQ2xpZW50KFdURk1vdmUoYmFja0ZvcndhcmRDbGll
bnQpKQogICAgICwgY29va2llSmFyKFdURk1vdmUoY29va2llSmFyKSkKICAgICAsIGNhY2hlU3Rv
cmFnZVByb3ZpZGVyKFdURk1vdmUoY2FjaGVTdG9yYWdlUHJvdmlkZXIpKQorICAgICwgbWVkaWFS
ZWNvcmRlclByb3ZpZGVyKFdURk1vdmUobWVkaWFSZWNvcmRlclByb3ZpZGVyKSkKIHsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IDE5MWEwMmI2MTVmNDBh
OTgwYzQyMWY3ZmJmM2YzMTZkMmIxNjRmZWYuLjNhOGVkMzM0NDBjMmMxODg1MjgzMTg5MThhNzUy
MmI5MjE3ZjQ3NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3Vy
YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKQEAg
LTUyLDYgKzUyLDcgQEAgY2xhc3MgRWRpdG9yQ2xpZW50OwogY2xhc3MgRnJhbWVMb2FkZXJDbGll
bnQ7CiBjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CiBjbGFzcyBMaWJXZWJSVENQcm92aWRlcjsKK2Ns
YXNzIE1lZGlhUmVjb3JkZXJQcm92aWRlcjsKIGNsYXNzIFBheW1lbnRDb29yZGluYXRvckNsaWVu
dDsKIGNsYXNzIFBlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudDsKIGNsYXNzIFBsdWdJbkNsaWVudDsK
QEAgLTY4LDcgKzY5LDcgQEAgY2xhc3MgU3BlZWNoU3ludGhlc2lzQ2xpZW50OwogY2xhc3MgUGFn
ZUNvbmZpZ3VyYXRpb24gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDb25maWd1cmF0
aW9uKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBP
UlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGll
bnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVy
PiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4m
JiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJik7
CisgICAgV0VCQ09SRV9FWFBPUlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQsIFVu
aXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVlUmVm
PExpYldlYlJUQ1Byb3ZpZGVyPiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJlZjxC
YWNrRm9yd2FyZENsaWVudD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNz
VHJhY2tlckNsaWVudD4mJiwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJik7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgflBhZ2VDb25maWd1cmF0aW9uKCk7CiAgICAgUGFnZUNvbmZpZ3Vy
YXRpb24oUGFnZUNvbmZpZ3VyYXRpb24mJik7CiAKQEAgLTEyMyw2ICsxMjQsNyBAQCBwdWJsaWM6
CiAgICAgUmVmUHRyPERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI+IGRldmljZU9yaWVu
dGF0aW9uVXBkYXRlUHJvdmlkZXI7CiAjZW5kaWYKICAgICBWZWN0b3I8U3RyaW5nPiBjb3JzRGlz
YWJsaW5nUGF0dGVybnM7CisgICAgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4gbWVk
aWFSZWNvcmRlclByb3ZpZGVyOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNv
Y29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAppbmRleCBmZmY0NWQ2MzkzOGRiMzM4YjQ3MjRi
N2E3NDZjZTM3MjRmYTFkM2FiLi41MTk3OGJiNmQ4ZDFhMWIwZTVjMWM3YTAxNTEyMjJiZDhiZGZi
MmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2Nv
Y29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
Q29jb2EuaApAQCAtNDksOSArNDksMTAgQEAgY2xhc3MgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsK
IGNsYXNzIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOwogY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7
CiAKLWNsYXNzIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIDogcHVibGljIFRocmVhZFNhZmVS
ZWZDb3VudGVkPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyLCBXVEY6OkRlc3RydWN0aW9uVGhy
ZWFkOjpNYWluPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyPiB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciA6
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciwg
V1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRp
YVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8TWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IGNyZWF0ZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZSogYXVkaW9UcmFjaywgY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIHZpZGVvVHJh
Y2spOworICAgIHN0YXRpYyBSZWZQdHI8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IGNyZWF0
ZShib29sIGhhc0F1ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOwogICAgIH5NZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlcigpOwogICAgIAogICAgIGJvb2wgc2V0dXBXcml0ZXIoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQppbmRl
eCA5MmZlMmE0NTBlNTkzZjI0YTk2OGZhZWYwYTZiOTZmOTVhZGUzNTEzLi4wNjljODg3NGYwMDll
MDk2YzI0OWEwNzgwMTkwZGQ4MDQ4YzZiOWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29j
b2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9N
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCkBAIC05MCw2ICs5MCwxNyBAQCBzdGF0
aWMgTlNTdHJpbmcgKmdldEFWRW5jb2RlckJpdFJhdGVLZXlXaXRoRmFsbGJhY2soKQogfQogCiBS
ZWZQdHI8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IE1lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyOjpjcmVhdGUoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIGF1ZGlvVHJhY2ssIGNv
bnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiB2aWRlb1RyYWNrKQoreworICAgIGludCB3aWR0
aCA9IDAsIGhlaWdodCA9IDA7CisgICAgaWYgKHZpZGVvVHJhY2spIHsKKyAgICAgICAgYXV0byYg
c2V0dGluZ3MgPSB2aWRlb1RyYWNrLT5zZXR0aW5ncygpOworICAgICAgICB3aWR0aCA9IHNldHRp
bmdzLndpZHRoKCk7CisgICAgICAgIGhlaWdodCA9IHNldHRpbmdzLmhlaWdodCgpOworICAgIH0K
KyAgICByZXR1cm4gY3JlYXRlKCEhYXVkaW9UcmFjaywgd2lkdGgsIGhlaWdodCk7Cit9CisKK1Jl
ZlB0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gTWVkaWFSZWNvcmRlclByaXZhdGVXcml0
ZXI6OmNyZWF0ZShib29sIGhhc0F1ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCiB7CiAgICAg
TlNTdHJpbmcgKmRpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9y
eShAInZpZGVvcyIpOwogICAgIE5TU3RyaW5nICpmaWxlbmFtZSA9IFtOU1N0cmluZyBzdHJpbmdX
aXRoRm9ybWF0OkAiLyVsbGQubXA0IiwgQ01DbG9ja0dldFRpbWUoQ01DbG9ja0dldEhvc3RUaW1l
Q2xvY2soKSkudmFsdWVdOwpAQCAtMTA2LDEyICsxMTcsMTEgQEAgUmVmUHRyPE1lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyPiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y3JlYXRlKGNvbnN0
IE1lZGkKIAogICAgIGF1dG8gd3JpdGVyID0gYWRvcHRSZWYoKm5ldyBNZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlcihXVEZNb3ZlKGF2QXNzZXRXcml0ZXIpLCBXVEZNb3ZlKGZpbGVQYXRoKSkpOwog
Ci0gICAgaWYgKGF1ZGlvVHJhY2sgJiYgIXdyaXRlci0+c2V0QXVkaW9JbnB1dCgpKQorICAgIGlm
IChoYXNBdWRpbyAmJiAhd3JpdGVyLT5zZXRBdWRpb0lucHV0KCkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCi0gICAgaWYgKHZpZGVvVHJhY2spIHsKLSAgICAgICAgYXV0byYgc2V0dGluZ3Mg
PSB2aWRlb1RyYWNrLT5zZXR0aW5ncygpOwotICAgICAgICBpZiAoIXdyaXRlci0+c2V0VmlkZW9J
bnB1dChzZXR0aW5ncy53aWR0aCgpLCBzZXR0aW5ncy5oZWlnaHQoKSkpCisgICAgaWYgKHdpZHRo
ICYmIGhlaWdodCkgeworICAgICAgICBpZiAoIXdyaXRlci0+c2V0VmlkZW9JbnB1dCh3aWR0aCwg
aGVpZ2h0KSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZh
dGUuaAppbmRleCA0YTA2ODQ0MzhjZTY2NWQ3Y2QwNGRhMTBlYTExYTViYzJiNmYyOWY1Li5kZTQ0
ZDg4ZWY1YjljMzgxNDA0NGUwNWY3YzI4YmVlMThhNzJlZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaApA
QCAtODEsNyArODEsNyBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgaWQoKSBjb25zdCB7IHJldHVy
biBtX2lkOyB9CiAKLSAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciB0cmFja3MoKSBj
b25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciB0
cmFja3MoKSBjb25zdDsKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogYWN0aXZlVmlkZW9U
cmFjaygpIHsgcmV0dXJuIG1fYWN0aXZlVmlkZW9UcmFjazsgfQogCiAgICAgYm9vbCBhY3RpdmUo
KSBjb25zdCB7IHJldHVybiBtX2lzQWN0aXZlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaApp
bmRleCBhNGVjNDM4YTk4NDRmYzgyNTE2MTllZDMzOThmZmY3YWViYjE5MjI2Li5kMDlmM2ViZjA0
ZDMwZmE1M2ZjYzJlMzAyZWEwODAzOTQ4ZDAxMTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRl
LmgKQEAgLTEwMCw3ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgUmVmPE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlPiBjbG9uZSgpOwogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKCkgeyBy
ZXR1cm4gbV9zb3VyY2UuZ2V0KCk7IH0KLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5
cGUoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
IHR5cGUoKSBjb25zdDsKIAogICAgIHZvaWQgZW5kVHJhY2soKTsKIApAQCAtMTEwLDcgKzExMCw3
IEBAIHB1YmxpYzoKICAgICBib29sIGhhc09ic2VydmVyKE9ic2VydmVyJikgY29uc3Q7CiAjZW5k
aWYKIAotICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBj
b25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MmIHNldHRpbmdzKCkgY29uc3Q7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgY29uc3Q7CiAKICAgICB2b2lkIGFwcGx5Q29uc3RyYWlu
dHMoY29uc3QgTWVkaWFDb25zdHJhaW50cyYsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5Q29u
c3RyYWludHNIYW5kbGVyJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4
IGYxYTE2NGQxNzMwNWVkZjFmZTZlZGJhMWQ4Yzk4NDAzM2M4ZDU0YTAuLjA5YTRlNzA4YjgyMjgw
OTQzNTBiNzFmODNkNGFlZGI4MDM3ZDg5YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKQEAgLTEyMiw2ICsxMjIsNyBAQAogI2luY2x1ZGUgIk1lZGlhRW5naW5lQ29uZmlndXJh
dGlvbkZhY3RvcnkuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk1lZGlh
UHJvZHVjZXIuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCIKICNpbmNsdWRl
ICJNZWRpYVJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFjay5oIgog
I2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCkBAIC01NTAsNiArNTUxLDggQEAgdm9pZCBJbnRlcm5h
bHM6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoUGFnZSYgcGFnZSkKIAogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5z
ZXRJbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxpdHlDaGFuZ2VFbmFibGVkKGZhbHNlKTsKKyAg
ICBXZWJDb3JlOjpNZWRpYVJlY29yZGVyOjpzZXRDdXN0b21Qcml2YXRlUmVjb3JkZXJDcmVhdG9y
KG51bGxwdHIpOworICAgIHBhZ2UubWVkaWFSZWNvcmRlclByb3ZpZGVyKCkuc2V0VXNlR1BVUHJv
Y2Vzcyh0cnVlKTsKICNlbmRpZgogCiAgICAgSFRNTENhbnZhc0VsZW1lbnQ6OnNldE1heFBpeGVs
TWVtb3J5Rm9yVGVzdGluZygwKTsgLy8gVGhpcyBtZWFucyB1c2UgdGhlIGRlZmF1bHQgdmFsdWUu
CkBAIC0xNTU4LDcgKzE1NjEsOSBAQCB2b2lkIEludGVybmFsczo6c2V0VXNlR1BVUHJvY2Vzc0Zv
cldlYlJUQyhib29sIHVzZUdQVVByb2Nlc3MpCiAgICAgYXV0byogZG9jdW1lbnQgPSBjb250ZXh0
RG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKQogICAg
ICAgICByZXR1cm47CisKICAgICBkb2N1bWVudC0+cGFnZSgpLT5saWJXZWJSVENQcm92aWRlcigp
LnNldFVzZUdQVVByb2Nlc3ModXNlR1BVUHJvY2Vzcyk7CisgICAgZG9jdW1lbnQtPnBhZ2UoKS0+
bWVkaWFSZWNvcmRlclByb3ZpZGVyKCkuc2V0VXNlR1BVUHJvY2Vzcyh1c2VHUFVQcm9jZXNzKTsK
ICNlbmRpZgogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QKaW5kZXggNzk5NGUzY2E3Nzc2MzI5ZDZmNzVkN2FhZjBjOTNmZDlhYTA1OWUx
MC4uYjk4ODBiYzBhY2Y2ZjYxYzAyYjNiMzdkMmM0Y2JlZWJhMTAyMDgyNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTksNiArMTksOCBA
QCAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVByb2Nl
c3Muc2IuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIp
L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1lc3NhZ2VzLmluCiskKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2Vz
LmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVy
cy5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJD
b29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9D
dXN0b21Qcm90b2NvbHMvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLm1lc3Nh
Z2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dAppbmRleCAwY2QyM2UwMWJiYWNkMmVjNGEwYmRjM2JkZmYyYmUwZDdiNjBiMDFiLi5kNzIwNjIz
YWJhY2FkZGU5N2M1ZjM1YzI3MzJmNThkZjliOTYyNzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEyOSw2ICsxMjksMTIgQEAgJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyTWVzc2FnZXNSZXAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2Vz
UmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2VzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlh
UmVjb3JkZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZWNvcmRlcnNNZXNzYWdlUmVjZWl2ZXIuY3BwCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJl
Y29yZGVyc01lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZU1lZGlhUmVjb3JkZXJzTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXgg
OWQzZTJhOTBjN2I0ZDkwYTQyNmM3NmE0ZTA1ZTZiMmY4MWNjMGU5ZS4uYTU2ODYwMWI3N2IxZGJk
N2ZmZDYzNmRlN2I2MzRiMWZlMmIxMjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpA
QCAtMTQzLDYgKzE0Myw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHkgXAogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciBcCiAg
ICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkgXAorICAgIFJlbW90ZU1lZGlhUmVjb3Jk
ZXIgXAorICAgIFJlbW90ZU1lZGlhUmVjb3JkZXJzIFwKICAgICBSZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlciBcCiAgICAgUmVtb3RlT2JqZWN0UmVnaXN0cnkgXAogICAgIFJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA1MmE5NWNlMGRlZDcwM2Q2MWQzNGE5ZDE3
ZjBjOGI0MmU2NjRmZGRhLi43ZjY2MzNhN2Q3OThhMTU0NjQ2ZTI5OWI2OTgxZDkyNTNiMmNjNzdj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCkBAIC0zOSw2ICszOSw5IEBACiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlcnMuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJl
Y29yZGVyc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIu
aCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5oIgpAQCAtMTM3LDkg
KzE0MCw3IEBAIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkmIEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OnVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyCiAKICAgICByZXR1cm4gKm1fdXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKIH0KLSNlbmRpZgogCi0jaWYgUExBVEZPUk0oQ09DT0Ep
ICYmIFVTRShMSUJXRUJSVEMpCiBMaWJXZWJSVENDb2RlY3NQcm94eSYgR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6bGliV2ViUlRDQ29kZWNzUHJveHkoKQogewogICAgIGlmICghbV9saWJXZWJS
VENDb2RlY3NQcm94eSkKQEAgLTE0OSw2ICsxNTAsMTYgQEAgTGliV2ViUlRDQ29kZWNzUHJveHkm
IEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxpYldlYlJUQ0NvZGVjc1Byb3h5KCkKIH0KICNl
bmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCitSZW1vdGVNZWRp
YVJlY29yZGVycyYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bWVkaWFSZWNvcmRlcnMoKQor
eworICAgIGlmICghbV9yZW1vdGVNZWRpYVJlY29yZGVycykKKyAgICAgICAgbV9yZW1vdGVNZWRp
YVJlY29yZGVycyA9IG1ha2VVbmlxdWU8UmVtb3RlTWVkaWFSZWNvcmRlcnM+KCp0aGlzKTsKKwor
ICAgIHJldHVybiAqbV9yZW1vdGVNZWRpYVJlY29yZGVyczsKK30KKyNlbmRpZgorCiB2b2lkIEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChkZWNvZGVy
Lm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewpAQCAtMTYzLDYgKzE3NCwxNCBAQCB2
b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSQogICAgICAgICB1c2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5KCkuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVy
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2
ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXJzOjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCkpIHsKKyAgICAgICAgbWVkaWFSZWNvcmRlcnMoKS5kaWRSZWNlaXZlTWVzc2FnZUZy
b21XZWJQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVt
b3RlTWVkaWFSZWNvcmRlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIG1lZGlh
UmVjb3JkZXJzKCkuZGlkUmVjZWl2ZVJlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlKGNvbm5lY3Rp
b24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQogI2VuZGlmCiAjaWYgUExBVEZP
Uk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2Vp
dmVyTmFtZSgpID09IE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBhYzcxMjVkNzM4ZDg2ODg4ZWVhOGI0YTkyNTE1Zjlk
ZTRkMWY2YjA0Li44OWM0Y2ExYzIyMmZhNWM5YTU0ZmE2YzA1NmRhOTgyM2JiNTZlZDRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmgKQEAgLTQxLDggKzQxLDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBHUFVQcm9j
ZXNzOwogY2xhc3MgTGliV2ViUlRDQ29kZWNzUHJveHk7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eTsKLWNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7CitjbGFz
cyBSZW1vdGVNZWRpYVJlY29yZGVyczsKIGNsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
OworY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKIAogY2xhc3MgR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2VzcwogICAgIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcz4KQEAgLTcxLDYgKzcyLDcgQEAgcHJpdmF0ZToKICNlbmRpZgogI2lmIFBMQVRG
T1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkmIHVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoKTsKKyAgICBSZW1vdGVN
ZWRpYVJlY29yZGVycyYgbWVkaWFSZWNvcmRlcnMoKTsKICNlbmRpZgogCiAgICAgLy8gSVBDOjpD
b25uZWN0aW9uOjpDbGllbnQKQEAgLTg5LDYgKzkxLDcgQEAgcHJpdmF0ZToKICAgICBQQUw6OlNl
c3Npb25JRCBtX3Nlc3Npb25JRDsKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eT4gbV91c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OworICAgIHN0ZDo6dW5pcXVlX3B0cjxS
ZW1vdGVNZWRpYVJlY29yZGVycz4gbV9yZW1vdGVNZWRpYVJlY29yZGVyczsKICNlbmRpZgogI2lm
IFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxM
aWJXZWJSVENDb2RlY3NQcm94eT4gbV9saWJXZWJSVENDb2RlY3NQcm94eTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNz
LnNiLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQ
VVByb2Nlc3Muc2IuaW4KaW5kZXggZDYzMmJlZWJjYjM1ZDc0ZTM4ZTBjYjE4NjFiN2YwNTdhNWYz
NmQ5NC4uOWI3NDEyYmI0ZGE2Y2VmMmY3MmIyN2Y1YTQxZmRlZGE3MTY5ODA1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVByb2Nl
c3Muc2IuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2Vi
S2l0LkdQVVByb2Nlc3Muc2IuaW4KQEAgLTgzNiwzICs4MzYsNyBAQAogICAgICAgICAoaW9raXQt
dXNlci1jbGllbnQtY2xhc3MgIklPVVNCSW50ZXJmYWNlVXNlckNsaWVudFYyIikpCiAgICAgKGFs
bG93IGRldmljZS1jYW1lcmEpKQogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKKworKGFsbG93IGZp
bGUtcmVhZCogZmlsZS13cml0ZSogKHN1YnBhdGggKHBhcmFtICJEQVJXSU5fVVNFUl9DQUNIRV9E
SVIiKSkpCisKKyhhbGxvdyBmaWxlLXJlYWQqIGZpbGUtd3JpdGUqIChzdWJwYXRoIChwYXJhbSAi
REFSV0lOX1VTRVJfVEVNUF9ESVIiKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZjA3Njgz
NmNlYmVlYWFhMTQ2NWI4NjJjNGFlNjA3ZTQ0Mzc2YjJjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcApAQCAt
MCwwICsxLDEzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJSZW1vdGVNZWRpYVJlY29yZGVyLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VU
cmFuc2ZlclNlc3Npb25WVC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVtb3RlVmlkZW9TYW1wbGUu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworc3RkOjp1bmlxdWVfcHRyPFJlbW90ZU1lZGlhUmVjb3JkZXI+IFJlbW90ZU1l
ZGlhUmVjb3JkZXI6OmNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLCBNZWRpYVJlY29yZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBib29s
IHJlY29yZEF1ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCit7CisgICAgYXV0byB3cml0ZXIg
PSBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y3JlYXRlKHJlY29yZEF1ZGlvLCB3aWR0aCwg
aGVpZ2h0KTsKKyAgICBpZiAoIXdyaXRlcikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
cmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVJlY29yZGVyPihuZXcgUmVtb3RlTWVk
aWFSZWNvcmRlciB7IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIGlkZW50aWZpZXIsIHdyaXRl
ci5yZWxlYXNlTm9uTnVsbCgpLCByZWNvcmRBdWRpbyB9KTsKK30KKworUmVtb3RlTWVkaWFSZWNv
cmRlcjo6UmVtb3RlTWVkaWFSZWNvcmRlcihHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLCBNZWRpYVJlY29yZGVySWRlbnRpZmllciBpZGVudGlmaWVy
LCBSZWY8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+JiYgd3JpdGVyLCBib29sIHJlY29yZEF1
ZGlvKQorICAgIDogbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGdwdUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MpCisgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAsIG1fd3JpdGVy
KFdURk1vdmUod3JpdGVyKSkKK3sKKyAgICBpZiAocmVjb3JkQXVkaW8pCisgICAgICAgIG1fcmlu
Z0J1ZmZlciA9IG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlPihudWxscHRyKSk7Cit9CisKK1JlbW90ZU1lZGlhUmVjb3JkZXI6On5S
ZW1vdGVNZWRpYVJlY29yZGVyKCkKK3sKK30KKworU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIFJl
bW90ZU1lZGlhUmVjb3JkZXI6OnN0b3JhZ2UoKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxT
aGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci0+c3RvcmFnZSgpKTsKK30KKwor
dm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyOjphdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZChjb25z
dCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYgaGFuZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK3sK
KyAgICBBU1NFUlQobV9yaW5nQnVmZmVyKTsKKyAgICBpZiAoIW1fcmluZ0J1ZmZlcikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOworCisgICAgaWYg
KGhhbmRsZS5pc051bGwoKSkgeworICAgICAgICBtX3JpbmdCdWZmZXItPmRlYWxsb2NhdGUoKTsK
KyAgICAgICAgc3RvcmFnZSgpLnNldFJlYWRPbmx5KGZhbHNlKTsKKyAgICAgICAgc3RvcmFnZSgp
LnNldFN0b3JhZ2UobnVsbHB0cik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBSZWZQ
dHI8U2hhcmVkTWVtb3J5PiBtZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1hcChoYW5kbGUsIFNoYXJl
ZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworICAgIHN0b3JhZ2UoKS5zZXRTdG9yYWdl
KFdURk1vdmUobWVtb3J5KSk7CisgICAgc3RvcmFnZSgpLnNldFJlYWRPbmx5KHRydWUpOworCisg
ICAgbV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOwor
fQorCit2b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRp
YVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUs
IHVpbnQ2NF90IGVuZEZyYW1lKQoreworICAgIEFTU0VSVChtX3JpbmdCdWZmZXIpOworICAgIGlm
ICghbV9yaW5nQnVmZmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3JpbmdCdWZmZXItPnNl
dEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7CisKKyAgICBXZWJBdWRp
b0J1ZmZlckxpc3QgYXVkaW9EYXRhKG1fZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAg
ICBtX3JpbmdCdWZmZXItPmZldGNoKGF1ZGlvRGF0YS5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0
aW1lLnRpbWVWYWx1ZSgpKTsKKworICAgIG1fd3JpdGVyLT5hcHBlbmRBdWRpb1NhbXBsZUJ1ZmZl
cihhdWRpb0RhdGEsIG1fZGVzY3JpcHRpb24sIHRpbWUsIG51bWJlck9mRnJhbWVzKTsKK30KKwor
dm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3JlOjpS
ZW1vdGVWaWRlb1NhbXBsZSYmIHJlbW90ZVNhbXBsZSkKK3sKKyAgICBpZiAoIW1faW1hZ2VUcmFu
c2ZlclNlc3Npb24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+cGl4ZWxGb3JtYXQoKSAhPSBy
ZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSkKKyAgICAgICAgbV9pbWFnZVRyYW5zZmVyU2Vzc2lv
biA9IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShyZW1vdGVTYW1wbGUudmlkZW9Gb3Jt
YXQoKSk7CisKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24pIHsKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHNh
bXBsZUJ1ZmZlciA9IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1lZGlhU2FtcGxlKHJl
bW90ZVNhbXBsZS5zdXJmYWNlKCksIHJlbW90ZVNhbXBsZS50aW1lKCksIHJlbW90ZVNhbXBsZS5z
aXplKCkpOworICAgIGlmICghc2FtcGxlQnVmZmVyKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV93cml0ZXItPmFwcGVuZFZp
ZGVvU2FtcGxlQnVmZmVyKHNhbXBsZUJ1ZmZlci0+cGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21T
YW1wbGVCdWZmZXIpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXI6OmZldGNoRGF0YShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6RGF0YVJlZmVyZW5jZSYmLCBjb25zdCBTdHJpbmcm
IG1pbWVUeXBlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgU3RyaW5nPiBtcDRNaW1lVHlwZShNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgi
dmlkZW8vbXA0IikpOworICAgIG1fd3JpdGVyLT5mZXRjaERhdGEoWyZtcDRNaW1lVHlwZSA9IG1w
NE1pbWVUeXBlLmdldCgpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXShhdXRvJiYgZGF0YSkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8qIHBvaW50ZXIgPSBy
ZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRhID8gZGF0YS0+ZGF0YSgpIDogbnVs
bHB0cik7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKElQQzo6RGF0YVJlZmVyZW5jZSB7IHBv
aW50ZXIsIGRhdGEgPyBkYXRhLT5zaXplKCkgOiAwIH0sIG1wNE1pbWVUeXBlKTsKKyAgICB9KTsK
K30KKwordm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyOjpzdG9wUmVjb3JkaW5nKCkKK3sKKyAgICBt
X3dyaXRlci0+c3RvcFJlY29yZGluZygpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40NGE4ZDE3NTVjNTk1MzBjMjMxMzZiNDc3YjlhOGEwODU0NDE0ZjU2Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJl
Y29yZGVyLmgKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIk1l
ZGlhUmVjb3JkZXJJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisj
aW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyQ29jb2EuaD4KKyNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CisKK25hbWVzcGFjZSBJUEMg
eworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIERhdGFSZWZlcmVuY2U7CitjbGFzcyBEZWNvZGVy
OworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDQVJpbmdCdWZmZXI7CitjbGFzcyBJ
bWFnZVRyYW5zZmVyU2Vzc2lvblZUOworY2xhc3MgUmVtb3RlVmlkZW9TYW1wbGU7Cit9CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOworY2xh
c3MgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U7CisKK2NsYXNzIFJlbW90ZU1lZGlhUmVjb3JkZXIg
OiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZU1lZGlhUmVj
b3JkZXI+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgTWVkaWFSZWNvcmRlcklk
ZW50aWZpZXIsIGJvb2wgcmVjb3JkQXVkaW8sIGludCB3aWR0aCwgaW50IGhlaWdodCk7CisgICAg
flJlbW90ZU1lZGlhUmVjb3JkZXIoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgUmVt
b3RlTWVkaWFSZWNvcmRlcihHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgTWVkaWFSZWNvcmRl
cklkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4mJiwg
Ym9vbCByZWNvcmRBdWRpbyk7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZv
aWQgYXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUm
LCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCB1aW50NjRfdCBudW1i
ZXJPZkZyYW1lcyk7CisgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lLCB1
aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5k
RnJhbWUpOworICAgIHZvaWQgdmlkZW9TYW1wbGVBdmFpbGFibGUoV2ViQ29yZTo6UmVtb3RlVmlk
ZW9TYW1wbGUmJik7CisgICAgdm9pZCBmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJ
UEM6OkRhdGFSZWZlcmVuY2UmJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk+JiYpOworICAgIHZv
aWQgc3RvcFJlY29yZGluZygpOworCisgICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3Jh
Z2UoKTsKKworICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIG1fZ3B1Q29ubmVjdGlvblRv
V2ViUHJvY2VzczsKKyAgICBNZWRpYVJlY29yZGVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7Cisg
ICAgUmVmPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiBtX3dyaXRlcjsKKwor
ICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVD4gbV9pbWFn
ZVRyYW5zZmVyU2Vzc2lvbjsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIubWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYzE0ZWRjNTM2MTAyM2VkYzc4Mjc4MGM0ZDQ2ZTlkMTViOTQ4
MTM5ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlTWVkaWFSZWNvcmRlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM0IEBACisjIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisj
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFSZWNvcmRlciBOb3RS
ZWZDb3VudGVkIHsKKyAgICBBdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZChXZWJLaXQ6OlNoYXJl
ZE1lbW9yeTo6SGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisgICAgQXVkaW9T
YW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywg
dWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCisgICAgVmlkZW9TYW1wbGVB
dmFpbGFibGUoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUgc2FtcGxlKQorICAgIEZldGNoRGF0
YSgpIC0+IChJUEM6OkRhdGFSZWZlcmVuY2UgYnVmZmVyLCBTdHJpbmcgbWltZVR5cGUpIEFzeW5j
CisgICAgU3RvcFJlY29yZGluZygpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJzLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hNjFiNzc0YjZkMWU0ODhkMDc5OWU0YzQzNTdlMmQ4YjFiOGYxZDk3Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29y
ZGVycy5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlY29yZGVycy5oIgorCisjaWYgUExBVEZPUk0oQ09D
T0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVjb3Jk
ZXIuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZU1lZGlhUmVjb3JkZXJzOjpSZW1v
dGVNZWRpYVJlY29yZGVycyhHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzKQorICAgIDogbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGdwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MpCit7Cit9CisKK1JlbW90ZU1lZGlhUmVjb3JkZXJzOjp+UmVtb3Rl
TWVkaWFSZWNvcmRlcnMoKQoreworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXJzOjpkaWRS
ZWNlaXZlUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgaWYgKGF1dG8qIHJlY29yZGVyID0g
bV9yZWNvcmRlcnMuZ2V0KG1ha2VPYmplY3RJZGVudGlmaWVyPE1lZGlhUmVjb3JkZXJJZGVudGlm
aWVyVHlwZT4oZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpKSkKKyAgICAgICAgcmVjb3JkZXItPmRp
ZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworfQorCit2b2lkIFJlbW90ZU1l
ZGlhUmVjb3JkZXJzOjpjcmVhdGVSZWNvcmRlcihNZWRpYVJlY29yZGVySWRlbnRpZmllciBpZGVu
dGlmaWVyLCBib29sIHJlY29yZEF1ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCit7CisgICAg
QVNTRVJUKCFtX3JlY29yZGVycy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgYXV0byByZWNv
cmRlciA9IFJlbW90ZU1lZGlhUmVjb3JkZXI6OmNyZWF0ZShtX2dwdUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MsIGlkZW50aWZpZXIsIHJlY29yZEF1ZGlvLCB3aWR0aCwgaGVpZ2h0KTsKKyAgICBpZiAo
IXJlY29yZGVyKSB7CisgICAgICAgIC8vIEZJWE1FOiBTZW5kIGJhY2sgZXJyb3IuCisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgbV9yZWNvcmRlcnMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUo
cmVjb3JkZXIpKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyczo6cmVsZWFzZVJlY29y
ZGVyKE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKG1f
cmVjb3JkZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBtX3JlY29yZGVycy5yZW1vdmUo
aWRlbnRpZmllcik7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJzLmggYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJzLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjc2
ZjE3OTRhNTA0MzZjZmJmMGUyZTZhMDk4NTg2MDM0M2RiYTI5NQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMuaApA
QCAtMCwwICsxLDY3IEBACisKKworLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExB
VEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIk1lZGlhUmVj
b3JkZXJJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOwor
Y2xhc3MgRGVjb2RlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M7CitjbGFzcyBSZW1vdGVNZWRpYVJlY29yZGVyOworCitjbGFzcyBS
ZW1vdGVNZWRpYVJlY29yZGVycyA6IHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IFJlbW90ZU1l
ZGlhUmVjb3JkZXJzKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKKyAgICB+UmVtb3RlTWVk
aWFSZWNvcmRlcnMoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVJlbW90ZU1lZGlhUmVjb3JkZXJN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQ
Qzo6RGVjb2RlciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNv
ZGVyKTsgfQorCitwcml2YXRlOgorICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5h
bDsKKyAgICB2b2lkIGNyZWF0ZVJlY29yZGVyKE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLCBib29s
IHJlY29yZEF1ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworICAgIHZvaWQgcmVsZWFzZVJl
Y29yZGVyKE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyKTsKKworICAgIEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MmIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzczsKKyAgICBIYXNoTWFwPE1lZGlh
UmVjb3JkZXJJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFSZWNvcmRlcj4+
IG1fcmVjb3JkZXJzOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJzLm1lc3Nh
Z2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ0ZTVkZTkyOTI2NTQ0N2E1ZjBhZWNlMDZhNDZjMjA1NWRkNWVm
ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZU1lZGlhUmVjb3JkZXJzLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKyMgQ29weXJp
Z2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVJlY29yZGVycyBOb3RS
ZWZDb3VudGVkIHsKKyAgICBDcmVhdGVSZWNvcmRlcihXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJJZGVu
dGlmaWVyIGlkLCBib29sIGhhc0F1ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCisgICAgUmVs
ZWFzZVJlY29yZGVyKFdlYktpdDo6TWVkaWFSZWNvcmRlcklkZW50aWZpZXIgaWQpCit9CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggNjkwNjMx
MDZjYWI1NDAyMWM0Mjg5NmNkY2I3NjNhNzU2Zjc4YWY4Ni4uZjExZjE2MTE0ZjA3YTJlMGRjNjRh
ZWQ4MjBkNThjN2I2OGQ3MzBiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5CkBAIC0yMjAsNiArMjIwLDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2Zvcndh
cmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYktpdDo6QWN0aXZpdHlTdGF0ZUNoYW5nZUlEJywK
ICAgICAgICAgJ1dlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEJywKICAgICAgICAgJ1dlYktp
dDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllcicsCisgICAgICAgICdXZWJLaXQ6
Ok1lZGlhUmVjb3JkZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6UmVtb3RlTWVkaWFS
ZXNvdXJjZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpSVENEZWNvZGVySWRlbnRpZmll
cicsCiAgICAgICAgICdXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllcicsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApp
bmRleCBjYTUyNjAzZWQ1YjA3Y2MxYTEwNzIxNzM2ZWQ0NmM2Nzg5NDEzMzEyLi40OTRkMjkyMDU0
ODY4MjBmZmZiNGUyYjQ5OGE4OTM3M2UyZmE4ZjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTI0LDYgKzI0
LDggQEAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHAKK0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwCitHUFVQcm9j
ZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5jcHAKIC8vR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKIC8vR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5LmNwcAogLy9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVz
b3VyY2UuY3BwCkBAIC01MTMsNiArNTE1LDggQEAgV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwCiAvL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQ
cm94eS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVD
YWNoZS5jcHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNz
LmNwcAorV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcAorV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAKIAogV2ViUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvTmV0d29y
ay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNl
c0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCA2MGIzOWYz
N2M1Nzg1NTYyMWYyOWY2NmI5NjE3ZDlhN2IzZGE3MDNkLi41YTgyMjk4NzYxOTJkNjFkNDhlZDI1
OGFkY2Y4ZjgzN2U3NGQ2YjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC02MzUsNSArNjM1
LDcgQEAgR1BVUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogR1BVUHJvY2Vzc01lc3Nh
Z2VSZWNlaXZlci5jcHAKIExpYldlYlJUQ0NvZGVjc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAog
TGliV2ViUlRDQ29kZWNzTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlTWVkaWFSZWNvcmRlck1l
c3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZU1lZGlhUmVjb3JkZXJzTWVzc2FnZVJlY2VpdmVyLmNw
cAogU2VydmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VSZWNlaXZlci5jcHAKIFRleHRDaGVja2lu
Z0NvbnRyb2xsZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDFiNTg4NjhmNTJlY2Y3MTMzMmI5
NGY4ZDRiMTI0ZWFiOGY5YWU3NTMuLmUyZTcxMzRmYWI0YjA3ODY0YWNkYmFkOWZlMDgxODM2NjI5
YTcyZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMzMyOSw2ICszMzI5LDE3IEBACiAJCTQxNzIxOThDMjNCNjEyRTgwMEFFNTY4NiAv
KiBSVENEZWNvZGVySWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSVENEZWNvZGVySWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTcyMTk4RDIzQjYyQzdDMDBBRTU2ODYgLyogTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2VzLmluICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IExpYldlYlJUQ0NvZGVjcy5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDE3NjkwMTMyMkZERDQxQjAwQjE1NzZEIC8qIE5ldHdvcmtSVENQcm92aWRlci5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdvcmtSVENQcm92aWRl
ci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OTIyM0MzNEQ2RTAwM0U4
M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVJlY29y
ZGVyUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OTMyM0Mz
NEQ2RjAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBNZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0MTc2RTg5NDIzQzM0RTI2MDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFSZWNvcmRlclByaXZh
dGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc2RTg5NTIzQzM0RTI3MDAz
RTgzRkUgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTWVkaWFSZWNvcmRlclByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDE3NkU4OTcyM0MzNjFCRDAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJJZGVudGlmaWVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJJZGVudGlm
aWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODk4MjNDMzY2NzcwMDNF
ODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZU1lZGlhUmVjb3JkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDE3NkU4OTkyM0MzNkQ4RTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXJzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVjb3JkZXJzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODlBMjNDMzZGNzEwMDNFODNGRSAvKiBS
ZW1vdGVNZWRpYVJlY29yZGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdGVNZWRpYVJlY29yZGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQxNzZFODlCMjNDMzcyMjIwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVycy5tZXNz
YWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVNZWRpYVJlY29yZGVycy5tZXNz
YWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OUMyM0MzNzQ3OTAw
M0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gUmVtb3RlTWVkaWFSZWNvcmRlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OUQyM0MzNzZENTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVj
b3JkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVk
aWFSZWNvcmRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzkxNUFDMjI1
NkJCNzQwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlNvY2tldENoYW5uZWwuY3BwOyBwYXRoID0gTmV0d29yay9X
ZWJTb2NrZXRDaGFubmVsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3OTE1
QUQyMjU2QkI3NDAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gV2ViU29ja2V0Q2hhbm5lbC5oOyBwYXRoID0gTmV0d29yay9XZWJT
b2NrZXRDaGFubmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzkxNUIwMjI1
NkMwRDYwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsTWFuYWdlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJTb2NrZXRDaGFubmVsTWFuYWdlci5oOyBwYXRoID0gTmV0
d29yay9XZWJTb2NrZXRDaGFubmVsTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNzEzMCw2ICs3MTQxLDExIEBACiAJCQkJNDE3MjE5OEEyM0I2MTI4MjAwQUU1Njg2IC8q
IExpYldlYlJUQ0NvZGVjcy5jcHAgKi8sCiAJCQkJNDE3MjE5ODkyM0I2MTI4MjAwQUU1Njg2IC8q
IExpYldlYlJUQ0NvZGVjcy5oICovLAogCQkJCTQxNzIxOThEMjNCNjJDN0MwMEFFNTY4NiAvKiBM
aWJXZWJSVENDb2RlY3MubWVzc2FnZXMuaW4gKi8sCisJCQkJNDE3NkU4OTcyM0MzNjFCRDAwM0U4
M0ZFIC8qIE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLmggKi8sCisJCQkJNDE3NkU4OTQyM0MzNEUy
NjAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCAqLywKKwkJCQk0MTc2RTg5NTIz
QzM0RTI3MDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCAqLywKKwkJCQk0MTc2RTg5
MzIzQzM0RDZGMDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcCAqLywKKwkJCQk0
MTc2RTg5MjIzQzM0RDZFMDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVyLmggKi8sCiAJ
CQkJNDE3MjE5OEMyM0I2MTJFODAwQUU1Njg2IC8qIFJUQ0RlY29kZXJJZGVudGlmaWVyLmggKi8s
CiAJCQkpOwogCQkJcGF0aCA9IHdlYnJ0YzsKQEAgLTcxNDEsNiArNzE1NywxMiBAQAogCQkJCTQx
RTBBN0M2MjNCNjM5NzgwMDU2MTA2MCAvKiBMaWJXZWJSVENDb2RlY3NQcm94eS5oICovLAogCQkJ
CTQxRTBBN0M3MjNCNjM5NzkwMDU2MTA2MCAvKiBMaWJXZWJSVENDb2RlY3NQcm94eS5tZXNzYWdl
cy5pbiAqLywKIAkJCQk0MUUwQTdDODIzQjYzOTc5MDA1NjEwNjAgLyogTGliV2ViUlRDQ29kZWNz
UHJveHkubW0gKi8sCisJCQkJNDE3NkU4OUQyM0MzNzZENTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlh
UmVjb3JkZXIuY3BwICovLAorCQkJCTQxNzZFODk4MjNDMzY2NzcwMDNFODNGRSAvKiBSZW1vdGVN
ZWRpYVJlY29yZGVyLmggKi8sCisJCQkJNDE3NkU4OUMyM0MzNzQ3OTAwM0U4M0ZFIC8qIFJlbW90
ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJNDE3NkU4OUEyM0MzNkY3MTAwM0U4
M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXJzLmNwcCAqLywKKwkJCQk0MTc2RTg5OTIzQzM2RDhF
MDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlcnMuaCAqLywKKwkJCQk0MTc2RTg5QjIzQzM3
MjIyMDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlcnMubWVzc2FnZXMuaW4gKi8sCiAJCQkp
OwogCQkJcGF0aCA9IHdlYnJ0YzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUmVjb3JkZXJQcm92
aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUmVjb3Jk
ZXJQcm92aWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGUyZDY2YmZiY2I0OWQ5Mzg5Mzg2NThjMDAwZWEz
MWQ5MmViZjcyNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92
aWRlci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclBy
aXZhdGVBVkZJbXBsLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGQ6OnVu
aXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IE1lZGlhUmVjb3JkZXJQcm92aWRlcjo6Y3Jl
YXRlTWVkaWFSZWNvcmRlclByaXZhdGUoTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCit7Cisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgcmV0dXJuIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1w
bDo6Y3JlYXRlKHN0cmVhbSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShzdHJlYW0pOworICAg
IHJldHVybiBudWxscHRyOworI2VuZGlmCit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUmVjb3JkZXJQcm92aWRlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjcxMGU4ZDQ4MWY4NmEzNWQwZDllZTlmYjgzZWFlZTY2ZGM3OWRmY2UKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUmVjb3Jk
ZXJQcm92aWRlci5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZTsKK2Ns
YXNzIE1lZGlhU3RyZWFtUHJpdmF0ZTsKKworY2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFSZWNv
cmRlclByb3ZpZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4gY3JlYXRlKCkgeyByZXR1
cm4gbWFrZVVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCk7IH0KKyAgICB2aXJ0dWFs
IH5NZWRpYVJlY29yZGVyUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHN0ZDo6
dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlTWVkaWFSZWNvcmRlclByaXZh
dGUoTWVkaWFTdHJlYW1Qcml2YXRlJik7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVySWRlbnRpZmllci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlcklkZW50aWZpZXIu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zMmYwNGUzMzNmZTg0NjMyM2NjY2U3OTM4NWNhNzUyYjU2NDE5M2VkCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVk
aWFSZWNvcmRlcklkZW50aWZpZXIuaApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworZW51bSBNZWRpYVJlY29yZGVySWRlbnRpZmllclR5cGUgeyB9OwordXNp
bmcgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPE1lZGlhUmVjb3Jk
ZXJJZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclBy
aXZhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4YmFmYmMyNTliODE1ZDFmNmE5YTgwYzlkMDA2ZWY3Mzgz
MDAwZjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKQEAgLTAsMCArMSwxMzggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGUu
aCIKKworI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUg
IlJlbW90ZU1lZGlhUmVjb3JkZXJzTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NBUmlu
Z0J1ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTdHJlYW1Qcml2YXRlLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK01lZGlhUmVjb3JkZXJQcml2YXRlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZShjb25z
dCBNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKKyAgICA6IG1faWRlbnRpZmllcihNZWRpYVJl
Y29yZGVySWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKKyAgICAsIG1fY29ubmVjdGlvbihXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24o
KSkKK3sKKyAgICAvLyBGSVhNRTogd2Ugd2lsbCBuZWVkIHRvIGltcGxlbWVudCBzdXBwb3J0IGZv
ciBtdWx0aXBsZSBhdWRpby92aWRlbyB0cmFja3MKKyAgICAvLyBDdXJyZW50bHkgd2Ugb25seSBj
aG9vc2UgdGhlIGZpcnN0IHRyYWNrIGFzIHRoZSByZWNvcmRlZCB0cmFjay4KKyAgICAvLyBGSVhN
RTogV2Ugd291bGQgYmV0dGVyIHRvIHRocm93IGFuIGV4Y2VwdGlvbiB0byBKYXZhU2NyaXB0IGlm
IHdyaXRlciBjcmVhdGlvbiBmYWlscy4KKworICAgIGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlKiBhdWRpb1RyYWNrIHsgbnVsbHB0ciB9OworICAgIGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlKiB2aWRlb1RyYWNrIHsgbnVsbHB0ciB9OworICAgIGZvciAoYXV0byYgdHJhY2sgOiBz
dHJlYW0udHJhY2tzKCkpIHsKKyAgICAgICAgaWYgKCF0cmFjay0+ZW5hYmxlZCgpIHx8IHRyYWNr
LT5lbmRlZCgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIHN3aXRjaCAodHJhY2st
PnR5cGUoKSkgeworICAgICAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVv
OiB7CisgICAgICAgICAgICBhdXRvJiBzZXR0aW5ncyA9IHRyYWNrLT5zZXR0aW5ncygpOworICAg
ICAgICAgICAgaWYgKCF2aWRlb1RyYWNrICYmIHNldHRpbmdzLnN1cHBvcnRzV2lkdGgoKSAmJiBz
ZXR0aW5ncy5zdXBwb3J0c0hlaWdodCgpKSB7CisgICAgICAgICAgICAgICAgdmlkZW9UcmFjayA9
IHRyYWNrLmdldCgpOworICAgICAgICAgICAgICAgIG1fcmVjb3JkZWRWaWRlb1RyYWNrSUQgPSB2
aWRlb1RyYWNrLT5pZCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICAgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzoKKyAg
ICAgICAgICAgIGlmICghYXVkaW9UcmFjaykgeworICAgICAgICAgICAgICAgIG1fcmluZ0J1ZmZl
ciA9IG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZm
ZXJTdG9yYWdlPih0aGlzKSk7CisgICAgICAgICAgICAgICAgYXVkaW9UcmFjayA9IHRyYWNrLmdl
dCgpOworICAgICAgICAgICAgICAgIG1fcmVjb3JkZWRBdWRpb1RyYWNrSUQgPSBhdWRpb1RyYWNr
LT5pZCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZToKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgfQorICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVk
aWFSZWNvcmRlcnM6OkNyZWF0ZVJlY29yZGVyIHsgbV9pZGVudGlmaWVyLCAhIWF1ZGlvVHJhY2ss
IHZpZGVvVHJhY2sgPyB2aWRlb1RyYWNrLT5zZXR0aW5ncygpLndpZHRoKCkgOiAwLCB2aWRlb1Ry
YWNrID8gdmlkZW9UcmFjay0+c2V0dGluZ3MoKS5oZWlnaHQoKSA6IDAgfSwgMCk7Cit9CisKK01l
ZGlhUmVjb3JkZXJQcml2YXRlOjp+TWVkaWFSZWNvcmRlclByaXZhdGUoKQoreworICAgIG1fY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcnM6OlJlbGVhc2VSZWNv
cmRlciB7IG1faWRlbnRpZmllciB9LCAwKTsKK30KKwordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0
ZTo6c2FtcGxlQnVmZmVyVXBkYXRlZChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYg
dHJhY2ssIFdlYkNvcmU6Ok1lZGlhU2FtcGxlJiBzYW1wbGUpCit7CisgICAgaWYgKHRyYWNrLmlk
KCkgIT0gbV9yZWNvcmRlZFZpZGVvVHJhY2tJRCkKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChh
dXRvIHJlbW90ZVNhbXBsZSA9IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUoc2FtcGxlKSkKKyAg
ICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyOjpW
aWRlb1NhbXBsZUF2YWlsYWJsZSB7IFdURk1vdmUoKnJlbW90ZVNhbXBsZSkgfSwgbV9pZGVudGlm
aWVyKTsKK30KKwordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6YXVkaW9TYW1wbGVzQXZhaWxh
YmxlKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaywgY29uc3QgTWVkaWFU
aW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBBdWRp
b1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IG51bWJlck9mRnJhbWVzKQor
eworICAgIGlmICh0cmFjay5pZCgpICE9IG1fcmVjb3JkZWRBdWRpb1RyYWNrSUQpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmIChtX2Rlc2NyaXB0aW9uICE9IGRlc2NyaXB0aW9uKSB7CisgICAg
ICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0
Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKKyAgICAgICAgbV9kZXNj
cmlwdGlvbiA9ICpXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihk
ZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOworCisgICAgICAg
IC8vIEFsbG9jYXRlIGEgcmluZyBidWZmZXIgbGFyZ2UgZW5vdWdoIHRvIGNvbnRhaW4gMiBzZWNv
bmRzIG9mIGF1ZGlvLgorICAgICAgICBtX251bWJlck9mRnJhbWVzID0gbV9kZXNjcmlwdGlvbi5z
YW1wbGVSYXRlKCkgKiAyOworICAgICAgICBtX3JpbmdCdWZmZXItPmFsbG9jYXRlKG1fZGVzY3Jp
cHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgbV9udW1iZXJPZkZyYW1lcyk7CisgICAgfQorCisg
ICAgQVNTRVJUKGlzPFdlYkF1ZGlvQnVmZmVyTGlzdD4oYXVkaW9EYXRhKSk7CisgICAgbV9yaW5n
QnVmZmVyLT5zdG9yZShkb3duY2FzdDxXZWJBdWRpb0J1ZmZlckxpc3Q+KGF1ZGlvRGF0YSkubGlz
dCgpLCBudW1iZXJPZkZyYW1lcywgdGltZS50aW1lVmFsdWUoKSk7CisgICAgdWludDY0X3Qgc3Rh
cnRGcmFtZTsKKyAgICB1aW50NjRfdCBlbmRGcmFtZTsKKyAgICBtX3JpbmdCdWZmZXItPmdldEN1
cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7CisgICAgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyOjpBdWRpb1NhbXBsZXNBdmFpbGFi
bGUgeyB0aW1lLCBudW1iZXJPZkZyYW1lcywgc3RhcnRGcmFtZSwgZW5kRnJhbWUgfSwgbV9pZGVu
dGlmaWVyKTsKK30KKwordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c3RvcmFnZUNoYW5nZWQo
U2hhcmVkTWVtb3J5KiBzdG9yYWdlKQoreworICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRs
ZTsKKyAgICBpZiAoc3RvcmFnZSkKKyAgICAgICAgc3RvcmFnZS0+Y3JlYXRlSGFuZGxlKGhhbmRs
ZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CisgICAgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyOjpBdWRpb1NhbXBsZXNTdG9yYWdl
Q2hhbmdlZCB7IGhhbmRsZSwgbV9kZXNjcmlwdGlvbiwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1f
bnVtYmVyT2ZGcmFtZXMpIH0sIG1faWRlbnRpZmllcik7Cit9CisKK3ZvaWQgTWVkaWFSZWNvcmRl
clByaXZhdGU6OmZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3Jl
OjpTaGFyZWRCdWZmZXI+JiYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpSZW1vdGVNZWRpYVJlY29yZGVyOjpGZXRjaERhdGEgeyB9LCBbY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byYmIGRhdGEsIGF1dG8mJiBtaW1lVHlw
ZSkgbXV0YWJsZSB7CisgICAgICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlcjsKKyAgICAg
ICAgaWYgKCFkYXRhLnNpemUoKSkKKyAgICAgICAgICAgIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6
Y3JlYXRlKGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKFdURk1vdmUoYnVmZmVyKSwgbWltZVR5cGUpOworICAgIH0sIG1faWRlbnRpZmllcik7Cit9
CisKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OnN0b3BSZWNvcmRpbmcoKQoreworICAgIG1f
Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6U3RvcFJlY29y
ZGluZyB7IH0sIG1faWRlbnRpZmllcik7Cit9CisKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKENP
Q09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hZjg5ZWIzOTcwZGJmMjFlNjMyYjFmZThmZmVkMjBmNTkyMzI1ZTZkCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclBy
aXZhdGUuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiTWVk
aWFSZWNvcmRlcklkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFn
ZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFSZWNvcmRlclByaXZhdGUuaD4KKworbmFtZXNw
YWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
Y2xhc3MgTWVkaWFSZWNvcmRlclByaXZhdGUgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6TWVkaWFS
ZWNvcmRlclByaXZhdGUsIHB1YmxpYyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50IHsK
KyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBNZWRp
YVJlY29yZGVyUHJpdmF0ZShjb25zdCBXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGUmKTsKKyAg
ICB+TWVkaWFSZWNvcmRlclByaXZhdGUoKTsKKworcHJpdmF0ZToKKyAgICAvLyBXZWJDb3JlOjpN
ZWRpYVJlY29yZGVyUHJpdmF0ZQorICAgIHZvaWQgc2FtcGxlQnVmZmVyVXBkYXRlZChXZWJDb3Jl
OjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIFdlYkNvcmU6Ok1lZGlhU2FtcGxlJikgZmluYWw7
CisgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUmLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFdlYkNvcmU6OlBsYXRmb3Jt
QXVkaW9EYXRhJiwgY29uc3QgV2ViQ29yZTo6QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVf
dCkgZmluYWw7CisgICAgdm9pZCBmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQ
dHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKT4mJikg
ZmluYWw7CisgICAgdm9pZCBzdG9wUmVjb3JkaW5nKCkgZmluYWw7CisKKyAgICAvLyBTaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50CisgICAgdm9pZCBzdG9yYWdlQ2hhbmdlZChTaGFyZWRN
ZW1vcnkqKTsKKworICAgIE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKwor
ICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBTdHJpbmcgbV9yZWNv
cmRlZEF1ZGlvVHJhY2tJRDsKKyAgICBTdHJpbmcgbV9yZWNvcmRlZFZpZGVvVHJhY2tJRDsKKwor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsK
KyAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbiB7IH07
CisgICAgaW50NjRfdCBtX251bWJlck9mRnJhbWVzIHsgMCB9OworfTsKKworfQorCisjZW5kaWYg
Ly8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQ
cm92aWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDQwYzdhNGVhY2VmZDJjN2ViMTZhZGZjY2U2OWI4MTY4
YzRlN2RiZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlk
ZXIuaCIKKworI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlLmgiCisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlPiBNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0
ZU1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQor
eworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBpZiAoIW1fdXNlR1BVUHJvY2VzcykKKyAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcjo6Y3JlYXRlTWVkaWFS
ZWNvcmRlclByaXZhdGUoc3RyZWFtKTsKKworICAgIHJldHVybiBtYWtlVW5pcXVlPE1lZGlhUmVj
b3JkZXJQcml2YXRlPihzdHJlYW0pOworI2Vsc2UKKyAgICByZXR1cm4gV2ViQ29yZTo6TWVkaWFS
ZWNvcmRlclByb3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShzdHJlYW0pOworI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yY2YyNzAxZTBlNTY3NTdiYzVhMGViNzk3MGNjYTU2MzYwNDQwYjdmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFS
ZWNvcmRlclByb3ZpZGVyLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIE1lZGlhUmVjb3JkZXJQcm92aWRlciBmaW5hbCA6IHB1
YmxpYyBXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXIgeworcHVibGljOgorICAgIE1lZGlh
UmVjb3JkZXJQcm92aWRlcigpID0gZGVmYXVsdDsKKworcHJpdmF0ZToKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3JkZXJQ
cml2YXRlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZSYpIGZpbmFsOworfTsKKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBl
ZDQyYmQxOTk4ZTRhZGVjOGQyMWY0NWU2MWNhMGU3ZGI5ODFlZjkxLi4zY2E4YmU4ZWY3N2Y5Mjc4
OTc3ZDdjMzI1NDljNjUxZDQxZWFjY2RjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIkxpYldlYlJU
Q1Byb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTG9hZFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJMb2dn
aW5nLmgiCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTmV0
c2NhcGVQbHVnaW4uaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgiCkBAIC00NjAs
NyArNDYxLDggQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgICAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5jYWNoZVN0b3JhZ2VQcm92aWRlcigpLAogICAgICAgICBXZWJCYWNrRm9yd2Fy
ZExpc3RQcm94eTo6Y3JlYXRlKCp0aGlzKSwKICAgICAgICAgV2ViQ29va2llSmFyOjpjcmVhdGUo
KSwKLSAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCp0aGlz
KQorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oKnRoaXMp
LAorICAgICAgICBtYWtlVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgICk7
CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVu
dCgqdGhpcyk7CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggNGM0MTg2NGQ4OWY0MDU2N2VkODFlZDJlZmVm
YjUwMWY2NzUzZGI4NC4uMTliMjIxY2IyMjc4M2M1YjY0YzM1M2QwMjg1YTQ0OGY0NTNkMGI2NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTgwLDYg
KzE4MCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbXBvcnQg
PFdlYkNvcmUvTG9nSW5pdGlhbGl6YXRpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVS
ZWdpc3RyeS5oPgorI2ltcG9ydCA8V2ViQ29yZS9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaD4KICNp
bXBvcnQgPFdlYkNvcmUvTWVtb3J5Q2FjaGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvTWVtb3J5UmVs
ZWFzZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KQEAgLTE0
NDgsNyArMTQ0OSw4IEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlk
ZXJJZk5lY2Vzc2FyeSgpCiAgICAgICAgIFdlYkNvcmU6OkNhY2hlU3RvcmFnZVByb3ZpZGVyOjpj
cmVhdGUoKSwKICAgICAgICAgQmFja0ZvcndhcmRMaXN0OjpjcmVhdGUoc2VsZiksCiAgICAgICAg
IFdlYkNvcmU6OkNvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpLAot
ICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oc2VsZikKKyAg
ICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KHNlbGYpLAorICAg
ICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAg
ICk7CiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hy
b21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudChzZWxmKTsKQEAgLTE3MTcsNyArMTcxOSw4
IEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2Fy
eSgpCiAgICAgICAgIFdlYkNvcmU6OkNhY2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUoKSwKICAg
ICAgICAgQmFja0ZvcndhcmRMaXN0OjpjcmVhdGUoc2VsZiksCiAgICAgICAgIFdlYkNvcmU6OkNv
b2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpLAotICAgICAgICBtYWtl
VW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oc2VsZikKKyAgICAgICAgbWFrZVVu
aXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KHNlbGYpLAorICAgICAgICBtYWtlVW5p
cXVlUmVmPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgICk7CiAgICAgcGFn
ZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudElPUyhzZWxm
KTsKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386853</attachid>
            <date>2020-01-06 09:16:17 -0800</date>
            <delta_ts>2020-01-06 23:16:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205802-20200106181616.patch</filename>
            <type>text/plain</type>
            <size>91514</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTY1NWRkZmQ4ZWEzZmM5
YWIyYjQ0ODhjZjJhNjQ2ODU3YWFmZGQ5MC4uZWJhMzNhMjcyNjc3NWQ1YTI0YjFhYjZjZjJhMmYw
N2VlNDBhZGFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIwLTAxLTA2ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgTWVkaWFS
ZWNvcmRlciBiYWNrZW5kIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTgwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMgYXMgTWVkaWFS
ZWNvcmRlciBpbXBsZW1lbnRhdGlvbiBpbiBXZWJLaXRUZXN0UnVubmVyIHdpbGwgdXNlIEdQVVBy
b2Nlc3MuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUpOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmg6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29y
ZGVyUHJpdmF0ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3Jk
ZXJQcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGlu
LmNwcDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAg
ICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAg
ICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Om1lZGlhUmVjb3Jk
ZXJQcm92aWRlcik6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOgorICAg
ICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
cjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVBy
aXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZS5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnRlcm5hbHM6OnNldFVzZUdQVVByb2Nlc3NGb3JXZWJSVEMpOgorCiAyMDIwLTAxLTA2
ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBYTUxIVFRQUmVx
dWVzdCBQT1NUcyBibG9iIGRhdGEgdG8gYSBjdXN0b20gV0tVUkxTY2hlbWVIYW5kbGVyIHByb3Rv
Y29sIGNyYXNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ0N2VkMzAyODY1OWY3OWJkZWE3N2I2ZWY4NGFmZThhZTc0
YWE2Y2IuLjk0MGEzZjIyZGJjMmFiODYxMjg1YWVkMmUzNTA3YTYyYTAxMzIwMzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNjMgQEAKKzIwMjAtMDEtMDYgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBNZWRpYVJlY29yZGVyIGJhY2tlbmQgaW4gR1BV
UHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA1ODAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6dXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
Om1lZGlhUmVjb3JkZXJzKToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWFjL2NvbS5hcHBsZS5X
ZWJLaXQuR1BVUHJvY2Vzcy5zYi5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVNZWRpYVJlY29yZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UmVjb3JkZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXI6
OlJlbW90ZU1lZGlhUmVjb3JkZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29y
ZGVyOjp+UmVtb3RlTWVkaWFSZWNvcmRlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UmVjb3JkZXI6OnN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVy
OjphdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUmVjb3JkZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUmVjb3JkZXI6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6ZmV0Y2hEYXRhKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFSZWNvcmRlcjo6c3RvcFJlY29yZGluZyk6CisgICAgICAgICogR1BVUHJvY2Vzcy93
ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAg
KiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyczo6UmVtb3RlTWVkaWFSZWNvcmRlcnMp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyczo6flJlbW90ZU1lZGlhUmVj
b3JkZXJzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcnM6OmRpZFJlY2Vp
dmVSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUmVjb3JkZXJzOjpjcmVhdGVSZWNvcmRlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUmVjb3JkZXJzOjpyZWxlYXNlUmVjb3JkZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJzLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVJlY29yZGVyczo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vzcyk6CisgICAg
ICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMubWVzc2FnZXMuaW46
IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAq
IFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaDogQWRk
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJJZGVudGlm
aWVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29y
ZGVyUHJpdmF0ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJp
dmF0ZTo6TWVkaWFSZWNvcmRlclByaXZhdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29y
ZGVyUHJpdmF0ZTo6fk1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVk
aWFSZWNvcmRlclByaXZhdGU6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQpOgorICAgICAgICAoV2ViS2l0
OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6OnN0b3JhZ2VDaGFuZ2VkKToKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6OmZldGNoRGF0YSk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdG9wUmVjb3JkaW5nKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaDogQWRkZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVj
b3JkZXJQcml2YXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNv
cmRlclByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9vdmVycmlkZGVuTWVkaWFUeXBlKToKKwogMjAy
MC0wMS0wNSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTWVkaWEgaW4gR1BVIHByb2Nlc3NdIEFkZCByZW1vdGUgTUlNRSB0eXBlIGNhY2hlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNDRhZjI4NmU0M2MwOTFhYjg0OGMxNDA4MzY2Y2U2
OWZjZmZmNTZjZS4uNWU0MmY1N2ZmNTRmNjkwOTBiNWRjZWVlNGY1NzBmMGY5ZDU2OGNmMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAxLTA2ICB5
b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgTWVk
aWFSZWNvcmRlciBiYWNrZW5kIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTgwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAo
LVtXZWJWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6Z3JvdXBOYW1lOl0p
OgorICAgICAgICAoLVtXZWJWaWV3IGluaXRTaW1wbGVIVE1MRG9jdW1lbnRXaXRoU3R5bGU6ZnJh
bWU6cHJlZmVyZW5jZXM6Z3JvdXBOYW1lOl0pOgorCiAyMDIwLTAxLTA1ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBhIHNvdWNlIG9mIFdlYktp
dDEgdGVzdCBmbGFraW5lc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcAppbmRleCA5OTFlYTJhMGYzZDIyNDRkZjFlOGVl
MjdmNzkwODZkM2VjNDNkNmYwLi5hZGYzNTA0ODg3YTIzNzE3N2E0ZDlkNmZhYTljN2YzYTMxMzJk
MjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXIuY3BwCkBAIC0zNCw2ICszNCw4IEBACiAjaW5jbHVkZSAiRXZlbnROYW1l
cy5oIgogI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmgiCiAjaW5jbHVkZSAiTWVk
aWFSZWNvcmRlclByaXZhdGUuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCIK
KyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAi
V2luZG93RXZlbnRMb29wLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KQEAg
LTUwLDcgKzUyLDcgQEAgY3JlYXRvckZ1bmN0aW9uIE1lZGlhUmVjb3JkZXI6Om1fY3VzdG9tQ3Jl
YXRvciA9IG51bGxwdHI7CiAKIEV4Y2VwdGlvbk9yPFJlZjxNZWRpYVJlY29yZGVyPj4gTWVkaWFS
ZWNvcmRlcjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgUmVmPE1lZGlhU3RyZWFtPiYmIHN0
cmVhbSwgT3B0aW9ucyYmIG9wdGlvbnMpCiB7Ci0gICAgYXV0byBwcml2YXRlSW5zdGFuY2UgPSBN
ZWRpYVJlY29yZGVyOjpnZXRQcml2YXRlSW1wbChzdHJlYW0tPnByaXZhdGVTdHJlYW0oKSk7Cisg
ICAgYXV0byBwcml2YXRlSW5zdGFuY2UgPSBNZWRpYVJlY29yZGVyOjpjcmVhdGVNZWRpYVJlY29y
ZGVyUHJpdmF0ZShkb2N1bWVudCwgc3RyZWFtLT5wcml2YXRlU3RyZWFtKCkpOwogICAgIGlmICgh
cHJpdmF0ZUluc3RhbmNlKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVk
RXJyb3IsICJUaGUgTWVkaWFSZWNvcmRlciBpcyB1bnN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3Jt
Il9zIH07CiAgICAgYXV0byByZWNvcmRlciA9IGFkb3B0UmVmKCpuZXcgTWVkaWFSZWNvcmRlcihk
b2N1bWVudCwgV1RGTW92ZShzdHJlYW0pLCBXVEZNb3ZlKHByaXZhdGVJbnN0YW5jZSksIFdURk1v
dmUob3B0aW9ucykpKTsKQEAgLTYzLDE3ICs2NSwxNiBAQCB2b2lkIE1lZGlhUmVjb3JkZXI6OnNl
dEN1c3RvbVByaXZhdGVSZWNvcmRlckNyZWF0b3IoY3JlYXRvckZ1bmN0aW9uIGNyZWF0b3IpCiAg
ICAgbV9jdXN0b21DcmVhdG9yID0gY3JlYXRvcjsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPE1lZGlh
UmVjb3JkZXJQcml2YXRlPiBNZWRpYVJlY29yZGVyOjpnZXRQcml2YXRlSW1wbChjb25zdCBNZWRp
YVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJp
dmF0ZT4gTWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoRG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBpZiAo
bV9jdXN0b21DcmVhdG9yKQogICAgICAgICByZXR1cm4gbV9jdXN0b21DcmVhdG9yKCk7CiAgICAg
Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgcmV0dXJuIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZG
SW1wbDo6Y3JlYXRlKHN0cmVhbSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzdHJlYW0pOwot
ICAgIHJldHVybiBudWxscHRyOwotI2VuZGlmCisgICAgYXV0byogcGFnZSA9IGRvY3VtZW50LnBh
Z2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0
dXJuIHBhZ2UtPm1lZGlhUmVjb3JkZXJQcm92aWRlcigpLmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2
YXRlKHN0cmVhbSk7CiB9CiAKIE1lZGlhUmVjb3JkZXI6Ok1lZGlhUmVjb3JkZXIoRG9jdW1lbnQm
IGRvY3VtZW50LCBSZWY8TWVkaWFTdHJlYW0+JiYgc3RyZWFtLCBzdGQ6OnVuaXF1ZV9wdHI8TWVk
aWFSZWNvcmRlclByaXZhdGU+JiYgcHJpdmF0ZUltcGwsIE9wdGlvbnMmJiBvcHRpb24pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRl
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIu
aAppbmRleCBlYjZmOTZhNmFlMGEzOWJhMTBiNTIwYmI5OGNjNGVlMWI1MzkzNzQ0Li4wNjM5NTJh
OTY3ZGFjMjJhMjc0ZjU0N2FlNGNiY2FlMmNlNmRhZDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKQEAgLTc1LDcgKzc1
LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBNZWRpYVJlY29yZGVyKERvY3VtZW50JiwgUmVm
PE1lZGlhU3RyZWFtPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+JiYs
IE9wdGlvbnMmJiA9IHsgfSk7CiAKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVj
b3JkZXJQcml2YXRlPiBnZXRQcml2YXRlSW1wbChjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmKTsK
KyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBjcmVhdGVN
ZWRpYVJlY29yZGVyUHJpdmF0ZShEb2N1bWVudCYsIGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYp
OwogICAgIAogICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
UHJvdmlkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ZWM1ZWE5YzA1NmYyZDc5N2YzZTFkNDg4ODE0NWVj
YjFkNjBjYjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92
aWRlci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclBy
aXZhdGVBVkZJbXBsLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGQ6OnVu
aXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IE1lZGlhUmVjb3JkZXJQcm92aWRlcjo6Y3Jl
YXRlTWVkaWFSZWNvcmRlclByaXZhdGUoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0p
Cit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgcmV0dXJuIE1lZGlhUmVjb3JkZXJQcml2YXRl
QVZGSW1wbDo6Y3JlYXRlKHN0cmVhbSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShzdHJlYW0p
OworICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlk
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41ZGU0MTM0Y2MwMGRjMDdmMzFkNGQ2OGM2YzM1MmRlYzliNmI3MmVl
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXJQcm92aWRlci5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVJlY29yZGVy
UHJpdmF0ZTsKK2NsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZTsKKworY2xhc3MgV0VCQ09SRV9FWFBP
UlQgTWVkaWFSZWNvcmRlclByb3ZpZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
K3B1YmxpYzoKKyAgICBNZWRpYVJlY29yZGVyUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CisgICAgdmly
dHVhbCB+TWVkaWFSZWNvcmRlclByb3ZpZGVyKCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCBz
dGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3JkZXJQ
cml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYpOworCisgICAgdm9pZCBzZXRVc2VHUFVQ
cm9jZXNzKGJvb2wgdmFsdWUpIHsgbV91c2VHUFVQcm9jZXNzID0gdmFsdWU7IH0KKworcHJvdGVj
dGVkOgorICAgIGJvb2wgbV91c2VHUFVQcm9jZXNzIHsgZmFsc2UgfTsKK307CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1Bpbi5jcHAKaW5kZXggN2YwYzY1OWQ4
NGQxYmQyN2QyYTU2Yjg0YmVlOTE4ZWY1ODMyNmEzOC4uZTIxMGE4ZGI4ZGEwZjI2OTRjNWE0ZjVl
ZWU1ZTcxMTljZWYwNjg5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9maWRvL1Bpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9m
aWRvL1Bpbi5jcHAKQEAgLTQxLDkgKzQxLDE2IEBACiAjaW5jbHVkZSAiQ3J5cHRvS2V5QUVTLmgi
CiAjaW5jbHVkZSAiQ3J5cHRvS2V5RUMuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlITUFDLmgiCisj
aW5jbHVkZSAiRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuaCIKKyNpbmNsdWRlICJXZWJBdXRoZW50
aWNhdGlvbkNvbnN0YW50cy5oIgogI2luY2x1ZGUgPHBhbC9jcnlwdG8vQ3J5cHRvRGlnZXN0Lmg+
CiAKIG5hbWVzcGFjZSBmaWRvIHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwordXNpbmcgQ0JP
UiA9IGNib3I6OkNCT1JWYWx1ZTsKKworY29uc3RleHByIHNpemVfdCBrUmVzcG9uc2VDb2RlTGVu
Z3RoID0gMTsKKwogbmFtZXNwYWNlIHBpbiB7CiB1c2luZyBuYW1lc3BhY2UgY2JvcjsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAppbmRleCA5Mjk3ZDA0NGU0NDgyNzhkYmU3YzkxNjliYjMyNmM5ZGZiNzA0MjViLi5l
Y2JiNmIwOGRjZDY5YWIxYmRiNTE0ZjQyYjIyNDE5NTFiZTMzYWUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApA
QCAtMTUxLDYgKzE1MSw3IEBAIE1vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9z
dC5jcHAKIAogTW9kdWxlcy9tZWRpYXJlY29yZGVyL0Jsb2JFdmVudC5jcHAKIE1vZHVsZXMvbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcAorTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXJQcm92aWRlci5jcHAKIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
RXJyb3JFdmVudC5jcHAKIAogTW9kdWxlcy9tZWRpYXNlc3Npb24vSFRNTE1lZGlhRWxlbWVudE1l
ZGlhU2Vzc2lvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAwNzllOTQ2OWIxMWZiYmYxNjdhMTcwMjJmNTk5OTc0MGNmNjYx
YjU4Li4xM2QxNjRkMTc4ZTRlNTViNDYyOWM0ZTJhZWNlZDM2OTkzMDYzZDg4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDk5
LDYgKzEwOTksNyBAQAogCQk0MTc2MTJCMDFFM0E5OTQwMDBDM0Q4MUQgLyogTGliV2ViUlRDTWVk
aWFFbmRwb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDE3NjEyQUMxRTNBOTkzQjAwQzNEODFEIC8qIExpYldlYlJUQ01lZGlhRW5kcG9pbnQuaCAq
LzsgfTsKIAkJNDE3NjEyQjExRTNBOTk0MDAwQzNEODFEIC8qIExpYldlYlJUQ1BlZXJDb25uZWN0
aW9uQmFja2VuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MTc2MTJBRDFFM0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rpb25C
YWNrZW5kLmNwcCAqLzsgfTsKIAkJNDE3NjEyQjIxRTNBOTk0MDAwQzNEODFEIC8qIExpYldlYlJU
Q1BlZXJDb25uZWN0aW9uQmFja2VuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDE3NjEyQUUxRTNBOTkzQjAwQzNEODFEIC8qIExpYldlYlJUQ1BlZXJD
b25uZWN0aW9uQmFja2VuZC5oICovOyB9OworCQk0MTc2RTg5NjIzQzM1MzdCMDAzRTgzRkUgLyog
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTc2RTg4RjIzQzM0OEQyMDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclBy
b3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNDE3REE2RDkxMzczNEU2RTAwN0M1N0ZCIC8qIEludGVybmFscy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTdEQTRDRjEzNzM0MzI2MDA3QzU3
RkIgLyogSW50ZXJuYWxzLmNwcCAqLzsgfTsKIAkJNDE3REE2REExMzczNEU2RTAwN0M1N0ZCIC8q
IEludGVybmFscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDE3REE0Q0UxMzczNDMyNjAwN0M1N0ZCIC8qIEludGVybmFscy5oICovOyB9OwogCQk0MTdE
QTcxRDEzNzM1REZBMDA3QzU3RkIgLyogSlNJbnRlcm5hbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3REE3MUIxMzczNURGQTAwN0M1N0ZCIC8q
IEpTSW50ZXJuYWxzLmNwcCAqLzsgfTsKQEAgLTEzNzIsOSArMTM3Myw5IEBACiAJCTRCREVBMzJD
MjE4MDMzRUIwMDUyREZDRCAvKiBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCREVBMzJCMjE4MDMzRUIwMDUy
REZDRCAvKiBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuaCAqLzsgfTsKIAkJNEQzQjAwQUIyMTVE
NjlBNzAwNzZCOTgzIC8qIE1lZGlhUmVjb3JkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREM0IwMEE5MjE1RDY5QTcwMDc2Qjk4MyAvKiBNZWRpYVJl
Y29yZGVyLmggKi87IH07CiAJCTREM0IwMEFGMjE1RDZBNjkwMDc2Qjk4MyAvKiBCbG9iRXZlbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREM0IwMEFE
MjE1RDZBNjkwMDc2Qjk4MyAvKiBCbG9iRXZlbnQuaCAqLzsgfTsKLQkJNEQzQjUwMTYyMTdFNThC
NzAwNjY1REIxIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RDNCNTAxNDIxN0U1OEI3MDA2NjVEQjEgLyogTWVk
aWFSZWNvcmRlclByaXZhdGUuaCAqLzsgfTsKKwkJNEQzQjUwMTYyMTdFNThCNzAwNjY1REIxIC8q
IE1lZGlhUmVjb3JkZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0RDNCNTAxNDIxN0U1OEI3MDA2NjVEQjEgLyogTWVkaWFSZWNvcmRlclBy
aXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk0RDczRjk0NjIxOEJDNUZBMDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RDczRjk0
NDIxOEJDNUZBMDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmggKi87IH07
Ci0JCTRENzNGOTRFMjE4QzRBODcwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
ckNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
RDczRjk0QzIxOEM0QTg3MDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2Nv
YS5oICovOyB9OworCQk0RDczRjk0RTIxOEM0QTg3MDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNEQ3M0Y5NEMyMThDNEE4NzAwM0EzRUQ2IC8qIE1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyQ29jb2EuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk0REI3MTMwRDIxNkVDQjREMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZl
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREQjcx
MzBDMjE2RUMyQkQwMDk2QTRERCAvKiBNZWRpYVJlY29yZGVyRXJyb3JFdmVudC5oICovOyB9Owog
CQk0RTE5NTkyMjBBMzlEQUJBMDAyMjBGRTUgLyogTWVkaWFGZWF0dXJlTmFtZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRFMTk1OTIwMEEzOURBQkEw
MDIyMEZFNSAvKiBNZWRpYUZlYXR1cmVOYW1lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTRFMTk1OTJBMEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRp
YVF1ZXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
RTE5NTkyNDBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC03Mzk4LDYgKzczOTksOCBAQAogCQk0
MTc2MTJBRTFFM0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5k
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExpYldlYlJUQ1BlZXJDb25uZWN0
aW9uQmFja2VuZC5oOyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFj
a2VuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc2OTAwMzIyRkNEOEYyMDBC
MTU3NkQgLyogTWVkaWFTb3VyY2VSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNZWRpYVNvdXJjZVJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxNzY5MDA0MjJGQ0Q4RjIwMEIxNTc2RCAvKiBNZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU291cmNlUmVnaXN0cnku
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc2RTg4RjIzQzM0OEQyMDAzRTgz
RkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lZGlhUmVjb3JkZXJQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0MTc2RTg5MTIzQzM0Qjc1MDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJQcm92aWRlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzdGNTFDMjM4MjU0NDAwMEMwNDQ4NiAvKiBCYXNlQXVk
aW9TaGFyZWRVbml0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJh
c2VBdWRpb1NoYXJlZFVuaXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc3
RjUxRTIzODI1NDVFMDBDMDQ0ODYgLyogQmFzZUF1ZGlvU2hhcmVkVW5pdC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBCYXNlQXVkaW9TaGFyZWRVbml0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxN0RBNENFMTM3MzQzMjYwMDdDNTdGQiAvKiBJbnRlcm5hbHMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW50ZXJuYWxzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODkzMSw2ICsxODkzNCw4IEBACiAJCQkJNERCNzEzMEUy
MTZFRUJBRTAwOTZBNEREIC8qIE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmNwcCAqLywKIAkJCQk0
REI3MTMwQzIxNkVDMkJEMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaCAqLywK
IAkJCQk0REI3MTMwQTIxNkVDMkJDMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQu
aWRsICovLAorCQkJCTQxNzZFODkxMjNDMzRCNzUwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJv
dmlkZXIuY3BwICovLAorCQkJCTQxNzZFODhGMjNDMzQ4RDIwMDNFODNGRSAvKiBNZWRpYVJlY29y
ZGVyUHJvdmlkZXIuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWVkaWFyZWNvcmRlcjsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0zMTQ3Myw2ICszMTQ3OCw3IEBACiAJCQkJNEQzQjUw
MTYyMTdFNThCNzAwNjY1REIxIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0RDczRjk0NjIxOEJDNUZBMDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVB
VkZJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RDczRjk0RTIxOEM0QTg3MDAzQTNFRDYgLyog
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE3
NkU4OTYyM0MzNTM3QjAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92aWRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQzkwODQzRDAxQjE4RTQ3RDAwQjY4NTY0IC8qIE1lZGlhUmVtb3RlQ29udHJv
bHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEOEFDQThGMUQyMzk3MTkwMEVDQzU5RSAvKiBNZWRp
YVJlbW90ZVNvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRUVGQ0Q3QTE5REIzMUY3MDAz
ODc2RDcgLyogTWVkaWFSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDBlYjVhMTIwYWY4NzY1MzBjNWM2Y2Y3ZGFl
MDA5OTIxZmEzNjQyOWEuLmZiNDM5ZTJhYWJlNjNjM2Q4ZTRmMGEyOWVjZWVkODM0MmQxMmZhYTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01Myw2ICs1Myw4IEBA
CiAjaW5jbHVkZSAiSURCQ29ubmVjdGlvblRvU2VydmVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9y
Q2xpZW50LmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJNZWRp
YVJlY29yZGVyUHJpdmF0ZS5oIgorI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92aWRlci5oIgog
I2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJQYWdlQ29uZmlndXJhdGlvbi5oIgpAQCAtNTcxLDEwICs1NzMsMTcgQEAgUmVmPFN0
b3JhZ2VOYW1lc3BhY2U+IEVtcHR5U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOjpjcmVhdGVUcmFu
c2llbnRMb2NhbFN0b3JhZ2UKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbXB0eVN0b3JhZ2VO
YW1lc3BhY2UgeyBzZXNzaW9uSUQgfSk7CiB9CiAKLWNsYXNzIEVtcHR5U3RvcmFnZVNlc3Npb25Q
cm92aWRlciA6IHB1YmxpYyBTdG9yYWdlU2Vzc2lvblByb3ZpZGVyIHsKK2NsYXNzIEVtcHR5U3Rv
cmFnZVNlc3Npb25Qcm92aWRlciBmaW5hbCA6IHB1YmxpYyBTdG9yYWdlU2Vzc2lvblByb3ZpZGVy
IHsKICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24qIHN0b3JhZ2VTZXNzaW9uKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbnVsbHB0cjsgfQogfTsKIAorY2xhc3MgRW1wdHlNZWRpYVJlY29yZGVyUHJv
dmlkZXIgZmluYWwgOiBwdWJsaWMgTWVkaWFSZWNvcmRlclByb3ZpZGVyIHsKK3B1YmxpYzoKKyAg
ICBFbXB0eU1lZGlhUmVjb3JkZXJQcm92aWRlcigpID0gZGVmYXVsdDsKK3ByaXZhdGU6CisgICAg
c3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBjcmVhdGVNZWRpYVJlY29yZGVy
UHJpdmF0ZShjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmKSBmaW5hbCB7IHJldHVybiBudWxscHRy
OyB9Cit9OworCiBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNs
aWVudHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIFBhZ2VDb25maWd1cmF0aW9u
IHBhZ2VDb25maWd1cmF0aW9uIHsKQEAgLTU4NSw3ICs1OTQsOCBAQCBQYWdlQ29uZmlndXJhdGlv
biBwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKQogICAgICAgICBDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlKCksCiAgICAgICAgIGFk
b3B0UmVmKCpuZXcgRW1wdHlCYWNrRm9yd2FyZENsaWVudCksCiAgICAgICAgIENvb2tpZUphcjo6
Y3JlYXRlKGFkb3B0UmVmKCpuZXcgRW1wdHlTdG9yYWdlU2Vzc2lvblByb3ZpZGVyKSksCi0gICAg
ICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCkKKyAgICAgICAg
bWFrZVVuaXF1ZVJlZjxFbXB0eVByb2dyZXNzVHJhY2tlckNsaWVudD4oKSwKKyAgICAgICAgbWFr
ZVVuaXF1ZVJlZjxFbXB0eU1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgIH07CiAKICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlDaHJvbWVDbGllbnQ+IGR1bW15Q2hyb21lQ2xpZW50
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNzViNWZkMDFhNWJkNjYzMGY3ZmVjNmI3ZTdlMjNiZmEx
MDAzZDgwMi4uM2VkOGM0MmFiNmUxMDlmZTdiNTA5NGVlMTkxZWQ5YjQxNzRkNDYwMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCkBAIC0yNDYsNiArMjQ2LDcgQEAgUGFnZTo6UGFnZShQYWdlQ29uZmlndXJh
dGlvbiYmIHBhZ2VDb25maWd1cmF0aW9uKQogI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQog
ICAgICwgbV9zcGVlY2hTeW50aGVzaXNDbGllbnQoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5z
cGVlY2hTeW50aGVzaXNDbGllbnQpKQogI2VuZGlmCisgICAgLCBtX21lZGlhUmVjb3JkZXJQcm92
aWRlcigoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5tZWRpYVJlY29yZGVyUHJvdmlkZXIpKSkK
ICAgICAsIG1fbGliV2ViUlRDUHJvdmlkZXIoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5saWJX
ZWJSVENQcm92aWRlcikpCiAgICAgLCBtX3ZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eShTY3JvbGxF
bGFzdGljaXR5QWxsb3dlZCkKICAgICAsIG1faG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkoU2Ny
b2xsRWxhc3RpY2l0eUFsbG93ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDg5YWFkNGE3MDZjMzNjZjUx
NjIyZmVjZTkxNzAyZjVlMGYyYmViNmMuLmIyNmM1MzZjNWExNzI3NDJlNzVkZTAxOTcwZWQ4MGVl
N2E0N2U5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0xMTAsNiArMTEwLDcgQEAgY2xhc3MgTGliV2Vi
UlRDUHJvdmlkZXI7CiBjbGFzcyBMb3dQb3dlck1vZGVOb3RpZmllcjsKIGNsYXNzIE1lZGlhQ2Fu
U3RhcnRMaXN0ZW5lcjsKIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXQ7CitjbGFzcyBNZWRpYVJl
Y29yZGVyUHJvdmlkZXI7CiBjbGFzcyBQYWdlQ29uZmlndXJhdGlvbjsKIGNsYXNzIFBhZ2VDb25z
b2xlQ2xpZW50OwogY2xhc3MgUGFnZURlYnVnZ2FibGU7CkBAIC01ODQsNiArNTg1LDcgQEAgcHVi
bGljOgogICAgIERhdGFiYXNlUHJvdmlkZXImIGRhdGFiYXNlUHJvdmlkZXIoKSB7IHJldHVybiBt
X2RhdGFiYXNlUHJvdmlkZXI7IH0KICAgICBDYWNoZVN0b3JhZ2VQcm92aWRlciYgY2FjaGVTdG9y
YWdlUHJvdmlkZXIoKSB7IHJldHVybiBtX2NhY2hlU3RvcmFnZVByb3ZpZGVyOyB9CiAgICAgU29j
a2V0UHJvdmlkZXImIHNvY2tldFByb3ZpZGVyKCkgeyByZXR1cm4gbV9zb2NrZXRQcm92aWRlcjsg
fQorICAgIE1lZGlhUmVjb3JkZXJQcm92aWRlciYgbWVkaWFSZWNvcmRlclByb3ZpZGVyKCkgeyBy
ZXR1cm4gbV9tZWRpYVJlY29yZGVyUHJvdmlkZXI7IH0KICAgICBDb29raWVKYXImIGNvb2tpZUph
cigpIHsgcmV0dXJuIG1fY29va2llSmFyLmdldCgpOyB9CiAKICAgICBTdG9yYWdlTmFtZXNwYWNl
UHJvdmlkZXImIHN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcigpIHsgcmV0dXJuIG1fc3RvcmFnZU5h
bWVzcGFjZVByb3ZpZGVyLmdldCgpOyB9CkBAIC03OTUsNiArNzk3LDcgQEAgcHJpdmF0ZToKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoU3ludGhlc2lzQ2xpZW50PiBtX3NwZWVjaFN5bnRoZXNp
c0NsaWVudDsKICNlbmRpZgogCisgICAgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4g
bV9tZWRpYVJlY29yZGVyUHJvdmlkZXI7CiAgICAgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVy
PiBtX2xpYldlYlJUQ1Byb3ZpZGVyOwogICAgIFJUQ0NvbnRyb2xsZXIgbV9ydGNDb250cm9sbGVy
OwogCkBAIC05MjAsNyArOTIzLDYgQEAgcHJpdmF0ZToKICAgICBSZWY8VXNlckNvbnRlbnRQcm92
aWRlcj4gbV91c2VyQ29udGVudFByb3ZpZGVyOwogICAgIFJlZjxWaXNpdGVkTGlua1N0b3JlPiBt
X3Zpc2l0ZWRMaW5rU3RvcmU7CiAgICAgUmVmUHRyPFdoZWVsRXZlbnRUZXN0TW9uaXRvcj4gbV93
aGVlbEV2ZW50VGVzdE1vbml0b3I7Ci0KICAgICBIYXNoU2V0PEFjdGl2aXR5U3RhdGVDaGFuZ2VP
YnNlcnZlcio+IG1fYWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyczsKIAogI2lmIEVOQUJMRShS
RVNPVVJDRV9VU0FHRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZp
Z3VyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAK
aW5kZXggZWY4NzdhNTU4ODIxZTQ0NjdmNDVjYTNjMDUyMWNhZjIyZDkwN2RkZS4uMzM4ZjRlN2Mx
OTEyMWFmMTc5NDJkMDE3MjRjZTI5MTEzYzVkM2YyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJEcmFnQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDUHJv
dmlkZXIuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCIKICNpbmNsdWRlICJQ
ZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJQbHVnSW5DbGllbnQuaCIKICNp
bmNsdWRlICJQbHVnaW5JbmZvUHJvdmlkZXIuaCIKQEAgLTU1LDcgKzU2LDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1QYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNs
aWVudCwgUmVmPFNvY2tldFByb3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGli
V2ViUlRDUHJvdmlkZXI+JiYgbGliV2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92
aWRlcj4mJiBjYWNoZVN0b3JhZ2VQcm92aWRlciwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJh
Y2tGb3J3YXJkQ2xpZW50LCBSZWY8Q29va2llSmFyPiYmIGNvb2tpZUphciwgVW5pcXVlUmVmPFBy
b2dyZXNzVHJhY2tlckNsaWVudD4mJiBwcm9ncmVzc1RyYWNrZXJDbGllbnQpCitQYWdlQ29uZmln
dXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlx
dWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNsaWVudCwgUmVmPFNvY2tldFByb3ZpZGVyPiYm
IHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYgbGliV2ViUlRD
UHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiBjYWNoZVN0b3JhZ2VQcm92aWRl
ciwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJhY2tGb3J3YXJkQ2xpZW50LCBSZWY8Q29va2ll
SmFyPiYmIGNvb2tpZUphciwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiBwcm9n
cmVzc1RyYWNrZXJDbGllbnQsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYgbWVk
aWFSZWNvcmRlclByb3ZpZGVyKQogICAgIDogc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIGVk
aXRvckNsaWVudChXVEZNb3ZlKGVkaXRvckNsaWVudCkpCiAgICAgLCBzb2NrZXRQcm92aWRlcihX
VEZNb3ZlKHNvY2tldFByb3ZpZGVyKSkKQEAgLTY0LDYgKzY1LDcgQEAgUGFnZUNvbmZpZ3VyYXRp
b246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVm
PEVkaXRvckMKICAgICAsIGJhY2tGb3J3YXJkQ2xpZW50KFdURk1vdmUoYmFja0ZvcndhcmRDbGll
bnQpKQogICAgICwgY29va2llSmFyKFdURk1vdmUoY29va2llSmFyKSkKICAgICAsIGNhY2hlU3Rv
cmFnZVByb3ZpZGVyKFdURk1vdmUoY2FjaGVTdG9yYWdlUHJvdmlkZXIpKQorICAgICwgbWVkaWFS
ZWNvcmRlclByb3ZpZGVyKFdURk1vdmUobWVkaWFSZWNvcmRlclByb3ZpZGVyKSkKIHsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IDE5MWEwMmI2MTVmNDBh
OTgwYzQyMWY3ZmJmM2YzMTZkMmIxNjRmZWYuLjNhOGVkMzM0NDBjMmMxODg1MjgzMTg5MThhNzUy
MmI5MjE3ZjQ3NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3Vy
YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKQEAg
LTUyLDYgKzUyLDcgQEAgY2xhc3MgRWRpdG9yQ2xpZW50OwogY2xhc3MgRnJhbWVMb2FkZXJDbGll
bnQ7CiBjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CiBjbGFzcyBMaWJXZWJSVENQcm92aWRlcjsKK2Ns
YXNzIE1lZGlhUmVjb3JkZXJQcm92aWRlcjsKIGNsYXNzIFBheW1lbnRDb29yZGluYXRvckNsaWVu
dDsKIGNsYXNzIFBlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudDsKIGNsYXNzIFBsdWdJbkNsaWVudDsK
QEAgLTY4LDcgKzY5LDcgQEAgY2xhc3MgU3BlZWNoU3ludGhlc2lzQ2xpZW50OwogY2xhc3MgUGFn
ZUNvbmZpZ3VyYXRpb24gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDb25maWd1cmF0
aW9uKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBP
UlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGll
bnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVy
PiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4m
JiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJik7
CisgICAgV0VCQ09SRV9FWFBPUlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQsIFVu
aXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVlUmVm
PExpYldlYlJUQ1Byb3ZpZGVyPiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJlZjxC
YWNrRm9yd2FyZENsaWVudD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNz
VHJhY2tlckNsaWVudD4mJiwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJik7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgflBhZ2VDb25maWd1cmF0aW9uKCk7CiAgICAgUGFnZUNvbmZpZ3Vy
YXRpb24oUGFnZUNvbmZpZ3VyYXRpb24mJik7CiAKQEAgLTEyMyw2ICsxMjQsNyBAQCBwdWJsaWM6
CiAgICAgUmVmUHRyPERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI+IGRldmljZU9yaWVu
dGF0aW9uVXBkYXRlUHJvdmlkZXI7CiAjZW5kaWYKICAgICBWZWN0b3I8U3RyaW5nPiBjb3JzRGlz
YWJsaW5nUGF0dGVybnM7CisgICAgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4gbWVk
aWFSZWNvcmRlclByb3ZpZGVyOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNv
Y29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAppbmRleCBmZmY0NWQ2MzkzOGRiMzM4YjQ3MjRi
N2E3NDZjZTM3MjRmYTFkM2FiLi41MTk3OGJiNmQ4ZDFhMWIwZTVjMWM3YTAxNTEyMjJiZDhiZGZi
MmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2Nv
Y29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
Q29jb2EuaApAQCAtNDksOSArNDksMTAgQEAgY2xhc3MgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsK
IGNsYXNzIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOwogY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7
CiAKLWNsYXNzIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIDogcHVibGljIFRocmVhZFNhZmVS
ZWZDb3VudGVkPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyLCBXVEY6OkRlc3RydWN0aW9uVGhy
ZWFkOjpNYWluPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyPiB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciA6
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciwg
V1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRp
YVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8TWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IGNyZWF0ZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZSogYXVkaW9UcmFjaywgY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIHZpZGVvVHJh
Y2spOworICAgIHN0YXRpYyBSZWZQdHI8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IGNyZWF0
ZShib29sIGhhc0F1ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOwogICAgIH5NZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlcigpOwogICAgIAogICAgIGJvb2wgc2V0dXBXcml0ZXIoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQppbmRl
eCA5MmZlMmE0NTBlNTkzZjI0YTk2OGZhZWYwYTZiOTZmOTVhZGUzNTEzLi4wNjljODg3NGYwMDll
MDk2YzI0OWEwNzgwMTkwZGQ4MDQ4YzZiOWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29j
b2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9N
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCkBAIC05MCw2ICs5MCwxNyBAQCBzdGF0
aWMgTlNTdHJpbmcgKmdldEFWRW5jb2RlckJpdFJhdGVLZXlXaXRoRmFsbGJhY2soKQogfQogCiBS
ZWZQdHI8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IE1lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyOjpjcmVhdGUoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIGF1ZGlvVHJhY2ssIGNv
bnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiB2aWRlb1RyYWNrKQoreworICAgIGludCB3aWR0
aCA9IDAsIGhlaWdodCA9IDA7CisgICAgaWYgKHZpZGVvVHJhY2spIHsKKyAgICAgICAgYXV0byYg
c2V0dGluZ3MgPSB2aWRlb1RyYWNrLT5zZXR0aW5ncygpOworICAgICAgICB3aWR0aCA9IHNldHRp
bmdzLndpZHRoKCk7CisgICAgICAgIGhlaWdodCA9IHNldHRpbmdzLmhlaWdodCgpOworICAgIH0K
KyAgICByZXR1cm4gY3JlYXRlKCEhYXVkaW9UcmFjaywgd2lkdGgsIGhlaWdodCk7Cit9CisKK1Jl
ZlB0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gTWVkaWFSZWNvcmRlclByaXZhdGVXcml0
ZXI6OmNyZWF0ZShib29sIGhhc0F1ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCiB7CiAgICAg
TlNTdHJpbmcgKmRpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9y
eShAInZpZGVvcyIpOwogICAgIE5TU3RyaW5nICpmaWxlbmFtZSA9IFtOU1N0cmluZyBzdHJpbmdX
aXRoRm9ybWF0OkAiLyVsbGQubXA0IiwgQ01DbG9ja0dldFRpbWUoQ01DbG9ja0dldEhvc3RUaW1l
Q2xvY2soKSkudmFsdWVdOwpAQCAtMTA2LDEyICsxMTcsMTEgQEAgUmVmUHRyPE1lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyPiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y3JlYXRlKGNvbnN0
IE1lZGkKIAogICAgIGF1dG8gd3JpdGVyID0gYWRvcHRSZWYoKm5ldyBNZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlcihXVEZNb3ZlKGF2QXNzZXRXcml0ZXIpLCBXVEZNb3ZlKGZpbGVQYXRoKSkpOwog
Ci0gICAgaWYgKGF1ZGlvVHJhY2sgJiYgIXdyaXRlci0+c2V0QXVkaW9JbnB1dCgpKQorICAgIGlm
IChoYXNBdWRpbyAmJiAhd3JpdGVyLT5zZXRBdWRpb0lucHV0KCkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCi0gICAgaWYgKHZpZGVvVHJhY2spIHsKLSAgICAgICAgYXV0byYgc2V0dGluZ3Mg
PSB2aWRlb1RyYWNrLT5zZXR0aW5ncygpOwotICAgICAgICBpZiAoIXdyaXRlci0+c2V0VmlkZW9J
bnB1dChzZXR0aW5ncy53aWR0aCgpLCBzZXR0aW5ncy5oZWlnaHQoKSkpCisgICAgaWYgKHdpZHRo
ICYmIGhlaWdodCkgeworICAgICAgICBpZiAoIXdyaXRlci0+c2V0VmlkZW9JbnB1dCh3aWR0aCwg
aGVpZ2h0KSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZh
dGUuaAppbmRleCA0YTA2ODQ0MzhjZTY2NWQ3Y2QwNGRhMTBlYTExYTViYzJiNmYyOWY1Li5kZTQ0
ZDg4ZWY1YjljMzgxNDA0NGUwNWY3YzI4YmVlMThhNzJlZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaApA
QCAtODEsNyArODEsNyBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgaWQoKSBjb25zdCB7IHJldHVy
biBtX2lkOyB9CiAKLSAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciB0cmFja3MoKSBj
b25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciB0
cmFja3MoKSBjb25zdDsKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogYWN0aXZlVmlkZW9U
cmFjaygpIHsgcmV0dXJuIG1fYWN0aXZlVmlkZW9UcmFjazsgfQogCiAgICAgYm9vbCBhY3RpdmUo
KSBjb25zdCB7IHJldHVybiBtX2lzQWN0aXZlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaApp
bmRleCBhNGVjNDM4YTk4NDRmYzgyNTE2MTllZDMzOThmZmY3YWViYjE5MjI2Li5kMDlmM2ViZjA0
ZDMwZmE1M2ZjYzJlMzAyZWEwODAzOTQ4ZDAxMTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRl
LmgKQEAgLTEwMCw3ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgUmVmPE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlPiBjbG9uZSgpOwogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKCkgeyBy
ZXR1cm4gbV9zb3VyY2UuZ2V0KCk7IH0KLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5
cGUoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
IHR5cGUoKSBjb25zdDsKIAogICAgIHZvaWQgZW5kVHJhY2soKTsKIApAQCAtMTEwLDcgKzExMCw3
IEBAIHB1YmxpYzoKICAgICBib29sIGhhc09ic2VydmVyKE9ic2VydmVyJikgY29uc3Q7CiAjZW5k
aWYKIAotICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBj
b25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MmIHNldHRpbmdzKCkgY29uc3Q7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgY29uc3Q7CiAKICAgICB2b2lkIGFwcGx5Q29uc3RyYWlu
dHMoY29uc3QgTWVkaWFDb25zdHJhaW50cyYsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5Q29u
c3RyYWludHNIYW5kbGVyJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4
IGYxYTE2NGQxNzMwNWVkZjFmZTZlZGJhMWQ4Yzk4NDAzM2M4ZDU0YTAuLjA5YTRlNzA4YjgyMjgw
OTQzNTBiNzFmODNkNGFlZGI4MDM3ZDg5YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKQEAgLTEyMiw2ICsxMjIsNyBAQAogI2luY2x1ZGUgIk1lZGlhRW5naW5lQ29uZmlndXJh
dGlvbkZhY3RvcnkuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk1lZGlh
UHJvZHVjZXIuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCIKICNpbmNsdWRl
ICJNZWRpYVJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFjay5oIgog
I2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCkBAIC01NTAsNiArNTUxLDggQEAgdm9pZCBJbnRlcm5h
bHM6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoUGFnZSYgcGFnZSkKIAogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5z
ZXRJbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxpdHlDaGFuZ2VFbmFibGVkKGZhbHNlKTsKKyAg
ICBXZWJDb3JlOjpNZWRpYVJlY29yZGVyOjpzZXRDdXN0b21Qcml2YXRlUmVjb3JkZXJDcmVhdG9y
KG51bGxwdHIpOworICAgIHBhZ2UubWVkaWFSZWNvcmRlclByb3ZpZGVyKCkuc2V0VXNlR1BVUHJv
Y2Vzcyh0cnVlKTsKICNlbmRpZgogCiAgICAgSFRNTENhbnZhc0VsZW1lbnQ6OnNldE1heFBpeGVs
TWVtb3J5Rm9yVGVzdGluZygwKTsgLy8gVGhpcyBtZWFucyB1c2UgdGhlIGRlZmF1bHQgdmFsdWUu
CkBAIC0xNTU4LDcgKzE1NjEsOSBAQCB2b2lkIEludGVybmFsczo6c2V0VXNlR1BVUHJvY2Vzc0Zv
cldlYlJUQyhib29sIHVzZUdQVVByb2Nlc3MpCiAgICAgYXV0byogZG9jdW1lbnQgPSBjb250ZXh0
RG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKQogICAg
ICAgICByZXR1cm47CisKICAgICBkb2N1bWVudC0+cGFnZSgpLT5saWJXZWJSVENQcm92aWRlcigp
LnNldFVzZUdQVVByb2Nlc3ModXNlR1BVUHJvY2Vzcyk7CisgICAgZG9jdW1lbnQtPnBhZ2UoKS0+
bWVkaWFSZWNvcmRlclByb3ZpZGVyKCkuc2V0VXNlR1BVUHJvY2Vzcyh1c2VHUFVQcm9jZXNzKTsK
ICNlbmRpZgogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QKaW5kZXggNzk5NGUzY2E3Nzc2MzI5ZDZmNzVkN2FhZjBjOTNmZDlhYTA1OWUx
MC4uYjk4ODBiYzBhY2Y2ZjYxYzAyYjNiMzdkMmM0Y2JlZWJhMTAyMDgyNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTksNiArMTksOCBA
QCAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVByb2Nl
c3Muc2IuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIp
L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1lc3NhZ2VzLmluCiskKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2Vz
LmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVy
cy5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJD
b29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9D
dXN0b21Qcm90b2NvbHMvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLm1lc3Nh
Z2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dAppbmRleCAwY2QyM2UwMWJiYWNkMmVjNGEwYmRjM2JkZmYyYmUwZDdiNjBiMDFiLi5kNzIwNjIz
YWJhY2FkZGU5N2M1ZjM1YzI3MzJmNThkZjliOTYyNzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEyOSw2ICsxMjksMTIgQEAgJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyTWVzc2FnZXNSZXAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2Vz
UmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2VzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlh
UmVjb3JkZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZWNvcmRlcnNNZXNzYWdlUmVjZWl2ZXIuY3BwCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJl
Y29yZGVyc01lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZU1lZGlhUmVjb3JkZXJzTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXgg
OWQzZTJhOTBjN2I0ZDkwYTQyNmM3NmE0ZTA1ZTZiMmY4MWNjMGU5ZS4uYTU2ODYwMWI3N2IxZGJk
N2ZmZDYzNmRlN2I2MzRiMWZlMmIxMjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpA
QCAtMTQzLDYgKzE0Myw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHkgXAogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciBcCiAg
ICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkgXAorICAgIFJlbW90ZU1lZGlhUmVjb3Jk
ZXIgXAorICAgIFJlbW90ZU1lZGlhUmVjb3JkZXJzIFwKICAgICBSZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlciBcCiAgICAgUmVtb3RlT2JqZWN0UmVnaXN0cnkgXAogICAgIFJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA1MmE5NWNlMGRlZDcwM2Q2MWQzNGE5ZDE3
ZjBjOGI0MmU2NjRmZGRhLi43ZjY2MzNhN2Q3OThhMTU0NjQ2ZTI5OWI2OTgxZDkyNTNiMmNjNzdj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCkBAIC0zOSw2ICszOSw5IEBACiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlcnMuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJl
Y29yZGVyc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIu
aCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5oIgpAQCAtMTM3LDkg
KzE0MCw3IEBAIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkmIEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OnVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyCiAKICAgICByZXR1cm4gKm1fdXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKIH0KLSNlbmRpZgogCi0jaWYgUExBVEZPUk0oQ09DT0Ep
ICYmIFVTRShMSUJXRUJSVEMpCiBMaWJXZWJSVENDb2RlY3NQcm94eSYgR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6bGliV2ViUlRDQ29kZWNzUHJveHkoKQogewogICAgIGlmICghbV9saWJXZWJS
VENDb2RlY3NQcm94eSkKQEAgLTE0OSw2ICsxNTAsMTYgQEAgTGliV2ViUlRDQ29kZWNzUHJveHkm
IEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxpYldlYlJUQ0NvZGVjc1Byb3h5KCkKIH0KICNl
bmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCitSZW1vdGVNZWRp
YVJlY29yZGVycyYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bWVkaWFSZWNvcmRlcnMoKQor
eworICAgIGlmICghbV9yZW1vdGVNZWRpYVJlY29yZGVycykKKyAgICAgICAgbV9yZW1vdGVNZWRp
YVJlY29yZGVycyA9IG1ha2VVbmlxdWU8UmVtb3RlTWVkaWFSZWNvcmRlcnM+KCp0aGlzKTsKKwor
ICAgIHJldHVybiAqbV9yZW1vdGVNZWRpYVJlY29yZGVyczsKK30KKyNlbmRpZgorCiB2b2lkIEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChkZWNvZGVy
Lm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewpAQCAtMTYzLDYgKzE3NCwxNCBAQCB2
b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSQogICAgICAgICB1c2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5KCkuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVy
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2
ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXJzOjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCkpIHsKKyAgICAgICAgbWVkaWFSZWNvcmRlcnMoKS5kaWRSZWNlaXZlTWVzc2FnZUZy
b21XZWJQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVt
b3RlTWVkaWFSZWNvcmRlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIG1lZGlh
UmVjb3JkZXJzKCkuZGlkUmVjZWl2ZVJlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlKGNvbm5lY3Rp
b24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQogI2VuZGlmCiAjaWYgUExBVEZP
Uk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2Vp
dmVyTmFtZSgpID09IE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBhYzcxMjVkNzM4ZDg2ODg4ZWVhOGI0YTkyNTE1Zjlk
ZTRkMWY2YjA0Li44OWM0Y2ExYzIyMmZhNWM5YTU0ZmE2YzA1NmRhOTgyM2JiNTZlZDRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmgKQEAgLTQxLDggKzQxLDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBHUFVQcm9j
ZXNzOwogY2xhc3MgTGliV2ViUlRDQ29kZWNzUHJveHk7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eTsKLWNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7CitjbGFz
cyBSZW1vdGVNZWRpYVJlY29yZGVyczsKIGNsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
OworY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKIAogY2xhc3MgR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2VzcwogICAgIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcz4KQEAgLTcxLDYgKzcyLDcgQEAgcHJpdmF0ZToKICNlbmRpZgogI2lmIFBMQVRG
T1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkmIHVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoKTsKKyAgICBSZW1vdGVN
ZWRpYVJlY29yZGVycyYgbWVkaWFSZWNvcmRlcnMoKTsKICNlbmRpZgogCiAgICAgLy8gSVBDOjpD
b25uZWN0aW9uOjpDbGllbnQKQEAgLTg5LDYgKzkxLDcgQEAgcHJpdmF0ZToKICAgICBQQUw6OlNl
c3Npb25JRCBtX3Nlc3Npb25JRDsKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eT4gbV91c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OworICAgIHN0ZDo6dW5pcXVlX3B0cjxS
ZW1vdGVNZWRpYVJlY29yZGVycz4gbV9yZW1vdGVNZWRpYVJlY29yZGVyczsKICNlbmRpZgogI2lm
IFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxM
aWJXZWJSVENDb2RlY3NQcm94eT4gbV9saWJXZWJSVENDb2RlY3NQcm94eTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNz
LnNiLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQ
VVByb2Nlc3Muc2IuaW4KaW5kZXggZDYzMmJlZWJjYjM1ZDc0ZTM4ZTBjYjE4NjFiN2YwNTdhNWYz
NmQ5NC4uOWI3NDEyYmI0ZGE2Y2VmMmY3MmIyN2Y1YTQxZmRlZGE3MTY5ODA1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVByb2Nl
c3Muc2IuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2Vi
S2l0LkdQVVByb2Nlc3Muc2IuaW4KQEAgLTgzNiwzICs4MzYsNyBAQAogICAgICAgICAoaW9raXQt
dXNlci1jbGllbnQtY2xhc3MgIklPVVNCSW50ZXJmYWNlVXNlckNsaWVudFYyIikpCiAgICAgKGFs
bG93IGRldmljZS1jYW1lcmEpKQogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKKworKGFsbG93IGZp
bGUtcmVhZCogZmlsZS13cml0ZSogKHN1YnBhdGggKHBhcmFtICJEQVJXSU5fVVNFUl9DQUNIRV9E
SVIiKSkpCisKKyhhbGxvdyBmaWxlLXJlYWQqIGZpbGUtd3JpdGUqIChzdWJwYXRoIChwYXJhbSAi
REFSV0lOX1VTRVJfVEVNUF9ESVIiKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZjA3Njgz
NmNlYmVlYWFhMTQ2NWI4NjJjNGFlNjA3ZTQ0Mzc2YjJjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcApAQCAt
MCwwICsxLDEzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJSZW1vdGVNZWRpYVJlY29yZGVyLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VU
cmFuc2ZlclNlc3Npb25WVC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVtb3RlVmlkZW9TYW1wbGUu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworc3RkOjp1bmlxdWVfcHRyPFJlbW90ZU1lZGlhUmVjb3JkZXI+IFJlbW90ZU1l
ZGlhUmVjb3JkZXI6OmNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLCBNZWRpYVJlY29yZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBib29s
IHJlY29yZEF1ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCit7CisgICAgYXV0byB3cml0ZXIg
PSBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y3JlYXRlKHJlY29yZEF1ZGlvLCB3aWR0aCwg
aGVpZ2h0KTsKKyAgICBpZiAoIXdyaXRlcikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
cmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVJlY29yZGVyPihuZXcgUmVtb3RlTWVk
aWFSZWNvcmRlciB7IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIGlkZW50aWZpZXIsIHdyaXRl
ci5yZWxlYXNlTm9uTnVsbCgpLCByZWNvcmRBdWRpbyB9KTsKK30KKworUmVtb3RlTWVkaWFSZWNv
cmRlcjo6UmVtb3RlTWVkaWFSZWNvcmRlcihHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLCBNZWRpYVJlY29yZGVySWRlbnRpZmllciBpZGVudGlmaWVy
LCBSZWY8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+JiYgd3JpdGVyLCBib29sIHJlY29yZEF1
ZGlvKQorICAgIDogbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGdwdUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MpCisgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAsIG1fd3JpdGVy
KFdURk1vdmUod3JpdGVyKSkKK3sKKyAgICBpZiAocmVjb3JkQXVkaW8pCisgICAgICAgIG1fcmlu
Z0J1ZmZlciA9IG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlPihudWxscHRyKSk7Cit9CisKK1JlbW90ZU1lZGlhUmVjb3JkZXI6On5S
ZW1vdGVNZWRpYVJlY29yZGVyKCkKK3sKK30KKworU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIFJl
bW90ZU1lZGlhUmVjb3JkZXI6OnN0b3JhZ2UoKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxT
aGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci0+c3RvcmFnZSgpKTsKK30KKwor
dm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyOjphdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZChjb25z
dCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYgaGFuZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK3sK
KyAgICBBU1NFUlQobV9yaW5nQnVmZmVyKTsKKyAgICBpZiAoIW1fcmluZ0J1ZmZlcikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOworCisgICAgaWYg
KGhhbmRsZS5pc051bGwoKSkgeworICAgICAgICBtX3JpbmdCdWZmZXItPmRlYWxsb2NhdGUoKTsK
KyAgICAgICAgc3RvcmFnZSgpLnNldFJlYWRPbmx5KGZhbHNlKTsKKyAgICAgICAgc3RvcmFnZSgp
LnNldFN0b3JhZ2UobnVsbHB0cik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBSZWZQ
dHI8U2hhcmVkTWVtb3J5PiBtZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1hcChoYW5kbGUsIFNoYXJl
ZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworICAgIHN0b3JhZ2UoKS5zZXRTdG9yYWdl
KFdURk1vdmUobWVtb3J5KSk7CisgICAgc3RvcmFnZSgpLnNldFJlYWRPbmx5KHRydWUpOworCisg
ICAgbV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOwor
fQorCit2b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRp
YVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUs
IHVpbnQ2NF90IGVuZEZyYW1lKQoreworICAgIEFTU0VSVChtX3JpbmdCdWZmZXIpOworICAgIGlm
ICghbV9yaW5nQnVmZmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3JpbmdCdWZmZXItPnNl
dEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7CisKKyAgICBXZWJBdWRp
b0J1ZmZlckxpc3QgYXVkaW9EYXRhKG1fZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAg
ICBtX3JpbmdCdWZmZXItPmZldGNoKGF1ZGlvRGF0YS5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0
aW1lLnRpbWVWYWx1ZSgpKTsKKworICAgIG1fd3JpdGVyLT5hcHBlbmRBdWRpb1NhbXBsZUJ1ZmZl
cihhdWRpb0RhdGEsIG1fZGVzY3JpcHRpb24sIHRpbWUsIG51bWJlck9mRnJhbWVzKTsKK30KKwor
dm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3JlOjpS
ZW1vdGVWaWRlb1NhbXBsZSYmIHJlbW90ZVNhbXBsZSkKK3sKKyAgICBpZiAoIW1faW1hZ2VUcmFu
c2ZlclNlc3Npb24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+cGl4ZWxGb3JtYXQoKSAhPSBy
ZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSkKKyAgICAgICAgbV9pbWFnZVRyYW5zZmVyU2Vzc2lv
biA9IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShyZW1vdGVTYW1wbGUudmlkZW9Gb3Jt
YXQoKSk7CisKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24pIHsKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHNh
bXBsZUJ1ZmZlciA9IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1lZGlhU2FtcGxlKHJl
bW90ZVNhbXBsZS5zdXJmYWNlKCksIHJlbW90ZVNhbXBsZS50aW1lKCksIHJlbW90ZVNhbXBsZS5z
aXplKCkpOworICAgIGlmICghc2FtcGxlQnVmZmVyKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV93cml0ZXItPmFwcGVuZFZp
ZGVvU2FtcGxlQnVmZmVyKHNhbXBsZUJ1ZmZlci0+cGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21T
YW1wbGVCdWZmZXIpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXI6OmZldGNoRGF0YShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6RGF0YVJlZmVyZW5jZSYmLCBjb25zdCBTdHJpbmcm
IG1pbWVUeXBlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgU3RyaW5nPiBtcDRNaW1lVHlwZShNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgi
dmlkZW8vbXA0IikpOworICAgIG1fd3JpdGVyLT5mZXRjaERhdGEoWyZtcDRNaW1lVHlwZSA9IG1w
NE1pbWVUeXBlLmdldCgpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXShhdXRvJiYgZGF0YSkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8qIHBvaW50ZXIgPSBy
ZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRhID8gZGF0YS0+ZGF0YSgpIDogbnVs
bHB0cik7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKElQQzo6RGF0YVJlZmVyZW5jZSB7IHBv
aW50ZXIsIGRhdGEgPyBkYXRhLT5zaXplKCkgOiAwIH0sIG1wNE1pbWVUeXBlKTsKKyAgICB9KTsK
K30KKwordm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyOjpzdG9wUmVjb3JkaW5nKCkKK3sKKyAgICBt
X3dyaXRlci0+c3RvcFJlY29yZGluZygpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40NGE4ZDE3NTVjNTk1MzBjMjMxMzZiNDc3YjlhOGEwODU0NDE0ZjU2Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJl
Y29yZGVyLmgKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIk1l
ZGlhUmVjb3JkZXJJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisj
aW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyQ29jb2EuaD4KKyNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CisKK25hbWVzcGFjZSBJUEMg
eworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIERhdGFSZWZlcmVuY2U7CitjbGFzcyBEZWNvZGVy
OworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDQVJpbmdCdWZmZXI7CitjbGFzcyBJ
bWFnZVRyYW5zZmVyU2Vzc2lvblZUOworY2xhc3MgUmVtb3RlVmlkZW9TYW1wbGU7Cit9CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOworY2xh
c3MgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U7CisKK2NsYXNzIFJlbW90ZU1lZGlhUmVjb3JkZXIg
OiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZU1lZGlhUmVj
b3JkZXI+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgTWVkaWFSZWNvcmRlcklk
ZW50aWZpZXIsIGJvb2wgcmVjb3JkQXVkaW8sIGludCB3aWR0aCwgaW50IGhlaWdodCk7CisgICAg
flJlbW90ZU1lZGlhUmVjb3JkZXIoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgUmVt
b3RlTWVkaWFSZWNvcmRlcihHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgTWVkaWFSZWNvcmRl
cklkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4mJiwg
Ym9vbCByZWNvcmRBdWRpbyk7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZv
aWQgYXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUm
LCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCB1aW50NjRfdCBudW1i
ZXJPZkZyYW1lcyk7CisgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lLCB1
aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5k
RnJhbWUpOworICAgIHZvaWQgdmlkZW9TYW1wbGVBdmFpbGFibGUoV2ViQ29yZTo6UmVtb3RlVmlk
ZW9TYW1wbGUmJik7CisgICAgdm9pZCBmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJ
UEM6OkRhdGFSZWZlcmVuY2UmJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk+JiYpOworICAgIHZv
aWQgc3RvcFJlY29yZGluZygpOworCisgICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3Jh
Z2UoKTsKKworICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIG1fZ3B1Q29ubmVjdGlvblRv
V2ViUHJvY2VzczsKKyAgICBNZWRpYVJlY29yZGVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7Cisg
ICAgUmVmPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiBtX3dyaXRlcjsKKwor
ICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVD4gbV9pbWFn
ZVRyYW5zZmVyU2Vzc2lvbjsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIubWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYzE0ZWRjNTM2MTAyM2VkYzc4Mjc4MGM0ZDQ2ZTlkMTViOTQ4
MTM5ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlTWVkaWFSZWNvcmRlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM0IEBACisjIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisj
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFSZWNvcmRlciBOb3RS
ZWZDb3VudGVkIHsKKyAgICBBdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZChXZWJLaXQ6OlNoYXJl
ZE1lbW9yeTo6SGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisgICAgQXVkaW9T
YW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywg
dWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCisgICAgVmlkZW9TYW1wbGVB
dmFpbGFibGUoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUgc2FtcGxlKQorICAgIEZldGNoRGF0
YSgpIC0+IChJUEM6OkRhdGFSZWZlcmVuY2UgYnVmZmVyLCBTdHJpbmcgbWltZVR5cGUpIEFzeW5j
CisgICAgU3RvcFJlY29yZGluZygpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJzLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hNjFiNzc0YjZkMWU0ODhkMDc5OWU0YzQzNTdlMmQ4YjFiOGYxZDk3Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29y
ZGVycy5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlY29yZGVycy5oIgorCisjaWYgUExBVEZPUk0oQ09D
T0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVjb3Jk
ZXIuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZU1lZGlhUmVjb3JkZXJzOjpSZW1v
dGVNZWRpYVJlY29yZGVycyhHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzKQorICAgIDogbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGdwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MpCit7Cit9CisKK1JlbW90ZU1lZGlhUmVjb3JkZXJzOjp+UmVtb3Rl
TWVkaWFSZWNvcmRlcnMoKQoreworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXJzOjpkaWRS
ZWNlaXZlUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgaWYgKGF1dG8qIHJlY29yZGVyID0g
bV9yZWNvcmRlcnMuZ2V0KG1ha2VPYmplY3RJZGVudGlmaWVyPE1lZGlhUmVjb3JkZXJJZGVudGlm
aWVyVHlwZT4oZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpKSkKKyAgICAgICAgcmVjb3JkZXItPmRp
ZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworfQorCit2b2lkIFJlbW90ZU1l
ZGlhUmVjb3JkZXJzOjpjcmVhdGVSZWNvcmRlcihNZWRpYVJlY29yZGVySWRlbnRpZmllciBpZGVu
dGlmaWVyLCBib29sIHJlY29yZEF1ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCit7CisgICAg
QVNTRVJUKCFtX3JlY29yZGVycy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgYXV0byByZWNv
cmRlciA9IFJlbW90ZU1lZGlhUmVjb3JkZXI6OmNyZWF0ZShtX2dwdUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MsIGlkZW50aWZpZXIsIHJlY29yZEF1ZGlvLCB3aWR0aCwgaGVpZ2h0KTsKKyAgICBpZiAo
IXJlY29yZGVyKSB7CisgICAgICAgIC8vIEZJWE1FOiBTZW5kIGJhY2sgZXJyb3IuCisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgbV9yZWNvcmRlcnMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUo
cmVjb3JkZXIpKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyczo6cmVsZWFzZVJlY29y
ZGVyKE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKG1f
cmVjb3JkZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBtX3JlY29yZGVycy5yZW1vdmUo
aWRlbnRpZmllcik7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJzLmggYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJzLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjc2
ZjE3OTRhNTA0MzZjZmJmMGUyZTZhMDk4NTg2MDM0M2RiYTI5NQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMuaApA
QCAtMCwwICsxLDY3IEBACisKKworLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExB
VEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIk1lZGlhUmVj
b3JkZXJJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOwor
Y2xhc3MgRGVjb2RlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M7CitjbGFzcyBSZW1vdGVNZWRpYVJlY29yZGVyOworCitjbGFzcyBS
ZW1vdGVNZWRpYVJlY29yZGVycyA6IHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IFJlbW90ZU1l
ZGlhUmVjb3JkZXJzKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKKyAgICB+UmVtb3RlTWVk
aWFSZWNvcmRlcnMoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVJlbW90ZU1lZGlhUmVjb3JkZXJN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQ
Qzo6RGVjb2RlciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNv
ZGVyKTsgfQorCitwcml2YXRlOgorICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5h
bDsKKyAgICB2b2lkIGNyZWF0ZVJlY29yZGVyKE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLCBib29s
IHJlY29yZEF1ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworICAgIHZvaWQgcmVsZWFzZVJl
Y29yZGVyKE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyKTsKKworICAgIEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MmIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzczsKKyAgICBIYXNoTWFwPE1lZGlh
UmVjb3JkZXJJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFSZWNvcmRlcj4+
IG1fcmVjb3JkZXJzOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJzLm1lc3Nh
Z2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ0ZTVkZTkyOTI2NTQ0N2E1ZjBhZWNlMDZhNDZjMjA1NWRkNWVm
ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZU1lZGlhUmVjb3JkZXJzLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKyMgQ29weXJp
Z2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVJlY29yZGVycyBOb3RS
ZWZDb3VudGVkIHsKKyAgICBDcmVhdGVSZWNvcmRlcihXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJJZGVu
dGlmaWVyIGlkLCBib29sIGhhc0F1ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCisgICAgUmVs
ZWFzZVJlY29yZGVyKFdlYktpdDo6TWVkaWFSZWNvcmRlcklkZW50aWZpZXIgaWQpCit9CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggNjkwNjMx
MDZjYWI1NDAyMWM0Mjg5NmNkY2I3NjNhNzU2Zjc4YWY4Ni4uZjExZjE2MTE0ZjA3YTJlMGRjNjRh
ZWQ4MjBkNThjN2I2OGQ3MzBiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5CkBAIC0yMjAsNiArMjIwLDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2Zvcndh
cmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYktpdDo6QWN0aXZpdHlTdGF0ZUNoYW5nZUlEJywK
ICAgICAgICAgJ1dlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEJywKICAgICAgICAgJ1dlYktp
dDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllcicsCisgICAgICAgICdXZWJLaXQ6
Ok1lZGlhUmVjb3JkZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6UmVtb3RlTWVkaWFS
ZXNvdXJjZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpSVENEZWNvZGVySWRlbnRpZmll
cicsCiAgICAgICAgICdXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllcicsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApp
bmRleCBjYTUyNjAzZWQ1YjA3Y2MxYTEwNzIxNzM2ZWQ0NmM2Nzg5NDEzMzEyLi40OTRkMjkyMDU0
ODY4MjBmZmZiNGUyYjQ5OGE4OTM3M2UyZmE4ZjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTI0LDYgKzI0
LDggQEAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHAKK0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwCitHUFVQcm9j
ZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5jcHAKIC8vR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKIC8vR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5LmNwcAogLy9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVz
b3VyY2UuY3BwCkBAIC01MTMsNiArNTE1LDggQEAgV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwCiAvL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQ
cm94eS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVD
YWNoZS5jcHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNz
LmNwcAorV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcAorV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAKIAogV2ViUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvTmV0d29y
ay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNl
c0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCA2MGIzOWYz
N2M1Nzg1NTYyMWYyOWY2NmI5NjE3ZDlhN2IzZGE3MDNkLi41YTgyMjk4NzYxOTJkNjFkNDhlZDI1
OGFkY2Y4ZjgzN2U3NGQ2YjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC02MzUsNSArNjM1
LDcgQEAgR1BVUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogR1BVUHJvY2Vzc01lc3Nh
Z2VSZWNlaXZlci5jcHAKIExpYldlYlJUQ0NvZGVjc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAog
TGliV2ViUlRDQ29kZWNzTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlTWVkaWFSZWNvcmRlck1l
c3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZU1lZGlhUmVjb3JkZXJzTWVzc2FnZVJlY2VpdmVyLmNw
cAogU2VydmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VSZWNlaXZlci5jcHAKIFRleHRDaGVja2lu
Z0NvbnRyb2xsZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDFiNTg4NjhmNTJlY2Y3MTMzMmI5
NGY4ZDRiMTI0ZWFiOGY5YWU3NTMuLmUyZTcxMzRmYWI0YjA3ODY0YWNkYmFkOWZlMDgxODM2NjI5
YTcyZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMzMyOSw2ICszMzI5LDE3IEBACiAJCTQxNzIxOThDMjNCNjEyRTgwMEFFNTY4NiAv
KiBSVENEZWNvZGVySWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSVENEZWNvZGVySWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTcyMTk4RDIzQjYyQzdDMDBBRTU2ODYgLyogTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2VzLmluICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IExpYldlYlJUQ0NvZGVjcy5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDE3NjkwMTMyMkZERDQxQjAwQjE1NzZEIC8qIE5ldHdvcmtSVENQcm92aWRlci5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdvcmtSVENQcm92aWRl
ci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OTIyM0MzNEQ2RTAwM0U4
M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVJlY29y
ZGVyUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OTMyM0Mz
NEQ2RjAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBNZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0MTc2RTg5NDIzQzM0RTI2MDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFSZWNvcmRlclByaXZh
dGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc2RTg5NTIzQzM0RTI3MDAz
RTgzRkUgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTWVkaWFSZWNvcmRlclByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDE3NkU4OTcyM0MzNjFCRDAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJJZGVudGlmaWVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJJZGVudGlm
aWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODk4MjNDMzY2NzcwMDNF
ODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZU1lZGlhUmVjb3JkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDE3NkU4OTkyM0MzNkQ4RTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXJzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVjb3JkZXJzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODlBMjNDMzZGNzEwMDNFODNGRSAvKiBS
ZW1vdGVNZWRpYVJlY29yZGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdGVNZWRpYVJlY29yZGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQxNzZFODlCMjNDMzcyMjIwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVycy5tZXNz
YWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVNZWRpYVJlY29yZGVycy5tZXNz
YWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OUMyM0MzNzQ3OTAw
M0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gUmVtb3RlTWVkaWFSZWNvcmRlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OUQyM0MzNzZENTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVj
b3JkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVk
aWFSZWNvcmRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzkxNUFDMjI1
NkJCNzQwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlNvY2tldENoYW5uZWwuY3BwOyBwYXRoID0gTmV0d29yay9X
ZWJTb2NrZXRDaGFubmVsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3OTE1
QUQyMjU2QkI3NDAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gV2ViU29ja2V0Q2hhbm5lbC5oOyBwYXRoID0gTmV0d29yay9XZWJT
b2NrZXRDaGFubmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzkxNUIwMjI1
NkMwRDYwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsTWFuYWdlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJTb2NrZXRDaGFubmVsTWFuYWdlci5oOyBwYXRoID0gTmV0
d29yay9XZWJTb2NrZXRDaGFubmVsTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNzEzMCw2ICs3MTQxLDExIEBACiAJCQkJNDE3MjE5OEEyM0I2MTI4MjAwQUU1Njg2IC8q
IExpYldlYlJUQ0NvZGVjcy5jcHAgKi8sCiAJCQkJNDE3MjE5ODkyM0I2MTI4MjAwQUU1Njg2IC8q
IExpYldlYlJUQ0NvZGVjcy5oICovLAogCQkJCTQxNzIxOThEMjNCNjJDN0MwMEFFNTY4NiAvKiBM
aWJXZWJSVENDb2RlY3MubWVzc2FnZXMuaW4gKi8sCisJCQkJNDE3NkU4OTcyM0MzNjFCRDAwM0U4
M0ZFIC8qIE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLmggKi8sCisJCQkJNDE3NkU4OTQyM0MzNEUy
NjAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCAqLywKKwkJCQk0MTc2RTg5NTIz
QzM0RTI3MDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCAqLywKKwkJCQk0MTc2RTg5
MzIzQzM0RDZGMDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcCAqLywKKwkJCQk0
MTc2RTg5MjIzQzM0RDZFMDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVyLmggKi8sCiAJ
CQkJNDE3MjE5OEMyM0I2MTJFODAwQUU1Njg2IC8qIFJUQ0RlY29kZXJJZGVudGlmaWVyLmggKi8s
CiAJCQkpOwogCQkJcGF0aCA9IHdlYnJ0YzsKQEAgLTcxNDEsNiArNzE1NywxMiBAQAogCQkJCTQx
RTBBN0M2MjNCNjM5NzgwMDU2MTA2MCAvKiBMaWJXZWJSVENDb2RlY3NQcm94eS5oICovLAogCQkJ
CTQxRTBBN0M3MjNCNjM5NzkwMDU2MTA2MCAvKiBMaWJXZWJSVENDb2RlY3NQcm94eS5tZXNzYWdl
cy5pbiAqLywKIAkJCQk0MUUwQTdDODIzQjYzOTc5MDA1NjEwNjAgLyogTGliV2ViUlRDQ29kZWNz
UHJveHkubW0gKi8sCisJCQkJNDE3NkU4OUQyM0MzNzZENTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlh
UmVjb3JkZXIuY3BwICovLAorCQkJCTQxNzZFODk4MjNDMzY2NzcwMDNFODNGRSAvKiBSZW1vdGVN
ZWRpYVJlY29yZGVyLmggKi8sCisJCQkJNDE3NkU4OUMyM0MzNzQ3OTAwM0U4M0ZFIC8qIFJlbW90
ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJNDE3NkU4OUEyM0MzNkY3MTAwM0U4
M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXJzLmNwcCAqLywKKwkJCQk0MTc2RTg5OTIzQzM2RDhF
MDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlcnMuaCAqLywKKwkJCQk0MTc2RTg5QjIzQzM3
MjIyMDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlcnMubWVzc2FnZXMuaW4gKi8sCiAJCQkp
OwogCQkJcGF0aCA9IHdlYnJ0YzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUmVjb3JkZXJQcm92
aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUmVjb3Jk
ZXJQcm92aWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGUyZDY2YmZiY2I0OWQ5Mzg5Mzg2NThjMDAwZWEz
MWQ5MmViZjcyNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92
aWRlci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclBy
aXZhdGVBVkZJbXBsLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGQ6OnVu
aXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IE1lZGlhUmVjb3JkZXJQcm92aWRlcjo6Y3Jl
YXRlTWVkaWFSZWNvcmRlclByaXZhdGUoTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCit7Cisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgcmV0dXJuIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1w
bDo6Y3JlYXRlKHN0cmVhbSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShzdHJlYW0pOworICAg
IHJldHVybiBudWxscHRyOworI2VuZGlmCit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUmVjb3JkZXJQcm92aWRlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjcxMGU4ZDQ4MWY4NmEzNWQwZDllZTlmYjgzZWFlZTY2ZGM3OWRmY2UKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUmVjb3Jk
ZXJQcm92aWRlci5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZTsKK2Ns
YXNzIE1lZGlhU3RyZWFtUHJpdmF0ZTsKKworY2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFSZWNv
cmRlclByb3ZpZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4gY3JlYXRlKCkgeyByZXR1
cm4gbWFrZVVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCk7IH0KKyAgICB2aXJ0dWFs
IH5NZWRpYVJlY29yZGVyUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHN0ZDo6
dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlTWVkaWFSZWNvcmRlclByaXZh
dGUoTWVkaWFTdHJlYW1Qcml2YXRlJik7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVySWRlbnRpZmllci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlcklkZW50aWZpZXIu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zMmYwNGUzMzNmZTg0NjMyM2NjY2U3OTM4NWNhNzUyYjU2NDE5M2VkCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVk
aWFSZWNvcmRlcklkZW50aWZpZXIuaApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworZW51bSBNZWRpYVJlY29yZGVySWRlbnRpZmllclR5cGUgeyB9OwordXNp
bmcgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPE1lZGlhUmVjb3Jk
ZXJJZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclBy
aXZhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzMGQ2NTFiM2E4ZWI1MGMwNmYxYzRiMmMyZmY3ODAwZTFi
ZWFkY2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKQEAgLTAsMCArMSwxMzggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGUu
aCIKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNs
dWRlICJSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRp
YVJlY29yZGVyc01lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU3RyZWFtUHJpdmF0ZS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlv
QnVmZmVyTGlzdC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK01lZGlhUmVjb3JkZXJQcml2YXRlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZShjb25z
dCBNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKKyAgICA6IG1faWRlbnRpZmllcihNZWRpYVJl
Y29yZGVySWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKKyAgICAsIG1fY29ubmVjdGlvbihXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24o
KSkKK3sKKyAgICAvLyBGSVhNRTogd2Ugd2lsbCBuZWVkIHRvIGltcGxlbWVudCBzdXBwb3J0IGZv
ciBtdWx0aXBsZSBhdWRpby92aWRlbyB0cmFja3MKKyAgICAvLyBDdXJyZW50bHkgd2Ugb25seSBj
aG9vc2UgdGhlIGZpcnN0IHRyYWNrIGFzIHRoZSByZWNvcmRlZCB0cmFjay4KKyAgICAvLyBGSVhN
RTogV2Ugd291bGQgYmV0dGVyIHRvIHRocm93IGFuIGV4Y2VwdGlvbiB0byBKYXZhU2NyaXB0IGlm
IHdyaXRlciBjcmVhdGlvbiBmYWlscy4KKworICAgIGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlKiBhdWRpb1RyYWNrIHsgbnVsbHB0ciB9OworICAgIGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlKiB2aWRlb1RyYWNrIHsgbnVsbHB0ciB9OworICAgIGZvciAoYXV0byYgdHJhY2sgOiBz
dHJlYW0udHJhY2tzKCkpIHsKKyAgICAgICAgaWYgKCF0cmFjay0+ZW5hYmxlZCgpIHx8IHRyYWNr
LT5lbmRlZCgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIHN3aXRjaCAodHJhY2st
PnR5cGUoKSkgeworICAgICAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVv
OiB7CisgICAgICAgICAgICBhdXRvJiBzZXR0aW5ncyA9IHRyYWNrLT5zZXR0aW5ncygpOworICAg
ICAgICAgICAgaWYgKCF2aWRlb1RyYWNrICYmIHNldHRpbmdzLnN1cHBvcnRzV2lkdGgoKSAmJiBz
ZXR0aW5ncy5zdXBwb3J0c0hlaWdodCgpKSB7CisgICAgICAgICAgICAgICAgdmlkZW9UcmFjayA9
IHRyYWNrLmdldCgpOworICAgICAgICAgICAgICAgIG1fcmVjb3JkZWRWaWRlb1RyYWNrSUQgPSB2
aWRlb1RyYWNrLT5pZCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICAgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzoKKyAg
ICAgICAgICAgIGlmICghYXVkaW9UcmFjaykgeworICAgICAgICAgICAgICAgIG1fcmluZ0J1ZmZl
ciA9IG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZm
ZXJTdG9yYWdlPih0aGlzKSk7CisgICAgICAgICAgICAgICAgYXVkaW9UcmFjayA9IHRyYWNrLmdl
dCgpOworICAgICAgICAgICAgICAgIG1fcmVjb3JkZWRBdWRpb1RyYWNrSUQgPSBhdWRpb1RyYWNr
LT5pZCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZToKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgfQorICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVk
aWFSZWNvcmRlcnM6OkNyZWF0ZVJlY29yZGVyIHsgbV9pZGVudGlmaWVyLCAhIWF1ZGlvVHJhY2ss
IHZpZGVvVHJhY2sgPyB2aWRlb1RyYWNrLT5zZXR0aW5ncygpLndpZHRoKCkgOiAwLCB2aWRlb1Ry
YWNrID8gdmlkZW9UcmFjay0+c2V0dGluZ3MoKS5oZWlnaHQoKSA6IDAgfSwgMCk7Cit9CisKK01l
ZGlhUmVjb3JkZXJQcml2YXRlOjp+TWVkaWFSZWNvcmRlclByaXZhdGUoKQoreworICAgIG1fY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcnM6OlJlbGVhc2VSZWNv
cmRlciB7IG1faWRlbnRpZmllciB9LCAwKTsKK30KKwordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0
ZTo6c2FtcGxlQnVmZmVyVXBkYXRlZChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYg
dHJhY2ssIFdlYkNvcmU6Ok1lZGlhU2FtcGxlJiBzYW1wbGUpCit7CisgICAgaWYgKHRyYWNrLmlk
KCkgIT0gbV9yZWNvcmRlZFZpZGVvVHJhY2tJRCkKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChh
dXRvIHJlbW90ZVNhbXBsZSA9IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUoc2FtcGxlKSkKKyAg
ICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyOjpW
aWRlb1NhbXBsZUF2YWlsYWJsZSB7IFdURk1vdmUoKnJlbW90ZVNhbXBsZSkgfSwgbV9pZGVudGlm
aWVyKTsKK30KKwordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6YXVkaW9TYW1wbGVzQXZhaWxh
YmxlKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaywgY29uc3QgTWVkaWFU
aW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBBdWRp
b1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IG51bWJlck9mRnJhbWVzKQor
eworICAgIGlmICh0cmFjay5pZCgpICE9IG1fcmVjb3JkZWRBdWRpb1RyYWNrSUQpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmIChtX2Rlc2NyaXB0aW9uICE9IGRlc2NyaXB0aW9uKSB7CisgICAg
ICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0
Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKKyAgICAgICAgbV9kZXNj
cmlwdGlvbiA9ICpXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihk
ZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOworCisgICAgICAg
IC8vIEFsbG9jYXRlIGEgcmluZyBidWZmZXIgbGFyZ2UgZW5vdWdoIHRvIGNvbnRhaW4gMiBzZWNv
bmRzIG9mIGF1ZGlvLgorICAgICAgICBtX251bWJlck9mRnJhbWVzID0gbV9kZXNjcmlwdGlvbi5z
YW1wbGVSYXRlKCkgKiAyOworICAgICAgICBtX3JpbmdCdWZmZXItPmFsbG9jYXRlKG1fZGVzY3Jp
cHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgbV9udW1iZXJPZkZyYW1lcyk7CisgICAgfQorCisg
ICAgQVNTRVJUKGlzPFdlYkF1ZGlvQnVmZmVyTGlzdD4oYXVkaW9EYXRhKSk7CisgICAgbV9yaW5n
QnVmZmVyLT5zdG9yZShkb3duY2FzdDxXZWJBdWRpb0J1ZmZlckxpc3Q+KGF1ZGlvRGF0YSkubGlz
dCgpLCBudW1iZXJPZkZyYW1lcywgdGltZS50aW1lVmFsdWUoKSk7CisgICAgdWludDY0X3Qgc3Rh
cnRGcmFtZTsKKyAgICB1aW50NjRfdCBlbmRGcmFtZTsKKyAgICBtX3JpbmdCdWZmZXItPmdldEN1
cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7CisgICAgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyOjpBdWRpb1NhbXBsZXNBdmFpbGFi
bGUgeyB0aW1lLCBudW1iZXJPZkZyYW1lcywgc3RhcnRGcmFtZSwgZW5kRnJhbWUgfSwgbV9pZGVu
dGlmaWVyKTsKK30KKwordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c3RvcmFnZUNoYW5nZWQo
U2hhcmVkTWVtb3J5KiBzdG9yYWdlKQoreworICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRs
ZTsKKyAgICBpZiAoc3RvcmFnZSkKKyAgICAgICAgc3RvcmFnZS0+Y3JlYXRlSGFuZGxlKGhhbmRs
ZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CisgICAgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyOjpBdWRpb1NhbXBsZXNTdG9yYWdl
Q2hhbmdlZCB7IGhhbmRsZSwgbV9kZXNjcmlwdGlvbiwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1f
bnVtYmVyT2ZGcmFtZXMpIH0sIG1faWRlbnRpZmllcik7Cit9CisKK3ZvaWQgTWVkaWFSZWNvcmRl
clByaXZhdGU6OmZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3Jl
OjpTaGFyZWRCdWZmZXI+JiYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpSZW1vdGVNZWRpYVJlY29yZGVyOjpGZXRjaERhdGEgeyB9LCBbY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byYmIGRhdGEsIGF1dG8mJiBtaW1lVHlw
ZSkgbXV0YWJsZSB7CisgICAgICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlcjsKKyAgICAg
ICAgaWYgKCFkYXRhLnNpemUoKSkKKyAgICAgICAgICAgIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6
Y3JlYXRlKGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKFdURk1vdmUoYnVmZmVyKSwgbWltZVR5cGUpOworICAgIH0sIG1faWRlbnRpZmllcik7Cit9
CisKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OnN0b3BSZWNvcmRpbmcoKQoreworICAgIG1f
Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6U3RvcFJlY29y
ZGluZyB7IH0sIG1faWRlbnRpZmllcik7Cit9CisKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKENP
Q09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hZjg5ZWIzOTcwZGJmMjFlNjMyYjFmZThmZmVkMjBmNTkyMzI1ZTZkCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclBy
aXZhdGUuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiTWVk
aWFSZWNvcmRlcklkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFn
ZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFSZWNvcmRlclByaXZhdGUuaD4KKworbmFtZXNw
YWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
Y2xhc3MgTWVkaWFSZWNvcmRlclByaXZhdGUgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6TWVkaWFS
ZWNvcmRlclByaXZhdGUsIHB1YmxpYyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50IHsK
KyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBNZWRp
YVJlY29yZGVyUHJpdmF0ZShjb25zdCBXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGUmKTsKKyAg
ICB+TWVkaWFSZWNvcmRlclByaXZhdGUoKTsKKworcHJpdmF0ZToKKyAgICAvLyBXZWJDb3JlOjpN
ZWRpYVJlY29yZGVyUHJpdmF0ZQorICAgIHZvaWQgc2FtcGxlQnVmZmVyVXBkYXRlZChXZWJDb3Jl
OjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIFdlYkNvcmU6Ok1lZGlhU2FtcGxlJikgZmluYWw7
CisgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUmLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFdlYkNvcmU6OlBsYXRmb3Jt
QXVkaW9EYXRhJiwgY29uc3QgV2ViQ29yZTo6QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVf
dCkgZmluYWw7CisgICAgdm9pZCBmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQ
dHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKT4mJikg
ZmluYWw7CisgICAgdm9pZCBzdG9wUmVjb3JkaW5nKCkgZmluYWw7CisKKyAgICAvLyBTaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50CisgICAgdm9pZCBzdG9yYWdlQ2hhbmdlZChTaGFyZWRN
ZW1vcnkqKTsKKworICAgIE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKwor
ICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBTdHJpbmcgbV9yZWNv
cmRlZEF1ZGlvVHJhY2tJRDsKKyAgICBTdHJpbmcgbV9yZWNvcmRlZFZpZGVvVHJhY2tJRDsKKwor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsK
KyAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbiB7IH07
CisgICAgaW50NjRfdCBtX251bWJlck9mRnJhbWVzIHsgMCB9OworfTsKKworfQorCisjZW5kaWYg
Ly8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQ
cm92aWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDQwYzdhNGVhY2VmZDJjN2ViMTZhZGZjY2U2OWI4MTY4
YzRlN2RiZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlk
ZXIuaCIKKworI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlLmgiCisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlPiBNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0
ZU1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQor
eworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBpZiAoIW1fdXNlR1BVUHJvY2VzcykKKyAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcjo6Y3JlYXRlTWVkaWFS
ZWNvcmRlclByaXZhdGUoc3RyZWFtKTsKKworICAgIHJldHVybiBtYWtlVW5pcXVlPE1lZGlhUmVj
b3JkZXJQcml2YXRlPihzdHJlYW0pOworI2Vsc2UKKyAgICByZXR1cm4gV2ViQ29yZTo6TWVkaWFS
ZWNvcmRlclByb3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShzdHJlYW0pOworI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yY2YyNzAxZTBlNTY3NTdiYzVhMGViNzk3MGNjYTU2MzYwNDQwYjdmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFS
ZWNvcmRlclByb3ZpZGVyLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIE1lZGlhUmVjb3JkZXJQcm92aWRlciBmaW5hbCA6IHB1
YmxpYyBXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXIgeworcHVibGljOgorICAgIE1lZGlh
UmVjb3JkZXJQcm92aWRlcigpID0gZGVmYXVsdDsKKworcHJpdmF0ZToKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3JkZXJQ
cml2YXRlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZSYpIGZpbmFsOworfTsKKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBl
ZDQyYmQxOTk4ZTRhZGVjOGQyMWY0NWU2MWNhMGU3ZGI5ODFlZjkxLi4zY2E4YmU4ZWY3N2Y5Mjc4
OTc3ZDdjMzI1NDljNjUxZDQxZWFjY2RjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIkxpYldlYlJU
Q1Byb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTG9hZFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJMb2dn
aW5nLmgiCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTmV0
c2NhcGVQbHVnaW4uaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgiCkBAIC00NjAs
NyArNDYxLDggQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgICAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5jYWNoZVN0b3JhZ2VQcm92aWRlcigpLAogICAgICAgICBXZWJCYWNrRm9yd2Fy
ZExpc3RQcm94eTo6Y3JlYXRlKCp0aGlzKSwKICAgICAgICAgV2ViQ29va2llSmFyOjpjcmVhdGUo
KSwKLSAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCp0aGlz
KQorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oKnRoaXMp
LAorICAgICAgICBtYWtlVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgICk7
CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVu
dCgqdGhpcyk7CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggNGM0MTg2NGQ4OWY0MDU2N2VkODFlZDJlZmVm
YjUwMWY2NzUzZGI4NC4uMTliMjIxY2IyMjc4M2M1YjY0YzM1M2QwMjg1YTQ0OGY0NTNkMGI2NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTgwLDYg
KzE4MCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbXBvcnQg
PFdlYkNvcmUvTG9nSW5pdGlhbGl6YXRpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVS
ZWdpc3RyeS5oPgorI2ltcG9ydCA8V2ViQ29yZS9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaD4KICNp
bXBvcnQgPFdlYkNvcmUvTWVtb3J5Q2FjaGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvTWVtb3J5UmVs
ZWFzZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KQEAgLTE0
NDgsNyArMTQ0OSw4IEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlk
ZXJJZk5lY2Vzc2FyeSgpCiAgICAgICAgIFdlYkNvcmU6OkNhY2hlU3RvcmFnZVByb3ZpZGVyOjpj
cmVhdGUoKSwKICAgICAgICAgQmFja0ZvcndhcmRMaXN0OjpjcmVhdGUoc2VsZiksCiAgICAgICAg
IFdlYkNvcmU6OkNvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpLAot
ICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oc2VsZikKKyAg
ICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KHNlbGYpLAorICAg
ICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAg
ICk7CiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hy
b21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudChzZWxmKTsKQEAgLTE3MTcsNyArMTcxOSw4
IEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2Fy
eSgpCiAgICAgICAgIFdlYkNvcmU6OkNhY2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUoKSwKICAg
ICAgICAgQmFja0ZvcndhcmRMaXN0OjpjcmVhdGUoc2VsZiksCiAgICAgICAgIFdlYkNvcmU6OkNv
b2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpLAotICAgICAgICBtYWtl
VW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oc2VsZikKKyAgICAgICAgbWFrZVVu
aXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KHNlbGYpLAorICAgICAgICBtYWtlVW5p
cXVlUmVmPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgICk7CiAgICAgcGFn
ZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudElPUyhzZWxm
KTsKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386936</attachid>
            <date>2020-01-06 23:16:32 -0800</date>
            <delta_ts>2020-01-06 23:55:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205802-20200107081630.patch</filename>
            <type>text/plain</type>
            <size>91838</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTdiNmQyNDFlMzg2MjZl
OTlmMzI2YTU0ZGU4Y2U3Y2ZiNDcwMzQ0Yi4uZjA4ODczN2Y2ZGJiZDlkNjZkYzJiZTllOTk0NDE5
NzhlMTA3YzVkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIwLTAxLTA2ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgTWVkaWFS
ZWNvcmRlciBiYWNrZW5kIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTgwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMgYXMgTWVkaWFS
ZWNvcmRlciBpbXBsZW1lbnRhdGlvbiBpbiBXZWJLaXRUZXN0UnVubmVyIHdpbGwgdXNlIEdQVVBy
b2Nlc3MuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUpOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmg6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29y
ZGVyUHJpdmF0ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3Jk
ZXJQcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGlu
LmNwcDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAg
ICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAg
ICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Om1lZGlhUmVjb3Jk
ZXJQcm92aWRlcik6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOgorICAg
ICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
cjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVBy
aXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZS5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnRlcm5hbHM6OnNldFVzZUdQVVByb2Nlc3NGb3JXZWJSVEMpOgorCiAyMDIwLTAxLTA2
ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ10gU3RhcnQg
dXNpbmcgdGhlIFVzZWRIb3Jpem9udGFsVmFsdWVzOjpDb25zdHJhaW50cyB2YWx1ZXMgaW4gOjps
YXlvdXRJbkZsb3dDb250ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI1YzFjNGZkODk4MjM5OWMzNjY2MTQyNzBl
MTIzNDk5NWM4ZThhNTQuLmJmMWRjNWRkNjUyNTJmZDU1ZjczNjA2NGMyZDZmMGIxYTY0NTM5YjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMjAtMDEtMDYgIHlvdWVubiBmYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBNZWRpYVJlY29yZGVyIGJhY2tl
bmQgaW4gR1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA1ODAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
Lm1ha2U6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6dXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6Om1lZGlhUmVjb3JkZXJzKToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWFjL2Nv
bS5hcHBsZS5XZWJLaXQuR1BVUHJvY2Vzcy5zYi5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUmVjb3JkZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UmVjb3JkZXI6OlJlbW90ZU1lZGlhUmVjb3JkZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVN
ZWRpYVJlY29yZGVyOjp+UmVtb3RlTWVkaWFSZWNvcmRlcik6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUmVjb3JkZXI6OnN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVJlY29yZGVyOjphdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUmVjb3JkZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6ZmV0Y2hEYXRhKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6c3RvcFJlY29yZGluZyk6CisgICAgICAgICogR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBH
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluOiBBZGRlZC4K
KyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyczo6UmVtb3RlTWVkaWFS
ZWNvcmRlcnMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyczo6flJlbW90
ZU1lZGlhUmVjb3JkZXJzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcnM6
OmRpZFJlY2VpdmVSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUmVjb3JkZXJzOjpjcmVhdGVSZWNvcmRlcik6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUmVjb3JkZXJzOjpyZWxlYXNlUmVjb3JkZXIpOgorICAgICAgICAqIEdQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJzLmg6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyczo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vz
cyk6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMubWVz
c2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5Ogor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAg
ICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2
YXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVJlY29yZGVyUHJvdmlk
ZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3Jk
ZXJJZGVudGlmaWVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9N
ZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJl
Y29yZGVyUHJpdmF0ZTo6TWVkaWFSZWNvcmRlclByaXZhdGUpOgorICAgICAgICAoV2ViS2l0OjpN
ZWRpYVJlY29yZGVyUHJpdmF0ZTo6fk1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAgICAgICAgKFdl
YktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQpOgorICAgICAg
ICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6OnN0b3JhZ2VDaGFuZ2VkKToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6OmZldGNoRGF0YSk6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdG9wUmVjb3JkaW5nKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaDogQWRkZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0
ZU1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMv
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9vdmVycmlkZGVuTWVkaWFUeXBl
KToKKwogMjAyMC0wMS0wNiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW2lPU10gR2V0IGRpc3BsYXkgbGV2ZWwgaW4gdGhlIFVJIHByb2Nlc3MgZm9yIGFs
bCBpT1MgcGxhdGZvcm1zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZWRlYmQ1OWRm
OTUxN2Y4ZjAwZTEwY2IzZDRjMTdhOGIyZTBhZGM0Ny4uNDhkNmE5ZTBiMTdiM2M2MzM0ZTEzYzI5
YjEwYTNjMTg3YTcyZWFlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDIwLTAxLTA2ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBJbXBsZW1lbnQgTWVkaWFSZWNvcmRlciBiYWNrZW5kIGluIEdQVVByb2Nlc3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTgwMgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9X
ZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhG
cmFtZU5hbWU6Z3JvdXBOYW1lOl0pOgorICAgICAgICAoLVtXZWJWaWV3IGluaXRTaW1wbGVIVE1M
RG9jdW1lbnRXaXRoU3R5bGU6ZnJhbWU6cHJlZmVyZW5jZXM6Z3JvdXBOYW1lOl0pOgorCiAyMDIw
LTAxLTA2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBDb252ZXJ0
IEFTU0VSVF9ESVNBQkxFRCB0byBBU1NFUlRfRU5BQkxFRCwgYW5kIGZpeCBzb21lIHRlc3RzIG9m
IE5ERUJVRyB0aGF0IHNob3VsZCBhY3R1YWxseSB0ZXN0IGZvciBBU1NFUlRfRU5BQkxFRC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCmluZGV4IDQ2NjE5YzY1ZDZiM2MzZDgxZmY0YzJlNTAwNTIxNmFhNDk2MmVj
MTQuLmRmYjc2NjgzYjhmNWJjNmU2NDlhYjM1OGJhNTEyNjQ5OTU3Zjk5MGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQpAQCAtODAsNiArODAsOSBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19I
RUFERVJTCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlJlc3VsdERhdGEuaAogICAg
IE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJUcmFuc2FjdGlvbkluZm8uaAogCisgICAgTW9k
dWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKKyAgICBNb2R1bGVzL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgKKwogICAgIE1vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbkV2ZW50cy5oCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFTZXNzaW9uTWV0YWRhdGEuaAogICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vz
c2lvbk1hbmFnZXIuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXIuY3BwCmluZGV4IDk5MWVhMmEwZjNkMjI0NGRmMWU4ZWUyN2Y3
OTA4NmQzZWM0M2Q2ZjAuLmFkZjM1MDQ4ODdhMjM3MTc3YTRkOWQ2ZmFhOWM3ZjNhMzEzMmQyMjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJl
Y29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlci5jcHAKQEAgLTM0LDYgKzM0LDggQEAKICNpbmNsdWRlICJFdmVudE5hbWVzLmgi
CiAjaW5jbHVkZSAiTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaCIKICNpbmNsdWRlICJNZWRpYVJl
Y29yZGVyUHJpdmF0ZS5oIgorI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92aWRlci5oIgorI2lu
Y2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJXaW5k
b3dFdmVudExvb3AuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgpAQCAtNTAs
NyArNTIsNyBAQCBjcmVhdG9yRnVuY3Rpb24gTWVkaWFSZWNvcmRlcjo6bV9jdXN0b21DcmVhdG9y
ID0gbnVsbHB0cjsKIAogRXhjZXB0aW9uT3I8UmVmPE1lZGlhUmVjb3JkZXI+PiBNZWRpYVJlY29y
ZGVyOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8TWVkaWFTdHJlYW0+JiYgc3RyZWFt
LCBPcHRpb25zJiYgb3B0aW9ucykKIHsKLSAgICBhdXRvIHByaXZhdGVJbnN0YW5jZSA9IE1lZGlh
UmVjb3JkZXI6OmdldFByaXZhdGVJbXBsKHN0cmVhbS0+cHJpdmF0ZVN0cmVhbSgpKTsKKyAgICBh
dXRvIHByaXZhdGVJbnN0YW5jZSA9IE1lZGlhUmVjb3JkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQ
cml2YXRlKGRvY3VtZW50LCBzdHJlYW0tPnByaXZhdGVTdHJlYW0oKSk7CiAgICAgaWYgKCFwcml2
YXRlSW5zdGFuY2UpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJv
ciwgIlRoZSBNZWRpYVJlY29yZGVyIGlzIHVuc3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm0iX3Mg
fTsKICAgICBhdXRvIHJlY29yZGVyID0gYWRvcHRSZWYoKm5ldyBNZWRpYVJlY29yZGVyKGRvY3Vt
ZW50LCBXVEZNb3ZlKHN0cmVhbSksIFdURk1vdmUocHJpdmF0ZUluc3RhbmNlKSwgV1RGTW92ZShv
cHRpb25zKSkpOwpAQCAtNjMsMTcgKzY1LDE2IEBAIHZvaWQgTWVkaWFSZWNvcmRlcjo6c2V0Q3Vz
dG9tUHJpdmF0ZVJlY29yZGVyQ3JlYXRvcihjcmVhdG9yRnVuY3Rpb24gY3JlYXRvcikKICAgICBt
X2N1c3RvbUNyZWF0b3IgPSBjcmVhdG9yOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNv
cmRlclByaXZhdGU+IE1lZGlhUmVjb3JkZXI6OmdldFByaXZhdGVJbXBsKGNvbnN0IE1lZGlhU3Ry
ZWFtUHJpdmF0ZSYgc3RyZWFtKQorc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRl
PiBNZWRpYVJlY29yZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShEb2N1bWVudCYgZG9j
dW1lbnQsIGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQogewogICAgIGlmIChtX2N1
c3RvbUNyZWF0b3IpCiAgICAgICAgIHJldHVybiBtX2N1c3RvbUNyZWF0b3IoKTsKICAgICAKLSNp
ZiBQTEFURk9STShDT0NPQSkKLSAgICByZXR1cm4gTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBs
OjpjcmVhdGUoc3RyZWFtKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHN0cmVhbSk7Ci0gICAg
cmV0dXJuIG51bGxwdHI7Ci0jZW5kaWYKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgp
OworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4g
cGFnZS0+bWVkaWFSZWNvcmRlclByb3ZpZGVyKCkuY3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUo
c3RyZWFtKTsKIH0KIAogTWVkaWFSZWNvcmRlcjo6TWVkaWFSZWNvcmRlcihEb2N1bWVudCYgZG9j
dW1lbnQsIFJlZjxNZWRpYVN0cmVhbT4mJiBzdHJlYW0sIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJl
Y29yZGVyUHJpdmF0ZT4mJiBwcml2YXRlSW1wbCwgT3B0aW9ucyYmIG9wdGlvbikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCmlu
ZGV4IGViNmY5NmE2YWUwYTM5YmExMGI1MjBiYjk4Y2M0ZWUxYjUzOTM3NDQuLjA2Mzk1MmE5Njdk
YWMyMmEyNzRmNTQ3YWU0Y2JjYWUyY2U2ZGFkMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaApAQCAtNzUsNyArNzUsNyBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIE1lZGlhUmVjb3JkZXIoRG9jdW1lbnQmLCBSZWY8TWVk
aWFTdHJlYW0+JiYsIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4mJiwgT3B0
aW9ucyYmID0geyB9KTsKIAotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRl
clByaXZhdGU+IGdldFByaXZhdGVJbXBsKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYpOworICAg
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlh
UmVjb3JkZXJQcml2YXRlKERvY3VtZW50JiwgY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJik7CiAg
ICAgCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92
aWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjY0ZmNjYzM2OGE2MTI3ZGY5OTFmYmZkM2RmYzFiZmYzMzkw
YWMwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNv
cmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByb3ZpZGVy
LmgiCisKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZS5oIgorCisjaWYgUExBVEZPUk0o
Q09DT0EpCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmgiCisjZW5kaWYK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK3N0ZDo6
dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gTWVkaWFSZWNvcmRlclByb3ZpZGVyOjpj
cmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVh
bSkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICByZXR1cm4gTWVkaWFSZWNvcmRlclByaXZh
dGVBVkZJbXBsOjpjcmVhdGUoc3RyZWFtKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHN0cmVh
bSk7CisgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKK30KKyNlbmRpZgorCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclBy
b3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNv
cmRlclByb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGE5M2FmNDg2NzY2ZDc1ZWE4NGI1ZjVlYjY5MjI0
MTkxNzEwZTA3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaApAQCAtMCwwICsxLDQ5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVk
aWFSZWNvcmRlclByaXZhdGU7CitjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7CisKK2NsYXNzIFdF
QkNPUkVfRVhQT1JUIE1lZGlhUmVjb3JkZXJQcm92aWRlciB7CisgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CitwdWJsaWM6CisgICAgTWVkaWFSZWNvcmRlclByb3ZpZGVyKCkgPSBkZWZhdWx0
OworICAgIHZpcnR1YWwgfk1lZGlhUmVjb3JkZXJQcm92aWRlcigpID0gZGVmYXVsdDsKKworI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFS
ZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IE1lZGlhU3Ry
ZWFtUHJpdmF0ZSYpOworI2VuZGlmCisKKyAgICB2b2lkIHNldFVzZUdQVVByb2Nlc3MoYm9vbCB2
YWx1ZSkgeyBtX3VzZUdQVVByb2Nlc3MgPSB2YWx1ZTsgfQorCitwcm90ZWN0ZWQ6CisgICAgYm9v
bCBtX3VzZUdQVVByb2Nlc3MgeyBmYWxzZSB9OworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBh
Y2FlNmZlMzhkZGUyNmMyOGNmNWQ0NDkxMWZjNWFjMzBiMjU4Njc0Li5lZGYxNDI0YmFmNmQ4YmZm
OTk4YjFjNTI4M2I3ZDA3NGU2ODg2Yzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTUxLDYgKzE1MSw3
IEBAIE1vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKIAogTW9kdWxl
cy9tZWRpYXJlY29yZGVyL0Jsb2JFdmVudC5jcHAKIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyLmNwcAorTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRl
ci5jcHAKIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyRXJyb3JFdmVudC5jcHAK
IAogTW9kdWxlcy9tZWRpYXNlc3Npb24vSFRNTE1lZGlhRWxlbWVudE1lZGlhU2Vzc2lvbi5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBkNGZiMGQzNjgyYmVjYjVkNDI4MGE3ZmZmMjZiY2I1ZGRhMDk2Mjg1Li4zZGQ5MTEyOGE0
N2Q5MzgwNDVjOGQ4NTZlZGVmOWU1ODk2MDQ0MWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTAxLDYgKzExMDEsNyBAQAog
CQk0MTc2MTJCMDFFM0E5OTQwMDBDM0Q4MUQgLyogTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3NjEyQUMxRTNB
OTkzQjAwQzNEODFEIC8qIExpYldlYlJUQ01lZGlhRW5kcG9pbnQuaCAqLzsgfTsKIAkJNDE3NjEy
QjExRTNBOTk0MDAwQzNEODFEIC8qIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc2MTJBRDFF
M0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCAqLzsg
fTsKIAkJNDE3NjEyQjIxRTNBOTk0MDAwQzNEODFEIC8qIExpYldlYlJUQ1BlZXJDb25uZWN0aW9u
QmFja2VuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDE3NjEyQUUxRTNBOTkzQjAwQzNEODFEIC8qIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5oICovOyB9OworCQk0MTc2RTg5NjIzQzM1MzdCMDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclBy
b3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTc2RTg4RjIzQzM0OEQyMDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE3REE2RDkxMzcz
NEU2RTAwN0M1N0ZCIC8qIEludGVybmFscy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MTdEQTRDRjEzNzM0MzI2MDA3QzU3RkIgLyogSW50ZXJuYWxz
LmNwcCAqLzsgfTsKIAkJNDE3REE2REExMzczNEU2RTAwN0M1N0ZCIC8qIEludGVybmFscy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3REE0Q0UxMzcz
NDMyNjAwN0M1N0ZCIC8qIEludGVybmFscy5oICovOyB9OwogCQk0MTdEQTcxRDEzNzM1REZBMDA3
QzU3RkIgLyogSlNJbnRlcm5hbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDE3REE3MUIxMzczNURGQTAwN0M1N0ZCIC8qIEpTSW50ZXJuYWxzLmNw
cCAqLzsgfTsKQEAgLTEzNzQsOSArMTM3NSw5IEBACiAJCTRCREVBMzJDMjE4MDMzRUIwMDUyREZD
RCAvKiBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCREVBMzJCMjE4MDMzRUIwMDUyREZDRCAvKiBKU1dvcmts
ZXRHbG9iYWxTY29wZUJhc2UuaCAqLzsgfTsKIAkJNEQzQjAwQUIyMTVENjlBNzAwNzZCOTgzIC8q
IE1lZGlhUmVjb3JkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDREM0IwMEE5MjE1RDY5QTcwMDc2Qjk4MyAvKiBNZWRpYVJlY29yZGVyLmggKi87IH07
CiAJCTREM0IwMEFGMjE1RDZBNjkwMDc2Qjk4MyAvKiBCbG9iRXZlbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREM0IwMEFEMjE1RDZBNjkwMDc2Qjk4
MyAvKiBCbG9iRXZlbnQuaCAqLzsgfTsKLQkJNEQzQjUwMTYyMTdFNThCNzAwNjY1REIxIC8qIE1l
ZGlhUmVjb3JkZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0RDNCNTAxNDIxN0U1OEI3MDA2NjVEQjEgLyogTWVkaWFSZWNvcmRlclByaXZh
dGUuaCAqLzsgfTsKKwkJNEQzQjUwMTYyMTdFNThCNzAwNjY1REIxIC8qIE1lZGlhUmVjb3JkZXJQ
cml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
RDNCNTAxNDIxN0U1OEI3MDA2NjVEQjEgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0RDczRjk0NjIxOEJD
NUZBMDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RDczRjk0NDIxOEJDNUZBMDAzQTNF
RDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmggKi87IH07Ci0JCTRENzNGOTRFMjE4
QzRBODcwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RDczRjk0QzIxOEM0QTg3
MDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oICovOyB9OworCQk0
RDczRjk0RTIxOEM0QTg3MDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2Nv
YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEQ3M0Y5
NEMyMThDNEE4NzAwM0EzRUQ2IC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0REI3MTMw
RDIxNkVDQjREMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREQjcxMzBDMjE2RUMyQkQwMDk2
QTRERCAvKiBNZWRpYVJlY29yZGVyRXJyb3JFdmVudC5oICovOyB9OwogCQk0RTE5NTkyMjBBMzlE
QUJBMDAyMjBGRTUgLyogTWVkaWFGZWF0dXJlTmFtZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRFMTk1OTIwMEEzOURBQkEwMDIyMEZFNSAvKiBNZWRp
YUZlYXR1cmVOYW1lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTRFMTk1OTJBMEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RTE5NTkyNDBBMzlEQUND
MDAyMjBGRTUgLyogTWVkaWFRdWVyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC03NDAwLDYgKzc0MDEsOCBAQAogCQk0MTc2MTJBRTFFM0E5OTNC
MDBDM0Q4MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5oOyBw
YXRoID0gbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc2OTAwMzIyRkNEOEYyMDBCMTU3NkQgLyogTWVkaWFT
b3VyY2VSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNv
dXJjZVJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzY5MDA0MjJG
Q0Q4RjIwMEIxNTc2RCAvKiBNZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU291cmNlUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0MTc2RTg4RjIzQzM0OEQyMDAzRTgzRkUgLyogTWVkaWFSZWNv
cmRlclByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUmVj
b3JkZXJQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc2RTg5MTIz
QzM0Qjc1MDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE1lZGlhUmVjb3JkZXJQcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxNzdGNTFDMjM4MjU0NDAwMEMwNDQ4NiAvKiBCYXNlQXVkaW9TaGFyZWRVbml0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VBdWRpb1NoYXJlZFVu
aXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc3RjUxRTIzODI1NDVFMDBD
MDQ0ODYgLyogQmFzZUF1ZGlvU2hhcmVkVW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBCYXNlQXVkaW9TaGFyZWRVbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxN0RBNENFMTM3MzQzMjYwMDdDNTdGQiAvKiBJbnRlcm5hbHMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSW50ZXJuYWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xODkzMyw2ICsxODkzNiw4IEBACiAJCQkJNERCNzEzMEUyMTZFRUJBRTAwOTZBNERE
IC8qIE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmNwcCAqLywKIAkJCQk0REI3MTMwQzIxNkVDMkJE
MDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaCAqLywKIAkJCQk0REI3MTMwQTIx
NkVDMkJDMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaWRsICovLAorCQkJCTQx
NzZFODkxMjNDMzRCNzUwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwICovLAor
CQkJCTQxNzZFODhGMjNDMzQ4RDIwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCAq
LywKIAkJCSk7CiAJCQlwYXRoID0gbWVkaWFyZWNvcmRlcjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CkBAIC0zMTQ3NSw2ICszMTQ4MCw3IEBACiAJCQkJNEQzQjUwMTYyMTdFNThCNzAwNjY1
REIxIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RDczRjk0
NjIxOEJDNUZBMDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0RDczRjk0RTIxOEM0QTg3MDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE3NkU4OTYyM0MzNTM3QjAw
M0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzkw
ODQzRDAxQjE4RTQ3RDAwQjY4NTY0IC8qIE1lZGlhUmVtb3RlQ29udHJvbHMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUNEOEFDQThGMUQyMzk3MTkwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5r
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRUVGQ0Q3QTE5REIzMUY3MDAzODc2RDcgLyogTWVkaWFS
ZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuY3BwCmluZGV4IDBlYjVhMTIwYWY4NzY1MzBjNWM2Y2Y3ZGFlMDA5OTIxZmEzNjQyOWEu
LjUzNGU1YzA1MGU0N2YwYTQ5ODJhNThjNzY3ZGZkZjBjNmVhNzE5NzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01Myw2ICs1Myw4IEBACiAjaW5jbHVkZSAiSURC
Q29ubmVjdGlvblRvU2VydmVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50LmgiCiAjaW5j
bHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0
ZS5oIgorI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92aWRlci5oIgogI2luY2x1ZGUgIk5ldHdv
cmtTdG9yYWdlU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlQ29u
ZmlndXJhdGlvbi5oIgpAQCAtNTcxLDEwICs1NzMsMTkgQEAgUmVmPFN0b3JhZ2VOYW1lc3BhY2U+
IEVtcHR5U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOjpjcmVhdGVUcmFuc2llbnRMb2NhbFN0b3Jh
Z2UKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbXB0eVN0b3JhZ2VOYW1lc3BhY2UgeyBzZXNz
aW9uSUQgfSk7CiB9CiAKLWNsYXNzIEVtcHR5U3RvcmFnZVNlc3Npb25Qcm92aWRlciA6IHB1Ymxp
YyBTdG9yYWdlU2Vzc2lvblByb3ZpZGVyIHsKK2NsYXNzIEVtcHR5U3RvcmFnZVNlc3Npb25Qcm92
aWRlciBmaW5hbCA6IHB1YmxpYyBTdG9yYWdlU2Vzc2lvblByb3ZpZGVyIHsKICAgICBOZXR3b3Jr
U3RvcmFnZVNlc3Npb24qIHN0b3JhZ2VTZXNzaW9uKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbnVs
bHB0cjsgfQogfTsKIAorY2xhc3MgRW1wdHlNZWRpYVJlY29yZGVyUHJvdmlkZXIgZmluYWwgOiBw
dWJsaWMgTWVkaWFSZWNvcmRlclByb3ZpZGVyIHsKK3B1YmxpYzoKKyAgICBFbXB0eU1lZGlhUmVj
b3JkZXJQcm92aWRlcigpID0gZGVmYXVsdDsKK3ByaXZhdGU6CisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1l
ZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYpIGZpbmFsIHsgcmV0
dXJuIG51bGxwdHI7IH0KKyNlbmRpZgorfTsKKwogUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZp
Z3VyYXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAg
ICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbiB7CkBAIC01ODUsNyArNTk2LDgg
QEAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb25XaXRoRW1wdHlDbGllbnRzKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAgICAgQ2FjaGVTdG9yYWdlUHJvdmlkZXI6OmNy
ZWF0ZSgpLAogICAgICAgICBhZG9wdFJlZigqbmV3IEVtcHR5QmFja0ZvcndhcmRDbGllbnQpLAog
ICAgICAgICBDb29raWVKYXI6OmNyZWF0ZShhZG9wdFJlZigqbmV3IEVtcHR5U3RvcmFnZVNlc3Np
b25Qcm92aWRlcikpLAotICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5UHJvZ3Jlc3NUcmFja2Vy
Q2xpZW50PigpCisgICAgICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlQcm9ncmVzc1RyYWNrZXJDbGll
bnQ+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlNZWRpYVJlY29yZGVyUHJvdmlkZXI+
KCkKICAgICB9OwogCiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEVtcHR5Q2hyb21lQ2xpZW50
PiBkdW1teUNocm9tZUNsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDYzYzA1MzQzNzk4ZDMx
MDJkODAzMmQzNTcxOTNjYzliYTkzNzY2MTkuLjAxMDI3OWZlZmM0NWY5ODZmMjgwNWJlNzdiZjNj
Y2RmNzFlNTFkYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMjQ2LDYgKzI0Niw3IEBAIFBhZ2U6
OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikKICNpZiBFTkFCTEUo
U1BFRUNIX1NZTlRIRVNJUykKICAgICAsIG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50KFdURk1vdmUo
cGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNoU3ludGhlc2lzQ2xpZW50KSkKICNlbmRpZgorICAgICwg
bV9tZWRpYVJlY29yZGVyUHJvdmlkZXIoKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24ubWVkaWFS
ZWNvcmRlclByb3ZpZGVyKSkpCiAgICAgLCBtX2xpYldlYlJUQ1Byb3ZpZGVyKFdURk1vdmUocGFn
ZUNvbmZpZ3VyYXRpb24ubGliV2ViUlRDUHJvdmlkZXIpKQogICAgICwgbV92ZXJ0aWNhbFNjcm9s
bEVsYXN0aWNpdHkoU2Nyb2xsRWxhc3RpY2l0eUFsbG93ZWQpCiAgICAgLCBtX2hvcml6b250YWxT
Y3JvbGxFbGFzdGljaXR5KFNjcm9sbEVsYXN0aWNpdHlBbGxvd2VkKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRl
eCAyYzNmN2MzNDMzODdmYjQ4YzJmNTVlM2VhNmU5NWMzZTlmNTQ3NjUwLi5lMWYyN2NmYzhjYzk3
NTkzY2FlMjU0ZDZlOGU2NTA3Y2FlNzBlMmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTEwLDYgKzEx
MCw3IEBAIGNsYXNzIExpYldlYlJUQ1Byb3ZpZGVyOwogY2xhc3MgTG93UG93ZXJNb2RlTm90aWZp
ZXI7CiBjbGFzcyBNZWRpYUNhblN0YXJ0TGlzdGVuZXI7CiBjbGFzcyBNZWRpYVBsYXliYWNrVGFy
Z2V0OworY2xhc3MgTWVkaWFSZWNvcmRlclByb3ZpZGVyOwogY2xhc3MgUGFnZUNvbmZpZ3VyYXRp
b247CiBjbGFzcyBQYWdlQ29uc29sZUNsaWVudDsKIGNsYXNzIFBhZ2VEZWJ1Z2dhYmxlOwpAQCAt
NTg0LDYgKzU4NSw3IEBAIHB1YmxpYzoKICAgICBEYXRhYmFzZVByb3ZpZGVyJiBkYXRhYmFzZVBy
b3ZpZGVyKCkgeyByZXR1cm4gbV9kYXRhYmFzZVByb3ZpZGVyOyB9CiAgICAgQ2FjaGVTdG9yYWdl
UHJvdmlkZXImIGNhY2hlU3RvcmFnZVByb3ZpZGVyKCkgeyByZXR1cm4gbV9jYWNoZVN0b3JhZ2VQ
cm92aWRlcjsgfQogICAgIFNvY2tldFByb3ZpZGVyJiBzb2NrZXRQcm92aWRlcigpIHsgcmV0dXJu
IG1fc29ja2V0UHJvdmlkZXI7IH0KKyAgICBNZWRpYVJlY29yZGVyUHJvdmlkZXImIG1lZGlhUmVj
b3JkZXJQcm92aWRlcigpIHsgcmV0dXJuIG1fbWVkaWFSZWNvcmRlclByb3ZpZGVyOyB9CiAgICAg
Q29va2llSmFyJiBjb29raWVKYXIoKSB7IHJldHVybiBtX2Nvb2tpZUphci5nZXQoKTsgfQogCiAg
ICAgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyJiBzdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIoKSB7
IHJldHVybiBtX3N0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5nZXQoKTsgfQpAQCAtNzk1LDYgKzc5
Nyw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFN5bnRoZXNpc0NsaWVu
dD4gbV9zcGVlY2hTeW50aGVzaXNDbGllbnQ7CiAjZW5kaWYKIAorICAgIFVuaXF1ZVJlZjxNZWRp
YVJlY29yZGVyUHJvdmlkZXI+IG1fbWVkaWFSZWNvcmRlclByb3ZpZGVyOwogICAgIFVuaXF1ZVJl
ZjxMaWJXZWJSVENQcm92aWRlcj4gbV9saWJXZWJSVENQcm92aWRlcjsKICAgICBSVENDb250cm9s
bGVyIG1fcnRjQ29udHJvbGxlcjsKIApAQCAtOTIwLDcgKzkyMyw2IEBAIHByaXZhdGU6CiAgICAg
UmVmPFVzZXJDb250ZW50UHJvdmlkZXI+IG1fdXNlckNvbnRlbnRQcm92aWRlcjsKICAgICBSZWY8
VmlzaXRlZExpbmtTdG9yZT4gbV92aXNpdGVkTGlua1N0b3JlOwogICAgIFJlZlB0cjxXaGVlbEV2
ZW50VGVzdE1vbml0b3I+IG1fd2hlZWxFdmVudFRlc3RNb25pdG9yOwotCiAgICAgSGFzaFNldDxB
Y3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIqPiBtX2FjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZl
cnM7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfVVNBR0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGVmODc3YTU1ODgyMWU0NDY3ZjQ1Y2EzYzA1MjFjYWYy
MmQ5MDdkZGUuLjMzOGY0ZTdjMTkxMjFhZjE3OTQyZDAxNzI0Y2UyOTExM2M1ZDNmMmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCkBAIC0zNiw2ICszNiw3IEBA
CiAjaW5jbHVkZSAiRHJhZ0NsaWVudC5oIgogI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgogI2lu
Y2x1ZGUgIkxpYldlYlJUQ1Byb3ZpZGVyLmgiCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByb3Zp
ZGVyLmgiCiAjaW5jbHVkZSAiUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAi
UGx1Z0luQ2xpZW50LmgiCiAjaW5jbHVkZSAiUGx1Z2luSW5mb1Byb3ZpZGVyLmgiCkBAIC01NSw3
ICs1Niw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFnZUNvbmZpZ3VyYXRpb246OlBh
Z2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRv
ckNsaWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiBzb2NrZXRQcm92
aWRlciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmIGxpYldlYlJUQ1Byb3ZpZGVyLCBS
ZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9yYWdlUHJvdmlkZXIsIFJlZjxCYWNr
Rm9yd2FyZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVudCwgUmVmPENvb2tpZUphcj4mJiBjb29r
aWVKYXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYgcHJvZ3Jlc3NUcmFja2Vy
Q2xpZW50KQorUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQsIFJl
ZjxTb2NrZXRQcm92aWRlcj4mJiBzb2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJUQ1By
b3ZpZGVyPiYmIGxpYldlYlJUQ1Byb3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYg
Y2FjaGVTdG9yYWdlUHJvdmlkZXIsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiBiYWNrRm9yd2Fy
ZENsaWVudCwgUmVmPENvb2tpZUphcj4mJiBjb29raWVKYXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1Ry
YWNrZXJDbGllbnQ+JiYgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50LCBVbmlxdWVSZWY8TWVkaWFSZWNv
cmRlclByb3ZpZGVyPiYmIG1lZGlhUmVjb3JkZXJQcm92aWRlcikKICAgICA6IHNlc3Npb25JRChz
ZXNzaW9uSUQpCiAgICAgLCBlZGl0b3JDbGllbnQoV1RGTW92ZShlZGl0b3JDbGllbnQpKQogICAg
ICwgc29ja2V0UHJvdmlkZXIoV1RGTW92ZShzb2NrZXRQcm92aWRlcikpCkBAIC02NCw2ICs2NSw3
IEBAIFBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDCiAgICAgLCBiYWNrRm9yd2FyZENsaWVudChXVEZN
b3ZlKGJhY2tGb3J3YXJkQ2xpZW50KSkKICAgICAsIGNvb2tpZUphcihXVEZNb3ZlKGNvb2tpZUph
cikpCiAgICAgLCBjYWNoZVN0b3JhZ2VQcm92aWRlcihXVEZNb3ZlKGNhY2hlU3RvcmFnZVByb3Zp
ZGVyKSkKKyAgICAsIG1lZGlhUmVjb3JkZXJQcm92aWRlcihXVEZNb3ZlKG1lZGlhUmVjb3JkZXJQ
cm92aWRlcikpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNv
bmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaApp
bmRleCAxOTFhMDJiNjE1ZjQwYTk4MGM0MjFmN2ZiZjNmMzE2ZDJiMTY0ZmVmLi4zYThlZDMzNDQw
YzJjMTg4NTI4MzE4OTE4YTc1MjJiOTIxN2Y0NzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
Q29uZmlndXJhdGlvbi5oCkBAIC01Miw2ICs1Miw3IEBAIGNsYXNzIEVkaXRvckNsaWVudDsKIGNs
YXNzIEZyYW1lTG9hZGVyQ2xpZW50OwogY2xhc3MgSW5zcGVjdG9yQ2xpZW50OwogY2xhc3MgTGli
V2ViUlRDUHJvdmlkZXI7CitjbGFzcyBNZWRpYVJlY29yZGVyUHJvdmlkZXI7CiBjbGFzcyBQYXlt
ZW50Q29vcmRpbmF0b3JDbGllbnQ7CiBjbGFzcyBQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQ7CiBj
bGFzcyBQbHVnSW5DbGllbnQ7CkBAIC02OCw3ICs2OSw3IEBAIGNsYXNzIFNwZWVjaFN5bnRoZXNp
c0NsaWVudDsKIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9uIHsKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShQYWdlQ29uZmlndXJhdGlvbik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgotICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklELCBV
bmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmLCBSZWY8U29ja2V0UHJvdmlkZXI+JiYsIFVuaXF1ZVJl
ZjxMaWJXZWJSVENQcm92aWRlcj4mJiwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmLCBSZWY8
QmFja0ZvcndhcmRDbGllbnQ+JiYsIFJlZjxDb29raWVKYXI+JiYsIFVuaXF1ZVJlZjxQcm9ncmVz
c1RyYWNrZXJDbGllbnQ+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2VDb25maWd1cmF0aW9u
KFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmLCBSZWY8U29ja2V0UHJv
dmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiwgUmVmPENhY2hlU3RvcmFn
ZVByb3ZpZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYsIFJlZjxDb29raWVKYXI+JiYs
IFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYsIFVuaXF1ZVJlZjxNZWRpYVJlY29y
ZGVyUHJvdmlkZXI+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIH5QYWdlQ29uZmlndXJhdGlvbigp
OwogICAgIFBhZ2VDb25maWd1cmF0aW9uKFBhZ2VDb25maWd1cmF0aW9uJiYpOwogCkBAIC0xMjMs
NiArMTI0LDcgQEAgcHVibGljOgogICAgIFJlZlB0cjxEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVBy
b3ZpZGVyPiBkZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyOwogI2VuZGlmCiAgICAgVmVj
dG9yPFN0cmluZz4gY29yc0Rpc2FibGluZ1BhdHRlcm5zOworICAgIFVuaXF1ZVJlZjxNZWRpYVJl
Y29yZGVyUHJvdmlkZXI+IG1lZGlhUmVjb3JkZXJQcm92aWRlcjsKIH07CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXJDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFy
ZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmgKaW5kZXggZmZm
NDVkNjM5MzhkYjMzOGI0NzI0YjdhNzQ2Y2UzNzI0ZmExZDNhYi4uNTE5NzhiYjZkOGQxYTFiMGU1
YzFjN2EwMTUxMjIyYmQ4YmRmYjJhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmgKQEAgLTQ5LDkgKzQ5LDEwIEBAIGNsYXNzIEF1ZGlv
U3RyZWFtRGVzY3JpcHRpb247CiBjbGFzcyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTsKIGNsYXNz
IFBsYXRmb3JtQXVkaW9EYXRhOwogCi1jbGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciA6
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciwg
V1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRp
YVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4geworY2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8TWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXIsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW4+LCBwdWJsaWMg
Q2FuTWFrZVdlYWtQdHI8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgUmVmUHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiBjcmVhdGUoY29uc3Qg
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIGF1ZGlvVHJhY2ssIGNvbnN0IE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlKiB2aWRlb1RyYWNrKTsKKyAgICBzdGF0aWMgUmVmUHRyPE1lZGlhUmVjb3JkZXJQ
cml2YXRlV3JpdGVyPiBjcmVhdGUoYm9vbCBoYXNBdWRpbywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0
KTsKICAgICB+TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIoKTsKICAgICAKICAgICBib29sIHNl
dHVwV3JpdGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJl
Y29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyQ29jb2EubW0KaW5kZXggOTJmZTJhNDUwZTU5M2YyNGE5NjhmYWVmMGE2Yjk2Zjk1YWRl
MzUxMy4uMDY5Yzg4NzRmMDA5ZTA5NmMyNDlhMDc4MDE5MGRkODA0OGM2YjliZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQpAQCAt
OTAsNiArOTAsMTcgQEAgc3RhdGljIE5TU3RyaW5nICpnZXRBVkVuY29kZXJCaXRSYXRlS2V5V2l0
aEZhbGxiYWNrKCkKIH0KIAogUmVmUHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiBNZWRp
YVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y3JlYXRlKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlKiBhdWRpb1RyYWNrLCBjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogdmlkZW9UcmFj
aykKK3sKKyAgICBpbnQgd2lkdGggPSAwLCBoZWlnaHQgPSAwOworICAgIGlmICh2aWRlb1RyYWNr
KSB7CisgICAgICAgIGF1dG8mIHNldHRpbmdzID0gdmlkZW9UcmFjay0+c2V0dGluZ3MoKTsKKyAg
ICAgICAgd2lkdGggPSBzZXR0aW5ncy53aWR0aCgpOworICAgICAgICBoZWlnaHQgPSBzZXR0aW5n
cy5oZWlnaHQoKTsKKyAgICB9CisgICAgcmV0dXJuIGNyZWF0ZSghIWF1ZGlvVHJhY2ssIHdpZHRo
LCBoZWlnaHQpOworfQorCitSZWZQdHI8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IE1lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjcmVhdGUoYm9vbCBoYXNBdWRpbywgaW50IHdpZHRoLCBp
bnQgaGVpZ2h0KQogewogICAgIE5TU3RyaW5nICpkaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVh
dGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJ2aWRlb3MiKTsKICAgICBOU1N0cmluZyAqZmlsZW5hbWUg
PSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIi8lbGxkLm1wNCIsIENNQ2xvY2tHZXRUaW1l
KENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpLnZhbHVlXTsKQEAgLTEwNiwxMiArMTE3LDExIEBA
IFJlZlB0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXI6OmNyZWF0ZShjb25zdCBNZWRpCiAKICAgICBhdXRvIHdyaXRlciA9IGFkb3B0UmVmKCpu
ZXcgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIoV1RGTW92ZShhdkFzc2V0V3JpdGVyKSwgV1RG
TW92ZShmaWxlUGF0aCkpKTsKIAotICAgIGlmIChhdWRpb1RyYWNrICYmICF3cml0ZXItPnNldEF1
ZGlvSW5wdXQoKSkKKyAgICBpZiAoaGFzQXVkaW8gJiYgIXdyaXRlci0+c2V0QXVkaW9JbnB1dCgp
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGlmICh2aWRlb1RyYWNrKSB7Ci0gICAg
ICAgIGF1dG8mIHNldHRpbmdzID0gdmlkZW9UcmFjay0+c2V0dGluZ3MoKTsKLSAgICAgICAgaWYg
KCF3cml0ZXItPnNldFZpZGVvSW5wdXQoc2V0dGluZ3Mud2lkdGgoKSwgc2V0dGluZ3MuaGVpZ2h0
KCkpKQorICAgIGlmICh3aWR0aCAmJiBoZWlnaHQpIHsKKyAgICAgICAgaWYgKCF3cml0ZXItPnNl
dFZpZGVvSW5wdXQod2lkdGgsIGhlaWdodCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKaW5kZXggNGEwNjg0NDM4Y2U2NjVkN2NkMDRkYTEwZWEx
MWE1YmMyYjZmMjlmNS4uZGU0NGQ4OGVmNWI5YzM4MTQwNDRlMDVmN2MyOGJlZTE4YTcyZWQwMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1Qcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1Qcml2YXRlLmgKQEAgLTgxLDcgKzgxLDcgQEAgcHVibGljOgogCiAgICAgU3RyaW5n
IGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQogCi0gICAgTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGVWZWN0b3IgdHJhY2tzKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGVWZWN0b3IgdHJhY2tzKCkgY29uc3Q7CiAgICAgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUqIGFjdGl2ZVZpZGVvVHJhY2soKSB7IHJldHVybiBtX2FjdGl2ZVZpZGVvVHJhY2s7IH0K
IAogICAgIGJvb2wgYWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9pc0FjdGl2ZTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmgKaW5kZXggMzkxYTY1M2Y0OGUzZTdlMzJhNDgyYzc3OTdjN2RjNzcx
MzE1MDI1Yi4uMDA3MTZmZDBhNDU2MTRkZTZjZDhhYmFkZTA1OTBmMmJmMTBjMDI2ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZS5oCkBAIC0xMDAsNyArMTAwLDcgQEAgcHVibGljOgogICAgIFJl
ZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gY2xvbmUoKTsKIAogICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2UmIHNvdXJjZSgpIHsgcmV0dXJuIG1fc291cmNlLmdldCgpOyB9Ci0gICAgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZSB0eXBlKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlKCkgY29uc3Q7CiAKICAgICB2b2lkIGVuZFRyYWNrKCk7
CiAKQEAgLTExMCw3ICsxMTAsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNPYnNlcnZlcihPYnNl
cnZlciYpIGNvbnN0OwogI2VuZGlmCiAKLSAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3MmIHNldHRpbmdzKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgUmVhbHRp
bWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0OwogICAgIGNvbnN0IFJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGNvbnN0OwogCiAgICAg
dm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IE1lZGlhQ29uc3RyYWludHMmLCBSZWFsdGltZU1l
ZGlhU291cmNlOjpBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcAppbmRleCBiYTk0MThjNTBjNzlmMDM4OTVlMzdiYzdiMzc3ZmFhOTNiNTU3
M2I2Li42OGFiNDIzODc2YTY1MDllNWRiZTIwZjAxNjJmNDI3ZmUwOTA0YzUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xMjIsNiArMTIyLDcgQEAKICNpbmNsdWRlICJN
ZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIu
aCIKICNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclBy
b3ZpZGVyLmgiCiAjaW5jbHVkZSAiTWVkaWFSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIk1l
ZGlhU3RyZWFtVHJhY2suaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgpAQCAtNTUwLDYgKzU1
MSw4IEBAIHZvaWQgSW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKFBhZ2UmIHBhZ2Up
CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYXJlZEZlYXR1cmVzKCkuc2V0SW50ZXJydXB0QXVkaW9PblBhZ2VWaXNpYmlsaXR5Q2hhbmdl
RW5hYmxlZChmYWxzZSk7CisgICAgV2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6c2V0Q3VzdG9tUHJp
dmF0ZVJlY29yZGVyQ3JlYXRvcihudWxscHRyKTsKKyAgICBwYWdlLm1lZGlhUmVjb3JkZXJQcm92
aWRlcigpLnNldFVzZUdQVVByb2Nlc3ModHJ1ZSk7CiAjZW5kaWYKIAogICAgIEhUTUxDYW52YXNF
bGVtZW50OjpzZXRNYXhQaXhlbE1lbW9yeUZvclRlc3RpbmcoMCk7IC8vIFRoaXMgbWVhbnMgdXNl
IHRoZSBkZWZhdWx0IHZhbHVlLgpAQCAtMTU1OCw3ICsxNTYxLDkgQEAgdm9pZCBJbnRlcm5hbHM6
OnNldFVzZUdQVVByb2Nlc3NGb3JXZWJSVEMoYm9vbCB1c2VHUFVQcm9jZXNzKQogICAgIGF1dG8q
IGRvY3VtZW50ID0gY29udGV4dERvY3VtZW50KCk7CiAgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9j
dW1lbnQtPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuOworCiAgICAgZG9jdW1lbnQtPnBhZ2UoKS0+
bGliV2ViUlRDUHJvdmlkZXIoKS5zZXRVc2VHUFVQcm9jZXNzKHVzZUdQVVByb2Nlc3MpOworICAg
IGRvY3VtZW50LT5wYWdlKCktPm1lZGlhUmVjb3JkZXJQcm92aWRlcigpLnNldFVzZUdQVVByb2Nl
c3ModXNlR1BVUHJvY2Vzcyk7CiAjZW5kaWYKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDc5OTRlM2NhNzc3NjMyOWQ2Zjc1
ZDdhYWYwYzkzZmQ5YWEwNTllMTAuLmI5ODgwYmMwYWNmNmY2MWMwMmIzYjM3ZDJjNGNiZWViYTEw
MjA4MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3QKQEAgLTE5LDYgKzE5LDggQEAgJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tYWMvY29tLmFw
cGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2Vz
LmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94
eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVk
aWFSZWNvcmRlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlTWVkaWFSZWNvcmRlcnMubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQ
cm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFu
YWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERC
L1dlYklEQlNlcnZlci5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggMGNkMjNlMDFiYmFjZDJlYzRhMGJkYzNiZGZmMmJl
MGQ3YjYwYjAxYi4uZDcyMDYyM2FiYWNhZGRlOTdjNWYzNWMyNzMyZjU4ZGY5Yjk2MjcwNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAor
KysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0x
MjksNiArMTI5LDEyIEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlck1lc3NhZ2VzUmVwCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHlNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2VSZWNlaXZlci5jcHAK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlh
UmVjb3JkZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVjb3JkZXJzTWVz
c2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlTWVkaWFSZWNvcmRlcnNNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlY29yZGVyc01lc3NhZ2VzUmVw
bGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy5tYWtlCmluZGV4IDlkM2UyYTkwYzdiNGQ5MGE0MjZjNzZhNGUwNWU2YjJmODFjYzBl
OWUuLmE1Njg2MDFiNzdiMWRiZDdmZmQ2MzZkZTdiNjM0YjFmZTJiMTI4ZDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE0Myw2ICsxNDMsOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9
IFwKICAgICBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5IFwKICAgICBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXIgXAogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5IFwKKyAg
ICBSZW1vdGVNZWRpYVJlY29yZGVyIFwKKyAgICBSZW1vdGVNZWRpYVJlY29yZGVycyBcCiAgICAg
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIgXAogICAgIFJlbW90ZU9iamVjdFJlZ2lzdHJ5IFwK
ICAgICBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvciBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNTJhOTVj
ZTBkZWQ3MDNkNjFkMzRhOWQxN2YwYzhiNDJlNjY0ZmRkYS4uN2Y2NjMzYTdkNzk4YTE1NDY0NmUy
OTliNjk4MWQ5MjUzYjJjYzc3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMzksNiArMzksOSBAQAogI2lu
Y2x1ZGUgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVj
b3JkZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVjb3JkZXJzLmgiCisjaW5j
bHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlcnNNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNh
Y3Rpb24uaCIKQEAgLTEzNyw5ICsxNDAsNyBAQCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
JiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp1c2VyTWVkaWFDYXB0dXJlTWFuYWdlcgogCiAg
ICAgcmV0dXJuICptX3VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7CiB9Ci0jZW5kaWYKIAot
I2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQogTGliV2ViUlRDQ29kZWNzUHJv
eHkmIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxpYldlYlJUQ0NvZGVjc1Byb3h5KCkKIHsK
ICAgICBpZiAoIW1fbGliV2ViUlRDQ29kZWNzUHJveHkpCkBAIC0xNDksNiArMTUwLDE2IEBAIExp
YldlYlJUQ0NvZGVjc1Byb3h5JiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsaWJXZWJSVEND
b2RlY3NQcm94eSgpCiB9CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElC
V0VCUlRDKQorUmVtb3RlTWVkaWFSZWNvcmRlcnMmIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
Om1lZGlhUmVjb3JkZXJzKCkKK3sKKyAgICBpZiAoIW1fcmVtb3RlTWVkaWFSZWNvcmRlcnMpCisg
ICAgICAgIG1fcmVtb3RlTWVkaWFSZWNvcmRlcnMgPSBtYWtlVW5pcXVlPFJlbW90ZU1lZGlhUmVj
b3JkZXJzPigqdGhpcyk7CisKKyAgICByZXR1cm4gKm1fcmVtb3RlTWVkaWFSZWNvcmRlcnM7Cit9
CisjZW5kaWYKKwogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikK
IHsKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKQEAg
LTE2Myw2ICsxNzQsMTQgQEAgdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIEkKICAgICAgICAgdXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpLmRpZFJlY2VpdmVNZXNzYWdlRnJvbUdQVVByb2Nlc3Mo
Y29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgaWYgKGRl
Y29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29y
ZGVyczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIG1lZGlhUmVjb3JkZXJzKCku
ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1l
KCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSkgeworICAgICAgICBtZWRpYVJlY29yZGVycygpLmRpZFJlY2VpdmVSZW1vdGVNZWRpYVJlY29y
ZGVyTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
ICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQogICAgIGlmIChk
ZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNz
UHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggYWM3MTI1ZDczOGQ4
Njg4OGVlYThiNGE5MjUxNWY5ZGU0ZDFmNmIwNC4uODljNGNhMWMyMjJmYTVjOWE1NGZhNmMwNTZk
YTk4MjNiYjU2ZWQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC00MSw4ICs0MSw5IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogY2xhc3MgR1BVUHJvY2VzczsKIGNsYXNzIExpYldlYlJUQ0NvZGVjc1Byb3h5OwogY2xh
c3MgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk7Ci1jbGFzcyBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5OworY2xhc3MgUmVtb3RlTWVkaWFSZWNvcmRlcnM7CiBjbGFzcyBSZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlcjsKK2NsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7
CiAKIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MKICAgICA6IHB1YmxpYyBSZWZDb3Vu
dGVkPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+CkBAIC03MSw2ICs3Miw3IEBAIHByaXZhdGU6
CiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAg
ICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5JiB1c2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5KCk7CisgICAgUmVtb3RlTWVkaWFSZWNvcmRlcnMmIG1lZGlhUmVjb3JkZXJzKCk7CiAjZW5k
aWYKIAogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CkBAIC04OSw2ICs5MSw3IEBAIHBy
aXZhdGU6CiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAjaWYgUExBVEZPUk0oQ09D
T0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgc3RkOjp1bmlxdWVfcHRyPFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHk+IG1fdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFSZWNvcmRlcnM+IG1fcmVtb3RlTWVkaWFSZWNv
cmRlcnM7CiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDQ29kZWNzUHJveHk+IG1fbGliV2ViUlRDQ29kZWNz
UHJveHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWFjL2NvbS5hcHBs
ZS5XZWJLaXQuR1BVUHJvY2Vzcy5zYi5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tYWMv
Y29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluCmluZGV4IGQ2MzJiZWViY2IzNWQ3NGUz
OGUwY2IxODYxYjdmMDU3YTVmMzZkOTQuLjliNzQxMmJiNGRhNmNlZjJmNzJiMjdmNWE0MWZkZWRh
NzE2OTgwNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tYWMvY29tLmFw
cGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluCkBAIC04MzYsMyArODM2LDcg
QEAKICAgICAgICAgKGlva2l0LXVzZXItY2xpZW50LWNsYXNzICJJT1VTQkludGVyZmFjZVVzZXJD
bGllbnRWMiIpKQogICAgIChhbGxvdyBkZXZpY2UtY2FtZXJhKSkKICNlbmRpZiAvLyBQTEFURk9S
TShNQUMpCisKKyhhbGxvdyBmaWxlLXJlYWQqIGZpbGUtd3JpdGUqIChzdWJwYXRoIChwYXJhbSAi
REFSV0lOX1VTRVJfQ0FDSEVfRElSIikpKQorCisoYWxsb3cgZmlsZS1yZWFkKiBmaWxlLXdyaXRl
KiAoc3VicGF0aCAocGFyYW0gIkRBUldJTl9VU0VSX1RFTVBfRElSIikpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZmYwNzY4MzZjZWJlZWFhYTE0NjViODYyYzRhZTYwN2U0NDM3NmIyYwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVk
aWFSZWNvcmRlci5jcHAKQEAgLTAsMCArMSwxMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlci5oIgorCisjaWYgUExBVEZP
Uk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1JlbW90ZVZpZGVvU2FtcGxlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxp
c3QuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRp
YVJlY29yZGVyPiBSZW1vdGVNZWRpYVJlY29yZGVyOjpjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyYgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgTWVkaWFSZWNvcmRlcklkZW50aWZp
ZXIgaWRlbnRpZmllciwgYm9vbCByZWNvcmRBdWRpbywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQor
eworICAgIGF1dG8gd3JpdGVyID0gTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNyZWF0ZShy
ZWNvcmRBdWRpbywgd2lkdGgsIGhlaWdodCk7CisgICAgaWYgKCF3cml0ZXIpCisgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFSZWNv
cmRlcj4obmV3IFJlbW90ZU1lZGlhUmVjb3JkZXIgeyBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LCBpZGVudGlmaWVyLCB3cml0ZXIucmVsZWFzZU5vbk51bGwoKSwgcmVjb3JkQXVkaW8gfSk7Cit9
CisKK1JlbW90ZU1lZGlhUmVjb3JkZXI6OlJlbW90ZU1lZGlhUmVjb3JkZXIoR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgTWVkaWFSZWNvcmRlcklk
ZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiYmIHdy
aXRlciwgYm9vbCByZWNvcmRBdWRpbykKKyAgICA6IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vz
cyhncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZp
ZXIpCisgICAgLCBtX3dyaXRlcihXVEZNb3ZlKHdyaXRlcikpCit7CisgICAgaWYgKHJlY29yZEF1
ZGlvKQorICAgICAgICBtX3JpbmdCdWZmZXIgPSBtYWtlVW5pcXVlPENBUmluZ0J1ZmZlcj4obWFr
ZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4obnVsbHB0cikpOworfQorCitSZW1v
dGVNZWRpYVJlY29yZGVyOjp+UmVtb3RlTWVkaWFSZWNvcmRlcigpCit7Cit9CisKK1NoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlJiBSZW1vdGVNZWRpYVJlY29yZGVyOjpzdG9yYWdlKCkKK3sKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXIt
PnN0b3JhZ2UoKSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZWNvcmRlcjo6YXVkaW9TYW1wbGVz
U3RvcmFnZUNoYW5nZWQoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhhbmRsZSwgY29uc3Qg
V2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgdWludDY0X3Qg
bnVtYmVyT2ZGcmFtZXMpCit7CisgICAgQVNTRVJUKG1fcmluZ0J1ZmZlcik7CisgICAgaWYgKCFt
X3JpbmdCdWZmZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZGVzY3JpcHRpb24gPSBkZXNj
cmlwdGlvbjsKKworICAgIGlmIChoYW5kbGUuaXNOdWxsKCkpIHsKKyAgICAgICAgbV9yaW5nQnVm
ZmVyLT5kZWFsbG9jYXRlKCk7CisgICAgICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25seShmYWxzZSk7
CisgICAgICAgIHN0b3JhZ2UoKS5zZXRTdG9yYWdlKG51bGxwdHIpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbWVtb3J5ID0gU2hhcmVkTWVtb3J5
OjptYXAoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICBz
dG9yYWdlKCkuc2V0U3RvcmFnZShXVEZNb3ZlKG1lbW9yeSkpOworICAgIHN0b3JhZ2UoKS5zZXRS
ZWFkT25seSh0cnVlKTsKKworICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUoZGVzY3JpcHRpb24s
IG51bWJlck9mRnJhbWVzKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyOjphdWRpb1Nh
bXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1
aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKK3sKKyAgICBBU1NFUlQobV9y
aW5nQnVmZmVyKTsKKyAgICBpZiAoIW1fcmluZ0J1ZmZlcikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9yaW5nQnVmZmVyLT5zZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJh
bWUpOworCisgICAgV2ViQXVkaW9CdWZmZXJMaXN0IGF1ZGlvRGF0YShtX2Rlc2NyaXB0aW9uLCBu
dW1iZXJPZkZyYW1lcyk7CisgICAgbV9yaW5nQnVmZmVyLT5mZXRjaChhdWRpb0RhdGEubGlzdCgp
LCBudW1iZXJPZkZyYW1lcywgdGltZS50aW1lVmFsdWUoKSk7CisKKyAgICBtX3dyaXRlci0+YXBw
ZW5kQXVkaW9TYW1wbGVCdWZmZXIoYXVkaW9EYXRhLCBtX2Rlc2NyaXB0aW9uLCB0aW1lLCBudW1i
ZXJPZkZyYW1lcyk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZWNvcmRlcjo6dmlkZW9TYW1wbGVB
dmFpbGFibGUoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUmJiByZW1vdGVTYW1wbGUpCit7Cisg
ICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9uIHx8IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24t
PnBpeGVsRm9ybWF0KCkgIT0gcmVtb3RlU2FtcGxlLnZpZGVvRm9ybWF0KCkpCisgICAgICAgIG1f
aW1hZ2VUcmFuc2ZlclNlc3Npb24gPSBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGUocmVt
b3RlU2FtcGxlLnZpZGVvRm9ybWF0KCkpOworCisgICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNz
aW9uKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgYXV0byBzYW1wbGVCdWZmZXIgPSBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5j
cmVhdGVNZWRpYVNhbXBsZShyZW1vdGVTYW1wbGUuc3VyZmFjZSgpLCByZW1vdGVTYW1wbGUudGlt
ZSgpLCByZW1vdGVTYW1wbGUuc2l6ZSgpKTsKKyAgICBpZiAoIXNhbXBsZUJ1ZmZlcikgeworICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IG1fd3JpdGVyLT5hcHBlbmRWaWRlb1NhbXBsZUJ1ZmZlcihzYW1wbGVCdWZmZXItPnBsYXRmb3Jt
U2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJl
Y29yZGVyOjpmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OkRhdGFSZWZlcmVu
Y2UmJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gbXA0TWltZVR5cGUoTUFLRV9T
VEFUSUNfU1RSSU5HX0lNUEwoInZpZGVvL21wNCIpKTsKKyAgICBtX3dyaXRlci0+ZmV0Y2hEYXRh
KFsmbXA0TWltZVR5cGUgPSBtcDRNaW1lVHlwZS5nZXQoKSwgY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byYmIGRhdGEpIG11dGFibGUgeworICAgICAg
ICBhdXRvKiBwb2ludGVyID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oZGF0YSA/
IGRhdGEtPmRhdGEoKSA6IG51bGxwdHIpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihJUEM6
OkRhdGFSZWZlcmVuY2UgeyBwb2ludGVyLCBkYXRhID8gZGF0YS0+c2l6ZSgpIDogMCB9LCBtcDRN
aW1lVHlwZSk7CisgICAgfSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZWNvcmRlcjo6c3RvcFJl
Y29yZGluZygpCit7CisgICAgbV93cml0ZXItPnN0b3BSZWNvcmRpbmcoKTsKK30KKworfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
TWVkaWFSZWNvcmRlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVN
ZWRpYVJlY29yZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRhOGQxNzU1YzU5NTMwYzIzMTM2YjQ3N2I5YThh
MDg1NDQxNGY1NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93
ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5oCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVySWRlbnRpZmllci5oIgorI2luY2x1ZGUgIk1l
c3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRp
YVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmg+CisjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5o
PgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247CitjbGFzcyBEYXRhUmVmZXJl
bmNlOworY2xhc3MgRGVjb2RlcjsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ0FS
aW5nQnVmZmVyOworY2xhc3MgSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDsKK2NsYXNzIFJlbW90ZVZp
ZGVvU2FtcGxlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzczsKK2NsYXNzIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOworCitjbGFzcyBS
ZW1vdGVNZWRpYVJlY29yZGVyIDogcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxSZW1vdGVNZWRpYVJlY29yZGVyPiBjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYsIE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLCBib29sIHJlY29yZEF1ZGlvLCBpbnQgd2lkdGgs
IGludCBoZWlnaHQpOworICAgIH5SZW1vdGVNZWRpYVJlY29yZGVyKCk7CisKKyAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwor
Citwcml2YXRlOgorICAgIFJlbW90ZU1lZGlhUmVjb3JkZXIoR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYsIE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6TWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXI+JiYsIGJvb2wgcmVjb3JkQXVkaW8pOworCisgICAgLy8gSVBDOjpNZXNz
YWdlUmVjZWl2ZXIKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkKGNvbnN0IFNo
YXJlZE1lbW9yeTo6SGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZh
aWxhYmxlKE1lZGlhVGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0
RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKKyAgICB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxl
KFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlJiYpOworICAgIHZvaWQgZmV0Y2hEYXRhKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoSVBDOjpEYXRhUmVmZXJlbmNlJiYsIGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUpPiYmKTsKKyAgICB2b2lkIHN0b3BSZWNvcmRpbmcoKTsKKworICAgIFNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlJiBzdG9yYWdlKCk7CisKKyAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
JiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CisgICAgTWVkaWFSZWNvcmRlcklkZW50aWZp
ZXIgbV9pZGVudGlmaWVyOworICAgIFJlZjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlcj4gbV93cml0ZXI7CisKKyAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24g
bV9kZXNjcmlwdGlvbjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q0FSaW5nQnVmZmVy
PiBtX3JpbmdCdWZmZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlVHJhbnNm
ZXJTZXNzaW9uVlQ+IG1faW1hZ2VUcmFuc2ZlclNlc3Npb247Cit9OworCit9CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJl
Y29yZGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxNGVkYzUzNjEwMjNlZGM3
ODI3ODBjNGQ0NmU5ZDE1Yjk0ODEzOWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4KQEAgLTAs
MCArMSwzNCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisj
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIFBM
QVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90
ZU1lZGlhUmVjb3JkZXIgTm90UmVmQ291bnRlZCB7CisgICAgQXVkaW9TYW1wbGVzU3RvcmFnZUNo
YW5nZWQoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZSBzdG9yYWdlSGFuZGxlLCBXZWJDb3Jl
OjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9m
RnJhbWVzKQorICAgIEF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUgdGltZSwgdWludDY0
X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1l
KQorICAgIFZpZGVvU2FtcGxlQXZhaWxhYmxlKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlIHNh
bXBsZSkKKyAgICBGZXRjaERhdGEoKSAtPiAoSVBDOjpEYXRhUmVmZXJlbmNlIGJ1ZmZlciwgU3Ry
aW5nIG1pbWVUeXBlKSBBc3luYworICAgIFN0b3BSZWNvcmRpbmcoKQorfQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNv
cmRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJl
Y29yZGVycy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTYxYjc3NGI2ZDFlNDg4ZDA3OTllNGM0MzU3ZTJkOGIx
YjhmMWQ5NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJy
dGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMuY3BwCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlcnMuaCIK
KworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRl
ICJSZW1vdGVNZWRpYVJlY29yZGVyLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVN
ZWRpYVJlY29yZGVyczo6UmVtb3RlTWVkaWFSZWNvcmRlcnMoR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcykKKyAgICA6IG1fZ3B1Q29ubmVjdGlvblRv
V2ViUHJvY2VzcyhncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQoreworfQorCitSZW1vdGVNZWRp
YVJlY29yZGVyczo6flJlbW90ZU1lZGlhUmVjb3JkZXJzKCkKK3sKK30KKwordm9pZCBSZW1vdGVN
ZWRpYVJlY29yZGVyczo6ZGlkUmVjZWl2ZVJlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGlm
IChhdXRvKiByZWNvcmRlciA9IG1fcmVjb3JkZXJzLmdldChtYWtlT2JqZWN0SWRlbnRpZmllcjxN
ZWRpYVJlY29yZGVySWRlbnRpZmllclR5cGU+KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKSkpCisg
ICAgICAgIHJlY29yZGVyLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsK
K30KKwordm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyczo6Y3JlYXRlUmVjb3JkZXIoTWVkaWFSZWNv
cmRlcklkZW50aWZpZXIgaWRlbnRpZmllciwgYm9vbCByZWNvcmRBdWRpbywgaW50IHdpZHRoLCBp
bnQgaGVpZ2h0KQoreworICAgIEFTU0VSVCghbV9yZWNvcmRlcnMuY29udGFpbnMoaWRlbnRpZmll
cikpOworICAgIGF1dG8gcmVjb3JkZXIgPSBSZW1vdGVNZWRpYVJlY29yZGVyOjpjcmVhdGUobV9n
cHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBpZGVudGlmaWVyLCByZWNvcmRBdWRpbywgd2lkdGgs
IGhlaWdodCk7CisgICAgaWYgKCFyZWNvcmRlcikgeworICAgICAgICAvLyBGSVhNRTogU2VuZCBi
YWNrIGVycm9yLgorICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fcmVjb3JkZXJzLmFkZChp
ZGVudGlmaWVyLCBXVEZNb3ZlKHJlY29yZGVyKSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZWNv
cmRlcnM6OnJlbGVhc2VSZWNvcmRlcihNZWRpYVJlY29yZGVySWRlbnRpZmllciBpZGVudGlmaWVy
KQoreworICAgIEFTU0VSVChtX3JlY29yZGVycy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAg
bV9yZWNvcmRlcnMucmVtb3ZlKGlkZW50aWZpZXIpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVy
cy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVy
cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY3NmYxNzk0YTUwNDM2Y2ZiZjBlMmU2YTA5ODU4NjAzNDNkYmEyOTUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZU1lZGlhUmVjb3JkZXJzLmgKQEAgLTAsMCArMSw2NyBAQAorCisKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisK
KyNpbmNsdWRlICJNZWRpYVJlY29yZGVySWRlbnRpZmllci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VS
ZWNlaXZlci5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBJUEMgewor
Y2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIERlY29kZXI7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOworY2xhc3MgUmVtb3RlTWVkaWFS
ZWNvcmRlcjsKKworY2xhc3MgUmVtb3RlTWVkaWFSZWNvcmRlcnMgOiBwcml2YXRlIElQQzo6TWVz
c2FnZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAg
ICBleHBsaWNpdCBSZW1vdGVNZWRpYVJlY29yZGVycyhHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Jik7CisgICAgflJlbW90ZU1lZGlhUmVjb3JkZXJzKCk7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVS
ZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3MoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpIHsgZGlkUmVjZWl2ZU1lc3Nh
Z2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7IH0KKworcHJpdmF0ZToKKyAgICAvLyBJUEM6Ok1lc3Nh
Z2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJikgZmluYWw7CisgICAgdm9pZCBjcmVhdGVSZWNvcmRlcihNZWRpYVJlY29y
ZGVySWRlbnRpZmllciwgYm9vbCByZWNvcmRBdWRpbywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsK
KyAgICB2b2lkIHJlbGVhc2VSZWNvcmRlcihNZWRpYVJlY29yZGVySWRlbnRpZmllcik7CisKKyAg
ICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7
CisgICAgSGFzaE1hcDxNZWRpYVJlY29yZGVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFJl
bW90ZU1lZGlhUmVjb3JkZXI+PiBtX3JlY29yZGVyczsKK307CisKK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3Jk
ZXJzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVN
ZWRpYVJlY29yZGVycy5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NGU1ZGU5MjkyNjU0NDdhNWYw
YWVjZTA2YTQ2YzIwNTVkZDVlZmU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5tZXNzYWdlcy5pbgpAQCAtMCww
ICsxLDMxIEBACisjIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgUExB
VEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3Rl
TWVkaWFSZWNvcmRlcnMgTm90UmVmQ291bnRlZCB7CisgICAgQ3JlYXRlUmVjb3JkZXIoV2ViS2l0
OjpNZWRpYVJlY29yZGVySWRlbnRpZmllciBpZCwgYm9vbCBoYXNBdWRpbywgaW50IHdpZHRoLCBp
bnQgaGVpZ2h0KQorICAgIFJlbGVhc2VSZWNvcmRlcihXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJJZGVu
dGlmaWVyIGlkKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5CmluZGV4IGM5ZDBlN2M2OTFmZjdjOTU1ZjhjMzUxMTAwMWM0MGE1NTRhYjkwNGUuLjcz
OTI0MTc1Y2Q2MGRmOTVhODI0ODQ4NmM3MGQ4MTI5MjZjODVmYTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMjIwLDYgKzIyMCw3IEBAIGRlZiB0eXBlc190
aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJLaXQ6OkFjdGl2
aXR5U3RhdGVDaGFuZ2VJRCcsCiAgICAgICAgICdXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJ
RCcsCiAgICAgICAgICdXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIn
LAorICAgICAgICAnV2ViS2l0OjpNZWRpYVJlY29yZGVySWRlbnRpZmllcicsCiAgICAgICAgICdX
ZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6
UlRDRGVjb2RlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpSVENFbmNvZGVySWRlbnRp
ZmllcicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzLnR4dAppbmRleCBkMDM5M2JiMDYyZDk3YWU5NmE3MjI1YTZkNjA3YjA3NGIz
OGUwYzk4Li5jODUyNDEwN2FkNWZhNzJmNzc5ZmQwYjBkNGYzNGE1YzE3MTk5Yjc3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNl
cy50eHQKQEAgLTI0LDYgKzI0LDggQEAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKIEdQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKK0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVj
b3JkZXIuY3BwCitHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5jcHAKIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2UuY3BwCkBAIC01MTMsNiArNTE1LDggQEAgV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAKIFdlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCitXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNv
cmRlclByaXZhdGUuY3BwCitXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3Zp
ZGVyLmNwcAogCiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNw
cAogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0CmluZGV4IGZlNzU3OTUzNzYxYjk5ZjY5YjgyOGMxMWJiYzBmMzMxYWVlZmMxOTEuLmI2
NjczNzdmZmJjODg1NTFhNTM4NmJiZjMxZGE5M2FhYmIwOTE2Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQKQEAgLTYzNSw1ICs2MzUsNyBAQCBHUFVQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwCiBHUFVQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcAogTGliV2ViUlRDQ29kZWNzUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiBMaWJXZWJSVENDb2RlY3NNZXNzYWdlUmVjZWl2ZXIuY3BwCitS
ZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlTWVkaWFSZWNvcmRl
cnNNZXNzYWdlUmVjZWl2ZXIuY3BwCiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZVJlY2Vp
dmVyLmNwcAogVGV4dENoZWNraW5nQ29udHJvbGxlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NTc3OGJhNTg3MjMyYzZlNmE3ODIyNDZiOWM3Y2IzMjBhZThmY2NlYS4uMTc3YjNhYjEwODliOTdl
ZjI0OTU1ZTA5NjRiZGNjNDA2NWIzNzNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMzE2LDYgKzMzMTYsMTcgQEAKIAkJNDE3MjE5
OEMyM0I2MTJFODAwQUU1Njg2IC8qIFJUQ0RlY29kZXJJZGVudGlmaWVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0RlY29kZXJJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxNzIxOThEMjNCNjJDN0MwMEFFNTY4NiAvKiBMaWJXZWJSVEND
b2RlY3MubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2VzLmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc2OTAxMzIyRkRENDFCMDBCMTU3NkQgLyogTmV0
d29ya1JUQ1Byb3ZpZGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gTmV0d29ya1JUQ1Byb3ZpZGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MTc2RTg5MjIzQzM0RDZFMDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MTc2RTg5MzIzQzM0RDZGMDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJQcm92aWRlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODk0MjNDMzRFMjYwMDNFODNGRSAvKiBNZWRp
YVJlY29yZGVyUHJpdmF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBNZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQxNzZFODk1MjNDMzRFMjcwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVJlY29yZGVyUHJpdmF0ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc2RTg5NzIzQzM2MUJEMDAzRTgzRkUgLyogTWVk
aWFSZWNvcmRlcklkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TWVkaWFSZWNvcmRlcklkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDE3NkU4OTgyM0MzNjY3NzAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZWNvcmRlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0MTc2RTg5OTIzQzM2RDhFMDAzRTgzRkUgLyogUmVtb3Rl
TWVkaWFSZWNvcmRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3Rl
TWVkaWFSZWNvcmRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OUEy
M0MzNkY3MTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXJzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVjb3JkZXJzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OUIyM0MzNzIyMjAwM0U4M0ZFIC8qIFJlbW90
ZU1lZGlhUmVjb3JkZXJzLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90
ZU1lZGlhUmVjb3JkZXJzLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0MTc2RTg5QzIzQzM3NDc5MDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlci5tZXNzYWdl
cy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc2RTg5RDIzQzM3NkQ1MDAzRTgz
RkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlY29yZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDE3OTE1QUMyMjU2QkI3NDAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWwuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViU29ja2V0Q2hhbm5lbC5j
cHA7IHBhdGggPSBOZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTc5MTVBRDIyNTZCQjc0MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5l
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJTb2NrZXRDaGFubmVsLmg7
IHBhdGggPSBOZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDE3OTE1QjAyMjU2QzBENjAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWxNYW5h
Z2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlNvY2tldENoYW5uZWxN
YW5hZ2VyLmg7IHBhdGggPSBOZXR3b3JrL1dlYlNvY2tldENoYW5uZWxNYW5hZ2VyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MTE3LDYgKzcxMjgsMTEgQEAKIAkJCQk0MTcyMTk4
QTIzQjYxMjgyMDBBRTU2ODYgLyogTGliV2ViUlRDQ29kZWNzLmNwcCAqLywKIAkJCQk0MTcyMTk4
OTIzQjYxMjgyMDBBRTU2ODYgLyogTGliV2ViUlRDQ29kZWNzLmggKi8sCiAJCQkJNDE3MjE5OEQy
M0I2MkM3QzAwQUU1Njg2IC8qIExpYldlYlJUQ0NvZGVjcy5tZXNzYWdlcy5pbiAqLywKKwkJCQk0
MTc2RTg5NzIzQzM2MUJEMDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlcklkZW50aWZpZXIuaCAqLywK
KwkJCQk0MTc2RTg5NDIzQzM0RTI2MDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuY3Bw
ICovLAorCQkJCTQxNzZFODk1MjNDMzRFMjcwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJpdmF0
ZS5oICovLAorCQkJCTQxNzZFODkzMjNDMzRENkYwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJv
dmlkZXIuY3BwICovLAorCQkJCTQxNzZFODkyMjNDMzRENkUwMDNFODNGRSAvKiBNZWRpYVJlY29y
ZGVyUHJvdmlkZXIuaCAqLywKIAkJCQk0MTcyMTk4QzIzQjYxMkU4MDBBRTU2ODYgLyogUlRDRGVj
b2RlcklkZW50aWZpZXIuaCAqLywKIAkJCQk0MTU4NjQ5QTIzQkUwOTI0MDBBMEE2MUUgLyogUlRD
RW5jb2RlcklkZW50aWZpZXIuaCAqLywKIAkJCSk7CkBAIC03MTI5LDYgKzcxNDUsMTIgQEAKIAkJ
CQk0MUUwQTdDNjIzQjYzOTc4MDA1NjEwNjAgLyogTGliV2ViUlRDQ29kZWNzUHJveHkuaCAqLywK
IAkJCQk0MUUwQTdDNzIzQjYzOTc5MDA1NjEwNjAgLyogTGliV2ViUlRDQ29kZWNzUHJveHkubWVz
c2FnZXMuaW4gKi8sCiAJCQkJNDFFMEE3QzgyM0I2Mzk3OTAwNTYxMDYwIC8qIExpYldlYlJUQ0Nv
ZGVjc1Byb3h5Lm1tICovLAorCQkJCTQxNzZFODlEMjNDMzc2RDUwMDNFODNGRSAvKiBSZW1vdGVN
ZWRpYVJlY29yZGVyLmNwcCAqLywKKwkJCQk0MTc2RTg5ODIzQzM2Njc3MDAzRTgzRkUgLyogUmVt
b3RlTWVkaWFSZWNvcmRlci5oICovLAorCQkJCTQxNzZFODlDMjNDMzc0NzkwMDNFODNGRSAvKiBS
ZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluICovLAorCQkJCTQxNzZFODlBMjNDMzZGNzEw
MDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVycy5jcHAgKi8sCisJCQkJNDE3NkU4OTkyM0Mz
NkQ4RTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXJzLmggKi8sCisJCQkJNDE3NkU4OUIy
M0MzNzIyMjAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXJzLm1lc3NhZ2VzLmluICovLAog
CQkJKTsKIAkJCXBhdGggPSB3ZWJydGM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVJlY29yZGVy
UHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVJl
Y29yZGVyUHJvdmlkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlMmQ2NmJmYmNiNDlkOTM4OTM4NjU4YzAw
MGVhMzFkOTJlYmY3MjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAKQEAgLTAsMCArMSw0NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVy
UHJvdmlkZXIuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIk1lZGlhUmVjb3Jk
ZXJQcml2YXRlQVZGSW1wbC5oIgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3Rk
Ojp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBNZWRpYVJlY29yZGVyUHJvdmlkZXI6
OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQor
eworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHJldHVybiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFW
RkltcGw6OmNyZWF0ZShzdHJlYW0pOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc3RyZWFtKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgorfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUmVjb3JkZXJQcm92aWRlci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43MTBlOGQ0ODFmODZhMzVkMGQ5ZWU5ZmI4M2VhZWU2NmRjNzlkZmNlCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVJl
Y29yZGVyUHJvdmlkZXIuaApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVkaWFSZWNvcmRlclByaXZhdGU7
CitjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7CisKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIE1lZGlh
UmVjb3JkZXJQcm92aWRlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6
CisgICAgc3RhdGljIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+IGNyZWF0ZSgpIHsg
cmV0dXJuIG1ha2VVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpOyB9CisgICAgdmly
dHVhbCB+TWVkaWFSZWNvcmRlclByb3ZpZGVyKCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCBz
dGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3JkZXJQ
cml2YXRlKE1lZGlhU3RyZWFtUHJpdmF0ZSYpOworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlcklkZW50aWZpZXIuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJJZGVudGlm
aWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzJmMDRlMzMzZmU4NDYzMjNjY2NlNzkzODVjYTc1MmI1NjQxOTNl
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L01lZGlhUmVjb3JkZXJJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2VudW0gTWVkaWFSZWNvcmRlcklkZW50aWZpZXJUeXBlIHsgfTsK
K3VzaW5nIE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxNZWRpYVJl
Y29yZGVySWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2
YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3Jk
ZXJQcml2YXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMzBkNjUxYjNhOGViNTBjMDZmMWM0YjJjMmZmNzgw
MGUxYmVhZGNhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCkBAIC0wLDAgKzEsMTM4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2
YXRlLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisj
aW5jbHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3Rl
TWVkaWFSZWNvcmRlcnNNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVy
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVN0cmVhbVByaXZhdGUuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJB
dWRpb0J1ZmZlckxpc3QuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitNZWRpYVJlY29yZGVyUHJpdmF0ZTo6TWVkaWFSZWNvcmRlclByaXZhdGUo
Y29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCisgICAgOiBtX2lkZW50aWZpZXIoTWVk
aWFSZWNvcmRlcklkZW50aWZpZXI6OmdlbmVyYXRlKCkpCisgICAgLCBtX2Nvbm5lY3Rpb24oV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0
aW9uKCkpCit7CisgICAgLy8gRklYTUU6IHdlIHdpbGwgbmVlZCB0byBpbXBsZW1lbnQgc3VwcG9y
dCBmb3IgbXVsdGlwbGUgYXVkaW8vdmlkZW8gdHJhY2tzCisgICAgLy8gQ3VycmVudGx5IHdlIG9u
bHkgY2hvb3NlIHRoZSBmaXJzdCB0cmFjayBhcyB0aGUgcmVjb3JkZWQgdHJhY2suCisgICAgLy8g
RklYTUU6IFdlIHdvdWxkIGJldHRlciB0byB0aHJvdyBhbiBleGNlcHRpb24gdG8gSmF2YVNjcmlw
dCBpZiB3cml0ZXIgY3JlYXRpb24gZmFpbHMuCisKKyAgICBjb25zdCBNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSogYXVkaW9UcmFjayB7IG51bGxwdHIgfTsKKyAgICBjb25zdCBNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSogdmlkZW9UcmFjayB7IG51bGxwdHIgfTsKKyAgICBmb3IgKGF1dG8mIHRyYWNr
IDogc3RyZWFtLnRyYWNrcygpKSB7CisgICAgICAgIGlmICghdHJhY2stPmVuYWJsZWQoKSB8fCB0
cmFjay0+ZW5kZWQoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBzd2l0Y2ggKHRy
YWNrLT50eXBlKCkpIHsKKyAgICAgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpW
aWRlbzogeworICAgICAgICAgICAgYXV0byYgc2V0dGluZ3MgPSB0cmFjay0+c2V0dGluZ3MoKTsK
KyAgICAgICAgICAgIGlmICghdmlkZW9UcmFjayAmJiBzZXR0aW5ncy5zdXBwb3J0c1dpZHRoKCkg
JiYgc2V0dGluZ3Muc3VwcG9ydHNIZWlnaHQoKSkgeworICAgICAgICAgICAgICAgIHZpZGVvVHJh
Y2sgPSB0cmFjay5nZXQoKTsKKyAgICAgICAgICAgICAgICBtX3JlY29yZGVkVmlkZW9UcmFja0lE
ID0gdmlkZW9UcmFjay0+aWQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW86
CisgICAgICAgICAgICBpZiAoIWF1ZGlvVHJhY2spIHsKKyAgICAgICAgICAgICAgICBtX3JpbmdC
dWZmZXIgPSBtYWtlVW5pcXVlPENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5n
QnVmZmVyU3RvcmFnZT4odGhpcykpOworICAgICAgICAgICAgICAgIGF1ZGlvVHJhY2sgPSB0cmFj
ay5nZXQoKTsKKyAgICAgICAgICAgICAgICBtX3JlY29yZGVkQXVkaW9UcmFja0lEID0gYXVkaW9U
cmFjay0+aWQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5vbmU6CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgIH0KKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90
ZU1lZGlhUmVjb3JkZXJzOjpDcmVhdGVSZWNvcmRlciB7IG1faWRlbnRpZmllciwgISFhdWRpb1Ry
YWNrLCB2aWRlb1RyYWNrID8gdmlkZW9UcmFjay0+c2V0dGluZ3MoKS53aWR0aCgpIDogMCwgdmlk
ZW9UcmFjayA/IHZpZGVvVHJhY2stPnNldHRpbmdzKCkuaGVpZ2h0KCkgOiAwIH0sIDApOworfQor
CitNZWRpYVJlY29yZGVyUHJpdmF0ZTo6fk1lZGlhUmVjb3JkZXJQcml2YXRlKCkKK3sKKyAgICBt
X2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXJzOjpSZWxlYXNl
UmVjb3JkZXIgeyBtX2lkZW50aWZpZXIgfSwgMCk7Cit9CisKK3ZvaWQgTWVkaWFSZWNvcmRlclBy
aXZhdGU6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmIHRyYWNrLCBXZWJDb3JlOjpNZWRpYVNhbXBsZSYgc2FtcGxlKQoreworICAgIGlmICh0cmFj
ay5pZCgpICE9IG1fcmVjb3JkZWRWaWRlb1RyYWNrSUQpCisgICAgICAgIHJldHVybjsKKyAgICBp
ZiAoYXV0byByZW1vdGVTYW1wbGUgPSBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKHNhbXBsZSkp
CisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRl
cjo6VmlkZW9TYW1wbGVBdmFpbGFibGUgeyBXVEZNb3ZlKCpyZW1vdGVTYW1wbGUpIH0sIG1faWRl
bnRpZmllcik7Cit9CisKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OmF1ZGlvU2FtcGxlc0F2
YWlsYWJsZShXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2ssIGNvbnN0IE1l
ZGlhVGltZSYgdGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3Qg
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBudW1iZXJPZkZyYW1l
cykKK3sKKyAgICBpZiAodHJhY2suaWQoKSAhPSBtX3JlY29yZGVkQXVkaW9UcmFja0lEKQorICAg
ICAgICByZXR1cm47CisKKyAgICBpZiAobV9kZXNjcmlwdGlvbiAhPSBkZXNjcmlwdGlvbikgewor
ICAgICAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLnR5cGUgPT0g
UGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0cmVhbUJhc2ljVHlwZSk7CisgICAgICAgIG1f
ZGVzY3JpcHRpb24gPSAqV1RGOjpnZXQ8Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9u
Kj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKKworICAg
ICAgICAvLyBBbGxvY2F0ZSBhIHJpbmcgYnVmZmVyIGxhcmdlIGVub3VnaCB0byBjb250YWluIDIg
c2Vjb25kcyBvZiBhdWRpby4KKyAgICAgICAgbV9udW1iZXJPZkZyYW1lcyA9IG1fZGVzY3JpcHRp
b24uc2FtcGxlUmF0ZSgpICogMjsKKyAgICAgICAgbV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShtX2Rl
c2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCksIG1fbnVtYmVyT2ZGcmFtZXMpOworICAgIH0K
KworICAgIEFTU0VSVChpczxXZWJBdWRpb0J1ZmZlckxpc3Q+KGF1ZGlvRGF0YSkpOworICAgIG1f
cmluZ0J1ZmZlci0+c3RvcmUoZG93bmNhc3Q8V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRpb0RhdGEp
Lmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOworICAgIHVpbnQ2NF90
IHN0YXJ0RnJhbWU7CisgICAgdWludDY0X3QgZW5kRnJhbWU7CisgICAgbV9yaW5nQnVmZmVyLT5n
ZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOworICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6QXVkaW9TYW1wbGVzQXZh
aWxhYmxlIHsgdGltZSwgbnVtYmVyT2ZGcmFtZXMsIHN0YXJ0RnJhbWUsIGVuZEZyYW1lIH0sIG1f
aWRlbnRpZmllcik7Cit9CisKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OnN0b3JhZ2VDaGFu
Z2VkKFNoYXJlZE1lbW9yeSogc3RvcmFnZSkKK3sKKyAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBo
YW5kbGU7CisgICAgaWYgKHN0b3JhZ2UpCisgICAgICAgIHN0b3JhZ2UtPmNyZWF0ZUhhbmRsZSho
YW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6QXVkaW9TYW1wbGVzU3Rv
cmFnZUNoYW5nZWQgeyBoYW5kbGUsIG1fZGVzY3JpcHRpb24sIHN0YXRpY19jYXN0PHVpbnQ2NF90
PihtX251bWJlck9mRnJhbWVzKSB9LCBtX2lkZW50aWZpZXIpOworfQorCit2b2lkIE1lZGlhUmVj
b3JkZXJQcml2YXRlOjpmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2Vi
Q29yZTo6U2hhcmVkQnVmZmVyPiYmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6RmV0Y2hEYXRhIHsgfSwgW2NvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8mJiBkYXRhLCBhdXRvJiYgbWlt
ZVR5cGUpIG11dGFibGUgeworICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXI7Cisg
ICAgICAgIGlmICghZGF0YS5zaXplKCkpCisgICAgICAgICAgICBidWZmZXIgPSBTaGFyZWRCdWZm
ZXI6OmNyZWF0ZShkYXRhLmRhdGEoKSwgZGF0YS5zaXplKCkpOworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihXVEZNb3ZlKGJ1ZmZlciksIG1pbWVUeXBlKTsKKyAgICB9LCBtX2lkZW50aWZpZXIp
OworfQorCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdG9wUmVjb3JkaW5nKCkKK3sKKyAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OlN0b3BS
ZWNvcmRpbmcgeyB9LCBtX2lkZW50aWZpZXIpOworfQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9S
TShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYWY4OWViMzk3MGRiZjIxZTYzMmIxZmU4ZmZlZDIwZjU5MjMyNWU2ZAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3Jk
ZXJQcml2YXRlLmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUg
Ik1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0
b3JhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUmVjb3JkZXJQcml2YXRlLmg+CisKK25h
bWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIE1lZGlhUmVjb3JkZXJQcml2YXRlIGZpbmFsIDogcHVibGljIFdlYkNvcmU6Ok1l
ZGlhUmVjb3JkZXJQcml2YXRlLCBwdWJsaWMgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OkNsaWVu
dCB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQg
TWVkaWFSZWNvcmRlclByaXZhdGUoY29uc3QgV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlJik7
CisgICAgfk1lZGlhUmVjb3JkZXJQcml2YXRlKCk7CisKK3ByaXZhdGU6CisgICAgLy8gV2ViQ29y
ZTo6TWVkaWFSZWNvcmRlclByaXZhdGUKKyAgICB2b2lkIHNhbXBsZUJ1ZmZlclVwZGF0ZWQoV2Vi
Q29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBXZWJDb3JlOjpNZWRpYVNhbXBsZSYpIGZp
bmFsOworICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJiwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBXZWJDb3JlOjpQbGF0
Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IFdlYkNvcmU6OkF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBz
aXplX3QpIGZpbmFsOworICAgIHZvaWQgZmV0Y2hEYXRhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
UmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk+
JiYpIGZpbmFsOworICAgIHZvaWQgc3RvcFJlY29yZGluZygpIGZpbmFsOworCisgICAgLy8gU2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2U6OkNsaWVudAorICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQoU2hh
cmVkTWVtb3J5Kik7CisKKyAgICBNZWRpYVJlY29yZGVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7
CisKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgU3RyaW5nIG1f
cmVjb3JkZWRBdWRpb1RyYWNrSUQ7CisgICAgU3RyaW5nIG1fcmVjb3JkZWRWaWRlb1RyYWNrSUQ7
CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZm
ZXI7CisgICAgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb24g
eyB9OworICAgIGludDY0X3QgbV9udW1iZXJPZkZyYW1lcyB7IDAgfTsKK307CisKK30KKworI2Vu
ZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92
aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29y
ZGVyUHJvdmlkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3YjYwOGNkNjg1Njc5OWVmMzNhNjFkMTFmMWZi
ZDBiZjIyMmFhOWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCkBAIC0wLDAgKzEsNDkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclBy
b3ZpZGVyLmgiCisKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZS5oIgorCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRl
PiBNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0
IE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQoreworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KyAgICBpZiAoIW1fdXNlR1BVUHJvY2VzcykKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok1lZGlh
UmVjb3JkZXJQcm92aWRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoc3RyZWFtKTsKKwor
ICAgIHJldHVybiBtYWtlVW5pcXVlPE1lZGlhUmVjb3JkZXJQcml2YXRlPihzdHJlYW0pOworI2Vs
c2UKKyAgICByZXR1cm4gV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyOjpjcmVhdGVNZWRp
YVJlY29yZGVyUHJpdmF0ZShzdHJlYW0pOworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykK
K30KKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA0NWZhYTRiZjBlNDc5NzhmZmY0N2MzODc1ZGQ2N2JmNDFlNDk5M2IK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9N
ZWRpYVJlY29yZGVyUHJvdmlkZXIuaApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUmVjb3JkZXJQcm92aWRlci5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgTWVkaWFSZWNvcmRlclByb3ZpZGVyIGZpbmFs
IDogcHVibGljIFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlciB7CitwdWJsaWM6CisgICAg
TWVkaWFSZWNvcmRlclByb3ZpZGVyKCkgPSBkZWZhdWx0OworCitwcml2YXRlOgorI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Ok1lZGlhUmVjb3Jk
ZXJQcml2YXRlPiBjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShjb25zdCBXZWJDb3JlOjpNZWRp
YVN0cmVhbVByaXZhdGUmKSBmaW5hbDsKKyNlbmRpZgorfTsKKworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBhMDIxZjc0MjliMjU1YmE5ZjQy
ZjA0M2Q3ZmE4MzMxNmZmYmE4Y2I2Li4wODM0MzU2MTRjOTg0MzhhMjAxZjcyODE5YmE5NDIwY2I4
NzQ4NmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIkxpYldlYlJUQ1Byb3ZpZGVyLmgiCiAjaW5j
bHVkZSAiTG9hZFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAi
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTmV0c2NhcGVQbHVnaW4uaCIKICNp
bmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVk
ZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgiCkBAIC00NjAsNyArNDYxLDggQEAgV2ViUGFn
ZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMmJiBwYXJhbWV0ZXJzKQogICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5jYWNoZVN0
b3JhZ2VQcm92aWRlcigpLAogICAgICAgICBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6Y3JlYXRl
KCp0aGlzKSwKICAgICAgICAgV2ViQ29va2llSmFyOjpjcmVhdGUoKSwKLSAgICAgICAgbWFrZVVu
aXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCp0aGlzKQorICAgICAgICBtYWtlVW5p
cXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oKnRoaXMpLAorICAgICAgICBtYWtlVW5p
cXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgICk7CiAgICAgcGFnZUNvbmZpZ3Vy
YXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudCgqdGhpcyk7CiAjaWYgRU5B
QkxFKENPTlRFWFRfTUVOVVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KaW5kZXggNGM0MTg2NGQ4OWY0MDU2N2VkODFlZDJlZmVmYjUwMWY2NzUzZGI4NC4uMTli
MjIxY2IyMjc4M2M1YjY0YzM1M2QwMjg1YTQ0OGY0NTNkMGI2NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTgwLDYgKzE4MCw3IEBACiAjaW1wb3J0
IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9nSW5pdGlh
bGl6YXRpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgorI2ltcG9y
dCA8V2ViQ29yZS9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvTWVt
b3J5Q2FjaGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvTWVtb3J5UmVsZWFzZS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KQEAgLTE0NDgsNyArMTQ0OSw4IEBAIHN0
YXRpYyB2b2lkIFdlYktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiAg
ICAgICAgIFdlYkNvcmU6OkNhY2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUoKSwKICAgICAgICAg
QmFja0ZvcndhcmRMaXN0OjpjcmVhdGUoc2VsZiksCiAgICAgICAgIFdlYkNvcmU6OkNvb2tpZUph
cjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpLAotICAgICAgICBtYWtlVW5pcXVl
UmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oc2VsZikKKyAgICAgICAgbWFrZVVuaXF1ZVJl
ZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KHNlbGYpLAorICAgICAgICBtYWtlVW5pcXVlUmVm
PFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgICk7CiAjaWYgIVBMQVRGT1JN
KElPU19GQU1JTFkpCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdl
YkNocm9tZUNsaWVudChzZWxmKTsKQEAgLTE3MTcsNyArMTcxOSw4IEBAIHN0YXRpYyB2b2lkIFdl
YktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiAgICAgICAgIFdlYkNv
cmU6OkNhY2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUoKSwKICAgICAgICAgQmFja0ZvcndhcmRM
aXN0OjpjcmVhdGUoc2VsZiksCiAgICAgICAgIFdlYkNvcmU6OkNvb2tpZUphcjo6Y3JlYXRlKHN0
b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpLAotICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dy
ZXNzVHJhY2tlckNsaWVudD4oc2VsZikKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVz
c1RyYWNrZXJDbGllbnQ+KHNlbGYpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6Ok1l
ZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgICk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hy
b21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudElPUyhzZWxmKTsKICNpZiBFTkFCTEUoRFJB
R19TVVBQT1JUKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386942</attachid>
            <date>2020-01-06 23:55:47 -0800</date>
            <delta_ts>2020-01-07 00:22:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205802-20200107085540.patch</filename>
            <type>text/plain</type>
            <size>92466</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTdiNmQyNDFlMzg2MjZl
OTlmMzI2YTU0ZGU4Y2U3Y2ZiNDcwMzQ0Yi4uZjA4ODczN2Y2ZGJiZDlkNjZkYzJiZTllOTk0NDE5
NzhlMTA3YzVkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIwLTAxLTA2ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgTWVkaWFS
ZWNvcmRlciBiYWNrZW5kIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTgwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMgYXMgTWVkaWFS
ZWNvcmRlciBpbXBsZW1lbnRhdGlvbiBpbiBXZWJLaXRUZXN0UnVubmVyIHdpbGwgdXNlIEdQVVBy
b2Nlc3MuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUpOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmg6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29y
ZGVyUHJpdmF0ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3Jk
ZXJQcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGlu
LmNwcDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAg
ICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAg
ICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Om1lZGlhUmVjb3Jk
ZXJQcm92aWRlcik6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOgorICAg
ICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
cjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVBy
aXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZS5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnRlcm5hbHM6OnNldFVzZUdQVVByb2Nlc3NGb3JXZWJSVEMpOgorCiAyMDIwLTAxLTA2
ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ10gU3RhcnQg
dXNpbmcgdGhlIFVzZWRIb3Jpem9udGFsVmFsdWVzOjpDb25zdHJhaW50cyB2YWx1ZXMgaW4gOjps
YXlvdXRJbkZsb3dDb250ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI1YzFjNGZkODk4MjM5OWMzNjY2MTQyNzBl
MTIzNDk5NWM4ZThhNTQuLmJmMWRjNWRkNjUyNTJmZDU1ZjczNjA2NGMyZDZmMGIxYTY0NTM5YjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMjAtMDEtMDYgIHlvdWVubiBmYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBNZWRpYVJlY29yZGVyIGJhY2tl
bmQgaW4gR1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA1ODAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
Lm1ha2U6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6dXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6Om1lZGlhUmVjb3JkZXJzKToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWFjL2Nv
bS5hcHBsZS5XZWJLaXQuR1BVUHJvY2Vzcy5zYi5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUmVjb3JkZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UmVjb3JkZXI6OlJlbW90ZU1lZGlhUmVjb3JkZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVN
ZWRpYVJlY29yZGVyOjp+UmVtb3RlTWVkaWFSZWNvcmRlcik6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUmVjb3JkZXI6OnN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVJlY29yZGVyOjphdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUmVjb3JkZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6ZmV0Y2hEYXRhKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6c3RvcFJlY29yZGluZyk6CisgICAgICAgICogR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBH
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluOiBBZGRlZC4K
KyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyczo6UmVtb3RlTWVkaWFS
ZWNvcmRlcnMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyczo6flJlbW90
ZU1lZGlhUmVjb3JkZXJzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcnM6
OmRpZFJlY2VpdmVSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUmVjb3JkZXJzOjpjcmVhdGVSZWNvcmRlcik6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUmVjb3JkZXJzOjpyZWxlYXNlUmVjb3JkZXIpOgorICAgICAgICAqIEdQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJzLmg6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyczo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vz
cyk6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMubWVz
c2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5Ogor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAg
ICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2
YXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVJlY29yZGVyUHJvdmlk
ZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3Jk
ZXJJZGVudGlmaWVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9N
ZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJl
Y29yZGVyUHJpdmF0ZTo6TWVkaWFSZWNvcmRlclByaXZhdGUpOgorICAgICAgICAoV2ViS2l0OjpN
ZWRpYVJlY29yZGVyUHJpdmF0ZTo6fk1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAgICAgICAgKFdl
YktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQpOgorICAgICAg
ICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6OnN0b3JhZ2VDaGFuZ2VkKToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6OmZldGNoRGF0YSk6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdG9wUmVjb3JkaW5nKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaDogQWRkZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0
ZU1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMv
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9vdmVycmlkZGVuTWVkaWFUeXBl
KToKKwogMjAyMC0wMS0wNiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW2lPU10gR2V0IGRpc3BsYXkgbGV2ZWwgaW4gdGhlIFVJIHByb2Nlc3MgZm9yIGFs
bCBpT1MgcGxhdGZvcm1zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZWRlYmQ1OWRm
OTUxN2Y4ZjAwZTEwY2IzZDRjMTdhOGIyZTBhZGM0Ny4uNDhkNmE5ZTBiMTdiM2M2MzM0ZTEzYzI5
YjEwYTNjMTg3YTcyZWFlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDIwLTAxLTA2ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBJbXBsZW1lbnQgTWVkaWFSZWNvcmRlciBiYWNrZW5kIGluIEdQVVByb2Nlc3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTgwMgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9X
ZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhG
cmFtZU5hbWU6Z3JvdXBOYW1lOl0pOgorICAgICAgICAoLVtXZWJWaWV3IGluaXRTaW1wbGVIVE1M
RG9jdW1lbnRXaXRoU3R5bGU6ZnJhbWU6cHJlZmVyZW5jZXM6Z3JvdXBOYW1lOl0pOgorCiAyMDIw
LTAxLTA2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBDb252ZXJ0
IEFTU0VSVF9ESVNBQkxFRCB0byBBU1NFUlRfRU5BQkxFRCwgYW5kIGZpeCBzb21lIHRlc3RzIG9m
IE5ERUJVRyB0aGF0IHNob3VsZCBhY3R1YWxseSB0ZXN0IGZvciBBU1NFUlRfRU5BQkxFRC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCmluZGV4IDQ2NjE5YzY1ZDZiM2MzZDgxZmY0YzJlNTAwNTIxNmFhNDk2MmVj
MTQuLjgxMmVkNDY5ZDIwOTA4NTU4Y2RkN2NkZTgyODNjZWU4ODZiOGVjYzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQpAQCAtODAsNiArODAsOCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19I
RUFERVJTCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlJlc3VsdERhdGEuaAogICAg
IE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJUcmFuc2FjdGlvbkluZm8uaAogCisgICAgTW9k
dWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5oCisKICAgICBNb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25FdmVudHMuaAogICAgIE1vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhU2Vzc2lvbk1ldGFkYXRhLmgKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyLmgKQEAgLTExNTUsNiArMTE1Nyw4IEBAIHNldChXZWJDb3JlX1BS
SVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1z
L1RyYW5zZm9ybU9wZXJhdGlvbnMuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMv
VHJhbnNmb3JtYXRpb25NYXRyaXguaAogCisgICAgcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyUHJpdmF0ZS5oCisKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2
aWNlLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlTWFuYWdlci5oCiAg
ICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50cy5oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHAKaW5k
ZXggOTkxZWEyYTBmM2QyMjQ0ZGYxZThlZTI3Zjc5MDg2ZDNlYzQzZDZmMC4uYWRmMzUwNDg4N2Ey
MzcxNzdhNGQ5ZDZmYWE5YzdmM2EzMTMyZDIyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcApAQCAtMzQsNiArMzQs
OCBAQAogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJNZWRpYVJlY29yZGVyRXJy
b3JFdmVudC5oIgogI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlLmgiCisjaW5jbHVkZSAi
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNo
YXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIldpbmRvd0V2ZW50TG9vcC5oIgogI2luY2x1ZGUgPHd0
Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CkBAIC01MCw3ICs1Miw3IEBAIGNyZWF0b3JGdW5jdGlvbiBN
ZWRpYVJlY29yZGVyOjptX2N1c3RvbUNyZWF0b3IgPSBudWxscHRyOwogCiBFeGNlcHRpb25PcjxS
ZWY8TWVkaWFSZWNvcmRlcj4+IE1lZGlhUmVjb3JkZXI6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQsIFJlZjxNZWRpYVN0cmVhbT4mJiBzdHJlYW0sIE9wdGlvbnMmJiBvcHRpb25zKQogewotICAg
IGF1dG8gcHJpdmF0ZUluc3RhbmNlID0gTWVkaWFSZWNvcmRlcjo6Z2V0UHJpdmF0ZUltcGwoc3Ry
ZWFtLT5wcml2YXRlU3RyZWFtKCkpOworICAgIGF1dG8gcHJpdmF0ZUluc3RhbmNlID0gTWVkaWFS
ZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoZG9jdW1lbnQsIHN0cmVhbS0+cHJp
dmF0ZVN0cmVhbSgpKTsKICAgICBpZiAoIXByaXZhdGVJbnN0YW5jZSkKICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiVGhlIE1lZGlhUmVjb3JkZXIgaXMgdW5z
dXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybSJfcyB9OwogICAgIGF1dG8gcmVjb3JkZXIgPSBhZG9w
dFJlZigqbmV3IE1lZGlhUmVjb3JkZXIoZG9jdW1lbnQsIFdURk1vdmUoc3RyZWFtKSwgV1RGTW92
ZShwcml2YXRlSW5zdGFuY2UpLCBXVEZNb3ZlKG9wdGlvbnMpKSk7CkBAIC02MywxNyArNjUsMTYg
QEAgdm9pZCBNZWRpYVJlY29yZGVyOjpzZXRDdXN0b21Qcml2YXRlUmVjb3JkZXJDcmVhdG9yKGNy
ZWF0b3JGdW5jdGlvbiBjcmVhdG9yKQogICAgIG1fY3VzdG9tQ3JlYXRvciA9IGNyZWF0b3I7CiB9
CiAKLXN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gTWVkaWFSZWNvcmRlcjo6
Z2V0UHJpdmF0ZUltcGwoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCitzdGQ6OnVu
aXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IE1lZGlhUmVjb3JkZXI6OmNyZWF0ZU1lZGlh
UmVjb3JkZXJQcml2YXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgTWVkaWFTdHJlYW1Qcml2
YXRlJiBzdHJlYW0pCiB7CiAgICAgaWYgKG1fY3VzdG9tQ3JlYXRvcikKICAgICAgICAgcmV0dXJu
IG1fY3VzdG9tQ3JlYXRvcigpOwogICAgIAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHJldHVy
biBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmNyZWF0ZShzdHJlYW0pOwotI2Vsc2UKLSAg
ICBVTlVTRURfUEFSQU0oc3RyZWFtKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKLSNlbmRpZgorICAg
IGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBwYWdlLT5tZWRpYVJlY29yZGVyUHJvdmlkZXIo
KS5jcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShzdHJlYW0pOwogfQogCiBNZWRpYVJlY29yZGVy
OjpNZWRpYVJlY29yZGVyKERvY3VtZW50JiBkb2N1bWVudCwgUmVmPE1lZGlhU3RyZWFtPiYmIHN0
cmVhbSwgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiYmIHByaXZhdGVJbXBs
LCBPcHRpb25zJiYgb3B0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKaW5kZXggZWI2Zjk2YTZhZTBhMzliYTEwYjUyMGJi
OThjYzRlZTFiNTM5Mzc0NC4uMDYzOTUyYTk2N2RhYzIyYTI3NGY1NDdhZTRjYmNhZTJjZTZkYWQx
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlci5oCkBAIC03NSw3ICs3NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTWVk
aWFSZWNvcmRlcihEb2N1bWVudCYsIFJlZjxNZWRpYVN0cmVhbT4mJiwgc3RkOjp1bmlxdWVfcHRy
PE1lZGlhUmVjb3JkZXJQcml2YXRlPiYmLCBPcHRpb25zJiYgPSB7IH0pOwogCi0gICAgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gZ2V0UHJpdmF0ZUltcGwoY29u
c3QgTWVkaWFTdHJlYW1Qcml2YXRlJik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRp
YVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoRG9jdW1lbnQmLCBj
b25zdCBNZWRpYVN0cmVhbVByaXZhdGUmKTsKICAgICAKICAgICBEb2N1bWVudCogZG9jdW1lbnQo
KSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNjRmY2Nj
MzY4YTYxMjdkZjk5MWZiZmQzZGZjMWJmZjMzOTBhYzAwCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5j
cHAKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCIKKworI2luY2x1ZGUgIk1lZGlhUmVjb3Jk
ZXJQcml2YXRlLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJNZWRpYVJlY29y
ZGVyUHJpdmF0ZUFWRkltcGwuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2
YXRlPiBNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKGNv
bnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIHJldHVybiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmNyZWF0ZShzdHJlYW0pOwor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc3RyZWFtKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyNl
bmRpZgorfQorI2VuZGlmCisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
YTkzYWY0ODY3NjZkNzVlYTg0YjVmNWViNjkyMjQxOTE3MTBlMDdhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92
aWRlci5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZTsKK2NsYXNzIE1l
ZGlhU3RyZWFtUHJpdmF0ZTsKKworY2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFSZWNvcmRlclBy
b3ZpZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBNZWRp
YVJlY29yZGVyUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+TWVkaWFSZWNvcmRl
clByb3ZpZGVyKCkgPSBkZWZhdWx0OworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB2
aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlTWVkaWFS
ZWNvcmRlclByaXZhdGUoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJik7CisjZW5kaWYKKworICAg
IHZvaWQgc2V0VXNlR1BVUHJvY2Vzcyhib29sIHZhbHVlKSB7IG1fdXNlR1BVUHJvY2VzcyA9IHZh
bHVlOyB9CisKK3Byb3RlY3RlZDoKKyAgICBib29sIG1fdXNlR1BVUHJvY2VzcyB7IGZhbHNlIH07
Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGFjYWU2ZmUzOGRkZTI2YzI4Y2Y1ZDQ0OTExZmM1
YWMzMGIyNTg2NzQuLmVkZjE0MjRiYWY2ZDhiZmY5OThiMWM1MjgzYjdkMDc0ZTY4ODZjODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CkBAIC0xNTEsNiArMTUxLDcgQEAgTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01l
ZGlhQ29udHJvbHNIb3N0LmNwcAogCiBNb2R1bGVzL21lZGlhcmVjb3JkZXIvQmxvYkV2ZW50LmNw
cAogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwCitNb2R1bGVzL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcAogTW9kdWxlcy9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmNwcAogCiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9IVE1M
TWVkaWFFbGVtZW50TWVkaWFTZXNzaW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ0ZmIwZDM2ODJiZWNiNWQ0MjgwYTdm
ZmYyNmJjYjVkZGEwOTYyODUuLjNkZDkxMTI4YTQ3ZDkzODA0NWM4ZDg1NmVkZWY5ZTU4OTYwNDQx
ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTExMDEsNiArMTEwMSw3IEBACiAJCTQxNzYxMkIwMUUzQTk5NDAwMEMzRDgxRCAv
KiBMaWJXZWJSVENNZWRpYUVuZHBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTc2MTJBQzFFM0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDTWVk
aWFFbmRwb2ludC5oICovOyB9OwogCQk0MTc2MTJCMTFFM0E5OTQwMDBDM0Q4MUQgLyogTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzYxMkFEMUUzQTk5M0IwMEMzRDgxRCAvKiBMaWJXZWJSVENQ
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwICovOyB9OwogCQk0MTc2MTJCMjFFM0E5OTQwMDBDM0Q4
MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc2MTJBRTFFM0E5OTNCMDBDM0Q4MUQgLyog
TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmggKi87IH07CisJCTQxNzZFODk2MjNDMzUz
N0IwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzZFODhGMjNDMzQ4RDIwMDNFODNGRSAvKiBN
ZWRpYVJlY29yZGVyUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk0MTdEQTZEOTEzNzM0RTZFMDA3QzU3RkIgLyogSW50ZXJuYWxzLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxN0RBNENG
MTM3MzQzMjYwMDdDNTdGQiAvKiBJbnRlcm5hbHMuY3BwICovOyB9OwogCQk0MTdEQTZEQTEzNzM0
RTZFMDA3QzU3RkIgLyogSW50ZXJuYWxzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTdEQTRDRTEzNzM0MzI2MDA3QzU3RkIgLyogSW50ZXJuYWxzLmgg
Ki87IH07CiAJCTQxN0RBNzFEMTM3MzVERkEwMDdDNTdGQiAvKiBKU0ludGVybmFscy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTdEQTcxQjEzNzM1
REZBMDA3QzU3RkIgLyogSlNJbnRlcm5hbHMuY3BwICovOyB9OwpAQCAtMTM3NCw5ICsxMzc1LDkg
QEAKIAkJNEJERUEzMkMyMTgwMzNFQjAwNTJERkNEIC8qIEpTV29ya2xldEdsb2JhbFNjb3BlQmFz
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEJERUEz
MkIyMTgwMzNFQjAwNTJERkNEIC8qIEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5oICovOyB9Owog
CQk0RDNCMDBBQjIxNUQ2OUE3MDA3NkI5ODMgLyogTWVkaWFSZWNvcmRlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEQzQjAwQTkyMTVENjlBNzAwNzZC
OTgzIC8qIE1lZGlhUmVjb3JkZXIuaCAqLzsgfTsKIAkJNEQzQjAwQUYyMTVENkE2OTAwNzZCOTgz
IC8qIEJsb2JFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEQzQjAwQUQyMTVENkE2OTAwNzZCOTgzIC8qIEJsb2JFdmVudC5oICovOyB9OwotCQk0
RDNCNTAxNjIxN0U1OEI3MDA2NjVEQjEgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREM0I1MDE0MjE3RTU4Qjcw
MDY2NURCMSAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZS5oICovOyB9OworCQk0RDNCNTAxNjIxN0U1
OEI3MDA2NjVEQjEgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREM0I1MDE0MjE3RTU4QjcwMDY2NURCMSAvKiBN
ZWRpYVJlY29yZGVyUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTRENzNGOTQ2MjE4QkM1RkEwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVy
UHJpdmF0ZUFWRkltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDRENzNGOTQ0MjE4QkM1RkEwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFW
RkltcGwuaCAqLzsgfTsKLQkJNEQ3M0Y5NEUyMThDNEE4NzAwM0EzRUQ2IC8qIE1lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDRENzNGOTRDMjE4QzRBODcwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlckNvY29hLmggKi87IH07CisJCTRENzNGOTRFMjE4QzRBODcwMDNBM0VENiAvKiBN
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RDczRjk0QzIxOEM0QTg3MDAzQTNFRDYgLyogTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTREQjcxMzBEMjE2RUNCNEQwMDk2QTRERCAvKiBNZWRpYVJl
Y29yZGVyRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNERCNzEzMEMyMTZFQzJCRDAwOTZBNEREIC8qIE1lZGlhUmVjb3JkZXJFcnJvckV2
ZW50LmggKi87IH07CiAJCTRFMTk1OTIyMEEzOURBQkEwMDIyMEZFNSAvKiBNZWRpYUZlYXR1cmVO
YW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEUx
OTU5MjAwQTM5REFCQTAwMjIwRkU1IC8qIE1lZGlhRmVhdHVyZU5hbWVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNEUxOTU5MkEwQTM5REFDQzAw
MjIwRkU1IC8qIE1lZGlhUXVlcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDRFMTk1OTI0MEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTc0MDAsNiAr
NzQwMSw4IEBACiAJCTQxNzYxMkFFMUUzQTk5M0IwMEMzRDgxRCAvKiBMaWJXZWJSVENQZWVyQ29u
bmVjdGlvbkJhY2tlbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmg7IHBhdGggPSBsaWJ3ZWJydGMvTGliV2ViUlRDUGVl
ckNvbm5lY3Rpb25CYWNrZW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzY5
MDAzMjJGQ0Q4RjIwMEIxNTc2RCAvKiBNZWRpYVNvdXJjZVJlZ2lzdHJ5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU291cmNlUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDE3NjkwMDQyMkZDRDhGMjAwQjE1NzZEIC8qIE1lZGlhU291cmNl
UmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFT
b3VyY2VSZWdpc3RyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODhG
MjNDMzQ4RDIwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFSZWNvcmRlclByb3ZpZGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODkxMjNDMzRCNzUwMDNFODNGRSAvKiBNZWRpYVJlY29y
ZGVyUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFSZWNvcmRlclByb3ZpZGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3N0Y1MUMyMzgyNTQ0MDAwQzA0
NDg2IC8qIEJhc2VBdWRpb1NoYXJlZFVuaXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQmFzZUF1ZGlvU2hhcmVkVW5pdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxNzdGNTFFMjM4MjU0NUUwMEMwNDQ4NiAvKiBCYXNlQXVkaW9TaGFyZWRVbml0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VBdWRpb1NoYXJlZFVuaXQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3REE0Q0UxMzczNDMyNjAwN0M1N0ZC
IC8qIEludGVybmFscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRlcm5h
bHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4OTMzLDYgKzE4OTM2LDggQEAK
IAkJCQk0REI3MTMwRTIxNkVFQkFFMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQu
Y3BwICovLAogCQkJCTREQjcxMzBDMjE2RUMyQkQwMDk2QTRERCAvKiBNZWRpYVJlY29yZGVyRXJy
b3JFdmVudC5oICovLAogCQkJCTREQjcxMzBBMjE2RUMyQkMwMDk2QTRERCAvKiBNZWRpYVJlY29y
ZGVyRXJyb3JFdmVudC5pZGwgKi8sCisJCQkJNDE3NkU4OTEyM0MzNEI3NTAwM0U4M0ZFIC8qIE1l
ZGlhUmVjb3JkZXJQcm92aWRlci5jcHAgKi8sCisJCQkJNDE3NkU4OEYyM0MzNDhEMjAwM0U4M0ZF
IC8qIE1lZGlhUmVjb3JkZXJQcm92aWRlci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBtZWRpYXJl
Y29yZGVyOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTMxNDc1LDYgKzMxNDgwLDcg
QEAKIAkJCQk0RDNCNTAxNjIxN0U1OEI3MDA2NjVEQjEgLyogTWVkaWFSZWNvcmRlclByaXZhdGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTRENzNGOTQ2MjE4QkM1RkEwMDNBM0VENiAvKiBNZWRpYVJl
Y29yZGVyUHJpdmF0ZUFWRkltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTRENzNGOTRFMjE4QzRB
ODcwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0MTc2RTg5NjIzQzM1MzdCMDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByb3Zp
ZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDOTA4NDNEMDFCMThFNDdEMDBCNjg1NjQgLyogTWVk
aWFSZW1vdGVDb250cm9scy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q4QUNBOEYxRDIzOTcxOTAw
RUNDNTlFIC8qIE1lZGlhUmVtb3RlU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFRUZD
RDdBMTlEQjMxRjcwMDM4NzZENyAvKiBNZWRpYVJlc291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggMGViNWExMjBhZjg3
NjUzMGM1YzZjZjdkYWUwMDk5MjFmYTM2NDI5YS4uNTM0ZTVjMDUwZTQ3ZjBhNDk4MmE1OGM3Njdk
ZmRmMGM2ZWE3MTk3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAg
LTUzLDYgKzUzLDggQEAKICNpbmNsdWRlICJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JDbGllbnQuaCIKICNpbmNsdWRlICJMaWJXZWJSVENQcm92aWRlci5oIgor
I2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlLmgiCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRl
clByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgiCiAjaW5jbHVk
ZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VDb25maWd1cmF0aW9uLmgiCkBAIC01NzEsMTAgKzU3
MywxOSBAQCBSZWY8U3RvcmFnZU5hbWVzcGFjZT4gRW1wdHlTdG9yYWdlTmFtZXNwYWNlUHJvdmlk
ZXI6OmNyZWF0ZVRyYW5zaWVudExvY2FsU3RvcmFnZQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEVtcHR5U3RvcmFnZU5hbWVzcGFjZSB7IHNlc3Npb25JRCB9KTsKIH0KIAotY2xhc3MgRW1wdHlT
dG9yYWdlU2Vzc2lvblByb3ZpZGVyIDogcHVibGljIFN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIgewor
Y2xhc3MgRW1wdHlTdG9yYWdlU2Vzc2lvblByb3ZpZGVyIGZpbmFsIDogcHVibGljIFN0b3JhZ2VT
ZXNzaW9uUHJvdmlkZXIgewogICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiogc3RvcmFnZVNlc3Np
b24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CiB9OwogCitjbGFzcyBFbXB0eU1l
ZGlhUmVjb3JkZXJQcm92aWRlciBmaW5hbCA6IHB1YmxpYyBNZWRpYVJlY29yZGVyUHJvdmlkZXIg
eworcHVibGljOgorICAgIEVtcHR5TWVkaWFSZWNvcmRlclByb3ZpZGVyKCkgPSBkZWZhdWx0Owor
cHJpdmF0ZToKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxN
ZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoY29uc3QgTWVk
aWFTdHJlYW1Qcml2YXRlJikgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQorI2VuZGlmCit9Owor
CiBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25m
aWd1cmF0aW9uIHsKQEAgLTU4NSw3ICs1OTYsOCBAQCBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29u
ZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAg
ICAgICBDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlKCksCiAgICAgICAgIGFkb3B0UmVmKCpu
ZXcgRW1wdHlCYWNrRm9yd2FyZENsaWVudCksCiAgICAgICAgIENvb2tpZUphcjo6Y3JlYXRlKGFk
b3B0UmVmKCpuZXcgRW1wdHlTdG9yYWdlU2Vzc2lvblByb3ZpZGVyKSksCi0gICAgICAgIG1ha2VV
bmlxdWVSZWY8RW1wdHlQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCkKKyAgICAgICAgbWFrZVVuaXF1
ZVJlZjxFbXB0eVByb2dyZXNzVHJhY2tlckNsaWVudD4oKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJl
ZjxFbXB0eU1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgIH07CiAKICAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8RW1wdHlDaHJvbWVDbGllbnQ+IGR1bW15Q2hyb21lQ2xpZW50OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAKaW5kZXggNjNjMDUzNDM3OThkMzEwMmQ4MDMyZDM1NzE5M2NjOWJhOTM3NjYxOS4u
MDEwMjc5ZmVmYzQ1Zjk4NmYyODA1YmU3N2JmM2NjZGY3MWU1MWRjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCkBAIC0yNDYsNiArMjQ2LDcgQEAgUGFnZTo6UGFnZShQYWdlQ29uZmlndXJhdGlvbiYmIHBh
Z2VDb25maWd1cmF0aW9uKQogI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogICAgICwgbV9z
cGVlY2hTeW50aGVzaXNDbGllbnQoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5zcGVlY2hTeW50
aGVzaXNDbGllbnQpKQogI2VuZGlmCisgICAgLCBtX21lZGlhUmVjb3JkZXJQcm92aWRlcigoV1RG
TW92ZShwYWdlQ29uZmlndXJhdGlvbi5tZWRpYVJlY29yZGVyUHJvdmlkZXIpKSkKICAgICAsIG1f
bGliV2ViUlRDUHJvdmlkZXIoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5saWJXZWJSVENQcm92
aWRlcikpCiAgICAgLCBtX3ZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eShTY3JvbGxFbGFzdGljaXR5
QWxsb3dlZCkKICAgICAsIG1faG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkoU2Nyb2xsRWxhc3Rp
Y2l0eUFsbG93ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDJjM2Y3YzM0MzM4N2ZiNDhjMmY1NWUzZWE2
ZTk1YzNlOWY1NDc2NTAuLmUxZjI3Y2ZjOGNjOTc1OTNjYWUyNTRkNmU4ZTY1MDdjYWU3MGUyYzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCkBAIC0xMTAsNiArMTEwLDcgQEAgY2xhc3MgTGliV2ViUlRDUHJvdmlk
ZXI7CiBjbGFzcyBMb3dQb3dlck1vZGVOb3RpZmllcjsKIGNsYXNzIE1lZGlhQ2FuU3RhcnRMaXN0
ZW5lcjsKIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXQ7CitjbGFzcyBNZWRpYVJlY29yZGVyUHJv
dmlkZXI7CiBjbGFzcyBQYWdlQ29uZmlndXJhdGlvbjsKIGNsYXNzIFBhZ2VDb25zb2xlQ2xpZW50
OwogY2xhc3MgUGFnZURlYnVnZ2FibGU7CkBAIC01ODQsNiArNTg1LDcgQEAgcHVibGljOgogICAg
IERhdGFiYXNlUHJvdmlkZXImIGRhdGFiYXNlUHJvdmlkZXIoKSB7IHJldHVybiBtX2RhdGFiYXNl
UHJvdmlkZXI7IH0KICAgICBDYWNoZVN0b3JhZ2VQcm92aWRlciYgY2FjaGVTdG9yYWdlUHJvdmlk
ZXIoKSB7IHJldHVybiBtX2NhY2hlU3RvcmFnZVByb3ZpZGVyOyB9CiAgICAgU29ja2V0UHJvdmlk
ZXImIHNvY2tldFByb3ZpZGVyKCkgeyByZXR1cm4gbV9zb2NrZXRQcm92aWRlcjsgfQorICAgIE1l
ZGlhUmVjb3JkZXJQcm92aWRlciYgbWVkaWFSZWNvcmRlclByb3ZpZGVyKCkgeyByZXR1cm4gbV9t
ZWRpYVJlY29yZGVyUHJvdmlkZXI7IH0KICAgICBDb29raWVKYXImIGNvb2tpZUphcigpIHsgcmV0
dXJuIG1fY29va2llSmFyLmdldCgpOyB9CiAKICAgICBTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIm
IHN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcigpIHsgcmV0dXJuIG1fc3RvcmFnZU5hbWVzcGFjZVBy
b3ZpZGVyLmdldCgpOyB9CkBAIC03OTUsNiArNzk3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8U3BlZWNoU3ludGhlc2lzQ2xpZW50PiBtX3NwZWVjaFN5bnRoZXNpc0NsaWVudDsK
ICNlbmRpZgogCisgICAgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4gbV9tZWRpYVJl
Y29yZGVyUHJvdmlkZXI7CiAgICAgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiBtX2xpYldl
YlJUQ1Byb3ZpZGVyOwogICAgIFJUQ0NvbnRyb2xsZXIgbV9ydGNDb250cm9sbGVyOwogCkBAIC05
MjAsNyArOTIzLDYgQEAgcHJpdmF0ZToKICAgICBSZWY8VXNlckNvbnRlbnRQcm92aWRlcj4gbV91
c2VyQ29udGVudFByb3ZpZGVyOwogICAgIFJlZjxWaXNpdGVkTGlua1N0b3JlPiBtX3Zpc2l0ZWRM
aW5rU3RvcmU7CiAgICAgUmVmUHRyPFdoZWVsRXZlbnRUZXN0TW9uaXRvcj4gbV93aGVlbEV2ZW50
VGVzdE1vbml0b3I7Ci0KICAgICBIYXNoU2V0PEFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlcio+
IG1fYWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyczsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9V
U0FHRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggZWY4
NzdhNTU4ODIxZTQ0NjdmNDVjYTNjMDUyMWNhZjIyZDkwN2RkZS4uMzM4ZjRlN2MxOTEyMWFmMTc5
NDJkMDE3MjRjZTI5MTEzYzVkM2YyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmln
dXJhdGlvbi5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJEcmFnQ2xpZW50LmgiCiAj
aW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIK
KyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCIKICNpbmNsdWRlICJQZXJmb3JtYW5j
ZUxvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJQbHVnSW5DbGllbnQuaCIKICNpbmNsdWRlICJQ
bHVnaW5JbmZvUHJvdmlkZXIuaCIKQEAgLTU1LDcgKzU2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1QYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNsaWVudCwgUmVm
PFNvY2tldFByb3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJv
dmlkZXI+JiYgbGliV2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiBj
YWNoZVN0b3JhZ2VQcm92aWRlciwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJhY2tGb3J3YXJk
Q2xpZW50LCBSZWY8Q29va2llSmFyPiYmIGNvb2tpZUphciwgVW5pcXVlUmVmPFByb2dyZXNzVHJh
Y2tlckNsaWVudD4mJiBwcm9ncmVzc1RyYWNrZXJDbGllbnQpCitQYWdlQ29uZmlndXJhdGlvbjo6
UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRp
dG9yQ2xpZW50PiYmIGVkaXRvckNsaWVudCwgUmVmPFNvY2tldFByb3ZpZGVyPiYmIHNvY2tldFBy
b3ZpZGVyLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYgbGliV2ViUlRDUHJvdmlkZXIs
IFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiBjYWNoZVN0b3JhZ2VQcm92aWRlciwgUmVmPEJh
Y2tGb3J3YXJkQ2xpZW50PiYmIGJhY2tGb3J3YXJkQ2xpZW50LCBSZWY8Q29va2llSmFyPiYmIGNv
b2tpZUphciwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiBwcm9ncmVzc1RyYWNr
ZXJDbGllbnQsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYgbWVkaWFSZWNvcmRl
clByb3ZpZGVyKQogICAgIDogc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIGVkaXRvckNsaWVu
dChXVEZNb3ZlKGVkaXRvckNsaWVudCkpCiAgICAgLCBzb2NrZXRQcm92aWRlcihXVEZNb3ZlKHNv
Y2tldFByb3ZpZGVyKSkKQEAgLTY0LDYgKzY1LDcgQEAgUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VD
b25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckMK
ICAgICAsIGJhY2tGb3J3YXJkQ2xpZW50KFdURk1vdmUoYmFja0ZvcndhcmRDbGllbnQpKQogICAg
ICwgY29va2llSmFyKFdURk1vdmUoY29va2llSmFyKSkKICAgICAsIGNhY2hlU3RvcmFnZVByb3Zp
ZGVyKFdURk1vdmUoY2FjaGVTdG9yYWdlUHJvdmlkZXIpKQorICAgICwgbWVkaWFSZWNvcmRlclBy
b3ZpZGVyKFdURk1vdmUobWVkaWFSZWNvcmRlclByb3ZpZGVyKSkKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IDE5MWEwMmI2MTVmNDBhOTgwYzQyMWY3
ZmJmM2YzMTZkMmIxNjRmZWYuLjNhOGVkMzM0NDBjMmMxODg1MjgzMTg5MThhNzUyMmI5MjE3ZjQ3
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKQEAgLTUyLDYgKzUy
LDcgQEAgY2xhc3MgRWRpdG9yQ2xpZW50OwogY2xhc3MgRnJhbWVMb2FkZXJDbGllbnQ7CiBjbGFz
cyBJbnNwZWN0b3JDbGllbnQ7CiBjbGFzcyBMaWJXZWJSVENQcm92aWRlcjsKK2NsYXNzIE1lZGlh
UmVjb3JkZXJQcm92aWRlcjsKIGNsYXNzIFBheW1lbnRDb29yZGluYXRvckNsaWVudDsKIGNsYXNz
IFBlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudDsKIGNsYXNzIFBsdWdJbkNsaWVudDsKQEAgLTY4LDcg
KzY5LDcgQEAgY2xhc3MgU3BlZWNoU3ludGhlc2lzQ2xpZW50OwogY2xhc3MgUGFnZUNvbmZpZ3Vy
YXRpb24gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDb25maWd1cmF0aW9uKTsgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgUGFnZUNv
bmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYsIFJl
ZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmLCBSZWY8
Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiwgUmVmPENv
b2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJik7CisgICAgV0VC
Q09SRV9FWFBPUlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQsIFVuaXF1ZVJlZjxF
ZGl0b3JDbGllbnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVlUmVmPExpYldlYlJU
Q1Byb3ZpZGVyPiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJlZjxCYWNrRm9yd2Fy
ZENsaWVudD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNs
aWVudD4mJiwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgflBhZ2VDb25maWd1cmF0aW9uKCk7CiAgICAgUGFnZUNvbmZpZ3VyYXRpb24oUGFn
ZUNvbmZpZ3VyYXRpb24mJik7CiAKQEAgLTEyMyw2ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgUmVm
UHRyPERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI+IGRldmljZU9yaWVudGF0aW9uVXBk
YXRlUHJvdmlkZXI7CiAjZW5kaWYKICAgICBWZWN0b3I8U3RyaW5nPiBjb3JzRGlzYWJsaW5nUGF0
dGVybnM7CisgICAgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4gbWVkaWFSZWNvcmRl
clByb3ZpZGVyOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQ
cml2YXRlV3JpdGVyQ29jb2EuaAppbmRleCBmZmY0NWQ2MzkzOGRiMzM4YjQ3MjRiN2E3NDZjZTM3
MjRmYTFkM2FiLi41MTk3OGJiNmQ4ZDFhMWIwZTVjMWM3YTAxNTEyMjJiZDhiZGZiMmE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaApA
QCAtNDksOSArNDksMTAgQEAgY2xhc3MgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKIGNsYXNzIE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlOwogY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CiAKLWNsYXNz
IE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWlu
PiwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiB7Citj
bGFzcyBXRUJDT1JFX0VYUE9SVCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciA6IHB1YmxpYyBU
aHJlYWRTYWZlUmVmQ291bnRlZDxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciwgV1RGOjpEZXN0
cnVjdGlvblRocmVhZDo6TWFpbj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlcj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8TWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXI+IGNyZWF0ZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogYXVk
aW9UcmFjaywgY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIHZpZGVvVHJhY2spOworICAg
IHN0YXRpYyBSZWZQdHI8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IGNyZWF0ZShib29sIGhh
c0F1ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOwogICAgIH5NZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlcigpOwogICAgIAogICAgIGJvb2wgc2V0dXBXcml0ZXIoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3Jk
ZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQppbmRleCA5MmZlMmE0
NTBlNTkzZjI0YTk2OGZhZWYwYTZiOTZmOTVhZGUzNTEzLi4wNjljODg3NGYwMDllMDk2YzI0OWEw
NzgwMTkwZGQ4MDQ4YzZiOWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCkBAIC05MCw2ICs5MCwxNyBAQCBzdGF0aWMgTlNTdHJp
bmcgKmdldEFWRW5jb2RlckJpdFJhdGVLZXlXaXRoRmFsbGJhY2soKQogfQogCiBSZWZQdHI8TWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjcmVh
dGUoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIGF1ZGlvVHJhY2ssIGNvbnN0IE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlKiB2aWRlb1RyYWNrKQoreworICAgIGludCB3aWR0aCA9IDAsIGhl
aWdodCA9IDA7CisgICAgaWYgKHZpZGVvVHJhY2spIHsKKyAgICAgICAgYXV0byYgc2V0dGluZ3Mg
PSB2aWRlb1RyYWNrLT5zZXR0aW5ncygpOworICAgICAgICB3aWR0aCA9IHNldHRpbmdzLndpZHRo
KCk7CisgICAgICAgIGhlaWdodCA9IHNldHRpbmdzLmhlaWdodCgpOworICAgIH0KKyAgICByZXR1
cm4gY3JlYXRlKCEhYXVkaW9UcmFjaywgd2lkdGgsIGhlaWdodCk7Cit9CisKK1JlZlB0cjxNZWRp
YVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNyZWF0
ZShib29sIGhhc0F1ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCiB7CiAgICAgTlNTdHJpbmcg
KmRpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAInZpZGVv
cyIpOwogICAgIE5TU3RyaW5nICpmaWxlbmFtZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0
OkAiLyVsbGQubXA0IiwgQ01DbG9ja0dldFRpbWUoQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSku
dmFsdWVdOwpAQCAtMTA2LDEyICsxMTcsMTEgQEAgUmVmUHRyPE1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyPiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y3JlYXRlKGNvbnN0IE1lZGkKIAog
ICAgIGF1dG8gd3JpdGVyID0gYWRvcHRSZWYoKm5ldyBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
cihXVEZNb3ZlKGF2QXNzZXRXcml0ZXIpLCBXVEZNb3ZlKGZpbGVQYXRoKSkpOwogCi0gICAgaWYg
KGF1ZGlvVHJhY2sgJiYgIXdyaXRlci0+c2V0QXVkaW9JbnB1dCgpKQorICAgIGlmIChoYXNBdWRp
byAmJiAhd3JpdGVyLT5zZXRBdWRpb0lucHV0KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgaWYgKHZpZGVvVHJhY2spIHsKLSAgICAgICAgYXV0byYgc2V0dGluZ3MgPSB2aWRlb1Ry
YWNrLT5zZXR0aW5ncygpOwotICAgICAgICBpZiAoIXdyaXRlci0+c2V0VmlkZW9JbnB1dChzZXR0
aW5ncy53aWR0aCgpLCBzZXR0aW5ncy5oZWlnaHQoKSkpCisgICAgaWYgKHdpZHRoICYmIGhlaWdo
dCkgeworICAgICAgICBpZiAoIXdyaXRlci0+c2V0VmlkZW9JbnB1dCh3aWR0aCwgaGVpZ2h0KSkK
ICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAppbmRl
eCA0YTA2ODQ0MzhjZTY2NWQ3Y2QwNGRhMTBlYTExYTViYzJiNmYyOWY1Li5kZTQ0ZDg4ZWY1Yjlj
MzgxNDA0NGUwNWY3YzI4YmVlMThhNzJlZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaApAQCAtODEsNyAr
ODEsNyBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9
CiAKLSAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciB0cmFja3MoKSBjb25zdDsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciB0cmFja3MoKSBj
b25zdDsKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogYWN0aXZlVmlkZW9UcmFjaygpIHsg
cmV0dXJuIG1fYWN0aXZlVmlkZW9UcmFjazsgfQogCiAgICAgYm9vbCBhY3RpdmUoKSBjb25zdCB7
IHJldHVybiBtX2lzQWN0aXZlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAppbmRleCAzOTFh
NjUzZjQ4ZTNlN2UzMmE0ODJjNzc5N2M3ZGM3NzEzMTUwMjViLi4wMDcxNmZkMGE0NTYxNGRlNmNk
OGFiYWRlMDU5MGYyYmYxMGMwMjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKQEAgLTEw
MCw3ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBj
bG9uZSgpOwogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKCkgeyByZXR1cm4gbV9z
b3VyY2UuZ2V0KCk7IH0KLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUoKSBjb25z
dDsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUoKSBj
b25zdDsKIAogICAgIHZvaWQgZW5kVHJhY2soKTsKIApAQCAtMTEwLDcgKzExMCw3IEBAIHB1Ymxp
YzoKICAgICBib29sIGhhc09ic2VydmVyKE9ic2VydmVyJikgY29uc3Q7CiAjZW5kaWYKIAotICAg
IGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdDsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRp
bmdzKCkgY29uc3Q7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYg
Y2FwYWJpbGl0aWVzKCkgY29uc3Q7CiAKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3Qg
TWVkaWFDb25zdHJhaW50cyYsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5Q29uc3RyYWludHNI
YW5kbGVyJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGJhOTQxOGM1
MGM3OWYwMzg5NWUzN2JjN2IzNzdmYWE5M2I1NTczYjYuLjY4YWI0MjM4NzZhNjUwOWU1ZGJlMjBm
MDE2MmY0MjdmZTA5MDRjNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAg
LTEyMiw2ICsxMjIsNyBAQAogI2luY2x1ZGUgIk1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rv
cnkuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIu
aCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCIKICNpbmNsdWRlICJNZWRpYVJl
c291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFjay5oIgogI2luY2x1ZGUg
Ik1lbW9yeUNhY2hlLmgiCkBAIC01NTAsNiArNTUxLDggQEAgdm9pZCBJbnRlcm5hbHM6OnJlc2V0
VG9Db25zaXN0ZW50U3RhdGUoUGFnZSYgcGFnZSkKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRJbnRlcnJ1
cHRBdWRpb09uUGFnZVZpc2liaWxpdHlDaGFuZ2VFbmFibGVkKGZhbHNlKTsKKyAgICBXZWJDb3Jl
OjpNZWRpYVJlY29yZGVyOjpzZXRDdXN0b21Qcml2YXRlUmVjb3JkZXJDcmVhdG9yKG51bGxwdHIp
OworICAgIHBhZ2UubWVkaWFSZWNvcmRlclByb3ZpZGVyKCkuc2V0VXNlR1BVUHJvY2Vzcyh0cnVl
KTsKICNlbmRpZgogCiAgICAgSFRNTENhbnZhc0VsZW1lbnQ6OnNldE1heFBpeGVsTWVtb3J5Rm9y
VGVzdGluZygwKTsgLy8gVGhpcyBtZWFucyB1c2UgdGhlIGRlZmF1bHQgdmFsdWUuCkBAIC0xNTU4
LDcgKzE1NjEsOSBAQCB2b2lkIEludGVybmFsczo6c2V0VXNlR1BVUHJvY2Vzc0ZvcldlYlJUQyhi
b29sIHVzZUdQVVByb2Nlc3MpCiAgICAgYXV0byogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQo
KTsKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKQogICAgICAgICByZXR1
cm47CisKICAgICBkb2N1bWVudC0+cGFnZSgpLT5saWJXZWJSVENQcm92aWRlcigpLnNldFVzZUdQ
VVByb2Nlc3ModXNlR1BVUHJvY2Vzcyk7CisgICAgZG9jdW1lbnQtPnBhZ2UoKS0+bWVkaWFSZWNv
cmRlclByb3ZpZGVyKCkuc2V0VXNlR1BVUHJvY2Vzcyh1c2VHUFVQcm9jZXNzKTsKICNlbmRpZgog
fQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3QKaW5kZXggNzk5NGUzY2E3Nzc2MzI5ZDZmNzVkN2FhZjBjOTNmZDlhYTA1OWUxMC4uYjk4ODBi
YzBhY2Y2ZjYxYzAyYjNiMzdkMmM0Y2JlZWJhMTAyMDgyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTksNiArMTksOCBAQCAkKFBST0pF
Q1RfRElSKS9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVByb2Nlc3Muc2IuaW4K
ICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nl
c3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElS
KS9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluCiskKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5tZXNzYWdl
cy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5h
Z2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90
b2NvbHMvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLm1lc3NhZ2VzLmluCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCAw
Y2QyM2UwMWJiYWNkMmVjNGEwYmRjM2JkZmYyYmUwZDdiNjBiMDFiLi5kNzIwNjIzYWJhY2FkZGU5
N2M1ZjM1YzI3MzJmNThkZjliOTYyNzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEyOSw2ICsxMjksMTIgQEAgJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
TWVzc2FnZXNSZXAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRp
YVJlY29yZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2VzLmgKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVjb3JkZXJN
ZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlTWVkaWFSZWNvcmRlcnNNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlY29yZGVyc01l
c3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZU1lZGlhUmVjb3JkZXJzTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1l
c3NhZ2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggOWQzZTJhOTBj
N2I0ZDkwYTQyNmM3NmE0ZTA1ZTZiMmY4MWNjMGU5ZS4uYTU2ODYwMWI3N2IxZGJkN2ZmZDYzNmRl
N2I2MzRiMWZlMmIxMjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTQzLDYg
KzE0Myw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHkgXAogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciBcCiAgICAgUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkgXAorICAgIFJlbW90ZU1lZGlhUmVjb3JkZXIgXAorICAg
IFJlbW90ZU1lZGlhUmVjb3JkZXJzIFwKICAgICBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciBc
CiAgICAgUmVtb3RlT2JqZWN0UmVnaXN0cnkgXAogICAgIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAppbmRleCA1MmE5NWNlMGRlZDcwM2Q2MWQzNGE5ZDE3ZjBjOGI0MmU2
NjRmZGRhLi43ZjY2MzNhN2Q3OThhMTU0NjQ2ZTI5OWI2OTgxZDkyNTNiMmNjNzdjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCkBAIC0zOSw2ICszOSw5IEBACiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWFQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2Vz
LmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAi
UmVtb3RlTWVkaWFSZWNvcmRlcnMuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlY29yZGVyc01l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaCIKICNpbmNs
dWRlICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5oIgpAQCAtMTM3LDkgKzE0MCw3IEBA
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkmIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OnVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyCiAKICAgICByZXR1cm4gKm1fdXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTsKIH0KLSNlbmRpZgogCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShM
SUJXRUJSVEMpCiBMaWJXZWJSVENDb2RlY3NQcm94eSYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6bGliV2ViUlRDQ29kZWNzUHJveHkoKQogewogICAgIGlmICghbV9saWJXZWJSVENDb2RlY3NQ
cm94eSkKQEAgLTE0OSw2ICsxNTAsMTYgQEAgTGliV2ViUlRDQ29kZWNzUHJveHkmIEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OmxpYldlYlJUQ0NvZGVjc1Byb3h5KCkKIH0KICNlbmRpZgogCisj
aWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCitSZW1vdGVNZWRpYVJlY29yZGVy
cyYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bWVkaWFSZWNvcmRlcnMoKQoreworICAgIGlm
ICghbV9yZW1vdGVNZWRpYVJlY29yZGVycykKKyAgICAgICAgbV9yZW1vdGVNZWRpYVJlY29yZGVy
cyA9IG1ha2VVbmlxdWU8UmVtb3RlTWVkaWFSZWNvcmRlcnM+KCp0aGlzKTsKKworICAgIHJldHVy
biAqbV9yZW1vdGVNZWRpYVJlY29yZGVyczsKK30KKyNlbmRpZgorCiB2b2lkIEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewpAQCAtMTYzLDYgKzE3NCwxNCBAQCB2b2lkIEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgSQogICAgICAgICB1c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCkuZGlk
UmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkg
PT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXJzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkp
IHsKKyAgICAgICAgbWVkaWFSZWNvcmRlcnMoKS5kaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9j
ZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlm
IChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFS
ZWNvcmRlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIG1lZGlhUmVjb3JkZXJz
KCkuZGlkUmVjZWl2ZVJlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIpOworICAgICAgICByZXR1cm47CisgICAgfQogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0Ep
ICYmIFVTRShMSUJXRUJSVEMpCiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgp
ID09IE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaAppbmRleCBhYzcxMjVkNzM4ZDg2ODg4ZWVhOGI0YTkyNTE1ZjlkZTRkMWY2YjA0
Li44OWM0Y2ExYzIyMmZhNWM5YTU0ZmE2YzA1NmRhOTgyM2JiNTZlZDRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAg
LTQxLDggKzQxLDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBHUFVQcm9jZXNzOwogY2xh
c3MgTGliV2ViUlRDQ29kZWNzUHJveHk7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eTsKLWNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7CitjbGFzcyBSZW1vdGVN
ZWRpYVJlY29yZGVyczsKIGNsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOworY2xhc3Mg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKIAogY2xhc3MgR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcwogICAgIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cz4KQEAgLTcxLDYgKzcyLDcgQEAgcHJpdmF0ZToKICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09B
KSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkmIHVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoKTsKKyAgICBSZW1vdGVNZWRpYVJlY29y
ZGVycyYgbWVkaWFSZWNvcmRlcnMoKTsKICNlbmRpZgogCiAgICAgLy8gSVBDOjpDb25uZWN0aW9u
OjpDbGllbnQKQEAgLTg5LDYgKzkxLDcgQEAgcHJpdmF0ZToKICAgICBQQUw6OlNlc3Npb25JRCBt
X3Nlc3Npb25JRDsKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eT4gbV91c2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRp
YVJlY29yZGVycz4gbV9yZW1vdGVNZWRpYVJlY29yZGVyczsKICNlbmRpZgogI2lmIFBMQVRGT1JN
KENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVEND
b2RlY3NQcm94eT4gbV9saWJXZWJSVENDb2RlY3NQcm94eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVByb2Nlc3Mu
c2IuaW4KaW5kZXggZDYzMmJlZWJjYjM1ZDc0ZTM4ZTBjYjE4NjFiN2YwNTdhNWYzNmQ5NC4uOWI3
NDEyYmI0ZGE2Y2VmMmY3MmIyN2Y1YTQxZmRlZGE3MTY5ODA1ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVByb2Nlc3Muc2IuaW4K
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVBy
b2Nlc3Muc2IuaW4KQEAgLTgzNiwzICs4MzYsNyBAQAogICAgICAgICAoaW9raXQtdXNlci1jbGll
bnQtY2xhc3MgIklPVVNCSW50ZXJmYWNlVXNlckNsaWVudFYyIikpCiAgICAgKGFsbG93IGRldmlj
ZS1jYW1lcmEpKQogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKKworKGFsbG93IGZpbGUtcmVhZCog
ZmlsZS13cml0ZSogKHN1YnBhdGggKHBhcmFtICJEQVJXSU5fVVNFUl9DQUNIRV9ESVIiKSkpCisK
KyhhbGxvdyBmaWxlLXJlYWQqIGZpbGUtd3JpdGUqIChzdWJwYXRoIChwYXJhbSAiREFSV0lOX1VT
RVJfVEVNUF9ESVIiKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZDhhODVkNTc0YmNlN2Nh
YzMwM2Q2M2EyOWJiOTVmMGMzOWNjZjBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcApAQCAtMCwwICsxLDEz
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVN
ZWRpYVJlY29yZGVyLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL0NBUmluZ0J1ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VUcmFuc2ZlclNl
c3Npb25WVC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVtb3RlVmlkZW9TYW1wbGUuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0
aW9uSGFuZGxlci5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK3N0ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVJlY29yZGVyPiBSZW1vdGVNZWRp
YVJlY29yZGVyOjpjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlv
blRvV2ViUHJvY2VzcywgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIgaWRlbnRpZmllciwgYm9vbCBy
ZWNvcmRBdWRpbywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQoreworICAgIGF1dG8gd3JpdGVyID0g
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNyZWF0ZShyZWNvcmRBdWRpbywgd2lkdGgsIGhl
aWdodCk7CisgICAgaWYgKCF3cml0ZXIpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJl
dHVybiBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFSZWNvcmRlcj4obmV3IFJlbW90ZU1lZGlh
UmVjb3JkZXIgeyBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBpZGVudGlmaWVyLCB3cml0ZXIu
cmVsZWFzZU5vbk51bGwoKSwgcmVjb3JkQXVkaW8gfSk7Cit9CisKK1JlbW90ZU1lZGlhUmVjb3Jk
ZXI6OlJlbW90ZU1lZGlhUmVjb3JkZXIoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29u
bmVjdGlvblRvV2ViUHJvY2VzcywgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIgaWRlbnRpZmllciwg
UmVmPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiYmIHdyaXRlciwgYm9vbCByZWNvcmRBdWRp
bykKKyAgICA6IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcyhncHVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzKQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX3dyaXRlcihX
VEZNb3ZlKHdyaXRlcikpCit7CisgICAgaWYgKHJlY29yZEF1ZGlvKQorICAgICAgICBtX3JpbmdC
dWZmZXIgPSBtYWtlVW5pcXVlPENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5n
QnVmZmVyU3RvcmFnZT4obnVsbHB0cikpOworfQorCitSZW1vdGVNZWRpYVJlY29yZGVyOjp+UmVt
b3RlTWVkaWFSZWNvcmRlcigpCit7Cit9CisKK1NoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBSZW1v
dGVNZWRpYVJlY29yZGVyOjpzdG9yYWdlKCkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXItPnN0b3JhZ2UoKSk7Cit9CisKK3Zv
aWQgUmVtb3RlTWVkaWFSZWNvcmRlcjo6YXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQoY29uc3Qg
U2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhhbmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7Cisg
ICAgQVNTRVJUKG1fcmluZ0J1ZmZlcik7CisgICAgaWYgKCFtX3JpbmdCdWZmZXIpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKKworICAgIGlmICho
YW5kbGUuaXNOdWxsKCkpIHsKKyAgICAgICAgbV9yaW5nQnVmZmVyLT5kZWFsbG9jYXRlKCk7Cisg
ICAgICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25seShmYWxzZSk7CisgICAgICAgIHN0b3JhZ2UoKS5z
ZXRTdG9yYWdlKG51bGxwdHIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBt
ZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1hcChoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlv
bjo6UmVhZE9ubHkpOworICAgIHN0b3JhZ2UoKS5zZXRTdG9yYWdlKFdURk1vdmUobWVtb3J5KSk7
CisgICAgc3RvcmFnZSgpLnNldFJlYWRPbmx5KHRydWUpOworCisgICAgbV9yaW5nQnVmZmVyLT5h
bGxvY2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworfQorCit2b2lkIFJlbW90ZU1l
ZGlhUmVjb3JkZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUgdGltZSwgdWludDY0
X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1l
KQoreworICAgIEFTU0VSVChtX3JpbmdCdWZmZXIpOworICAgIGlmICghbV9yaW5nQnVmZmVyKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX3JpbmdCdWZmZXItPnNldEN1cnJlbnRGcmFtZUJvdW5k
cyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7CisKKyAgICBXZWJBdWRpb0J1ZmZlckxpc3QgYXVkaW9E
YXRhKG1fZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAgICBtX3JpbmdCdWZmZXItPmZl
dGNoKGF1ZGlvRGF0YS5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsK
KworICAgIG1fd3JpdGVyLT5hcHBlbmRBdWRpb1NhbXBsZUJ1ZmZlcihhdWRpb0RhdGEsIG1fZGVz
Y3JpcHRpb24sIHRpbWUsIG51bWJlck9mRnJhbWVzKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJl
Y29yZGVyOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSYm
IHJlbW90ZVNhbXBsZSkKK3sKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24gfHwgbV9p
bWFnZVRyYW5zZmVyU2Vzc2lvbi0+cGl4ZWxGb3JtYXQoKSAhPSByZW1vdGVTYW1wbGUudmlkZW9G
b3JtYXQoKSkKKyAgICAgICAgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiA9IEltYWdlVHJhbnNmZXJT
ZXNzaW9uVlQ6OmNyZWF0ZShyZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSk7CisKKyAgICBpZiAo
IW1faW1hZ2VUcmFuc2ZlclNlc3Npb24pIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9IG1faW1h
Z2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1lZGlhU2FtcGxlKHJlbW90ZVNhbXBsZS5zdXJmYWNl
KCksIHJlbW90ZVNhbXBsZS50aW1lKCksIHJlbW90ZVNhbXBsZS5zaXplKCkpOworICAgIGlmICgh
c2FtcGxlQnVmZmVyKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgbV93cml0ZXItPmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKHNh
bXBsZUJ1ZmZlci0+cGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOworfQor
Cit2b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXI6OmZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKElQQzo6RGF0YVJlZmVyZW5jZSYmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5n
PiBtcDRNaW1lVHlwZShNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgidmlkZW8vbXA0IikpOworICAg
IG1fd3JpdGVyLT5mZXRjaERhdGEoWyZtcDRNaW1lVHlwZSA9IG1wNE1pbWVUeXBlLmdldCgpLCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvJiYgZGF0
YSkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8qIHBvaW50ZXIgPSByZWludGVycHJldF9jYXN0PGNv
bnN0IHVpbnQ4X3QqPihkYXRhID8gZGF0YS0+ZGF0YSgpIDogbnVsbHB0cik7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKElQQzo6RGF0YVJlZmVyZW5jZSB7IHBvaW50ZXIsIGRhdGEgPyBkYXRh
LT5zaXplKCkgOiAwIH0sIG1wNE1pbWVUeXBlKTsKKyAgICB9KTsKK30KKwordm9pZCBSZW1vdGVN
ZWRpYVJlY29yZGVyOjpzdG9wUmVjb3JkaW5nKCkKK3sKKyAgICBtX3dyaXRlci0+c3RvcFJlY29y
ZGluZygpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NGE4ZDE3NTVj
NTk1MzBjMjMxMzZiNDc3YjlhOGEwODU0NDE0ZjU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmgKQEAgLTAsMCAr
MSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oQ09DT0Ep
ICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJJZGVudGlm
aWVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiU2hhcmVkTWVt
b3J5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaD4KKyNpbmNs
dWRlIDx3dGYvTWVkaWFUaW1lLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlv
bjsKK2NsYXNzIERhdGFSZWZlcmVuY2U7CitjbGFzcyBEZWNvZGVyOworfQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CitjbGFzcyBDQVJpbmdCdWZmZXI7CitjbGFzcyBJbWFnZVRyYW5zZmVyU2Vzc2lv
blZUOworY2xhc3MgUmVtb3RlVmlkZW9TYW1wbGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOworY2xhc3MgU2hhcmVkUmluZ0J1ZmZl
clN0b3JhZ2U7CisKK2NsYXNzIFJlbW90ZU1lZGlhUmVjb3JkZXIgOiBwcml2YXRlIElQQzo6TWVz
c2FnZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZU1lZGlhUmVjb3JkZXI+IGNyZWF0ZShHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIsIGJvb2wgcmVj
b3JkQXVkaW8sIGludCB3aWR0aCwgaW50IGhlaWdodCk7CisgICAgflJlbW90ZU1lZGlhUmVjb3Jk
ZXIoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgUmVtb3RlTWVkaWFSZWNvcmRlcihH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIsIFJlZjxX
ZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4mJiwgYm9vbCByZWNvcmRBdWRpbyk7
CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgYXVkaW9TYW1wbGVzU3Rv
cmFnZUNoYW5nZWQoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpD
QUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisgICAg
dm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lLCB1aW50NjRfdCBudW1iZXJPZkZy
YW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworICAgIHZvaWQg
dmlkZW9TYW1wbGVBdmFpbGFibGUoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUmJik7CisgICAg
dm9pZCBmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OkRhdGFSZWZlcmVuY2Um
JiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk+JiYpOworICAgIHZvaWQgc3RvcFJlY29yZGluZygp
OworCisgICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKTsKKworICAgIEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MmIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzczsKKyAgICBN
ZWRpYVJlY29yZGVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgUmVmPFdlYkNvcmU6Ok1l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiBtX3dyaXRlcjsKKworICAgIFdlYkNvcmU6OkNBQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uOworICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpDQVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVD4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbjsK
K307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzE0ZWRjNTM2MTAyM2VkYzc4Mjc4MGM0ZDQ2ZTlkMTViOTQ4MTM5ZgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRl
ci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM0IEBACisjIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisj
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFSZWNvcmRlciBOb3RSZWZDb3VudGVkIHsKKyAgICBB
dWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlIHN0
b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBkZXNjcmlwdGlv
biwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisgICAgQXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1l
ZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFt
ZSwgdWludDY0X3QgZW5kRnJhbWUpCisgICAgVmlkZW9TYW1wbGVBdmFpbGFibGUoV2ViQ29yZTo6
UmVtb3RlVmlkZW9TYW1wbGUgc2FtcGxlKQorICAgIEZldGNoRGF0YSgpIC0+IChJUEM6OkRhdGFS
ZWZlcmVuY2UgYnVmZmVyLCBTdHJpbmcgbWltZVR5cGUpIEFzeW5jCisgICAgU3RvcFJlY29yZGlu
ZygpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZGY4ZmUzYTUyMTAy
NzgxY2MzODJhYTFlNDcxYjMwNzE1YTdiNzYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5jcHAKQEAgLTAsMCAr
MSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1v
dGVNZWRpYVJlY29yZGVycy5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJEZWNvZGVy
LmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlci5oIgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworUmVtb3RlTWVkaWFSZWNvcmRlcnM6OlJlbW90ZU1lZGlhUmVjb3JkZXJzKEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCisgICAgOiBtX2dw
dUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcykKK3sKK30K
KworUmVtb3RlTWVkaWFSZWNvcmRlcnM6On5SZW1vdGVNZWRpYVJlY29yZGVycygpCit7Cit9CisK
K3ZvaWQgUmVtb3RlTWVkaWFSZWNvcmRlcnM6OmRpZFJlY2VpdmVSZW1vdGVNZWRpYVJlY29yZGVy
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rl
cikKK3sKKyAgICBpZiAoYXV0byogcmVjb3JkZXIgPSBtX3JlY29yZGVycy5nZXQobWFrZU9iamVj
dElkZW50aWZpZXI8TWVkaWFSZWNvcmRlcklkZW50aWZpZXJUeXBlPihkZWNvZGVyLmRlc3RpbmF0
aW9uSUQoKSkpKQorICAgICAgICByZWNvcmRlci0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlv
biwgZGVjb2Rlcik7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZWNvcmRlcnM6OmNyZWF0ZVJlY29y
ZGVyKE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgcmVjb3JkQXVkaW8s
IGludCB3aWR0aCwgaW50IGhlaWdodCkKK3sKKyAgICBBU1NFUlQoIW1fcmVjb3JkZXJzLmNvbnRh
aW5zKGlkZW50aWZpZXIpKTsKKyAgICBhdXRvIHJlY29yZGVyID0gUmVtb3RlTWVkaWFSZWNvcmRl
cjo6Y3JlYXRlKG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgaWRlbnRpZmllciwgcmVjb3Jk
QXVkaW8sIHdpZHRoLCBoZWlnaHQpOworICAgIGlmICghcmVjb3JkZXIpIHsKKyAgICAgICAgLy8g
RklYTUU6IFNlbmQgYmFjayBlcnJvci4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX3Jl
Y29yZGVycy5hZGQoaWRlbnRpZmllciwgV1RGTW92ZShyZWNvcmRlcikpOworfQorCit2b2lkIFJl
bW90ZU1lZGlhUmVjb3JkZXJzOjpyZWxlYXNlUmVjb3JkZXIoTWVkaWFSZWNvcmRlcklkZW50aWZp
ZXIgaWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQobV9yZWNvcmRlcnMuY29udGFpbnMoaWRlbnRp
ZmllcikpOworICAgIG1fcmVjb3JkZXJzLnJlbW92ZShpZGVudGlmaWVyKTsKK30KKworfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
TWVkaWFSZWNvcmRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
TWVkaWFSZWNvcmRlcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzZmMTc5NGE1MDQzNmNmYmYwZTJlNmEwOTg1
ODYwMzQzZGJhMjk1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5oCkBAIC0wLDAgKzEsNjcgQEAKKworCisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlcklkZW50aWZpZXIuaCIKKyNpbmNs
dWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1l
c3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247CitjbGFzcyBEZWNvZGVyOworfQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKK2NsYXNz
IFJlbW90ZU1lZGlhUmVjb3JkZXI7CisKK2NsYXNzIFJlbW90ZU1lZGlhUmVjb3JkZXJzIDogcHJp
dmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CitwdWJsaWM6CisgICAgZXhwbGljaXQgUmVtb3RlTWVkaWFSZWNvcmRlcnMoR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYpOworICAgIH5SZW1vdGVNZWRpYVJlY29yZGVycygpOworCisgICAgdm9p
ZCBkaWRSZWNlaXZlUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNz
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKSB7IGRp
ZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOyB9CisKK3ByaXZhdGU6CisgICAg
Ly8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworICAgIHZvaWQgY3JlYXRlUmVjb3Jk
ZXIoTWVkaWFSZWNvcmRlcklkZW50aWZpZXIsIGJvb2wgcmVjb3JkQXVkaW8sIGludCB3aWR0aCwg
aW50IGhlaWdodCk7CisgICAgdm9pZCByZWxlYXNlUmVjb3JkZXIoTWVkaWFSZWNvcmRlcklkZW50
aWZpZXIpOworCisgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9ncHVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOworICAgIEhhc2hNYXA8TWVkaWFSZWNvcmRlcklkZW50aWZpZXIsIHN0ZDo6
dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVJlY29yZGVyPj4gbV9yZWNvcmRlcnM7Cit9OworCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVNZWRpYVJlY29yZGVycy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93
ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRlNWRl
OTI5MjY1NDQ3YTVmMGFlY2UwNmE0NmMyMDU1ZGQ1ZWZlNQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMubWVzc2Fn
ZXMuaW4KQEAgLTAsMCArMSwzMSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt
ZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
IyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3Nh
Z2VzIC0+IFJlbW90ZU1lZGlhUmVjb3JkZXJzIE5vdFJlZkNvdW50ZWQgeworICAgIENyZWF0ZVJl
Y29yZGVyKFdlYktpdDo6TWVkaWFSZWNvcmRlcklkZW50aWZpZXIgaWQsIGJvb2wgaGFzQXVkaW8s
IGludCB3aWR0aCwgaW50IGhlaWdodCkKKyAgICBSZWxlYXNlUmVjb3JkZXIoV2ViS2l0OjpNZWRp
YVJlY29yZGVySWRlbnRpZmllciBpZCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBjOWQwZTdjNjkxZmY3Yzk1NWY4YzM1MTEwMDFjNDBh
NTU0YWI5MDRlLi43MzkyNDE3NWNkNjBkZjk1YTgyNDg0ODZjNzBkODEyOTI2Yzg1ZmE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTIyMCw2ICsyMjAsNyBA
QCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAn
V2ViS2l0OjpBY3Rpdml0eVN0YXRlQ2hhbmdlSUQnLAogICAgICAgICAnV2ViS2l0OjpMYXllckhv
c3RpbmdDb250ZXh0SUQnLAogICAgICAgICAnV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYktpdDo6TWVkaWFSZWNvcmRlcklkZW50aWZpZXIn
LAogICAgICAgICAnV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcicsCiAgICAg
ICAgICdXZWJLaXQ6OlJUQ0RlY29kZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6UlRD
RW5jb2RlcklkZW50aWZpZXInLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4
dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggZDAzOTNiYjA2MmQ5N2FlOTZhNzIy
NWE2ZDYwN2IwNzRiMzhlMGM5OC4uYzg1MjQxMDdhZDVmYTcyZjc3OWZkMGIwZDRmMzRhNWMxNzE5
OWI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0CkBAIC0yNCw2ICsyNCw4IEBACiBHUFVQcm9jZXNzL0dQVVByb2Nl
c3MuY3BwCiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCiBHUFVQcm9j
ZXNzL0dQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCitHUFVQcm9jZXNzL3dlYnJ0Yy9S
ZW1vdGVNZWRpYVJlY29yZGVyLmNwcAorR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNv
cmRlcnMuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
LmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAogR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcApAQCAtNTEzLDYgKzUxNSw4IEBAIFdl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKIFdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5jcHAgQG5vLXVuaWZ5
CiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwCiBXZWJQ
cm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAorV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcAorV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlh
UmVjb3JkZXJQcm92aWRlci5jcHAKIAogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJL
aXQvU291cmNlc0NvY29hLnR4dAppbmRleCBmZTc1Nzk1Mzc2MWI5OWY2OWI4MjhjMTFiYmMwZjMz
MWFlZWZjMTkxLi5iNjY3Mzc3ZmZiYzg4NTUxYTUzODZiYmYzMWRhOTNhYWJiMDkxNmNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0CkBAIC02MzUsNSArNjM1LDcgQEAgR1BVUHJvY2Vzc1Byb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcAogR1BVUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAKIExpYldlYlJU
Q0NvZGVjc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogTGliV2ViUlRDQ29kZWNzTWVzc2FnZVJl
Y2VpdmVyLmNwcAorUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90
ZU1lZGlhUmVjb3JkZXJzTWVzc2FnZVJlY2VpdmVyLmNwcAogU2VydmljZVdvcmtlckZldGNoVGFz
a01lc3NhZ2VSZWNlaXZlci5jcHAKIFRleHRDaGVja2luZ0NvbnRyb2xsZXJQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDU3NzhiYTU4NzIzMmM2ZTZhNzgyMjQ2YjljN2NiMzIwYWU4ZmNjZWEuLjE3
N2IzYWIxMDg5Yjk3ZWYyNDk1NWUwOTY0YmRjYzQwNjViMzczYWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzMxNiw2ICszMzE2LDE3
IEBACiAJCTQxNzIxOThDMjNCNjEyRTgwMEFFNTY4NiAvKiBSVENEZWNvZGVySWRlbnRpZmllci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENEZWNvZGVySWRlbnRpZmllci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTcyMTk4RDIzQjYyQzdDMDBBRTU2ODYg
LyogTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpYldlYlJUQ0NvZGVjcy5tZXNz
YWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3NjkwMTMyMkZERDQxQjAw
QjE1NzZEIC8qIE5ldHdvcmtSVENQcm92aWRlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IE5ldHdvcmtSVENQcm92aWRlci5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDE3NkU4OTIyM0MzNEQ2RTAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92
aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVJlY29yZGVyUHJvdmlkZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OTMyM0MzNEQ2RjAwM0U4M0ZFIC8qIE1lZGlhUmVj
b3JkZXJQcm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVJlY29yZGVyUHJvdmlk
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc2RTg5NDIzQzM0RTI2MDAz
RTgzRkUgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0MTc2RTg5NTIzQzM0RTI3MDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclBy
aXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFSZWNvcmRlclBy
aXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OTcyM0MzNjFCRDAw
M0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQxNzZFODk4MjNDMzY2NzcwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29y
ZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVjb3Jk
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OTkyM0MzNkQ4RTAwM0U4
M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZU1lZGlhUmVjb3JkZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQxNzZFODlBMjNDMzZGNzEwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVycy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlY29yZGVy
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODlCMjNDMzcyMjIwMDNF
ODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVycy5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBSZW1vdGVNZWRpYVJlY29yZGVycy5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OUMyM0MzNzQ3OTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVj
b3JkZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFSZWNv
cmRlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OUQy
M0MzNzZENTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZWNvcmRlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzkxNUFDMjI1NkJCNzQwMEQ2Rjk3RSAvKiBXZWJTb2Nr
ZXRDaGFubmVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlNv
Y2tldENoYW5uZWwuY3BwOyBwYXRoID0gTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3OTE1QUQyMjU2QkI3NDAwRDZGOTdFIC8qIFdl
YlNvY2tldENoYW5uZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViU29j
a2V0Q2hhbm5lbC5oOyBwYXRoID0gTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzkxNUIwMjI1NkMwRDYwMEQ2Rjk3RSAvKiBXZWJTb2Nr
ZXRDaGFubmVsTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJT
b2NrZXRDaGFubmVsTWFuYWdlci5oOyBwYXRoID0gTmV0d29yay9XZWJTb2NrZXRDaGFubmVsTWFu
YWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzExNyw2ICs3MTI4LDExIEBA
CiAJCQkJNDE3MjE5OEEyM0I2MTI4MjAwQUU1Njg2IC8qIExpYldlYlJUQ0NvZGVjcy5jcHAgKi8s
CiAJCQkJNDE3MjE5ODkyM0I2MTI4MjAwQUU1Njg2IC8qIExpYldlYlJUQ0NvZGVjcy5oICovLAog
CQkJCTQxNzIxOThEMjNCNjJDN0MwMEFFNTY4NiAvKiBMaWJXZWJSVENDb2RlY3MubWVzc2FnZXMu
aW4gKi8sCisJCQkJNDE3NkU4OTcyM0MzNjFCRDAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJJZGVu
dGlmaWVyLmggKi8sCisJCQkJNDE3NkU4OTQyM0MzNEUyNjAwM0U4M0ZFIC8qIE1lZGlhUmVjb3Jk
ZXJQcml2YXRlLmNwcCAqLywKKwkJCQk0MTc2RTg5NTIzQzM0RTI3MDAzRTgzRkUgLyogTWVkaWFS
ZWNvcmRlclByaXZhdGUuaCAqLywKKwkJCQk0MTc2RTg5MzIzQzM0RDZGMDAzRTgzRkUgLyogTWVk
aWFSZWNvcmRlclByb3ZpZGVyLmNwcCAqLywKKwkJCQk0MTc2RTg5MjIzQzM0RDZFMDAzRTgzRkUg
LyogTWVkaWFSZWNvcmRlclByb3ZpZGVyLmggKi8sCiAJCQkJNDE3MjE5OEMyM0I2MTJFODAwQUU1
Njg2IC8qIFJUQ0RlY29kZXJJZGVudGlmaWVyLmggKi8sCiAJCQkJNDE1ODY0OUEyM0JFMDkyNDAw
QTBBNjFFIC8qIFJUQ0VuY29kZXJJZGVudGlmaWVyLmggKi8sCiAJCQkpOwpAQCAtNzEyOSw2ICs3
MTQ1LDEyIEBACiAJCQkJNDFFMEE3QzYyM0I2Mzk3ODAwNTYxMDYwIC8qIExpYldlYlJUQ0NvZGVj
c1Byb3h5LmggKi8sCiAJCQkJNDFFMEE3QzcyM0I2Mzk3OTAwNTYxMDYwIC8qIExpYldlYlJUQ0Nv
ZGVjc1Byb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCTQxRTBBN0M4MjNCNjM5NzkwMDU2MTA2MCAv
KiBMaWJXZWJSVENDb2RlY3NQcm94eS5tbSAqLywKKwkJCQk0MTc2RTg5RDIzQzM3NkQ1MDAzRTgz
RkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAgKi8sCisJCQkJNDE3NkU4OTgyM0MzNjY3NzAw
M0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXIuaCAqLywKKwkJCQk0MTc2RTg5QzIzQzM3NDc5
MDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlci5tZXNzYWdlcy5pbiAqLywKKwkJCQk0MTc2
RTg5QTIzQzM2RjcxMDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlcnMuY3BwICovLAorCQkJ
CTQxNzZFODk5MjNDMzZEOEUwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVycy5oICovLAor
CQkJCTQxNzZFODlCMjNDMzcyMjIwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVycy5tZXNz
YWdlcy5pbiAqLywKIAkJCSk7CiAJCQlwYXRoID0gd2VicnRjOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZTJkNjZiZmJjYjQ5
ZDkzODkzODY1OGMwMDBlYTMxZDkyZWJmNzI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCkBAIC0w
LDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRl
ICJNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gTWVkaWFSZWNv
cmRlclByb3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZh
dGUmIHN0cmVhbSkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICByZXR1cm4gTWVkaWFSZWNv
cmRlclByaXZhdGVBVkZJbXBsOjpjcmVhdGUoc3RyZWFtKTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKHN0cmVhbSk7CisgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKK30KKworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVJlY29yZGVyUHJv
dmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFSZWNvcmRl
clByb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzEwZThkNDgxZjg2YTM1ZDBkOWVlOWZiODNlYWVlNjZk
Yzc5ZGZjZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhUmVj
b3JkZXJQcml2YXRlOworY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlOworCitjbGFzcyBXRUJDT1JF
X0VYUE9SVCBNZWRpYVJlY29yZGVyUHJvdmlkZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworcHVibGljOgorICAgIHN0YXRpYyBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVy
PiBjcmVhdGUoKSB7IHJldHVybiBtYWtlVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4o
KTsgfQorICAgIHZpcnR1YWwgfk1lZGlhUmVjb3JkZXJQcm92aWRlcigpID0gZGVmYXVsdDsKKwor
ICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBjcmVhdGVN
ZWRpYVJlY29yZGVyUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZhdGUmKTsKK307CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJJ
ZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJl
Y29yZGVySWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyZjA0ZTMzM2ZlODQ2MzIzY2NjZTc5Mzg1
Y2E3NTJiNTY0MTkzZWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVySWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlm
aWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIE1lZGlhUmVjb3JkZXJJZGVudGlm
aWVyVHlwZSB7IH07Cit1c2luZyBNZWRpYVJlY29yZGVySWRlbnRpZmllciA9IE9iamVjdElkZW50
aWZpZXI8TWVkaWFSZWNvcmRlcklkZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRp
YVJlY29yZGVyUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmMxNmM1MGZhODUzNTkwZDli
NGViNDVmZGRkZmY5ZjI4ZjJhZGMxOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcApAQCAtMCwwICsx
LDE0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRp
YVJlY29yZGVyUHJpdmF0ZS5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAi
UmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZWNv
cmRlcnNNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0NBUmluZ0J1ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTdHJlYW1Qcml2YXRl
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvUmVtb3RlVmlkZW9TYW1wbGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NoYXJl
ZEJ1ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworTWVkaWFSZWNv
cmRlclByaXZhdGU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0
ZSYgc3RyZWFtKQorICAgIDogbV9pZGVudGlmaWVyKE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyOjpn
ZW5lcmF0ZSgpKQorICAgICwgbV9jb25uZWN0aW9uKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVu
c3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpKQoreworICAgIC8vIEZJWE1F
OiB3ZSB3aWxsIG5lZWQgdG8gaW1wbGVtZW50IHN1cHBvcnQgZm9yIG11bHRpcGxlIGF1ZGlvL3Zp
ZGVvIHRyYWNrcworICAgIC8vIEN1cnJlbnRseSB3ZSBvbmx5IGNob29zZSB0aGUgZmlyc3QgdHJh
Y2sgYXMgdGhlIHJlY29yZGVkIHRyYWNrLgorICAgIC8vIEZJWE1FOiBXZSB3b3VsZCBiZXR0ZXIg
dG8gdGhyb3cgYW4gZXhjZXB0aW9uIHRvIEphdmFTY3JpcHQgaWYgd3JpdGVyIGNyZWF0aW9uIGZh
aWxzLgorCisgICAgY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIGF1ZGlvVHJhY2sgeyBu
dWxscHRyIH07CisgICAgY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIHZpZGVvVHJhY2sg
eyBudWxscHRyIH07CisgICAgZm9yIChhdXRvJiB0cmFjayA6IHN0cmVhbS50cmFja3MoKSkgewor
ICAgICAgICBpZiAoIXRyYWNrLT5lbmFibGVkKCkgfHwgdHJhY2stPmVuZGVkKCkpCisgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgc3dpdGNoICh0cmFjay0+dHlwZSgpKSB7CisgICAgICAg
IGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW86IHsKKyAgICAgICAgICAgIGF1
dG8mIHNldHRpbmdzID0gdHJhY2stPnNldHRpbmdzKCk7CisgICAgICAgICAgICBpZiAoIXZpZGVv
VHJhY2sgJiYgc2V0dGluZ3Muc3VwcG9ydHNXaWR0aCgpICYmIHNldHRpbmdzLnN1cHBvcnRzSGVp
Z2h0KCkpIHsKKyAgICAgICAgICAgICAgICB2aWRlb1RyYWNrID0gdHJhY2suZ2V0KCk7CisgICAg
ICAgICAgICAgICAgbV9yZWNvcmRlZFZpZGVvVHJhY2tJRCA9IHZpZGVvVHJhY2stPmlkKCk7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNl
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvOgorICAgICAgICAgICAgaWYgKCFhdWRp
b1RyYWNrKSB7CisgICAgICAgICAgICAgICAgbV9yaW5nQnVmZmVyID0gbWFrZVVuaXF1ZTxDQVJp
bmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KHRoaXMpKTsK
KyAgICAgICAgICAgICAgICBhdWRpb1RyYWNrID0gdHJhY2suZ2V0KCk7CisgICAgICAgICAgICAg
ICAgbV9yZWNvcmRlZEF1ZGlvVHJhY2tJRCA9IGF1ZGlvVHJhY2stPmlkKCk7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNl
OjpUeXBlOjpOb25lOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAg
bV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyczo6Q3JlYXRl
UmVjb3JkZXIgeyBtX2lkZW50aWZpZXIsICEhYXVkaW9UcmFjaywgdmlkZW9UcmFjayA/IHZpZGVv
VHJhY2stPnNldHRpbmdzKCkud2lkdGgoKSA6IDAsIHZpZGVvVHJhY2sgPyB2aWRlb1RyYWNrLT5z
ZXR0aW5ncygpLmhlaWdodCgpIDogMCB9LCAwKTsKK30KKworTWVkaWFSZWNvcmRlclByaXZhdGU6
On5NZWRpYVJlY29yZGVyUHJpdmF0ZSgpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyczo6UmVsZWFzZVJlY29yZGVyIHsgbV9pZGVudGlmaWVy
IH0sIDApOworfQorCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzYW1wbGVCdWZmZXJVcGRh
dGVkKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaywgV2ViQ29yZTo6TWVk
aWFTYW1wbGUmIHNhbXBsZSkKK3sKKyAgICBpZiAodHJhY2suaWQoKSAhPSBtX3JlY29yZGVkVmlk
ZW9UcmFja0lEKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGF1dG8gcmVtb3RlU2FtcGxlID0g
UmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShzYW1wbGUpKQorICAgICAgICBtX2Nvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OlZpZGVvU2FtcGxlQXZhaWxhYmxl
IHsgV1RGTW92ZSgqcmVtb3RlU2FtcGxlKSB9LCBtX2lkZW50aWZpZXIpOworfQorCit2b2lkIE1l
ZGlhUmVjb3JkZXJQcml2YXRlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoV2ViQ29yZTo6TWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBs
YXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24m
IGRlc2NyaXB0aW9uLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCit7CisgICAgaWYgKHRyYWNrLmlk
KCkgIT0gbV9yZWNvcmRlZEF1ZGlvVHJhY2tJRCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KG1fZGVzY3JpcHRpb24gIT0gZGVzY3JpcHRpb24pIHsKKyAgICAgICAgQVNTRVJUKGRlc2NyaXB0
aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNB
QXVkaW9TdHJlYW1CYXNpY1R5cGUpOworICAgICAgICBtX2Rlc2NyaXB0aW9uID0gKldURjo6Z2V0
PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9uLnBsYXRmb3Jt
RGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CisKKyAgICAgICAgLy8gQWxsb2NhdGUgYSByaW5n
IGJ1ZmZlciBsYXJnZSBlbm91Z2ggdG8gY29udGFpbiAyIHNlY29uZHMgb2YgYXVkaW8uCisgICAg
ICAgIG1fbnVtYmVyT2ZGcmFtZXMgPSBtX2Rlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSAqIDI7Cisg
ICAgICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUobV9kZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlw
dGlvbigpLCBtX251bWJlck9mRnJhbWVzKTsKKyAgICB9CisKKyAgICBBU1NFUlQoaXM8V2ViQXVk
aW9CdWZmZXJMaXN0PihhdWRpb0RhdGEpKTsKKyAgICBtX3JpbmdCdWZmZXItPnN0b3JlKGRvd25j
YXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4oYXVkaW9EYXRhKS5saXN0KCksIG51bWJlck9mRnJhbWVz
LCB0aW1lLnRpbWVWYWx1ZSgpKTsKKyAgICB1aW50NjRfdCBzdGFydEZyYW1lOworICAgIHVpbnQ2
NF90IGVuZEZyYW1lOworICAgIG1fcmluZ0J1ZmZlci0+Z2V0Q3VycmVudEZyYW1lQm91bmRzKHN0
YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJl
bW90ZU1lZGlhUmVjb3JkZXI6OkF1ZGlvU2FtcGxlc0F2YWlsYWJsZSB7IHRpbWUsIG51bWJlck9m
RnJhbWVzLCBzdGFydEZyYW1lLCBlbmRGcmFtZSB9LCBtX2lkZW50aWZpZXIpOworfQorCit2b2lk
IE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3Jh
Z2UpCit7CisgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOworICAgIGlmIChzdG9yYWdl
KQorICAgICAgICBzdG9yYWdlLT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlBy
b3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJl
bW90ZU1lZGlhUmVjb3JkZXI6OkF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkIHsgaGFuZGxlLCBt
X2Rlc2NyaXB0aW9uLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4obV9udW1iZXJPZkZyYW1lcykgfSwg
bV9pZGVudGlmaWVyKTsKK30KKwordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6ZmV0Y2hEYXRh
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJiwg
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbV9j
b25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3Jk
ZXI6OkZldGNoRGF0YSB7IH0sIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXShhdXRvJiYgZGF0YSwgYXV0byYmIG1pbWVUeXBlKSBtdXRhYmxlIHsKKyAgICAg
ICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyOworICAgICAgICBpZiAoIWRhdGEuc2l6ZSgp
KQorICAgICAgICAgICAgYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YS5kYXRhKCks
IGRhdGEuc2l6ZSgpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShidWZmZXIp
LCBtaW1lVHlwZSk7CisgICAgfSwgbV9pZGVudGlmaWVyKTsKK30KKwordm9pZCBNZWRpYVJlY29y
ZGVyUHJpdmF0ZTo6c3RvcFJlY29yZGluZygpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyOjpTdG9wUmVjb3JkaW5nIHsgfSwgbV9pZGVudGlm
aWVyKTsKK30KKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVf
UFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L01lZGlhUmVjb3JkZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkNzUwMzUyMzIzMmY4Y2Mw
NDRjYTliMWY0ODA2NGQ5YzQ4NTkwNzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCkBAIC0wLDAgKzEs
NzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKENPQ09BKSAm
JiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVySWRlbnRpZmll
ci5oIgorI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oPgorI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4K
KworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworfQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CitjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitjbGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpN
ZWRpYVJlY29yZGVyUHJpdmF0ZSwgcHVibGljIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpDbGll
bnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0
IE1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZSYp
OworICAgIH5NZWRpYVJlY29yZGVyUHJpdmF0ZSgpOworCitwcml2YXRlOgorICAgIC8vIFdlYkNv
cmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlCisgICAgdm9pZCBzYW1wbGVCdWZmZXJVcGRhdGVkKFdl
YkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgV2ViQ29yZTo6TWVkaWFTYW1wbGUmKSBm
aW5hbDsKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZSYsIGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgV2ViQ29yZTo6UGxh
dGZvcm1BdWRpb0RhdGEmLCBjb25zdCBXZWJDb3JlOjpBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwg
c2l6ZV90KSBmaW5hbDsKKyAgICB2b2lkIGZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUp
PiYmKSBmaW5hbDsKKyAgICB2b2lkIHN0b3BSZWNvcmRpbmcoKSBmaW5hbDsKKworICAgIC8vIFNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpDbGllbnQKKyAgICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKFNo
YXJlZE1lbW9yeSopOworCisgICAgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIgbV9pZGVudGlmaWVy
OworCisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIFN0cmluZyBt
X3JlY29yZGVkQXVkaW9UcmFja0lEOworICAgIFN0cmluZyBtX3JlY29yZGVkVmlkZW9UcmFja0lE
OworCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNBUmluZ0J1ZmZlcj4gbV9yaW5nQnVm
ZmVyOworICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9u
IHsgfTsKKyAgICBpbnQ2NF90IG1fbnVtYmVyT2ZGcmFtZXMgeyAwIH07Cit9OworCit9CisKKyNl
bmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJv
dmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNv
cmRlclByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42N2I2MDhjZDY4NTY3OTllZjMzYTYxZDExZjFm
YmQwYmYyMjJhYTljCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDQ5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQ
cm92aWRlci5oIgorCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGUuaCIKKwordXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKK3N0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0
ZT4gTWVkaWFSZWNvcmRlclByb3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShjb25z
dCBNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKK3sKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CisgICAgaWYgKCFtX3VzZUdQVVByb2Nlc3MpCisgICAgICAgIHJldHVybiBXZWJDb3JlOjpNZWRp
YVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKHN0cmVhbSk7CisK
KyAgICByZXR1cm4gbWFrZVVuaXF1ZTxNZWRpYVJlY29yZGVyUHJpdmF0ZT4oc3RyZWFtKTsKKyNl
bHNlCisgICAgcmV0dXJuIFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcjo6Y3JlYXRlTWVk
aWFSZWNvcmRlclByaXZhdGUoc3RyZWFtKTsKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1Mp
Cit9CisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlk
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wNDVmYWE0YmYwZTQ3OTc4ZmZmNDdjMzg3NWRkNjdiZjQxZTQ5OTNi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaD4K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIE1lZGlhUmVjb3JkZXJQcm92aWRlciBmaW5h
bCA6IHB1YmxpYyBXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXIgeworcHVibGljOgorICAg
IE1lZGlhUmVjb3JkZXJQcm92aWRlcigpID0gZGVmYXVsdDsKKworcHJpdmF0ZToKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpNZWRpYVJlY29y
ZGVyUHJpdmF0ZT4gY3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoY29uc3QgV2ViQ29yZTo6TWVk
aWFTdHJlYW1Qcml2YXRlJikgZmluYWw7CisjZW5kaWYKK307CisKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYTAyMWY3NDI5YjI1NWJhOWY0
MmYwNDNkN2ZhODMzMTZmZmJhOGNiNi4uMDgzNDM1NjE0Yzk4NDM4YTIwMWY3MjgxOWJhOTQyMGNi
ODc0ODZlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJMaWJXZWJSVENQcm92aWRlci5oIgogI2lu
Y2x1ZGUgIkxvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUg
Ik1lZGlhUmVjb3JkZXJQcm92aWRlci5oIgogI2luY2x1ZGUgIk5ldHNjYXBlUGx1Z2luLmgiCiAj
aW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgpAQCAtNDYwLDcgKzQ2MSw4IEBAIFdlYlBh
Z2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzJiYgcGFyYW1ldGVycykKICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuY2FjaGVT
dG9yYWdlUHJvdmlkZXIoKSwKICAgICAgICAgV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OmNyZWF0
ZSgqdGhpcyksCiAgICAgICAgIFdlYkNvb2tpZUphcjo6Y3JlYXRlKCksCi0gICAgICAgIG1ha2VV
bmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50PigqdGhpcykKKyAgICAgICAgbWFrZVVu
aXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCp0aGlzKSwKKyAgICAgICAgbWFrZVVu
aXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKICAgICApOwogICAgIHBhZ2VDb25maWd1
cmF0aW9uLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnQoKnRoaXMpOwogI2lmIEVO
QUJMRShDT05URVhUX01FTlVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCmluZGV4IDRjNDE4NjRkODlmNDA1NjdlZDgxZWQyZWZlZmI1MDFmNjc1M2RiODQuLjE5
YjIyMWNiMjI3ODNjNWI2NGMzNTNkMDI4NWE0NDhmNDUzZDBiNjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTE4MCw2ICsxODAsNyBAQAogI2ltcG9y
dCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xvZ0luaXRp
YWxpemF0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01l
bW9yeUNhY2hlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01lbW9yeVJlbGVhc2UuaD4KICNpbXBvcnQg
PFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CkBAIC0xNDQ4LDcgKzE0NDksOCBAQCBz
dGF0aWMgdm9pZCBXZWJLaXRJbml0aWFsaXplR2FtZXBhZFByb3ZpZGVySWZOZWNlc3NhcnkoKQog
ICAgICAgICBXZWJDb3JlOjpDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlKCksCiAgICAgICAg
IEJhY2tGb3J3YXJkTGlzdDo6Y3JlYXRlKHNlbGYpLAogICAgICAgICBXZWJDb3JlOjpDb29raWVK
YXI6OmNyZWF0ZShzdG9yYWdlUHJvdmlkZXIuY29weVJlZigpKSwKLSAgICAgICAgbWFrZVVuaXF1
ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KHNlbGYpCisgICAgICAgIG1ha2VVbmlxdWVS
ZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50PihzZWxmKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJl
ZjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKICAgICApOwogI2lmICFQTEFURk9S
TShJT1NfRkFNSUxZKQogICAgIHBhZ2VDb25maWd1cmF0aW9uLmNocm9tZUNsaWVudCA9IG5ldyBX
ZWJDaHJvbWVDbGllbnQoc2VsZik7CkBAIC0xNzE3LDcgKzE3MTksOCBAQCBzdGF0aWMgdm9pZCBX
ZWJLaXRJbml0aWFsaXplR2FtZXBhZFByb3ZpZGVySWZOZWNlc3NhcnkoKQogICAgICAgICBXZWJD
b3JlOjpDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlKCksCiAgICAgICAgIEJhY2tGb3J3YXJk
TGlzdDo6Y3JlYXRlKHNlbGYpLAogICAgICAgICBXZWJDb3JlOjpDb29raWVKYXI6OmNyZWF0ZShz
dG9yYWdlUHJvdmlkZXIuY29weVJlZigpKSwKLSAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9n
cmVzc1RyYWNrZXJDbGllbnQ+KHNlbGYpCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jl
c3NUcmFja2VyQ2xpZW50PihzZWxmKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpN
ZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKICAgICApOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmNo
cm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnRJT1Moc2VsZik7CiAjaWYgRU5BQkxFKERS
QUdfU1VQUE9SVCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386946</attachid>
            <date>2020-01-07 00:22:23 -0800</date>
            <delta_ts>2020-01-07 03:13:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205802-20200107092220.patch</filename>
            <type>text/plain</type>
            <size>92509</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTdiNmQyNDFlMzg2MjZl
OTlmMzI2YTU0ZGU4Y2U3Y2ZiNDcwMzQ0Yi4uZjA4ODczN2Y2ZGJiZDlkNjZkYzJiZTllOTk0NDE5
NzhlMTA3YzVkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIwLTAxLTA2ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgTWVkaWFS
ZWNvcmRlciBiYWNrZW5kIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTgwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMgYXMgTWVkaWFS
ZWNvcmRlciBpbXBsZW1lbnRhdGlvbiBpbiBXZWJLaXRUZXN0UnVubmVyIHdpbGwgdXNlIEdQVVBy
b2Nlc3MuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUpOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmg6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29y
ZGVyUHJpdmF0ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3Jk
ZXJQcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGlu
LmNwcDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAg
ICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAg
ICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Om1lZGlhUmVjb3Jk
ZXJQcm92aWRlcik6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOgorICAg
ICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
cjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVBy
aXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZS5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnRlcm5hbHM6OnNldFVzZUdQVVByb2Nlc3NGb3JXZWJSVEMpOgorCiAyMDIwLTAxLTA2
ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ10gU3RhcnQg
dXNpbmcgdGhlIFVzZWRIb3Jpem9udGFsVmFsdWVzOjpDb25zdHJhaW50cyB2YWx1ZXMgaW4gOjps
YXlvdXRJbkZsb3dDb250ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI1YzFjNGZkODk4MjM5OWMzNjY2MTQyNzBl
MTIzNDk5NWM4ZThhNTQuLmJmMWRjNWRkNjUyNTJmZDU1ZjczNjA2NGMyZDZmMGIxYTY0NTM5YjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMjAtMDEtMDYgIHlvdWVubiBmYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBNZWRpYVJlY29yZGVyIGJhY2tl
bmQgaW4gR1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA1ODAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
Lm1ha2U6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6dXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6Om1lZGlhUmVjb3JkZXJzKToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWFjL2Nv
bS5hcHBsZS5XZWJLaXQuR1BVUHJvY2Vzcy5zYi5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUmVjb3JkZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UmVjb3JkZXI6OlJlbW90ZU1lZGlhUmVjb3JkZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVN
ZWRpYVJlY29yZGVyOjp+UmVtb3RlTWVkaWFSZWNvcmRlcik6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUmVjb3JkZXI6OnN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVJlY29yZGVyOjphdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUmVjb3JkZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6ZmV0Y2hEYXRhKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6c3RvcFJlY29yZGluZyk6CisgICAgICAgICogR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBH
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluOiBBZGRlZC4K
KyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyczo6UmVtb3RlTWVkaWFS
ZWNvcmRlcnMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyczo6flJlbW90
ZU1lZGlhUmVjb3JkZXJzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcnM6
OmRpZFJlY2VpdmVSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUmVjb3JkZXJzOjpjcmVhdGVSZWNvcmRlcik6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUmVjb3JkZXJzOjpyZWxlYXNlUmVjb3JkZXIpOgorICAgICAgICAqIEdQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJzLmg6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyczo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vz
cyk6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMubWVz
c2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5Ogor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAg
ICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2
YXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVJlY29yZGVyUHJvdmlk
ZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3Jk
ZXJJZGVudGlmaWVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9N
ZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJl
Y29yZGVyUHJpdmF0ZTo6TWVkaWFSZWNvcmRlclByaXZhdGUpOgorICAgICAgICAoV2ViS2l0OjpN
ZWRpYVJlY29yZGVyUHJpdmF0ZTo6fk1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAgICAgICAgKFdl
YktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQpOgorICAgICAg
ICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6OnN0b3JhZ2VDaGFuZ2VkKToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6OmZldGNoRGF0YSk6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdG9wUmVjb3JkaW5nKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaDogQWRkZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0
ZU1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMv
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9vdmVycmlkZGVuTWVkaWFUeXBl
KToKKwogMjAyMC0wMS0wNiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW2lPU10gR2V0IGRpc3BsYXkgbGV2ZWwgaW4gdGhlIFVJIHByb2Nlc3MgZm9yIGFs
bCBpT1MgcGxhdGZvcm1zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZWRlYmQ1OWRm
OTUxN2Y4ZjAwZTEwY2IzZDRjMTdhOGIyZTBhZGM0Ny4uNDhkNmE5ZTBiMTdiM2M2MzM0ZTEzYzI5
YjEwYTNjMTg3YTcyZWFlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDIwLTAxLTA2ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBJbXBsZW1lbnQgTWVkaWFSZWNvcmRlciBiYWNrZW5kIGluIEdQVVByb2Nlc3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTgwMgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9X
ZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhG
cmFtZU5hbWU6Z3JvdXBOYW1lOl0pOgorICAgICAgICAoLVtXZWJWaWV3IGluaXRTaW1wbGVIVE1M
RG9jdW1lbnRXaXRoU3R5bGU6ZnJhbWU6cHJlZmVyZW5jZXM6Z3JvdXBOYW1lOl0pOgorCiAyMDIw
LTAxLTA2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBDb252ZXJ0
IEFTU0VSVF9ESVNBQkxFRCB0byBBU1NFUlRfRU5BQkxFRCwgYW5kIGZpeCBzb21lIHRlc3RzIG9m
IE5ERUJVRyB0aGF0IHNob3VsZCBhY3R1YWxseSB0ZXN0IGZvciBBU1NFUlRfRU5BQkxFRC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCmluZGV4IDQ2NjE5YzY1ZDZiM2MzZDgxZmY0YzJlNTAwNTIxNmFhNDk2MmVj
MTQuLjgxMmVkNDY5ZDIwOTA4NTU4Y2RkN2NkZTgyODNjZWU4ODZiOGVjYzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQpAQCAtODAsNiArODAsOCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19I
RUFERVJTCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlJlc3VsdERhdGEuaAogICAg
IE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJUcmFuc2FjdGlvbkluZm8uaAogCisgICAgTW9k
dWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5oCisKICAgICBNb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25FdmVudHMuaAogICAgIE1vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhU2Vzc2lvbk1ldGFkYXRhLmgKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyLmgKQEAgLTExNTUsNiArMTE1Nyw4IEBAIHNldChXZWJDb3JlX1BS
SVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1z
L1RyYW5zZm9ybU9wZXJhdGlvbnMuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMv
VHJhbnNmb3JtYXRpb25NYXRyaXguaAogCisgICAgcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyUHJpdmF0ZS5oCisKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2
aWNlLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlTWFuYWdlci5oCiAg
ICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50cy5oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHAKaW5k
ZXggOTkxZWEyYTBmM2QyMjQ0ZGYxZThlZTI3Zjc5MDg2ZDNlYzQzZDZmMC4uYWRmMzUwNDg4N2Ey
MzcxNzdhNGQ5ZDZmYWE5YzdmM2EzMTMyZDIyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcApAQCAtMzQsNiArMzQs
OCBAQAogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJNZWRpYVJlY29yZGVyRXJy
b3JFdmVudC5oIgogI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlLmgiCisjaW5jbHVkZSAi
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNo
YXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIldpbmRvd0V2ZW50TG9vcC5oIgogI2luY2x1ZGUgPHd0
Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CkBAIC01MCw3ICs1Miw3IEBAIGNyZWF0b3JGdW5jdGlvbiBN
ZWRpYVJlY29yZGVyOjptX2N1c3RvbUNyZWF0b3IgPSBudWxscHRyOwogCiBFeGNlcHRpb25PcjxS
ZWY8TWVkaWFSZWNvcmRlcj4+IE1lZGlhUmVjb3JkZXI6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQsIFJlZjxNZWRpYVN0cmVhbT4mJiBzdHJlYW0sIE9wdGlvbnMmJiBvcHRpb25zKQogewotICAg
IGF1dG8gcHJpdmF0ZUluc3RhbmNlID0gTWVkaWFSZWNvcmRlcjo6Z2V0UHJpdmF0ZUltcGwoc3Ry
ZWFtLT5wcml2YXRlU3RyZWFtKCkpOworICAgIGF1dG8gcHJpdmF0ZUluc3RhbmNlID0gTWVkaWFS
ZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoZG9jdW1lbnQsIHN0cmVhbS0+cHJp
dmF0ZVN0cmVhbSgpKTsKICAgICBpZiAoIXByaXZhdGVJbnN0YW5jZSkKICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiVGhlIE1lZGlhUmVjb3JkZXIgaXMgdW5z
dXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybSJfcyB9OwogICAgIGF1dG8gcmVjb3JkZXIgPSBhZG9w
dFJlZigqbmV3IE1lZGlhUmVjb3JkZXIoZG9jdW1lbnQsIFdURk1vdmUoc3RyZWFtKSwgV1RGTW92
ZShwcml2YXRlSW5zdGFuY2UpLCBXVEZNb3ZlKG9wdGlvbnMpKSk7CkBAIC02MywxNyArNjUsMTYg
QEAgdm9pZCBNZWRpYVJlY29yZGVyOjpzZXRDdXN0b21Qcml2YXRlUmVjb3JkZXJDcmVhdG9yKGNy
ZWF0b3JGdW5jdGlvbiBjcmVhdG9yKQogICAgIG1fY3VzdG9tQ3JlYXRvciA9IGNyZWF0b3I7CiB9
CiAKLXN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gTWVkaWFSZWNvcmRlcjo6
Z2V0UHJpdmF0ZUltcGwoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCitzdGQ6OnVu
aXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IE1lZGlhUmVjb3JkZXI6OmNyZWF0ZU1lZGlh
UmVjb3JkZXJQcml2YXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgTWVkaWFTdHJlYW1Qcml2
YXRlJiBzdHJlYW0pCiB7CiAgICAgaWYgKG1fY3VzdG9tQ3JlYXRvcikKICAgICAgICAgcmV0dXJu
IG1fY3VzdG9tQ3JlYXRvcigpOwogICAgIAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHJldHVy
biBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmNyZWF0ZShzdHJlYW0pOwotI2Vsc2UKLSAg
ICBVTlVTRURfUEFSQU0oc3RyZWFtKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKLSNlbmRpZgorICAg
IGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBwYWdlLT5tZWRpYVJlY29yZGVyUHJvdmlkZXIo
KS5jcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShzdHJlYW0pOwogfQogCiBNZWRpYVJlY29yZGVy
OjpNZWRpYVJlY29yZGVyKERvY3VtZW50JiBkb2N1bWVudCwgUmVmPE1lZGlhU3RyZWFtPiYmIHN0
cmVhbSwgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiYmIHByaXZhdGVJbXBs
LCBPcHRpb25zJiYgb3B0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKaW5kZXggZWI2Zjk2YTZhZTBhMzliYTEwYjUyMGJi
OThjYzRlZTFiNTM5Mzc0NC4uMDYzOTUyYTk2N2RhYzIyYTI3NGY1NDdhZTRjYmNhZTJjZTZkYWQx
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlci5oCkBAIC03NSw3ICs3NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTWVk
aWFSZWNvcmRlcihEb2N1bWVudCYsIFJlZjxNZWRpYVN0cmVhbT4mJiwgc3RkOjp1bmlxdWVfcHRy
PE1lZGlhUmVjb3JkZXJQcml2YXRlPiYmLCBPcHRpb25zJiYgPSB7IH0pOwogCi0gICAgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gZ2V0UHJpdmF0ZUltcGwoY29u
c3QgTWVkaWFTdHJlYW1Qcml2YXRlJik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRp
YVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoRG9jdW1lbnQmLCBj
b25zdCBNZWRpYVN0cmVhbVByaXZhdGUmKTsKICAgICAKICAgICBEb2N1bWVudCogZG9jdW1lbnQo
KSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNjRmY2Nj
MzY4YTYxMjdkZjk5MWZiZmQzZGZjMWJmZjMzOTBhYzAwCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5j
cHAKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCIKKworI2luY2x1ZGUgIk1lZGlhUmVjb3Jk
ZXJQcml2YXRlLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJNZWRpYVJlY29y
ZGVyUHJpdmF0ZUFWRkltcGwuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2
YXRlPiBNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKGNv
bnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIHJldHVybiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmNyZWF0ZShzdHJlYW0pOwor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc3RyZWFtKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyNl
bmRpZgorfQorI2VuZGlmCisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
YTkzYWY0ODY3NjZkNzVlYTg0YjVmNWViNjkyMjQxOTE3MTBlMDdhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92
aWRlci5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZTsKK2NsYXNzIE1l
ZGlhU3RyZWFtUHJpdmF0ZTsKKworY2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFSZWNvcmRlclBy
b3ZpZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBNZWRp
YVJlY29yZGVyUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+TWVkaWFSZWNvcmRl
clByb3ZpZGVyKCkgPSBkZWZhdWx0OworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB2
aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlTWVkaWFS
ZWNvcmRlclByaXZhdGUoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJik7CisjZW5kaWYKKworICAg
IHZvaWQgc2V0VXNlR1BVUHJvY2Vzcyhib29sIHZhbHVlKSB7IG1fdXNlR1BVUHJvY2VzcyA9IHZh
bHVlOyB9CisKK3Byb3RlY3RlZDoKKyAgICBib29sIG1fdXNlR1BVUHJvY2VzcyB7IGZhbHNlIH07
Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGFjYWU2ZmUzOGRkZTI2YzI4Y2Y1ZDQ0OTExZmM1
YWMzMGIyNTg2NzQuLmVkZjE0MjRiYWY2ZDhiZmY5OThiMWM1MjgzYjdkMDc0ZTY4ODZjODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CkBAIC0xNTEsNiArMTUxLDcgQEAgTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01l
ZGlhQ29udHJvbHNIb3N0LmNwcAogCiBNb2R1bGVzL21lZGlhcmVjb3JkZXIvQmxvYkV2ZW50LmNw
cAogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwCitNb2R1bGVzL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcAogTW9kdWxlcy9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmNwcAogCiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9IVE1M
TWVkaWFFbGVtZW50TWVkaWFTZXNzaW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ0ZmIwZDM2ODJiZWNiNWQ0MjgwYTdm
ZmYyNmJjYjVkZGEwOTYyODUuLjNkZDkxMTI4YTQ3ZDkzODA0NWM4ZDg1NmVkZWY5ZTU4OTYwNDQx
ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTExMDEsNiArMTEwMSw3IEBACiAJCTQxNzYxMkIwMUUzQTk5NDAwMEMzRDgxRCAv
KiBMaWJXZWJSVENNZWRpYUVuZHBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTc2MTJBQzFFM0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDTWVk
aWFFbmRwb2ludC5oICovOyB9OwogCQk0MTc2MTJCMTFFM0E5OTQwMDBDM0Q4MUQgLyogTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzYxMkFEMUUzQTk5M0IwMEMzRDgxRCAvKiBMaWJXZWJSVENQ
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwICovOyB9OwogCQk0MTc2MTJCMjFFM0E5OTQwMDBDM0Q4
MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc2MTJBRTFFM0E5OTNCMDBDM0Q4MUQgLyog
TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmggKi87IH07CisJCTQxNzZFODk2MjNDMzUz
N0IwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzZFODhGMjNDMzQ4RDIwMDNFODNGRSAvKiBN
ZWRpYVJlY29yZGVyUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk0MTdEQTZEOTEzNzM0RTZFMDA3QzU3RkIgLyogSW50ZXJuYWxzLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxN0RBNENG
MTM3MzQzMjYwMDdDNTdGQiAvKiBJbnRlcm5hbHMuY3BwICovOyB9OwogCQk0MTdEQTZEQTEzNzM0
RTZFMDA3QzU3RkIgLyogSW50ZXJuYWxzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTdEQTRDRTEzNzM0MzI2MDA3QzU3RkIgLyogSW50ZXJuYWxzLmgg
Ki87IH07CiAJCTQxN0RBNzFEMTM3MzVERkEwMDdDNTdGQiAvKiBKU0ludGVybmFscy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTdEQTcxQjEzNzM1
REZBMDA3QzU3RkIgLyogSlNJbnRlcm5hbHMuY3BwICovOyB9OwpAQCAtMTM3NCw5ICsxMzc1LDkg
QEAKIAkJNEJERUEzMkMyMTgwMzNFQjAwNTJERkNEIC8qIEpTV29ya2xldEdsb2JhbFNjb3BlQmFz
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEJERUEz
MkIyMTgwMzNFQjAwNTJERkNEIC8qIEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5oICovOyB9Owog
CQk0RDNCMDBBQjIxNUQ2OUE3MDA3NkI5ODMgLyogTWVkaWFSZWNvcmRlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEQzQjAwQTkyMTVENjlBNzAwNzZC
OTgzIC8qIE1lZGlhUmVjb3JkZXIuaCAqLzsgfTsKIAkJNEQzQjAwQUYyMTVENkE2OTAwNzZCOTgz
IC8qIEJsb2JFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEQzQjAwQUQyMTVENkE2OTAwNzZCOTgzIC8qIEJsb2JFdmVudC5oICovOyB9OwotCQk0
RDNCNTAxNjIxN0U1OEI3MDA2NjVEQjEgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREM0I1MDE0MjE3RTU4Qjcw
MDY2NURCMSAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZS5oICovOyB9OworCQk0RDNCNTAxNjIxN0U1
OEI3MDA2NjVEQjEgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREM0I1MDE0MjE3RTU4QjcwMDY2NURCMSAvKiBN
ZWRpYVJlY29yZGVyUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTRENzNGOTQ2MjE4QkM1RkEwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVy
UHJpdmF0ZUFWRkltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDRENzNGOTQ0MjE4QkM1RkEwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFW
RkltcGwuaCAqLzsgfTsKLQkJNEQ3M0Y5NEUyMThDNEE4NzAwM0EzRUQ2IC8qIE1lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDRENzNGOTRDMjE4QzRBODcwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlckNvY29hLmggKi87IH07CisJCTRENzNGOTRFMjE4QzRBODcwMDNBM0VENiAvKiBN
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RDczRjk0QzIxOEM0QTg3MDAzQTNFRDYgLyogTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTREQjcxMzBEMjE2RUNCNEQwMDk2QTRERCAvKiBNZWRpYVJl
Y29yZGVyRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNERCNzEzMEMyMTZFQzJCRDAwOTZBNEREIC8qIE1lZGlhUmVjb3JkZXJFcnJvckV2
ZW50LmggKi87IH07CiAJCTRFMTk1OTIyMEEzOURBQkEwMDIyMEZFNSAvKiBNZWRpYUZlYXR1cmVO
YW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEUx
OTU5MjAwQTM5REFCQTAwMjIwRkU1IC8qIE1lZGlhRmVhdHVyZU5hbWVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNEUxOTU5MkEwQTM5REFDQzAw
MjIwRkU1IC8qIE1lZGlhUXVlcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDRFMTk1OTI0MEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTc0MDAsNiAr
NzQwMSw4IEBACiAJCTQxNzYxMkFFMUUzQTk5M0IwMEMzRDgxRCAvKiBMaWJXZWJSVENQZWVyQ29u
bmVjdGlvbkJhY2tlbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmg7IHBhdGggPSBsaWJ3ZWJydGMvTGliV2ViUlRDUGVl
ckNvbm5lY3Rpb25CYWNrZW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzY5
MDAzMjJGQ0Q4RjIwMEIxNTc2RCAvKiBNZWRpYVNvdXJjZVJlZ2lzdHJ5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU291cmNlUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDE3NjkwMDQyMkZDRDhGMjAwQjE1NzZEIC8qIE1lZGlhU291cmNl
UmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFT
b3VyY2VSZWdpc3RyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODhG
MjNDMzQ4RDIwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFSZWNvcmRlclByb3ZpZGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODkxMjNDMzRCNzUwMDNFODNGRSAvKiBNZWRpYVJlY29y
ZGVyUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFSZWNvcmRlclByb3ZpZGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3N0Y1MUMyMzgyNTQ0MDAwQzA0
NDg2IC8qIEJhc2VBdWRpb1NoYXJlZFVuaXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQmFzZUF1ZGlvU2hhcmVkVW5pdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxNzdGNTFFMjM4MjU0NUUwMEMwNDQ4NiAvKiBCYXNlQXVkaW9TaGFyZWRVbml0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VBdWRpb1NoYXJlZFVuaXQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3REE0Q0UxMzczNDMyNjAwN0M1N0ZC
IC8qIEludGVybmFscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRlcm5h
bHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4OTMzLDYgKzE4OTM2LDggQEAK
IAkJCQk0REI3MTMwRTIxNkVFQkFFMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQu
Y3BwICovLAogCQkJCTREQjcxMzBDMjE2RUMyQkQwMDk2QTRERCAvKiBNZWRpYVJlY29yZGVyRXJy
b3JFdmVudC5oICovLAogCQkJCTREQjcxMzBBMjE2RUMyQkMwMDk2QTRERCAvKiBNZWRpYVJlY29y
ZGVyRXJyb3JFdmVudC5pZGwgKi8sCisJCQkJNDE3NkU4OTEyM0MzNEI3NTAwM0U4M0ZFIC8qIE1l
ZGlhUmVjb3JkZXJQcm92aWRlci5jcHAgKi8sCisJCQkJNDE3NkU4OEYyM0MzNDhEMjAwM0U4M0ZF
IC8qIE1lZGlhUmVjb3JkZXJQcm92aWRlci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBtZWRpYXJl
Y29yZGVyOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTMxNDc1LDYgKzMxNDgwLDcg
QEAKIAkJCQk0RDNCNTAxNjIxN0U1OEI3MDA2NjVEQjEgLyogTWVkaWFSZWNvcmRlclByaXZhdGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTRENzNGOTQ2MjE4QkM1RkEwMDNBM0VENiAvKiBNZWRpYVJl
Y29yZGVyUHJpdmF0ZUFWRkltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTRENzNGOTRFMjE4QzRB
ODcwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0MTc2RTg5NjIzQzM1MzdCMDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByb3Zp
ZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDOTA4NDNEMDFCMThFNDdEMDBCNjg1NjQgLyogTWVk
aWFSZW1vdGVDb250cm9scy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q4QUNBOEYxRDIzOTcxOTAw
RUNDNTlFIC8qIE1lZGlhUmVtb3RlU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFRUZD
RDdBMTlEQjMxRjcwMDM4NzZENyAvKiBNZWRpYVJlc291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggMGViNWExMjBhZjg3
NjUzMGM1YzZjZjdkYWUwMDk5MjFmYTM2NDI5YS4uNTM0ZTVjMDUwZTQ3ZjBhNDk4MmE1OGM3Njdk
ZmRmMGM2ZWE3MTk3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAg
LTUzLDYgKzUzLDggQEAKICNpbmNsdWRlICJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JDbGllbnQuaCIKICNpbmNsdWRlICJMaWJXZWJSVENQcm92aWRlci5oIgor
I2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlLmgiCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRl
clByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgiCiAjaW5jbHVk
ZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VDb25maWd1cmF0aW9uLmgiCkBAIC01NzEsMTAgKzU3
MywxOSBAQCBSZWY8U3RvcmFnZU5hbWVzcGFjZT4gRW1wdHlTdG9yYWdlTmFtZXNwYWNlUHJvdmlk
ZXI6OmNyZWF0ZVRyYW5zaWVudExvY2FsU3RvcmFnZQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEVtcHR5U3RvcmFnZU5hbWVzcGFjZSB7IHNlc3Npb25JRCB9KTsKIH0KIAotY2xhc3MgRW1wdHlT
dG9yYWdlU2Vzc2lvblByb3ZpZGVyIDogcHVibGljIFN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIgewor
Y2xhc3MgRW1wdHlTdG9yYWdlU2Vzc2lvblByb3ZpZGVyIGZpbmFsIDogcHVibGljIFN0b3JhZ2VT
ZXNzaW9uUHJvdmlkZXIgewogICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiogc3RvcmFnZVNlc3Np
b24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CiB9OwogCitjbGFzcyBFbXB0eU1l
ZGlhUmVjb3JkZXJQcm92aWRlciBmaW5hbCA6IHB1YmxpYyBNZWRpYVJlY29yZGVyUHJvdmlkZXIg
eworcHVibGljOgorICAgIEVtcHR5TWVkaWFSZWNvcmRlclByb3ZpZGVyKCkgPSBkZWZhdWx0Owor
cHJpdmF0ZToKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxN
ZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoY29uc3QgTWVk
aWFTdHJlYW1Qcml2YXRlJikgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQorI2VuZGlmCit9Owor
CiBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25m
aWd1cmF0aW9uIHsKQEAgLTU4NSw3ICs1OTYsOCBAQCBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29u
ZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAg
ICAgICBDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlKCksCiAgICAgICAgIGFkb3B0UmVmKCpu
ZXcgRW1wdHlCYWNrRm9yd2FyZENsaWVudCksCiAgICAgICAgIENvb2tpZUphcjo6Y3JlYXRlKGFk
b3B0UmVmKCpuZXcgRW1wdHlTdG9yYWdlU2Vzc2lvblByb3ZpZGVyKSksCi0gICAgICAgIG1ha2VV
bmlxdWVSZWY8RW1wdHlQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCkKKyAgICAgICAgbWFrZVVuaXF1
ZVJlZjxFbXB0eVByb2dyZXNzVHJhY2tlckNsaWVudD4oKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJl
ZjxFbXB0eU1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgIH07CiAKICAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8RW1wdHlDaHJvbWVDbGllbnQ+IGR1bW15Q2hyb21lQ2xpZW50OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAKaW5kZXggNjNjMDUzNDM3OThkMzEwMmQ4MDMyZDM1NzE5M2NjOWJhOTM3NjYxOS4u
MDEwMjc5ZmVmYzQ1Zjk4NmYyODA1YmU3N2JmM2NjZGY3MWU1MWRjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCkBAIC0yNDYsNiArMjQ2LDcgQEAgUGFnZTo6UGFnZShQYWdlQ29uZmlndXJhdGlvbiYmIHBh
Z2VDb25maWd1cmF0aW9uKQogI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogICAgICwgbV9z
cGVlY2hTeW50aGVzaXNDbGllbnQoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5zcGVlY2hTeW50
aGVzaXNDbGllbnQpKQogI2VuZGlmCisgICAgLCBtX21lZGlhUmVjb3JkZXJQcm92aWRlcigoV1RG
TW92ZShwYWdlQ29uZmlndXJhdGlvbi5tZWRpYVJlY29yZGVyUHJvdmlkZXIpKSkKICAgICAsIG1f
bGliV2ViUlRDUHJvdmlkZXIoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5saWJXZWJSVENQcm92
aWRlcikpCiAgICAgLCBtX3ZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eShTY3JvbGxFbGFzdGljaXR5
QWxsb3dlZCkKICAgICAsIG1faG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkoU2Nyb2xsRWxhc3Rp
Y2l0eUFsbG93ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDJjM2Y3YzM0MzM4N2ZiNDhjMmY1NWUzZWE2
ZTk1YzNlOWY1NDc2NTAuLmUxZjI3Y2ZjOGNjOTc1OTNjYWUyNTRkNmU4ZTY1MDdjYWU3MGUyYzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCkBAIC0xMTAsNiArMTEwLDcgQEAgY2xhc3MgTGliV2ViUlRDUHJvdmlk
ZXI7CiBjbGFzcyBMb3dQb3dlck1vZGVOb3RpZmllcjsKIGNsYXNzIE1lZGlhQ2FuU3RhcnRMaXN0
ZW5lcjsKIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXQ7CitjbGFzcyBNZWRpYVJlY29yZGVyUHJv
dmlkZXI7CiBjbGFzcyBQYWdlQ29uZmlndXJhdGlvbjsKIGNsYXNzIFBhZ2VDb25zb2xlQ2xpZW50
OwogY2xhc3MgUGFnZURlYnVnZ2FibGU7CkBAIC01ODQsNiArNTg1LDcgQEAgcHVibGljOgogICAg
IERhdGFiYXNlUHJvdmlkZXImIGRhdGFiYXNlUHJvdmlkZXIoKSB7IHJldHVybiBtX2RhdGFiYXNl
UHJvdmlkZXI7IH0KICAgICBDYWNoZVN0b3JhZ2VQcm92aWRlciYgY2FjaGVTdG9yYWdlUHJvdmlk
ZXIoKSB7IHJldHVybiBtX2NhY2hlU3RvcmFnZVByb3ZpZGVyOyB9CiAgICAgU29ja2V0UHJvdmlk
ZXImIHNvY2tldFByb3ZpZGVyKCkgeyByZXR1cm4gbV9zb2NrZXRQcm92aWRlcjsgfQorICAgIE1l
ZGlhUmVjb3JkZXJQcm92aWRlciYgbWVkaWFSZWNvcmRlclByb3ZpZGVyKCkgeyByZXR1cm4gbV9t
ZWRpYVJlY29yZGVyUHJvdmlkZXI7IH0KICAgICBDb29raWVKYXImIGNvb2tpZUphcigpIHsgcmV0
dXJuIG1fY29va2llSmFyLmdldCgpOyB9CiAKICAgICBTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIm
IHN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcigpIHsgcmV0dXJuIG1fc3RvcmFnZU5hbWVzcGFjZVBy
b3ZpZGVyLmdldCgpOyB9CkBAIC03OTUsNiArNzk3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8U3BlZWNoU3ludGhlc2lzQ2xpZW50PiBtX3NwZWVjaFN5bnRoZXNpc0NsaWVudDsK
ICNlbmRpZgogCisgICAgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4gbV9tZWRpYVJl
Y29yZGVyUHJvdmlkZXI7CiAgICAgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiBtX2xpYldl
YlJUQ1Byb3ZpZGVyOwogICAgIFJUQ0NvbnRyb2xsZXIgbV9ydGNDb250cm9sbGVyOwogCkBAIC05
MjAsNyArOTIzLDYgQEAgcHJpdmF0ZToKICAgICBSZWY8VXNlckNvbnRlbnRQcm92aWRlcj4gbV91
c2VyQ29udGVudFByb3ZpZGVyOwogICAgIFJlZjxWaXNpdGVkTGlua1N0b3JlPiBtX3Zpc2l0ZWRM
aW5rU3RvcmU7CiAgICAgUmVmUHRyPFdoZWVsRXZlbnRUZXN0TW9uaXRvcj4gbV93aGVlbEV2ZW50
VGVzdE1vbml0b3I7Ci0KICAgICBIYXNoU2V0PEFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlcio+
IG1fYWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyczsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9V
U0FHRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggZWY4
NzdhNTU4ODIxZTQ0NjdmNDVjYTNjMDUyMWNhZjIyZDkwN2RkZS4uMzM4ZjRlN2MxOTEyMWFmMTc5
NDJkMDE3MjRjZTI5MTEzYzVkM2YyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmln
dXJhdGlvbi5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJEcmFnQ2xpZW50LmgiCiAj
aW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIK
KyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCIKICNpbmNsdWRlICJQZXJmb3JtYW5j
ZUxvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJQbHVnSW5DbGllbnQuaCIKICNpbmNsdWRlICJQ
bHVnaW5JbmZvUHJvdmlkZXIuaCIKQEAgLTU1LDcgKzU2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1QYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNsaWVudCwgUmVm
PFNvY2tldFByb3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJv
dmlkZXI+JiYgbGliV2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiBj
YWNoZVN0b3JhZ2VQcm92aWRlciwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJhY2tGb3J3YXJk
Q2xpZW50LCBSZWY8Q29va2llSmFyPiYmIGNvb2tpZUphciwgVW5pcXVlUmVmPFByb2dyZXNzVHJh
Y2tlckNsaWVudD4mJiBwcm9ncmVzc1RyYWNrZXJDbGllbnQpCitQYWdlQ29uZmlndXJhdGlvbjo6
UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRp
dG9yQ2xpZW50PiYmIGVkaXRvckNsaWVudCwgUmVmPFNvY2tldFByb3ZpZGVyPiYmIHNvY2tldFBy
b3ZpZGVyLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYgbGliV2ViUlRDUHJvdmlkZXIs
IFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiBjYWNoZVN0b3JhZ2VQcm92aWRlciwgUmVmPEJh
Y2tGb3J3YXJkQ2xpZW50PiYmIGJhY2tGb3J3YXJkQ2xpZW50LCBSZWY8Q29va2llSmFyPiYmIGNv
b2tpZUphciwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiBwcm9ncmVzc1RyYWNr
ZXJDbGllbnQsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYgbWVkaWFSZWNvcmRl
clByb3ZpZGVyKQogICAgIDogc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIGVkaXRvckNsaWVu
dChXVEZNb3ZlKGVkaXRvckNsaWVudCkpCiAgICAgLCBzb2NrZXRQcm92aWRlcihXVEZNb3ZlKHNv
Y2tldFByb3ZpZGVyKSkKQEAgLTY0LDYgKzY1LDcgQEAgUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VD
b25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckMK
ICAgICAsIGJhY2tGb3J3YXJkQ2xpZW50KFdURk1vdmUoYmFja0ZvcndhcmRDbGllbnQpKQogICAg
ICwgY29va2llSmFyKFdURk1vdmUoY29va2llSmFyKSkKICAgICAsIGNhY2hlU3RvcmFnZVByb3Zp
ZGVyKFdURk1vdmUoY2FjaGVTdG9yYWdlUHJvdmlkZXIpKQorICAgICwgbWVkaWFSZWNvcmRlclBy
b3ZpZGVyKFdURk1vdmUobWVkaWFSZWNvcmRlclByb3ZpZGVyKSkKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IDE5MWEwMmI2MTVmNDBhOTgwYzQyMWY3
ZmJmM2YzMTZkMmIxNjRmZWYuLjNhOGVkMzM0NDBjMmMxODg1MjgzMTg5MThhNzUyMmI5MjE3ZjQ3
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKQEAgLTUyLDYgKzUy
LDcgQEAgY2xhc3MgRWRpdG9yQ2xpZW50OwogY2xhc3MgRnJhbWVMb2FkZXJDbGllbnQ7CiBjbGFz
cyBJbnNwZWN0b3JDbGllbnQ7CiBjbGFzcyBMaWJXZWJSVENQcm92aWRlcjsKK2NsYXNzIE1lZGlh
UmVjb3JkZXJQcm92aWRlcjsKIGNsYXNzIFBheW1lbnRDb29yZGluYXRvckNsaWVudDsKIGNsYXNz
IFBlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudDsKIGNsYXNzIFBsdWdJbkNsaWVudDsKQEAgLTY4LDcg
KzY5LDcgQEAgY2xhc3MgU3BlZWNoU3ludGhlc2lzQ2xpZW50OwogY2xhc3MgUGFnZUNvbmZpZ3Vy
YXRpb24gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDb25maWd1cmF0aW9uKTsgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgUGFnZUNv
bmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYsIFJl
ZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmLCBSZWY8
Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiwgUmVmPENv
b2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJik7CisgICAgV0VC
Q09SRV9FWFBPUlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQsIFVuaXF1ZVJlZjxF
ZGl0b3JDbGllbnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVlUmVmPExpYldlYlJU
Q1Byb3ZpZGVyPiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJlZjxCYWNrRm9yd2Fy
ZENsaWVudD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNs
aWVudD4mJiwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgflBhZ2VDb25maWd1cmF0aW9uKCk7CiAgICAgUGFnZUNvbmZpZ3VyYXRpb24oUGFn
ZUNvbmZpZ3VyYXRpb24mJik7CiAKQEAgLTEyMyw2ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgUmVm
UHRyPERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI+IGRldmljZU9yaWVudGF0aW9uVXBk
YXRlUHJvdmlkZXI7CiAjZW5kaWYKICAgICBWZWN0b3I8U3RyaW5nPiBjb3JzRGlzYWJsaW5nUGF0
dGVybnM7CisgICAgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4gbWVkaWFSZWNvcmRl
clByb3ZpZGVyOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQ
cml2YXRlV3JpdGVyQ29jb2EuaAppbmRleCBmZmY0NWQ2MzkzOGRiMzM4YjQ3MjRiN2E3NDZjZTM3
MjRmYTFkM2FiLi41MTk3OGJiNmQ4ZDFhMWIwZTVjMWM3YTAxNTEyMjJiZDhiZGZiMmE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaApA
QCAtNDksOSArNDksMTAgQEAgY2xhc3MgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKIGNsYXNzIE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlOwogY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CiAKLWNsYXNz
IE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWlu
PiwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiB7Citj
bGFzcyBXRUJDT1JFX0VYUE9SVCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciA6IHB1YmxpYyBU
aHJlYWRTYWZlUmVmQ291bnRlZDxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciwgV1RGOjpEZXN0
cnVjdGlvblRocmVhZDo6TWFpbj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlcj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8TWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXI+IGNyZWF0ZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogYXVk
aW9UcmFjaywgY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIHZpZGVvVHJhY2spOworICAg
IHN0YXRpYyBSZWZQdHI8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IGNyZWF0ZShib29sIGhh
c0F1ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOwogICAgIH5NZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlcigpOwogICAgIAogICAgIGJvb2wgc2V0dXBXcml0ZXIoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3Jk
ZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQppbmRleCA5MmZlMmE0
NTBlNTkzZjI0YTk2OGZhZWYwYTZiOTZmOTVhZGUzNTEzLi4wNjljODg3NGYwMDllMDk2YzI0OWEw
NzgwMTkwZGQ4MDQ4YzZiOWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCkBAIC05MCw2ICs5MCwxNyBAQCBzdGF0aWMgTlNTdHJp
bmcgKmdldEFWRW5jb2RlckJpdFJhdGVLZXlXaXRoRmFsbGJhY2soKQogfQogCiBSZWZQdHI8TWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjcmVh
dGUoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIGF1ZGlvVHJhY2ssIGNvbnN0IE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlKiB2aWRlb1RyYWNrKQoreworICAgIGludCB3aWR0aCA9IDAsIGhl
aWdodCA9IDA7CisgICAgaWYgKHZpZGVvVHJhY2spIHsKKyAgICAgICAgYXV0byYgc2V0dGluZ3Mg
PSB2aWRlb1RyYWNrLT5zZXR0aW5ncygpOworICAgICAgICB3aWR0aCA9IHNldHRpbmdzLndpZHRo
KCk7CisgICAgICAgIGhlaWdodCA9IHNldHRpbmdzLmhlaWdodCgpOworICAgIH0KKyAgICByZXR1
cm4gY3JlYXRlKCEhYXVkaW9UcmFjaywgd2lkdGgsIGhlaWdodCk7Cit9CisKK1JlZlB0cjxNZWRp
YVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNyZWF0
ZShib29sIGhhc0F1ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCiB7CiAgICAgTlNTdHJpbmcg
KmRpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAInZpZGVv
cyIpOwogICAgIE5TU3RyaW5nICpmaWxlbmFtZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0
OkAiLyVsbGQubXA0IiwgQ01DbG9ja0dldFRpbWUoQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSku
dmFsdWVdOwpAQCAtMTA2LDEyICsxMTcsMTEgQEAgUmVmUHRyPE1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyPiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y3JlYXRlKGNvbnN0IE1lZGkKIAog
ICAgIGF1dG8gd3JpdGVyID0gYWRvcHRSZWYoKm5ldyBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
cihXVEZNb3ZlKGF2QXNzZXRXcml0ZXIpLCBXVEZNb3ZlKGZpbGVQYXRoKSkpOwogCi0gICAgaWYg
KGF1ZGlvVHJhY2sgJiYgIXdyaXRlci0+c2V0QXVkaW9JbnB1dCgpKQorICAgIGlmIChoYXNBdWRp
byAmJiAhd3JpdGVyLT5zZXRBdWRpb0lucHV0KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgaWYgKHZpZGVvVHJhY2spIHsKLSAgICAgICAgYXV0byYgc2V0dGluZ3MgPSB2aWRlb1Ry
YWNrLT5zZXR0aW5ncygpOwotICAgICAgICBpZiAoIXdyaXRlci0+c2V0VmlkZW9JbnB1dChzZXR0
aW5ncy53aWR0aCgpLCBzZXR0aW5ncy5oZWlnaHQoKSkpCisgICAgaWYgKHdpZHRoICYmIGhlaWdo
dCkgeworICAgICAgICBpZiAoIXdyaXRlci0+c2V0VmlkZW9JbnB1dCh3aWR0aCwgaGVpZ2h0KSkK
ICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAppbmRl
eCA0YTA2ODQ0MzhjZTY2NWQ3Y2QwNGRhMTBlYTExYTViYzJiNmYyOWY1Li5kZTQ0ZDg4ZWY1Yjlj
MzgxNDA0NGUwNWY3YzI4YmVlMThhNzJlZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaApAQCAtODEsNyAr
ODEsNyBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9
CiAKLSAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciB0cmFja3MoKSBjb25zdDsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciB0cmFja3MoKSBj
b25zdDsKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogYWN0aXZlVmlkZW9UcmFjaygpIHsg
cmV0dXJuIG1fYWN0aXZlVmlkZW9UcmFjazsgfQogCiAgICAgYm9vbCBhY3RpdmUoKSBjb25zdCB7
IHJldHVybiBtX2lzQWN0aXZlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAppbmRleCAzOTFh
NjUzZjQ4ZTNlN2UzMmE0ODJjNzc5N2M3ZGM3NzEzMTUwMjViLi4wMDcxNmZkMGE0NTYxNGRlNmNk
OGFiYWRlMDU5MGYyYmYxMGMwMjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKQEAgLTEw
MCw3ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBj
bG9uZSgpOwogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKCkgeyByZXR1cm4gbV9z
b3VyY2UuZ2V0KCk7IH0KLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUoKSBjb25z
dDsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUoKSBj
b25zdDsKIAogICAgIHZvaWQgZW5kVHJhY2soKTsKIApAQCAtMTEwLDcgKzExMCw3IEBAIHB1Ymxp
YzoKICAgICBib29sIGhhc09ic2VydmVyKE9ic2VydmVyJikgY29uc3Q7CiAjZW5kaWYKIAotICAg
IGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdDsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRp
bmdzKCkgY29uc3Q7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYg
Y2FwYWJpbGl0aWVzKCkgY29uc3Q7CiAKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3Qg
TWVkaWFDb25zdHJhaW50cyYsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5Q29uc3RyYWludHNI
YW5kbGVyJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGJhOTQxOGM1
MGM3OWYwMzg5NWUzN2JjN2IzNzdmYWE5M2I1NTczYjYuLjY4YWI0MjM4NzZhNjUwOWU1ZGJlMjBm
MDE2MmY0MjdmZTA5MDRjNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAg
LTEyMiw2ICsxMjIsNyBAQAogI2luY2x1ZGUgIk1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rv
cnkuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIu
aCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCIKICNpbmNsdWRlICJNZWRpYVJl
c291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFjay5oIgogI2luY2x1ZGUg
Ik1lbW9yeUNhY2hlLmgiCkBAIC01NTAsNiArNTUxLDggQEAgdm9pZCBJbnRlcm5hbHM6OnJlc2V0
VG9Db25zaXN0ZW50U3RhdGUoUGFnZSYgcGFnZSkKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRJbnRlcnJ1
cHRBdWRpb09uUGFnZVZpc2liaWxpdHlDaGFuZ2VFbmFibGVkKGZhbHNlKTsKKyAgICBXZWJDb3Jl
OjpNZWRpYVJlY29yZGVyOjpzZXRDdXN0b21Qcml2YXRlUmVjb3JkZXJDcmVhdG9yKG51bGxwdHIp
OworICAgIHBhZ2UubWVkaWFSZWNvcmRlclByb3ZpZGVyKCkuc2V0VXNlR1BVUHJvY2Vzcyh0cnVl
KTsKICNlbmRpZgogCiAgICAgSFRNTENhbnZhc0VsZW1lbnQ6OnNldE1heFBpeGVsTWVtb3J5Rm9y
VGVzdGluZygwKTsgLy8gVGhpcyBtZWFucyB1c2UgdGhlIGRlZmF1bHQgdmFsdWUuCkBAIC0xNTU4
LDcgKzE1NjEsOSBAQCB2b2lkIEludGVybmFsczo6c2V0VXNlR1BVUHJvY2Vzc0ZvcldlYlJUQyhi
b29sIHVzZUdQVVByb2Nlc3MpCiAgICAgYXV0byogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQo
KTsKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKQogICAgICAgICByZXR1
cm47CisKICAgICBkb2N1bWVudC0+cGFnZSgpLT5saWJXZWJSVENQcm92aWRlcigpLnNldFVzZUdQ
VVByb2Nlc3ModXNlR1BVUHJvY2Vzcyk7CisgICAgZG9jdW1lbnQtPnBhZ2UoKS0+bWVkaWFSZWNv
cmRlclByb3ZpZGVyKCkuc2V0VXNlR1BVUHJvY2Vzcyh1c2VHUFVQcm9jZXNzKTsKICNlbmRpZgog
fQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3QKaW5kZXggNzk5NGUzY2E3Nzc2MzI5ZDZmNzVkN2FhZjBjOTNmZDlhYTA1OWUxMC4uYjk4ODBi
YzBhY2Y2ZjYxYzAyYjNiMzdkMmM0Y2JlZWJhMTAyMDgyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTksNiArMTksOCBAQCAkKFBST0pF
Q1RfRElSKS9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVByb2Nlc3Muc2IuaW4K
ICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nl
c3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElS
KS9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluCiskKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5tZXNzYWdl
cy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5h
Z2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90
b2NvbHMvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLm1lc3NhZ2VzLmluCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCAw
Y2QyM2UwMWJiYWNkMmVjNGEwYmRjM2JkZmYyYmUwZDdiNjBiMDFiLi5kNzIwNjIzYWJhY2FkZGU5
N2M1ZjM1YzI3MzJmNThkZjliOTYyNzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEyOSw2ICsxMjksMTIgQEAgJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
TWVzc2FnZXNSZXAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRp
YVJlY29yZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2VzLmgKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVjb3JkZXJN
ZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlTWVkaWFSZWNvcmRlcnNNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlY29yZGVyc01l
c3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZU1lZGlhUmVjb3JkZXJzTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1l
c3NhZ2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggOWQzZTJhOTBj
N2I0ZDkwYTQyNmM3NmE0ZTA1ZTZiMmY4MWNjMGU5ZS4uYTU2ODYwMWI3N2IxZGJkN2ZmZDYzNmRl
N2I2MzRiMWZlMmIxMjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTQzLDYg
KzE0Myw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHkgXAogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciBcCiAgICAgUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkgXAorICAgIFJlbW90ZU1lZGlhUmVjb3JkZXIgXAorICAg
IFJlbW90ZU1lZGlhUmVjb3JkZXJzIFwKICAgICBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciBc
CiAgICAgUmVtb3RlT2JqZWN0UmVnaXN0cnkgXAogICAgIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAppbmRleCA1MmE5NWNlMGRlZDcwM2Q2MWQzNGE5ZDE3ZjBjOGI0MmU2
NjRmZGRhLi43ZjY2MzNhN2Q3OThhMTU0NjQ2ZTI5OWI2OTgxZDkyNTNiMmNjNzdjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCkBAIC0zOSw2ICszOSw5IEBACiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWFQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2Vz
LmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAi
UmVtb3RlTWVkaWFSZWNvcmRlcnMuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlY29yZGVyc01l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaCIKICNpbmNs
dWRlICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5oIgpAQCAtMTM3LDkgKzE0MCw3IEBA
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkmIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OnVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyCiAKICAgICByZXR1cm4gKm1fdXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTsKIH0KLSNlbmRpZgogCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShM
SUJXRUJSVEMpCiBMaWJXZWJSVENDb2RlY3NQcm94eSYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6bGliV2ViUlRDQ29kZWNzUHJveHkoKQogewogICAgIGlmICghbV9saWJXZWJSVENDb2RlY3NQ
cm94eSkKQEAgLTE0OSw2ICsxNTAsMTYgQEAgTGliV2ViUlRDQ29kZWNzUHJveHkmIEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OmxpYldlYlJUQ0NvZGVjc1Byb3h5KCkKIH0KICNlbmRpZgogCisj
aWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCitSZW1vdGVNZWRpYVJlY29yZGVy
cyYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bWVkaWFSZWNvcmRlcnMoKQoreworICAgIGlm
ICghbV9yZW1vdGVNZWRpYVJlY29yZGVycykKKyAgICAgICAgbV9yZW1vdGVNZWRpYVJlY29yZGVy
cyA9IG1ha2VVbmlxdWU8UmVtb3RlTWVkaWFSZWNvcmRlcnM+KCp0aGlzKTsKKworICAgIHJldHVy
biAqbV9yZW1vdGVNZWRpYVJlY29yZGVyczsKK30KKyNlbmRpZgorCiB2b2lkIEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewpAQCAtMTYzLDYgKzE3NCwxNCBAQCB2b2lkIEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgSQogICAgICAgICB1c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCkuZGlk
UmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkg
PT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXJzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkp
IHsKKyAgICAgICAgbWVkaWFSZWNvcmRlcnMoKS5kaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9j
ZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlm
IChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFS
ZWNvcmRlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIG1lZGlhUmVjb3JkZXJz
KCkuZGlkUmVjZWl2ZVJlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIpOworICAgICAgICByZXR1cm47CisgICAgfQogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0Ep
ICYmIFVTRShMSUJXRUJSVEMpCiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgp
ID09IE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaAppbmRleCBhYzcxMjVkNzM4ZDg2ODg4ZWVhOGI0YTkyNTE1ZjlkZTRkMWY2YjA0
Li44OWM0Y2ExYzIyMmZhNWM5YTU0ZmE2YzA1NmRhOTgyM2JiNTZlZDRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAg
LTQxLDggKzQxLDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBHUFVQcm9jZXNzOwogY2xh
c3MgTGliV2ViUlRDQ29kZWNzUHJveHk7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eTsKLWNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7CitjbGFzcyBSZW1vdGVN
ZWRpYVJlY29yZGVyczsKIGNsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOworY2xhc3Mg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKIAogY2xhc3MgR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcwogICAgIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cz4KQEAgLTcxLDYgKzcyLDcgQEAgcHJpdmF0ZToKICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09B
KSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkmIHVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoKTsKKyAgICBSZW1vdGVNZWRpYVJlY29y
ZGVycyYgbWVkaWFSZWNvcmRlcnMoKTsKICNlbmRpZgogCiAgICAgLy8gSVBDOjpDb25uZWN0aW9u
OjpDbGllbnQKQEAgLTg5LDYgKzkxLDcgQEAgcHJpdmF0ZToKICAgICBQQUw6OlNlc3Npb25JRCBt
X3Nlc3Npb25JRDsKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eT4gbV91c2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRp
YVJlY29yZGVycz4gbV9yZW1vdGVNZWRpYVJlY29yZGVyczsKICNlbmRpZgogI2lmIFBMQVRGT1JN
KENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVEND
b2RlY3NQcm94eT4gbV9saWJXZWJSVENDb2RlY3NQcm94eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVByb2Nlc3Mu
c2IuaW4KaW5kZXggZDYzMmJlZWJjYjM1ZDc0ZTM4ZTBjYjE4NjFiN2YwNTdhNWYzNmQ5NC4uOWI3
NDEyYmI0ZGE2Y2VmMmY3MmIyN2Y1YTQxZmRlZGE3MTY5ODA1ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVByb2Nlc3Muc2IuaW4K
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVBy
b2Nlc3Muc2IuaW4KQEAgLTgzNiwzICs4MzYsNyBAQAogICAgICAgICAoaW9raXQtdXNlci1jbGll
bnQtY2xhc3MgIklPVVNCSW50ZXJmYWNlVXNlckNsaWVudFYyIikpCiAgICAgKGFsbG93IGRldmlj
ZS1jYW1lcmEpKQogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKKworKGFsbG93IGZpbGUtcmVhZCog
ZmlsZS13cml0ZSogKHN1YnBhdGggKHBhcmFtICJEQVJXSU5fVVNFUl9DQUNIRV9ESVIiKSkpCisK
KyhhbGxvdyBmaWxlLXJlYWQqIGZpbGUtd3JpdGUqIChzdWJwYXRoIChwYXJhbSAiREFSV0lOX1VT
RVJfVEVNUF9ESVIiKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZDhhODVkNTc0YmNlN2Nh
YzMwM2Q2M2EyOWJiOTVmMGMzOWNjZjBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcApAQCAtMCwwICsxLDEz
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVN
ZWRpYVJlY29yZGVyLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL0NBUmluZ0J1ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VUcmFuc2ZlclNl
c3Npb25WVC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVtb3RlVmlkZW9TYW1wbGUuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0
aW9uSGFuZGxlci5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK3N0ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVJlY29yZGVyPiBSZW1vdGVNZWRp
YVJlY29yZGVyOjpjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlv
blRvV2ViUHJvY2VzcywgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIgaWRlbnRpZmllciwgYm9vbCBy
ZWNvcmRBdWRpbywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQoreworICAgIGF1dG8gd3JpdGVyID0g
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNyZWF0ZShyZWNvcmRBdWRpbywgd2lkdGgsIGhl
aWdodCk7CisgICAgaWYgKCF3cml0ZXIpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJl
dHVybiBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFSZWNvcmRlcj4obmV3IFJlbW90ZU1lZGlh
UmVjb3JkZXIgeyBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBpZGVudGlmaWVyLCB3cml0ZXIu
cmVsZWFzZU5vbk51bGwoKSwgcmVjb3JkQXVkaW8gfSk7Cit9CisKK1JlbW90ZU1lZGlhUmVjb3Jk
ZXI6OlJlbW90ZU1lZGlhUmVjb3JkZXIoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29u
bmVjdGlvblRvV2ViUHJvY2VzcywgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIgaWRlbnRpZmllciwg
UmVmPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiYmIHdyaXRlciwgYm9vbCByZWNvcmRBdWRp
bykKKyAgICA6IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcyhncHVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzKQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX3dyaXRlcihX
VEZNb3ZlKHdyaXRlcikpCit7CisgICAgaWYgKHJlY29yZEF1ZGlvKQorICAgICAgICBtX3JpbmdC
dWZmZXIgPSBtYWtlVW5pcXVlPENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5n
QnVmZmVyU3RvcmFnZT4obnVsbHB0cikpOworfQorCitSZW1vdGVNZWRpYVJlY29yZGVyOjp+UmVt
b3RlTWVkaWFSZWNvcmRlcigpCit7Cit9CisKK1NoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBSZW1v
dGVNZWRpYVJlY29yZGVyOjpzdG9yYWdlKCkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXItPnN0b3JhZ2UoKSk7Cit9CisKK3Zv
aWQgUmVtb3RlTWVkaWFSZWNvcmRlcjo6YXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQoY29uc3Qg
U2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhhbmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7Cisg
ICAgQVNTRVJUKG1fcmluZ0J1ZmZlcik7CisgICAgaWYgKCFtX3JpbmdCdWZmZXIpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKKworICAgIGlmICho
YW5kbGUuaXNOdWxsKCkpIHsKKyAgICAgICAgbV9yaW5nQnVmZmVyLT5kZWFsbG9jYXRlKCk7Cisg
ICAgICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25seShmYWxzZSk7CisgICAgICAgIHN0b3JhZ2UoKS5z
ZXRTdG9yYWdlKG51bGxwdHIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBt
ZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1hcChoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlv
bjo6UmVhZE9ubHkpOworICAgIHN0b3JhZ2UoKS5zZXRTdG9yYWdlKFdURk1vdmUobWVtb3J5KSk7
CisgICAgc3RvcmFnZSgpLnNldFJlYWRPbmx5KHRydWUpOworCisgICAgbV9yaW5nQnVmZmVyLT5h
bGxvY2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworfQorCit2b2lkIFJlbW90ZU1l
ZGlhUmVjb3JkZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUgdGltZSwgdWludDY0
X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1l
KQoreworICAgIEFTU0VSVChtX3JpbmdCdWZmZXIpOworICAgIGlmICghbV9yaW5nQnVmZmVyKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX3JpbmdCdWZmZXItPnNldEN1cnJlbnRGcmFtZUJvdW5k
cyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7CisKKyAgICBXZWJBdWRpb0J1ZmZlckxpc3QgYXVkaW9E
YXRhKG1fZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAgICBtX3JpbmdCdWZmZXItPmZl
dGNoKGF1ZGlvRGF0YS5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsK
KworICAgIG1fd3JpdGVyLT5hcHBlbmRBdWRpb1NhbXBsZUJ1ZmZlcihhdWRpb0RhdGEsIG1fZGVz
Y3JpcHRpb24sIHRpbWUsIG51bWJlck9mRnJhbWVzKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJl
Y29yZGVyOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSYm
IHJlbW90ZVNhbXBsZSkKK3sKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24gfHwgbV9p
bWFnZVRyYW5zZmVyU2Vzc2lvbi0+cGl4ZWxGb3JtYXQoKSAhPSByZW1vdGVTYW1wbGUudmlkZW9G
b3JtYXQoKSkKKyAgICAgICAgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiA9IEltYWdlVHJhbnNmZXJT
ZXNzaW9uVlQ6OmNyZWF0ZShyZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSk7CisKKyAgICBpZiAo
IW1faW1hZ2VUcmFuc2ZlclNlc3Npb24pIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9IG1faW1h
Z2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1lZGlhU2FtcGxlKHJlbW90ZVNhbXBsZS5zdXJmYWNl
KCksIHJlbW90ZVNhbXBsZS50aW1lKCksIHJlbW90ZVNhbXBsZS5zaXplKCkpOworICAgIGlmICgh
c2FtcGxlQnVmZmVyKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgbV93cml0ZXItPmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKHNh
bXBsZUJ1ZmZlci0+cGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOworfQor
Cit2b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXI6OmZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKElQQzo6RGF0YVJlZmVyZW5jZSYmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5n
PiBtcDRNaW1lVHlwZShNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgidmlkZW8vbXA0IikpOworICAg
IG1fd3JpdGVyLT5mZXRjaERhdGEoWyZtcDRNaW1lVHlwZSA9IG1wNE1pbWVUeXBlLmdldCgpLCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvJiYgZGF0
YSkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8qIHBvaW50ZXIgPSByZWludGVycHJldF9jYXN0PGNv
bnN0IHVpbnQ4X3QqPihkYXRhID8gZGF0YS0+ZGF0YSgpIDogbnVsbHB0cik7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKElQQzo6RGF0YVJlZmVyZW5jZSB7IHBvaW50ZXIsIGRhdGEgPyBkYXRh
LT5zaXplKCkgOiAwIH0sIG1wNE1pbWVUeXBlKTsKKyAgICB9KTsKK30KKwordm9pZCBSZW1vdGVN
ZWRpYVJlY29yZGVyOjpzdG9wUmVjb3JkaW5nKCkKK3sKKyAgICBtX3dyaXRlci0+c3RvcFJlY29y
ZGluZygpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NGE4ZDE3NTVj
NTk1MzBjMjMxMzZiNDc3YjlhOGEwODU0NDE0ZjU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmgKQEAgLTAsMCAr
MSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oQ09DT0Ep
ICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJJZGVudGlm
aWVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiU2hhcmVkTWVt
b3J5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaD4KKyNpbmNs
dWRlIDx3dGYvTWVkaWFUaW1lLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlv
bjsKK2NsYXNzIERhdGFSZWZlcmVuY2U7CitjbGFzcyBEZWNvZGVyOworfQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CitjbGFzcyBDQVJpbmdCdWZmZXI7CitjbGFzcyBJbWFnZVRyYW5zZmVyU2Vzc2lv
blZUOworY2xhc3MgUmVtb3RlVmlkZW9TYW1wbGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOworY2xhc3MgU2hhcmVkUmluZ0J1ZmZl
clN0b3JhZ2U7CisKK2NsYXNzIFJlbW90ZU1lZGlhUmVjb3JkZXIgOiBwcml2YXRlIElQQzo6TWVz
c2FnZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZU1lZGlhUmVjb3JkZXI+IGNyZWF0ZShHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIsIGJvb2wgcmVj
b3JkQXVkaW8sIGludCB3aWR0aCwgaW50IGhlaWdodCk7CisgICAgflJlbW90ZU1lZGlhUmVjb3Jk
ZXIoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgUmVtb3RlTWVkaWFSZWNvcmRlcihH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIsIFJlZjxX
ZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4mJiwgYm9vbCByZWNvcmRBdWRpbyk7
CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgYXVkaW9TYW1wbGVzU3Rv
cmFnZUNoYW5nZWQoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpD
QUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisgICAg
dm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lLCB1aW50NjRfdCBudW1iZXJPZkZy
YW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworICAgIHZvaWQg
dmlkZW9TYW1wbGVBdmFpbGFibGUoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUmJik7CisgICAg
dm9pZCBmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OkRhdGFSZWZlcmVuY2Um
JiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk+JiYpOworICAgIHZvaWQgc3RvcFJlY29yZGluZygp
OworCisgICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKTsKKworICAgIEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MmIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzczsKKyAgICBN
ZWRpYVJlY29yZGVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgUmVmPFdlYkNvcmU6Ok1l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiBtX3dyaXRlcjsKKworICAgIFdlYkNvcmU6OkNBQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uOworICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpDQVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVD4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbjsK
K307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzE0ZWRjNTM2MTAyM2VkYzc4Mjc4MGM0ZDQ2ZTlkMTViOTQ4MTM5ZgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRl
ci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM0IEBACisjIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisj
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFSZWNvcmRlciBOb3RSZWZDb3VudGVkIHsKKyAgICBB
dWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlIHN0
b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBkZXNjcmlwdGlv
biwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisgICAgQXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1l
ZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFt
ZSwgdWludDY0X3QgZW5kRnJhbWUpCisgICAgVmlkZW9TYW1wbGVBdmFpbGFibGUoV2ViQ29yZTo6
UmVtb3RlVmlkZW9TYW1wbGUgc2FtcGxlKQorICAgIEZldGNoRGF0YSgpIC0+IChJUEM6OkRhdGFS
ZWZlcmVuY2UgYnVmZmVyLCBTdHJpbmcgbWltZVR5cGUpIEFzeW5jCisgICAgU3RvcFJlY29yZGlu
ZygpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZGY4ZmUzYTUyMTAy
NzgxY2MzODJhYTFlNDcxYjMwNzE1YTdiNzYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5jcHAKQEAgLTAsMCAr
MSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1v
dGVNZWRpYVJlY29yZGVycy5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJEZWNvZGVy
LmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlci5oIgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworUmVtb3RlTWVkaWFSZWNvcmRlcnM6OlJlbW90ZU1lZGlhUmVjb3JkZXJzKEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCisgICAgOiBtX2dw
dUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcykKK3sKK30K
KworUmVtb3RlTWVkaWFSZWNvcmRlcnM6On5SZW1vdGVNZWRpYVJlY29yZGVycygpCit7Cit9CisK
K3ZvaWQgUmVtb3RlTWVkaWFSZWNvcmRlcnM6OmRpZFJlY2VpdmVSZW1vdGVNZWRpYVJlY29yZGVy
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rl
cikKK3sKKyAgICBpZiAoYXV0byogcmVjb3JkZXIgPSBtX3JlY29yZGVycy5nZXQobWFrZU9iamVj
dElkZW50aWZpZXI8TWVkaWFSZWNvcmRlcklkZW50aWZpZXJUeXBlPihkZWNvZGVyLmRlc3RpbmF0
aW9uSUQoKSkpKQorICAgICAgICByZWNvcmRlci0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlv
biwgZGVjb2Rlcik7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZWNvcmRlcnM6OmNyZWF0ZVJlY29y
ZGVyKE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgcmVjb3JkQXVkaW8s
IGludCB3aWR0aCwgaW50IGhlaWdodCkKK3sKKyAgICBBU1NFUlQoIW1fcmVjb3JkZXJzLmNvbnRh
aW5zKGlkZW50aWZpZXIpKTsKKyAgICBhdXRvIHJlY29yZGVyID0gUmVtb3RlTWVkaWFSZWNvcmRl
cjo6Y3JlYXRlKG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgaWRlbnRpZmllciwgcmVjb3Jk
QXVkaW8sIHdpZHRoLCBoZWlnaHQpOworICAgIGlmICghcmVjb3JkZXIpIHsKKyAgICAgICAgLy8g
RklYTUU6IFNlbmQgYmFjayBlcnJvci4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX3Jl
Y29yZGVycy5hZGQoaWRlbnRpZmllciwgV1RGTW92ZShyZWNvcmRlcikpOworfQorCit2b2lkIFJl
bW90ZU1lZGlhUmVjb3JkZXJzOjpyZWxlYXNlUmVjb3JkZXIoTWVkaWFSZWNvcmRlcklkZW50aWZp
ZXIgaWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQobV9yZWNvcmRlcnMuY29udGFpbnMoaWRlbnRp
ZmllcikpOworICAgIG1fcmVjb3JkZXJzLnJlbW92ZShpZGVudGlmaWVyKTsKK30KKworfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
TWVkaWFSZWNvcmRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
TWVkaWFSZWNvcmRlcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzZmMTc5NGE1MDQzNmNmYmYwZTJlNmEwOTg1
ODYwMzQzZGJhMjk1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5oCkBAIC0wLDAgKzEsNjcgQEAKKworCisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlcklkZW50aWZpZXIuaCIKKyNpbmNs
dWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1l
c3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247CitjbGFzcyBEZWNvZGVyOworfQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKK2NsYXNz
IFJlbW90ZU1lZGlhUmVjb3JkZXI7CisKK2NsYXNzIFJlbW90ZU1lZGlhUmVjb3JkZXJzIDogcHJp
dmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CitwdWJsaWM6CisgICAgZXhwbGljaXQgUmVtb3RlTWVkaWFSZWNvcmRlcnMoR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYpOworICAgIH5SZW1vdGVNZWRpYVJlY29yZGVycygpOworCisgICAgdm9p
ZCBkaWRSZWNlaXZlUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNz
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKSB7IGRp
ZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOyB9CisKK3ByaXZhdGU6CisgICAg
Ly8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworICAgIHZvaWQgY3JlYXRlUmVjb3Jk
ZXIoTWVkaWFSZWNvcmRlcklkZW50aWZpZXIsIGJvb2wgcmVjb3JkQXVkaW8sIGludCB3aWR0aCwg
aW50IGhlaWdodCk7CisgICAgdm9pZCByZWxlYXNlUmVjb3JkZXIoTWVkaWFSZWNvcmRlcklkZW50
aWZpZXIpOworCisgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9ncHVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOworICAgIEhhc2hNYXA8TWVkaWFSZWNvcmRlcklkZW50aWZpZXIsIHN0ZDo6
dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVJlY29yZGVyPj4gbV9yZWNvcmRlcnM7Cit9OworCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVNZWRpYVJlY29yZGVycy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93
ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRlNWRl
OTI5MjY1NDQ3YTVmMGFlY2UwNmE0NmMyMDU1ZGQ1ZWZlNQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMubWVzc2Fn
ZXMuaW4KQEAgLTAsMCArMSwzMSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt
ZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
IyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3Nh
Z2VzIC0+IFJlbW90ZU1lZGlhUmVjb3JkZXJzIE5vdFJlZkNvdW50ZWQgeworICAgIENyZWF0ZVJl
Y29yZGVyKFdlYktpdDo6TWVkaWFSZWNvcmRlcklkZW50aWZpZXIgaWQsIGJvb2wgaGFzQXVkaW8s
IGludCB3aWR0aCwgaW50IGhlaWdodCkKKyAgICBSZWxlYXNlUmVjb3JkZXIoV2ViS2l0OjpNZWRp
YVJlY29yZGVySWRlbnRpZmllciBpZCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBjOWQwZTdjNjkxZmY3Yzk1NWY4YzM1MTEwMDFjNDBh
NTU0YWI5MDRlLi43MzkyNDE3NWNkNjBkZjk1YTgyNDg0ODZjNzBkODEyOTI2Yzg1ZmE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTIyMCw2ICsyMjAsNyBA
QCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAn
V2ViS2l0OjpBY3Rpdml0eVN0YXRlQ2hhbmdlSUQnLAogICAgICAgICAnV2ViS2l0OjpMYXllckhv
c3RpbmdDb250ZXh0SUQnLAogICAgICAgICAnV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYktpdDo6TWVkaWFSZWNvcmRlcklkZW50aWZpZXIn
LAogICAgICAgICAnV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcicsCiAgICAg
ICAgICdXZWJLaXQ6OlJUQ0RlY29kZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6UlRD
RW5jb2RlcklkZW50aWZpZXInLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4
dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggZDAzOTNiYjA2MmQ5N2FlOTZhNzIy
NWE2ZDYwN2IwNzRiMzhlMGM5OC4uYzg1MjQxMDdhZDVmYTcyZjc3OWZkMGIwZDRmMzRhNWMxNzE5
OWI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0CkBAIC0yNCw2ICsyNCw4IEBACiBHUFVQcm9jZXNzL0dQVVByb2Nl
c3MuY3BwCiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCiBHUFVQcm9j
ZXNzL0dQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCitHUFVQcm9jZXNzL3dlYnJ0Yy9S
ZW1vdGVNZWRpYVJlY29yZGVyLmNwcAorR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNv
cmRlcnMuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
LmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAogR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcApAQCAtNTEzLDYgKzUxNSw4IEBAIFdl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKIFdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5jcHAgQG5vLXVuaWZ5
CiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwCiBXZWJQ
cm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAorV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcAorV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlh
UmVjb3JkZXJQcm92aWRlci5jcHAKIAogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJL
aXQvU291cmNlc0NvY29hLnR4dAppbmRleCBmZTc1Nzk1Mzc2MWI5OWY2OWI4MjhjMTFiYmMwZjMz
MWFlZWZjMTkxLi5iNjY3Mzc3ZmZiYzg4NTUxYTUzODZiYmYzMWRhOTNhYWJiMDkxNmNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0CkBAIC02MzUsNSArNjM1LDcgQEAgR1BVUHJvY2Vzc1Byb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcAogR1BVUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAKIExpYldlYlJU
Q0NvZGVjc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogTGliV2ViUlRDQ29kZWNzTWVzc2FnZVJl
Y2VpdmVyLmNwcAorUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90
ZU1lZGlhUmVjb3JkZXJzTWVzc2FnZVJlY2VpdmVyLmNwcAogU2VydmljZVdvcmtlckZldGNoVGFz
a01lc3NhZ2VSZWNlaXZlci5jcHAKIFRleHRDaGVja2luZ0NvbnRyb2xsZXJQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDU3NzhiYTU4NzIzMmM2ZTZhNzgyMjQ2YjljN2NiMzIwYWU4ZmNjZWEuLjE3
N2IzYWIxMDg5Yjk3ZWYyNDk1NWUwOTY0YmRjYzQwNjViMzczYWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzMxNiw2ICszMzE2LDE3
IEBACiAJCTQxNzIxOThDMjNCNjEyRTgwMEFFNTY4NiAvKiBSVENEZWNvZGVySWRlbnRpZmllci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENEZWNvZGVySWRlbnRpZmllci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTcyMTk4RDIzQjYyQzdDMDBBRTU2ODYg
LyogTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpYldlYlJUQ0NvZGVjcy5tZXNz
YWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3NjkwMTMyMkZERDQxQjAw
QjE1NzZEIC8qIE5ldHdvcmtSVENQcm92aWRlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IE5ldHdvcmtSVENQcm92aWRlci5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDE3NkU4OTIyM0MzNEQ2RTAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92
aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVJlY29yZGVyUHJvdmlkZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OTMyM0MzNEQ2RjAwM0U4M0ZFIC8qIE1lZGlhUmVj
b3JkZXJQcm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVJlY29yZGVyUHJvdmlk
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc2RTg5NDIzQzM0RTI2MDAz
RTgzRkUgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0MTc2RTg5NTIzQzM0RTI3MDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclBy
aXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFSZWNvcmRlclBy
aXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OTcyM0MzNjFCRDAw
M0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQxNzZFODk4MjNDMzY2NzcwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29y
ZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVjb3Jk
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OTkyM0MzNkQ4RTAwM0U4
M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZU1lZGlhUmVjb3JkZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQxNzZFODlBMjNDMzZGNzEwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVycy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlY29yZGVy
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODlCMjNDMzcyMjIwMDNF
ODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVycy5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBSZW1vdGVNZWRpYVJlY29yZGVycy5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OUMyM0MzNzQ3OTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVj
b3JkZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFSZWNv
cmRlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OUQy
M0MzNzZENTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZWNvcmRlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzkxNUFDMjI1NkJCNzQwMEQ2Rjk3RSAvKiBXZWJTb2Nr
ZXRDaGFubmVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlNv
Y2tldENoYW5uZWwuY3BwOyBwYXRoID0gTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3OTE1QUQyMjU2QkI3NDAwRDZGOTdFIC8qIFdl
YlNvY2tldENoYW5uZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViU29j
a2V0Q2hhbm5lbC5oOyBwYXRoID0gTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzkxNUIwMjI1NkMwRDYwMEQ2Rjk3RSAvKiBXZWJTb2Nr
ZXRDaGFubmVsTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJT
b2NrZXRDaGFubmVsTWFuYWdlci5oOyBwYXRoID0gTmV0d29yay9XZWJTb2NrZXRDaGFubmVsTWFu
YWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzExNyw2ICs3MTI4LDExIEBA
CiAJCQkJNDE3MjE5OEEyM0I2MTI4MjAwQUU1Njg2IC8qIExpYldlYlJUQ0NvZGVjcy5jcHAgKi8s
CiAJCQkJNDE3MjE5ODkyM0I2MTI4MjAwQUU1Njg2IC8qIExpYldlYlJUQ0NvZGVjcy5oICovLAog
CQkJCTQxNzIxOThEMjNCNjJDN0MwMEFFNTY4NiAvKiBMaWJXZWJSVENDb2RlY3MubWVzc2FnZXMu
aW4gKi8sCisJCQkJNDE3NkU4OTcyM0MzNjFCRDAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJJZGVu
dGlmaWVyLmggKi8sCisJCQkJNDE3NkU4OTQyM0MzNEUyNjAwM0U4M0ZFIC8qIE1lZGlhUmVjb3Jk
ZXJQcml2YXRlLmNwcCAqLywKKwkJCQk0MTc2RTg5NTIzQzM0RTI3MDAzRTgzRkUgLyogTWVkaWFS
ZWNvcmRlclByaXZhdGUuaCAqLywKKwkJCQk0MTc2RTg5MzIzQzM0RDZGMDAzRTgzRkUgLyogTWVk
aWFSZWNvcmRlclByb3ZpZGVyLmNwcCAqLywKKwkJCQk0MTc2RTg5MjIzQzM0RDZFMDAzRTgzRkUg
LyogTWVkaWFSZWNvcmRlclByb3ZpZGVyLmggKi8sCiAJCQkJNDE3MjE5OEMyM0I2MTJFODAwQUU1
Njg2IC8qIFJUQ0RlY29kZXJJZGVudGlmaWVyLmggKi8sCiAJCQkJNDE1ODY0OUEyM0JFMDkyNDAw
QTBBNjFFIC8qIFJUQ0VuY29kZXJJZGVudGlmaWVyLmggKi8sCiAJCQkpOwpAQCAtNzEyOSw2ICs3
MTQ1LDEyIEBACiAJCQkJNDFFMEE3QzYyM0I2Mzk3ODAwNTYxMDYwIC8qIExpYldlYlJUQ0NvZGVj
c1Byb3h5LmggKi8sCiAJCQkJNDFFMEE3QzcyM0I2Mzk3OTAwNTYxMDYwIC8qIExpYldlYlJUQ0Nv
ZGVjc1Byb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCTQxRTBBN0M4MjNCNjM5NzkwMDU2MTA2MCAv
KiBMaWJXZWJSVENDb2RlY3NQcm94eS5tbSAqLywKKwkJCQk0MTc2RTg5RDIzQzM3NkQ1MDAzRTgz
RkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAgKi8sCisJCQkJNDE3NkU4OTgyM0MzNjY3NzAw
M0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXIuaCAqLywKKwkJCQk0MTc2RTg5QzIzQzM3NDc5
MDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlci5tZXNzYWdlcy5pbiAqLywKKwkJCQk0MTc2
RTg5QTIzQzM2RjcxMDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlcnMuY3BwICovLAorCQkJ
CTQxNzZFODk5MjNDMzZEOEUwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVycy5oICovLAor
CQkJCTQxNzZFODlCMjNDMzcyMjIwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVycy5tZXNz
YWdlcy5pbiAqLywKIAkJCSk7CiAJCQlwYXRoID0gd2VicnRjOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZTJkNjZiZmJjYjQ5
ZDkzODkzODY1OGMwMDBlYTMxZDkyZWJmNzI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCkBAIC0w
LDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRl
ICJNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gTWVkaWFSZWNv
cmRlclByb3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZh
dGUmIHN0cmVhbSkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICByZXR1cm4gTWVkaWFSZWNv
cmRlclByaXZhdGVBVkZJbXBsOjpjcmVhdGUoc3RyZWFtKTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKHN0cmVhbSk7CisgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKK30KKworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVJlY29yZGVyUHJv
dmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFSZWNvcmRl
clByb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzEwZThkNDgxZjg2YTM1ZDBkOWVlOWZiODNlYWVlNjZk
Yzc5ZGZjZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhUmVj
b3JkZXJQcml2YXRlOworY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlOworCitjbGFzcyBXRUJDT1JF
X0VYUE9SVCBNZWRpYVJlY29yZGVyUHJvdmlkZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworcHVibGljOgorICAgIHN0YXRpYyBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVy
PiBjcmVhdGUoKSB7IHJldHVybiBtYWtlVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4o
KTsgfQorICAgIHZpcnR1YWwgfk1lZGlhUmVjb3JkZXJQcm92aWRlcigpID0gZGVmYXVsdDsKKwor
ICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBjcmVhdGVN
ZWRpYVJlY29yZGVyUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZhdGUmKTsKK307CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJJ
ZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJl
Y29yZGVySWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyZjA0ZTMzM2ZlODQ2MzIzY2NjZTc5Mzg1
Y2E3NTJiNTY0MTkzZWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVySWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlm
aWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIE1lZGlhUmVjb3JkZXJJZGVudGlm
aWVyVHlwZSB7IH07Cit1c2luZyBNZWRpYVJlY29yZGVySWRlbnRpZmllciA9IE9iamVjdElkZW50
aWZpZXI8TWVkaWFSZWNvcmRlcklkZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRp
YVJlY29yZGVyUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmMxNmM1MGZhODUzNTkwZDli
NGViNDVmZGRkZmY5ZjI4ZjJhZGMxOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcApAQCAtMCwwICsx
LDE0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRp
YVJlY29yZGVyUHJpdmF0ZS5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAi
UmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZWNv
cmRlcnNNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0NBUmluZ0J1ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTdHJlYW1Qcml2YXRl
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvUmVtb3RlVmlkZW9TYW1wbGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NoYXJl
ZEJ1ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworTWVkaWFSZWNv
cmRlclByaXZhdGU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0
ZSYgc3RyZWFtKQorICAgIDogbV9pZGVudGlmaWVyKE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyOjpn
ZW5lcmF0ZSgpKQorICAgICwgbV9jb25uZWN0aW9uKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVu
c3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpKQoreworICAgIC8vIEZJWE1F
OiB3ZSB3aWxsIG5lZWQgdG8gaW1wbGVtZW50IHN1cHBvcnQgZm9yIG11bHRpcGxlIGF1ZGlvL3Zp
ZGVvIHRyYWNrcworICAgIC8vIEN1cnJlbnRseSB3ZSBvbmx5IGNob29zZSB0aGUgZmlyc3QgdHJh
Y2sgYXMgdGhlIHJlY29yZGVkIHRyYWNrLgorICAgIC8vIEZJWE1FOiBXZSB3b3VsZCBiZXR0ZXIg
dG8gdGhyb3cgYW4gZXhjZXB0aW9uIHRvIEphdmFTY3JpcHQgaWYgd3JpdGVyIGNyZWF0aW9uIGZh
aWxzLgorCisgICAgY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIGF1ZGlvVHJhY2sgeyBu
dWxscHRyIH07CisgICAgY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIHZpZGVvVHJhY2sg
eyBudWxscHRyIH07CisgICAgZm9yIChhdXRvJiB0cmFjayA6IHN0cmVhbS50cmFja3MoKSkgewor
ICAgICAgICBpZiAoIXRyYWNrLT5lbmFibGVkKCkgfHwgdHJhY2stPmVuZGVkKCkpCisgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgc3dpdGNoICh0cmFjay0+dHlwZSgpKSB7CisgICAgICAg
IGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW86IHsKKyAgICAgICAgICAgIGF1
dG8mIHNldHRpbmdzID0gdHJhY2stPnNldHRpbmdzKCk7CisgICAgICAgICAgICBpZiAoIXZpZGVv
VHJhY2sgJiYgc2V0dGluZ3Muc3VwcG9ydHNXaWR0aCgpICYmIHNldHRpbmdzLnN1cHBvcnRzSGVp
Z2h0KCkpIHsKKyAgICAgICAgICAgICAgICB2aWRlb1RyYWNrID0gdHJhY2suZ2V0KCk7CisgICAg
ICAgICAgICAgICAgbV9yZWNvcmRlZFZpZGVvVHJhY2tJRCA9IHZpZGVvVHJhY2stPmlkKCk7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNl
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvOgorICAgICAgICAgICAgaWYgKCFhdWRp
b1RyYWNrKSB7CisgICAgICAgICAgICAgICAgbV9yaW5nQnVmZmVyID0gbWFrZVVuaXF1ZTxDQVJp
bmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KHRoaXMpKTsK
KyAgICAgICAgICAgICAgICBhdWRpb1RyYWNrID0gdHJhY2suZ2V0KCk7CisgICAgICAgICAgICAg
ICAgbV9yZWNvcmRlZEF1ZGlvVHJhY2tJRCA9IGF1ZGlvVHJhY2stPmlkKCk7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNl
OjpUeXBlOjpOb25lOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAg
bV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyczo6Q3JlYXRl
UmVjb3JkZXIgeyBtX2lkZW50aWZpZXIsICEhYXVkaW9UcmFjaywgdmlkZW9UcmFjayA/IHZpZGVv
VHJhY2stPnNldHRpbmdzKCkud2lkdGgoKSA6IDAsIHZpZGVvVHJhY2sgPyB2aWRlb1RyYWNrLT5z
ZXR0aW5ncygpLmhlaWdodCgpIDogMCB9LCAwKTsKK30KKworTWVkaWFSZWNvcmRlclByaXZhdGU6
On5NZWRpYVJlY29yZGVyUHJpdmF0ZSgpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyczo6UmVsZWFzZVJlY29yZGVyIHsgbV9pZGVudGlmaWVy
IH0sIDApOworfQorCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzYW1wbGVCdWZmZXJVcGRh
dGVkKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaywgV2ViQ29yZTo6TWVk
aWFTYW1wbGUmIHNhbXBsZSkKK3sKKyAgICBpZiAodHJhY2suaWQoKSAhPSBtX3JlY29yZGVkVmlk
ZW9UcmFja0lEKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGF1dG8gcmVtb3RlU2FtcGxlID0g
UmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShzYW1wbGUpKQorICAgICAgICBtX2Nvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OlZpZGVvU2FtcGxlQXZhaWxhYmxl
IHsgV1RGTW92ZSgqcmVtb3RlU2FtcGxlKSB9LCBtX2lkZW50aWZpZXIpOworfQorCit2b2lkIE1l
ZGlhUmVjb3JkZXJQcml2YXRlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoV2ViQ29yZTo6TWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBs
YXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24m
IGRlc2NyaXB0aW9uLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCit7CisgICAgaWYgKHRyYWNrLmlk
KCkgIT0gbV9yZWNvcmRlZEF1ZGlvVHJhY2tJRCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KG1fZGVzY3JpcHRpb24gIT0gZGVzY3JpcHRpb24pIHsKKyAgICAgICAgQVNTRVJUKGRlc2NyaXB0
aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNB
QXVkaW9TdHJlYW1CYXNpY1R5cGUpOworICAgICAgICBtX2Rlc2NyaXB0aW9uID0gKldURjo6Z2V0
PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9uLnBsYXRmb3Jt
RGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CisKKyAgICAgICAgLy8gQWxsb2NhdGUgYSByaW5n
IGJ1ZmZlciBsYXJnZSBlbm91Z2ggdG8gY29udGFpbiAyIHNlY29uZHMgb2YgYXVkaW8uCisgICAg
ICAgIG1fbnVtYmVyT2ZGcmFtZXMgPSBtX2Rlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSAqIDI7Cisg
ICAgICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUobV9kZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlw
dGlvbigpLCBtX251bWJlck9mRnJhbWVzKTsKKyAgICB9CisKKyAgICBBU1NFUlQoaXM8V2ViQXVk
aW9CdWZmZXJMaXN0PihhdWRpb0RhdGEpKTsKKyAgICBtX3JpbmdCdWZmZXItPnN0b3JlKGRvd25j
YXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4oYXVkaW9EYXRhKS5saXN0KCksIG51bWJlck9mRnJhbWVz
LCB0aW1lLnRpbWVWYWx1ZSgpKTsKKyAgICB1aW50NjRfdCBzdGFydEZyYW1lOworICAgIHVpbnQ2
NF90IGVuZEZyYW1lOworICAgIG1fcmluZ0J1ZmZlci0+Z2V0Q3VycmVudEZyYW1lQm91bmRzKHN0
YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJl
bW90ZU1lZGlhUmVjb3JkZXI6OkF1ZGlvU2FtcGxlc0F2YWlsYWJsZSB7IHRpbWUsIG51bWJlck9m
RnJhbWVzLCBzdGFydEZyYW1lLCBlbmRGcmFtZSB9LCBtX2lkZW50aWZpZXIpOworfQorCit2b2lk
IE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3Jh
Z2UpCit7CisgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOworICAgIGlmIChzdG9yYWdl
KQorICAgICAgICBzdG9yYWdlLT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlBy
b3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJl
bW90ZU1lZGlhUmVjb3JkZXI6OkF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkIHsgaGFuZGxlLCBt
X2Rlc2NyaXB0aW9uLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4obV9udW1iZXJPZkZyYW1lcykgfSwg
bV9pZGVudGlmaWVyKTsKK30KKwordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6ZmV0Y2hEYXRh
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJiwg
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbV9j
b25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3Jk
ZXI6OkZldGNoRGF0YSB7IH0sIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXShhdXRvJiYgZGF0YSwgYXV0byYmIG1pbWVUeXBlKSBtdXRhYmxlIHsKKyAgICAg
ICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyOworICAgICAgICBpZiAoIWRhdGEuc2l6ZSgp
KQorICAgICAgICAgICAgYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YS5kYXRhKCks
IGRhdGEuc2l6ZSgpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShidWZmZXIp
LCBtaW1lVHlwZSk7CisgICAgfSwgbV9pZGVudGlmaWVyKTsKK30KKwordm9pZCBNZWRpYVJlY29y
ZGVyUHJpdmF0ZTo6c3RvcFJlY29yZGluZygpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyOjpTdG9wUmVjb3JkaW5nIHsgfSwgbV9pZGVudGlm
aWVyKTsKK30KKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVf
UFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L01lZGlhUmVjb3JkZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkNzUwMzUyMzIzMmY4Y2Mw
NDRjYTliMWY0ODA2NGQ5YzQ4NTkwNzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCkBAIC0wLDAgKzEs
NzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKENPQ09BKSAm
JiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVySWRlbnRpZmll
ci5oIgorI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oPgorI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4K
KworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworfQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CitjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitjbGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpN
ZWRpYVJlY29yZGVyUHJpdmF0ZSwgcHVibGljIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpDbGll
bnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0
IE1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZSYp
OworICAgIH5NZWRpYVJlY29yZGVyUHJpdmF0ZSgpOworCitwcml2YXRlOgorICAgIC8vIFdlYkNv
cmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlCisgICAgdm9pZCBzYW1wbGVCdWZmZXJVcGRhdGVkKFdl
YkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgV2ViQ29yZTo6TWVkaWFTYW1wbGUmKSBm
aW5hbDsKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZSYsIGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgV2ViQ29yZTo6UGxh
dGZvcm1BdWRpb0RhdGEmLCBjb25zdCBXZWJDb3JlOjpBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwg
c2l6ZV90KSBmaW5hbDsKKyAgICB2b2lkIGZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUp
PiYmKSBmaW5hbDsKKyAgICB2b2lkIHN0b3BSZWNvcmRpbmcoKSBmaW5hbDsKKworICAgIC8vIFNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpDbGllbnQKKyAgICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKFNo
YXJlZE1lbW9yeSopOworCisgICAgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIgbV9pZGVudGlmaWVy
OworCisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIFN0cmluZyBt
X3JlY29yZGVkQXVkaW9UcmFja0lEOworICAgIFN0cmluZyBtX3JlY29yZGVkVmlkZW9UcmFja0lE
OworCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNBUmluZ0J1ZmZlcj4gbV9yaW5nQnVm
ZmVyOworICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9u
IHsgfTsKKyAgICBpbnQ2NF90IG1fbnVtYmVyT2ZGcmFtZXMgeyAwIH07Cit9OworCit9CisKKyNl
bmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJv
dmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNv
cmRlclByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OGI3ZjdlNDdjNjAyYjFhZjk5NzQ4MjU0MmMy
ZDYzODMxYzcyZTMyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDUwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQ
cm92aWRlci5oIgorCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGUuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL01lZGlhUmVjb3JkZXJQcml2YXRlLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGU+IE1lZGlhUmVjb3Jk
ZXJQcm92aWRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoY29uc3QgTWVkaWFTdHJlYW1Q
cml2YXRlJiBzdHJlYW0pCit7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIGlmICghbV91
c2VHUFVQcm9jZXNzKQorICAgICAgICByZXR1cm4gV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3Zp
ZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShzdHJlYW0pOworCisgICAgcmV0dXJuIG1h
a2VVbmlxdWU8TWVkaWFSZWNvcmRlclByaXZhdGU+KHN0cmVhbSk7CisjZWxzZQorICAgIHJldHVy
biBXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2
YXRlKHN0cmVhbSk7CisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQorfQorI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9TVFJFQU0pCisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDQ1ZmFhNGJmMGU0Nzk3OGZmZjQ3YzM4NzVkZDY3YmY0MWU0OTkzYgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQ
cm92aWRlci5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBNZWRpYVJlY29yZGVyUHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgV2Vi
Q29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyIHsKK3B1YmxpYzoKKyAgICBNZWRpYVJlY29yZGVy
UHJvdmlkZXIoKSA9IGRlZmF1bHQ7CisKK3ByaXZhdGU6CisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGU+IGNy
ZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0
ZSYpIGZpbmFsOworI2VuZGlmCit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGEwMjFmNzQyOWIyNTViYTlmNDJmMDQzZDdmYTgzMzE2
ZmZiYThjYjYuLjA4MzQzNTYxNGM5ODQzOGEyMDFmNzI4MTliYTk0MjBjYjg3NDg2ZTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00NSw2ICs0
NSw3IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKICNpbmNsdWRlICJMb2FkUGFy
YW1ldGVycy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVy
UHJvdmlkZXIuaCIKICNpbmNsdWRlICJOZXRzY2FwZVBsdWdpbi5oIgogI2luY2x1ZGUgIk5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24uaCIKQEAgLTQ2MCw3ICs0NjEsOCBAQCBXZWJQYWdlOjpXZWJQYWdlKFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRl
cnMpCiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmNhY2hlU3RvcmFnZVByb3ZpZGVy
KCksCiAgICAgICAgIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjpjcmVhdGUoKnRoaXMpLAogICAg
ICAgICBXZWJDb29raWVKYXI6OmNyZWF0ZSgpLAotICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlBy
b2dyZXNzVHJhY2tlckNsaWVudD4oKnRoaXMpCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJv
Z3Jlc3NUcmFja2VyQ2xpZW50PigqdGhpcyksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8TWVkaWFS
ZWNvcmRlclByb3ZpZGVyPigpCiAgICAgKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVD
bGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50KCp0aGlzKTsKICNpZiBFTkFCTEUoQ09OVEVYVF9N
RU5VUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA0
YzQxODY0ZDg5ZjQwNTY3ZWQ4MWVkMmVmZWZiNTAxZjY3NTNkYjg0Li4xOWIyMjFjYjIyNzgzYzVi
NjRjMzUzZDAyODVhNDQ4ZjQ1M2QwYjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tCkBAIC0xODAsNiArMTgwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTG9j
YWxpemVkU3RyaW5ncy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Mb2dJbml0aWFsaXphdGlvbi5oPgog
I2ltcG9ydCA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CisjaW1wb3J0IDxXZWJDb3JlL01l
ZGlhUmVjb3JkZXJQcm92aWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9NZW1vcnlSZWxlYXNlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05ldHdv
cmtTdG9yYWdlU2Vzc2lvbi5oPgpAQCAtMTQ0OCw3ICsxNDQ5LDggQEAgc3RhdGljIHZvaWQgV2Vi
S2l0SW5pdGlhbGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5KCkKICAgICAgICAgV2ViQ29y
ZTo6Q2FjaGVTdG9yYWdlUHJvdmlkZXI6OmNyZWF0ZSgpLAogICAgICAgICBCYWNrRm9yd2FyZExp
c3Q6OmNyZWF0ZShzZWxmKSwKICAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpjcmVhdGUoc3Rv
cmFnZVByb3ZpZGVyLmNvcHlSZWYoKSksCi0gICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jl
c3NUcmFja2VyQ2xpZW50PihzZWxmKQorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNz
VHJhY2tlckNsaWVudD4oc2VsZiksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6TWVk
aWFSZWNvcmRlclByb3ZpZGVyPigpCiAgICAgKTsKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkK
ICAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50
KHNlbGYpOwpAQCAtMTcxNyw3ICsxNzE5LDggQEAgc3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6
ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5KCkKICAgICAgICAgV2ViQ29yZTo6Q2FjaGVTdG9y
YWdlUHJvdmlkZXI6OmNyZWF0ZSgpLAogICAgICAgICBCYWNrRm9yd2FyZExpc3Q6OmNyZWF0ZShz
ZWxmKSwKICAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpjcmVhdGUoc3RvcmFnZVByb3ZpZGVy
LmNvcHlSZWYoKSksCi0gICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xp
ZW50PihzZWxmKQorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVu
dD4oc2VsZiksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclBy
b3ZpZGVyPigpCiAgICAgKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBu
ZXcgV2ViQ2hyb21lQ2xpZW50SU9TKHNlbGYpOwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386957</attachid>
            <date>2020-01-07 03:13:21 -0800</date>
            <delta_ts>2020-01-07 05:00:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205802-20200107121318.patch</filename>
            <type>text/plain</type>
            <size>94416</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGMzMmFmOWU2MDE0ZmQ3
MjUzZGYxNjJiZGJjODFiNTM3M2FmNjk4ZS4uNjBiYWFiNzBmZWExMDY0ZDhmN2ZjNDdlNzc4NDk3
ODM2NGJhN2JiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIwLTAxLTA3ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgTWVkaWFS
ZWNvcmRlciBiYWNrZW5kIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTgwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMgYXMgTWVkaWFS
ZWNvcmRlciBpbXBsZW1lbnRhdGlvbiBpbiBXZWJLaXRUZXN0UnVubmVyIHdpbGwgdXNlIEdQVVBy
b2Nlc3MuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUpOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmg6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29y
ZGVyUHJpdmF0ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3Jk
ZXJQcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGlu
LmNwcDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAg
ICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAg
ICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Om1lZGlhUmVjb3Jk
ZXJQcm92aWRlcik6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOgorICAg
ICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
cjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVBy
aXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZS5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnRlcm5hbHM6OnNldFVzZUdQVVByb2Nlc3NGb3JXZWJSVEMpOgorCiAyMDIwLTAxLTA3
ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBb
R1RLXVtXUEVdIEFkZCBBUEkgdG8gc2V0IHB1cnBvc2UgYW5kIGhpbnRzIG9mIGFjdGl2ZSBlZGl0
YWJsZSBlbGVtZW50IHRvIGlucHV0IG1ldGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOGVmODZkMjE3YWVlZjEx
OWYxN2NiNTM4YTU1Y2UyYjNjNDRhMzc4ZS4uMTA1NzNiNDY2YWZkNzNiMThkNWQ2NDViMzY5YmJh
ZTgyNTY1MzM4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MyBAQAorMjAyMC0wMS0wNyAgeW91ZW5u
IGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IE1lZGlhUmVj
b3JkZXIgYmFja2VuZCBpbiBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU4MDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6Cisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Ojp1c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6bWVkaWFSZWNvcmRlcnMpOgorICAgICAgICAoV2ViS2l0OjpH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICog
R1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluOgorICAgICAgICAqIEdQ
VVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFSZWNvcmRlcjo6UmVtb3RlTWVkaWFSZWNvcmRlcik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXI6On5SZW1vdGVNZWRpYVJlY29yZGVyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6c3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUmVjb3JkZXI6OmF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6dmlkZW9TYW1wbGVBdmFpbGFi
bGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyOjpmZXRjaERhdGEpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyOjpzdG9wUmVjb3JkaW5nKToKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmg6IEFkZGVkLgor
ICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMu
aW46IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3Jk
ZXJzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXJzOjpS
ZW1vdGVNZWRpYVJlY29yZGVycyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3Jk
ZXJzOjp+UmVtb3RlTWVkaWFSZWNvcmRlcnMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVJlY29yZGVyczo6ZGlkUmVjZWl2ZVJlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcnM6OmNyZWF0ZVJlY29yZGVyKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcnM6OnJlbGVhc2VSZWNvcmRlcik6CisgICAg
ICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMuaDogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXJzOjpkaWRSZWNlaXZlTWVzc2FnZUZy
b21XZWJQcm9jZXNzKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJl
Y29yZGVycy5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29h
LnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcjo6Y3JlYXRlTWVkaWFS
ZWNvcmRlclByaXZhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUmVj
b3JkZXJQcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMv
TWVkaWFSZWNvcmRlcklkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAgICAg
IChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjp+TWVkaWFSZWNvcmRlclByaXZhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c2FtcGxlQnVmZmVyVXBkYXRl
ZCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjphdWRpb1NhbXBsZXNB
dmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c3RvcmFn
ZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6ZmV0Y2hE
YXRhKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6OnN0b3BSZWNvcmRp
bmcpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0
ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRl
clByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcm92
aWRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaDogQWRkZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjptX292ZXJyaWRk
ZW5NZWRpYVR5cGUpOgorCiAyMDIwLTAxLTA3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJj
aWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIEFkZCBBUEkgdG8gcmV0cmlldmUg
YW5kIGRlbGV0ZSBzdXJyb3VuZGluZyB0ZXh0IGZvciBpbnB1dCBtZXRob2RzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKaW5kZXggNGM0NGNkZTg1MTdhMmViODNmMDE1NmQzMzUwMWMxZDhjMmE5
YmExZi4uNDMzNGU5YjU0NGZhZDg4Y2VmMGQ5ODY5Y2VhYjM4YjZmMGM2Yzk4NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAxLTA3ICB5b3Vlbm4g
ZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgTWVkaWFSZWNv
cmRlciBiYWNrZW5kIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNTgwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJW
aWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6Z3JvdXBOYW1lOl0pOgorICAg
ICAgICAoLVtXZWJWaWV3IGluaXRTaW1wbGVIVE1MRG9jdW1lbnRXaXRoU3R5bGU6ZnJhbWU6cHJl
ZmVyZW5jZXM6Z3JvdXBOYW1lOl0pOgorCiAyMDIwLTAxLTA3ICBDYXJsb3MgR2FyY2lhIENhbXBv
cyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIEFkZCBBUEkgdG8g
c2V0IHB1cnBvc2UgYW5kIGhpbnRzIG9mIGFjdGl2ZSBlZGl0YWJsZSBlbGVtZW50IHRvIGlucHV0
IG1ldGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDQ2NjE5YzY1ZDZiM2MzZDgxZmY0YzJlNTAw
NTIxNmFhNDk2MmVjMTQuLjgxMmVkNDY5ZDIwOTA4NTU4Y2RkN2NkZTgyODNjZWU4ODZiOGVjYzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtODAsNiArODAsOCBAQCBzZXQoV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlJlc3Vs
dERhdGEuaAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJUcmFuc2FjdGlvbkluZm8u
aAogCisgICAgTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5oCisK
ICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25FdmVudHMuaAogICAgIE1vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbk1ldGFkYXRhLmgKICAgICBNb2R1bGVzL21lZGlh
c2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmgKQEAgLTExNTUsNiArMTE1Nyw4IEBAIHNl
dChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy90cmFuc2Zvcm1zL1RyYW5zZm9ybU9wZXJhdGlvbnMuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaAogCisgICAgcGxhdGZvcm0vbWVkaWFy
ZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCisKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9DYXB0dXJlRGV2aWNlLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNl
TWFuYWdlci5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50cy5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNv
cmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNv
cmRlci5jcHAKaW5kZXggOTkxZWEyYTBmM2QyMjQ0ZGYxZThlZTI3Zjc5MDg2ZDNlYzQzZDZmMC4u
YWRmMzUwNDg4N2EyMzcxNzdhNGQ5ZDZmYWE5YzdmM2EzMTMyZDIyOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcApA
QCAtMzQsNiArMzQsOCBAQAogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJNZWRp
YVJlY29yZGVyRXJyb3JFdmVudC5oIgogI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlLmgi
CisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgiCisjaW5jbHVkZSAiUGFnZS5oIgog
I2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIldpbmRvd0V2ZW50TG9vcC5oIgog
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CkBAIC01MCw3ICs1Miw3IEBAIGNyZWF0
b3JGdW5jdGlvbiBNZWRpYVJlY29yZGVyOjptX2N1c3RvbUNyZWF0b3IgPSBudWxscHRyOwogCiBF
eGNlcHRpb25PcjxSZWY8TWVkaWFSZWNvcmRlcj4+IE1lZGlhUmVjb3JkZXI6OmNyZWF0ZShEb2N1
bWVudCYgZG9jdW1lbnQsIFJlZjxNZWRpYVN0cmVhbT4mJiBzdHJlYW0sIE9wdGlvbnMmJiBvcHRp
b25zKQogewotICAgIGF1dG8gcHJpdmF0ZUluc3RhbmNlID0gTWVkaWFSZWNvcmRlcjo6Z2V0UHJp
dmF0ZUltcGwoc3RyZWFtLT5wcml2YXRlU3RyZWFtKCkpOworICAgIGF1dG8gcHJpdmF0ZUluc3Rh
bmNlID0gTWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoZG9jdW1lbnQs
IHN0cmVhbS0+cHJpdmF0ZVN0cmVhbSgpKTsKICAgICBpZiAoIXByaXZhdGVJbnN0YW5jZSkKICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiVGhlIE1lZGlhUmVj
b3JkZXIgaXMgdW5zdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybSJfcyB9OwogICAgIGF1dG8gcmVj
b3JkZXIgPSBhZG9wdFJlZigqbmV3IE1lZGlhUmVjb3JkZXIoZG9jdW1lbnQsIFdURk1vdmUoc3Ry
ZWFtKSwgV1RGTW92ZShwcml2YXRlSW5zdGFuY2UpLCBXVEZNb3ZlKG9wdGlvbnMpKSk7CkBAIC02
MywxNyArNjUsMTYgQEAgdm9pZCBNZWRpYVJlY29yZGVyOjpzZXRDdXN0b21Qcml2YXRlUmVjb3Jk
ZXJDcmVhdG9yKGNyZWF0b3JGdW5jdGlvbiBjcmVhdG9yKQogICAgIG1fY3VzdG9tQ3JlYXRvciA9
IGNyZWF0b3I7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gTWVk
aWFSZWNvcmRlcjo6Z2V0UHJpdmF0ZUltcGwoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJl
YW0pCitzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IE1lZGlhUmVjb3JkZXI6
OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgTWVk
aWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCiB7CiAgICAgaWYgKG1fY3VzdG9tQ3JlYXRvcikKICAg
ICAgICAgcmV0dXJuIG1fY3VzdG9tQ3JlYXRvcigpOwogICAgIAotI2lmIFBMQVRGT1JNKENPQ09B
KQotICAgIHJldHVybiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmNyZWF0ZShzdHJlYW0p
OwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc3RyZWFtKTsKLSAgICByZXR1cm4gbnVsbHB0cjsK
LSNlbmRpZgorICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCk7CisgICAgaWYgKCFwYWdl
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBwYWdlLT5tZWRpYVJlY29y
ZGVyUHJvdmlkZXIoKS5jcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShzdHJlYW0pOwogfQogCiBN
ZWRpYVJlY29yZGVyOjpNZWRpYVJlY29yZGVyKERvY3VtZW50JiBkb2N1bWVudCwgUmVmPE1lZGlh
U3RyZWFtPiYmIHN0cmVhbSwgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiYm
IHByaXZhdGVJbXBsLCBPcHRpb25zJiYgb3B0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKaW5kZXggZWI2Zjk2YTZhZTBh
MzliYTEwYjUyMGJiOThjYzRlZTFiNTM5Mzc0NC4uMDYzOTUyYTk2N2RhYzIyYTI3NGY1NDdhZTRj
YmNhZTJjZTZkYWQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCkBAIC03NSw3ICs3NSw3IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgTWVkaWFSZWNvcmRlcihEb2N1bWVudCYsIFJlZjxNZWRpYVN0cmVhbT4mJiwgc3Rk
Ojp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiYmLCBPcHRpb25zJiYgPSB7IH0pOwog
Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gZ2V0UHJp
dmF0ZUltcGwoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJik7CisgICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUo
RG9jdW1lbnQmLCBjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmKTsKICAgICAKICAgICBEb2N1bWVu
dCogZG9jdW1lbnQoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mNjRmY2NjMzY4YTYxMjdkZjk5MWZiZmQzZGZjMWJmZjMzOTBhYzAwCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3Jk
ZXJQcm92aWRlci5jcHAKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCIKKworI2luY2x1ZGUg
Ik1lZGlhUmVjb3JkZXJQcml2YXRlLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRl
ICJNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorc3RkOjp1bmlxdWVfcHRyPE1lZGlh
UmVjb3JkZXJQcml2YXRlPiBNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVjb3Jk
ZXJQcml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQoreworI2lmIFBMQVRG
T1JNKENPQ09BKQorICAgIHJldHVybiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmNyZWF0
ZShzdHJlYW0pOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc3RyZWFtKTsKKyAgICByZXR1cm4g
bnVsbHB0cjsKKyNlbmRpZgorfQorI2VuZGlmCisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40YTkzYWY0ODY3NjZkNzVlYTg0YjVmNWViNjkyMjQxOTE3MTBlMDdhCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXJQcm92aWRlci5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0
ZTsKK2NsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZTsKKworY2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVk
aWFSZWNvcmRlclByb3ZpZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1Ymxp
YzoKKyAgICBNZWRpYVJlY29yZGVyUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+
TWVkaWFSZWNvcmRlclByb3ZpZGVyKCkgPSBkZWZhdWx0OworCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4g
Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJik7Cisj
ZW5kaWYKKworICAgIHZvaWQgc2V0VXNlR1BVUHJvY2Vzcyhib29sIHZhbHVlKSB7IG1fdXNlR1BV
UHJvY2VzcyA9IHZhbHVlOyB9CisKK3Byb3RlY3RlZDoKKyAgICBib29sIG1fdXNlR1BVUHJvY2Vz
cyB7IGZhbHNlIH07Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDYwYmJiZmQ0NmVlODc5Njhm
ZDJjMWVmYTVmZjc3YjdlZjBhYzRkNjguLjQxMTIxNTU3YWU2ZjM1ZGI5YWQ1ZjRjMWU4YWNjY2Ew
ODY2M2U2ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNTEsNiArMTUxLDcgQEAgTW9kdWxlcy9tZWRp
YWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcAogCiBNb2R1bGVzL21lZGlhcmVjb3JkZXIv
QmxvYkV2ZW50LmNwcAogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwCitN
b2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcAogTW9kdWxlcy9t
ZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmNwcAogCiBNb2R1bGVzL21lZGlh
c2Vzc2lvbi9IVE1MTWVkaWFFbGVtZW50TWVkaWFTZXNzaW9uLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGVjNDA4NGQ5ODQ1
OGMzNTMyNDI1YmM5ZWVmNzUzN2Y1MDYzNWIzNTAuLjQ1MTRhZjZjNTIzOTEwMTE4Nzc5M2JmOWRm
ZTM4ZWFjYTg2MzRlNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTExMDEsNiArMTEwMSw3IEBACiAJCTQxNzYxMkIwMUUzQTk5
NDAwMEMzRDgxRCAvKiBMaWJXZWJSVENNZWRpYUVuZHBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc2MTJBQzFFM0E5OTNCMDBDM0Q4MUQgLyog
TGliV2ViUlRDTWVkaWFFbmRwb2ludC5oICovOyB9OwogCQk0MTc2MTJCMTFFM0E5OTQwMDBDM0Q4
MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzYxMkFEMUUzQTk5M0IwMEMzRDgxRCAv
KiBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwICovOyB9OwogCQk0MTc2MTJCMjFF
M0E5OTQwMDBDM0Q4MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc2MTJBRTFFM0E5OTNC
MDBDM0Q4MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmggKi87IH07CisJCTQx
NzZFODk2MjNDMzUzN0IwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzZFODhGMjNDMzQ4RDIw
MDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTdEQTZEOTEzNzM0RTZFMDA3QzU3RkIgLyog
SW50ZXJuYWxzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxN0RBNENGMTM3MzQzMjYwMDdDNTdGQiAvKiBJbnRlcm5hbHMuY3BwICovOyB9OwogCQk0
MTdEQTZEQTEzNzM0RTZFMDA3QzU3RkIgLyogSW50ZXJuYWxzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTdEQTRDRTEzNzM0MzI2MDA3QzU3RkIgLyog
SW50ZXJuYWxzLmggKi87IH07CiAJCTQxN0RBNzFEMTM3MzVERkEwMDdDNTdGQiAvKiBKU0ludGVy
bmFscy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTdEQTcxQjEzNzM1REZBMDA3QzU3RkIgLyogSlNJbnRlcm5hbHMuY3BwICovOyB9OwpAQCAtMTM3
NCw5ICsxMzc1LDkgQEAKIAkJNEJERUEzMkMyMTgwMzNFQjAwNTJERkNEIC8qIEpTV29ya2xldEds
b2JhbFNjb3BlQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEJERUEzMkIyMTgwMzNFQjAwNTJERkNEIC8qIEpTV29ya2xldEdsb2JhbFNjb3BlQmFz
ZS5oICovOyB9OwogCQk0RDNCMDBBQjIxNUQ2OUE3MDA3NkI5ODMgLyogTWVkaWFSZWNvcmRlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEQzQjAwQTky
MTVENjlBNzAwNzZCOTgzIC8qIE1lZGlhUmVjb3JkZXIuaCAqLzsgfTsKIAkJNEQzQjAwQUYyMTVE
NkE2OTAwNzZCOTgzIC8qIEJsb2JFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNEQzQjAwQUQyMTVENkE2OTAwNzZCOTgzIC8qIEJsb2JFdmVudC5o
ICovOyB9OwotCQk0RDNCNTAxNjIxN0U1OEI3MDA2NjVEQjEgLyogTWVkaWFSZWNvcmRlclByaXZh
dGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREM0I1
MDE0MjE3RTU4QjcwMDY2NURCMSAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZS5oICovOyB9OworCQk0
RDNCNTAxNjIxN0U1OEI3MDA2NjVEQjEgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREM0I1MDE0MjE3RTU4Qjcw
MDY2NURCMSAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTRENzNGOTQ2MjE4QkM1RkEwMDNBM0VENiAvKiBN
ZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRENzNGOTQ0MjE4QkM1RkEwMDNBM0VENiAvKiBNZWRpYVJlY29y
ZGVyUHJpdmF0ZUFWRkltcGwuaCAqLzsgfTsKLQkJNEQ3M0Y5NEUyMThDNEE4NzAwM0EzRUQ2IC8q
IE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRENzNGOTRDMjE4QzRBODcwMDNBM0VENiAvKiBNZWRp
YVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmggKi87IH07CisJCTRENzNGOTRFMjE4QzRBODcw
MDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RDczRjk0QzIxOEM0QTg3MDAzQTNF
RDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTREQjcxMzBEMjE2RUNCNEQwMDk2QTRE
RCAvKiBNZWRpYVJlY29yZGVyRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNERCNzEzMEMyMTZFQzJCRDAwOTZBNEREIC8qIE1lZGlhUmVj
b3JkZXJFcnJvckV2ZW50LmggKi87IH07CiAJCTRFMTk1OTIyMEEzOURBQkEwMDIyMEZFNSAvKiBN
ZWRpYUZlYXR1cmVOYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNEUxOTU5MjAwQTM5REFCQTAwMjIwRkU1IC8qIE1lZGlhRmVhdHVyZU5hbWVzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNEUxOTU5
MkEwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRFMTk1OTI0MEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRp
YVF1ZXJ5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTczOTksNiArNzQwMCw4IEBACiAJCTQxNzYxMkFFMUUzQTk5M0IwMEMzRDgxRCAvKiBMaWJX
ZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmg7IHBhdGggPSBsaWJ3ZWJydGMv
TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxNzY5MDAzMjJGQ0Q4RjIwMEIxNTc2RCAvKiBNZWRpYVNvdXJjZVJlZ2lzdHJ5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU291cmNlUmVnaXN0cnkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3NjkwMDQyMkZDRDhGMjAwQjE1NzZEIC8q
IE1lZGlhU291cmNlUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTWVkaWFTb3VyY2VSZWdpc3RyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQxNzZFODhGMjNDMzQ4RDIwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFSZWNvcmRlclByb3ZpZGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODkxMjNDMzRCNzUwMDNFODNGRSAv
KiBNZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFSZWNv
cmRlclByb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3N0Y1MUMy
MzgyNTQ0MDAwQzA0NDg2IC8qIEJhc2VBdWRpb1NoYXJlZFVuaXQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFzZUF1ZGlvU2hhcmVkVW5pdC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzdGNTFFMjM4MjU0NUUwMEMwNDQ4NiAvKiBCYXNlQXVk
aW9TaGFyZWRVbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VBdWRp
b1NoYXJlZFVuaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3REE0Q0UxMzcz
NDMyNjAwN0M1N0ZCIC8qIEludGVybmFscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJbnRlcm5hbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4OTMyLDYg
KzE4OTM1LDggQEAKIAkJCQk0REI3MTMwRTIxNkVFQkFFMDA5NkE0REQgLyogTWVkaWFSZWNvcmRl
ckVycm9yRXZlbnQuY3BwICovLAogCQkJCTREQjcxMzBDMjE2RUMyQkQwMDk2QTRERCAvKiBNZWRp
YVJlY29yZGVyRXJyb3JFdmVudC5oICovLAogCQkJCTREQjcxMzBBMjE2RUMyQkMwMDk2QTRERCAv
KiBNZWRpYVJlY29yZGVyRXJyb3JFdmVudC5pZGwgKi8sCisJCQkJNDE3NkU4OTEyM0MzNEI3NTAw
M0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAgKi8sCisJCQkJNDE3NkU4OEYyM0Mz
NDhEMjAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92aWRlci5oICovLAogCQkJKTsKIAkJCXBh
dGggPSBtZWRpYXJlY29yZGVyOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTMxNDc0
LDYgKzMxNDc5LDcgQEAKIAkJCQk0RDNCNTAxNjIxN0U1OEI3MDA2NjVEQjEgLyogTWVkaWFSZWNv
cmRlclByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTRENzNGOTQ2MjE4QkM1RkEwMDNBM0VE
NiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTRE
NzNGOTRFMjE4QzRBODcwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29h
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTc2RTg5NjIzQzM1MzdCMDAzRTgzRkUgLyogTWVkaWFS
ZWNvcmRlclByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDOTA4NDNEMDFCMThFNDdEMDBC
Njg1NjQgLyogTWVkaWFSZW1vdGVDb250cm9scy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q4QUNB
OEYxRDIzOTcxOTAwRUNDNTlFIC8qIE1lZGlhUmVtb3RlU29mdExpbmsuaCBpbiBIZWFkZXJzICov
LAogCQkJCUNFRUZDRDdBMTlEQjMxRjcwMDM4NzZENyAvKiBNZWRpYVJlc291cmNlTG9hZGVyLmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXgg
ODRlNGUxOGMzZjYzOGVlMzNkMjgwMTg0ZGRkOGNhYThhYTBlNDkyMi4uY2I1MWYzNmZlYmZiMDgx
ZTJiNmY3NGVlNmU0OTAxOGNkOTcxMDRkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAKQEAgLTUzLDYgKzUzLDggQEAKICNpbmNsdWRlICJJREJDb25uZWN0aW9uVG9TZXJ2
ZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDbGllbnQuaCIKICNpbmNsdWRlICJMaWJXZWJSVENQ
cm92aWRlci5oIgorI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlLmgiCisjaW5jbHVkZSAi
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1N0b3JhZ2VTZXNzaW9u
LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VDb25maWd1cmF0aW9uLmgiCkBA
IC01NzEsMTAgKzU3MywxOSBAQCBSZWY8U3RvcmFnZU5hbWVzcGFjZT4gRW1wdHlTdG9yYWdlTmFt
ZXNwYWNlUHJvdmlkZXI6OmNyZWF0ZVRyYW5zaWVudExvY2FsU3RvcmFnZQogICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEVtcHR5U3RvcmFnZU5hbWVzcGFjZSB7IHNlc3Npb25JRCB9KTsKIH0KIAot
Y2xhc3MgRW1wdHlTdG9yYWdlU2Vzc2lvblByb3ZpZGVyIDogcHVibGljIFN0b3JhZ2VTZXNzaW9u
UHJvdmlkZXIgeworY2xhc3MgRW1wdHlTdG9yYWdlU2Vzc2lvblByb3ZpZGVyIGZpbmFsIDogcHVi
bGljIFN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIgewogICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiog
c3RvcmFnZVNlc3Npb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CiB9OwogCitj
bGFzcyBFbXB0eU1lZGlhUmVjb3JkZXJQcm92aWRlciBmaW5hbCA6IHB1YmxpYyBNZWRpYVJlY29y
ZGVyUHJvdmlkZXIgeworcHVibGljOgorICAgIEVtcHR5TWVkaWFSZWNvcmRlclByb3ZpZGVyKCkg
PSBkZWZhdWx0OworcHJpdmF0ZToKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6
dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlTWVkaWFSZWNvcmRlclByaXZh
dGUoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJikgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQor
I2VuZGlmCit9OworCiBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0
eUNsaWVudHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIFBhZ2VDb25maWd1cmF0
aW9uIHBhZ2VDb25maWd1cmF0aW9uIHsKQEAgLTU4NSw3ICs1OTYsOCBAQCBQYWdlQ29uZmlndXJh
dGlvbiBwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKQogICAgICAgICBDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlKCksCiAgICAgICAg
IGFkb3B0UmVmKCpuZXcgRW1wdHlCYWNrRm9yd2FyZENsaWVudCksCiAgICAgICAgIENvb2tpZUph
cjo6Y3JlYXRlKGFkb3B0UmVmKCpuZXcgRW1wdHlTdG9yYWdlU2Vzc2lvblByb3ZpZGVyKSksCi0g
ICAgICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCkKKyAgICAg
ICAgbWFrZVVuaXF1ZVJlZjxFbXB0eVByb2dyZXNzVHJhY2tlckNsaWVudD4oKSwKKyAgICAgICAg
bWFrZVVuaXF1ZVJlZjxFbXB0eU1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgIH07CiAKICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlDaHJvbWVDbGllbnQ+IGR1bW15Q2hyb21lQ2xp
ZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNjNjMDUzNDM3OThkMzEwMmQ4MDMyZDM1NzE5M2Nj
OWJhOTM3NjYxOS4uMDEwMjc5ZmVmYzQ1Zjk4NmYyODA1YmU3N2JmM2NjZGY3MWU1MWRjMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwCkBAIC0yNDYsNiArMjQ2LDcgQEAgUGFnZTo6UGFnZShQYWdlQ29uZmln
dXJhdGlvbiYmIHBhZ2VDb25maWd1cmF0aW9uKQogI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lT
KQogICAgICwgbV9zcGVlY2hTeW50aGVzaXNDbGllbnQoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlv
bi5zcGVlY2hTeW50aGVzaXNDbGllbnQpKQogI2VuZGlmCisgICAgLCBtX21lZGlhUmVjb3JkZXJQ
cm92aWRlcigoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5tZWRpYVJlY29yZGVyUHJvdmlkZXIp
KSkKICAgICAsIG1fbGliV2ViUlRDUHJvdmlkZXIoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5s
aWJXZWJSVENQcm92aWRlcikpCiAgICAgLCBtX3ZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eShTY3Jv
bGxFbGFzdGljaXR5QWxsb3dlZCkKICAgICAsIG1faG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHko
U2Nyb2xsRWxhc3RpY2l0eUFsbG93ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDJjM2Y3YzM0MzM4N2Zi
NDhjMmY1NWUzZWE2ZTk1YzNlOWY1NDc2NTAuLmUxZjI3Y2ZjOGNjOTc1OTNjYWUyNTRkNmU4ZTY1
MDdjYWU3MGUyYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0xMTAsNiArMTEwLDcgQEAgY2xhc3MgTGli
V2ViUlRDUHJvdmlkZXI7CiBjbGFzcyBMb3dQb3dlck1vZGVOb3RpZmllcjsKIGNsYXNzIE1lZGlh
Q2FuU3RhcnRMaXN0ZW5lcjsKIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXQ7CitjbGFzcyBNZWRp
YVJlY29yZGVyUHJvdmlkZXI7CiBjbGFzcyBQYWdlQ29uZmlndXJhdGlvbjsKIGNsYXNzIFBhZ2VD
b25zb2xlQ2xpZW50OwogY2xhc3MgUGFnZURlYnVnZ2FibGU7CkBAIC01ODQsNiArNTg1LDcgQEAg
cHVibGljOgogICAgIERhdGFiYXNlUHJvdmlkZXImIGRhdGFiYXNlUHJvdmlkZXIoKSB7IHJldHVy
biBtX2RhdGFiYXNlUHJvdmlkZXI7IH0KICAgICBDYWNoZVN0b3JhZ2VQcm92aWRlciYgY2FjaGVT
dG9yYWdlUHJvdmlkZXIoKSB7IHJldHVybiBtX2NhY2hlU3RvcmFnZVByb3ZpZGVyOyB9CiAgICAg
U29ja2V0UHJvdmlkZXImIHNvY2tldFByb3ZpZGVyKCkgeyByZXR1cm4gbV9zb2NrZXRQcm92aWRl
cjsgfQorICAgIE1lZGlhUmVjb3JkZXJQcm92aWRlciYgbWVkaWFSZWNvcmRlclByb3ZpZGVyKCkg
eyByZXR1cm4gbV9tZWRpYVJlY29yZGVyUHJvdmlkZXI7IH0KICAgICBDb29raWVKYXImIGNvb2tp
ZUphcigpIHsgcmV0dXJuIG1fY29va2llSmFyLmdldCgpOyB9CiAKICAgICBTdG9yYWdlTmFtZXNw
YWNlUHJvdmlkZXImIHN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcigpIHsgcmV0dXJuIG1fc3RvcmFn
ZU5hbWVzcGFjZVByb3ZpZGVyLmdldCgpOyB9CkBAIC03OTUsNiArNzk3LDcgQEAgcHJpdmF0ZToK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoU3ludGhlc2lzQ2xpZW50PiBtX3NwZWVjaFN5bnRo
ZXNpc0NsaWVudDsKICNlbmRpZgogCisgICAgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRl
cj4gbV9tZWRpYVJlY29yZGVyUHJvdmlkZXI7CiAgICAgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3Zp
ZGVyPiBtX2xpYldlYlJUQ1Byb3ZpZGVyOwogICAgIFJUQ0NvbnRyb2xsZXIgbV9ydGNDb250cm9s
bGVyOwogCkBAIC05MjAsNyArOTIzLDYgQEAgcHJpdmF0ZToKICAgICBSZWY8VXNlckNvbnRlbnRQ
cm92aWRlcj4gbV91c2VyQ29udGVudFByb3ZpZGVyOwogICAgIFJlZjxWaXNpdGVkTGlua1N0b3Jl
PiBtX3Zpc2l0ZWRMaW5rU3RvcmU7CiAgICAgUmVmUHRyPFdoZWVsRXZlbnRUZXN0TW9uaXRvcj4g
bV93aGVlbEV2ZW50VGVzdE1vbml0b3I7Ci0KICAgICBIYXNoU2V0PEFjdGl2aXR5U3RhdGVDaGFu
Z2VPYnNlcnZlcio+IG1fYWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyczsKIAogI2lmIEVOQUJM
RShSRVNPVVJDRV9VU0FHRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNv
bmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5j
cHAKaW5kZXggZWY4NzdhNTU4ODIxZTQ0NjdmNDVjYTNjMDUyMWNhZjIyZDkwN2RkZS4uMzM4ZjRl
N2MxOTEyMWFmMTc5NDJkMDE3MjRjZTI5MTEzYzVkM2YyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJEcmFn
Q2xpZW50LmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiTGliV2ViUlRD
UHJvdmlkZXIuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCIKICNpbmNsdWRl
ICJQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJQbHVnSW5DbGllbnQuaCIK
ICNpbmNsdWRlICJQbHVnaW5JbmZvUHJvdmlkZXIuaCIKQEAgLTU1LDcgKzU2LDcgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1QYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24o
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRv
ckNsaWVudCwgUmVmPFNvY2tldFByb3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8
TGliV2ViUlRDUHJvdmlkZXI+JiYgbGliV2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQ
cm92aWRlcj4mJiBjYWNoZVN0b3JhZ2VQcm92aWRlciwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYm
IGJhY2tGb3J3YXJkQ2xpZW50LCBSZWY8Q29va2llSmFyPiYmIGNvb2tpZUphciwgVW5pcXVlUmVm
PFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiBwcm9ncmVzc1RyYWNrZXJDbGllbnQpCitQYWdlQ29u
ZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBV
bmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNsaWVudCwgUmVmPFNvY2tldFByb3ZpZGVy
PiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYgbGliV2Vi
UlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiBjYWNoZVN0b3JhZ2VQcm92
aWRlciwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJhY2tGb3J3YXJkQ2xpZW50LCBSZWY8Q29v
a2llSmFyPiYmIGNvb2tpZUphciwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiBw
cm9ncmVzc1RyYWNrZXJDbGllbnQsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYg
bWVkaWFSZWNvcmRlclByb3ZpZGVyKQogICAgIDogc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAs
IGVkaXRvckNsaWVudChXVEZNb3ZlKGVkaXRvckNsaWVudCkpCiAgICAgLCBzb2NrZXRQcm92aWRl
cihXVEZNb3ZlKHNvY2tldFByb3ZpZGVyKSkKQEAgLTY0LDYgKzY1LDcgQEAgUGFnZUNvbmZpZ3Vy
YXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVl
UmVmPEVkaXRvckMKICAgICAsIGJhY2tGb3J3YXJkQ2xpZW50KFdURk1vdmUoYmFja0ZvcndhcmRD
bGllbnQpKQogICAgICwgY29va2llSmFyKFdURk1vdmUoY29va2llSmFyKSkKICAgICAsIGNhY2hl
U3RvcmFnZVByb3ZpZGVyKFdURk1vdmUoY2FjaGVTdG9yYWdlUHJvdmlkZXIpKQorICAgICwgbWVk
aWFSZWNvcmRlclByb3ZpZGVyKFdURk1vdmUobWVkaWFSZWNvcmRlclByb3ZpZGVyKSkKIHsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IDE5MWEwMmI2MTVm
NDBhOTgwYzQyMWY3ZmJmM2YzMTZkMmIxNjRmZWYuLjNhOGVkMzM0NDBjMmMxODg1MjgzMTg5MThh
NzUyMmI5MjE3ZjQ3NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZp
Z3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgK
QEAgLTUyLDYgKzUyLDcgQEAgY2xhc3MgRWRpdG9yQ2xpZW50OwogY2xhc3MgRnJhbWVMb2FkZXJD
bGllbnQ7CiBjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CiBjbGFzcyBMaWJXZWJSVENQcm92aWRlcjsK
K2NsYXNzIE1lZGlhUmVjb3JkZXJQcm92aWRlcjsKIGNsYXNzIFBheW1lbnRDb29yZGluYXRvckNs
aWVudDsKIGNsYXNzIFBlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudDsKIGNsYXNzIFBsdWdJbkNsaWVu
dDsKQEAgLTY4LDcgKzY5LDcgQEAgY2xhc3MgU3BlZWNoU3ludGhlc2lzQ2xpZW50OwogY2xhc3Mg
UGFnZUNvbmZpZ3VyYXRpb24gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDb25maWd1
cmF0aW9uKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9F
WFBPUlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JD
bGllbnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3Zp
ZGVyPiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJlZjxCYWNrRm9yd2FyZENsaWVu
dD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4m
Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQs
IFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVl
UmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJl
ZjxCYWNrRm9yd2FyZENsaWVudD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dy
ZXNzVHJhY2tlckNsaWVudD4mJiwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJik7
CiAgICAgV0VCQ09SRV9FWFBPUlQgflBhZ2VDb25maWd1cmF0aW9uKCk7CiAgICAgUGFnZUNvbmZp
Z3VyYXRpb24oUGFnZUNvbmZpZ3VyYXRpb24mJik7CiAKQEAgLTEyMyw2ICsxMjQsNyBAQCBwdWJs
aWM6CiAgICAgUmVmUHRyPERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI+IGRldmljZU9y
aWVudGF0aW9uVXBkYXRlUHJvdmlkZXI7CiAjZW5kaWYKICAgICBWZWN0b3I8U3RyaW5nPiBjb3Jz
RGlzYWJsaW5nUGF0dGVybnM7CisgICAgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4g
bWVkaWFSZWNvcmRlclByb3ZpZGVyOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
ckNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAppbmRleCBmZmY0NWQ2MzkzOGRiMzM4YjQ3
MjRiN2E3NDZjZTM3MjRmYTFkM2FiLi41MTk3OGJiNmQ4ZDFhMWIwZTVjMWM3YTAxNTEyMjJiZDhi
ZGZiMmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyQ29jb2EuaApAQCAtNDksOSArNDksMTAgQEAgY2xhc3MgQXVkaW9TdHJlYW1EZXNjcmlwdGlv
bjsKIGNsYXNzIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOwogY2xhc3MgUGxhdGZvcm1BdWRpb0Rh
dGE7CiAKLWNsYXNzIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyLCBXVEY6OkRlc3RydWN0aW9u
VGhyZWFkOjpNYWluPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyPiB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
ciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
ciwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxN
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IGNyZWF0ZShjb25zdCBNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSogYXVkaW9UcmFjaywgY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIHZpZGVv
VHJhY2spOworICAgIHN0YXRpYyBSZWZQdHI8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IGNy
ZWF0ZShib29sIGhhc0F1ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOwogICAgIH5NZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlcigpOwogICAgIAogICAgIGJvb2wgc2V0dXBXcml0ZXIoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQpp
bmRleCA5MmZlMmE0NTBlNTkzZjI0YTk2OGZhZWYwYTZiOTZmOTVhZGUzNTEzLi4wNjljODg3NGYw
MDllMDk2YzI0OWEwNzgwMTkwZGQ4MDQ4YzZiOWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2Nv
YS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCkBAIC05MCw2ICs5MCwxNyBAQCBz
dGF0aWMgTlNTdHJpbmcgKmdldEFWRW5jb2RlckJpdFJhdGVLZXlXaXRoRmFsbGJhY2soKQogfQog
CiBSZWZQdHI8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IE1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyOjpjcmVhdGUoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIGF1ZGlvVHJhY2ss
IGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiB2aWRlb1RyYWNrKQoreworICAgIGludCB3
aWR0aCA9IDAsIGhlaWdodCA9IDA7CisgICAgaWYgKHZpZGVvVHJhY2spIHsKKyAgICAgICAgYXV0
byYgc2V0dGluZ3MgPSB2aWRlb1RyYWNrLT5zZXR0aW5ncygpOworICAgICAgICB3aWR0aCA9IHNl
dHRpbmdzLndpZHRoKCk7CisgICAgICAgIGhlaWdodCA9IHNldHRpbmdzLmhlaWdodCgpOworICAg
IH0KKyAgICByZXR1cm4gY3JlYXRlKCEhYXVkaW9UcmFjaywgd2lkdGgsIGhlaWdodCk7Cit9CisK
K1JlZlB0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXI6OmNyZWF0ZShib29sIGhhc0F1ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCiB7CiAg
ICAgTlNTdHJpbmcgKmRpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVj
dG9yeShAInZpZGVvcyIpOwogICAgIE5TU3RyaW5nICpmaWxlbmFtZSA9IFtOU1N0cmluZyBzdHJp
bmdXaXRoRm9ybWF0OkAiLyVsbGQubXA0IiwgQ01DbG9ja0dldFRpbWUoQ01DbG9ja0dldEhvc3RU
aW1lQ2xvY2soKSkudmFsdWVdOwpAQCAtMTA2LDEyICsxMTcsMTEgQEAgUmVmUHRyPE1lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyPiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y3JlYXRlKGNv
bnN0IE1lZGkKIAogICAgIGF1dG8gd3JpdGVyID0gYWRvcHRSZWYoKm5ldyBNZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlcihXVEZNb3ZlKGF2QXNzZXRXcml0ZXIpLCBXVEZNb3ZlKGZpbGVQYXRoKSkp
OwogCi0gICAgaWYgKGF1ZGlvVHJhY2sgJiYgIXdyaXRlci0+c2V0QXVkaW9JbnB1dCgpKQorICAg
IGlmIChoYXNBdWRpbyAmJiAhd3JpdGVyLT5zZXRBdWRpb0lucHV0KCkpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogCi0gICAgaWYgKHZpZGVvVHJhY2spIHsKLSAgICAgICAgYXV0byYgc2V0dGlu
Z3MgPSB2aWRlb1RyYWNrLT5zZXR0aW5ncygpOwotICAgICAgICBpZiAoIXdyaXRlci0+c2V0Vmlk
ZW9JbnB1dChzZXR0aW5ncy53aWR0aCgpLCBzZXR0aW5ncy5oZWlnaHQoKSkpCisgICAgaWYgKHdp
ZHRoICYmIGhlaWdodCkgeworICAgICAgICBpZiAoIXdyaXRlci0+c2V0VmlkZW9JbnB1dCh3aWR0
aCwgaGVpZ2h0KSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2
YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVBy
aXZhdGUuaAppbmRleCA0YTA2ODQ0MzhjZTY2NWQ3Y2QwNGRhMTBlYTExYTViYzJiNmYyOWY1Li5k
ZTQ0ZDg4ZWY1YjljMzgxNDA0NGUwNWY3YzI4YmVlMThhNzJlZDAzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUu
aApAQCAtODEsNyArODEsNyBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgaWQoKSBjb25zdCB7IHJl
dHVybiBtX2lkOyB9CiAKLSAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciB0cmFja3Mo
KSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3Rv
ciB0cmFja3MoKSBjb25zdDsKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogYWN0aXZlVmlk
ZW9UcmFjaygpIHsgcmV0dXJuIG1fYWN0aXZlVmlkZW9UcmFjazsgfQogCiAgICAgYm9vbCBhY3Rp
dmUoKSBjb25zdCB7IHJldHVybiBtX2lzQWN0aXZlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUu
aAppbmRleCAzOTFhNjUzZjQ4ZTNlN2UzMmE0ODJjNzc5N2M3ZGM3NzEzMTUwMjViLi4wMDcxNmZk
MGE0NTYxNGRlNmNkOGFiYWRlMDU5MGYyYmYxMGMwMjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2
YXRlLmgKQEAgLTEwMCw3ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgUmVmPE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlPiBjbG9uZSgpOwogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKCkg
eyByZXR1cm4gbV9zb3VyY2UuZ2V0KCk7IH0KLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
IHR5cGUoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZWFsdGltZU1lZGlhU291cmNlOjpU
eXBlIHR5cGUoKSBjb25zdDsKIAogICAgIHZvaWQgZW5kVHJhY2soKTsKIApAQCAtMTEwLDcgKzEx
MCw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc09ic2VydmVyKE9ic2VydmVyJikgY29uc3Q7CiAj
ZW5kaWYKIAotICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3Mo
KSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3MmIHNldHRpbmdzKCkgY29uc3Q7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgY29uc3Q7CiAKICAgICB2b2lkIGFwcGx5Q29uc3Ry
YWludHMoY29uc3QgTWVkaWFDb25zdHJhaW50cyYsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5
Q29uc3RyYWludHNIYW5kbGVyJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmlu
ZGV4IGJhOTQxOGM1MGM3OWYwMzg5NWUzN2JjN2IzNzdmYWE5M2I1NTczYjYuLjY4YWI0MjM4NzZh
NjUwOWU1ZGJlMjBmMDE2MmY0MjdmZTA5MDRjNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAKQEAgLTEyMiw2ICsxMjIsNyBAQAogI2luY2x1ZGUgIk1lZGlhRW5naW5lQ29uZmln
dXJhdGlvbkZhY3RvcnkuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk1l
ZGlhUHJvZHVjZXIuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCIKICNpbmNs
dWRlICJNZWRpYVJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFjay5o
IgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCkBAIC01NTAsNiArNTUxLDggQEAgdm9pZCBJbnRl
cm5hbHM6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoUGFnZSYgcGFnZSkKIAogI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS5zZXRJbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxpdHlDaGFuZ2VFbmFibGVkKGZhbHNlKTsK
KyAgICBXZWJDb3JlOjpNZWRpYVJlY29yZGVyOjpzZXRDdXN0b21Qcml2YXRlUmVjb3JkZXJDcmVh
dG9yKG51bGxwdHIpOworICAgIHBhZ2UubWVkaWFSZWNvcmRlclByb3ZpZGVyKCkuc2V0VXNlR1BV
UHJvY2Vzcyh0cnVlKTsKICNlbmRpZgogCiAgICAgSFRNTENhbnZhc0VsZW1lbnQ6OnNldE1heFBp
eGVsTWVtb3J5Rm9yVGVzdGluZygwKTsgLy8gVGhpcyBtZWFucyB1c2UgdGhlIGRlZmF1bHQgdmFs
dWUuCkBAIC0xNTU4LDcgKzE1NjEsOSBAQCB2b2lkIEludGVybmFsczo6c2V0VXNlR1BVUHJvY2Vz
c0ZvcldlYlJUQyhib29sIHVzZUdQVVByb2Nlc3MpCiAgICAgYXV0byogZG9jdW1lbnQgPSBjb250
ZXh0RG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKQog
ICAgICAgICByZXR1cm47CisKICAgICBkb2N1bWVudC0+cGFnZSgpLT5saWJXZWJSVENQcm92aWRl
cigpLnNldFVzZUdQVVByb2Nlc3ModXNlR1BVUHJvY2Vzcyk7CisgICAgZG9jdW1lbnQtPnBhZ2Uo
KS0+bWVkaWFSZWNvcmRlclByb3ZpZGVyKCkuc2V0VXNlR1BVUHJvY2Vzcyh1c2VHUFVQcm9jZXNz
KTsKICNlbmRpZgogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCBmZjUyZDI1MzZmNTY1
ZmEyOTViZWI2MjAxMjY4YTBmMzMzMTcwZmYzLi41MzI2NzhmMzc2MDMzYzNjMDBmOWY2YmQ1YTMw
YzM4NjkwZTMzNGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTc4LDYgKzc4LDggQEAgc2V0KFdl
YktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9H
YW1lcGFkIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24iCiAgICAg
IiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9HUFUiCisgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEiCisgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9HUFUvd2VicnRj
IgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlIgogICAgICIke1dF
QktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUiCiAgICAgIiR7V0VCS0lUX0RJUn0v
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggNzk5NGUzY2E3Nzc2MzI5ZDZmNzVkN2FhZjBj
OTNmZDlhYTA1OWUxMC4uYjk4ODBiYzBhY2Y2ZjYxYzAyYjNiMzdkMmM0Y2JlZWJhMTAyMDgyNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAt
MTksNiArMTksOCBAQCAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2Vi
S2l0LkdQVVByb2Nlc3Muc2IuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KICQo
UFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1lc3Nh
Z2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29y
ZGVyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVN
ZWRpYVJlY29yZGVycy5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3Mv
Q29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3
b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1l
c3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURC
U2VydmVyLm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdAppbmRleCAwY2QyM2UwMWJiYWNkMmVjNGEwYmRjM2JkZmYyYmUwZDdiNjBi
MDFiLi5kNzIwNjIzYWJhY2FkZGU5N2M1ZjM1YzI3MzJmNThkZjliOTYyNzA2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEyOSw2ICsx
MjksMTIgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXNSZXAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZWNvcmRl
ck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZWNvcmRlcnNNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVNZWRpYVJlY29yZGVyc01lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVjb3JkZXJzTWVzc2FnZXNSZXBsaWVzLmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdl
cy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKaW5kZXggOWQzZTJhOTBjN2I0ZDkwYTQyNmM3NmE0ZTA1ZTZiMmY4MWNjMGU5ZS4uYTU2
ODYwMWI3N2IxZGJkN2ZmZDYzNmRlN2I2MzRiMWZlMmIxMjhkMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMubWFrZQpAQCAtMTQzLDYgKzE0Myw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAg
IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkgXAogICAgIFJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlciBcCiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkgXAorICAgIFJlbW90
ZU1lZGlhUmVjb3JkZXIgXAorICAgIFJlbW90ZU1lZGlhUmVjb3JkZXJzIFwKICAgICBSZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlciBcCiAgICAgUmVtb3RlT2JqZWN0UmVnaXN0cnkgXAogICAgIFJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA1MmE5NWNlMGRlZDcw
M2Q2MWQzNGE5ZDE3ZjBjOGI0MmU2NjRmZGRhLi43ZjY2MzNhN2Q3OThhMTU0NjQ2ZTI5OWI2OTgx
ZDkyNTNiMmNjNzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0zOSw2ICszOSw5IEBACiAjaW5jbHVkZSAi
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlck1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlcnMuaCIKKyNpbmNsdWRlICJS
ZW1vdGVNZWRpYVJlY29yZGVyc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXIuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5o
IgpAQCAtMTM3LDkgKzE0MCw3IEBAIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkmIEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyCiAKICAgICByZXR1
cm4gKm1fdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKIH0KLSNlbmRpZgogCi0jaWYgUExB
VEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCiBMaWJXZWJSVENDb2RlY3NQcm94eSYgR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bGliV2ViUlRDQ29kZWNzUHJveHkoKQogewogICAgIGlm
ICghbV9saWJXZWJSVENDb2RlY3NQcm94eSkKQEAgLTE0OSw2ICsxNTAsMTYgQEAgTGliV2ViUlRD
Q29kZWNzUHJveHkmIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxpYldlYlJUQ0NvZGVjc1By
b3h5KCkKIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMp
CitSZW1vdGVNZWRpYVJlY29yZGVycyYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bWVkaWFS
ZWNvcmRlcnMoKQoreworICAgIGlmICghbV9yZW1vdGVNZWRpYVJlY29yZGVycykKKyAgICAgICAg
bV9yZW1vdGVNZWRpYVJlY29yZGVycyA9IG1ha2VVbmlxdWU8UmVtb3RlTWVkaWFSZWNvcmRlcnM+
KCp0aGlzKTsKKworICAgIHJldHVybiAqbV9yZW1vdGVNZWRpYVJlY29yZGVyczsKK30KKyNlbmRp
ZgorCiB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewogICAg
IGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewpAQCAtMTYzLDYg
KzE3NCwxNCBAQCB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSQogICAgICAgICB1c2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5KCkuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2Vzcyhjb25uZWN0
aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBpZiAoZGVjb2Rlci5t
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXJzOjpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgbWVkaWFSZWNvcmRlcnMoKS5kaWRSZWNl
aXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBN
ZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7Cisg
ICAgICAgIG1lZGlhUmVjb3JkZXJzKCkuZGlkUmVjZWl2ZVJlbW90ZU1lZGlhUmVjb3JkZXJNZXNz
YWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQogI2VuZGlm
CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCiAgICAgaWYgKGRlY29kZXIu
bWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBhYzcxMjVkNzM4ZDg2ODg4ZWVh
OGI0YTkyNTE1ZjlkZTRkMWY2YjA0Li44OWM0Y2ExYzIyMmZhNWM5YTU0ZmE2YzA1NmRhOTgyM2Ji
NTZlZDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTQxLDggKzQxLDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBj
bGFzcyBHUFVQcm9jZXNzOwogY2xhc3MgTGliV2ViUlRDQ29kZWNzUHJveHk7CiBjbGFzcyBSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKLWNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk7CitjbGFzcyBSZW1vdGVNZWRpYVJlY29yZGVyczsKIGNsYXNzIFJlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyOworY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKIAogY2xh
c3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcwogICAgIDogcHVibGljIFJlZkNvdW50ZWQ8R1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcz4KQEAgLTcxLDYgKzcyLDcgQEAgcHJpdmF0ZToKICNlbmRp
ZgogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkmIHVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoKTsK
KyAgICBSZW1vdGVNZWRpYVJlY29yZGVycyYgbWVkaWFSZWNvcmRlcnMoKTsKICNlbmRpZgogCiAg
ICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKQEAgLTg5LDYgKzkxLDcgQEAgcHJpdmF0ZToK
ICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICNpZiBQTEFURk9STShDT0NPQSkgJiYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eT4gbV91c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OworICAgIHN0ZDo6
dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVJlY29yZGVycz4gbV9yZW1vdGVNZWRpYVJlY29yZGVyczsK
ICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQogICAgIHN0ZDo6
dW5pcXVlX3B0cjxMaWJXZWJSVENDb2RlY3NQcm94eT4gbV9saWJXZWJSVENDb2RlY3NQcm94eTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktp
dC5HUFVQcm9jZXNzLnNiLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9jb20uYXBw
bGUuV2ViS2l0LkdQVVByb2Nlc3Muc2IuaW4KaW5kZXggZDYzMmJlZWJjYjM1ZDc0ZTM4ZTBjYjE4
NjFiN2YwNTdhNWYzNmQ5NC4uOWI3NDEyYmI0ZGE2Y2VmMmY3MmIyN2Y1YTQxZmRlZGE3MTY5ODA1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2Vi
S2l0LkdQVVByb2Nlc3Muc2IuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21hYy9j
b20uYXBwbGUuV2ViS2l0LkdQVVByb2Nlc3Muc2IuaW4KQEAgLTgzNiwzICs4MzYsNyBAQAogICAg
ICAgICAoaW9raXQtdXNlci1jbGllbnQtY2xhc3MgIklPVVNCSW50ZXJmYWNlVXNlckNsaWVudFYy
IikpCiAgICAgKGFsbG93IGRldmljZS1jYW1lcmEpKQogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykK
KworKGFsbG93IGZpbGUtcmVhZCogZmlsZS13cml0ZSogKHN1YnBhdGggKHBhcmFtICJEQVJXSU5f
VVNFUl9DQUNIRV9ESVIiKSkpCisKKyhhbGxvdyBmaWxlLXJlYWQqIGZpbGUtd3JpdGUqIChzdWJw
YXRoIChwYXJhbSAiREFSV0lOX1VTRVJfVEVNUF9ESVIiKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hZDhhODVkNTc0YmNlN2NhYzMwM2Q2M2EyOWJiOTVmMGMzOWNjZjBmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29y
ZGVyLmNwcApAQCAtMCwwICsxLDEzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlY29yZGVyLmgiCisKKyNpZiBQTEFURk9STShDT0NP
QSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0
b3JhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVtb3Rl
VmlkZW9TYW1wbGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgor
I2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorCit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRp
YVJlY29yZGVyPiBSZW1vdGVNZWRpYVJlY29yZGVyOjpjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyYgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgTWVkaWFSZWNvcmRlcklkZW50aWZp
ZXIgaWRlbnRpZmllciwgYm9vbCByZWNvcmRBdWRpbywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQor
eworICAgIGF1dG8gd3JpdGVyID0gTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNyZWF0ZShy
ZWNvcmRBdWRpbywgd2lkdGgsIGhlaWdodCk7CisgICAgaWYgKCF3cml0ZXIpCisgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFSZWNv
cmRlcj4obmV3IFJlbW90ZU1lZGlhUmVjb3JkZXIgeyBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LCBpZGVudGlmaWVyLCB3cml0ZXIucmVsZWFzZU5vbk51bGwoKSwgcmVjb3JkQXVkaW8gfSk7Cit9
CisKK1JlbW90ZU1lZGlhUmVjb3JkZXI6OlJlbW90ZU1lZGlhUmVjb3JkZXIoR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgTWVkaWFSZWNvcmRlcklk
ZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiYmIHdy
aXRlciwgYm9vbCByZWNvcmRBdWRpbykKKyAgICA6IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vz
cyhncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZp
ZXIpCisgICAgLCBtX3dyaXRlcihXVEZNb3ZlKHdyaXRlcikpCit7CisgICAgaWYgKHJlY29yZEF1
ZGlvKQorICAgICAgICBtX3JpbmdCdWZmZXIgPSBtYWtlVW5pcXVlPENBUmluZ0J1ZmZlcj4obWFr
ZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4obnVsbHB0cikpOworfQorCitSZW1v
dGVNZWRpYVJlY29yZGVyOjp+UmVtb3RlTWVkaWFSZWNvcmRlcigpCit7Cit9CisKK1NoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlJiBSZW1vdGVNZWRpYVJlY29yZGVyOjpzdG9yYWdlKCkKK3sKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXIt
PnN0b3JhZ2UoKSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZWNvcmRlcjo6YXVkaW9TYW1wbGVz
U3RvcmFnZUNoYW5nZWQoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhhbmRsZSwgY29uc3Qg
V2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgdWludDY0X3Qg
bnVtYmVyT2ZGcmFtZXMpCit7CisgICAgQVNTRVJUKG1fcmluZ0J1ZmZlcik7CisgICAgaWYgKCFt
X3JpbmdCdWZmZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZGVzY3JpcHRpb24gPSBkZXNj
cmlwdGlvbjsKKworICAgIGlmIChoYW5kbGUuaXNOdWxsKCkpIHsKKyAgICAgICAgbV9yaW5nQnVm
ZmVyLT5kZWFsbG9jYXRlKCk7CisgICAgICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25seShmYWxzZSk7
CisgICAgICAgIHN0b3JhZ2UoKS5zZXRTdG9yYWdlKG51bGxwdHIpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgYXV0byBtZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1hcChoYW5kbGUsIFNo
YXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworICAgIHN0b3JhZ2UoKS5zZXRTdG9y
YWdlKFdURk1vdmUobWVtb3J5KSk7CisgICAgc3RvcmFnZSgpLnNldFJlYWRPbmx5KHRydWUpOwor
CisgICAgbV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMp
OworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShN
ZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJh
bWUsIHVpbnQ2NF90IGVuZEZyYW1lKQoreworICAgIEFTU0VSVChtX3JpbmdCdWZmZXIpOworICAg
IGlmICghbV9yaW5nQnVmZmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3JpbmdCdWZmZXIt
PnNldEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7CisKKyAgICBXZWJB
dWRpb0J1ZmZlckxpc3QgYXVkaW9EYXRhKG1fZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsK
KyAgICBtX3JpbmdCdWZmZXItPmZldGNoKGF1ZGlvRGF0YS5saXN0KCksIG51bWJlck9mRnJhbWVz
LCB0aW1lLnRpbWVWYWx1ZSgpKTsKKworICAgIG1fd3JpdGVyLT5hcHBlbmRBdWRpb1NhbXBsZUJ1
ZmZlcihhdWRpb0RhdGEsIG1fZGVzY3JpcHRpb24sIHRpbWUsIG51bWJlck9mRnJhbWVzKTsKK30K
Kwordm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3Jl
OjpSZW1vdGVWaWRlb1NhbXBsZSYmIHJlbW90ZVNhbXBsZSkKK3sKKyAgICBpZiAoIW1faW1hZ2VU
cmFuc2ZlclNlc3Npb24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+cGl4ZWxGb3JtYXQoKSAh
PSByZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSkKKyAgICAgICAgbV9pbWFnZVRyYW5zZmVyU2Vz
c2lvbiA9IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShyZW1vdGVTYW1wbGUudmlkZW9G
b3JtYXQoKSk7CisKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24pIHsKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRv
IHNhbXBsZUJ1ZmZlciA9IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1lZGlhU2FtcGxl
KHJlbW90ZVNhbXBsZS5zdXJmYWNlKCksIHJlbW90ZVNhbXBsZS50aW1lKCksIHJlbW90ZVNhbXBs
ZS5zaXplKCkpOworICAgIGlmICghc2FtcGxlQnVmZmVyKSB7CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV93cml0ZXItPmFwcGVu
ZFZpZGVvU2FtcGxlQnVmZmVyKHNhbXBsZUJ1ZmZlci0+cGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUu
Y21TYW1wbGVCdWZmZXIpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXI6OmZldGNoRGF0
YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6RGF0YVJlZmVyZW5jZSYmLCBjb25zdCBTdHJp
bmcmIG1pbWVUeXBlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBtcDRNaW1lVHlwZShNQUtFX1NUQVRJQ19TVFJJTkdfSU1Q
TCgidmlkZW8vbXA0IikpOworICAgIG1fd3JpdGVyLT5mZXRjaERhdGEoWyZtcDRNaW1lVHlwZSA9
IG1wNE1pbWVUeXBlLmdldCgpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXShhdXRvJiYgZGF0YSkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8qIHBvaW50ZXIg
PSByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRhID8gZGF0YS0+ZGF0YSgpIDog
bnVsbHB0cik7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKElQQzo6RGF0YVJlZmVyZW5jZSB7
IHBvaW50ZXIsIGRhdGEgPyBkYXRhLT5zaXplKCkgOiAwIH0sIG1wNE1pbWVUeXBlKTsKKyAgICB9
KTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyOjpzdG9wUmVjb3JkaW5nKCkKK3sKKyAg
ICBtX3dyaXRlci0+c3RvcFJlY29yZGluZygpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40NGE4ZDE3NTVjNTk1MzBjMjMxMzZiNDc3YjlhOGEwODU0NDE0ZjU2Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRp
YVJlY29yZGVyLmgKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUg
Ik1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgi
CisjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyQ29jb2EuaD4KKyNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CisKK25hbWVzcGFjZSBJ
UEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIERhdGFSZWZlcmVuY2U7CitjbGFzcyBEZWNv
ZGVyOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDQVJpbmdCdWZmZXI7CitjbGFz
cyBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOworY2xhc3MgUmVtb3RlVmlkZW9TYW1wbGU7Cit9CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwor
Y2xhc3MgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U7CisKK2NsYXNzIFJlbW90ZU1lZGlhUmVjb3Jk
ZXIgOiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZU1lZGlh
UmVjb3JkZXI+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgTWVkaWFSZWNvcmRl
cklkZW50aWZpZXIsIGJvb2wgcmVjb3JkQXVkaW8sIGludCB3aWR0aCwgaW50IGhlaWdodCk7Cisg
ICAgflJlbW90ZU1lZGlhUmVjb3JkZXIoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKK3ByaXZhdGU6CisgICAg
UmVtb3RlTWVkaWFSZWNvcmRlcihHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgTWVkaWFSZWNv
cmRlcklkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4m
JiwgYm9vbCByZWNvcmRBdWRpbyk7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAg
IHZvaWQgYXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5k
bGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCB1aW50NjRfdCBu
dW1iZXJPZkZyYW1lcyk7CisgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1l
LCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3Qg
ZW5kRnJhbWUpOworICAgIHZvaWQgdmlkZW9TYW1wbGVBdmFpbGFibGUoV2ViQ29yZTo6UmVtb3Rl
VmlkZW9TYW1wbGUmJik7CisgICAgdm9pZCBmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChJUEM6OkRhdGFSZWZlcmVuY2UmJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk+JiYpOworICAg
IHZvaWQgc3RvcFJlY29yZGluZygpOworCisgICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0
b3JhZ2UoKTsKKworICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIG1fZ3B1Q29ubmVjdGlv
blRvV2ViUHJvY2VzczsKKyAgICBNZWRpYVJlY29yZGVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7
CisgICAgUmVmPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiBtX3dyaXRlcjsK
KworICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uOwor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVD4gbV9p
bWFnZVRyYW5zZmVyU2Vzc2lvbjsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIu
bWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzE0ZWRjNTM2MTAyM2VkYzc4Mjc4MGM0ZDQ2ZTlkMTVi
OTQ4MTM5ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJy
dGMvUmVtb3RlTWVkaWFSZWNvcmRlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM0IEBACisjIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
IyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFSZWNvcmRlciBO
b3RSZWZDb3VudGVkIHsKKyAgICBBdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZChXZWJLaXQ6OlNo
YXJlZE1lbW9yeTo6SGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisgICAgQXVk
aW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1l
cywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCisgICAgVmlkZW9TYW1w
bGVBdmFpbGFibGUoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUgc2FtcGxlKQorICAgIEZldGNo
RGF0YSgpIC0+IChJUEM6OkRhdGFSZWZlcmVuY2UgYnVmZmVyLCBTdHJpbmcgbWltZVR5cGUpIEFz
eW5jCisgICAgU3RvcFJlY29yZGluZygpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJzLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41ZGY4ZmUzYTUyMTAyNzgxY2MzODJhYTFlNDcxYjMwNzE1YTdiNzYyCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJl
Y29yZGVycy5jcHAKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlY29yZGVycy5oIgorCisjaWYgUExBVEZPUk0o
Q09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2Uu
aCIKKyNpbmNsdWRlICJEZWNvZGVyLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlci5o
IgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3RlTWVkaWFSZWNvcmRlcnM6OlJlbW90ZU1l
ZGlhUmVjb3JkZXJzKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MpCisgICAgOiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoZ3B1Q29ubmVjdGlv
blRvV2ViUHJvY2VzcykKK3sKK30KKworUmVtb3RlTWVkaWFSZWNvcmRlcnM6On5SZW1vdGVNZWRp
YVJlY29yZGVycygpCit7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZWNvcmRlcnM6OmRpZFJlY2Vp
dmVSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAoYXV0byogcmVjb3JkZXIgPSBtX3Jl
Y29yZGVycy5nZXQobWFrZU9iamVjdElkZW50aWZpZXI8TWVkaWFSZWNvcmRlcklkZW50aWZpZXJU
eXBlPihkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSkpKQorICAgICAgICByZWNvcmRlci0+ZGlkUmVj
ZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFS
ZWNvcmRlcnM6OmNyZWF0ZVJlY29yZGVyKE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIGJvb2wgcmVjb3JkQXVkaW8sIGludCB3aWR0aCwgaW50IGhlaWdodCkKK3sKKyAgICBBU1NF
UlQoIW1fcmVjb3JkZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBhdXRvIHJlY29yZGVy
ID0gUmVtb3RlTWVkaWFSZWNvcmRlcjo6Y3JlYXRlKG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vz
cywgaWRlbnRpZmllciwgcmVjb3JkQXVkaW8sIHdpZHRoLCBoZWlnaHQpOworICAgIGlmICghcmVj
b3JkZXIpIHsKKyAgICAgICAgLy8gRklYTUU6IFNlbmQgYmFjayBlcnJvci4KKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBtX3JlY29yZGVycy5hZGQoaWRlbnRpZmllciwgV1RGTW92ZShyZWNv
cmRlcikpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXJzOjpyZWxlYXNlUmVjb3JkZXIo
TWVkaWFSZWNvcmRlcklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQobV9yZWNv
cmRlcnMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIG1fcmVjb3JkZXJzLnJlbW92ZShpZGVu
dGlmaWVyKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzZmMTc5
NGE1MDQzNmNmYmYwZTJlNmEwOTg1ODYwMzQzZGJhMjk1Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5oCkBAIC0w
LDAgKzEsNjcgQEAKKworCisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9S
TShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRl
cklkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247CitjbGFz
cyBEZWNvZGVyOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzczsKK2NsYXNzIFJlbW90ZU1lZGlhUmVjb3JkZXI7CisKK2NsYXNzIFJlbW90
ZU1lZGlhUmVjb3JkZXJzIDogcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUmVtb3RlTWVkaWFS
ZWNvcmRlcnMoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYpOworICAgIH5SZW1vdGVNZWRpYVJl
Y29yZGVycygpOworCisgICAgdm9pZCBkaWRSZWNlaXZlUmVtb3RlTWVkaWFSZWNvcmRlck1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZUZyb21XZWJQcm9jZXNzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyKSB7IGRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIp
OyB9CisKK3ByaXZhdGU6CisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwor
ICAgIHZvaWQgY3JlYXRlUmVjb3JkZXIoTWVkaWFSZWNvcmRlcklkZW50aWZpZXIsIGJvb2wgcmVj
b3JkQXVkaW8sIGludCB3aWR0aCwgaW50IGhlaWdodCk7CisgICAgdm9pZCByZWxlYXNlUmVjb3Jk
ZXIoTWVkaWFSZWNvcmRlcklkZW50aWZpZXIpOworCisgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOworICAgIEhhc2hNYXA8TWVkaWFSZWNv
cmRlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVJlY29yZGVyPj4gbV9y
ZWNvcmRlcnM7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMubWVzc2FnZXMu
aW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDRlNWRlOTI5MjY1NDQ3YTVmMGFlY2UwNmE0NmMyMDU1ZGQ1ZWZlNQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
TWVkaWFSZWNvcmRlcnMubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMSBAQAorIyBDb3B5cmlnaHQg
KEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
IyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUo
R1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUmVjb3JkZXJzIE5vdFJlZkNv
dW50ZWQgeworICAgIENyZWF0ZVJlY29yZGVyKFdlYktpdDo6TWVkaWFSZWNvcmRlcklkZW50aWZp
ZXIgaWQsIGJvb2wgaGFzQXVkaW8sIGludCB3aWR0aCwgaW50IGhlaWdodCkKKyAgICBSZWxlYXNl
UmVjb3JkZXIoV2ViS2l0OjpNZWRpYVJlY29yZGVySWRlbnRpZmllciBpZCkKK30KKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCA1ZDg0NDcxMzI1
YmJhN2E0MzVlZDkzM2MwOTA5MDk0NTNiOWQ0MDI1Li5mOGJjZTE0NTUwN2RmNDllODllZDRmNzE5
ODc2ZTEwYmY3MDk2YmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMu
cHkKQEAgLTIyMCw2ICsyMjAsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9k
ZWNsYXJlZCgpOgogICAgICAgICAnV2ViS2l0OjpBY3Rpdml0eVN0YXRlQ2hhbmdlSUQnLAogICAg
ICAgICAnV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQnLAogICAgICAgICAnV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYktpdDo6TWVk
aWFSZWNvcmRlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291
cmNlSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJUQ0RlY29kZXJJZGVudGlmaWVyJywK
ICAgICAgICAgJ1dlYktpdDo6UlRDRW5jb2RlcklkZW50aWZpZXInLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXgg
ZDAzOTNiYjA2MmQ5N2FlOTZhNzIyNWE2ZDYwN2IwNzRiMzhlMGM5OC4uYzg1MjQxMDdhZDVmYTcy
Zjc3OWZkMGIwZDRmMzRhNWMxNzE5OWI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0yNCw2ICsyNCw4IEBA
CiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwCiBHUFVQcm9jZXNzL0dQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
CitHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcAorR1BVUHJvY2Vzcy93
ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5LmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcApA
QCAtNTEzLDYgKzUxNSw4IEBAIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
TWFuYWdlci5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTUlNRVR5
cGVDYWNoZS5jcHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJl
c291cmNlUHJveHkuY3BwCiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNw
cAorV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcAorV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAKIAogV2ViUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvTmV0d29yay9X
ZWJMb2FkZXJTdHJhdGVneS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBmZTc1Nzk1Mzc2
MWI5OWY2OWI4MjhjMTFiYmMwZjMzMWFlZWZjMTkxLi5iNjY3Mzc3ZmZiYzg4NTUxYTUzODZiYmYz
MWRhOTNhYWJiMDkxNmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC02MzUsNSArNjM1LDcg
QEAgR1BVUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogR1BVUHJvY2Vzc01lc3NhZ2VS
ZWNlaXZlci5jcHAKIExpYldlYlJUQ0NvZGVjc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogTGli
V2ViUlRDQ29kZWNzTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlTWVkaWFSZWNvcmRlck1lc3Nh
Z2VSZWNlaXZlci5jcHAKK1JlbW90ZU1lZGlhUmVjb3JkZXJzTWVzc2FnZVJlY2VpdmVyLmNwcAog
U2VydmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VSZWNlaXZlci5jcHAKIFRleHRDaGVja2luZ0Nv
bnRyb2xsZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU3NzhiYTU4NzIzMmM2ZTZhNzgyMjQ2
YjljN2NiMzIwYWU4ZmNjZWEuLjE3N2IzYWIxMDg5Yjk3ZWYyNDk1NWUwOTY0YmRjYzQwNjViMzcz
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMzMxNiw2ICszMzE2LDE3IEBACiAJCTQxNzIxOThDMjNCNjEyRTgwMEFFNTY4NiAvKiBS
VENEZWNvZGVySWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
VENEZWNvZGVySWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTcy
MTk4RDIzQjYyQzdDMDBBRTU2ODYgLyogTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2VzLmluICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IExpYldlYlJUQ0NvZGVjcy5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDE3NjkwMTMyMkZERDQxQjAwQjE1NzZEIC8qIE5ldHdvcmtSVENQcm92aWRlci5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdvcmtSVENQcm92aWRlci5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OTIyM0MzNEQ2RTAwM0U4M0ZF
IC8qIE1lZGlhUmVjb3JkZXJQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVJlY29yZGVy
UHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OTMyM0MzNEQ2
RjAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBNZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0MTc2RTg5NDIzQzM0RTI2MDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFSZWNvcmRlclByaXZhdGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc2RTg5NTIzQzM0RTI3MDAzRTgz
RkUgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWVkaWFSZWNvcmRlclByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDE3NkU4OTcyM0MzNjFCRDAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJJZGVudGlmaWVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODk4MjNDMzY2NzcwMDNFODNG
RSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbW90ZU1lZGlhUmVjb3JkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDE3NkU4OTkyM0MzNkQ4RTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXJzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVjb3JkZXJzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODlBMjNDMzZGNzEwMDNFODNGRSAvKiBSZW1v
dGVNZWRpYVJlY29yZGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZW1vdGVNZWRpYVJlY29yZGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQxNzZFODlCMjNDMzcyMjIwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVycy5tZXNzYWdl
cy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVNZWRpYVJlY29yZGVycy5tZXNzYWdl
cy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OUMyM0MzNzQ3OTAwM0U4
M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gUmVtb3RlTWVkaWFSZWNvcmRlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDE3NkU4OUQyM0MzNzZENTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3Jk
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFS
ZWNvcmRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzkxNUFDMjI1NkJC
NzQwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFdlYlNvY2tldENoYW5uZWwuY3BwOyBwYXRoID0gTmV0d29yay9XZWJT
b2NrZXRDaGFubmVsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3OTE1QUQy
MjU2QkI3NDAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gV2ViU29ja2V0Q2hhbm5lbC5oOyBwYXRoID0gTmV0d29yay9XZWJTb2Nr
ZXRDaGFubmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzkxNUIwMjI1NkMw
RDYwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBXZWJTb2NrZXRDaGFubmVsTWFuYWdlci5oOyBwYXRoID0gTmV0d29y
ay9XZWJTb2NrZXRDaGFubmVsTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNzExNyw2ICs3MTI4LDExIEBACiAJCQkJNDE3MjE5OEEyM0I2MTI4MjAwQUU1Njg2IC8qIExp
YldlYlJUQ0NvZGVjcy5jcHAgKi8sCiAJCQkJNDE3MjE5ODkyM0I2MTI4MjAwQUU1Njg2IC8qIExp
YldlYlJUQ0NvZGVjcy5oICovLAogCQkJCTQxNzIxOThEMjNCNjJDN0MwMEFFNTY4NiAvKiBMaWJX
ZWJSVENDb2RlY3MubWVzc2FnZXMuaW4gKi8sCisJCQkJNDE3NkU4OTcyM0MzNjFCRDAwM0U4M0ZF
IC8qIE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLmggKi8sCisJCQkJNDE3NkU4OTQyM0MzNEUyNjAw
M0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCAqLywKKwkJCQk0MTc2RTg5NTIzQzM0
RTI3MDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCAqLywKKwkJCQk0MTc2RTg5MzIz
QzM0RDZGMDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcCAqLywKKwkJCQk0MTc2
RTg5MjIzQzM0RDZFMDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVyLmggKi8sCiAJCQkJ
NDE3MjE5OEMyM0I2MTJFODAwQUU1Njg2IC8qIFJUQ0RlY29kZXJJZGVudGlmaWVyLmggKi8sCiAJ
CQkJNDE1ODY0OUEyM0JFMDkyNDAwQTBBNjFFIC8qIFJUQ0VuY29kZXJJZGVudGlmaWVyLmggKi8s
CiAJCQkpOwpAQCAtNzEyOSw2ICs3MTQ1LDEyIEBACiAJCQkJNDFFMEE3QzYyM0I2Mzk3ODAwNTYx
MDYwIC8qIExpYldlYlJUQ0NvZGVjc1Byb3h5LmggKi8sCiAJCQkJNDFFMEE3QzcyM0I2Mzk3OTAw
NTYxMDYwIC8qIExpYldlYlJUQ0NvZGVjc1Byb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCTQxRTBB
N0M4MjNCNjM5NzkwMDU2MTA2MCAvKiBMaWJXZWJSVENDb2RlY3NQcm94eS5tbSAqLywKKwkJCQk0
MTc2RTg5RDIzQzM3NkQ1MDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAgKi8sCisJ
CQkJNDE3NkU4OTgyM0MzNjY3NzAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXIuaCAqLywK
KwkJCQk0MTc2RTg5QzIzQzM3NDc5MDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlci5tZXNz
YWdlcy5pbiAqLywKKwkJCQk0MTc2RTg5QTIzQzM2RjcxMDAzRTgzRkUgLyogUmVtb3RlTWVkaWFS
ZWNvcmRlcnMuY3BwICovLAorCQkJCTQxNzZFODk5MjNDMzZEOEUwMDNFODNGRSAvKiBSZW1vdGVN
ZWRpYVJlY29yZGVycy5oICovLAorCQkJCTQxNzZFODlCMjNDMzcyMjIwMDNFODNGRSAvKiBSZW1v
dGVNZWRpYVJlY29yZGVycy5tZXNzYWdlcy5pbiAqLywKIAkJCSk7CiAJCQlwYXRoID0gd2VicnRj
OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kZTJkNjZiZmJjYjQ5ZDkzODkzODY1OGMwMDBlYTMxZDkyZWJmNzI3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVJlY29y
ZGVyUHJvdmlkZXIuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgiCisKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaCIKKyNl
bmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29y
ZGVyUHJpdmF0ZT4gTWVkaWFSZWNvcmRlclByb3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJp
dmF0ZShNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkK
KyAgICByZXR1cm4gTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjpjcmVhdGUoc3RyZWFtKTsK
KyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHN0cmVhbSk7CisgICAgcmV0dXJuIG51bGxwdHI7Cisj
ZW5kaWYKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzEwZThkNDgxZjg2
YTM1ZDBkOWVlOWZiODNlYWVlNjZkYzc5ZGZjZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgKQEAgLTAs
MCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIE1lZGlhUmVjb3JkZXJQcml2YXRlOworY2xhc3MgTWVkaWFTdHJlYW1Qcml2
YXRlOworCitjbGFzcyBXRUJDT1JFX0VYUE9SVCBNZWRpYVJlY29yZGVyUHJvdmlkZXIgeworICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBVbmlxdWVSZWY8
TWVkaWFSZWNvcmRlclByb3ZpZGVyPiBjcmVhdGUoKSB7IHJldHVybiBtYWtlVW5pcXVlUmVmPE1l
ZGlhUmVjb3JkZXJQcm92aWRlcj4oKTsgfQorICAgIHZpcnR1YWwgfk1lZGlhUmVjb3JkZXJQcm92
aWRlcigpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVj
b3JkZXJQcml2YXRlPiBjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZh
dGUmKTsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL01lZGlhUmVjb3JkZXJJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVySWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyZjA0
ZTMzM2ZlODQ2MzIzY2NjZTc5Mzg1Y2E3NTJiNTY0MTkzZWQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVySWRlbnRpZmll
ci5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVt
IE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBNZWRpYVJlY29yZGVySWRl
bnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8TWVkaWFSZWNvcmRlcklkZW50aWZpZXJUeXBlPjsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZmMxNmM1MGZhODUzNTkwZDliNGViNDVmZGRkZmY5ZjI4ZjJhZGMxOQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQ
cml2YXRlLmNwcApAQCAtMCwwICsxLDE0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZS5oIgorCisjaWYgUExBVEZPUk0o
Q09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25u
ZWN0aW9uLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2VzLmgiCisjaW5j
bHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlcnNNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nl
c3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvTWVkaWFTdHJlYW1Qcml2YXRlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVtb3RlVmlkZW9TYW1wbGUuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVk
aW9CdWZmZXJMaXN0Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworTWVkaWFSZWNvcmRlclByaXZhdGU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlKGNv
bnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQorICAgIDogbV9pZGVudGlmaWVyKE1lZGlh
UmVjb3JkZXJJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQorICAgICwgbV9jb25uZWN0aW9uKFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlv
bigpKQoreworICAgIC8vIEZJWE1FOiB3ZSB3aWxsIG5lZWQgdG8gaW1wbGVtZW50IHN1cHBvcnQg
Zm9yIG11bHRpcGxlIGF1ZGlvL3ZpZGVvIHRyYWNrcworICAgIC8vIEN1cnJlbnRseSB3ZSBvbmx5
IGNob29zZSB0aGUgZmlyc3QgdHJhY2sgYXMgdGhlIHJlY29yZGVkIHRyYWNrLgorICAgIC8vIEZJ
WE1FOiBXZSB3b3VsZCBiZXR0ZXIgdG8gdGhyb3cgYW4gZXhjZXB0aW9uIHRvIEphdmFTY3JpcHQg
aWYgd3JpdGVyIGNyZWF0aW9uIGZhaWxzLgorCisgICAgY29uc3QgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUqIGF1ZGlvVHJhY2sgeyBudWxscHRyIH07CisgICAgY29uc3QgTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUqIHZpZGVvVHJhY2sgeyBudWxscHRyIH07CisgICAgZm9yIChhdXRvJiB0cmFjayA6
IHN0cmVhbS50cmFja3MoKSkgeworICAgICAgICBpZiAoIXRyYWNrLT5lbmFibGVkKCkgfHwgdHJh
Y2stPmVuZGVkKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgc3dpdGNoICh0cmFj
ay0+dHlwZSgpKSB7CisgICAgICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Vmlk
ZW86IHsKKyAgICAgICAgICAgIGF1dG8mIHNldHRpbmdzID0gdHJhY2stPnNldHRpbmdzKCk7Cisg
ICAgICAgICAgICBpZiAoIXZpZGVvVHJhY2sgJiYgc2V0dGluZ3Muc3VwcG9ydHNXaWR0aCgpICYm
IHNldHRpbmdzLnN1cHBvcnRzSGVpZ2h0KCkpIHsKKyAgICAgICAgICAgICAgICB2aWRlb1RyYWNr
ID0gdHJhY2suZ2V0KCk7CisgICAgICAgICAgICAgICAgbV9yZWNvcmRlZFZpZGVvVHJhY2tJRCA9
IHZpZGVvVHJhY2stPmlkKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgICAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvOgor
ICAgICAgICAgICAgaWYgKCFhdWRpb1RyYWNrKSB7CisgICAgICAgICAgICAgICAgbV9yaW5nQnVm
ZmVyID0gbWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2U+KHRoaXMpKTsKKyAgICAgICAgICAgICAgICBhdWRpb1RyYWNrID0gdHJhY2su
Z2V0KCk7CisgICAgICAgICAgICAgICAgbV9yZWNvcmRlZEF1ZGlvVHJhY2tJRCA9IGF1ZGlvVHJh
Y2stPmlkKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25lOgorICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVJlY29yZGVyczo6Q3JlYXRlUmVjb3JkZXIgeyBtX2lkZW50aWZpZXIsICEhYXVkaW9UcmFj
aywgdmlkZW9UcmFjayA/IHZpZGVvVHJhY2stPnNldHRpbmdzKCkud2lkdGgoKSA6IDAsIHZpZGVv
VHJhY2sgPyB2aWRlb1RyYWNrLT5zZXR0aW5ncygpLmhlaWdodCgpIDogMCB9LCAwKTsKK30KKwor
TWVkaWFSZWNvcmRlclByaXZhdGU6On5NZWRpYVJlY29yZGVyUHJpdmF0ZSgpCit7CisgICAgbV9j
b25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyczo6UmVsZWFzZVJl
Y29yZGVyIHsgbV9pZGVudGlmaWVyIH0sIDApOworfQorCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2
YXRlOjpzYW1wbGVCdWZmZXJVcGRhdGVkKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
JiB0cmFjaywgV2ViQ29yZTo6TWVkaWFTYW1wbGUmIHNhbXBsZSkKK3sKKyAgICBpZiAodHJhY2su
aWQoKSAhPSBtX3JlY29yZGVkVmlkZW9UcmFja0lEKQorICAgICAgICByZXR1cm47CisgICAgaWYg
KGF1dG8gcmVtb3RlU2FtcGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShzYW1wbGUpKQor
ICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6
OlZpZGVvU2FtcGxlQXZhaWxhYmxlIHsgV1RGTW92ZSgqcmVtb3RlU2FtcGxlKSB9LCBtX2lkZW50
aWZpZXIpOworfQorCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjphdWRpb1NhbXBsZXNBdmFp
bGFibGUoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBjb25zdCBNZWRp
YVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMp
Cit7CisgICAgaWYgKHRyYWNrLmlkKCkgIT0gbV9yZWNvcmRlZEF1ZGlvVHJhY2tJRCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKG1fZGVzY3JpcHRpb24gIT0gZGVzY3JpcHRpb24pIHsKKyAg
ICAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS50eXBlID09IFBs
YXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUpOworICAgICAgICBtX2Rl
c2NyaXB0aW9uID0gKldURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+
KGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CisKKyAgICAg
ICAgLy8gQWxsb2NhdGUgYSByaW5nIGJ1ZmZlciBsYXJnZSBlbm91Z2ggdG8gY29udGFpbiAyIHNl
Y29uZHMgb2YgYXVkaW8uCisgICAgICAgIG1fbnVtYmVyT2ZGcmFtZXMgPSBtX2Rlc2NyaXB0aW9u
LnNhbXBsZVJhdGUoKSAqIDI7CisgICAgICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUobV9kZXNj
cmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpLCBtX251bWJlck9mRnJhbWVzKTsKKyAgICB9CisK
KyAgICBBU1NFUlQoaXM8V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRpb0RhdGEpKTsKKyAgICBtX3Jp
bmdCdWZmZXItPnN0b3JlKGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4oYXVkaW9EYXRhKS5s
aXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsKKyAgICB1aW50NjRfdCBz
dGFydEZyYW1lOworICAgIHVpbnQ2NF90IGVuZEZyYW1lOworICAgIG1fcmluZ0J1ZmZlci0+Z2V0
Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAgICBtX2Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OkF1ZGlvU2FtcGxlc0F2YWls
YWJsZSB7IHRpbWUsIG51bWJlck9mRnJhbWVzLCBzdGFydEZyYW1lLCBlbmRGcmFtZSB9LCBtX2lk
ZW50aWZpZXIpOworfQorCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdG9yYWdlQ2hhbmdl
ZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2UpCit7CisgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFu
ZGxlOworICAgIGlmIChzdG9yYWdlKQorICAgICAgICBzdG9yYWdlLT5jcmVhdGVIYW5kbGUoaGFu
ZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICBtX2Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OkF1ZGlvU2FtcGxlc1N0b3Jh
Z2VDaGFuZ2VkIHsgaGFuZGxlLCBtX2Rlc2NyaXB0aW9uLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4o
bV9udW1iZXJPZkZyYW1lcykgfSwgbV9pZGVudGlmaWVyKTsKK30KKwordm9pZCBNZWRpYVJlY29y
ZGVyUHJpdmF0ZTo6ZmV0Y2hEYXRhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNv
cmU6OlNoYXJlZEJ1ZmZlcj4mJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OkZldGNoRGF0YSB7IH0sIFtjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvJiYgZGF0YSwgYXV0byYmIG1pbWVU
eXBlKSBtdXRhYmxlIHsKKyAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyOworICAg
ICAgICBpZiAoIWRhdGEuc2l6ZSgpKQorICAgICAgICAgICAgYnVmZmVyID0gU2hhcmVkQnVmZmVy
OjpjcmVhdGUoZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpKTsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoV1RGTW92ZShidWZmZXIpLCBtaW1lVHlwZSk7CisgICAgfSwgbV9pZGVudGlmaWVyKTsK
K30KKwordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c3RvcFJlY29yZGluZygpCit7CisgICAg
bV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyOjpTdG9wUmVj
b3JkaW5nIHsgfSwgbV9pZGVudGlmaWVyKTsKK30KKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0o
Q09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmRkNzUwMzUyMzIzMmY4Y2MwNDRjYTliMWY0ODA2NGQ5YzQ4NTkwNzcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVy
UHJpdmF0ZS5oCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJN
ZWRpYVJlY29yZGVySWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9y
YWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oPgorI2luY2x1
ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9u
OworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7Cit9
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZSBmaW5h
bCA6IHB1YmxpYyBXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZSwgcHVibGljIFNoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlOjpDbGllbnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwor
cHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZSYpOworICAgIH5NZWRpYVJlY29yZGVyUHJpdmF0ZSgpOworCitw
cml2YXRlOgorICAgIC8vIFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlCisgICAgdm9pZCBz
YW1wbGVCdWZmZXJVcGRhdGVkKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgV2Vi
Q29yZTo6TWVkaWFTYW1wbGUmKSBmaW5hbDsKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJs
ZShXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIGNvbnN0IFdURjo6TWVkaWFUaW1l
JiwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBXZWJDb3JlOjpBdWRp
b1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKKyAgICB2b2lkIGZldGNoRGF0YShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYsIGNv
bnN0IFN0cmluZyYgbWltZVR5cGUpPiYmKSBmaW5hbDsKKyAgICB2b2lkIHN0b3BSZWNvcmRpbmco
KSBmaW5hbDsKKworICAgIC8vIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpDbGllbnQKKyAgICB2
b2lkIHN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSopOworCisgICAgTWVkaWFSZWNvcmRlcklk
ZW50aWZpZXIgbV9pZGVudGlmaWVyOworCisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25u
ZWN0aW9uOworICAgIFN0cmluZyBtX3JlY29yZGVkQXVkaW9UcmFja0lEOworICAgIFN0cmluZyBt
X3JlY29yZGVkVmlkZW9UcmFja0lEOworCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNB
UmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOworICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiBtX2Rlc2NyaXB0aW9uIHsgfTsKKyAgICBpbnQ2NF90IG1fbnVtYmVyT2ZGcmFtZXMg
eyAwIH07Cit9OworCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OGI3Zjdl
NDdjNjAyYjFhZjk5NzQ4MjU0MmMyZDYzODMxYzcyZTMyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNw
cApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92aWRlci5oIgorCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRl
clByaXZhdGUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUmVjb3JkZXJQcml2YXRlLmg+CisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCitzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TWVkaWFSZWNvcmRl
clByaXZhdGU+IE1lZGlhUmVjb3JkZXJQcm92aWRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZh
dGUoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCit7CisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQorICAgIGlmICghbV91c2VHUFVQcm9jZXNzKQorICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShzdHJl
YW0pOworCisgICAgcmV0dXJuIG1ha2VVbmlxdWU8TWVkaWFSZWNvcmRlclByaXZhdGU+KHN0cmVh
bSk7CisjZWxzZQorICAgIHJldHVybiBXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNy
ZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKHN0cmVhbSk7CisjZW5kaWYgLy8gRU5BQkxFKEdQVV9Q
Uk9DRVNTKQorfQorI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92
aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRl
clByb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDQ1ZmFhNGJmMGU0Nzk3OGZmZjQ3YzM4NzVkZDY3YmY0
MWU0OTkzYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFSZWNvcmRlclByb3Zp
ZGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBNZWRpYVJlY29yZGVyUHJvdmlk
ZXIgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyIHsKK3B1Ymxp
YzoKKyAgICBNZWRpYVJlY29yZGVyUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CisKK3ByaXZhdGU6Cisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TWVk
aWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IFdlYkNv
cmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZSYpIGZpbmFsOworI2VuZGlmCit9OworCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDQ0ZDc2N2JjNjQ3
MjE4M2EyYzEzMTE3OTBiNzgwZGNjOWZjNTY5YTguLjI3ZDI5YzA3YjMzOGIzYjBmYmFmZmFkNWJh
NGY4YjYzNzVjNzU5ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIu
aCIKICNpbmNsdWRlICJMb2FkUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNp
bmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCIKICNpbmNsdWRlICJOZXRzY2FwZVBsdWdp
bi5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIK
ICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKQEAgLTQ2MCw3ICs0NjEsOCBA
QCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmNhY2hlU3RvcmFnZVByb3ZpZGVyKCksCiAgICAgICAgIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5
OjpjcmVhdGUoKnRoaXMpLAogICAgICAgICBXZWJDb29raWVKYXI6OmNyZWF0ZSgpLAotICAgICAg
ICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oKnRoaXMpCisgICAgICAg
IG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50PigqdGhpcyksCisgICAgICAg
IG1ha2VVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCiAgICAgKTsKICAgICBwYWdl
Q29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50KCp0aGlzKTsK
ICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbQppbmRleCA0YzQxODY0ZDg5ZjQwNTY3ZWQ4MWVkMmVmZWZiNTAxZjY3NTNk
Yjg0Li4xOWIyMjFjYjIyNzgzYzViNjRjMzUzZDAyODVhNDQ4ZjQ1M2QwYjY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xODAsNiArMTgwLDcgQEAK
ICNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgogI2ltcG9ydCA8V2ViQ29yZS9M
b2dJbml0aWFsaXphdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+
CisjaW1wb3J0IDxXZWJDb3JlL01lZGlhUmVjb3JkZXJQcm92aWRlci5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9NZW1vcnlDYWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9NZW1vcnlSZWxlYXNlLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgpAQCAtMTQ0OCw3ICsxNDQ5
LDggQEAgc3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNz
YXJ5KCkKICAgICAgICAgV2ViQ29yZTo6Q2FjaGVTdG9yYWdlUHJvdmlkZXI6OmNyZWF0ZSgpLAog
ICAgICAgICBCYWNrRm9yd2FyZExpc3Q6OmNyZWF0ZShzZWxmKSwKICAgICAgICAgV2ViQ29yZTo6
Q29va2llSmFyOjpjcmVhdGUoc3RvcmFnZVByb3ZpZGVyLmNvcHlSZWYoKSksCi0gICAgICAgIG1h
a2VVbmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50PihzZWxmKQorICAgICAgICBtYWtl
VW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oc2VsZiksCisgICAgICAgIG1ha2VV
bmlxdWVSZWY8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCiAgICAgKTsKICNpZiAh
UExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQg
PSBuZXcgV2ViQ2hyb21lQ2xpZW50KHNlbGYpOwpAQCAtMTcxNyw3ICsxNzE5LDggQEAgc3RhdGlj
IHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5KCkKICAgICAg
ICAgV2ViQ29yZTo6Q2FjaGVTdG9yYWdlUHJvdmlkZXI6OmNyZWF0ZSgpLAogICAgICAgICBCYWNr
Rm9yd2FyZExpc3Q6OmNyZWF0ZShzZWxmKSwKICAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpj
cmVhdGUoc3RvcmFnZVByb3ZpZGVyLmNvcHlSZWYoKSksCi0gICAgICAgIG1ha2VVbmlxdWVSZWY8
V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50PihzZWxmKQorICAgICAgICBtYWtlVW5pcXVlUmVmPFdl
YlByb2dyZXNzVHJhY2tlckNsaWVudD4oc2VsZiksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2Vi
Q29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCiAgICAgKTsKICAgICBwYWdlQ29uZmlndXJh
dGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50SU9TKHNlbGYpOwogI2lmIEVO
QUJMRShEUkFHX1NVUFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IGVi
MDg2NjQ4Njc3OTE1NjgxZjNhYzNkYzgwMzgyNGRhMDg5NzFiMGYuLmU5NTczZDJiNmU4YmE0YTRh
YTAzNGZkMDA5OTE4YTE1MzgxZDU0ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3Bw
CkBAIC0xMjksNiArMTI5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0xvZ0luaXRpYWxpemF0aW9u
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dnaW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NSU1F
VHlwZVJlZ2lzdHJ5Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVJlY29yZGVyUHJvdmlkZXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL01lbW9yeUNhY2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9N
ZW1vcnlSZWxlYXNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24u
aD4KQEAgLTMxMTgsMTAgKzMxMTksMTEgQEAgSFJFU1VMVCBXZWJWaWV3Ojppbml0V2l0aEZyYW1l
KFJFQ1QgZnJhbWUsIF9Jbl8gQlNUUiBmcmFtZU5hbWUsIF9Jbl8gQlNUUiBncm91cE4KICAgICAg
ICAgbWFrZVVuaXF1ZVJlZjxXZWJFZGl0b3JDbGllbnQ+KHRoaXMpLAogICAgICAgICBTb2NrZXRQ
cm92aWRlcjo6Y3JlYXRlKCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlk
ZXI+KCksCi0gICAgICAgIFdlYkNvcmU6OkNhY2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUoKSwK
KyAgICAgICAgQ2FjaGVTdG9yYWdlUHJvdmlkZXI6OmNyZWF0ZSgpLAogICAgICAgICBCYWNrRm9y
d2FyZExpc3Q6OmNyZWF0ZSgpLAogICAgICAgICBDb29raWVKYXI6OmNyZWF0ZShzdG9yYWdlUHJv
dmlkZXIuY29weVJlZigpKSwKLSAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNr
ZXJDbGllbnQ+KCkKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGll
bnQ+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCiAg
ICAgKTsKICAgICBjb25maWd1cmF0aW9uLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGll
bnQodGhpcyk7CiAgICAgY29uZmlndXJhdGlvbi5jb250ZXh0TWVudUNsaWVudCA9IG5ldyBXZWJD
b250ZXh0TWVudUNsaWVudCh0aGlzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386961</attachid>
            <date>2020-01-07 05:00:28 -0800</date>
            <delta_ts>2020-01-07 06:37:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205802-20200107140024.patch</filename>
            <type>text/plain</type>
            <size>104250</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGMzMmFmOWU2MDE0ZmQ3
MjUzZGYxNjJiZGJjODFiNTM3M2FmNjk4ZS4uYWM3MjRmMjMxZTI1MGJjMzU5N2NkOGM0N2VjODZj
NGYwNjRhMjc3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTAxLTA3ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgTWVkaWFS
ZWNvcmRlciBiYWNrZW5kIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTgwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHBhZ2UgcHJvdmlkZXIgdG8gY3JlYXRlIE1lZGlh
UmVjb3JkZXJQcml2YXRlIGltcGxlbWVudGF0aW9ucy4KKyAgICAgICAgVGhpcyBpcyB1c2VkIGJ5
IFdlYktpdCBsYXllciB0byBpbXBsZW1lbnQgdGhpcyBpbiBHUFVQcm9jZXNzLgorCisgICAgICAg
IFVwZGF0ZSBNZWRpYVJlY29yZGVyUHJpdmF0ZSBieSBhZGRpbmcgYW4gZXJyb3IgY2FsbGJhY2sg
dGhhdCBpcyB1c2VkIHRvIHN1cmZhY2UgZXJyb3JzIGFzIE1lZGlhUmVjb3JkZXIgZXJyb3IgZXZl
bnRzLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMgYXMgTWVkaWFSZWNvcmRl
ciBpbXBsZW1lbnRhdGlvbiBpbiBXZWJLaXRUZXN0UnVubmVyIHdpbGwgdXNlIEdQVVByb2Nlc3Mu
CisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFyZWNv
cmRlci9NZWRpYVJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXI6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyOjpjcmVhdGVNZWRpYVJl
Y29yZGVyUHJpdmF0ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVj
b3JkZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclBy
b3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlk
ZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhZ2VD
b25maWd1cmF0aW9uV2l0aEVtcHR5Q2xpZW50cyk6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZTo6bWVkaWFSZWNvcmRlclByb3ZpZGVyKToKKyAgICAgICAg
KiBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25m
aWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbik6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmln
dXJhdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVj
b3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjcmVhdGUpOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmg6CisgICAgICAgICog
dGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpyZXNl
dFRvQ29uc2lzdGVudFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2V0VXNl
R1BVUHJvY2Vzc0ZvcldlYlJUQyk6CisKIDIwMjAtMDEtMDcgIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gQWRkIEFQSSB0byBz
ZXQgcHVycG9zZSBhbmQgaGludHMgb2YgYWN0aXZlIGVkaXRhYmxlIGVsZW1lbnQgdG8gaW5wdXQg
bWV0aG9kcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCA4ZWY4NmQyMTdhZWVmMTE5ZjE3Y2I1MzhhNTVjZTJiM2M0NGEz
NzhlLi44ZjBkMWYyYmIzMmM2YmMyNzdkN2I2MTdlNGZlZmVlMjg4ZjMzZTJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDcwIEBACisyMDIwLTAxLTA3ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgTWVkaWFSZWNvcmRlciBiYWNrZW5kIGluIEdQVVBy
b2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NTgwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciBzZW5kaW5nIGF1ZGlvL3ZpZGVvIHRyYWNrcyB0byByZWNvcmQgZnJvbSBX
ZWJQcm9jZXNzIHRvIEdQVVByb2Nlc3MuCisgICAgICAgIEFkZCBhIE1lZGlhUmVjb3JkZXJQcml2
YXRlIGltcGxlbWVudGF0aW9uIHRoYXQgc3VwcG9ydHMgc2VuZGluZyBvbmUgYXVkaW8gdHJhY2sg
YW5kL29yIG9uZSB2aWRlbyB0cmFjayB0byBHUFVQcm9jZXNzCisgICAgICAgIGFuZCBzdG9wcGlu
Zy9mZXRjaGluZyBkYXRhIGZyb20gdGhlIHJlbW90ZSByZWNvcmRlciBpbiBHUFVQcm9jZXNzLgor
CisgICAgICAgIEluIEdQVVByb2Nlc3MsIGltcGxlbWVudCB0aGUgcmVtb3RlIHJlY29yZGVyIHVz
aW5nIHRoZSBleGlzdGluZyBXZWJDb3JlIHJlY29yZGVyIHdyaXRlci4KKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjp1c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6R1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bWVkaWFSZWNvcmRlcnMpOgorICAgICAgICAoV2ViS2l0
OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAg
ICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogR1BV
UHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluOgorICAgICAgICAq
IEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6UmVtb3RlTWVkaWFSZWNvcmRlcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXI6On5SZW1vdGVNZWRpYVJlY29yZGVyKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6c3RvcmFnZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OmF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxl
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6dmlkZW9TYW1wbGVBdmFp
bGFibGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyOjpmZXRjaERhdGEp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyOjpzdG9wUmVjb3JkaW5nKToK
KyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmg6IEFkZGVk
LgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIubWVzc2Fn
ZXMuaW46IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVj
b3JkZXJzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXJz
OjpSZW1vdGVNZWRpYVJlY29yZGVycyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVj
b3JkZXJzOjp+UmVtb3RlTWVkaWFSZWNvcmRlcnMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVN
ZWRpYVJlY29yZGVyczo6ZGlkUmVjZWl2ZVJlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcnM6OmNyZWF0ZVJlY29yZGVyKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcnM6OnJlbGVhc2VSZWNvcmRlcik6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMuaDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXJzOjpkaWRSZWNlaXZlTWVzc2Fn
ZUZyb21XZWJQcm9jZXNzKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRp
YVJlY29yZGVycy5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0Nv
Y29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcjo6Y3JlYXRlTWVk
aWFSZWNvcmRlclByaXZhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UmVjb3JkZXJQcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJy
dGMvTWVkaWFSZWNvcmRlcklkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjp+TWVkaWFSZWNvcmRlclByaXZhdGUp
OgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c2FtcGxlQnVmZmVyVXBk
YXRlZCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjphdWRpb1NhbXBs
ZXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c3Rv
cmFnZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6ZmV0
Y2hEYXRhKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6OnN0b3BSZWNv
cmRpbmcpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJp
dmF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNv
cmRlclByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQ
cm92aWRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaDogQWRkZWQuCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjptX292ZXJy
aWRkZW5NZWRpYVR5cGUpOgorCiAyMDIwLTAxLTA3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIEFkZCBBUEkgdG8gcmV0cmll
dmUgYW5kIGRlbGV0ZSBzdXJyb3VuZGluZyB0ZXh0IGZvciBpbnB1dCBtZXRob2RzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNGM0NGNkZTg1MTdhMmViODNmMDE1NmQzMzUwMWMxZDhj
MmE5YmExZi4uNDMzNGU5YjU0NGZhZDg4Y2VmMGQ5ODY5Y2VhYjM4YjZmMGM2Yzk4NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAxLTA3ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgTWVkaWFS
ZWNvcmRlciBiYWNrZW5kIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTgwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtX
ZWJWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6Z3JvdXBOYW1lOl0pOgor
ICAgICAgICAoLVtXZWJWaWV3IGluaXRTaW1wbGVIVE1MRG9jdW1lbnRXaXRoU3R5bGU6ZnJhbWU6
cHJlZmVyZW5jZXM6Z3JvdXBOYW1lOl0pOgorCiAyMDIwLTAxLTA3ICBDYXJsb3MgR2FyY2lhIENh
bXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIEFkZCBBUEkg
dG8gc2V0IHB1cnBvc2UgYW5kIGhpbnRzIG9mIGFjdGl2ZSBlZGl0YWJsZSBlbGVtZW50IHRvIGlu
cHV0IG1ldGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCAxOTU1ODIzZGFlOGFm
ZWU1YTk4MzYwMTYwODMxMmFlNGRjZTVkYjJmLi4zOWVlZjI2Y2Q4NTEzYzdiMjdhYmIyZDgyNzEx
YTZmNTgwYWNiZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMjAtMDEtMDcgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIEltcGxlbWVudCBNZWRpYVJlY29yZGVyIGJhY2tlbmQgaW4gR1BVUHJvY2VzcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1ODAyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoK
KyAgICAgICAgKFdlYlZpZXc6OmluaXRXaXRoRnJhbWUpOgorCiAyMDIwLTAxLTA3ICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVd
IEFkZCBBUEkgdG8gc2V0IHB1cnBvc2UgYW5kIGhpbnRzIG9mIGFjdGl2ZSBlZGl0YWJsZSBlbGVt
ZW50IHRvIGlucHV0IG1ldGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDQ2NjE5YzY1ZDZiM2Mz
ZDgxZmY0YzJlNTAwNTIxNmFhNDk2MmVjMTQuLjgxMmVkNDY5ZDIwOTA4NTU4Y2RkN2NkZTgyODNj
ZWU4ODZiOGVjYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysr
IGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtODAsNiArODAsOCBAQCBzZXQoV2Vi
Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0lEQlJlc3VsdERhdGEuaAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJUcmFu
c2FjdGlvbkluZm8uaAogCisgICAgTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQ
cm92aWRlci5oCisKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25FdmVudHMu
aAogICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbk1ldGFkYXRhLmgKICAgICBN
b2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmgKQEAgLTExNTUsNiAr
MTE1Nyw4IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybU9wZXJhdGlvbnMuaAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaAogCisgICAgcGxh
dGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCisKICAgICBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9D
YXB0dXJlRGV2aWNlTWFuYWdlci5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFDb25z
dHJhaW50cy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlci5jcHAKaW5kZXggOTkxZWEyYTBmM2QyMjQ0ZGYxZThlZTI3Zjc5MDg2
ZDNlYzQzZDZmMC4uNDRjMzE4NzMzOGMzOWJlMjgxMjg5NGUyMzJjNmI4MWRmOGUyNzkyNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3Jk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJl
Y29yZGVyLmNwcApAQCAtMzQsNiArMzQsOCBAQAogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNp
bmNsdWRlICJNZWRpYVJlY29yZGVyRXJyb3JFdmVudC5oIgogI2luY2x1ZGUgIk1lZGlhUmVjb3Jk
ZXJQcml2YXRlLmgiCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgiCisjaW5jbHVk
ZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIldpbmRvd0V2
ZW50TG9vcC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CkBAIC01MCwxMSAr
NTIsMTQgQEAgY3JlYXRvckZ1bmN0aW9uIE1lZGlhUmVjb3JkZXI6Om1fY3VzdG9tQ3JlYXRvciA9
IG51bGxwdHI7CiAKIEV4Y2VwdGlvbk9yPFJlZjxNZWRpYVJlY29yZGVyPj4gTWVkaWFSZWNvcmRl
cjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgUmVmPE1lZGlhU3RyZWFtPiYmIHN0cmVhbSwg
T3B0aW9ucyYmIG9wdGlvbnMpCiB7Ci0gICAgYXV0byBwcml2YXRlSW5zdGFuY2UgPSBNZWRpYVJl
Y29yZGVyOjpnZXRQcml2YXRlSW1wbChzdHJlYW0tPnByaXZhdGVTdHJlYW0oKSk7CisgICAgYXV0
byBwcml2YXRlSW5zdGFuY2UgPSBNZWRpYVJlY29yZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJp
dmF0ZShkb2N1bWVudCwgc3RyZWFtLT5wcml2YXRlU3RyZWFtKCkpOwogICAgIGlmICghcHJpdmF0
ZUluc3RhbmNlKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3Is
ICJUaGUgTWVkaWFSZWNvcmRlciBpcyB1bnN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtIl9zIH07
CiAgICAgYXV0byByZWNvcmRlciA9IGFkb3B0UmVmKCpuZXcgTWVkaWFSZWNvcmRlcihkb2N1bWVu
dCwgV1RGTW92ZShzdHJlYW0pLCBXVEZNb3ZlKHByaXZhdGVJbnN0YW5jZSksIFdURk1vdmUob3B0
aW9ucykpKTsKICAgICByZWNvcmRlci0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmVjb3JkZXIt
Pm1fcHJpdmF0ZS0+c2V0RXJyb3JDYWxsYmFjayhbcmVjb3JkZXIgPSByZWNvcmRlci5jb3B5UmVm
KCldKGF1dG8mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgICAgICByZWNvcmRlci0+ZGlzcGF0
Y2hFcnJvcihXVEZNb3ZlKCpleGNlcHRpb24pKTsKKyAgICB9KTsKICAgICByZXR1cm4gcmVjb3Jk
ZXI7CiB9CiAKQEAgLTYzLDE3ICs2OCwxNiBAQCB2b2lkIE1lZGlhUmVjb3JkZXI6OnNldEN1c3Rv
bVByaXZhdGVSZWNvcmRlckNyZWF0b3IoY3JlYXRvckZ1bmN0aW9uIGNyZWF0b3IpCiAgICAgbV9j
dXN0b21DcmVhdG9yID0gY3JlYXRvcjsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3Jk
ZXJQcml2YXRlPiBNZWRpYVJlY29yZGVyOjpnZXRQcml2YXRlSW1wbChjb25zdCBNZWRpYVN0cmVh
bVByaXZhdGUmIHN0cmVhbSkKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4g
TWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBpZiAobV9jdXN0
b21DcmVhdG9yKQogICAgICAgICByZXR1cm4gbV9jdXN0b21DcmVhdG9yKCk7CiAgICAgCi0jaWYg
UExBVEZPUk0oQ09DT0EpCi0gICAgcmV0dXJuIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6
Y3JlYXRlKHN0cmVhbSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzdHJlYW0pOwotICAgIHJl
dHVybiBudWxscHRyOwotI2VuZGlmCisgICAgYXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKTsK
KyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIHBh
Z2UtPm1lZGlhUmVjb3JkZXJQcm92aWRlcigpLmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKHN0
cmVhbSk7CiB9CiAKIE1lZGlhUmVjb3JkZXI6Ok1lZGlhUmVjb3JkZXIoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBSZWY8TWVkaWFTdHJlYW0+JiYgc3RyZWFtLCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNv
cmRlclByaXZhdGU+JiYgcHJpdmF0ZUltcGwsIE9wdGlvbnMmJiBvcHRpb24pCkBAIC0xODIsMTEg
KzE4NiwxNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXI6OmRpZEFkZE9yUmVtb3ZlVHJhY2soKQogICAg
ICAgICBpZiAoIW1faXNBY3RpdmUgfHwgc3RhdGUoKSA9PSBSZWNvcmRpbmdTdGF0ZTo6SW5hY3Rp
dmUpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHN0b3BSZWNvcmRpbmdJbnRlcm5hbCgp
OwotICAgICAgICBhdXRvIGV2ZW50ID0gTWVkaWFSZWNvcmRlckVycm9yRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkuZXJyb3JFdmVudCwgRXhjZXB0aW9uIHsgVW5rbm93bkVycm9yLCAiVHJhY2sg
Y2Fubm90IGJlIGFkZGVkIHRvIG9yIHJlbW92ZWQgZnJvbSB0aGUgTWVkaWFTdHJlYW0gd2hpbGUg
cmVjb3JkaW5nIGlzIGhhcHBlbmluZyJfcyB9KTsKLSAgICAgICAgZGlzcGF0Y2hFdmVudChXVEZN
b3ZlKGV2ZW50KSk7CisgICAgICAgIGRpc3BhdGNoRXJyb3IoRXhjZXB0aW9uIHsgVW5rbm93bkVy
cm9yLCAiVHJhY2sgY2Fubm90IGJlIGFkZGVkIHRvIG9yIHJlbW92ZWQgZnJvbSB0aGUgTWVkaWFT
dHJlYW0gd2hpbGUgcmVjb3JkaW5nIGlzIGhhcHBlbmluZyJfcyB9KTsKICAgICB9KTsKIH0KIAor
dm9pZCBNZWRpYVJlY29yZGVyOjpkaXNwYXRjaEVycm9yKEV4Y2VwdGlvbiYmIGV4Y2VwdGlvbikK
K3sKKyAgICBpZiAoIW1faXNBY3RpdmUpCisgICAgICAgIHJldHVybjsKKyAgICBkaXNwYXRjaEV2
ZW50KE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZl
bnQsIFdURk1vdmUoZXhjZXB0aW9uKSkpOworfQorCiB2b2lkIE1lZGlhUmVjb3JkZXI6OnRyYWNr
RW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQogewogICAgIGF1dG8gcG9zaXRpb24gPSBt
X3RyYWNrcy5maW5kTWF0Y2hpbmcoW10oYXV0byYgdHJhY2spIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCmluZGV4IGViNmY5
NmE2YWUwYTM5YmExMGI1MjBiYjk4Y2M0ZWUxYjUzOTM3NDQuLmU5MGI5OWI5NTc1NjVjYzAwNjgz
M2Q5NjNhMWY1NTA4OTg3NjA1ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaApAQCAtNzEsMTEgKzcxLDExIEBAIHB1Ymxp
YzoKICAgICAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzdGFydFJlY29yZGluZyhPcHRpb25hbDxp
bnQ+KTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzdG9wUmVjb3JkaW5nKCk7Ci0gICAgCisKIHBy
aXZhdGU6CiAgICAgTWVkaWFSZWNvcmRlcihEb2N1bWVudCYsIFJlZjxNZWRpYVN0cmVhbT4mJiwg
c3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiYmLCBPcHRpb25zJiYgPSB7IH0p
OwogCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gZ2V0
UHJpdmF0ZUltcGwoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJik7CisgICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlTWVkaWFSZWNvcmRlclByaXZh
dGUoRG9jdW1lbnQmLCBjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmKTsKICAgICAKICAgICBEb2N1
bWVudCogZG9jdW1lbnQoKSBjb25zdDsKIApAQCAtOTEsNyArOTEsOSBAQCBwcml2YXRlOgogICAg
IGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKICAgICAKICAg
ICB2b2lkIHN0b3BSZWNvcmRpbmdJbnRlcm5hbCgpOwotICAgIAorCisgICAgdm9pZCBkaXNwYXRj
aEVycm9yKEV4Y2VwdGlvbiYmKTsKKwogICAgIC8vIE1lZGlhU3RyZWFtOjpPYnNlcnZlcgogICAg
IHZvaWQgZGlkQWRkT3JSZW1vdmVUcmFjaygpIGZpbmFsOwogICAgIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclBy
b3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNjRmY2NjMzY4YTYxMjdkZjk5MWZiZmQzZGZjMWJmZjMz
OTBhYzAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlk
ZXIuaCIKKworI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlLmgiCisKKyNpZiBQTEFURk9S
TShDT0NPQSkKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaCIKKyNlbmRp
ZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorc3Rk
Ojp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBNZWRpYVJlY29yZGVyUHJvdmlkZXI6
OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3Ry
ZWFtKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHJldHVybiBNZWRpYVJlY29yZGVyUHJp
dmF0ZUFWRkltcGw6OmNyZWF0ZShzdHJlYW0pOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc3Ry
ZWFtKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgorfQorI2VuZGlmCisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
UHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJl
Y29yZGVyUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YTkzYWY0ODY3NjZkNzVlYTg0YjVmNWViNjky
MjQxOTE3MTBlMDdhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5oCkBAIC0wLDAgKzEsNDkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBN
ZWRpYVJlY29yZGVyUHJpdmF0ZTsKK2NsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZTsKKworY2xhc3Mg
V0VCQ09SRV9FWFBPUlQgTWVkaWFSZWNvcmRlclByb3ZpZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBNZWRpYVJlY29yZGVyUHJvdmlkZXIoKSA9IGRlZmF1
bHQ7CisgICAgdmlydHVhbCB+TWVkaWFSZWNvcmRlclByb3ZpZGVyKCkgPSBkZWZhdWx0OworCisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxNZWRp
YVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoY29uc3QgTWVkaWFT
dHJlYW1Qcml2YXRlJik7CisjZW5kaWYKKworICAgIHZvaWQgc2V0VXNlR1BVUHJvY2Vzcyhib29s
IHZhbHVlKSB7IG1fdXNlR1BVUHJvY2VzcyA9IHZhbHVlOyB9CisKK3Byb3RlY3RlZDoKKyAgICBi
b29sIG1fdXNlR1BVUHJvY2VzcyB7IGZhbHNlIH07Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4
IDYwYmJiZmQ0NmVlODc5NjhmZDJjMWVmYTVmZjc3YjdlZjBhYzRkNjguLjQxMTIxNTU3YWU2ZjM1
ZGI5YWQ1ZjRjMWU4YWNjY2EwODY2M2U2ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNTEsNiArMTUx
LDcgQEAgTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcAogCiBNb2R1
bGVzL21lZGlhcmVjb3JkZXIvQmxvYkV2ZW50LmNwcAogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXIuY3BwCitNb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3Zp
ZGVyLmNwcAogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmNw
cAogCiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9IVE1MTWVkaWFFbGVtZW50TWVkaWFTZXNzaW9uLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGVjNDA4NGQ5ODQ1OGMzNTMyNDI1YmM5ZWVmNzUzN2Y1MDYzNWIzNTAuLjQ1MTRhZjZj
NTIzOTEwMTE4Nzc5M2JmOWRmZTM4ZWFjYTg2MzRlNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExMDEsNiArMTEwMSw3IEBA
CiAJCTQxNzYxMkIwMUUzQTk5NDAwMEMzRDgxRCAvKiBMaWJXZWJSVENNZWRpYUVuZHBvaW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc2MTJBQzFF
M0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oICovOyB9OwogCQk0MTc2
MTJCMTFFM0E5OTQwMDBDM0Q4MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzYxMkFE
MUUzQTk5M0IwMEMzRDgxRCAvKiBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwICov
OyB9OwogCQk0MTc2MTJCMjFFM0E5OTQwMDBDM0Q4MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rp
b25CYWNrZW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTc2MTJBRTFFM0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNr
ZW5kLmggKi87IH07CisJCTQxNzZFODk2MjNDMzUzN0IwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVy
UHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxNzZFODhGMjNDMzQ4RDIwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTdEQTZEOTEz
NzM0RTZFMDA3QzU3RkIgLyogSW50ZXJuYWxzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxN0RBNENGMTM3MzQzMjYwMDdDNTdGQiAvKiBJbnRlcm5h
bHMuY3BwICovOyB9OwogCQk0MTdEQTZEQTEzNzM0RTZFMDA3QzU3RkIgLyogSW50ZXJuYWxzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTdEQTRDRTEz
NzM0MzI2MDA3QzU3RkIgLyogSW50ZXJuYWxzLmggKi87IH07CiAJCTQxN0RBNzFEMTM3MzVERkEw
MDdDNTdGQiAvKiBKU0ludGVybmFscy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTdEQTcxQjEzNzM1REZBMDA3QzU3RkIgLyogSlNJbnRlcm5hbHMu
Y3BwICovOyB9OwpAQCAtMTM3NCw5ICsxMzc1LDkgQEAKIAkJNEJERUEzMkMyMTgwMzNFQjAwNTJE
RkNEIC8qIEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEJERUEzMkIyMTgwMzNFQjAwNTJERkNEIC8qIEpTV29y
a2xldEdsb2JhbFNjb3BlQmFzZS5oICovOyB9OwogCQk0RDNCMDBBQjIxNUQ2OUE3MDA3NkI5ODMg
LyogTWVkaWFSZWNvcmRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNEQzQjAwQTkyMTVENjlBNzAwNzZCOTgzIC8qIE1lZGlhUmVjb3JkZXIuaCAqLzsg
fTsKIAkJNEQzQjAwQUYyMTVENkE2OTAwNzZCOTgzIC8qIEJsb2JFdmVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEQzQjAwQUQyMTVENkE2OTAwNzZC
OTgzIC8qIEJsb2JFdmVudC5oICovOyB9OwotCQk0RDNCNTAxNjIxN0U1OEI3MDA2NjVEQjEgLyog
TWVkaWFSZWNvcmRlclByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDREM0I1MDE0MjE3RTU4QjcwMDY2NURCMSAvKiBNZWRpYVJlY29yZGVyUHJp
dmF0ZS5oICovOyB9OworCQk0RDNCNTAxNjIxN0U1OEI3MDA2NjVEQjEgLyogTWVkaWFSZWNvcmRl
clByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDREM0I1MDE0MjE3RTU4QjcwMDY2NURCMSAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTRENzNGOTQ2MjE4
QkM1RkEwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRENzNGOTQ0MjE4QkM1RkEwMDNB
M0VENiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaCAqLzsgfTsKLQkJNEQ3M0Y5NEUy
MThDNEE4NzAwM0EzRUQ2IC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRENzNGOTRDMjE4QzRB
ODcwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmggKi87IH07CisJ
CTRENzNGOTRFMjE4QzRBODcwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNv
Y29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RDcz
Rjk0QzIxOEM0QTg3MDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTREQjcx
MzBEMjE2RUNCNEQwMDk2QTRERCAvKiBNZWRpYVJlY29yZGVyRXJyb3JFdmVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNERCNzEzMEMyMTZFQzJCRDAw
OTZBNEREIC8qIE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmggKi87IH07CiAJCTRFMTk1OTIyMEEz
OURBQkEwMDIyMEZFNSAvKiBNZWRpYUZlYXR1cmVOYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEUxOTU5MjAwQTM5REFCQTAwMjIwRkU1IC8qIE1l
ZGlhRmVhdHVyZU5hbWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNEUxOTU5MkEwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRFMTk1OTI0MEEzOURB
Q0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTczOTksNiArNzQwMCw4IEBACiAJCTQxNzYxMkFFMUUzQTk5
M0IwMEMzRDgxRCAvKiBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmg7
IHBhdGggPSBsaWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzY5MDAzMjJGQ0Q4RjIwMEIxNTc2RCAvKiBNZWRp
YVNvdXJjZVJlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlh
U291cmNlUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3NjkwMDQy
MkZDRDhGMjAwQjE1NzZEIC8qIE1lZGlhU291cmNlUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFTb3VyY2VSZWdpc3RyeS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODhGMjNDMzQ4RDIwMDNFODNGRSAvKiBNZWRpYVJl
Y29yZGVyUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFS
ZWNvcmRlclByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODkx
MjNDMzRCNzUwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDE3N0Y1MUMyMzgyNTQ0MDAwQzA0NDg2IC8qIEJhc2VBdWRpb1NoYXJlZFVuaXQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFzZUF1ZGlvU2hhcmVk
VW5pdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzdGNTFFMjM4MjU0NUUw
MEMwNDQ4NiAvKiBCYXNlQXVkaW9TaGFyZWRVbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEJhc2VBdWRpb1NoYXJlZFVuaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDE3REE0Q0UxMzczNDMyNjAwN0M1N0ZCIC8qIEludGVybmFscy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRlcm5hbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE4OTMyLDYgKzE4OTM1LDggQEAKIAkJCQk0REI3MTMwRTIxNkVFQkFFMDA5NkE0
REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuY3BwICovLAogCQkJCTREQjcxMzBDMjE2RUMy
QkQwMDk2QTRERCAvKiBNZWRpYVJlY29yZGVyRXJyb3JFdmVudC5oICovLAogCQkJCTREQjcxMzBB
MjE2RUMyQkMwMDk2QTRERCAvKiBNZWRpYVJlY29yZGVyRXJyb3JFdmVudC5pZGwgKi8sCisJCQkJ
NDE3NkU4OTEyM0MzNEI3NTAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAgKi8s
CisJCQkJNDE3NkU4OEYyM0MzNDhEMjAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92aWRlci5o
ICovLAogCQkJKTsKIAkJCXBhdGggPSBtZWRpYXJlY29yZGVyOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKQEAgLTMxNDc0LDYgKzMxNDc5LDcgQEAKIAkJCQk0RDNCNTAxNjIxN0U1OEI3MDA2
NjVEQjEgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTRENzNG
OTQ2MjE4QkM1RkEwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTRENzNGOTRFMjE4QzRBODcwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlckNvY29hLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTc2RTg5NjIzQzM1MzdC
MDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
OTA4NDNEMDFCMThFNDdEMDBCNjg1NjQgLyogTWVkaWFSZW1vdGVDb250cm9scy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0Q4QUNBOEYxRDIzOTcxOTAwRUNDNTlFIC8qIE1lZGlhUmVtb3RlU29mdExp
bmsuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFRUZDRDdBMTlEQjMxRjcwMDM4NzZENyAvKiBNZWRp
YVJlc291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5jcHAKaW5kZXggODRlNGUxOGMzZjYzOGVlMzNkMjgwMTg0ZGRkOGNhYThhYTBlNDky
Mi4uY2I1MWYzNmZlYmZiMDgxZTJiNmY3NGVlNmU0OTAxOGNkOTcxMDRkZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTUzLDYgKzUzLDggQEAKICNpbmNsdWRlICJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDbGllbnQuaCIKICNp
bmNsdWRlICJMaWJXZWJSVENQcm92aWRlci5oIgorI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2
YXRlLmgiCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTmV0
d29ya1N0b3JhZ2VTZXNzaW9uLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VD
b25maWd1cmF0aW9uLmgiCkBAIC01NzEsMTAgKzU3MywxOSBAQCBSZWY8U3RvcmFnZU5hbWVzcGFj
ZT4gRW1wdHlTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI6OmNyZWF0ZVRyYW5zaWVudExvY2FsU3Rv
cmFnZQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5U3RvcmFnZU5hbWVzcGFjZSB7IHNl
c3Npb25JRCB9KTsKIH0KIAotY2xhc3MgRW1wdHlTdG9yYWdlU2Vzc2lvblByb3ZpZGVyIDogcHVi
bGljIFN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIgeworY2xhc3MgRW1wdHlTdG9yYWdlU2Vzc2lvblBy
b3ZpZGVyIGZpbmFsIDogcHVibGljIFN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIgewogICAgIE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbiogc3RvcmFnZVNlc3Npb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBu
dWxscHRyOyB9CiB9OwogCitjbGFzcyBFbXB0eU1lZGlhUmVjb3JkZXJQcm92aWRlciBmaW5hbCA6
IHB1YmxpYyBNZWRpYVJlY29yZGVyUHJvdmlkZXIgeworcHVibGljOgorICAgIEVtcHR5TWVkaWFS
ZWNvcmRlclByb3ZpZGVyKCkgPSBkZWZhdWx0OworcHJpdmF0ZToKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRl
TWVkaWFSZWNvcmRlclByaXZhdGUoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJikgZmluYWwgeyBy
ZXR1cm4gbnVsbHB0cjsgfQorI2VuZGlmCit9OworCiBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29u
ZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewog
ICAgIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uIHsKQEAgLTU4NSw3ICs1OTYs
OCBAQCBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgICAgICBDYWNoZVN0b3JhZ2VQcm92aWRlcjo6
Y3JlYXRlKCksCiAgICAgICAgIGFkb3B0UmVmKCpuZXcgRW1wdHlCYWNrRm9yd2FyZENsaWVudCks
CiAgICAgICAgIENvb2tpZUphcjo6Y3JlYXRlKGFkb3B0UmVmKCpuZXcgRW1wdHlTdG9yYWdlU2Vz
c2lvblByb3ZpZGVyKSksCi0gICAgICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlQcm9ncmVzc1RyYWNr
ZXJDbGllbnQ+KCkKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0eVByb2dyZXNzVHJhY2tlckNs
aWVudD4oKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0eU1lZGlhUmVjb3JkZXJQcm92aWRl
cj4oKQogICAgIH07CiAKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlDaHJvbWVDbGll
bnQ+IGR1bW15Q2hyb21lQ2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNjNjMDUzNDM3OThk
MzEwMmQ4MDMyZDM1NzE5M2NjOWJhOTM3NjYxOS4uMDEwMjc5ZmVmYzQ1Zjk4NmYyODA1YmU3N2Jm
M2NjZGY3MWU1MWRjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0yNDYsNiArMjQ2LDcgQEAgUGFn
ZTo6UGFnZShQYWdlQ29uZmlndXJhdGlvbiYmIHBhZ2VDb25maWd1cmF0aW9uKQogI2lmIEVOQUJM
RShTUEVFQ0hfU1lOVEhFU0lTKQogICAgICwgbV9zcGVlY2hTeW50aGVzaXNDbGllbnQoV1RGTW92
ZShwYWdlQ29uZmlndXJhdGlvbi5zcGVlY2hTeW50aGVzaXNDbGllbnQpKQogI2VuZGlmCisgICAg
LCBtX21lZGlhUmVjb3JkZXJQcm92aWRlcigoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5tZWRp
YVJlY29yZGVyUHJvdmlkZXIpKSkKICAgICAsIG1fbGliV2ViUlRDUHJvdmlkZXIoV1RGTW92ZShw
YWdlQ29uZmlndXJhdGlvbi5saWJXZWJSVENQcm92aWRlcikpCiAgICAgLCBtX3ZlcnRpY2FsU2Ny
b2xsRWxhc3RpY2l0eShTY3JvbGxFbGFzdGljaXR5QWxsb3dlZCkKICAgICAsIG1faG9yaXpvbnRh
bFNjcm9sbEVsYXN0aWNpdHkoU2Nyb2xsRWxhc3RpY2l0eUFsbG93ZWQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmlu
ZGV4IDJjM2Y3YzM0MzM4N2ZiNDhjMmY1NWUzZWE2ZTk1YzNlOWY1NDc2NTAuLmUxZjI3Y2ZjOGNj
OTc1OTNjYWUyNTRkNmU4ZTY1MDdjYWU3MGUyYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0xMTAsNiAr
MTEwLDcgQEAgY2xhc3MgTGliV2ViUlRDUHJvdmlkZXI7CiBjbGFzcyBMb3dQb3dlck1vZGVOb3Rp
ZmllcjsKIGNsYXNzIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcjsKIGNsYXNzIE1lZGlhUGxheWJhY2tU
YXJnZXQ7CitjbGFzcyBNZWRpYVJlY29yZGVyUHJvdmlkZXI7CiBjbGFzcyBQYWdlQ29uZmlndXJh
dGlvbjsKIGNsYXNzIFBhZ2VDb25zb2xlQ2xpZW50OwogY2xhc3MgUGFnZURlYnVnZ2FibGU7CkBA
IC01ODQsNiArNTg1LDcgQEAgcHVibGljOgogICAgIERhdGFiYXNlUHJvdmlkZXImIGRhdGFiYXNl
UHJvdmlkZXIoKSB7IHJldHVybiBtX2RhdGFiYXNlUHJvdmlkZXI7IH0KICAgICBDYWNoZVN0b3Jh
Z2VQcm92aWRlciYgY2FjaGVTdG9yYWdlUHJvdmlkZXIoKSB7IHJldHVybiBtX2NhY2hlU3RvcmFn
ZVByb3ZpZGVyOyB9CiAgICAgU29ja2V0UHJvdmlkZXImIHNvY2tldFByb3ZpZGVyKCkgeyByZXR1
cm4gbV9zb2NrZXRQcm92aWRlcjsgfQorICAgIE1lZGlhUmVjb3JkZXJQcm92aWRlciYgbWVkaWFS
ZWNvcmRlclByb3ZpZGVyKCkgeyByZXR1cm4gbV9tZWRpYVJlY29yZGVyUHJvdmlkZXI7IH0KICAg
ICBDb29raWVKYXImIGNvb2tpZUphcigpIHsgcmV0dXJuIG1fY29va2llSmFyLmdldCgpOyB9CiAK
ICAgICBTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXImIHN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcigp
IHsgcmV0dXJuIG1fc3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmdldCgpOyB9CkBAIC03OTUsNiAr
Nzk3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoU3ludGhlc2lzQ2xp
ZW50PiBtX3NwZWVjaFN5bnRoZXNpc0NsaWVudDsKICNlbmRpZgogCisgICAgVW5pcXVlUmVmPE1l
ZGlhUmVjb3JkZXJQcm92aWRlcj4gbV9tZWRpYVJlY29yZGVyUHJvdmlkZXI7CiAgICAgVW5pcXVl
UmVmPExpYldlYlJUQ1Byb3ZpZGVyPiBtX2xpYldlYlJUQ1Byb3ZpZGVyOwogICAgIFJUQ0NvbnRy
b2xsZXIgbV9ydGNDb250cm9sbGVyOwogCkBAIC05MjAsNyArOTIzLDYgQEAgcHJpdmF0ZToKICAg
ICBSZWY8VXNlckNvbnRlbnRQcm92aWRlcj4gbV91c2VyQ29udGVudFByb3ZpZGVyOwogICAgIFJl
ZjxWaXNpdGVkTGlua1N0b3JlPiBtX3Zpc2l0ZWRMaW5rU3RvcmU7CiAgICAgUmVmUHRyPFdoZWVs
RXZlbnRUZXN0TW9uaXRvcj4gbV93aGVlbEV2ZW50VGVzdE1vbml0b3I7Ci0KICAgICBIYXNoU2V0
PEFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlcio+IG1fYWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2Vy
dmVyczsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9VU0FHRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggZWY4NzdhNTU4ODIxZTQ0NjdmNDVjYTNjMDUyMWNh
ZjIyZDkwN2RkZS4uMzM4ZjRlN2MxOTEyMWFmMTc5NDJkMDE3MjRjZTI5MTEzYzVkM2YyYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTM2LDYgKzM2LDcg
QEAKICNpbmNsdWRlICJEcmFnQ2xpZW50LmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCiAj
aW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJv
dmlkZXIuaCIKICNpbmNsdWRlICJQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRl
ICJQbHVnSW5DbGllbnQuaCIKICNpbmNsdWRlICJQbHVnaW5JbmZvUHJvdmlkZXIuaCIKQEAgLTU1
LDcgKzU2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYWdlQ29uZmlndXJhdGlvbjo6
UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRp
dG9yQ2xpZW50PiYmIGVkaXRvckNsaWVudCwgUmVmPFNvY2tldFByb3ZpZGVyPiYmIHNvY2tldFBy
b3ZpZGVyLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYgbGliV2ViUlRDUHJvdmlkZXIs
IFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiBjYWNoZVN0b3JhZ2VQcm92aWRlciwgUmVmPEJh
Y2tGb3J3YXJkQ2xpZW50PiYmIGJhY2tGb3J3YXJkQ2xpZW50LCBSZWY8Q29va2llSmFyPiYmIGNv
b2tpZUphciwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiBwcm9ncmVzc1RyYWNr
ZXJDbGllbnQpCitQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNsaWVudCwg
UmVmPFNvY2tldFByb3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGliV2ViUlRD
UHJvdmlkZXI+JiYgbGliV2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4m
JiBjYWNoZVN0b3JhZ2VQcm92aWRlciwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJhY2tGb3J3
YXJkQ2xpZW50LCBSZWY8Q29va2llSmFyPiYmIGNvb2tpZUphciwgVW5pcXVlUmVmPFByb2dyZXNz
VHJhY2tlckNsaWVudD4mJiBwcm9ncmVzc1RyYWNrZXJDbGllbnQsIFVuaXF1ZVJlZjxNZWRpYVJl
Y29yZGVyUHJvdmlkZXI+JiYgbWVkaWFSZWNvcmRlclByb3ZpZGVyKQogICAgIDogc2Vzc2lvbklE
KHNlc3Npb25JRCkKICAgICAsIGVkaXRvckNsaWVudChXVEZNb3ZlKGVkaXRvckNsaWVudCkpCiAg
ICAgLCBzb2NrZXRQcm92aWRlcihXVEZNb3ZlKHNvY2tldFByb3ZpZGVyKSkKQEAgLTY0LDYgKzY1
LDcgQEAgUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckMKICAgICAsIGJhY2tGb3J3YXJkQ2xpZW50KFdU
Rk1vdmUoYmFja0ZvcndhcmRDbGllbnQpKQogICAgICwgY29va2llSmFyKFdURk1vdmUoY29va2ll
SmFyKSkKICAgICAsIGNhY2hlU3RvcmFnZVByb3ZpZGVyKFdURk1vdmUoY2FjaGVTdG9yYWdlUHJv
dmlkZXIpKQorICAgICwgbWVkaWFSZWNvcmRlclByb3ZpZGVyKFdURk1vdmUobWVkaWFSZWNvcmRl
clByb3ZpZGVyKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
Q29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5o
CmluZGV4IDE5MWEwMmI2MTVmNDBhOTgwYzQyMWY3ZmJmM2YzMTZkMmIxNjRmZWYuLjNhOGVkMzM0
NDBjMmMxODg1MjgzMTg5MThhNzUyMmI5MjE3ZjQ3NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VDb25maWd1cmF0aW9uLmgKQEAgLTUyLDYgKzUyLDcgQEAgY2xhc3MgRWRpdG9yQ2xpZW50Owog
Y2xhc3MgRnJhbWVMb2FkZXJDbGllbnQ7CiBjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CiBjbGFzcyBM
aWJXZWJSVENQcm92aWRlcjsKK2NsYXNzIE1lZGlhUmVjb3JkZXJQcm92aWRlcjsKIGNsYXNzIFBh
eW1lbnRDb29yZGluYXRvckNsaWVudDsKIGNsYXNzIFBlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudDsK
IGNsYXNzIFBsdWdJbkNsaWVudDsKQEAgLTY4LDcgKzY5LDcgQEAgY2xhc3MgU3BlZWNoU3ludGhl
c2lzQ2xpZW50OwogY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb24gewogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFBhZ2VDb25maWd1cmF0aW9uKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQs
IFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVl
UmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJl
ZjxCYWNrRm9yd2FyZENsaWVudD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dy
ZXNzVHJhY2tlckNsaWVudD4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgUGFnZUNvbmZpZ3VyYXRp
b24oUEFMOjpTZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYsIFJlZjxTb2NrZXRQ
cm92aWRlcj4mJiwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmLCBSZWY8Q2FjaGVTdG9y
YWdlUHJvdmlkZXI+JiYsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiwgUmVmPENvb2tpZUphcj4m
JiwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiwgVW5pcXVlUmVmPE1lZGlhUmVj
b3JkZXJQcm92aWRlcj4mJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgflBhZ2VDb25maWd1cmF0aW9u
KCk7CiAgICAgUGFnZUNvbmZpZ3VyYXRpb24oUGFnZUNvbmZpZ3VyYXRpb24mJik7CiAKQEAgLTEy
Myw2ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPERldmljZU9yaWVudGF0aW9uVXBkYXRl
UHJvdmlkZXI+IGRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI7CiAjZW5kaWYKICAgICBW
ZWN0b3I8U3RyaW5nPiBjb3JzRGlzYWJsaW5nUGF0dGVybnM7CisgICAgVW5pcXVlUmVmPE1lZGlh
UmVjb3JkZXJQcm92aWRlcj4gbWVkaWFSZWNvcmRlclByb3ZpZGVyOwogfTsKIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
UHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJl
Y29yZGVyUHJpdmF0ZS5oCmluZGV4IDEwZTkxZjM3MjE5N2U3MjYyN2YyNjU2YmRmMmI3NDk2ZWI5
M2Q4YTUuLmFkNTE4MDc5ZTg5M2I5YTQwNmY2MDFjODgwNjQxNWRhOWE0YzAwYWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclBy
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXJQcml2YXRlLmgKQEAgLTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUgPHd0Zi9Db21w
bGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSAiRXhj
ZXB0aW9uLmgiCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCkBAIC00MywxMiArNDQsMTkg
QEAgY2xhc3MgU2hhcmVkQnVmZmVyOwogCiBjbGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZSB7CiBw
dWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIHNhbXBsZUJ1ZmZlclVwZGF0ZWQoTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmLCBNZWRpYVNhbXBsZSYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgYXVkaW9T
YW1wbGVzQXZhaWxhYmxlKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgY29uc3QgV1RGOjpNZWRp
YVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mLCBzaXplX3QpID0gMDsKKyAgICB2aXJ0dWFsIH5NZWRpYVJlY29yZGVyUHJpdmF0ZSgp
ID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCBzYW1wbGVCdWZmZXJVcGRhdGVkKGNvbnN0
IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgTWVkaWFTYW1wbGUmKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZSYsIGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25z
dCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSA9IDA7CiAKICAgICB2aXJ0dWFsIHZv
aWQgZmV0Y2hEYXRhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFNoYXJlZEJ1ZmZlcj4m
JiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk+JiYpID0gMDsKLSAgICB2aXJ0dWFsIH5NZWRpYVJl
Y29yZGVyUHJpdmF0ZSgpID0gZGVmYXVsdDsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcFJlY29yZGlu
ZygpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzdG9wUmVjb3JkaW5nKCkgeyB9OworCisgICAgdXNp
bmcgRXJyb3JDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT47
CisgICAgdm9pZCBzZXRFcnJvckNhbGxiYWNrKEVycm9yQ2FsbGJhY2smJiBlcnJvckNhbGxiYWNr
KSB7IG1fZXJyb3JDYWxsYmFjayA9IFdURk1vdmUoZXJyb3JDYWxsYmFjayk7IH0KKworcHJvdGVj
dGVkOgorICAgIEVycm9yQ2FsbGJhY2sgbV9lcnJvckNhbGxiYWNrOwogfTsKICAgICAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNw
cAppbmRleCA5MTgzMDQ2NjA2NjZmY2VmNTU5ZTNhNzNkNmZjNGQ1YjU2NWU5ZTRkLi43M2YxZDBh
MTUxOWYyYzAzYjkxZDY5NTEwNTEzNWE0ZjIwZDFkYTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29y
ZGVyUHJpdmF0ZUFWRkltcGwuY3BwCkBAIC04MiwxNCArODIsMTQgQEAgTWVkaWFSZWNvcmRlclBy
aXZhdGVBVkZJbXBsOjpNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwoUmVmPE1lZGlhUmVjb3Jk
ZXJQcml2YXQKIHsKIH0KIAotdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OnNhbXBs
ZUJ1ZmZlclVwZGF0ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBNZWRpYVNhbXBs
ZSYgc2FtcGxlQnVmZmVyKQordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OnNhbXBs
ZUJ1ZmZlclVwZGF0ZWQoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBNZWRp
YVNhbXBsZSYgc2FtcGxlQnVmZmVyKQogewogICAgIGlmICh0cmFjay5pZCgpICE9IG1fcmVjb3Jk
ZWRWaWRlb1RyYWNrSUQpCiAgICAgICAgIHJldHVybjsKICAgICBtX3dyaXRlci0+YXBwZW5kVmlk
ZW9TYW1wbGVCdWZmZXIoc2FtcGxlQnVmZmVyLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2Ft
cGxlQnVmZmVyKTsKIH0KIAotdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmF1ZGlv
U2FtcGxlc0F2YWlsYWJsZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2ssIGNvbnN0IFdU
Rjo6TWVkaWFUaW1lJiBtZWRpYVRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBj
b25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNhbXBsZUNv
dW50KQordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmF1ZGlvU2FtcGxlc0F2YWls
YWJsZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2ssIGNvbnN0IFdURjo6TWVk
aWFUaW1lJiBtZWRpYVRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNhbXBsZUNvdW50KQog
ewogICAgIGlmICh0cmFjay5pZCgpICE9IG1fcmVjb3JkZWRBdWRpb1RyYWNrSUQpCiAgICAgICAg
IHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oCmluZGV4IDVlYzBi
ZWU3Yjk3NzIwOWRkOGE0ZjE5ZGYwOTljMTgwMzcxZTBiNzkuLjBjZjBkZjNjNjRjYzk3MTNlMzA1
OWJlMzZjYWNjOWZjN2NjYzBiMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRklt
cGwuaApAQCAtNDMsOCArNDMsOCBAQCBwcml2YXRlOgogCiAgICAgZnJpZW5kIHN0ZDo6dW5pcXVl
X3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw+IHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFS
ZWNvcmRlclByaXZhdGVBVkZJbXBsPihSZWY8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+JiYs
IFN0cmluZyYmLCBTdHJpbmcmJik7CiAKLSAgICB2b2lkIHNhbXBsZUJ1ZmZlclVwZGF0ZWQoTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUmLCBNZWRpYVNhbXBsZSYpIGZpbmFsOwotICAgIHZvaWQgYXVk
aW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgY29uc3QgV1RGOjpN
ZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOworICAgIHZvaWQgc2FtcGxlQnVmZmVyVXBkYXRlZChj
b25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJikgZmluYWw7CisgICAg
dm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUm
LCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3Qg
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgZmluYWw7CiAgICAgdm9pZCBmZXRjaERh
dGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8U2hhcmVkQnVmZmVyPiYmLCBjb25zdCBT
dHJpbmcmKT4mJikgZmluYWw7CiAgICAgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSgpOwogICAgIHZv
aWQgc3RvcFJlY29yZGluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suY3BwCmlu
ZGV4IGM4MTZlMWFjMTMzNTBkYjZkNjA3ZWMxZDA4NTAwNDBlMzU3YjQ2MWUuLmYyYWM4YzI3Y2I0
NWM5N2MyZGMwM2I4ZmU0YTczNjkxN2Q0YmNmODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2
YXRlTW9jay5jcHAKQEAgLTMzLDE3ICszMywxNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LXZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjpzYW1wbGVCdWZmZXJVcGRhdGVkKE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaywgTWVkaWFTYW1wbGUmKQordm9pZCBNZWRpYVJlY29y
ZGVyUHJpdmF0ZU1vY2s6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQoY29uc3QgTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUmIHRyYWNrLCBNZWRpYVNhbXBsZSYpCiB7CiAgICAgZ2VuZXJhdGVNb2NrU3RyaW5n
KHRyYWNrKTsKIH0KIAotdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s6OmF1ZGlvU2FtcGxl
c0F2YWlsYWJsZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2ssIGNvbnN0IFdURjo6TWVk
aWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uJiwgc2l6ZV90KQordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s6OmF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2ssIGNvbnN0
IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0
cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KQogewogICAgIGdlbmVyYXRlTW9ja1N0cmluZyh0cmFj
ayk7CiB9CiAKLXZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjpnZW5lcmF0ZU1vY2tTdHJp
bmcoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKQordm9pZCBNZWRpYVJlY29yZGVyUHJp
dmF0ZU1vY2s6OmdlbmVyYXRlTW9ja1N0cmluZyhjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZSYgdHJhY2spCiB7CiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2J1ZmZlckxvY2spOwog
ICAgIGlmICh0cmFjay50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXJQcml2YXRlTW9jay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNv
cmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suaAppbmRleCAwMzU3MTFlNTViZjdlOTFmMzk3
NzNmNzg4ODE4ZDhiNDNkZTI1OWVlLi40ZGFlZDY3MzFkZWE1M2U5NzU2NjFhNDRhMTI3MGZmMThk
ZTJkODQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmgKQEAgLTM2LDEyICszNiwx
MiBAQCBjbGFzcyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTsKIAogY2xhc3MgV0VCQ09SRV9FWFBP
UlQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrIGZpbmFsIDogcHVibGljIE1lZGlhUmVjb3JkZXJQ
cml2YXRlIHsKIHByaXZhdGU6Ci0gICAgdm9pZCBzYW1wbGVCdWZmZXJVcGRhdGVkKE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlJiwgTWVkaWFTYW1wbGUmKSBmaW5hbDsKLSAgICB2b2lkIGF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIGNvbnN0IFdURjo6TWVkaWFU
aW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiwgc2l6ZV90KSBmaW5hbDsKKyAgICB2b2lkIHNhbXBsZUJ1ZmZlclVwZGF0ZWQoY29uc3Qg
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBNZWRpYVNhbXBsZSYpIGZpbmFsOworICAgIHZvaWQg
YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgY29u
c3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOwogICAgIHZvaWQgZmV0Y2hEYXRhKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mJiwgY29uc3QgU3RyaW5n
Jik+JiYpIGZpbmFsOwogICAgIGNvbnN0IFN0cmluZyYgbWltZVR5cGUoKTsKICAgICAKLSAgICB2
b2lkIGdlbmVyYXRlTW9ja1N0cmluZyhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpOworICAgIHZv
aWQgZ2VuZXJhdGVNb2NrU3RyaW5nKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJik7CiAK
ICAgICBtdXRhYmxlIExvY2sgbV9idWZmZXJMb2NrOwogICAgIFN0cmluZ0J1aWxkZXIgbV9idWZm
ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2Nv
Y29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2Nv
YS5oCmluZGV4IGZmZjQ1ZDYzOTM4ZGIzMzhiNDcyNGI3YTc0NmNlMzcyNGZhMWQzYWIuLjUxOTc4
YmI2ZDhkMWExYjBlNWMxYzdhMDE1MTIyMmJkOGJkZmIyYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXJDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIv
Y29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oCkBAIC00OSw5ICs0OSwxMCBA
QCBjbGFzcyBBdWRpb1N0cmVhbURlc2NyaXB0aW9uOwogY2xhc3MgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGU7CiBjbGFzcyBQbGF0Zm9ybUF1ZGlvRGF0YTsKIAotY2xhc3MgTWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8TWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXIsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW4+LCBwdWJsaWMgQ2FuTWFr
ZVdlYWtQdHI8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IHsKK2NsYXNzIFdFQkNPUkVfRVhQ
T1JUIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3Vu
dGVkPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpN
YWluPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4g
Y3JlYXRlKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiBhdWRpb1RyYWNrLCBjb25zdCBN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogdmlkZW9UcmFjayk7CisgICAgc3RhdGljIFJlZlB0cjxN
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gY3JlYXRlKGJvb2wgaGFzQXVkaW8sIGludCB3aWR0
aCwgaW50IGhlaWdodCk7CiAgICAgfk1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyKCk7CiAgICAg
CiAgICAgYm9vbCBzZXR1cFdyaXRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29h
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCmluZGV4IDkyZmUyYTQ1MGU1OTNmMjRhOTY4ZmFl
ZjBhNmI5NmY5NWFkZTM1MTMuLjA2OWM4ODc0ZjAwOWUwOTZjMjQ5YTA3ODAxOTBkZDgwNDhjNmI5
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29j
b2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
Q29jb2EubW0KQEAgLTkwLDYgKzkwLDE3IEBAIHN0YXRpYyBOU1N0cmluZyAqZ2V0QVZFbmNvZGVy
Qml0UmF0ZUtleVdpdGhGYWxsYmFjaygpCiB9CiAKIFJlZlB0cjxNZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlcj4gTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNyZWF0ZShjb25zdCBNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSogYXVkaW9UcmFjaywgY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUqIHZpZGVvVHJhY2spCit7CisgICAgaW50IHdpZHRoID0gMCwgaGVpZ2h0ID0gMDsKKyAgICBp
ZiAodmlkZW9UcmFjaykgeworICAgICAgICBhdXRvJiBzZXR0aW5ncyA9IHZpZGVvVHJhY2stPnNl
dHRpbmdzKCk7CisgICAgICAgIHdpZHRoID0gc2V0dGluZ3Mud2lkdGgoKTsKKyAgICAgICAgaGVp
Z2h0ID0gc2V0dGluZ3MuaGVpZ2h0KCk7CisgICAgfQorICAgIHJldHVybiBjcmVhdGUoISFhdWRp
b1RyYWNrLCB3aWR0aCwgaGVpZ2h0KTsKK30KKworUmVmUHRyPE1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyPiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y3JlYXRlKGJvb2wgaGFzQXVkaW8s
IGludCB3aWR0aCwgaW50IGhlaWdodCkKIHsKICAgICBOU1N0cmluZyAqZGlyZWN0b3J5ID0gRmls
ZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAidmlkZW9zIik7CiAgICAgTlNTdHJp
bmcgKmZpbGVuYW1lID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIvJWxsZC5tcDQiLCBD
TUNsb2NrR2V0VGltZShDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygpKS52YWx1ZV07CkBAIC0xMDYs
MTIgKzExNywxMSBAQCBSZWZQdHI8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IE1lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyOjpjcmVhdGUoY29uc3QgTWVkaQogCiAgICAgYXV0byB3cml0ZXIg
PSBhZG9wdFJlZigqbmV3IE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyKFdURk1vdmUoYXZBc3Nl
dFdyaXRlciksIFdURk1vdmUoZmlsZVBhdGgpKSk7CiAKLSAgICBpZiAoYXVkaW9UcmFjayAmJiAh
d3JpdGVyLT5zZXRBdWRpb0lucHV0KCkpCisgICAgaWYgKGhhc0F1ZGlvICYmICF3cml0ZXItPnNl
dEF1ZGlvSW5wdXQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBpZiAodmlkZW9U
cmFjaykgewotICAgICAgICBhdXRvJiBzZXR0aW5ncyA9IHZpZGVvVHJhY2stPnNldHRpbmdzKCk7
Ci0gICAgICAgIGlmICghd3JpdGVyLT5zZXRWaWRlb0lucHV0KHNldHRpbmdzLndpZHRoKCksIHNl
dHRpbmdzLmhlaWdodCgpKSkKKyAgICBpZiAod2lkdGggJiYgaGVpZ2h0KSB7CisgICAgICAgIGlm
ICghd3JpdGVyLT5zZXRWaWRlb0lucHV0KHdpZHRoLCBoZWlnaHQpKQogICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCmluZGV4IDRhMDY4NDQzOGNlNjY1
ZDdjZDA0ZGExMGVhMTFhNWJjMmI2ZjI5ZjUuLmRlNDRkODhlZjViOWMzODE0MDQ0ZTA1ZjdjMjhi
ZWUxOGE3MmVkMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCkBAIC04MSw3ICs4MSw3IEBAIHB1YmxpYzoK
IAogICAgIFN0cmluZyBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KIAotICAgIE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlVmVjdG9yIHRyYWNrcygpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JU
IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVjdG9yIHRyYWNrcygpIGNvbnN0OwogICAgIE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlKiBhY3RpdmVWaWRlb1RyYWNrKCkgeyByZXR1cm4gbV9hY3RpdmVW
aWRlb1RyYWNrOyB9CiAKICAgICBib29sIGFjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNBY3Rp
dmU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCmluZGV4IDM5MWE2NTNmNDhlM2U3ZTMyYTQ4
MmM3Nzk3YzdkYzc3MTMxNTAyNWIuLjAwNzE2ZmQwYTQ1NjE0ZGU2Y2Q4YWJhZGUwNTkwZjJiZjEw
YzAyNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaApAQCAtMTAwLDcgKzEwMCw3IEBAIHB1
YmxpYzoKICAgICBSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+IGNsb25lKCk7CiAKICAgICBS
ZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UoKSB7IHJldHVybiBtX3NvdXJjZS5nZXQoKTsgfQot
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSgpIGNvbnN0OworICAgIFdFQkNPUkVf
RVhQT1JUIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSgpIGNvbnN0OwogCiAgICAgdm9p
ZCBlbmRUcmFjaygpOwogCkBAIC0xMTAsNyArMTEwLDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFz
T2JzZXJ2ZXIoT2JzZXJ2ZXImKSBjb25zdDsKICNlbmRpZgogCi0gICAgY29uc3QgUmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JU
IGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdDsKICAg
ICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBj
b25zdDsKIAogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRz
JiwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXBwbHlDb25zdHJhaW50c0hhbmRsZXImJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggYmE5NDE4YzUwYzc5ZjAzODk1ZTM3YmM3
YjM3N2ZhYTkzYjU1NzNiNi4uNjhhYjQyMzg3NmE2NTA5ZTVkYmUyMGYwMTYyZjQyN2ZlMDkwNGM1
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTIyLDYgKzEyMiw3IEBA
CiAjaW5jbHVkZSAiTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5oIgogI2luY2x1ZGUg
Ik1lZGlhUGxheWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgorI2luY2x1ZGUgIk1l
ZGlhUmVjb3JkZXJQcm92aWRlci5oIgogI2luY2x1ZGUgIk1lZGlhUmVzb3VyY2VMb2FkZXIuaCIK
ICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrLmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIK
QEAgLTU1MCw2ICs1NTEsOCBAQCB2b2lkIEludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0
ZShQYWdlJiBwYWdlKQogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldEludGVycnVwdEF1ZGlvT25QYWdlVmlz
aWJpbGl0eUNoYW5nZUVuYWJsZWQoZmFsc2UpOworICAgIFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXI6
OnNldEN1c3RvbVByaXZhdGVSZWNvcmRlckNyZWF0b3IobnVsbHB0cik7CisgICAgcGFnZS5tZWRp
YVJlY29yZGVyUHJvdmlkZXIoKS5zZXRVc2VHUFVQcm9jZXNzKHRydWUpOwogI2VuZGlmCiAKICAg
ICBIVE1MQ2FudmFzRWxlbWVudDo6c2V0TWF4UGl4ZWxNZW1vcnlGb3JUZXN0aW5nKDApOyAvLyBU
aGlzIG1lYW5zIHVzZSB0aGUgZGVmYXVsdCB2YWx1ZS4KQEAgLTE1NTgsNyArMTU2MSw5IEBAIHZv
aWQgSW50ZXJuYWxzOjpzZXRVc2VHUFVQcm9jZXNzRm9yV2ViUlRDKGJvb2wgdXNlR1BVUHJvY2Vz
cykKICAgICBhdXRvKiBkb2N1bWVudCA9IGNvbnRleHREb2N1bWVudCgpOwogICAgIGlmICghZG9j
dW1lbnQgfHwgIWRvY3VtZW50LT5wYWdlKCkpCiAgICAgICAgIHJldHVybjsKKwogICAgIGRvY3Vt
ZW50LT5wYWdlKCktPmxpYldlYlJUQ1Byb3ZpZGVyKCkuc2V0VXNlR1BVUHJvY2Vzcyh1c2VHUFVQ
cm9jZXNzKTsKKyAgICBkb2N1bWVudC0+cGFnZSgpLT5tZWRpYVJlY29yZGVyUHJvdmlkZXIoKS5z
ZXRVc2VHUFVQcm9jZXNzKHVzZUdQVVByb2Nlc3MpOwogI2VuZGlmCiB9CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtl
TGlzdHMudHh0CmluZGV4IGZmNTJkMjUzNmY1NjVmYTI5NWJlYjYyMDEyNjhhMGYzMzMxNzBmZjMu
LjUzMjY3OGYzNzYwMzNjM2MwMGY5ZjZiZDVhMzBjMzg2OTBlMzM0YmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3Rz
LnR4dApAQCAtNzgsNiArNzgsOCBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAg
ICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0dhbWVwYWQiCiAgICAgIiR7V0VCS0lUX0RJUn0v
V2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0dQ
VSIKKyAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0dQVS9tZWRpYSIKKyAgICAiJHtXRUJL
SVRfRElSfS9XZWJQcm9jZXNzL0dQVS93ZWJydGMiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJv
Y2Vzcy9JY29uRGF0YWJhc2UiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZSIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRl
eCA3OTk0ZTNjYTc3NzYzMjlkNmY3NWQ3YWFmMGM5M2ZkOWFhMDU5ZTEwLi5iOTg4MGJjMGFjZjZm
NjFjMDJiM2IzN2QyYzRjYmVlYmExMDIwODI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xOSw2ICsxOSw4IEBAICQoUFJPSkVDVF9ESVIp
L0dQVVByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuR1BVUHJvY2Vzcy5zYi5pbgogJChQUk9K
RUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy93ZWJy
dGMvTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9E
SVIpL0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJzLm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVz
c2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL0N1c3RvbVByb3RvY29scy9M
ZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05l
dHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIubWVzc2FnZXMuaW4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDBjZDIzZTAx
YmJhY2QyZWM0YTBiZGMzYmRmZjJiZTBkN2I2MGIwMWIuLmQ3MjA2MjNhYmFjYWRkZTk3YzVmMzVj
MjczMmY1OGRmOWI5NjI3MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdApAQCAtMTI5LDYgKzEyOSwxMiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdl
c1JlcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVjb3Jk
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2Vz
UmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVNZWRpYVJlY29yZGVyc01lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVjb3JkZXJzTWVzc2FnZXMu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVk
aWFSZWNvcmRlcnNNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNS
ZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBi
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA5ZDNlMmE5MGM3YjRkOTBh
NDI2Yzc2YTRlMDVlNmIyZjgxY2MwZTllLi5hNTY4NjAxYjc3YjFkYmQ3ZmZkNjM2ZGU3YjYzNGIx
ZmUyYjEyOGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UK
KysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNDMsNiArMTQzLDgg
QEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eSBcCiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyIFwKICAgICBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eSBcCisgICAgUmVtb3RlTWVkaWFSZWNvcmRlciBcCisgICAgUmVtb3Rl
TWVkaWFSZWNvcmRlcnMgXAogICAgIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyIFwKICAgICBS
ZW1vdGVPYmplY3RSZWdpc3RyeSBcCiAgICAgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCmluZGV4IDUyYTk1Y2UwZGVkNzAzZDYxZDM0YTlkMTdmMGM4YjQyZTY2NGZkZGEu
LjdmNjYzM2E3ZDc5OGExNTQ2NDZlMjk5YjY5ODFkOTI1M2IyY2M3N2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAK
QEAgLTM5LDYgKzM5LDkgQEAKICNpbmNsdWRlICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5o
IgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNp
bmNsdWRlICJSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVN
ZWRpYVJlY29yZGVycy5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVjb3JkZXJzTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oIgogI2luY2x1ZGUgIlJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmgiCkBAIC0xMzcsOSArMTQwLDcgQEAgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6dXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIKIAogICAgIHJldHVybiAqbV91c2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OwogfQotI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJU
QykKIExpYldlYlJUQ0NvZGVjc1Byb3h5JiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsaWJX
ZWJSVENDb2RlY3NQcm94eSgpCiB7CiAgICAgaWYgKCFtX2xpYldlYlJUQ0NvZGVjc1Byb3h5KQpA
QCAtMTQ5LDYgKzE1MCwxNiBAQCBMaWJXZWJSVENDb2RlY3NQcm94eSYgR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6bGliV2ViUlRDQ29kZWNzUHJveHkoKQogfQogI2VuZGlmCiAKKyNpZiBQTEFU
Rk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykKK1JlbW90ZU1lZGlhUmVjb3JkZXJzJiBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjptZWRpYVJlY29yZGVycygpCit7CisgICAgaWYgKCFtX3Jl
bW90ZU1lZGlhUmVjb3JkZXJzKQorICAgICAgICBtX3JlbW90ZU1lZGlhUmVjb3JkZXJzID0gbWFr
ZVVuaXF1ZTxSZW1vdGVNZWRpYVJlY29yZGVycz4oKnRoaXMpOworCisgICAgcmV0dXJuICptX3Jl
bW90ZU1lZGlhUmVjb3JkZXJzOworfQorI2VuZGlmCisKIHZvaWQgR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJ
UEM6OkRlY29kZXImIGRlY29kZXIpCiB7CiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVy
TmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpKSB7CkBAIC0xNjMsNiArMTc0LDE0IEBAIHZvaWQgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBJCiAgICAgICAgIHVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoKS5kaWRSZWNlaXZl
TWVzc2FnZUZyb21HUFVQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogICAgICAgICByZXR1
cm47CiAgICAgfQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNz
YWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcnM6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAg
ICAgICBtZWRpYVJlY29yZGVycygpLmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29u
bmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGRlY29k
ZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVy
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgbWVkaWFSZWNvcmRlcnMoKS5kaWRS
ZWNlaXZlUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNF
KExJQldFQlJUQykKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVz
c2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oCmluZGV4IGFjNzEyNWQ3MzhkODY4ODhlZWE4YjRhOTI1MTVmOWRlNGQxZjZiMDQuLjg5YzRj
YTFjMjIyZmE1YzlhNTRmYTZjMDU2ZGE5ODIzYmI1NmVkNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtNDEsOCAr
NDEsOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIEdQVVByb2Nlc3M7CiBjbGFzcyBMaWJX
ZWJSVENDb2RlY3NQcm94eTsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Owot
Y2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKK2NsYXNzIFJlbW90ZU1lZGlhUmVj
b3JkZXJzOwogY2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI7CitjbGFzcyBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5OwogCiBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
CiAgICAgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPgpAQCAt
NzEsNiArNzIsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVO
QUJMRShNRURJQV9TVFJFQU0pCiAgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSYgdXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpOworICAgIFJlbW90ZU1lZGlhUmVjb3JkZXJzJiBt
ZWRpYVJlY29yZGVycygpOwogI2VuZGlmCiAKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVu
dApAQCAtODksNiArOTEsNyBAQCBwcml2YXRlOgogICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lv
bklEOwogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHN0
ZDo6dW5pcXVlX3B0cjxVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5PiBtX3VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk7CisgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZU1lZGlhUmVjb3Jk
ZXJzPiBtX3JlbW90ZU1lZGlhUmVjb3JkZXJzOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0Ep
ICYmIFVTRShMSUJXRUJSVEMpCiAgICAgc3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ0NvZGVjc1By
b3h5PiBtX2xpYldlYlJUQ0NvZGVjc1Byb3h5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQ4
YTg1ZDU3NGJjZTdjYWMzMDNkNjNhMjliYjk1ZjBjMzljY2YwZgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAK
QEAgLTAsMCArMSwxMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0lt
YWdlVHJhbnNmZXJTZXNzaW9uVlQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlbW90ZVZpZGVvU2Ft
cGxlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KKyNpbmNsdWRl
IDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFSZWNvcmRl
cj4gUmVtb3RlTWVkaWFSZWNvcmRlcjo6Y3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyIGlkZW50
aWZpZXIsIGJvb2wgcmVjb3JkQXVkaW8sIGludCB3aWR0aCwgaW50IGhlaWdodCkKK3sKKyAgICBh
dXRvIHdyaXRlciA9IE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjcmVhdGUocmVjb3JkQXVk
aW8sIHdpZHRoLCBoZWlnaHQpOworICAgIGlmICghd3JpdGVyKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFJlbW90ZU1lZGlhUmVjb3JkZXI+KG5l
dyBSZW1vdGVNZWRpYVJlY29yZGVyIHsgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgaWRlbnRp
Zmllciwgd3JpdGVyLnJlbGVhc2VOb25OdWxsKCksIHJlY29yZEF1ZGlvIH0pOworfQorCitSZW1v
dGVNZWRpYVJlY29yZGVyOjpSZW1vdGVNZWRpYVJlY29yZGVyKEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIE1lZGlhUmVjb3JkZXJJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFJlZjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4mJiB3cml0ZXIsIGJv
b2wgcmVjb3JkQXVkaW8pCisgICAgOiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoZ3B1Q29u
bmVjdGlvblRvV2ViUHJvY2VzcykKKyAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorICAg
ICwgbV93cml0ZXIoV1RGTW92ZSh3cml0ZXIpKQoreworICAgIGlmIChyZWNvcmRBdWRpbykKKyAg
ICAgICAgbV9yaW5nQnVmZmVyID0gbWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KG1ha2VVbmlxdWVS
ZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG51bGxwdHIpKTsKK30KKworUmVtb3RlTWVkaWFS
ZWNvcmRlcjo6flJlbW90ZU1lZGlhUmVjb3JkZXIoKQoreworfQorCitTaGFyZWRSaW5nQnVmZmVy
U3RvcmFnZSYgUmVtb3RlTWVkaWFSZWNvcmRlcjo6c3RvcmFnZSgpCit7CisgICAgcmV0dXJuIHN0
YXRpY19jYXN0PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLT5zdG9yYWdl
KCkpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXI6OmF1ZGlvU2FtcGxlc1N0b3JhZ2VD
aGFuZ2VkKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBoYW5kbGUsIGNvbnN0IFdlYkNvcmU6
OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9m
RnJhbWVzKQoreworICAgIEFTU0VSVChtX3JpbmdCdWZmZXIpOworICAgIGlmICghbV9yaW5nQnVm
ZmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247
CisKKyAgICBpZiAoaGFuZGxlLmlzTnVsbCgpKSB7CisgICAgICAgIG1fcmluZ0J1ZmZlci0+ZGVh
bGxvY2F0ZSgpOworICAgICAgICBzdG9yYWdlKCkuc2V0UmVhZE9ubHkoZmFsc2UpOworICAgICAg
ICBzdG9yYWdlKCkuc2V0U3RvcmFnZShudWxscHRyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGF1dG8gbWVtb3J5ID0gU2hhcmVkTWVtb3J5OjptYXAoaGFuZGxlLCBTaGFyZWRNZW1v
cnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICBzdG9yYWdlKCkuc2V0U3RvcmFnZShXVEZN
b3ZlKG1lbW9yeSkpOworICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25seSh0cnVlKTsKKworICAgIG1f
cmluZ0J1ZmZlci0+YWxsb2NhdGUoZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKK30KKwor
dm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1l
IHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50
NjRfdCBlbmRGcmFtZSkKK3sKKyAgICBBU1NFUlQobV9yaW5nQnVmZmVyKTsKKyAgICBpZiAoIW1f
cmluZ0J1ZmZlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9yaW5nQnVmZmVyLT5zZXRDdXJy
ZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOworCisgICAgV2ViQXVkaW9CdWZm
ZXJMaXN0IGF1ZGlvRGF0YShtX2Rlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisgICAgbV9y
aW5nQnVmZmVyLT5mZXRjaChhdWRpb0RhdGEubGlzdCgpLCBudW1iZXJPZkZyYW1lcywgdGltZS50
aW1lVmFsdWUoKSk7CisKKyAgICBtX3dyaXRlci0+YXBwZW5kQXVkaW9TYW1wbGVCdWZmZXIoYXVk
aW9EYXRhLCBtX2Rlc2NyaXB0aW9uLCB0aW1lLCBudW1iZXJPZkZyYW1lcyk7Cit9CisKK3ZvaWQg
UmVtb3RlTWVkaWFSZWNvcmRlcjo6dmlkZW9TYW1wbGVBdmFpbGFibGUoV2ViQ29yZTo6UmVtb3Rl
VmlkZW9TYW1wbGUmJiByZW1vdGVTYW1wbGUpCit7CisgICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJT
ZXNzaW9uIHx8IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPnBpeGVsRm9ybWF0KCkgIT0gcmVtb3Rl
U2FtcGxlLnZpZGVvRm9ybWF0KCkpCisgICAgICAgIG1faW1hZ2VUcmFuc2ZlclNlc3Npb24gPSBJ
bWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGUocmVtb3RlU2FtcGxlLnZpZGVvRm9ybWF0KCkp
OworCisgICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9uKSB7CisgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBzYW1wbGVC
dWZmZXIgPSBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5jcmVhdGVNZWRpYVNhbXBsZShyZW1vdGVT
YW1wbGUuc3VyZmFjZSgpLCByZW1vdGVTYW1wbGUudGltZSgpLCByZW1vdGVTYW1wbGUuc2l6ZSgp
KTsKKyAgICBpZiAoIXNhbXBsZUJ1ZmZlcikgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fd3JpdGVyLT5hcHBlbmRWaWRlb1Nh
bXBsZUJ1ZmZlcihzYW1wbGVCdWZmZXItPnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxl
QnVmZmVyKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyOjpmZXRjaERhdGEoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChJUEM6OkRhdGFSZWZlcmVuY2UmJiwgY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IFN0cmluZz4gbXA0TWltZVR5cGUoTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoInZpZGVv
L21wNCIpKTsKKyAgICBtX3dyaXRlci0+ZmV0Y2hEYXRhKFsmbXA0TWltZVR5cGUgPSBtcDRNaW1l
VHlwZS5nZXQoKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0oYXV0byYmIGRhdGEpIG11dGFibGUgeworICAgICAgICBhdXRvKiBwb2ludGVyID0gcmVpbnRl
cnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oZGF0YSA/IGRhdGEtPmRhdGEoKSA6IG51bGxwdHIp
OworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihJUEM6OkRhdGFSZWZlcmVuY2UgeyBwb2ludGVy
LCBkYXRhID8gZGF0YS0+c2l6ZSgpIDogMCB9LCBtcDRNaW1lVHlwZSk7CisgICAgfSk7Cit9CisK
K3ZvaWQgUmVtb3RlTWVkaWFSZWNvcmRlcjo6c3RvcFJlY29yZGluZygpCit7CisgICAgbV93cml0
ZXItPnN0b3BSZWNvcmRpbmcoKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5oIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDRhOGQxNzU1YzU5NTMwYzIzMTM2YjQ3N2I5YThhMDg1NDQxNGY1NgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRl
ci5oCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBM
QVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJNZWRpYVJl
Y29yZGVySWRlbnRpZmllci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1
ZGUgIlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNv
Y29hLmg+CisjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgorCituYW1lc3BhY2UgSVBDIHsKK2Ns
YXNzIENvbm5lY3Rpb247CitjbGFzcyBEYXRhUmVmZXJlbmNlOworY2xhc3MgRGVjb2RlcjsKK30K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ0FSaW5nQnVmZmVyOworY2xhc3MgSW1hZ2VU
cmFuc2ZlclNlc3Npb25WVDsKK2NsYXNzIFJlbW90ZVZpZGVvU2FtcGxlOworfQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKK2NsYXNzIFNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlOworCitjbGFzcyBSZW1vdGVNZWRpYVJlY29yZGVyIDogcHJp
dmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CitwdWJsaWM6CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVJlY29yZGVy
PiBjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIE1lZGlhUmVjb3JkZXJJZGVudGlm
aWVyLCBib29sIHJlY29yZEF1ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworICAgIH5SZW1v
dGVNZWRpYVJlY29yZGVyKCk7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCitwcml2YXRlOgorICAgIFJlbW90ZU1l
ZGlhUmVjb3JkZXIoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIE1lZGlhUmVjb3JkZXJJZGVu
dGlmaWVyLCBSZWY8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+JiYsIGJvb2wg
cmVjb3JkQXVkaW8pOworCisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGF1
ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiwgY29u
c3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZG
cmFtZXMpOworICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSwgdWludDY0
X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1l
KTsKKyAgICB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxlKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2Ft
cGxlJiYpOworICAgIHZvaWQgZmV0Y2hEYXRhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSVBDOjpE
YXRhUmVmZXJlbmNlJiYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpPiYmKTsKKyAgICB2b2lkIHN0
b3BSZWNvcmRpbmcoKTsKKworICAgIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBzdG9yYWdlKCk7
CisKKyAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M7CisgICAgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFJl
ZjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gbV93cml0ZXI7CisKKyAgICBX
ZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbjsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZmZXI7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ+IG1faW1hZ2VUcmFu
c2ZlclNlc3Npb247Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2Vz
LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmMxNGVkYzUzNjEwMjNlZGM3ODI3ODBjNGQ0NmU5ZDE1Yjk0ODEzOWYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzNCBAQAorIyBDb3B5cmlnaHQg
KEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
IyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUo
R1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUmVjb3JkZXIgTm90UmVmQ291
bnRlZCB7CisgICAgQXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQoV2ViS2l0OjpTaGFyZWRNZW1v
cnk6OkhhbmRsZSBzdG9yYWdlSGFuZGxlLCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24gZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQorICAgIEF1ZGlvU2FtcGxl
c0F2YWlsYWJsZShNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2
NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQorICAgIFZpZGVvU2FtcGxlQXZhaWxh
YmxlKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlIHNhbXBsZSkKKyAgICBGZXRjaERhdGEoKSAt
PiAoSVBDOjpEYXRhUmVmZXJlbmNlIGJ1ZmZlciwgU3RyaW5nIG1pbWVUeXBlKSBBc3luYworICAg
IFN0b3BSZWNvcmRpbmcoKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMuY3BwIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTZhY2QwNjgwNjI4N2ZhMDYxMDI1Y2UwNWYwMjI0NTRjZWRhOGUzZgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMu
Y3BwCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlcnMuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKSAm
JiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5j
bHVkZSAiRGVjb2Rlci5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVjb3JkZXIuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL0V4Y2VwdGlvbkRhdGEuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Jl
bW90ZU1lZGlhUmVjb3JkZXJzOjpSZW1vdGVNZWRpYVJlY29yZGVycyhHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQorICAgIDogbV9ncHVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCit7Cit9CisKK1JlbW90
ZU1lZGlhUmVjb3JkZXJzOjp+UmVtb3RlTWVkaWFSZWNvcmRlcnMoKQoreworfQorCit2b2lkIFJl
bW90ZU1lZGlhUmVjb3JkZXJzOjpkaWRSZWNlaXZlUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7Cisg
ICAgaWYgKGF1dG8qIHJlY29yZGVyID0gbV9yZWNvcmRlcnMuZ2V0KG1ha2VPYmplY3RJZGVudGlm
aWVyPE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyVHlwZT4oZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkp
KSkKKyAgICAgICAgcmVjb3JkZXItPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXJzOjpjcmVhdGVSZWNvcmRlcihNZWRp
YVJlY29yZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBib29sIHJlY29yZEF1ZGlvLCBpbnQgd2lk
dGgsIGludCBoZWlnaHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9u
RGF0YT4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKCFtX3JlY29yZGVy
cy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgYXV0byByZWNvcmRlciA9IFJlbW90ZU1lZGlh
UmVjb3JkZXI6OmNyZWF0ZShtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIGlkZW50aWZpZXIs
IHJlY29yZEF1ZGlvLCB3aWR0aCwgaGVpZ2h0KTsKKyAgICBpZiAoIXJlY29yZGVyKQorICAgICAg
ICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoRXhjZXB0aW9uRGF0YSB7IE5vdFN1cHBvcnRlZEVy
cm9yLCAiVW5hYmxlIHRvIGNyZWF0ZSBhIHJlY29yZGVyIHdpdGggdGhlIHByb3ZpZGVkIHN0cmVh
bSJfcyB9KTsKKworICAgIG1fcmVjb3JkZXJzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKHJlY29y
ZGVyKSk7CisgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKK30KKwordm9pZCBSZW1vdGVNZWRp
YVJlY29yZGVyczo6cmVsZWFzZVJlY29yZGVyKE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyIGlkZW50
aWZpZXIpCit7CisgICAgQVNTRVJUKG1fcmVjb3JkZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsK
KyAgICBtX3JlY29yZGVycy5yZW1vdmUoaWRlbnRpZmllcik7Cit9CisKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVj
b3JkZXJzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVj
b3JkZXJzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMGI4ZTJhZWVhZDZmN2U3MTcwNjA0Nzk2ODc2Mzc2NTIyODQ5
ZjUwNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlTWVkaWFSZWNvcmRlcnMuaApAQCAtMCwwICsxLDcyIEBACisKKworLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VT
UykKKworI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiTWVz
c2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247CitjbGFzcyBE
ZWNvZGVyOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgRXhjZXB0aW9uRGF0YTsK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M7CitjbGFzcyBSZW1vdGVNZWRpYVJlY29yZGVyOworCitjbGFzcyBSZW1vdGVNZWRpYVJlY29y
ZGVycyA6IHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IFJlbW90ZU1lZGlhUmVjb3JkZXJzKEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKKyAgICB+UmVtb3RlTWVkaWFSZWNvcmRlcnMoKTsK
KworICAgIHZvaWQgZGlkUmVjZWl2ZVJlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9t
V2ViUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVj
b2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQorCitwcml2
YXRlOgorICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKyAgICB2b2lkIGNy
ZWF0ZVJlY29yZGVyKE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLCBib29sIHJlY29yZEF1ZGlvLCBp
bnQgd2lkdGgsIGludCBoZWlnaHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8V2Vi
Q29yZTo6RXhjZXB0aW9uRGF0YT4mJik+JiYpOworICAgIHZvaWQgcmVsZWFzZVJlY29yZGVyKE1l
ZGlhUmVjb3JkZXJJZGVudGlmaWVyKTsKKworICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzczsKKyAgICBIYXNoTWFwPE1lZGlhUmVjb3JkZXJJ
ZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFSZWNvcmRlcj4+IG1fcmVjb3Jk
ZXJzOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJzLm1lc3NhZ2VzLmluCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjhlMGFhNTFjMDE2Y2UyNThiNTBiNjU1MDY0NjZmMzJlNzZiZTA1YTIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlh
UmVjb3JkZXJzLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKyMgQ29weXJpZ2h0IChDKSAy
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
IyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVJlY29yZGVycyBOb3RSZWZDb3VudGVk
IHsKKyAgICBDcmVhdGVSZWNvcmRlcihXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJJZGVudGlmaWVyIGlk
LCBib29sIGhhc0F1ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpIC0+IChPcHRpb25hbDxXZWJD
b3JlOjpFeGNlcHRpb25EYXRhPiBjcmVhdGlvbkVycm9yKSBBc3luYworICAgIFJlbGVhc2VSZWNv
cmRlcihXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJJZGVudGlmaWVyIGlkKQorfQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDVkODQ0NzEzMjViYmE3
YTQzNWVkOTMzYzA5MDkwOTQ1M2I5ZDQwMjUuLmY4YmNlMTQ1NTA3ZGY0OWU4OWVkNGY3MTk4NzZl
MTBiZjcwOTZiZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpA
QCAtMjIwLDYgKzIyMCw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xh
cmVkKCk6CiAgICAgICAgICdXZWJLaXQ6OkFjdGl2aXR5U3RhdGVDaGFuZ2VJRCcsCiAgICAgICAg
ICdXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJRCcsCiAgICAgICAgICdXZWJLaXQ6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXInLAorICAgICAgICAnV2ViS2l0OjpNZWRpYVJl
Y29yZGVySWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJ
ZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6UlRDRGVjb2RlcklkZW50aWZpZXInLAogICAg
ICAgICAnV2ViS2l0OjpSVENFbmNvZGVySWRlbnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCBkMDM5
M2JiMDYyZDk3YWU5NmE3MjI1YTZkNjA3YjA3NGIzOGUwYzk4Li5jODUyNDEwN2FkNWZhNzJmNzc5
ZmQwYjBkNGYzNGE1YzE3MTk5Yjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTI0LDYgKzI0LDggQEAKIEdQ
VVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKK0dQ
VVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwCitHUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5jcHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
UHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuY3BwCkBAIC01
MTMsNiArNTE1LDggQEAgV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNh
Y2hlLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3Vy
Y2VQcm94eS5jcHAKIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCitX
ZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCitXZWJQcm9jZXNz
L0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcAogCiBXZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxv
YWRlclN0cmF0ZWd5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGZlNzU3OTUzNzYxYjk5
ZjY5YjgyOGMxMWJiYzBmMzMxYWVlZmMxOTEuLmI2NjczNzdmZmJjODg1NTFhNTM4NmJiZjMxZGE5
M2FhYmIwOTE2Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTYzNSw1ICs2MzUsNyBAQCBH
UFVQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBHUFVQcm9jZXNzTWVzc2FnZVJlY2Vp
dmVyLmNwcAogTGliV2ViUlRDQ29kZWNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBMaWJXZWJS
VENDb2RlY3NNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZVJl
Y2VpdmVyLmNwcAorUmVtb3RlTWVkaWFSZWNvcmRlcnNNZXNzYWdlUmVjZWl2ZXIuY3BwCiBTZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZVJlY2VpdmVyLmNwcAogVGV4dENoZWNraW5nQ29udHJv
bGxlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTc3OGJhNTg3MjMyYzZlNmE3ODIyNDZiOWM3
Y2IzMjBhZThmY2NlYS4uMTc3YjNhYjEwODliOTdlZjI0OTU1ZTA5NjRiZGNjNDA2NWIzNzNhYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0zMzE2LDYgKzMzMTYsMTcgQEAKIAkJNDE3MjE5OEMyM0I2MTJFODAwQUU1Njg2IC8qIFJUQ0Rl
Y29kZXJJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0Rl
Y29kZXJJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzIxOThE
MjNCNjJDN0MwMEFFNTY4NiAvKiBMaWJXZWJSVENDb2RlY3MubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGli
V2ViUlRDQ29kZWNzLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTc2OTAxMzIyRkRENDFCMDBCMTU3NkQgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmV0d29ya1JUQ1Byb3ZpZGVyLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc2RTg5MjIzQzM0RDZFMDAzRTgzRkUgLyog
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJQcm92
aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc2RTg5MzIzQzM0RDZGMDAz
RTgzRkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1l
ZGlhUmVjb3JkZXJQcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQx
NzZFODk0MjNDMzRFMjYwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODk1MjNDMzRFMjcwMDNFODNGRSAv
KiBNZWRpYVJlY29yZGVyUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZWRpYVJlY29yZGVyUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MTc2RTg5NzIzQzM2MUJEMDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlcklkZW50aWZpZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFSZWNvcmRlcklkZW50aWZpZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OTgyM0MzNjY3NzAwM0U4M0ZFIC8q
IFJlbW90ZU1lZGlhUmVjb3JkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVtb3RlTWVkaWFSZWNvcmRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc2
RTg5OTIzQzM2RDhFMDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlcnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZWNvcmRlcnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OUEyM0MzNkY3MTAwM0U4M0ZFIC8qIFJlbW90ZU1l
ZGlhUmVjb3JkZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
bW90ZU1lZGlhUmVjb3JkZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3
NkU4OUIyM0MzNzIyMjAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXJzLm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVjb3JkZXJzLm1lc3NhZ2VzLmlu
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc2RTg5QzIzQzM3NDc5MDAzRTgzRkUg
LyogUmVtb3RlTWVkaWFSZWNvcmRlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBSZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MTc2RTg5RDIzQzM3NkQ1MDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlY29y
ZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3OTE1QUMyMjU2QkI3NDAw
RDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gV2ViU29ja2V0Q2hhbm5lbC5jcHA7IHBhdGggPSBOZXR3b3JrL1dlYlNvY2tl
dENoYW5uZWwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc5MTVBRDIyNTZC
Qjc0MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBXZWJTb2NrZXRDaGFubmVsLmg7IHBhdGggPSBOZXR3b3JrL1dlYlNvY2tldENo
YW5uZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3OTE1QjAyMjU2QzBENjAw
RDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWxNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFdlYlNvY2tldENoYW5uZWxNYW5hZ2VyLmg7IHBhdGggPSBOZXR3b3JrL1dl
YlNvY2tldENoYW5uZWxNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03
MTE3LDYgKzcxMjgsMTEgQEAKIAkJCQk0MTcyMTk4QTIzQjYxMjgyMDBBRTU2ODYgLyogTGliV2Vi
UlRDQ29kZWNzLmNwcCAqLywKIAkJCQk0MTcyMTk4OTIzQjYxMjgyMDBBRTU2ODYgLyogTGliV2Vi
UlRDQ29kZWNzLmggKi8sCiAJCQkJNDE3MjE5OEQyM0I2MkM3QzAwQUU1Njg2IC8qIExpYldlYlJU
Q0NvZGVjcy5tZXNzYWdlcy5pbiAqLywKKwkJCQk0MTc2RTg5NzIzQzM2MUJEMDAzRTgzRkUgLyog
TWVkaWFSZWNvcmRlcklkZW50aWZpZXIuaCAqLywKKwkJCQk0MTc2RTg5NDIzQzM0RTI2MDAzRTgz
RkUgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwICovLAorCQkJCTQxNzZFODk1MjNDMzRFMjcw
MDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZS5oICovLAorCQkJCTQxNzZFODkzMjNDMzRE
NkYwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwICovLAorCQkJCTQxNzZFODky
MjNDMzRENkUwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCAqLywKIAkJCQk0MTcy
MTk4QzIzQjYxMkU4MDBBRTU2ODYgLyogUlRDRGVjb2RlcklkZW50aWZpZXIuaCAqLywKIAkJCQk0
MTU4NjQ5QTIzQkUwOTI0MDBBMEE2MUUgLyogUlRDRW5jb2RlcklkZW50aWZpZXIuaCAqLywKIAkJ
CSk7CkBAIC03MTI5LDYgKzcxNDUsMTIgQEAKIAkJCQk0MUUwQTdDNjIzQjYzOTc4MDA1NjEwNjAg
LyogTGliV2ViUlRDQ29kZWNzUHJveHkuaCAqLywKIAkJCQk0MUUwQTdDNzIzQjYzOTc5MDA1NjEw
NjAgLyogTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJNDFFMEE3Qzgy
M0I2Mzk3OTAwNTYxMDYwIC8qIExpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tICovLAorCQkJCTQxNzZF
ODlEMjNDMzc2RDUwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyLmNwcCAqLywKKwkJCQk0
MTc2RTg5ODIzQzM2Njc3MDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlci5oICovLAorCQkJ
CTQxNzZFODlDMjNDMzc0NzkwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2Vz
LmluICovLAorCQkJCTQxNzZFODlBMjNDMzZGNzEwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29y
ZGVycy5jcHAgKi8sCisJCQkJNDE3NkU4OTkyM0MzNkQ4RTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlh
UmVjb3JkZXJzLmggKi8sCisJCQkJNDE3NkU4OUIyM0MzNzIyMjAwM0U4M0ZFIC8qIFJlbW90ZU1l
ZGlhUmVjb3JkZXJzLm1lc3NhZ2VzLmluICovLAogCQkJKTsKIAkJCXBhdGggPSB3ZWJydGM7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmRlMmQ2NmJmYmNiNDlkOTM4OTM4NjU4YzAwMGVhMzFkOTJlYmY3MjcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUmVjb3JkZXJQ
cm92aWRlci5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCIKKworI2lmIFBMQVRGT1JN
KENPQ09BKQorI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oIgorI2VuZGlm
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQ
cml2YXRlPiBNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRl
KE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAg
IHJldHVybiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmNyZWF0ZShzdHJlYW0pOworI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0oc3RyZWFtKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyNlbmRp
ZgorfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUmVjb3JkZXJQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTBlOGQ0ODFmODZhMzVk
MGQ5ZWU5ZmI4M2VhZWU2NmRjNzlkZmNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaApAQCAtMCwwICsx
LDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgTWVkaWFSZWNvcmRlclByaXZhdGU7CitjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7
CisKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIE1lZGlhUmVjb3JkZXJQcm92aWRlciB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFVuaXF1ZVJlZjxNZWRp
YVJlY29yZGVyUHJvdmlkZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIG1ha2VVbmlxdWVSZWY8TWVkaWFS
ZWNvcmRlclByb3ZpZGVyPigpOyB9CisgICAgdmlydHVhbCB+TWVkaWFSZWNvcmRlclByb3ZpZGVy
KCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRl
clByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKE1lZGlhU3RyZWFtUHJpdmF0ZSYp
OworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvTWVkaWFSZWNvcmRlcklkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL01lZGlhUmVjb3JkZXJJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJmMDRlMzMz
ZmU4NDYzMjNjY2NlNzkzODVjYTc1MmI1NjQxOTNlZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJJZGVudGlmaWVyLmgK
QEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8
d3RmL09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2VudW0gTWVk
aWFSZWNvcmRlcklkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIE1lZGlhUmVjb3JkZXJJZGVudGlm
aWVyID0gT2JqZWN0SWRlbnRpZmllcjxNZWRpYVJlY29yZGVySWRlbnRpZmllclR5cGU+OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
YTVkYmY5ODA4YzQwYTZhNjg3M2JkNmIyODA0OWIwNzRmYzNiNTFmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZh
dGUuY3BwCkBAIC0wLDAgKzEsMTQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlLmgiCisKKyNpZiBQTEFURk9STShDT0NP
QSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24uaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZXMuaCIKKyNpbmNsdWRl
ICJSZW1vdGVNZWRpYVJlY29yZGVyc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9N
ZWRpYVN0cmVhbVByaXZhdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1
ZmZlckxpc3QuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitNZWRpYVJlY29yZGVyUHJpdmF0ZTo6TWVkaWFSZWNvcmRlclByaXZhdGUoY29uc3Qg
TWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCisgICAgOiBtX2lkZW50aWZpZXIoTWVkaWFSZWNv
cmRlcklkZW50aWZpZXI6OmdlbmVyYXRlKCkpCisgICAgLCBtX2Nvbm5lY3Rpb24oV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkp
Cit7CisgICAgLy8gRklYTUU6IHdlIHdpbGwgbmVlZCB0byBpbXBsZW1lbnQgc3VwcG9ydCBmb3Ig
bXVsdGlwbGUgYXVkaW8vdmlkZW8gdHJhY2tzCisgICAgLy8gQ3VycmVudGx5IHdlIG9ubHkgY2hv
b3NlIHRoZSBmaXJzdCB0cmFjayBhcyB0aGUgcmVjb3JkZWQgdHJhY2suCisgICAgLy8gRklYTUU6
IFdlIHdvdWxkIGJldHRlciB0byB0aHJvdyBhbiBleGNlcHRpb24gdG8gSmF2YVNjcmlwdCBpZiB3
cml0ZXIgY3JlYXRpb24gZmFpbHMuCisKKyAgICBjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZSogYXVkaW9UcmFjayB7IG51bGxwdHIgfTsKKyAgICBjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZSogdmlkZW9UcmFjayB7IG51bGxwdHIgfTsKKyAgICBmb3IgKGF1dG8mIHRyYWNrIDogc3Ry
ZWFtLnRyYWNrcygpKSB7CisgICAgICAgIGlmICghdHJhY2stPmVuYWJsZWQoKSB8fCB0cmFjay0+
ZW5kZWQoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBzd2l0Y2ggKHRyYWNrLT50
eXBlKCkpIHsKKyAgICAgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzog
eworICAgICAgICAgICAgYXV0byYgc2V0dGluZ3MgPSB0cmFjay0+c2V0dGluZ3MoKTsKKyAgICAg
ICAgICAgIGlmICghdmlkZW9UcmFjayAmJiBzZXR0aW5ncy5zdXBwb3J0c1dpZHRoKCkgJiYgc2V0
dGluZ3Muc3VwcG9ydHNIZWlnaHQoKSkgeworICAgICAgICAgICAgICAgIHZpZGVvVHJhY2sgPSB0
cmFjay5nZXQoKTsKKyAgICAgICAgICAgICAgICBtX3JlY29yZGVkVmlkZW9UcmFja0lEID0gdmlk
ZW9UcmFjay0+aWQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW86CisgICAg
ICAgICAgICBpZiAoIWF1ZGlvVHJhY2spIHsKKyAgICAgICAgICAgICAgICBtX3JpbmdCdWZmZXIg
PSBtYWtlVW5pcXVlPENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVy
U3RvcmFnZT4odGhpcykpOworICAgICAgICAgICAgICAgIGF1ZGlvVHJhY2sgPSB0cmFjay5nZXQo
KTsKKyAgICAgICAgICAgICAgICBtX3JlY29yZGVkQXVkaW9UcmFja0lEID0gYXVkaW9UcmFjay0+
aWQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5vbmU6CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgIH0KKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6UmVtb3RlTWVkaWFSZWNvcmRlcnM6OkNyZWF0ZVJlY29yZGVyIHsgbV9pZGVudGlmaWVyLCAh
IWF1ZGlvVHJhY2ssIHZpZGVvVHJhY2sgPyB2aWRlb1RyYWNrLT5zZXR0aW5ncygpLndpZHRoKCkg
OiAwLCB2aWRlb1RyYWNrID8gdmlkZW9UcmFjay0+c2V0dGluZ3MoKS5oZWlnaHQoKSA6IDAgfSwg
W3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldKGF1dG8mJiBleGNlcHRpb24pIHsK
KyAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhZXhjZXB0aW9uKQorICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICBtX2Vycm9yQ2FsbGJhY2soRXhjZXB0aW9uIHsgZXhjZXB0aW9uLT5jb2RlLCBX
VEZNb3ZlKGV4Y2VwdGlvbi0+bWVzc2FnZSkgfSk7CisgICAgfSwgMCk7Cit9CisKK01lZGlhUmVj
b3JkZXJQcml2YXRlOjp+TWVkaWFSZWNvcmRlclByaXZhdGUoKQoreworICAgIG1fY29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcnM6OlJlbGVhc2VSZWNvcmRlciB7
IG1faWRlbnRpZmllciB9LCAwKTsKK30KKwordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c2Ft
cGxlQnVmZmVyVXBkYXRlZChjb25zdCBXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYg
dHJhY2ssIFdlYkNvcmU6Ok1lZGlhU2FtcGxlJiBzYW1wbGUpCit7CisgICAgaWYgKHRyYWNrLmlk
KCkgIT0gbV9yZWNvcmRlZFZpZGVvVHJhY2tJRCkKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChh
dXRvIHJlbW90ZVNhbXBsZSA9IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUoc2FtcGxlKSkKKyAg
ICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyOjpW
aWRlb1NhbXBsZUF2YWlsYWJsZSB7IFdURk1vdmUoKnJlbW90ZVNhbXBsZSkgfSwgbV9pZGVudGlm
aWVyKTsKK30KKwordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6YXVkaW9TYW1wbGVzQXZhaWxh
YmxlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaywgY29uc3Qg
TWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25z
dCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IG51bWJlck9mRnJh
bWVzKQoreworICAgIGlmICh0cmFjay5pZCgpICE9IG1fcmVjb3JkZWRBdWRpb1RyYWNrSUQpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2Rlc2NyaXB0aW9uICE9IGRlc2NyaXB0aW9uKSB7
CisgICAgICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9
PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKKyAgICAgICAg
bV9kZXNjcmlwdGlvbiA9ICpXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRp
b24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOworCisg
ICAgICAgIC8vIEFsbG9jYXRlIGEgcmluZyBidWZmZXIgbGFyZ2UgZW5vdWdoIHRvIGNvbnRhaW4g
MiBzZWNvbmRzIG9mIGF1ZGlvLgorICAgICAgICBtX251bWJlck9mRnJhbWVzID0gbV9kZXNjcmlw
dGlvbi5zYW1wbGVSYXRlKCkgKiAyOworICAgICAgICBtX3JpbmdCdWZmZXItPmFsbG9jYXRlKG1f
ZGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgbV9udW1iZXJPZkZyYW1lcyk7CisgICAg
fQorCisgICAgQVNTRVJUKGlzPFdlYkF1ZGlvQnVmZmVyTGlzdD4oYXVkaW9EYXRhKSk7CisgICAg
bV9yaW5nQnVmZmVyLT5zdG9yZShkb3duY2FzdDxXZWJBdWRpb0J1ZmZlckxpc3Q+KGF1ZGlvRGF0
YSkubGlzdCgpLCBudW1iZXJPZkZyYW1lcywgdGltZS50aW1lVmFsdWUoKSk7CisgICAgdWludDY0
X3Qgc3RhcnRGcmFtZTsKKyAgICB1aW50NjRfdCBlbmRGcmFtZTsKKyAgICBtX3JpbmdCdWZmZXIt
PmdldEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7CisgICAgbV9jb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyOjpBdWRpb1NhbXBsZXNB
dmFpbGFibGUgeyB0aW1lLCBudW1iZXJPZkZyYW1lcywgc3RhcnRGcmFtZSwgZW5kRnJhbWUgfSwg
bV9pZGVudGlmaWVyKTsKK30KKwordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c3RvcmFnZUNo
YW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlKQoreworICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxl
IGhhbmRsZTsKKyAgICBpZiAoc3RvcmFnZSkKKyAgICAgICAgc3RvcmFnZS0+Y3JlYXRlSGFuZGxl
KGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CisgICAgbV9jb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyOjpBdWRpb1NhbXBsZXNT
dG9yYWdlQ2hhbmdlZCB7IGhhbmRsZSwgbV9kZXNjcmlwdGlvbiwgc3RhdGljX2Nhc3Q8dWludDY0
X3Q+KG1fbnVtYmVyT2ZGcmFtZXMpIH0sIG1faWRlbnRpZmllcik7Cit9CisKK3ZvaWQgTWVkaWFS
ZWNvcmRlclByaXZhdGU6OmZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxX
ZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyOjpGZXRjaERhdGEgeyB9LCBbY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byYmIGRhdGEsIGF1dG8mJiBt
aW1lVHlwZSkgbXV0YWJsZSB7CisgICAgICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlcjsK
KyAgICAgICAgaWYgKCFkYXRhLnNpemUoKSkKKyAgICAgICAgICAgIGJ1ZmZlciA9IFNoYXJlZEJ1
ZmZlcjo6Y3JlYXRlKGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7CisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKFdURk1vdmUoYnVmZmVyKSwgbWltZVR5cGUpOworICAgIH0sIG1faWRlbnRpZmll
cik7Cit9CisKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OnN0b3BSZWNvcmRpbmcoKQorewor
ICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6U3Rv
cFJlY29yZGluZyB7IH0sIG1faWRlbnRpZmllcik7Cit9CisKK30KKworI2VuZGlmIC8vIFBMQVRG
T1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44ZDNlOGJmM2QwZDQzMzk2YWQ5YjQwZDJkNzI4OGNkYTNjN2U0NjU5Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNv
cmRlclByaXZhdGUuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVk
ZSAiTWVkaWFSZWNvcmRlcklkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVy
U3RvcmFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFSZWNvcmRlclByaXZhdGUuaD4KKyNp
bmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFt
ZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpNZWRpYVJl
Y29yZGVyUHJpdmF0ZSwgcHVibGljIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpDbGllbnQsIHB1
YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4geworICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhUmVjb3JkZXJQcml2
YXRlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZSYpOworICAgIH5NZWRpYVJlY29y
ZGVyUHJpdmF0ZSgpOworCitwcml2YXRlOgorICAgIC8vIFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQ
cml2YXRlCisgICAgdm9pZCBzYW1wbGVCdWZmZXJVcGRhdGVkKGNvbnN0IFdlYkNvcmU6Ok1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlJiwgV2ViQ29yZTo6TWVkaWFTYW1wbGUmKSBmaW5hbDsKKyAgICB2
b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYsIGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1B
dWRpb0RhdGEmLCBjb25zdCBXZWJDb3JlOjpBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90
KSBmaW5hbDsKKyAgICB2b2lkIGZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0
cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpPiYmKSBm
aW5hbDsKKyAgICB2b2lkIHN0b3BSZWNvcmRpbmcoKSBmaW5hbDsKKworICAgIC8vIFNoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlOjpDbGllbnQKKyAgICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1l
bW9yeSopOworCisgICAgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOworCisg
ICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIFN0cmluZyBtX3JlY29y
ZGVkQXVkaW9UcmFja0lEOworICAgIFN0cmluZyBtX3JlY29yZGVkVmlkZW9UcmFja0lEOworCisg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNBUmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOwor
ICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uIHsgfTsK
KyAgICBpbnQ2NF90IG1fbnVtYmVyT2ZGcmFtZXMgeyAwIH07Cit9OworCit9CisKKyNlbmRpZiAv
LyBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclBy
b3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OGI3ZjdlNDdjNjAyYjFhZjk5NzQ4MjU0MmMyZDYzODMx
YzcyZTMyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93
ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92aWRl
ci5oIgorCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGUuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL01lZGlhUmVjb3JkZXJQcml2YXRlLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGU+IE1lZGlhUmVjb3JkZXJQcm92
aWRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRl
JiBzdHJlYW0pCit7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIGlmICghbV91c2VHUFVQ
cm9jZXNzKQorICAgICAgICByZXR1cm4gV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyOjpj
cmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShzdHJlYW0pOworCisgICAgcmV0dXJuIG1ha2VVbmlx
dWU8TWVkaWFSZWNvcmRlclByaXZhdGU+KHN0cmVhbSk7CisjZWxzZQorICAgIHJldHVybiBXZWJD
b3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKHN0
cmVhbSk7CisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQorfQorI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9TVFJFQU0pCisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDQ1
ZmFhNGJmMGU0Nzk3OGZmZjQ3YzM4NzVkZDY3YmY0MWU0OTkzYgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRl
ci5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgPFdlYkNvcmUvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitjbGFzcyBNZWRpYVJlY29yZGVyUHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6
TWVkaWFSZWNvcmRlclByb3ZpZGVyIHsKK3B1YmxpYzoKKyAgICBNZWRpYVJlY29yZGVyUHJvdmlk
ZXIoKSA9IGRlZmF1bHQ7CisKK3ByaXZhdGU6CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1l
ZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZSYpIGZp
bmFsOworI2VuZGlmCit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCmluZGV4IDQ0ZDc2N2JjNjQ3MjE4M2EyYzEzMTE3OTBiNzgwZGNjOWZjNTY5
YTguLjI3ZDI5YzA3YjMzOGIzYjBmYmFmZmFkNWJhNGY4YjYzNzVjNzU5ZGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00NSw2ICs0NSw3IEBA
CiAjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKICNpbmNsdWRlICJMb2FkUGFyYW1ldGVy
cy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlk
ZXIuaCIKICNpbmNsdWRlICJOZXRzY2FwZVBsdWdpbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24uaCIKQEAgLTQ2MCw3ICs0NjEsOCBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAg
ICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmNhY2hlU3RvcmFnZVByb3ZpZGVyKCksCiAg
ICAgICAgIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjpjcmVhdGUoKnRoaXMpLAogICAgICAgICBX
ZWJDb29raWVKYXI6OmNyZWF0ZSgpLAotICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNz
VHJhY2tlckNsaWVudD4oKnRoaXMpCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jlc3NU
cmFja2VyQ2xpZW50PigqdGhpcyksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8TWVkaWFSZWNvcmRl
clByb3ZpZGVyPigpCiAgICAgKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQg
PSBuZXcgV2ViQ2hyb21lQ2xpZW50KCp0aGlzKTsKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA0YzQxODY0
ZDg5ZjQwNTY3ZWQ4MWVkMmVmZWZiNTAxZjY3NTNkYjg0Li4xOWIyMjFjYjIyNzgzYzViNjRjMzUz
ZDAyODVhNDQ4ZjQ1M2QwYjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCkBAIC0xODAsNiArMTgwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVk
U3RyaW5ncy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Mb2dJbml0aWFsaXphdGlvbi5oPgogI2ltcG9y
dCA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CisjaW1wb3J0IDxXZWJDb3JlL01lZGlhUmVj
b3JkZXJQcm92aWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9NZW1vcnlSZWxlYXNlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5oPgpAQCAtMTQ0OCw3ICsxNDQ5LDggQEAgc3RhdGljIHZvaWQgV2ViS2l0SW5p
dGlhbGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5KCkKICAgICAgICAgV2ViQ29yZTo6Q2Fj
aGVTdG9yYWdlUHJvdmlkZXI6OmNyZWF0ZSgpLAogICAgICAgICBCYWNrRm9yd2FyZExpc3Q6OmNy
ZWF0ZShzZWxmKSwKICAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpjcmVhdGUoc3RvcmFnZVBy
b3ZpZGVyLmNvcHlSZWYoKSksCi0gICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFj
a2VyQ2xpZW50PihzZWxmKQorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tl
ckNsaWVudD4oc2VsZiksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6TWVkaWFSZWNv
cmRlclByb3ZpZGVyPigpCiAgICAgKTsKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBw
YWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50KHNlbGYp
OwpAQCAtMTcxNyw3ICsxNzE5LDggQEAgc3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUdhbWVw
YWRQcm92aWRlcklmTmVjZXNzYXJ5KCkKICAgICAgICAgV2ViQ29yZTo6Q2FjaGVTdG9yYWdlUHJv
dmlkZXI6OmNyZWF0ZSgpLAogICAgICAgICBCYWNrRm9yd2FyZExpc3Q6OmNyZWF0ZShzZWxmKSwK
ICAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpjcmVhdGUoc3RvcmFnZVByb3ZpZGVyLmNvcHlS
ZWYoKSksCi0gICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Pihz
ZWxmKQorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oc2Vs
ZiksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVy
PigpCiAgICAgKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2Vi
Q2hyb21lQ2xpZW50SU9TKHNlbGYpOwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IGViMDg2NjQ4Njc3OTE1NjgxZjNhYzNkYzgwMzgy
NGRhMDg5NzFiMGYuLmU5NTczZDJiNmU4YmE0YTRhYTAzNGZkMDA5OTE4YTE1MzgxZDU0ODUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC0xMjksNiArMTI5LDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0xvZ0luaXRpYWxpemF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dn
aW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lbW9y
eUNhY2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZW1vcnlSZWxlYXNlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KQEAgLTMxMTgsMTAgKzMxMTksMTEgQEAg
SFJFU1VMVCBXZWJWaWV3Ojppbml0V2l0aEZyYW1lKFJFQ1QgZnJhbWUsIF9Jbl8gQlNUUiBmcmFt
ZU5hbWUsIF9Jbl8gQlNUUiBncm91cE4KICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJFZGl0b3JD
bGllbnQ+KHRoaXMpLAogICAgICAgICBTb2NrZXRQcm92aWRlcjo6Y3JlYXRlKCksCiAgICAgICAg
IG1ha2VVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+KCksCi0gICAgICAgIFdlYkNvcmU6OkNh
Y2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUoKSwKKyAgICAgICAgQ2FjaGVTdG9yYWdlUHJvdmlk
ZXI6OmNyZWF0ZSgpLAogICAgICAgICBCYWNrRm9yd2FyZExpc3Q6OmNyZWF0ZSgpLAogICAgICAg
ICBDb29raWVKYXI6OmNyZWF0ZShzdG9yYWdlUHJvdmlkZXIuY29weVJlZigpKSwKLSAgICAgICAg
bWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCkKKyAgICAgICAgbWFrZVVu
aXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCksCisgICAgICAgIG1ha2VVbmlxdWVS
ZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCiAgICAgKTsKICAgICBjb25maWd1cmF0aW9uLmNo
cm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnQodGhpcyk7CiAgICAgY29uZmlndXJhdGlv
bi5jb250ZXh0TWVudUNsaWVudCA9IG5ldyBXZWJDb250ZXh0TWVudUNsaWVudCh0aGlzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386965</attachid>
            <date>2020-01-07 06:37:07 -0800</date>
            <delta_ts>2020-01-07 07:11:44 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-205802-20200107153704.patch</filename>
            <type>text/plain</type>
            <size>104357</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGMzMmFmOWU2MDE0ZmQ3
MjUzZGYxNjJiZGJjODFiNTM3M2FmNjk4ZS4uMTdjMzc3MzhjY2JlOTdiMzhkMmIyNjY0MTFiNGIw
MDRiYmQ2YjkyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTAxLTA3ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgTWVkaWFS
ZWNvcmRlciBiYWNrZW5kIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTgwMgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMg
Q2FybHNvbi4KKworICAgICAgICBBZGQgYSBwYWdlIHByb3ZpZGVyIHRvIGNyZWF0ZSBNZWRpYVJl
Y29yZGVyUHJpdmF0ZSBpbXBsZW1lbnRhdGlvbnMuCisgICAgICAgIFRoaXMgaXMgdXNlZCBieSBX
ZWJLaXQgbGF5ZXIgdG8gaW1wbGVtZW50IHRoaXMgaW4gR1BVUHJvY2Vzcy4KKworICAgICAgICBV
cGRhdGUgTWVkaWFSZWNvcmRlclByaXZhdGUgYnkgYWRkaW5nIGFuIGVycm9yIGNhbGxiYWNrIHRo
YXQgaXMgdXNlZCB0byBzdXJmYWNlIGVycm9ycyBhcyBNZWRpYVJlY29yZGVyIGVycm9yIGV2ZW50
cy4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzIGFzIE1lZGlhUmVjb3JkZXIg
aW1wbGVtZW50YXRpb24gaW4gV2ViS2l0VGVzdFJ1bm5lciB3aWxsIHVzZSBHUFVQcm9jZXNzLgor
CisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNv
cmRlclByaXZhdGUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29y
ZGVyLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92
aWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVy
OjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Vz
LnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYWdlQ29u
ZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2U6Om1lZGlhUmVjb3JkZXJQcm92aWRlcik6CisgICAgICAgICog
cGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uZmln
dXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3Vy
YXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW06CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVzZXRU
b0NvbnNpc3RlbnRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldFVzZUdQ
VVByb2Nlc3NGb3JXZWJSVEMpOgorCiAyMDIwLTAxLTA3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIEFkZCBBUEkgdG8gc2V0
IHB1cnBvc2UgYW5kIGhpbnRzIG9mIGFjdGl2ZSBlZGl0YWJsZSBlbGVtZW50IHRvIGlucHV0IG1l
dGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggOGVmODZkMjE3YWVlZjExOWYxN2NiNTM4YTU1Y2UyYjNjNDRhMzc4
ZS4uNDc3YjgzNjNiZWE5NDI5ZTQ3MmFmNjdlMDI2Y2ZiOTY5MjY1YTU3NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw3MCBAQAorMjAyMC0wMS0wNyAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgSW1wbGVtZW50IE1lZGlhUmVjb3JkZXIgYmFja2VuZCBpbiBHUFVQcm9j
ZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU4
MDIKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQWRkIHN1
cHBvcnQgZm9yIHNlbmRpbmcgYXVkaW8vdmlkZW8gdHJhY2tzIHRvIHJlY29yZCBmcm9tIFdlYlBy
b2Nlc3MgdG8gR1BVUHJvY2Vzcy4KKyAgICAgICAgQWRkIGEgTWVkaWFSZWNvcmRlclByaXZhdGUg
aW1wbGVtZW50YXRpb24gdGhhdCBzdXBwb3J0cyBzZW5kaW5nIG9uZSBhdWRpbyB0cmFjayBhbmQv
b3Igb25lIHZpZGVvIHRyYWNrIHRvIEdQVVByb2Nlc3MKKyAgICAgICAgYW5kIHN0b3BwaW5nL2Zl
dGNoaW5nIGRhdGEgZnJvbSB0aGUgcmVtb3RlIHJlY29yZGVyIGluIEdQVVByb2Nlc3MuCisKKyAg
ICAgICAgSW4gR1BVUHJvY2VzcywgaW1wbGVtZW50IHRoZSByZW1vdGUgcmVjb3JkZXIgdXNpbmcg
dGhlIGV4aXN0aW5nIFdlYkNvcmUgcmVjb3JkZXIgd3JpdGVyLgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OnVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjptZWRpYVJlY29yZGVycyk6CisgICAgICAgIChXZWJLaXQ6OkdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBH
UFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVByb2Nlc3Muc2IuaW46CisgICAgICAgICogR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVJlY29yZGVyOjpSZW1vdGVNZWRpYVJlY29yZGVyKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6flJlbW90ZU1lZGlhUmVjb3JkZXIpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyOjpzdG9yYWdlKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFSZWNvcmRlcjo6YXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyOjp2aWRlb1NhbXBsZUF2YWlsYWJs
ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OmZldGNoRGF0YSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OnN0b3BSZWNvcmRpbmcpOgorICAg
ICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuaDogQWRkZWQuCisg
ICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5tZXNzYWdlcy5p
bjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRl
cnMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcnM6OlJl
bW90ZU1lZGlhUmVjb3JkZXJzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRl
cnM6On5SZW1vdGVNZWRpYVJlY29yZGVycyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UmVjb3JkZXJzOjpkaWRSZWNlaXZlUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2UpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyczo6Y3JlYXRlUmVjb3JkZXIpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyczo6cmVsZWFzZVJlY29yZGVyKToKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVycy5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcnM6OmRpZFJlY2VpdmVNZXNzYWdlRnJv
bVdlYlByb2Nlc3MpOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVj
b3JkZXJzLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyOjpjcmVhdGVNZWRpYVJl
Y29yZGVyUHJpdmF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFSZWNv
cmRlclByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9N
ZWRpYVJlY29yZGVySWRlbnRpZmllci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6TWVkaWFSZWNvcmRlclByaXZhdGU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6On5NZWRpYVJlY29yZGVyUHJpdmF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpzYW1wbGVCdWZmZXJVcGRhdGVk
KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6OmF1ZGlvU2FtcGxlc0F2
YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdG9yYWdl
Q2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpmZXRjaERh
dGEpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c3RvcFJlY29yZGlu
Zyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRl
Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVy
UHJvdmlkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TWVkaWFSZWNvcmRlclByb3Zp
ZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fb3ZlcnJpZGRl
bk1lZGlhVHlwZSk6CisKIDIwMjAtMDEtMDcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gQWRkIEFQSSB0byByZXRyaWV2ZSBh
bmQgZGVsZXRlIHN1cnJvdW5kaW5nIHRleHQgZm9yIGlucHV0IG1ldGhvZHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwppbmRleCA0YzQ0Y2RlODUxN2EyZWI4M2YwMTU2ZDMzNTAxYzFkOGMyYTli
YTFmLi5kODg5M2E4YzQxNTE3MGFhOGM4NWIwZWQxNjQ0NTcxYWYwMjQ1MGNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDEtMDcgIHlvdWVubiBm
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBNZWRpYVJlY29y
ZGVyIGJhY2tlbmQgaW4gR1BVUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1ODAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJs
c29uLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3
IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6Z3JvdXBOYW1lOl0pOgorICAgICAg
ICAoLVtXZWJWaWV3IGluaXRTaW1wbGVIVE1MRG9jdW1lbnRXaXRoU3R5bGU6ZnJhbWU6cHJlZmVy
ZW5jZXM6Z3JvdXBOYW1lOl0pOgorCiAyMDIwLTAxLTA3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIEFkZCBBUEkgdG8gc2V0
IHB1cnBvc2UgYW5kIGhpbnRzIG9mIGFjdGl2ZSBlZGl0YWJsZSBlbGVtZW50IHRvIGlucHV0IG1l
dGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCAxOTU1ODIzZGFlOGFmZWU1YTk4
MzYwMTYwODMxMmFlNGRjZTVkYjJmLi4zYzhiYzJjZjIxZWMyOGY4NjY0Y2RhZDQxMjA2MTJhYTE5
YjgxMDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MjAtMDEtMDcgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIElt
cGxlbWVudCBNZWRpYVJlY29yZGVyIGJhY2tlbmQgaW4gR1BVUHJvY2VzcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1ODAyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAg
IChXZWJWaWV3Ojppbml0V2l0aEZyYW1lKToKKwogMjAyMC0wMS0wNyAgQ2FybG9zIEdhcmNpYSBD
YW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBBZGQgQVBJ
IHRvIHNldCBwdXJwb3NlIGFuZCBoaW50cyBvZiBhY3RpdmUgZWRpdGFibGUgZWxlbWVudCB0byBp
bnB1dCBtZXRob2RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA0NjYxOWM2NWQ2YjNjM2Q4MWZmNGMy
ZTUwMDUyMTZhYTQ5NjJlYzE0Li44MTJlZDQ2OWQyMDkwODU1OGNkZDdjZGU4MjgzY2VlODg2Yjhl
Y2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTgwLDYgKzgwLDggQEAgc2V0KFdlYkNvcmVfUFJJ
VkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJS
ZXN1bHREYXRhLmgKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25J
bmZvLmgKIAorICAgIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIu
aAorCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uRXZlbnRzLmgKICAgICBN
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25NZXRhZGF0YS5oCiAgICAgTW9kdWxlcy9t
ZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oCkBAIC0xMTU1LDYgKzExNTcsOCBA
QCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1PcGVyYXRpb25zLmgKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmgKIAorICAgIHBsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaAorCiAgICAgcGxhdGZvcm0vbWVkaWFz
dHJlYW0vQ2FwdHVyZURldmljZS5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURl
dmljZU1hbmFnZXIuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMu
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXIuY3BwCmluZGV4IDk5MWVhMmEwZjNkMjI0NGRmMWU4ZWUyN2Y3OTA4NmQzZWM0M2Q2
ZjAuLjQ0YzMxODczMzhjMzliZTI4MTI4OTRlMjMyYzZiODFkZjhlMjc5MjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5j
cHAKQEAgLTM0LDYgKzM0LDggQEAKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAi
TWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaCIKICNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0
ZS5oIgorI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92aWRlci5oIgorI2luY2x1ZGUgIlBhZ2Uu
aCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJXaW5kb3dFdmVudExvb3Au
aCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgpAQCAtNTAsMTEgKzUyLDE0IEBA
IGNyZWF0b3JGdW5jdGlvbiBNZWRpYVJlY29yZGVyOjptX2N1c3RvbUNyZWF0b3IgPSBudWxscHRy
OwogCiBFeGNlcHRpb25PcjxSZWY8TWVkaWFSZWNvcmRlcj4+IE1lZGlhUmVjb3JkZXI6OmNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxNZWRpYVN0cmVhbT4mJiBzdHJlYW0sIE9wdGlvbnMm
JiBvcHRpb25zKQogewotICAgIGF1dG8gcHJpdmF0ZUluc3RhbmNlID0gTWVkaWFSZWNvcmRlcjo6
Z2V0UHJpdmF0ZUltcGwoc3RyZWFtLT5wcml2YXRlU3RyZWFtKCkpOworICAgIGF1dG8gcHJpdmF0
ZUluc3RhbmNlID0gTWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoZG9j
dW1lbnQsIHN0cmVhbS0+cHJpdmF0ZVN0cmVhbSgpKTsKICAgICBpZiAoIXByaXZhdGVJbnN0YW5j
ZSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiVGhlIE1l
ZGlhUmVjb3JkZXIgaXMgdW5zdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybSJfcyB9OwogICAgIGF1
dG8gcmVjb3JkZXIgPSBhZG9wdFJlZigqbmV3IE1lZGlhUmVjb3JkZXIoZG9jdW1lbnQsIFdURk1v
dmUoc3RyZWFtKSwgV1RGTW92ZShwcml2YXRlSW5zdGFuY2UpLCBXVEZNb3ZlKG9wdGlvbnMpKSk7
CiAgICAgcmVjb3JkZXItPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJlY29yZGVyLT5tX3ByaXZh
dGUtPnNldEVycm9yQ2FsbGJhY2soW3JlY29yZGVyID0gcmVjb3JkZXIuY29weVJlZigpXShhdXRv
JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICAgICAgcmVjb3JkZXItPmRpc3BhdGNoRXJyb3Io
V1RGTW92ZSgqZXhjZXB0aW9uKSk7CisgICAgfSk7CiAgICAgcmV0dXJuIHJlY29yZGVyOwogfQog
CkBAIC02MywxNyArNjgsMTYgQEAgdm9pZCBNZWRpYVJlY29yZGVyOjpzZXRDdXN0b21Qcml2YXRl
UmVjb3JkZXJDcmVhdG9yKGNyZWF0b3JGdW5jdGlvbiBjcmVhdG9yKQogICAgIG1fY3VzdG9tQ3Jl
YXRvciA9IGNyZWF0b3I7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0
ZT4gTWVkaWFSZWNvcmRlcjo6Z2V0UHJpdmF0ZUltcGwoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRl
JiBzdHJlYW0pCitzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IE1lZGlhUmVj
b3JkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCiB7CiAgICAgaWYgKG1fY3VzdG9tQ3JlYXRv
cikKICAgICAgICAgcmV0dXJuIG1fY3VzdG9tQ3JlYXRvcigpOwogICAgIAotI2lmIFBMQVRGT1JN
KENPQ09BKQotICAgIHJldHVybiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmNyZWF0ZShz
dHJlYW0pOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc3RyZWFtKTsKLSAgICByZXR1cm4gbnVs
bHB0cjsKLSNlbmRpZgorICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCk7CisgICAgaWYg
KCFwYWdlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBwYWdlLT5tZWRp
YVJlY29yZGVyUHJvdmlkZXIoKS5jcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShzdHJlYW0pOwog
fQogCiBNZWRpYVJlY29yZGVyOjpNZWRpYVJlY29yZGVyKERvY3VtZW50JiBkb2N1bWVudCwgUmVm
PE1lZGlhU3RyZWFtPiYmIHN0cmVhbSwgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2
YXRlPiYmIHByaXZhdGVJbXBsLCBPcHRpb25zJiYgb3B0aW9uKQpAQCAtMTgyLDExICsxODYsMTcg
QEAgdm9pZCBNZWRpYVJlY29yZGVyOjpkaWRBZGRPclJlbW92ZVRyYWNrKCkKICAgICAgICAgaWYg
KCFtX2lzQWN0aXZlIHx8IHN0YXRlKCkgPT0gUmVjb3JkaW5nU3RhdGU6OkluYWN0aXZlKQogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICBzdG9wUmVjb3JkaW5nSW50ZXJuYWwoKTsKLSAgICAg
ICAgYXV0byBldmVudCA9IE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLmVycm9yRXZlbnQsIEV4Y2VwdGlvbiB7IFVua25vd25FcnJvciwgIlRyYWNrIGNhbm5vdCBi
ZSBhZGRlZCB0byBvciByZW1vdmVkIGZyb20gdGhlIE1lZGlhU3RyZWFtIHdoaWxlIHJlY29yZGlu
ZyBpcyBoYXBwZW5pbmciX3MgfSk7Ci0gICAgICAgIGRpc3BhdGNoRXZlbnQoV1RGTW92ZShldmVu
dCkpOworICAgICAgICBkaXNwYXRjaEVycm9yKEV4Y2VwdGlvbiB7IFVua25vd25FcnJvciwgIlRy
YWNrIGNhbm5vdCBiZSBhZGRlZCB0byBvciByZW1vdmVkIGZyb20gdGhlIE1lZGlhU3RyZWFtIHdo
aWxlIHJlY29yZGluZyBpcyBoYXBwZW5pbmciX3MgfSk7CiAgICAgfSk7CiB9CiAKK3ZvaWQgTWVk
aWFSZWNvcmRlcjo6ZGlzcGF0Y2hFcnJvcihFeGNlcHRpb24mJiBleGNlcHRpb24pCit7CisgICAg
aWYgKCFtX2lzQWN0aXZlKQorICAgICAgICByZXR1cm47CisgICAgZGlzcGF0Y2hFdmVudChNZWRp
YVJlY29yZGVyRXJyb3JFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCBXVEZN
b3ZlKGV4Y2VwdGlvbikpKTsKK30KKwogdm9pZCBNZWRpYVJlY29yZGVyOjp0cmFja0VuZGVkKE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKIHsKICAgICBhdXRvIHBvc2l0aW9uID0gbV90cmFja3Mu
ZmluZE1hdGNoaW5nKFtdKGF1dG8mIHRyYWNrKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaAppbmRleCBlYjZmOTZhNmFlMGEz
OWJhMTBiNTIwYmI5OGNjNGVlMWI1MzkzNzQ0Li5lOTBiOTliOTU3NTY1Y2MwMDY4MzNkOTYzYTFm
NTUwODk4NzYwNTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVj
b3JkZXIvTWVkaWFSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFy
ZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKQEAgLTcxLDExICs3MSwxMSBAQCBwdWJsaWM6CiAgICAg
CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc3RhcnRSZWNvcmRpbmcoT3B0aW9uYWw8aW50Pik7CiAg
ICAgRXhjZXB0aW9uT3I8dm9pZD4gc3RvcFJlY29yZGluZygpOwotICAgIAorCiBwcml2YXRlOgog
ICAgIE1lZGlhUmVjb3JkZXIoRG9jdW1lbnQmLCBSZWY8TWVkaWFTdHJlYW0+JiYsIHN0ZDo6dW5p
cXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4mJiwgT3B0aW9ucyYmID0geyB9KTsKIAotICAg
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IGdldFByaXZhdGVJ
bXBsKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKERvY3Vt
ZW50JiwgY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJik7CiAgICAgCiAgICAgRG9jdW1lbnQqIGRv
Y3VtZW50KCkgY29uc3Q7CiAKQEAgLTkxLDcgKzkxLDkgQEAgcHJpdmF0ZToKICAgICBjb25zdCBj
aGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CiAgICAgCiAgICAgdm9pZCBz
dG9wUmVjb3JkaW5nSW50ZXJuYWwoKTsKLSAgICAKKworICAgIHZvaWQgZGlzcGF0Y2hFcnJvcihF
eGNlcHRpb24mJik7CisKICAgICAvLyBNZWRpYVN0cmVhbTo6T2JzZXJ2ZXIKICAgICB2b2lkIGRp
ZEFkZE9yUmVtb3ZlVHJhY2soKSBmaW5hbDsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjY0ZmNjYzM2OGE2MTI3ZGY5OTFmYmZkM2RmYzFiZmYzMzkwYWMwMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9N
ZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgiCisK
KyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZS5oIgorCisjaWYgUExBVEZPUk0oQ09DT0Ep
CisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmgiCisjZW5kaWYKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK3N0ZDo6dW5pcXVl
X3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gTWVkaWFSZWNvcmRlclByb3ZpZGVyOjpjcmVhdGVN
ZWRpYVJlY29yZGVyUHJpdmF0ZShjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKK3sK
KyNpZiBQTEFURk9STShDT0NPQSkKKyAgICByZXR1cm4gTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJ
bXBsOjpjcmVhdGUoc3RyZWFtKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHN0cmVhbSk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKK30KKyNlbmRpZgorCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclBy
b3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNGE5M2FmNDg2NzY2ZDc1ZWE4NGI1ZjVlYjY5MjI0MTkxNzEw
ZTA3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNv
cmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVkaWFSZWNv
cmRlclByaXZhdGU7CitjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7CisKK2NsYXNzIFdFQkNPUkVf
RVhQT1JUIE1lZGlhUmVjb3JkZXJQcm92aWRlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CitwdWJsaWM6CisgICAgTWVkaWFSZWNvcmRlclByb3ZpZGVyKCkgPSBkZWZhdWx0OworICAg
IHZpcnR1YWwgfk1lZGlhUmVjb3JkZXJQcm92aWRlcigpID0gZGVmYXVsdDsKKworI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRl
clByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtUHJp
dmF0ZSYpOworI2VuZGlmCisKKyAgICB2b2lkIHNldFVzZUdQVVByb2Nlc3MoYm9vbCB2YWx1ZSkg
eyBtX3VzZUdQVVByb2Nlc3MgPSB2YWx1ZTsgfQorCitwcm90ZWN0ZWQ6CisgICAgYm9vbCBtX3Vz
ZUdQVVByb2Nlc3MgeyBmYWxzZSB9OworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA2MGJiYmZk
NDZlZTg3OTY4ZmQyYzFlZmE1ZmY3N2I3ZWYwYWM0ZDY4Li40MTEyMTU1N2FlNmYzNWRiOWFkNWY0
YzFlOGFjY2NhMDg2NjNlNmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTUxLDYgKzE1MSw3IEBAIE1v
ZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKIAogTW9kdWxlcy9tZWRp
YXJlY29yZGVyL0Jsb2JFdmVudC5jcHAKIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29y
ZGVyLmNwcAorTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAK
IE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyRXJyb3JFdmVudC5jcHAKIAogTW9k
dWxlcy9tZWRpYXNlc3Npb24vSFRNTE1lZGlhRWxlbWVudE1lZGlhU2Vzc2lvbi5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBl
YzQwODRkOTg0NThjMzUzMjQyNWJjOWVlZjc1MzdmNTA2MzViMzUwLi40NTE0YWY2YzUyMzkxMDEx
ODc3OTNiZjlkZmUzOGVhY2E4NjM0ZTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTAxLDYgKzExMDEsNyBAQAogCQk0MTc2
MTJCMDFFM0E5OTQwMDBDM0Q4MUQgLyogTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3NjEyQUMxRTNBOTkzQjAw
QzNEODFEIC8qIExpYldlYlJUQ01lZGlhRW5kcG9pbnQuaCAqLzsgfTsKIAkJNDE3NjEyQjExRTNB
OTk0MDAwQzNEODFEIC8qIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc2MTJBRDFFM0E5OTNC
MDBDM0Q4MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCAqLzsgfTsKIAkJ
NDE3NjEyQjIxRTNBOTk0MDAwQzNEODFEIC8qIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3NjEy
QUUxRTNBOTkzQjAwQzNEODFEIC8qIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5oICov
OyB9OworCQk0MTc2RTg5NjIzQzM1MzdCMDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc2RTg4
RjIzQzM0OEQyMDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE3REE2RDkxMzczNEU2RTAw
N0M1N0ZCIC8qIEludGVybmFscy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTdEQTRDRjEzNzM0MzI2MDA3QzU3RkIgLyogSW50ZXJuYWxzLmNwcCAq
LzsgfTsKIAkJNDE3REE2REExMzczNEU2RTAwN0M1N0ZCIC8qIEludGVybmFscy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3REE0Q0UxMzczNDMyNjAw
N0M1N0ZCIC8qIEludGVybmFscy5oICovOyB9OwogCQk0MTdEQTcxRDEzNzM1REZBMDA3QzU3RkIg
LyogSlNJbnRlcm5hbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDE3REE3MUIxMzczNURGQTAwN0M1N0ZCIC8qIEpTSW50ZXJuYWxzLmNwcCAqLzsg
fTsKQEAgLTEzNzQsOSArMTM3NSw5IEBACiAJCTRCREVBMzJDMjE4MDMzRUIwMDUyREZDRCAvKiBK
U1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDRCREVBMzJCMjE4MDMzRUIwMDUyREZDRCAvKiBKU1dvcmtsZXRHbG9i
YWxTY29wZUJhc2UuaCAqLzsgfTsKIAkJNEQzQjAwQUIyMTVENjlBNzAwNzZCOTgzIC8qIE1lZGlh
UmVjb3JkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDREM0IwMEE5MjE1RDY5QTcwMDc2Qjk4MyAvKiBNZWRpYVJlY29yZGVyLmggKi87IH07CiAJCTRE
M0IwMEFGMjE1RDZBNjkwMDc2Qjk4MyAvKiBCbG9iRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREM0IwMEFEMjE1RDZBNjkwMDc2Qjk4MyAvKiBC
bG9iRXZlbnQuaCAqLzsgfTsKLQkJNEQzQjUwMTYyMTdFNThCNzAwNjY1REIxIC8qIE1lZGlhUmVj
b3JkZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0RDNCNTAxNDIxN0U1OEI3MDA2NjVEQjEgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCAq
LzsgfTsKKwkJNEQzQjUwMTYyMTdFNThCNzAwNjY1REIxIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RDNCNTAx
NDIxN0U1OEI3MDA2NjVEQjEgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0RDczRjk0NjIxOEJDNUZBMDAz
QTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RDczRjk0NDIxOEJDNUZBMDAzQTNFRDYgLyog
TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmggKi87IH07Ci0JCTRENzNGOTRFMjE4QzRBODcw
MDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RDczRjk0QzIxOEM0QTg3MDAzQTNF
RDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oICovOyB9OworCQk0RDczRjk0
RTIxOEM0QTg3MDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEQ3M0Y5NEMyMThD
NEE4NzAwM0EzRUQ2IC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0REI3MTMwRDIxNkVD
QjREMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREQjcxMzBDMjE2RUMyQkQwMDk2QTRERCAv
KiBNZWRpYVJlY29yZGVyRXJyb3JFdmVudC5oICovOyB9OwogCQk0RTE5NTkyMjBBMzlEQUJBMDAy
MjBGRTUgLyogTWVkaWFGZWF0dXJlTmFtZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRFMTk1OTIwMEEzOURBQkEwMDIyMEZFNSAvKiBNZWRpYUZlYXR1
cmVOYW1lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTRFMTk1OTJBMEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RTE5NTkyNDBBMzlEQUNDMDAyMjBG
RTUgLyogTWVkaWFRdWVyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC03Mzk5LDYgKzc0MDAsOCBAQAogCQk0MTc2MTJBRTFFM0E5OTNCMDBDM0Q4
MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5oOyBwYXRoID0g
bGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTc2OTAwMzIyRkNEOEYyMDBCMTU3NkQgLyogTWVkaWFTb3VyY2VS
ZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNvdXJjZVJl
Z2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzY5MDA0MjJGQ0Q4RjIw
MEIxNTc2RCAvKiBNZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1lZGlhU291cmNlUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0MTc2RTg4RjIzQzM0OEQyMDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclBy
b3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJQ
cm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc2RTg5MTIzQzM0Qjc1
MDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IE1lZGlhUmVjb3JkZXJQcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxNzdGNTFDMjM4MjU0NDAwMEMwNDQ4NiAvKiBCYXNlQXVkaW9TaGFyZWRVbml0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VBdWRpb1NoYXJlZFVuaXQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc3RjUxRTIzODI1NDVFMDBDMDQ0ODYg
LyogQmFzZUF1ZGlvU2hhcmVkVW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBCYXNlQXVkaW9TaGFyZWRVbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
N0RBNENFMTM3MzQzMjYwMDdDNTdGQiAvKiBJbnRlcm5hbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW50ZXJuYWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xODkzMiw2ICsxODkzNSw4IEBACiAJCQkJNERCNzEzMEUyMTZFRUJBRTAwOTZBNEREIC8qIE1l
ZGlhUmVjb3JkZXJFcnJvckV2ZW50LmNwcCAqLywKIAkJCQk0REI3MTMwQzIxNkVDMkJEMDA5NkE0
REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaCAqLywKIAkJCQk0REI3MTMwQTIxNkVDMkJD
MDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaWRsICovLAorCQkJCTQxNzZFODkx
MjNDMzRCNzUwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwICovLAorCQkJCTQx
NzZFODhGMjNDMzQ4RDIwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCAqLywKIAkJ
CSk7CiAJCQlwYXRoID0gbWVkaWFyZWNvcmRlcjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CkBAIC0zMTQ3NCw2ICszMTQ3OSw3IEBACiAJCQkJNEQzQjUwMTYyMTdFNThCNzAwNjY1REIxIC8q
IE1lZGlhUmVjb3JkZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RDczRjk0NjIxOEJD
NUZBMDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0RDczRjk0RTIxOEM0QTg3MDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE3NkU4OTYyM0MzNTM3QjAwM0U4M0ZF
IC8qIE1lZGlhUmVjb3JkZXJQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzkwODQzRDAx
QjE4RTQ3RDAwQjY4NTY0IC8qIE1lZGlhUmVtb3RlQ29udHJvbHMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUNEOEFDQThGMUQyMzk3MTkwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5rLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDRUVGQ0Q3QTE5REIzMUY3MDAzODc2RDcgLyogTWVkaWFSZXNvdXJj
ZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
Y3BwCmluZGV4IDg0ZTRlMThjM2Y2MzhlZTMzZDI4MDE4NGRkZDhjYWE4YWEwZTQ5MjIuLmNiNTFm
MzZmZWJmYjA4MWUyYjZmNzRlZTZlNDkwMThjZDk3MTA0ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuY3BwCkBAIC01Myw2ICs1Myw4IEBACiAjaW5jbHVkZSAiSURCQ29ubmVj
dGlvblRvU2VydmVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAi
TGliV2ViUlRDUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZS5oIgor
I2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92aWRlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlQ29uZmlndXJh
dGlvbi5oIgpAQCAtNTcxLDEwICs1NzMsMTkgQEAgUmVmPFN0b3JhZ2VOYW1lc3BhY2U+IEVtcHR5
U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOjpjcmVhdGVUcmFuc2llbnRMb2NhbFN0b3JhZ2UKICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbXB0eVN0b3JhZ2VOYW1lc3BhY2UgeyBzZXNzaW9uSUQg
fSk7CiB9CiAKLWNsYXNzIEVtcHR5U3RvcmFnZVNlc3Npb25Qcm92aWRlciA6IHB1YmxpYyBTdG9y
YWdlU2Vzc2lvblByb3ZpZGVyIHsKK2NsYXNzIEVtcHR5U3RvcmFnZVNlc3Npb25Qcm92aWRlciBm
aW5hbCA6IHB1YmxpYyBTdG9yYWdlU2Vzc2lvblByb3ZpZGVyIHsKICAgICBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24qIHN0b3JhZ2VTZXNzaW9uKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsg
fQogfTsKIAorY2xhc3MgRW1wdHlNZWRpYVJlY29yZGVyUHJvdmlkZXIgZmluYWwgOiBwdWJsaWMg
TWVkaWFSZWNvcmRlclByb3ZpZGVyIHsKK3B1YmxpYzoKKyAgICBFbXB0eU1lZGlhUmVjb3JkZXJQ
cm92aWRlcigpID0gZGVmYXVsdDsKK3ByaXZhdGU6CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlhUmVj
b3JkZXJQcml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYpIGZpbmFsIHsgcmV0dXJuIG51
bGxwdHI7IH0KKyNlbmRpZgorfTsKKwogUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRp
b25XaXRoRW1wdHlDbGllbnRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBQYWdl
Q29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbiB7CkBAIC01ODUsNyArNTk2LDggQEAgUGFn
ZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkKICAgICAgICAgQ2FjaGVTdG9yYWdlUHJvdmlkZXI6OmNyZWF0ZSgp
LAogICAgICAgICBhZG9wdFJlZigqbmV3IEVtcHR5QmFja0ZvcndhcmRDbGllbnQpLAogICAgICAg
ICBDb29raWVKYXI6OmNyZWF0ZShhZG9wdFJlZigqbmV3IEVtcHR5U3RvcmFnZVNlc3Npb25Qcm92
aWRlcikpLAotICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5UHJvZ3Jlc3NUcmFja2VyQ2xpZW50
PigpCisgICAgICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCks
CisgICAgICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKICAg
ICB9OwogCiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEVtcHR5Q2hyb21lQ2xpZW50PiBkdW1t
eUNocm9tZUNsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDYzYzA1MzQzNzk4ZDMxMDJkODAz
MmQzNTcxOTNjYzliYTkzNzY2MTkuLjAxMDI3OWZlZmM0NWY5ODZmMjgwNWJlNzdiZjNjY2RmNzFl
NTFkYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMjQ2LDYgKzI0Niw3IEBAIFBhZ2U6OlBhZ2Uo
UGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikKICNpZiBFTkFCTEUoU1BFRUNI
X1NZTlRIRVNJUykKICAgICAsIG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50KFdURk1vdmUocGFnZUNv
bmZpZ3VyYXRpb24uc3BlZWNoU3ludGhlc2lzQ2xpZW50KSkKICNlbmRpZgorICAgICwgbV9tZWRp
YVJlY29yZGVyUHJvdmlkZXIoKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24ubWVkaWFSZWNvcmRl
clByb3ZpZGVyKSkpCiAgICAgLCBtX2xpYldlYlJUQ1Byb3ZpZGVyKFdURk1vdmUocGFnZUNvbmZp
Z3VyYXRpb24ubGliV2ViUlRDUHJvdmlkZXIpKQogICAgICwgbV92ZXJ0aWNhbFNjcm9sbEVsYXN0
aWNpdHkoU2Nyb2xsRWxhc3RpY2l0eUFsbG93ZWQpCiAgICAgLCBtX2hvcml6b250YWxTY3JvbGxF
bGFzdGljaXR5KFNjcm9sbEVsYXN0aWNpdHlBbGxvd2VkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCAyYzNm
N2MzNDMzODdmYjQ4YzJmNTVlM2VhNmU5NWMzZTlmNTQ3NjUwLi5lMWYyN2NmYzhjYzk3NTkzY2Fl
MjU0ZDZlOGU2NTA3Y2FlNzBlMmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTEwLDYgKzExMCw3IEBA
IGNsYXNzIExpYldlYlJUQ1Byb3ZpZGVyOwogY2xhc3MgTG93UG93ZXJNb2RlTm90aWZpZXI7CiBj
bGFzcyBNZWRpYUNhblN0YXJ0TGlzdGVuZXI7CiBjbGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0Owor
Y2xhc3MgTWVkaWFSZWNvcmRlclByb3ZpZGVyOwogY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb247CiBj
bGFzcyBQYWdlQ29uc29sZUNsaWVudDsKIGNsYXNzIFBhZ2VEZWJ1Z2dhYmxlOwpAQCAtNTg0LDYg
KzU4NSw3IEBAIHB1YmxpYzoKICAgICBEYXRhYmFzZVByb3ZpZGVyJiBkYXRhYmFzZVByb3ZpZGVy
KCkgeyByZXR1cm4gbV9kYXRhYmFzZVByb3ZpZGVyOyB9CiAgICAgQ2FjaGVTdG9yYWdlUHJvdmlk
ZXImIGNhY2hlU3RvcmFnZVByb3ZpZGVyKCkgeyByZXR1cm4gbV9jYWNoZVN0b3JhZ2VQcm92aWRl
cjsgfQogICAgIFNvY2tldFByb3ZpZGVyJiBzb2NrZXRQcm92aWRlcigpIHsgcmV0dXJuIG1fc29j
a2V0UHJvdmlkZXI7IH0KKyAgICBNZWRpYVJlY29yZGVyUHJvdmlkZXImIG1lZGlhUmVjb3JkZXJQ
cm92aWRlcigpIHsgcmV0dXJuIG1fbWVkaWFSZWNvcmRlclByb3ZpZGVyOyB9CiAgICAgQ29va2ll
SmFyJiBjb29raWVKYXIoKSB7IHJldHVybiBtX2Nvb2tpZUphci5nZXQoKTsgfQogCiAgICAgU3Rv
cmFnZU5hbWVzcGFjZVByb3ZpZGVyJiBzdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIoKSB7IHJldHVy
biBtX3N0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5nZXQoKTsgfQpAQCAtNzk1LDYgKzc5Nyw3IEBA
IHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFN5bnRoZXNpc0NsaWVudD4gbV9z
cGVlY2hTeW50aGVzaXNDbGllbnQ7CiAjZW5kaWYKIAorICAgIFVuaXF1ZVJlZjxNZWRpYVJlY29y
ZGVyUHJvdmlkZXI+IG1fbWVkaWFSZWNvcmRlclByb3ZpZGVyOwogICAgIFVuaXF1ZVJlZjxMaWJX
ZWJSVENQcm92aWRlcj4gbV9saWJXZWJSVENQcm92aWRlcjsKICAgICBSVENDb250cm9sbGVyIG1f
cnRjQ29udHJvbGxlcjsKIApAQCAtOTIwLDcgKzkyMyw2IEBAIHByaXZhdGU6CiAgICAgUmVmPFVz
ZXJDb250ZW50UHJvdmlkZXI+IG1fdXNlckNvbnRlbnRQcm92aWRlcjsKICAgICBSZWY8VmlzaXRl
ZExpbmtTdG9yZT4gbV92aXNpdGVkTGlua1N0b3JlOwogICAgIFJlZlB0cjxXaGVlbEV2ZW50VGVz
dE1vbml0b3I+IG1fd2hlZWxFdmVudFRlc3RNb25pdG9yOwotCiAgICAgSGFzaFNldDxBY3Rpdml0
eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIqPiBtX2FjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlcnM7CiAK
ICNpZiBFTkFCTEUoUkVTT1VSQ0VfVVNBR0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZp
Z3VyYXRpb24uY3BwCmluZGV4IGVmODc3YTU1ODgyMWU0NDY3ZjQ1Y2EzYzA1MjFjYWYyMmQ5MDdk
ZGUuLjMzOGY0ZTdjMTkxMjFhZjE3OTQyZDAxNzI0Y2UyOTExM2M1ZDNmMmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5j
bHVkZSAiRHJhZ0NsaWVudC5oIgogI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgogI2luY2x1ZGUg
IkxpYldlYlJUQ1Byb3ZpZGVyLmgiCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgi
CiAjaW5jbHVkZSAiUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAiUGx1Z0lu
Q2xpZW50LmgiCiAjaW5jbHVkZSAiUGx1Z2luSW5mb1Byb3ZpZGVyLmgiCkBAIC01NSw3ICs1Niw3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25m
aWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVu
dD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiBzb2NrZXRQcm92aWRlciwg
VW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmIGxpYldlYlJUQ1Byb3ZpZGVyLCBSZWY8Q2Fj
aGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9yYWdlUHJvdmlkZXIsIFJlZjxCYWNrRm9yd2Fy
ZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVudCwgUmVmPENvb2tpZUphcj4mJiBjb29raWVKYXIs
IFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50
KQorUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2Nr
ZXRQcm92aWRlcj4mJiBzb2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVy
PiYmIGxpYldlYlJUQ1Byb3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVT
dG9yYWdlUHJvdmlkZXIsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVu
dCwgUmVmPENvb2tpZUphcj4mJiBjb29raWVKYXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJD
bGllbnQ+JiYgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50LCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclBy
b3ZpZGVyPiYmIG1lZGlhUmVjb3JkZXJQcm92aWRlcikKICAgICA6IHNlc3Npb25JRChzZXNzaW9u
SUQpCiAgICAgLCBlZGl0b3JDbGllbnQoV1RGTW92ZShlZGl0b3JDbGllbnQpKQogICAgICwgc29j
a2V0UHJvdmlkZXIoV1RGTW92ZShzb2NrZXRQcm92aWRlcikpCkBAIC02NCw2ICs2NSw3IEBAIFBh
Z2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFVuaXF1ZVJlZjxFZGl0b3JDCiAgICAgLCBiYWNrRm9yd2FyZENsaWVudChXVEZNb3ZlKGJh
Y2tGb3J3YXJkQ2xpZW50KSkKICAgICAsIGNvb2tpZUphcihXVEZNb3ZlKGNvb2tpZUphcikpCiAg
ICAgLCBjYWNoZVN0b3JhZ2VQcm92aWRlcihXVEZNb3ZlKGNhY2hlU3RvcmFnZVByb3ZpZGVyKSkK
KyAgICAsIG1lZGlhUmVjb3JkZXJQcm92aWRlcihXVEZNb3ZlKG1lZGlhUmVjb3JkZXJQcm92aWRl
cikpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3Vy
YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAppbmRleCAx
OTFhMDJiNjE1ZjQwYTk4MGM0MjFmN2ZiZjNmMzE2ZDJiMTY0ZmVmLi4zYThlZDMzNDQwYzJjMTg4
NTI4MzE4OTE4YTc1MjJiOTIxN2Y0NzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmln
dXJhdGlvbi5oCkBAIC01Miw2ICs1Miw3IEBAIGNsYXNzIEVkaXRvckNsaWVudDsKIGNsYXNzIEZy
YW1lTG9hZGVyQ2xpZW50OwogY2xhc3MgSW5zcGVjdG9yQ2xpZW50OwogY2xhc3MgTGliV2ViUlRD
UHJvdmlkZXI7CitjbGFzcyBNZWRpYVJlY29yZGVyUHJvdmlkZXI7CiBjbGFzcyBQYXltZW50Q29v
cmRpbmF0b3JDbGllbnQ7CiBjbGFzcyBQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQ7CiBjbGFzcyBQ
bHVnSW5DbGllbnQ7CkBAIC02OCw3ICs2OSw3IEBAIGNsYXNzIFNwZWVjaFN5bnRoZXNpc0NsaWVu
dDsKIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9uIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQ
YWdlQ29uZmlndXJhdGlvbik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAg
IFdFQkNPUkVfRVhQT1JUIFBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklELCBVbmlxdWVS
ZWY8RWRpdG9yQ2xpZW50PiYmLCBSZWY8U29ja2V0UHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJX
ZWJSVENQcm92aWRlcj4mJiwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmLCBSZWY8QmFja0Zv
cndhcmRDbGllbnQ+JiYsIFJlZjxDb29raWVKYXI+JiYsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNr
ZXJDbGllbnQ+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2VDb25maWd1cmF0aW9uKFBBTDo6
U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmLCBSZWY8U29ja2V0UHJvdmlkZXI+
JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiwgUmVmPENhY2hlU3RvcmFnZVByb3Zp
ZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYsIFJlZjxDb29raWVKYXI+JiYsIFVuaXF1
ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJv
dmlkZXI+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIH5QYWdlQ29uZmlndXJhdGlvbigpOwogICAg
IFBhZ2VDb25maWd1cmF0aW9uKFBhZ2VDb25maWd1cmF0aW9uJiYpOwogCkBAIC0xMjMsNiArMTI0
LDcgQEAgcHVibGljOgogICAgIFJlZlB0cjxEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVy
PiBkZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyOwogI2VuZGlmCiAgICAgVmVjdG9yPFN0
cmluZz4gY29yc0Rpc2FibGluZ1BhdHRlcm5zOworICAgIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVy
UHJvdmlkZXI+IG1lZGlhUmVjb3JkZXJQcm92aWRlcjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclBy
aXZhdGUuaAppbmRleCAxMGU5MWYzNzIxOTdlNzI2MjdmMjY1NmJkZjJiNzQ5NmViOTNkOGE1Li5h
ZDUxODA3OWU4OTNiOWE0MDZmNjAxYzg4MDY0MTVkYTlhNGMwMGFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
UHJpdmF0ZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhh
bmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgIkV4Y2VwdGlvbi5o
IgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIApAQCAtNDMsMTIgKzQ0LDE5IEBAIGNsYXNz
IFNoYXJlZEJ1ZmZlcjsKIAogY2xhc3MgTWVkaWFSZWNvcmRlclByaXZhdGUgewogcHVibGljOgot
ICAgIHZpcnR1YWwgdm9pZCBzYW1wbGVCdWZmZXJVcGRhdGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlJiwgTWVkaWFTYW1wbGUmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGF1ZGlvU2FtcGxlc0F2
YWlsYWJsZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIGNvbnN0IFdURjo6TWVkaWFUaW1lJiwg
Y29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwg
c2l6ZV90KSA9IDA7CisgICAgdmlydHVhbCB+TWVkaWFSZWNvcmRlclByaXZhdGUoKSA9IGRlZmF1
bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2FtcGxlQnVmZmVyVXBkYXRlZChjb25zdCBNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBh
dWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBjb25z
dCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGZldGNo
RGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxTaGFyZWRCdWZmZXI+JiYsIGNvbnN0
IFN0cmluZyYgbWltZVR5cGUpPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB+TWVkaWFSZWNvcmRlclBy
aXZhdGUoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BSZWNvcmRpbmcoKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgc3RvcFJlY29yZGluZygpIHsgfTsKKworICAgIHVzaW5nIEVycm9y
Q2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+OworICAgIHZv
aWQgc2V0RXJyb3JDYWxsYmFjayhFcnJvckNhbGxiYWNrJiYgZXJyb3JDYWxsYmFjaykgeyBtX2Vy
cm9yQ2FsbGJhY2sgPSBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spOyB9CisKK3Byb3RlY3RlZDoKKyAg
ICBFcnJvckNhbGxiYWNrIG1fZXJyb3JDYWxsYmFjazsKIH07CiAgICAgCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHAKaW5kZXgg
OTE4MzA0NjYwNjY2ZmNlZjU1OWUzYTczZDZmYzRkNWI1NjVlOWU0ZC4uNmEyNGEyMGRlYzM4ZjY1
NmNlNWE4YWJmODA3ZWU3MDczZDA0ZWZmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZh
dGVBVkZJbXBsLmNwcApAQCAtNDAsNyArNDAsNiBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNv
cmRlclByaXZhdGVBVkZJbXBsPiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmNyZWF0ZQog
ewogICAgIC8vIEZJWE1FOiB3ZSB3aWxsIG5lZWQgdG8gaW1wbGVtZW50IHN1cHBvcnQgZm9yIG11
bHRpcGxlIGF1ZGlvL3ZpZGVvIHRyYWNrcwogICAgIC8vIEN1cnJlbnRseSB3ZSBvbmx5IGNob29z
ZSB0aGUgZmlyc3QgdHJhY2sgYXMgdGhlIHJlY29yZGVkIHRyYWNrLgotICAgIC8vIEZJWE1FOiBX
ZSB3b3VsZCBiZXR0ZXIgdG8gdGhyb3cgYW4gZXhjZXB0aW9uIHRvIEphdmFTY3JpcHQgaWYgd3Jp
dGVyIGNyZWF0aW9uIGZhaWxzLgogCiAgICAgU3RyaW5nIGF1ZGlvVHJhY2tJZDsKICAgICBTdHJp
bmcgdmlkZW9UcmFja0lkOwpAQCAtODIsMTQgKzgxLDE0IEBAIE1lZGlhUmVjb3JkZXJQcml2YXRl
QVZGSW1wbDo6TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsKFJlZjxNZWRpYVJlY29yZGVyUHJp
dmF0CiB7CiB9CiAKLXZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjpzYW1wbGVCdWZm
ZXJVcGRhdGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaywgTWVkaWFTYW1wbGUmIHNh
bXBsZUJ1ZmZlcikKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjpzYW1wbGVCdWZm
ZXJVcGRhdGVkKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaywgTWVkaWFTYW1w
bGUmIHNhbXBsZUJ1ZmZlcikKIHsKICAgICBpZiAodHJhY2suaWQoKSAhPSBtX3JlY29yZGVkVmlk
ZW9UcmFja0lEKQogICAgICAgICByZXR1cm47CiAgICAgbV93cml0ZXItPmFwcGVuZFZpZGVvU2Ft
cGxlQnVmZmVyKHNhbXBsZUJ1ZmZlci5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1
ZmZlcik7CiB9CiAKLXZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjphdWRpb1NhbXBs
ZXNBdmFpbGFibGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBjb25zdCBXVEY6Ok1l
ZGlhVGltZSYgbWVkaWFUaW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3Qg
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBzYW1wbGVDb3VudCkK
K3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjphdWRpb1NhbXBsZXNBdmFpbGFibGUo
Y29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBjb25zdCBXVEY6Ok1lZGlhVGlt
ZSYgbWVkaWFUaW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBzYW1wbGVDb3VudCkKIHsKICAg
ICBpZiAodHJhY2suaWQoKSAhPSBtX3JlY29yZGVkQXVkaW9UcmFja0lEKQogICAgICAgICByZXR1
cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaAppbmRleCA1ZWMwYmVlN2I5
NzcyMDlkZDhhNGYxOWRmMDk5YzE4MDM3MWUwYjc5Li4wY2YwZGYzYzY0Y2M5NzEzZTMwNTliZTM2
Y2FjYzlmYzdjY2MwYjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmgK
QEAgLTQzLDggKzQzLDggQEAgcHJpdmF0ZToKIAogICAgIGZyaWVuZCBzdGQ6OnVuaXF1ZV9wdHI8
TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsPiBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUmVjb3Jk
ZXJQcml2YXRlQVZGSW1wbD4oUmVmPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiYmLCBTdHJp
bmcmJiwgU3RyaW5nJiYpOwogCi0gICAgdm9pZCBzYW1wbGVCdWZmZXJVcGRhdGVkKE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlJiwgTWVkaWFTYW1wbGUmKSBmaW5hbDsKLSAgICB2b2lkIGF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIGNvbnN0IFdURjo6TWVkaWFU
aW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiwgc2l6ZV90KSBmaW5hbDsKKyAgICB2b2lkIHNhbXBsZUJ1ZmZlclVwZGF0ZWQoY29uc3Qg
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBNZWRpYVNhbXBsZSYpIGZpbmFsOworICAgIHZvaWQg
YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgY29u
c3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOwogICAgIHZvaWQgZmV0Y2hEYXRhKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mJiwgY29uc3QgU3RyaW5n
Jik+JiYpIGZpbmFsOwogICAgIGNvbnN0IFN0cmluZyYgbWltZVR5cGUoKTsKICAgICB2b2lkIHN0
b3BSZWNvcmRpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmNwcAppbmRleCBj
ODE2ZTFhYzEzMzUwZGI2ZDYwN2VjMWQwODUwMDQwZTM1N2I0NjFlLi5mMmFjOGMyN2NiNDVjOTdj
MmRjMDNiOGZlNGE3MzY5MTdkNGJjZjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1v
Y2suY3BwCkBAIC0zMywxNyArMzMsMTcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lk
IE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6c2FtcGxlQnVmZmVyVXBkYXRlZChNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZSYgdHJhY2ssIE1lZGlhU2FtcGxlJikKK3ZvaWQgTWVkaWFSZWNvcmRlclBy
aXZhdGVNb2NrOjpzYW1wbGVCdWZmZXJVcGRhdGVkKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlJiB0cmFjaywgTWVkaWFTYW1wbGUmKQogewogICAgIGdlbmVyYXRlTW9ja1N0cmluZyh0cmFj
ayk7CiB9CiAKLXZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjphdWRpb1NhbXBsZXNBdmFp
bGFibGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBjb25zdCBXVEY6Ok1lZGlhVGlt
ZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biYsIHNpemVfdCkKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjphdWRpb1NhbXBsZXNB
dmFpbGFibGUoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBjb25zdCBXVEY6
Ok1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiYsIHNpemVfdCkKIHsKICAgICBnZW5lcmF0ZU1vY2tTdHJpbmcodHJhY2spOwog
fQogCi12b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6Z2VuZXJhdGVNb2NrU3RyaW5nKE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaykKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVN
b2NrOjpnZW5lcmF0ZU1vY2tTdHJpbmcoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRy
YWNrKQogewogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9idWZmZXJMb2NrKTsKICAgICBp
ZiAodHJhY2sudHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29y
ZGVyUHJpdmF0ZU1vY2suaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIv
TWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmgKaW5kZXggMDM1NzExZTU1YmY3ZTkxZjM5NzczZjc4
ODgxOGQ4YjQzZGUyNTllZS4uNGRhZWQ2NzMxZGVhNTNlOTc1NjYxYTQ0YTEyNzBmZjE4ZGUyZDg0
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyUHJpdmF0ZU1vY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5oCkBAIC0zNiwxMiArMzYsMTIgQEAg
Y2xhc3MgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU7CiAKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIE1l
ZGlhUmVjb3JkZXJQcml2YXRlTW9jayBmaW5hbCA6IHB1YmxpYyBNZWRpYVJlY29yZGVyUHJpdmF0
ZSB7CiBwcml2YXRlOgotICAgIHZvaWQgc2FtcGxlQnVmZmVyVXBkYXRlZChNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJikgZmluYWw7Ci0gICAgdm9pZCBhdWRpb1NhbXBsZXNB
dmFpbGFibGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYs
IGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYs
IHNpemVfdCkgZmluYWw7CisgICAgdm9pZCBzYW1wbGVCdWZmZXJVcGRhdGVkKGNvbnN0IE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlJiwgTWVkaWFTYW1wbGUmKSBmaW5hbDsKKyAgICB2b2lkIGF1ZGlv
U2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIGNvbnN0IFdU
Rjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKICAgICB2b2lkIGZldGNoRGF0YShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxTaGFyZWRCdWZmZXI+JiYsIGNvbnN0IFN0cmluZyYpPiYm
KSBmaW5hbDsKICAgICBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKCk7CiAgICAgCi0gICAgdm9pZCBn
ZW5lcmF0ZU1vY2tTdHJpbmcoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKTsKKyAgICB2b2lkIGdl
bmVyYXRlTW9ja1N0cmluZyhjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpOwogCiAgICAg
bXV0YWJsZSBMb2NrIG1fYnVmZmVyTG9jazsKICAgICBTdHJpbmdCdWlsZGVyIG1fYnVmZmVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9N
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaApp
bmRleCBmZmY0NWQ2MzkzOGRiMzM4YjQ3MjRiN2E3NDZjZTM3MjRmYTFkM2FiLi41MTk3OGJiNmQ4
ZDFhMWIwZTVjMWM3YTAxNTEyMjJiZDhiZGZiMmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
Q29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29h
L01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaApAQCAtNDksOSArNDksMTAgQEAgY2xh
c3MgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKIGNsYXNzIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
OwogY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CiAKLWNsYXNzIE1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPE1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluPiwgcHVibGljIENhbk1ha2VXZWFr
UHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBN
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxN
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4s
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gewogcHVi
bGljOgogICAgIHN0YXRpYyBSZWZQdHI8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IGNyZWF0
ZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogYXVkaW9UcmFjaywgY29uc3QgTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUqIHZpZGVvVHJhY2spOworICAgIHN0YXRpYyBSZWZQdHI8TWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXI+IGNyZWF0ZShib29sIGhhc0F1ZGlvLCBpbnQgd2lkdGgsIGlu
dCBoZWlnaHQpOwogICAgIH5NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcigpOwogICAgIAogICAg
IGJvb2wgc2V0dXBXcml0ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXJDb2NvYS5tbQppbmRleCA5MmZlMmE0NTBlNTkzZjI0YTk2OGZhZWYwYTZi
OTZmOTVhZGUzNTEzLi4wNjljODg3NGYwMDllMDk2YzI0OWEwNzgwMTkwZGQ4MDQ4YzZiOWJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29h
Lm1tCkBAIC05MCw2ICs5MCwxNyBAQCBzdGF0aWMgTlNTdHJpbmcgKmdldEFWRW5jb2RlckJpdFJh
dGVLZXlXaXRoRmFsbGJhY2soKQogfQogCiBSZWZQdHI8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0
ZXI+IE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjcmVhdGUoY29uc3QgTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUqIGF1ZGlvVHJhY2ssIGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiB2
aWRlb1RyYWNrKQoreworICAgIGludCB3aWR0aCA9IDAsIGhlaWdodCA9IDA7CisgICAgaWYgKHZp
ZGVvVHJhY2spIHsKKyAgICAgICAgYXV0byYgc2V0dGluZ3MgPSB2aWRlb1RyYWNrLT5zZXR0aW5n
cygpOworICAgICAgICB3aWR0aCA9IHNldHRpbmdzLndpZHRoKCk7CisgICAgICAgIGhlaWdodCA9
IHNldHRpbmdzLmhlaWdodCgpOworICAgIH0KKyAgICByZXR1cm4gY3JlYXRlKCEhYXVkaW9UcmFj
aywgd2lkdGgsIGhlaWdodCk7Cit9CisKK1JlZlB0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
cj4gTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNyZWF0ZShib29sIGhhc0F1ZGlvLCBpbnQg
d2lkdGgsIGludCBoZWlnaHQpCiB7CiAgICAgTlNTdHJpbmcgKmRpcmVjdG9yeSA9IEZpbGVTeXN0
ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAInZpZGVvcyIpOwogICAgIE5TU3RyaW5nICpm
aWxlbmFtZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiLyVsbGQubXA0IiwgQ01DbG9j
a0dldFRpbWUoQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSkudmFsdWVdOwpAQCAtMTA2LDEyICsx
MTcsMTEgQEAgUmVmUHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiBNZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlcjo6Y3JlYXRlKGNvbnN0IE1lZGkKIAogICAgIGF1dG8gd3JpdGVyID0gYWRv
cHRSZWYoKm5ldyBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcihXVEZNb3ZlKGF2QXNzZXRXcml0
ZXIpLCBXVEZNb3ZlKGZpbGVQYXRoKSkpOwogCi0gICAgaWYgKGF1ZGlvVHJhY2sgJiYgIXdyaXRl
ci0+c2V0QXVkaW9JbnB1dCgpKQorICAgIGlmIChoYXNBdWRpbyAmJiAhd3JpdGVyLT5zZXRBdWRp
b0lucHV0KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgaWYgKHZpZGVvVHJhY2sp
IHsKLSAgICAgICAgYXV0byYgc2V0dGluZ3MgPSB2aWRlb1RyYWNrLT5zZXR0aW5ncygpOwotICAg
ICAgICBpZiAoIXdyaXRlci0+c2V0VmlkZW9JbnB1dChzZXR0aW5ncy53aWR0aCgpLCBzZXR0aW5n
cy5oZWlnaHQoKSkpCisgICAgaWYgKHdpZHRoICYmIGhlaWdodCkgeworICAgICAgICBpZiAoIXdy
aXRlci0+c2V0VmlkZW9JbnB1dCh3aWR0aCwgaGVpZ2h0KSkKICAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAppbmRleCA0YTA2ODQ0MzhjZTY2NWQ3Y2Qw
NGRhMTBlYTExYTViYzJiNmYyOWY1Li5kZTQ0ZDg4ZWY1YjljMzgxNDA0NGUwNWY3YzI4YmVlMThh
NzJlZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaApAQCAtODEsNyArODEsNyBAQCBwdWJsaWM6CiAKICAg
ICBTdHJpbmcgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CiAKLSAgICBNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZVZlY3RvciB0cmFja3MoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciB0cmFja3MoKSBjb25zdDsKICAgICBNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZSogYWN0aXZlVmlkZW9UcmFjaygpIHsgcmV0dXJuIG1fYWN0aXZlVmlkZW9U
cmFjazsgfQogCiAgICAgYm9vbCBhY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX2lzQWN0aXZlOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAppbmRleCAzOTFhNjUzZjQ4ZTNlN2UzMmE0ODJjNzc5
N2M3ZGM3NzEzMTUwMjViLi4wMDcxNmZkMGE0NTYxNGRlNmNkOGFiYWRlMDU5MGYyYmYxMGMwMjZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKQEAgLTEwMCw3ICsxMDAsNyBAQCBwdWJsaWM6
CiAgICAgUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBjbG9uZSgpOwogCiAgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZSYgc291cmNlKCkgeyByZXR1cm4gbV9zb3VyY2UuZ2V0KCk7IH0KLSAgICBS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9S
VCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUoKSBjb25zdDsKIAogICAgIHZvaWQgZW5k
VHJhY2soKTsKIApAQCAtMTEwLDcgKzExMCw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc09ic2Vy
dmVyKE9ic2VydmVyJikgY29uc3Q7CiAjZW5kaWYKIAotICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBjb25z
dCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3Q7CiAgICAgY29u
c3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgY29uc3Q7
CiAKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgTWVkaWFDb25zdHJhaW50cyYsIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGJhOTQxOGM1MGM3OWYwMzg5NWUzN2JjN2IzNzdm
YWE5M2I1NTczYjYuLjY4YWI0MjM4NzZhNjUwOWU1ZGJlMjBmMDE2MmY0MjdmZTA5MDRjNTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTEyMiw2ICsxMjIsNyBAQAogI2lu
Y2x1ZGUgIk1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnkuaCIKICNpbmNsdWRlICJNZWRp
YVBsYXllci5oIgogI2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIuaCIKKyNpbmNsdWRlICJNZWRpYVJl
Y29yZGVyUHJvdmlkZXIuaCIKICNpbmNsdWRlICJNZWRpYVJlc291cmNlTG9hZGVyLmgiCiAjaW5j
bHVkZSAiTWVkaWFTdHJlYW1UcmFjay5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCkBAIC01
NTAsNiArNTUxLDggQEAgdm9pZCBJbnRlcm5hbHM6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoUGFn
ZSYgcGFnZSkKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRJbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxp
dHlDaGFuZ2VFbmFibGVkKGZhbHNlKTsKKyAgICBXZWJDb3JlOjpNZWRpYVJlY29yZGVyOjpzZXRD
dXN0b21Qcml2YXRlUmVjb3JkZXJDcmVhdG9yKG51bGxwdHIpOworICAgIHBhZ2UubWVkaWFSZWNv
cmRlclByb3ZpZGVyKCkuc2V0VXNlR1BVUHJvY2Vzcyh0cnVlKTsKICNlbmRpZgogCiAgICAgSFRN
TENhbnZhc0VsZW1lbnQ6OnNldE1heFBpeGVsTWVtb3J5Rm9yVGVzdGluZygwKTsgLy8gVGhpcyBt
ZWFucyB1c2UgdGhlIGRlZmF1bHQgdmFsdWUuCkBAIC0xNTU4LDcgKzE1NjEsOSBAQCB2b2lkIElu
dGVybmFsczo6c2V0VXNlR1BVUHJvY2Vzc0ZvcldlYlJUQyhib29sIHVzZUdQVVByb2Nlc3MpCiAg
ICAgYXV0byogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50
IHx8ICFkb2N1bWVudC0+cGFnZSgpKQogICAgICAgICByZXR1cm47CisKICAgICBkb2N1bWVudC0+
cGFnZSgpLT5saWJXZWJSVENQcm92aWRlcigpLnNldFVzZUdQVVByb2Nlc3ModXNlR1BVUHJvY2Vz
cyk7CisgICAgZG9jdW1lbnQtPnBhZ2UoKS0+bWVkaWFSZWNvcmRlclByb3ZpZGVyKCkuc2V0VXNl
R1BVUHJvY2Vzcyh1c2VHUFVQcm9jZXNzKTsKICNlbmRpZgogfQogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3Rz
LnR4dAppbmRleCBmZjUyZDI1MzZmNTY1ZmEyOTViZWI2MjAxMjY4YTBmMzMzMTcwZmYzLi41MzI2
NzhmMzc2MDMzYzNjMDBmOWY2YmQ1YTMwYzM4NjkwZTMzNGJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQK
QEAgLTc4LDYgKzc4LDggQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7
V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9HYW1lcGFkIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlBy
b2Nlc3MvR2VvbG9jYXRpb24iCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9HUFUiCisg
ICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9HUFUvbWVkaWEiCisgICAgIiR7V0VCS0lUX0RJ
Un0vV2ViUHJvY2Vzcy9HUFUvd2VicnRjIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3Mv
SWNvbkRhdGFiYXNlIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Qg
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggNzk5
NGUzY2E3Nzc2MzI5ZDZmNzVkN2FhZjBjOTNmZDlhYTA1OWUxMC4uOTRjMDUxM2E2ZDhkOGUzMzVj
YjFlMjAzMTQxYTg4MGM2ZGEwN2E2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTksNiArMTksOSBAQCAkKFBST0pFQ1RfRElSKS9HUFVQ
cm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVByb2Nlc3Muc2IuaW4KICQoUFJPSkVDVF9E
SVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mvd2VicnRjL0xp
YldlYlJUQ0NvZGVjc1Byb3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9H
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5tZXNzYWdlcy5pbgor
JChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlcnMubWVz
c2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2ll
TWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvQ3VzdG9t
UHJvdG9jb2xzL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5tZXNzYWdlcy5p
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5k
ZXggMGNkMjNlMDFiYmFjZDJlYzRhMGJkYzNiZGZmMmJlMGQ3YjYwYjAxYi4uMGQwODJkZTVhZTQ1
OWE0ZThkODY5ZDg3ZGNmMmE1NDc5ZmJkNDlmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xMjksNiArMTI5LDE1IEBAICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUGxheWVyTWFu
YWdlck1lc3NhZ2VzUmVwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlc1JlcGxp
ZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
TWVkaWFSZWNvcmRlck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlck1l
c3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2VzUmVwbGllcy5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRp
YVJlY29yZGVyc01lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVjb3JkZXJzTWVzc2FnZXMuaAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZWNvcmRl
cnNNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA5ZDNlMmE5MGM3YjRkOTBhNDI2Yzc2YTRl
MDVlNmIyZjgxY2MwZTllLi5lMjkwOTMwOTdjZDliZGViMzQ1YTE5YTVkMzdmZTU3YTU0MGRlYjcw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNDMsNiArMTQzLDggQEAgTUVTU0FH
RV9SRUNFSVZFUlMgPSBcCiAgICAgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eSBcCiAg
ICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyIFwKICAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eSBcCisgICAgUmVtb3RlTWVkaWFSZWNvcmRlciBcCisgICAgUmVtb3RlTWVkaWFSZWNv
cmRlck1hbmFnZXIgXAogICAgIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyIFwKICAgICBSZW1v
dGVPYmplY3RSZWdpc3RyeSBcCiAgICAgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCmluZGV4IDUyYTk1Y2UwZGVkNzAzZDYxZDM0YTlkMTdmMGM4YjQyZTY2NGZkZGEuLjYy
MGI0MWYyOGQ2Njc2YTNkZTE3ZjQ3NmIyZGYzODhmZmY2NDc3MGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAg
LTM5LDYgKzM5LDkgQEAKICNpbmNsdWRlICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oIgog
I2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNs
dWRlICJSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlh
UmVjb3JkZXJNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlY29yZGVy
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oIgogI2lu
Y2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJS
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmgiCkBAIC0xMzcsNiArMTQwLDE0
IEBAIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkmIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OnVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyCiAKICAgICByZXR1cm4gKm1fdXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTsKIH0KKworUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXImIEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6Om1lZGlhUmVjb3JkZXJNYW5hZ2VyKCkKK3sKKyAgICBpZiAo
IW1fcmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIpCisgICAgICAgIG1fcmVtb3RlTWVkaWFSZWNv
cmRlck1hbmFnZXIgPSBtYWtlVW5pcXVlPFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyPigqdGhp
cyk7CisKKyAgICByZXR1cm4gKm1fcmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI7Cit9CiAjZW5k
aWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQpAQCAtMTYzLDYgKzE3
NCwxNCBAQCB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSQogICAgICAgICB1c2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5KCkuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2Vzcyhjb25uZWN0aW9u
LCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBpZiAoZGVjb2Rlci5tZXNz
YWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2Vy
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgbWVkaWFSZWNvcmRlck1hbmFnZXIo
KS5kaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5h
bWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpKSB7CisgICAgICAgIG1lZGlhUmVjb3JkZXJNYW5hZ2VyKCkuZGlkUmVjZWl2ZVJlbW90ZU1l
ZGlhUmVjb3JkZXJNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47
CisgICAgfQogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCiAg
ICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpMaWJXZWJS
VENDb2RlY3NQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBhYzcx
MjVkNzM4ZDg2ODg4ZWVhOGI0YTkyNTE1ZjlkZTRkMWY2YjA0Li5mNDg1OTY0ZDQ2YzUyZTMzOGQy
YWJlNGY3NjVkZGNiNWE5NGEwNzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTQxLDggKzQxLDkgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiBjbGFzcyBHUFVQcm9jZXNzOwogY2xhc3MgTGliV2ViUlRDQ29kZWNzUHJv
eHk7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKLWNsYXNzIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHk7CitjbGFzcyBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjsK
IGNsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOworY2xhc3MgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTsKIAogY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcwogICAgIDog
cHVibGljIFJlZkNvdW50ZWQ8R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4KQEAgLTcxLDYgKzcy
LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkmIHVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkoKTsKKyAgICBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlciYgbWVk
aWFSZWNvcmRlck1hbmFnZXIoKTsKICNlbmRpZgogCiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpD
bGllbnQKQEAgLTg5LDYgKzkxLDcgQEAgcHJpdmF0ZToKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nl
c3Npb25JRDsKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eT4gbV91c2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5OworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVJl
Y29yZGVyTWFuYWdlcj4gbV9yZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjsKICNlbmRpZgogI2lm
IFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxM
aWJXZWJSVENDb2RlY3NQcm94eT4gbV9saWJXZWJSVENDb2RlY3NQcm94eTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmFkOGE4NWQ1NzRiY2U3Y2FjMzAzZDYzYTI5YmI5NWYwYzM5Y2NmMGYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1l
ZGlhUmVjb3JkZXIuY3BwCkBAIC0wLDAgKzEsMTM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVjb3JkZXIuaCIKKworI2lmIFBMQVRG
T1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJTaGFyZWRSaW5n
QnVmZmVyU3RvcmFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJM
aXN0Lmg+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RkOjp1bmlxdWVfcHRyPFJl
bW90ZU1lZGlhUmVjb3JkZXI+IFJlbW90ZU1lZGlhUmVjb3JkZXI6OmNyZWF0ZShHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBNZWRpYVJlY29yZGVy
SWRlbnRpZmllciBpZGVudGlmaWVyLCBib29sIHJlY29yZEF1ZGlvLCBpbnQgd2lkdGgsIGludCBo
ZWlnaHQpCit7CisgICAgYXV0byB3cml0ZXIgPSBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6
Y3JlYXRlKHJlY29yZEF1ZGlvLCB3aWR0aCwgaGVpZ2h0KTsKKyAgICBpZiAoIXdyaXRlcikKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVN
ZWRpYVJlY29yZGVyPihuZXcgUmVtb3RlTWVkaWFSZWNvcmRlciB7IGdwdUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MsIGlkZW50aWZpZXIsIHdyaXRlci5yZWxlYXNlTm9uTnVsbCgpLCByZWNvcmRBdWRp
byB9KTsKK30KKworUmVtb3RlTWVkaWFSZWNvcmRlcjo6UmVtb3RlTWVkaWFSZWNvcmRlcihHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBNZWRpYVJl
Y29yZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0
ZXI+JiYgd3JpdGVyLCBib29sIHJlY29yZEF1ZGlvKQorICAgIDogbV9ncHVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCisgICAgLCBtX2lkZW50aWZpZXIo
aWRlbnRpZmllcikKKyAgICAsIG1fd3JpdGVyKFdURk1vdmUod3JpdGVyKSkKK3sKKyAgICBpZiAo
cmVjb3JkQXVkaW8pCisgICAgICAgIG1fcmluZ0J1ZmZlciA9IG1ha2VVbmlxdWU8Q0FSaW5nQnVm
ZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihudWxscHRyKSk7Cit9
CisKK1JlbW90ZU1lZGlhUmVjb3JkZXI6On5SZW1vdGVNZWRpYVJlY29yZGVyKCkKK3sKK30KKwor
U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIFJlbW90ZU1lZGlhUmVjb3JkZXI6OnN0b3JhZ2UoKQor
eworICAgIHJldHVybiBzdGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmlu
Z0J1ZmZlci0+c3RvcmFnZSgpKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyOjphdWRp
b1NhbXBsZXNTdG9yYWdlQ2hhbmdlZChjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYgaGFuZGxl
LCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCB1
aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBBU1NFUlQobV9yaW5nQnVmZmVyKTsKKyAg
ICBpZiAoIW1fcmluZ0J1ZmZlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9kZXNjcmlwdGlv
biA9IGRlc2NyaXB0aW9uOworCisgICAgaWYgKGhhbmRsZS5pc051bGwoKSkgeworICAgICAgICBt
X3JpbmdCdWZmZXItPmRlYWxsb2NhdGUoKTsKKyAgICAgICAgc3RvcmFnZSgpLnNldFJlYWRPbmx5
KGZhbHNlKTsKKyAgICAgICAgc3RvcmFnZSgpLnNldFN0b3JhZ2UobnVsbHB0cik7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhh
bmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CisgICAgc3RvcmFnZSgp
LnNldFN0b3JhZ2UoV1RGTW92ZShtZW1vcnkpKTsKKyAgICBzdG9yYWdlKCkuc2V0UmVhZE9ubHko
dHJ1ZSk7CisKKyAgICBtX3JpbmdCdWZmZXItPmFsbG9jYXRlKGRlc2NyaXB0aW9uLCBudW1iZXJP
ZkZyYW1lcyk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZWNvcmRlcjo6YXVkaW9TYW1wbGVzQXZh
aWxhYmxlKE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qg
c3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCit7CisgICAgQVNTRVJUKG1fcmluZ0J1ZmZl
cik7CisgICAgaWYgKCFtX3JpbmdCdWZmZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcmlu
Z0J1ZmZlci0+c2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKwor
ICAgIFdlYkF1ZGlvQnVmZmVyTGlzdCBhdWRpb0RhdGEobV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZG
cmFtZXMpOworICAgIG1fcmluZ0J1ZmZlci0+ZmV0Y2goYXVkaW9EYXRhLmxpc3QoKSwgbnVtYmVy
T2ZGcmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOworCisgICAgbV93cml0ZXItPmFwcGVuZEF1ZGlv
U2FtcGxlQnVmZmVyKGF1ZGlvRGF0YSwgbV9kZXNjcmlwdGlvbiwgdGltZSwgbnVtYmVyT2ZGcmFt
ZXMpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXI6OnZpZGVvU2FtcGxlQXZhaWxhYmxl
KFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlJiYgcmVtb3RlU2FtcGxlKQoreworICAgIGlmICgh
bV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiB8fCBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5waXhlbEZv
cm1hdCgpICE9IHJlbW90ZVNhbXBsZS52aWRlb0Zvcm1hdCgpKQorICAgICAgICBtX2ltYWdlVHJh
bnNmZXJTZXNzaW9uID0gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlKHJlbW90ZVNhbXBs
ZS52aWRlb0Zvcm1hdCgpKTsKKworICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbikgewor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGF1dG8gc2FtcGxlQnVmZmVyID0gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+Y3JlYXRlTWVk
aWFTYW1wbGUocmVtb3RlU2FtcGxlLnN1cmZhY2UoKSwgcmVtb3RlU2FtcGxlLnRpbWUoKSwgcmVt
b3RlU2FtcGxlLnNpemUoKSk7CisgICAgaWYgKCFzYW1wbGVCdWZmZXIpIHsKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3dyaXRl
ci0+YXBwZW5kVmlkZW9TYW1wbGVCdWZmZXIoc2FtcGxlQnVmZmVyLT5wbGF0Zm9ybVNhbXBsZSgp
LnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZWNvcmRlcjo6
ZmV0Y2hEYXRhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSVBDOjpEYXRhUmVmZXJlbmNlJiYsIGNv
bnN0IFN0cmluZyYgbWltZVR5cGUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IG1wNE1pbWVUeXBlKE1BS0VfU1RBVElDX1NU
UklOR19JTVBMKCJ2aWRlby9tcDQiKSk7CisgICAgbV93cml0ZXItPmZldGNoRGF0YShbJm1wNE1p
bWVUeXBlID0gbXA0TWltZVR5cGUuZ2V0KCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcildKGF1dG8mJiBkYXRhKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byog
cG9pbnRlciA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGRhdGEgPyBkYXRhLT5k
YXRhKCkgOiBudWxscHRyKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoSVBDOjpEYXRhUmVm
ZXJlbmNlIHsgcG9pbnRlciwgZGF0YSA/IGRhdGEtPnNpemUoKSA6IDAgfSwgbXA0TWltZVR5cGUp
OworICAgIH0pOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXI6OnN0b3BSZWNvcmRpbmco
KQoreworICAgIG1fd3JpdGVyLT5zdG9wUmVjb3JkaW5nKCk7Cit9CisKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVj
b3JkZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNv
cmRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ0YThkMTc1NWM1OTUzMGMyMzEzNmI0NzdiOWE4YTA4NTQ0MTRm
NTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZU1lZGlhUmVjb3JkZXIuaApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisj
aW5jbHVkZSAiTWVkaWFSZWNvcmRlcklkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlUmVj
ZWl2ZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXJDb2NvYS5oPgorI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KKworbmFt
ZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgRGF0YVJlZmVyZW5jZTsKK2Ns
YXNzIERlY29kZXI7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENBUmluZ0J1ZmZl
cjsKK2NsYXNzIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ7CitjbGFzcyBSZW1vdGVWaWRlb1NhbXBs
ZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M7CitjbGFzcyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTsKKworY2xhc3MgUmVtb3RlTWVk
aWFSZWNvcmRlciA6IHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UmVt
b3RlTWVkaWFSZWNvcmRlcj4gY3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBNZWRp
YVJlY29yZGVySWRlbnRpZmllciwgYm9vbCByZWNvcmRBdWRpbywgaW50IHdpZHRoLCBpbnQgaGVp
Z2h0KTsKKyAgICB+UmVtb3RlTWVkaWFSZWNvcmRlcigpOworCisgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworcHJpdmF0
ZToKKyAgICBSZW1vdGVNZWRpYVJlY29yZGVyKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBN
ZWRpYVJlY29yZGVySWRlbnRpZmllciwgUmVmPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyPiYmLCBib29sIHJlY29yZEF1ZGlvKTsKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2Vp
dmVyCisgICAgdm9pZCBhdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZChjb25zdCBTaGFyZWRNZW1v
cnk6OkhhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVp
bnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShN
ZWRpYVRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1
aW50NjRfdCBlbmRGcmFtZSk7CisgICAgdm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3Jl
OjpSZW1vdGVWaWRlb1NhbXBsZSYmKTsKKyAgICB2b2lkIGZldGNoRGF0YShDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKElQQzo6RGF0YVJlZmVyZW5jZSYmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKT4m
Jik7CisgICAgdm9pZCBzdG9wUmVjb3JkaW5nKCk7CisKKyAgICBTaGFyZWRSaW5nQnVmZmVyU3Rv
cmFnZSYgc3RvcmFnZSgpOworCisgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9ncHVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOworICAgIE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyIG1faWRl
bnRpZmllcjsKKyAgICBSZWY8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IG1f
d3JpdGVyOworCisgICAgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3Jp
cHRpb247CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNBUmluZ0J1ZmZlcj4gbV9yaW5n
QnVmZmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lv
blZUPiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFS
ZWNvcmRlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMTRlZGM1MzYxMDIzZWRjNzgyNzgwYzRk
NDZlOWQxNWI5NDgxMzlmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzQg
QEAKKyMgQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBQTEFURk9STShD
T0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVJl
Y29yZGVyIE5vdFJlZkNvdW50ZWQgeworICAgIEF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkKFdl
YktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUgc3RvcmFnZUhhbmRsZSwgV2ViQ29yZTo6Q0FBdWRp
b1N0cmVhbURlc2NyaXB0aW9uIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykK
KyAgICBBdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJl
ck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKKyAgICBW
aWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSBzYW1wbGUpCisg
ICAgRmV0Y2hEYXRhKCkgLT4gKElQQzo6RGF0YVJlZmVyZW5jZSBidWZmZXIsIFN0cmluZyBtaW1l
VHlwZSkgQXN5bmMKKyAgICBTdG9wUmVjb3JkaW5nKCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNv
cmRlck1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0ZTNmZWRiYjIxODJiOTZmMWIzZmU2ZjZhY2Fk
NmFjZDUwZjI0MjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDcyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVj
b3JkZXJNYW5hZ2VyLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCisjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIkRlY29kZXIuaCIK
KyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlY29yZGVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9FeGNl
cHRpb25EYXRhLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVNZWRpYVJlY29yZGVy
TWFuYWdlcjo6UmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIoR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcykKKyAgICA6IG1fZ3B1Q29ubmVjdGlvblRv
V2ViUHJvY2VzcyhncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQoreworfQorCitSZW1vdGVNZWRp
YVJlY29yZGVyTWFuYWdlcjo6flJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyKCkKK3sKK30KKwor
dm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6ZGlkUmVjZWl2ZVJlbW90ZU1lZGlhUmVj
b3JkZXJNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBk
ZWNvZGVyKQoreworICAgIGlmIChhdXRvKiByZWNvcmRlciA9IG1fcmVjb3JkZXJzLmdldChtYWtl
T2JqZWN0SWRlbnRpZmllcjxNZWRpYVJlY29yZGVySWRlbnRpZmllclR5cGU+KGRlY29kZXIuZGVz
dGluYXRpb25JRCgpKSkpCisgICAgICAgIHJlY29yZGVyLT5kaWRSZWNlaXZlTWVzc2FnZShjb25u
ZWN0aW9uLCBkZWNvZGVyKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6
Y3JlYXRlUmVjb3JkZXIoTWVkaWFSZWNvcmRlcklkZW50aWZpZXIgaWRlbnRpZmllciwgYm9vbCBy
ZWNvcmRBdWRpbywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KE9wdGlvbmFsPEV4Y2VwdGlvbkRhdGE+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAg
IEFTU0VSVCghbV9yZWNvcmRlcnMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIGF1dG8gcmVj
b3JkZXIgPSBSZW1vdGVNZWRpYVJlY29yZGVyOjpjcmVhdGUobV9ncHVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLCBpZGVudGlmaWVyLCByZWNvcmRBdWRpbywgd2lkdGgsIGhlaWdodCk7CisgICAgaWYg
KCFyZWNvcmRlcikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKEV4Y2VwdGlvbkRh
dGEgeyBOb3RTdXBwb3J0ZWRFcnJvciwgIlVuYWJsZSB0byBjcmVhdGUgYSByZWNvcmRlciB3aXRo
IHRoZSBwcm92aWRlZCBzdHJlYW0iX3MgfSk7CisKKyAgICBtX3JlY29yZGVycy5hZGQoaWRlbnRp
ZmllciwgV1RGTW92ZShyZWNvcmRlcikpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7Cit9
CisKK3ZvaWQgUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI6OnJlbGVhc2VSZWNvcmRlcihNZWRp
YVJlY29yZGVySWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIEFTU0VSVChtX3JlY29yZGVy
cy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgbV9yZWNvcmRlcnMucmVtb3ZlKGlkZW50aWZp
ZXIpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjVkNTcwYjRlMjAyZmFkMjUzOTM1NGFmMTcwZjEwMTAzMjg4ZTlkNmQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJN
YW5hZ2VyLmgKQEAgLTAsMCArMSw3MiBAQAorCisKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRl
ICJNZWRpYVJlY29yZGVySWRlbnRpZmllci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5o
IgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKwor
bmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgRGVjb2RlcjsKK30KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IEV4Y2VwdGlvbkRhdGE7Cit9CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOworY2xhc3MgUmVt
b3RlTWVkaWFSZWNvcmRlcjsKKworY2xhc3MgUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIgOiBw
cml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcihHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzJik7CisgICAgflJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2Vy
KCk7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
RnJvbVdlYlByb2Nlc3MoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXIm
IGRlY29kZXIpIHsgZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7IH0KKwor
cHJpdmF0ZToKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisgICAgdm9p
ZCBjcmVhdGVSZWNvcmRlcihNZWRpYVJlY29yZGVySWRlbnRpZmllciwgYm9vbCByZWNvcmRBdWRp
bywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFs
PFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiYpPiYmKTsKKyAgICB2b2lkIHJlbGVhc2VSZWNvcmRl
cihNZWRpYVJlY29yZGVySWRlbnRpZmllcik7CisKKyAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzJiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CisgICAgSGFzaE1hcDxNZWRpYVJlY29y
ZGVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZU1lZGlhUmVjb3JkZXI+PiBtX3Jl
Y29yZGVyczsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weQppbmRleCA1ZDg0NDcxMzI1YmJhN2E0MzVlZDkzM2MwOTA5MDk0NTNiOWQ0MDI1
Li5mOGJjZTE0NTUwN2RmNDllODllZDRmNzE5ODc2ZTEwYmY3MDk2YmRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTIyMCw2ICsyMjAsNyBAQCBkZWYgdHlw
ZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViS2l0OjpB
Y3Rpdml0eVN0YXRlQ2hhbmdlSUQnLAogICAgICAgICAnV2ViS2l0OjpMYXllckhvc3RpbmdDb250
ZXh0SUQnLAogICAgICAgICAnV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyJywKKyAgICAgICAgJ1dlYktpdDo6TWVkaWFSZWNvcmRlcklkZW50aWZpZXInLAogICAgICAg
ICAnV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJL
aXQ6OlJUQ0RlY29kZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6UlRDRW5jb2Rlcklk
ZW50aWZpZXInLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJj
ZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggZDAzOTNiYjA2MmQ5N2FlOTZhNzIyNWE2ZDYwN2Iw
NzRiMzhlMGM5OC4uMzA2Y2QxZTY5MzU2NjFhZDQxYzA2MDkyODQ4YmY5YWYzNmIxYjcyNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0CkBAIC0yNCw2ICsyNCw4IEBACiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCiBH
UFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCiBHUFVQcm9jZXNzL0dQVVBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCitHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRp
YVJlY29yZGVyLmNwcAorR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFn
ZXIuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNw
cAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcApAQCAtNTEzLDYgKzUxNSw4IEBAIFdlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKIFdlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5jcHAgQG5vLXVuaWZ5CiBX
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwCiBXZWJQcm9j
ZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAorV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcAorV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVj
b3JkZXJQcm92aWRlci5jcHAKIAogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQv
U291cmNlc0NvY29hLnR4dAppbmRleCBmZTc1Nzk1Mzc2MWI5OWY2OWI4MjhjMTFiYmMwZjMzMWFl
ZWZjMTkxLi5hYmM4Yjg1OTJmYjI2NzAwYjU2YzBmNDc2ODc1OTBjZjJiMDZlNjkwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9T
b3VyY2VzQ29jb2EudHh0CkBAIC02MzUsNSArNjM1LDcgQEAgR1BVUHJvY2Vzc1Byb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcAogR1BVUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAKIExpYldlYlJUQ0Nv
ZGVjc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogTGliV2ViUlRDQ29kZWNzTWVzc2FnZVJlY2Vp
dmVyLmNwcAorUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZU1l
ZGlhUmVjb3JkZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogU2VydmljZVdvcmtlckZldGNo
VGFza01lc3NhZ2VSZWNlaXZlci5jcHAKIFRleHRDaGVja2luZ0NvbnRyb2xsZXJQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDU3NzhiYTU4NzIzMmM2ZTZhNzgyMjQ2YjljN2NiMzIwYWU4ZmNjZWEu
LmNmMGIzYmVlN2UwMmZkMjY4MTM5OTNjMzU1YTA5OGUzNTJlYjgyMzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzMxNiw2ICszMzE2
LDE3IEBACiAJCTQxNzIxOThDMjNCNjEyRTgwMEFFNTY4NiAvKiBSVENEZWNvZGVySWRlbnRpZmll
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENEZWNvZGVySWRlbnRpZmll
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTcyMTk4RDIzQjYyQzdDMDBBRTU2
ODYgLyogTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpYldlYlJUQ0NvZGVjcy5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3NjkwMTMyMkZERDQx
QjAwQjE1NzZEIC8qIE5ldHdvcmtSVENQcm92aWRlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IE5ldHdvcmtSVENQcm92aWRlci5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OTIyM0MzNEQ2RTAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQ
cm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVJlY29yZGVyUHJvdmlkZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OTMyM0MzNEQ2RjAwM0U4M0ZFIC8qIE1lZGlh
UmVjb3JkZXJQcm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVJlY29yZGVyUHJv
dmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc2RTg5NDIzQzM0RTI2
MDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0MTc2RTg5NTIzQzM0RTI3MDAzRTgzRkUgLyogTWVkaWFSZWNvcmRl
clByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFSZWNvcmRl
clByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OTcyM0MzNjFC
RDAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQxNzZFODk4MjNDMzY2NzcwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJl
Y29yZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVj
b3JkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OTkyM0MzNkQ4RTAw
M0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODlBMjNDMzZGNzEwMDNFODNGRSAvKiBSZW1vdGVNZWRp
YVJlY29yZGVyTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQxNzZFODlCMjNDMzcyMjIwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyTWFu
YWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVNZWRpYVJlY29y
ZGVyTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3
NkU4OUMyM0MzNzQ3OTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFSZWNvcmRlci5tZXNzYWdlcy5pbjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OUQyM0MzNzZENTAwM0U4M0ZFIC8q
IFJlbW90ZU1lZGlhUmVjb3JkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVtb3RlTWVkaWFSZWNvcmRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxNzkxNUFDMjI1NkJCNzQwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlNvY2tldENoYW5uZWwuY3BwOyBw
YXRoID0gTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDE3OTE1QUQyMjU2QkI3NDAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWwuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViU29ja2V0Q2hhbm5lbC5oOyBwYXRo
ID0gTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxNzkxNUIwMjI1NkMwRDYwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsTWFuYWdlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJTb2NrZXRDaGFubmVsTWFuYWdl
ci5oOyBwYXRoID0gTmV0d29yay9XZWJTb2NrZXRDaGFubmVsTWFuYWdlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNzExNyw2ICs3MTI4LDExIEBACiAJCQkJNDE3MjE5OEEyM0I2
MTI4MjAwQUU1Njg2IC8qIExpYldlYlJUQ0NvZGVjcy5jcHAgKi8sCiAJCQkJNDE3MjE5ODkyM0I2
MTI4MjAwQUU1Njg2IC8qIExpYldlYlJUQ0NvZGVjcy5oICovLAogCQkJCTQxNzIxOThEMjNCNjJD
N0MwMEFFNTY4NiAvKiBMaWJXZWJSVENDb2RlY3MubWVzc2FnZXMuaW4gKi8sCisJCQkJNDE3NkU4
OTcyM0MzNjFCRDAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLmggKi8sCisJCQkJ
NDE3NkU4OTQyM0MzNEUyNjAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCAqLywK
KwkJCQk0MTc2RTg5NTIzQzM0RTI3MDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCAq
LywKKwkJCQk0MTc2RTg5MzIzQzM0RDZGMDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVy
LmNwcCAqLywKKwkJCQk0MTc2RTg5MjIzQzM0RDZFMDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclBy
b3ZpZGVyLmggKi8sCiAJCQkJNDE3MjE5OEMyM0I2MTJFODAwQUU1Njg2IC8qIFJUQ0RlY29kZXJJ
ZGVudGlmaWVyLmggKi8sCiAJCQkJNDE1ODY0OUEyM0JFMDkyNDAwQTBBNjFFIC8qIFJUQ0VuY29k
ZXJJZGVudGlmaWVyLmggKi8sCiAJCQkpOwpAQCAtNzEyOSw2ICs3MTQ1LDEyIEBACiAJCQkJNDFF
MEE3QzYyM0I2Mzk3ODAwNTYxMDYwIC8qIExpYldlYlJUQ0NvZGVjc1Byb3h5LmggKi8sCiAJCQkJ
NDFFMEE3QzcyM0I2Mzk3OTAwNTYxMDYwIC8qIExpYldlYlJUQ0NvZGVjc1Byb3h5Lm1lc3NhZ2Vz
LmluICovLAogCQkJCTQxRTBBN0M4MjNCNjM5NzkwMDU2MTA2MCAvKiBMaWJXZWJSVENDb2RlY3NQ
cm94eS5tbSAqLywKKwkJCQk0MTc2RTg5RDIzQzM3NkQ1MDAzRTgzRkUgLyogUmVtb3RlTWVkaWFS
ZWNvcmRlci5jcHAgKi8sCisJCQkJNDE3NkU4OTgyM0MzNjY3NzAwM0U4M0ZFIC8qIFJlbW90ZU1l
ZGlhUmVjb3JkZXIuaCAqLywKKwkJCQk0MTc2RTg5QzIzQzM3NDc5MDAzRTgzRkUgLyogUmVtb3Rl
TWVkaWFSZWNvcmRlci5tZXNzYWdlcy5pbiAqLywKKwkJCQk0MTc2RTg5QTIzQzM2RjcxMDAzRTgz
RkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuY3BwICovLAorCQkJCTQxNzZFODk5MjND
MzZEOEUwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5oICovLAorCQkJCTQx
NzZFODlCMjNDMzcyMjIwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5tZXNz
YWdlcy5pbiAqLywKIAkJCSk7CiAJCQlwYXRoID0gd2VicnRjOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZTJkNjZiZmJjYjQ5
ZDkzODkzODY1OGMwMDBlYTMxZDkyZWJmNzI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCkBAIC0w
LDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRl
ICJNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gTWVkaWFSZWNv
cmRlclByb3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZh
dGUmIHN0cmVhbSkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICByZXR1cm4gTWVkaWFSZWNv
cmRlclByaXZhdGVBVkZJbXBsOjpjcmVhdGUoc3RyZWFtKTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKHN0cmVhbSk7CisgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKK30KKworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVJlY29yZGVyUHJv
dmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFSZWNvcmRl
clByb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzEwZThkNDgxZjg2YTM1ZDBkOWVlOWZiODNlYWVlNjZk
Yzc5ZGZjZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhUmVj
b3JkZXJQcml2YXRlOworY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlOworCitjbGFzcyBXRUJDT1JF
X0VYUE9SVCBNZWRpYVJlY29yZGVyUHJvdmlkZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworcHVibGljOgorICAgIHN0YXRpYyBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVy
PiBjcmVhdGUoKSB7IHJldHVybiBtYWtlVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4o
KTsgfQorICAgIHZpcnR1YWwgfk1lZGlhUmVjb3JkZXJQcm92aWRlcigpID0gZGVmYXVsdDsKKwor
ICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBjcmVhdGVN
ZWRpYVJlY29yZGVyUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZhdGUmKTsKK307CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJJ
ZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJl
Y29yZGVySWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyZjA0ZTMzM2ZlODQ2MzIzY2NjZTc5Mzg1
Y2E3NTJiNTY0MTkzZWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVySWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlm
aWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIE1lZGlhUmVjb3JkZXJJZGVudGlm
aWVyVHlwZSB7IH07Cit1c2luZyBNZWRpYVJlY29yZGVySWRlbnRpZmllciA9IE9iamVjdElkZW50
aWZpZXI8TWVkaWFSZWNvcmRlcklkZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRp
YVJlY29yZGVyUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDgxMjhkMjIxNDZlY2IyMzFj
NWEwYzI1ZTg0NTAwYWMxNjcyZTFiYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcApAQCAtMCwwICsx
LDE0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRp
YVJlY29yZGVyUHJpdmF0ZS5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAi
UmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZU1l
ZGlhUmVjb3JkZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTdHJlYW1Q
cml2YXRlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvUmVtb3RlVmlkZW9TYW1wbGUuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1NoYXJlZEJ1ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+
CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworTWVk
aWFSZWNvcmRlclByaXZhdGU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IE1lZGlhU3RyZWFt
UHJpdmF0ZSYgc3RyZWFtKQorICAgIDogbV9pZGVudGlmaWVyKE1lZGlhUmVjb3JkZXJJZGVudGlm
aWVyOjpnZW5lcmF0ZSgpKQorICAgICwgbV9jb25uZWN0aW9uKFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpKQoreworICAgIC8v
IEZJWE1FOiB3ZSB3aWxsIG5lZWQgdG8gaW1wbGVtZW50IHN1cHBvcnQgZm9yIG11bHRpcGxlIGF1
ZGlvL3ZpZGVvIHRyYWNrcworICAgIC8vIEN1cnJlbnRseSB3ZSBvbmx5IGNob29zZSB0aGUgZmly
c3QgdHJhY2sgYXMgdGhlIHJlY29yZGVkIHRyYWNrLgorICAgIC8vIEZJWE1FOiBXZSB3b3VsZCBi
ZXR0ZXIgdG8gdGhyb3cgYW4gZXhjZXB0aW9uIHRvIEphdmFTY3JpcHQgaWYgd3JpdGVyIGNyZWF0
aW9uIGZhaWxzLgorCisgICAgY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIGF1ZGlvVHJh
Y2sgeyBudWxscHRyIH07CisgICAgY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIHZpZGVv
VHJhY2sgeyBudWxscHRyIH07CisgICAgZm9yIChhdXRvJiB0cmFjayA6IHN0cmVhbS50cmFja3Mo
KSkgeworICAgICAgICBpZiAoIXRyYWNrLT5lbmFibGVkKCkgfHwgdHJhY2stPmVuZGVkKCkpCisg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgc3dpdGNoICh0cmFjay0+dHlwZSgpKSB7Cisg
ICAgICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW86IHsKKyAgICAgICAg
ICAgIGF1dG8mIHNldHRpbmdzID0gdHJhY2stPnNldHRpbmdzKCk7CisgICAgICAgICAgICBpZiAo
IXZpZGVvVHJhY2sgJiYgc2V0dGluZ3Muc3VwcG9ydHNXaWR0aCgpICYmIHNldHRpbmdzLnN1cHBv
cnRzSGVpZ2h0KCkpIHsKKyAgICAgICAgICAgICAgICB2aWRlb1RyYWNrID0gdHJhY2suZ2V0KCk7
CisgICAgICAgICAgICAgICAgbV9yZWNvcmRlZFZpZGVvVHJhY2tJRCA9IHZpZGVvVHJhY2stPmlk
KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
ICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvOgorICAgICAgICAgICAgaWYg
KCFhdWRpb1RyYWNrKSB7CisgICAgICAgICAgICAgICAgbV9yaW5nQnVmZmVyID0gbWFrZVVuaXF1
ZTxDQVJpbmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KHRo
aXMpKTsKKyAgICAgICAgICAgICAgICBhdWRpb1RyYWNrID0gdHJhY2suZ2V0KCk7CisgICAgICAg
ICAgICAgICAgbV9yZWNvcmRlZEF1ZGlvVHJhY2tJRCA9IGF1ZGlvVHJhY2stPmlkKCk7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlOjpOb25lOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9
CisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1l
ZGlhUmVjb3JkZXJNYW5hZ2VyOjpDcmVhdGVSZWNvcmRlciB7IG1faWRlbnRpZmllciwgISFhdWRp
b1RyYWNrLCB2aWRlb1RyYWNrID8gdmlkZW9UcmFjay0+c2V0dGluZ3MoKS53aWR0aCgpIDogMCwg
dmlkZW9UcmFjayA/IHZpZGVvVHJhY2stPnNldHRpbmdzKCkuaGVpZ2h0KCkgOiAwIH0sIFt0aGlz
LCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShhdXRvJiYgZXhjZXB0aW9uKSB7CisgICAg
ICAgIGlmICghd2Vha1RoaXMgfHwgIWV4Y2VwdGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgbV9lcnJvckNhbGxiYWNrKEV4Y2VwdGlvbiB7IGV4Y2VwdGlvbi0+Y29kZSwgV1RGTW92
ZShleGNlcHRpb24tPm1lc3NhZ2UpIH0pOworICAgIH0sIDApOworfQorCitNZWRpYVJlY29yZGVy
UHJpdmF0ZTo6fk1lZGlhUmVjb3JkZXJQcml2YXRlKCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOjpSZWxlYXNlUmVjb3JkZXIg
eyBtX2lkZW50aWZpZXIgfSwgMCk7Cit9CisKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OnNh
bXBsZUJ1ZmZlclVwZGF0ZWQoY29uc3QgV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUm
IHRyYWNrLCBXZWJDb3JlOjpNZWRpYVNhbXBsZSYgc2FtcGxlKQoreworICAgIGlmICh0cmFjay5p
ZCgpICE9IG1fcmVjb3JkZWRWaWRlb1RyYWNrSUQpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAo
YXV0byByZW1vdGVTYW1wbGUgPSBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKHNhbXBsZSkpCisg
ICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6
VmlkZW9TYW1wbGVBdmFpbGFibGUgeyBXVEZNb3ZlKCpyZW1vdGVTYW1wbGUpIH0sIG1faWRlbnRp
Zmllcik7Cit9CisKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OmF1ZGlvU2FtcGxlc0F2YWls
YWJsZShjb25zdCBXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2ssIGNvbnN0
IE1lZGlhVGltZSYgdGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29u
c3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBudW1iZXJPZkZy
YW1lcykKK3sKKyAgICBpZiAodHJhY2suaWQoKSAhPSBtX3JlY29yZGVkQXVkaW9UcmFja0lEKQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9kZXNjcmlwdGlvbiAhPSBkZXNjcmlwdGlvbikg
eworICAgICAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLnR5cGUg
PT0gUGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0cmVhbUJhc2ljVHlwZSk7CisgICAgICAg
IG1fZGVzY3JpcHRpb24gPSAqV1RGOjpnZXQ8Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0
aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKKwor
ICAgICAgICAvLyBBbGxvY2F0ZSBhIHJpbmcgYnVmZmVyIGxhcmdlIGVub3VnaCB0byBjb250YWlu
IDIgc2Vjb25kcyBvZiBhdWRpby4KKyAgICAgICAgbV9udW1iZXJPZkZyYW1lcyA9IG1fZGVzY3Jp
cHRpb24uc2FtcGxlUmF0ZSgpICogMjsKKyAgICAgICAgbV9yaW5nQnVmZmVyLT5hbGxvY2F0ZSht
X2Rlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCksIG1fbnVtYmVyT2ZGcmFtZXMpOworICAg
IH0KKworICAgIEFTU0VSVChpczxXZWJBdWRpb0J1ZmZlckxpc3Q+KGF1ZGlvRGF0YSkpOworICAg
IG1fcmluZ0J1ZmZlci0+c3RvcmUoZG93bmNhc3Q8V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRpb0Rh
dGEpLmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOworICAgIHVpbnQ2
NF90IHN0YXJ0RnJhbWU7CisgICAgdWludDY0X3QgZW5kRnJhbWU7CisgICAgbV9yaW5nQnVmZmVy
LT5nZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOworICAgIG1fY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6QXVkaW9TYW1wbGVz
QXZhaWxhYmxlIHsgdGltZSwgbnVtYmVyT2ZGcmFtZXMsIHN0YXJ0RnJhbWUsIGVuZEZyYW1lIH0s
IG1faWRlbnRpZmllcik7Cit9CisKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OnN0b3JhZ2VD
aGFuZ2VkKFNoYXJlZE1lbW9yeSogc3RvcmFnZSkKK3sKKyAgICBTaGFyZWRNZW1vcnk6OkhhbmRs
ZSBoYW5kbGU7CisgICAgaWYgKHN0b3JhZ2UpCisgICAgICAgIHN0b3JhZ2UtPmNyZWF0ZUhhbmRs
ZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworICAgIG1fY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6QXVkaW9TYW1wbGVz
U3RvcmFnZUNoYW5nZWQgeyBoYW5kbGUsIG1fZGVzY3JpcHRpb24sIHN0YXRpY19jYXN0PHVpbnQ2
NF90PihtX251bWJlck9mRnJhbWVzKSB9LCBtX2lkZW50aWZpZXIpOworfQorCit2b2lkIE1lZGlh
UmVjb3JkZXJQcml2YXRlOjpmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8
V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6RmV0Y2hEYXRhIHsgfSwgW2NvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8mJiBkYXRhLCBhdXRvJiYg
bWltZVR5cGUpIG11dGFibGUgeworICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXI7
CisgICAgICAgIGlmIChkYXRhLnNpemUoKSkKKyAgICAgICAgICAgIGJ1ZmZlciA9IFNoYXJlZEJ1
ZmZlcjo6Y3JlYXRlKGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7CisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKFdURk1vdmUoYnVmZmVyKSwgbWltZVR5cGUpOworICAgIH0sIG1faWRlbnRpZmll
cik7Cit9CisKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OnN0b3BSZWNvcmRpbmcoKQorewor
ICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6U3Rv
cFJlY29yZGluZyB7IH0sIG1faWRlbnRpZmllcik7Cit9CisKK30KKworI2VuZGlmIC8vIFBMQVRG
T1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44ZDNlOGJmM2QwZDQzMzk2YWQ5YjQwZDJkNzI4OGNkYTNjN2U0NjU5Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNv
cmRlclByaXZhdGUuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVk
ZSAiTWVkaWFSZWNvcmRlcklkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVy
U3RvcmFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFSZWNvcmRlclByaXZhdGUuaD4KKyNp
bmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFt
ZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpNZWRpYVJl
Y29yZGVyUHJpdmF0ZSwgcHVibGljIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpDbGllbnQsIHB1
YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4geworICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhUmVjb3JkZXJQcml2
YXRlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZSYpOworICAgIH5NZWRpYVJlY29y
ZGVyUHJpdmF0ZSgpOworCitwcml2YXRlOgorICAgIC8vIFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQ
cml2YXRlCisgICAgdm9pZCBzYW1wbGVCdWZmZXJVcGRhdGVkKGNvbnN0IFdlYkNvcmU6Ok1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlJiwgV2ViQ29yZTo6TWVkaWFTYW1wbGUmKSBmaW5hbDsKKyAgICB2
b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYsIGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1B
dWRpb0RhdGEmLCBjb25zdCBXZWJDb3JlOjpBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90
KSBmaW5hbDsKKyAgICB2b2lkIGZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0
cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpPiYmKSBm
aW5hbDsKKyAgICB2b2lkIHN0b3BSZWNvcmRpbmcoKSBmaW5hbDsKKworICAgIC8vIFNoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlOjpDbGllbnQKKyAgICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1l
bW9yeSopOworCisgICAgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOworCisg
ICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIFN0cmluZyBtX3JlY29y
ZGVkQXVkaW9UcmFja0lEOworICAgIFN0cmluZyBtX3JlY29yZGVkVmlkZW9UcmFja0lEOworCisg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNBUmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOwor
ICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uIHsgfTsK
KyAgICBpbnQ2NF90IG1fbnVtYmVyT2ZGcmFtZXMgeyAwIH07Cit9OworCit9CisKKyNlbmRpZiAv
LyBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclBy
b3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OGI3ZjdlNDdjNjAyYjFhZjk5NzQ4MjU0MmMyZDYzODMx
YzcyZTMyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93
ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92aWRl
ci5oIgorCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGUuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL01lZGlhUmVjb3JkZXJQcml2YXRlLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGU+IE1lZGlhUmVjb3JkZXJQcm92
aWRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRl
JiBzdHJlYW0pCit7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIGlmICghbV91c2VHUFVQ
cm9jZXNzKQorICAgICAgICByZXR1cm4gV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyOjpj
cmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShzdHJlYW0pOworCisgICAgcmV0dXJuIG1ha2VVbmlx
dWU8TWVkaWFSZWNvcmRlclByaXZhdGU+KHN0cmVhbSk7CisjZWxzZQorICAgIHJldHVybiBXZWJD
b3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKHN0
cmVhbSk7CisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQorfQorI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9TVFJFQU0pCisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDQ1
ZmFhNGJmMGU0Nzk3OGZmZjQ3YzM4NzVkZDY3YmY0MWU0OTkzYgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRl
ci5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgPFdlYkNvcmUvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitjbGFzcyBNZWRpYVJlY29yZGVyUHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6
TWVkaWFSZWNvcmRlclByb3ZpZGVyIHsKK3B1YmxpYzoKKyAgICBNZWRpYVJlY29yZGVyUHJvdmlk
ZXIoKSA9IGRlZmF1bHQ7CisKK3ByaXZhdGU6CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1l
ZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZSYpIGZp
bmFsOworI2VuZGlmCit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCmluZGV4IDQ0ZDc2N2JjNjQ3MjE4M2EyYzEzMTE3OTBiNzgwZGNjOWZjNTY5
YTguLjI3ZDI5YzA3YjMzOGIzYjBmYmFmZmFkNWJhNGY4YjYzNzVjNzU5ZGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00NSw2ICs0NSw3IEBA
CiAjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKICNpbmNsdWRlICJMb2FkUGFyYW1ldGVy
cy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlk
ZXIuaCIKICNpbmNsdWRlICJOZXRzY2FwZVBsdWdpbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24uaCIKQEAgLTQ2MCw3ICs0NjEsOCBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAg
ICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmNhY2hlU3RvcmFnZVByb3ZpZGVyKCksCiAg
ICAgICAgIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjpjcmVhdGUoKnRoaXMpLAogICAgICAgICBX
ZWJDb29raWVKYXI6OmNyZWF0ZSgpLAotICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNz
VHJhY2tlckNsaWVudD4oKnRoaXMpCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jlc3NU
cmFja2VyQ2xpZW50PigqdGhpcyksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8TWVkaWFSZWNvcmRl
clByb3ZpZGVyPigpCiAgICAgKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQg
PSBuZXcgV2ViQ2hyb21lQ2xpZW50KCp0aGlzKTsKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA0YzQxODY0
ZDg5ZjQwNTY3ZWQ4MWVkMmVmZWZiNTAxZjY3NTNkYjg0Li4xOWIyMjFjYjIyNzgzYzViNjRjMzUz
ZDAyODVhNDQ4ZjQ1M2QwYjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCkBAIC0xODAsNiArMTgwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVk
U3RyaW5ncy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Mb2dJbml0aWFsaXphdGlvbi5oPgogI2ltcG9y
dCA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CisjaW1wb3J0IDxXZWJDb3JlL01lZGlhUmVj
b3JkZXJQcm92aWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9NZW1vcnlSZWxlYXNlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5oPgpAQCAtMTQ0OCw3ICsxNDQ5LDggQEAgc3RhdGljIHZvaWQgV2ViS2l0SW5p
dGlhbGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5KCkKICAgICAgICAgV2ViQ29yZTo6Q2Fj
aGVTdG9yYWdlUHJvdmlkZXI6OmNyZWF0ZSgpLAogICAgICAgICBCYWNrRm9yd2FyZExpc3Q6OmNy
ZWF0ZShzZWxmKSwKICAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpjcmVhdGUoc3RvcmFnZVBy
b3ZpZGVyLmNvcHlSZWYoKSksCi0gICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFj
a2VyQ2xpZW50PihzZWxmKQorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tl
ckNsaWVudD4oc2VsZiksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6TWVkaWFSZWNv
cmRlclByb3ZpZGVyPigpCiAgICAgKTsKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBw
YWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50KHNlbGYp
OwpAQCAtMTcxNyw3ICsxNzE5LDggQEAgc3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUdhbWVw
YWRQcm92aWRlcklmTmVjZXNzYXJ5KCkKICAgICAgICAgV2ViQ29yZTo6Q2FjaGVTdG9yYWdlUHJv
dmlkZXI6OmNyZWF0ZSgpLAogICAgICAgICBCYWNrRm9yd2FyZExpc3Q6OmNyZWF0ZShzZWxmKSwK
ICAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpjcmVhdGUoc3RvcmFnZVByb3ZpZGVyLmNvcHlS
ZWYoKSksCi0gICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Pihz
ZWxmKQorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oc2Vs
ZiksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVy
PigpCiAgICAgKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2Vi
Q2hyb21lQ2xpZW50SU9TKHNlbGYpOwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IGViMDg2NjQ4Njc3OTE1NjgxZjNhYzNkYzgwMzgy
NGRhMDg5NzFiMGYuLmU5NTczZDJiNmU4YmE0YTRhYTAzNGZkMDA5OTE4YTE1MzgxZDU0ODUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC0xMjksNiArMTI5LDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0xvZ0luaXRpYWxpemF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dn
aW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lbW9y
eUNhY2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZW1vcnlSZWxlYXNlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KQEAgLTMxMTgsMTAgKzMxMTksMTEgQEAg
SFJFU1VMVCBXZWJWaWV3Ojppbml0V2l0aEZyYW1lKFJFQ1QgZnJhbWUsIF9Jbl8gQlNUUiBmcmFt
ZU5hbWUsIF9Jbl8gQlNUUiBncm91cE4KICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJFZGl0b3JD
bGllbnQ+KHRoaXMpLAogICAgICAgICBTb2NrZXRQcm92aWRlcjo6Y3JlYXRlKCksCiAgICAgICAg
IG1ha2VVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+KCksCi0gICAgICAgIFdlYkNvcmU6OkNh
Y2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUoKSwKKyAgICAgICAgQ2FjaGVTdG9yYWdlUHJvdmlk
ZXI6OmNyZWF0ZSgpLAogICAgICAgICBCYWNrRm9yd2FyZExpc3Q6OmNyZWF0ZSgpLAogICAgICAg
ICBDb29raWVKYXI6OmNyZWF0ZShzdG9yYWdlUHJvdmlkZXIuY29weVJlZigpKSwKLSAgICAgICAg
bWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCkKKyAgICAgICAgbWFrZVVu
aXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCksCisgICAgICAgIG1ha2VVbmlxdWVS
ZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpCiAgICAgKTsKICAgICBjb25maWd1cmF0aW9uLmNo
cm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnQodGhpcyk7CiAgICAgY29uZmlndXJhdGlv
bi5jb250ZXh0TWVudUNsaWVudCA9IG5ldyBXZWJDb250ZXh0TWVudUNsaWVudCh0aGlzKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCAyMDgzYjE5YWRlNzlkMjliMjdhOWNiNGI4OGUyMzYyYjFlNmE3NzU2Li4yOWU1ZDM1Mjhh
Y2I0NjQwMTllODM5NzZlMTQ3OTEyODBkY2JiMzFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MjAtMDEtMDcgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIElt
cGxlbWVudCBNZWRpYVJlY29yZGVyIGJhY2tlbmQgaW4gR1BVUHJvY2VzcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1ODAyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogaHR0cC93cHQvbWVkaWFyZWNvcmRl
ci9NZWRpYVJlY29yZGVyLUFWLWF1ZGlvLXZpZGVvLWRhdGFhdmFpbGFibGUuaHRtbDoKKyAgICAg
ICAgRG8gbm90IHVzZSBHUFVQcm9jZXNzIGZvciB0aGlzIHRlc3QgdW50aWwgY2FudmFzIGJ1ZmZl
cnMgYXJlIElPU3VyZmFjZXMuCisKIDIwMjAtMDEtMDYgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25v
cmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgQ29tcGxleFRleHRDb250cm9sbGVyOjpvZmZz
ZXRGb3JQb3NpdGlvbiByZXR1cm5zIGEgd3Jvbmcgb2Zmc2V0IGZvciBhIGdseXBoIGJvdW5kYXJ5
IGluIGEgUlRMIHRleHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L21lZGlhcmVj
b3JkZXIvTWVkaWFSZWNvcmRlci1BVi1hdWRpby12aWRlby1kYXRhYXZhaWxhYmxlLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXItQVYtYXVkaW8t
dmlkZW8tZGF0YWF2YWlsYWJsZS5odG1sCmluZGV4IDNjNWY1Mzk2ZmNlYWZiOWE4NTg4MjE3ZjJl
MGJlMDZiMTA3NGY0MGYuLjQ0YjZhMmZlZTNiYTI1ZjdiYmNlYmFkZTk3NDMwYjIyNDg4MWRmYWMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNv
cmRlci1BVi1hdWRpby12aWRlby1kYXRhYXZhaWxhYmxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLUFWLWF1ZGlvLXZpZGVvLWRhdGFh
dmFpbGFibGUuaHRtbApAQCAtMjAsNiArMjAsMTAgQEAKICAgICA8L2NhbnZhcz4KIDwvZGl2Pgog
PHNjcmlwdD4KKyAgICAvLyBUaGlzIHRlc3QgaXMgbm90IHBhc3Npbmcgd2l0aCBHUFVQcm9jZXNz
IGFzIGxvbmcgYXMgY2FwdHVyZSBmcmFtZXMgYXJlIG5vdCBJT1N1cmZhY2VkIGJhY2tlZC4KKyAg
ICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXRVc2VH
UFVQcm9jZXNzRm9yV2ViUlRDKGZhbHNlKTsKKwogICAgIHZhciBjb250ZXh0OwogICAgIHZhciBk
cmF3U3RhcnRUaW1lOwogCkBAIC0xMTEsNCArMTE1LDQgQEAKIAogPC9zY3JpcHQ+CiA8L2JvZHk+
Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386966</attachid>
            <date>2020-01-07 07:11:50 -0800</date>
            <delta_ts>2020-01-07 07:30:36 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-205802-20200107161147.patch</filename>
            <type>text/plain</type>
            <size>106896</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGMzMmFmOWU2MDE0ZmQ3
MjUzZGYxNjJiZGJjODFiNTM3M2FmNjk4ZS4uMTdjMzc3MzhjY2JlOTdiMzhkMmIyNjY0MTFiNGIw
MDRiYmQ2YjkyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTAxLTA3ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgTWVkaWFS
ZWNvcmRlciBiYWNrZW5kIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTgwMgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMg
Q2FybHNvbi4KKworICAgICAgICBBZGQgYSBwYWdlIHByb3ZpZGVyIHRvIGNyZWF0ZSBNZWRpYVJl
Y29yZGVyUHJpdmF0ZSBpbXBsZW1lbnRhdGlvbnMuCisgICAgICAgIFRoaXMgaXMgdXNlZCBieSBX
ZWJLaXQgbGF5ZXIgdG8gaW1wbGVtZW50IHRoaXMgaW4gR1BVUHJvY2Vzcy4KKworICAgICAgICBV
cGRhdGUgTWVkaWFSZWNvcmRlclByaXZhdGUgYnkgYWRkaW5nIGFuIGVycm9yIGNhbGxiYWNrIHRo
YXQgaXMgdXNlZCB0byBzdXJmYWNlIGVycm9ycyBhcyBNZWRpYVJlY29yZGVyIGVycm9yIGV2ZW50
cy4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzIGFzIE1lZGlhUmVjb3JkZXIg
aW1wbGVtZW50YXRpb24gaW4gV2ViS2l0VGVzdFJ1bm5lciB3aWxsIHVzZSBHUFVQcm9jZXNzLgor
CisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNv
cmRlclByaXZhdGUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29y
ZGVyLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92
aWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVy
OjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Vz
LnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYWdlQ29u
ZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2U6Om1lZGlhUmVjb3JkZXJQcm92aWRlcik6CisgICAgICAgICog
cGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uZmln
dXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3Vy
YXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW06CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVzZXRU
b0NvbnNpc3RlbnRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldFVzZUdQ
VVByb2Nlc3NGb3JXZWJSVEMpOgorCiAyMDIwLTAxLTA3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIEFkZCBBUEkgdG8gc2V0
IHB1cnBvc2UgYW5kIGhpbnRzIG9mIGFjdGl2ZSBlZGl0YWJsZSBlbGVtZW50IHRvIGlucHV0IG1l
dGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggOGVmODZkMjE3YWVlZjExOWYxN2NiNTM4YTU1Y2UyYjNjNDRhMzc4
ZS4uMWU4ZjY1OTEyZjQzZjQ5NjJhMTMyYWNiMjVhNGZkODA0Nzg2NTMwZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw3MCBAQAorMjAyMC0wMS0wNyAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgSW1wbGVtZW50IE1lZGlhUmVjb3JkZXIgYmFja2VuZCBpbiBHUFVQcm9j
ZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU4
MDIKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQWRkIHN1
cHBvcnQgZm9yIHNlbmRpbmcgYXVkaW8vdmlkZW8gdHJhY2tzIHRvIHJlY29yZCBmcm9tIFdlYlBy
b2Nlc3MgdG8gR1BVUHJvY2Vzcy4KKyAgICAgICAgQWRkIGEgTWVkaWFSZWNvcmRlclByaXZhdGUg
aW1wbGVtZW50YXRpb24gdGhhdCBzdXBwb3J0cyBzZW5kaW5nIG9uZSBhdWRpbyB0cmFjayBhbmQv
b3Igb25lIHZpZGVvIHRyYWNrIHRvIEdQVVByb2Nlc3MKKyAgICAgICAgYW5kIHN0b3BwaW5nL2Zl
dGNoaW5nIGRhdGEgZnJvbSB0aGUgcmVtb3RlIHJlY29yZGVyIGluIEdQVVByb2Nlc3MuCisKKyAg
ICAgICAgSW4gR1BVUHJvY2VzcywgaW1wbGVtZW50IHRoZSByZW1vdGUgcmVjb3JkZXIgdXNpbmcg
dGhlIGV4aXN0aW5nIFdlYkNvcmUgcmVjb3JkZXIgd3JpdGVyLgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OnVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjptZWRpYVJlY29yZGVyTWFuYWdlcik6CisgICAgICAgIChXZWJL
aXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBH
UFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVByb2Nlc3Muc2IuaW46CisgICAgICAg
ICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyOjpSZW1vdGVNZWRpYVJlY29yZGVyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6flJlbW90ZU1lZGlhUmVjb3JkZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyOjpzdG9yYWdlKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6YXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyOjphdWRpb1NhbXBsZXNBdmFpbGFi
bGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyOjp2aWRlb1NhbXBsZUF2
YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OmZldGNoRGF0
YSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OnN0b3BSZWNvcmRpbmcp
OgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuaDogQWRk
ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5tZXNz
YWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFS
ZWNvcmRlck1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFS
ZWNvcmRlck1hbmFnZXI6OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI6On5SZW1vdGVNZWRpYVJlY29yZGVyTWFu
YWdlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOjpkaWRS
ZWNlaXZlUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6Y3JlYXRlUmVjb3JkZXIpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6cmVsZWFzZVJlY29yZGVyKToKKyAgICAgICAg
KiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI6OmRpZFJlY2VpdmVN
ZXNzYWdlRnJvbVdlYlByb2Nlc3MpOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUmVjb3JkZXJQcm92
aWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVy
OjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVySWRlbnRpZmllci5oOiBBZGRlZC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6Ok1lZGlhUmVjb3JkZXJQcml2
YXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6On5NZWRpYVJlY29y
ZGVyUHJpdmF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpzYW1w
bGVCdWZmZXJVcGRhdGVkKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6
OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQ
cml2YXRlOjpzdG9yYWdlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQ
cml2YXRlOjpmZXRjaERhdGEpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0
ZTo6c3RvcFJlY29yZGluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlh
UmVjb3JkZXJQcml2YXRlLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TWVk
aWFSZWNvcmRlclByb3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5oOiBBZGRlZC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6Om1fb3ZlcnJpZGRlbk1lZGlhVHlwZSk6CisKIDIwMjAtMDEtMDcgIENhcmxvcyBHYXJjaWEg
Q2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gQWRkIEFQ
SSB0byByZXRyaWV2ZSBhbmQgZGVsZXRlIHN1cnJvdW5kaW5nIHRleHQgZm9yIGlucHV0IG1ldGhv
ZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA0YzQ0Y2RlODUxN2EyZWI4M2YwMTU2
ZDMzNTAxYzFkOGMyYTliYTFmLi5kODg5M2E4YzQxNTE3MGFhOGM4NWIwZWQxNjQ0NTcxYWYwMjQ1
MGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAt
MDEtMDcgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxl
bWVudCBNZWRpYVJlY29yZGVyIGJhY2tlbmQgaW4gR1BVUHJvY2VzcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1ODAyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAg
ICAgICAoLVtXZWJWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6Z3JvdXBO
YW1lOl0pOgorICAgICAgICAoLVtXZWJWaWV3IGluaXRTaW1wbGVIVE1MRG9jdW1lbnRXaXRoU3R5
bGU6ZnJhbWU6cHJlZmVyZW5jZXM6Z3JvdXBOYW1lOl0pOgorCiAyMDIwLTAxLTA3ICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVd
IEFkZCBBUEkgdG8gc2V0IHB1cnBvc2UgYW5kIGhpbnRzIG9mIGFjdGl2ZSBlZGl0YWJsZSBlbGVt
ZW50IHRvIGlucHV0IG1ldGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCAxOTU1
ODIzZGFlOGFmZWU1YTk4MzYwMTYwODMxMmFlNGRjZTVkYjJmLi4zYzhiYzJjZjIxZWMyOGY4NjY0
Y2RhZDQxMjA2MTJhYTE5YjgxMDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMjAtMDEtMDcgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgorCisgICAgICAgIEltcGxlbWVudCBNZWRpYVJlY29yZGVyIGJhY2tlbmQgaW4gR1BVUHJvY2Vz
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1ODAy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogV2ViVmll
dy5jcHA6CisgICAgICAgIChXZWJWaWV3Ojppbml0V2l0aEZyYW1lKToKKwogMjAyMC0wMS0wNyAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dU
S11bV1BFXSBBZGQgQVBJIHRvIHNldCBwdXJwb3NlIGFuZCBoaW50cyBvZiBhY3RpdmUgZWRpdGFi
bGUgZWxlbWVudCB0byBpbnB1dCBtZXRob2RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA0NjYxOWM2
NWQ2YjNjM2Q4MWZmNGMyZTUwMDUyMTZhYTQ5NjJlYzE0Li44MTJlZDQ2OWQyMDkwODU1OGNkZDdj
ZGU4MjgzY2VlODg2YjhlY2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTgwLDYgKzgwLDggQEAg
c2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JREJSZXN1bHREYXRhLmgKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCVHJhbnNhY3Rpb25JbmZvLmgKIAorICAgIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJl
Y29yZGVyUHJvdmlkZXIuaAorCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
RXZlbnRzLmgKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25NZXRhZGF0YS5o
CiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oCkBAIC0x
MTU1LDYgKzExNTcsOCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1PcGVyYXRpb25zLmgKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmgKIAor
ICAgIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaAorCiAgICAg
cGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmljZS5oCiAgICAgcGxhdGZvcm0vbWVkaWFz
dHJlYW0vQ2FwdHVyZURldmljZU1hbmFnZXIuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhQ29uc3RyYWludHMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwCmluZGV4IDk5MWVhMmEwZjNkMjI0NGRmMWU4ZWUy
N2Y3OTA4NmQzZWM0M2Q2ZjAuLjQ0YzMxODczMzhjMzliZTI4MTI4OTRlMjMyYzZiODFkZjhlMjc5
MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIv
TWVkaWFSZWNvcmRlci5jcHAKQEAgLTM0LDYgKzM0LDggQEAKICNpbmNsdWRlICJFdmVudE5hbWVz
LmgiCiAjaW5jbHVkZSAiTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaCIKICNpbmNsdWRlICJNZWRp
YVJlY29yZGVyUHJpdmF0ZS5oIgorI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92aWRlci5oIgor
I2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJX
aW5kb3dFdmVudExvb3AuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgpAQCAt
NTAsMTEgKzUyLDE0IEBAIGNyZWF0b3JGdW5jdGlvbiBNZWRpYVJlY29yZGVyOjptX2N1c3RvbUNy
ZWF0b3IgPSBudWxscHRyOwogCiBFeGNlcHRpb25PcjxSZWY8TWVkaWFSZWNvcmRlcj4+IE1lZGlh
UmVjb3JkZXI6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxNZWRpYVN0cmVhbT4mJiBz
dHJlYW0sIE9wdGlvbnMmJiBvcHRpb25zKQogewotICAgIGF1dG8gcHJpdmF0ZUluc3RhbmNlID0g
TWVkaWFSZWNvcmRlcjo6Z2V0UHJpdmF0ZUltcGwoc3RyZWFtLT5wcml2YXRlU3RyZWFtKCkpOwor
ICAgIGF1dG8gcHJpdmF0ZUluc3RhbmNlID0gTWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNv
cmRlclByaXZhdGUoZG9jdW1lbnQsIHN0cmVhbS0+cHJpdmF0ZVN0cmVhbSgpKTsKICAgICBpZiAo
IXByaXZhdGVJbnN0YW5jZSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRl
ZEVycm9yLCAiVGhlIE1lZGlhUmVjb3JkZXIgaXMgdW5zdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9y
bSJfcyB9OwogICAgIGF1dG8gcmVjb3JkZXIgPSBhZG9wdFJlZigqbmV3IE1lZGlhUmVjb3JkZXIo
ZG9jdW1lbnQsIFdURk1vdmUoc3RyZWFtKSwgV1RGTW92ZShwcml2YXRlSW5zdGFuY2UpLCBXVEZN
b3ZlKG9wdGlvbnMpKSk7CiAgICAgcmVjb3JkZXItPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJl
Y29yZGVyLT5tX3ByaXZhdGUtPnNldEVycm9yQ2FsbGJhY2soW3JlY29yZGVyID0gcmVjb3JkZXIu
Y29weVJlZigpXShhdXRvJiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICAgICAgcmVjb3JkZXIt
PmRpc3BhdGNoRXJyb3IoV1RGTW92ZSgqZXhjZXB0aW9uKSk7CisgICAgfSk7CiAgICAgcmV0dXJu
IHJlY29yZGVyOwogfQogCkBAIC02MywxNyArNjgsMTYgQEAgdm9pZCBNZWRpYVJlY29yZGVyOjpz
ZXRDdXN0b21Qcml2YXRlUmVjb3JkZXJDcmVhdG9yKGNyZWF0b3JGdW5jdGlvbiBjcmVhdG9yKQog
ICAgIG1fY3VzdG9tQ3JlYXRvciA9IGNyZWF0b3I7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxNZWRp
YVJlY29yZGVyUHJpdmF0ZT4gTWVkaWFSZWNvcmRlcjo6Z2V0UHJpdmF0ZUltcGwoY29uc3QgTWVk
aWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCitzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclBy
aXZhdGU+IE1lZGlhUmVjb3JkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKERvY3VtZW50
JiBkb2N1bWVudCwgY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCiB7CiAgICAgaWYg
KG1fY3VzdG9tQ3JlYXRvcikKICAgICAgICAgcmV0dXJuIG1fY3VzdG9tQ3JlYXRvcigpOwogICAg
IAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHJldHVybiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFW
RkltcGw6OmNyZWF0ZShzdHJlYW0pOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc3RyZWFtKTsK
LSAgICByZXR1cm4gbnVsbHB0cjsKLSNlbmRpZgorICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5w
YWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJl
dHVybiBwYWdlLT5tZWRpYVJlY29yZGVyUHJvdmlkZXIoKS5jcmVhdGVNZWRpYVJlY29yZGVyUHJp
dmF0ZShzdHJlYW0pOwogfQogCiBNZWRpYVJlY29yZGVyOjpNZWRpYVJlY29yZGVyKERvY3VtZW50
JiBkb2N1bWVudCwgUmVmPE1lZGlhU3RyZWFtPiYmIHN0cmVhbSwgc3RkOjp1bmlxdWVfcHRyPE1l
ZGlhUmVjb3JkZXJQcml2YXRlPiYmIHByaXZhdGVJbXBsLCBPcHRpb25zJiYgb3B0aW9uKQpAQCAt
MTgyLDExICsxODYsMTcgQEAgdm9pZCBNZWRpYVJlY29yZGVyOjpkaWRBZGRPclJlbW92ZVRyYWNr
KCkKICAgICAgICAgaWYgKCFtX2lzQWN0aXZlIHx8IHN0YXRlKCkgPT0gUmVjb3JkaW5nU3RhdGU6
OkluYWN0aXZlKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBzdG9wUmVjb3JkaW5nSW50
ZXJuYWwoKTsKLSAgICAgICAgYXV0byBldmVudCA9IE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIEV4Y2VwdGlvbiB7IFVua25vd25FcnJvciwg
IlRyYWNrIGNhbm5vdCBiZSBhZGRlZCB0byBvciByZW1vdmVkIGZyb20gdGhlIE1lZGlhU3RyZWFt
IHdoaWxlIHJlY29yZGluZyBpcyBoYXBwZW5pbmciX3MgfSk7Ci0gICAgICAgIGRpc3BhdGNoRXZl
bnQoV1RGTW92ZShldmVudCkpOworICAgICAgICBkaXNwYXRjaEVycm9yKEV4Y2VwdGlvbiB7IFVu
a25vd25FcnJvciwgIlRyYWNrIGNhbm5vdCBiZSBhZGRlZCB0byBvciByZW1vdmVkIGZyb20gdGhl
IE1lZGlhU3RyZWFtIHdoaWxlIHJlY29yZGluZyBpcyBoYXBwZW5pbmciX3MgfSk7CiAgICAgfSk7
CiB9CiAKK3ZvaWQgTWVkaWFSZWNvcmRlcjo6ZGlzcGF0Y2hFcnJvcihFeGNlcHRpb24mJiBleGNl
cHRpb24pCit7CisgICAgaWYgKCFtX2lzQWN0aXZlKQorICAgICAgICByZXR1cm47CisgICAgZGlz
cGF0Y2hFdmVudChNZWRpYVJlY29yZGVyRXJyb3JFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5l
cnJvckV2ZW50LCBXVEZNb3ZlKGV4Y2VwdGlvbikpKTsKK30KKwogdm9pZCBNZWRpYVJlY29yZGVy
Ojp0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKIHsKICAgICBhdXRvIHBvc2l0
aW9uID0gbV90cmFja3MuZmluZE1hdGNoaW5nKFtdKGF1dG8mIHRyYWNrKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaAppbmRl
eCBlYjZmOTZhNmFlMGEzOWJhMTBiNTIwYmI5OGNjNGVlMWI1MzkzNzQ0Li5lOTBiOTliOTU3NTY1
Y2MwMDY4MzNkOTYzYTFmNTUwODk4NzYwNTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKQEAgLTcxLDExICs3MSwxMSBA
QCBwdWJsaWM6CiAgICAgCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc3RhcnRSZWNvcmRpbmcoT3B0
aW9uYWw8aW50Pik7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc3RvcFJlY29yZGluZygpOwotICAg
IAorCiBwcml2YXRlOgogICAgIE1lZGlhUmVjb3JkZXIoRG9jdW1lbnQmLCBSZWY8TWVkaWFTdHJl
YW0+JiYsIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4mJiwgT3B0aW9ucyYm
ID0geyB9KTsKIAotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZh
dGU+IGdldFByaXZhdGVJbXBsKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYpOworICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3Jk
ZXJQcml2YXRlKERvY3VtZW50JiwgY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJik7CiAgICAgCiAg
ICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CiAKQEAgLTkxLDcgKzkxLDkgQEAgcHJpdmF0
ZToKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CiAg
ICAgCiAgICAgdm9pZCBzdG9wUmVjb3JkaW5nSW50ZXJuYWwoKTsKLSAgICAKKworICAgIHZvaWQg
ZGlzcGF0Y2hFcnJvcihFeGNlcHRpb24mJik7CisKICAgICAvLyBNZWRpYVN0cmVhbTo6T2JzZXJ2
ZXIKICAgICB2b2lkIGRpZEFkZE9yUmVtb3ZlVHJhY2soKSBmaW5hbDsKICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJv
dmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVj
b3JkZXJQcm92aWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjY0ZmNjYzM2OGE2MTI3ZGY5OTFmYmZkM2Rm
YzFiZmYzMzkwYWMwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCkBAIC0wLDAgKzEsNDkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRl
clByb3ZpZGVyLmgiCisKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZS5oIgorCisjaWYg
UExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmgi
CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gTWVkaWFSZWNvcmRlclBy
b3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShjb25zdCBNZWRpYVN0cmVhbVByaXZh
dGUmIHN0cmVhbSkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICByZXR1cm4gTWVkaWFSZWNv
cmRlclByaXZhdGVBVkZJbXBsOjpjcmVhdGUoc3RyZWFtKTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKHN0cmVhbSk7CisgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKK30KKyNlbmRpZgorCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFS
ZWNvcmRlclByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIv
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGE5M2FmNDg2NzY2ZDc1ZWE4NGI1
ZjVlYjY5MjI0MTkxNzEwZTA3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaApAQCAtMCwwICsxLDQ5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgTWVkaWFSZWNvcmRlclByaXZhdGU7CitjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7CisK
K2NsYXNzIFdFQkNPUkVfRVhQT1JUIE1lZGlhUmVjb3JkZXJQcm92aWRlciB7CisgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgTWVkaWFSZWNvcmRlclByb3ZpZGVyKCkg
PSBkZWZhdWx0OworICAgIHZpcnR1YWwgfk1lZGlhUmVjb3JkZXJQcm92aWRlcigpID0gZGVmYXVs
dDsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9w
dHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0
IE1lZGlhU3RyZWFtUHJpdmF0ZSYpOworI2VuZGlmCisKKyAgICB2b2lkIHNldFVzZUdQVVByb2Nl
c3MoYm9vbCB2YWx1ZSkgeyBtX3VzZUdQVVByb2Nlc3MgPSB2YWx1ZTsgfQorCitwcm90ZWN0ZWQ6
CisgICAgYm9vbCBtX3VzZUdQVVByb2Nlc3MgeyBmYWxzZSB9OworfTsKKworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAppbmRleCA2MGJiYmZkNDZlZTg3OTY4ZmQyYzFlZmE1ZmY3N2I3ZWYwYWM0ZDY4Li40MTEyMTU1
N2FlNmYzNWRiOWFkNWY0YzFlOGFjY2NhMDg2NjNlNmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTUx
LDYgKzE1MSw3IEBAIE1vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAK
IAogTW9kdWxlcy9tZWRpYXJlY29yZGVyL0Jsb2JFdmVudC5jcHAKIE1vZHVsZXMvbWVkaWFyZWNv
cmRlci9NZWRpYVJlY29yZGVyLmNwcAorTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3Jk
ZXJQcm92aWRlci5jcHAKIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyRXJyb3JF
dmVudC5jcHAKIAogTW9kdWxlcy9tZWRpYXNlc3Npb24vSFRNTE1lZGlhRWxlbWVudE1lZGlhU2Vz
c2lvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBlYzQwODRkOTg0NThjMzUzMjQyNWJjOWVlZjc1MzdmNTA2MzViMzUwLi40
NTE0YWY2YzUyMzkxMDExODc3OTNiZjlkZmUzOGVhY2E4NjM0ZTRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTAxLDYgKzEx
MDEsNyBAQAogCQk0MTc2MTJCMDFFM0E5OTQwMDBDM0Q4MUQgLyogTGliV2ViUlRDTWVkaWFFbmRw
b2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3
NjEyQUMxRTNBOTkzQjAwQzNEODFEIC8qIExpYldlYlJUQ01lZGlhRW5kcG9pbnQuaCAqLzsgfTsK
IAkJNDE3NjEyQjExRTNBOTk0MDAwQzNEODFEIC8qIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTc2MTJBRDFFM0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5k
LmNwcCAqLzsgfTsKIAkJNDE3NjEyQjIxRTNBOTk0MDAwQzNEODFEIC8qIExpYldlYlJUQ1BlZXJD
b25uZWN0aW9uQmFja2VuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDE3NjEyQUUxRTNBOTkzQjAwQzNEODFEIC8qIExpYldlYlJUQ1BlZXJDb25uZWN0
aW9uQmFja2VuZC5oICovOyB9OworCQk0MTc2RTg5NjIzQzM1MzdCMDAzRTgzRkUgLyogTWVkaWFS
ZWNvcmRlclByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTc2RTg4RjIzQzM0OEQyMDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE3
REE2RDkxMzczNEU2RTAwN0M1N0ZCIC8qIEludGVybmFscy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTdEQTRDRjEzNzM0MzI2MDA3QzU3RkIgLyog
SW50ZXJuYWxzLmNwcCAqLzsgfTsKIAkJNDE3REE2REExMzczNEU2RTAwN0M1N0ZCIC8qIEludGVy
bmFscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3
REE0Q0UxMzczNDMyNjAwN0M1N0ZCIC8qIEludGVybmFscy5oICovOyB9OwogCQk0MTdEQTcxRDEz
NzM1REZBMDA3QzU3RkIgLyogSlNJbnRlcm5hbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3REE3MUIxMzczNURGQTAwN0M1N0ZCIC8qIEpTSW50
ZXJuYWxzLmNwcCAqLzsgfTsKQEAgLTEzNzQsOSArMTM3NSw5IEBACiAJCTRCREVBMzJDMjE4MDMz
RUIwMDUyREZDRCAvKiBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCREVBMzJCMjE4MDMzRUIwMDUyREZDRCAv
KiBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuaCAqLzsgfTsKIAkJNEQzQjAwQUIyMTVENjlBNzAw
NzZCOTgzIC8qIE1lZGlhUmVjb3JkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDREM0IwMEE5MjE1RDY5QTcwMDc2Qjk4MyAvKiBNZWRpYVJlY29yZGVy
LmggKi87IH07CiAJCTREM0IwMEFGMjE1RDZBNjkwMDc2Qjk4MyAvKiBCbG9iRXZlbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREM0IwMEFEMjE1RDZB
NjkwMDc2Qjk4MyAvKiBCbG9iRXZlbnQuaCAqLzsgfTsKLQkJNEQzQjUwMTYyMTdFNThCNzAwNjY1
REIxIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0RDNCNTAxNDIxN0U1OEI3MDA2NjVEQjEgLyogTWVkaWFSZWNv
cmRlclByaXZhdGUuaCAqLzsgfTsKKwkJNEQzQjUwMTYyMTdFNThCNzAwNjY1REIxIC8qIE1lZGlh
UmVjb3JkZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0RDNCNTAxNDIxN0U1OEI3MDA2NjVEQjEgLyogTWVkaWFSZWNvcmRlclByaXZhdGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0RDcz
Rjk0NjIxOEJDNUZBMDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RDczRjk0NDIxOEJD
NUZBMDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmggKi87IH07Ci0JCTRE
NzNGOTRFMjE4QzRBODcwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29h
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RDczRjk0
QzIxOEM0QTg3MDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oICov
OyB9OworCQk0RDczRjk0RTIxOEM0QTg3MDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNEQ3M0Y5NEMyMThDNEE4NzAwM0EzRUQ2IC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
Q29jb2EuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk0REI3MTMwRDIxNkVDQjREMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREQjcxMzBDMjE2
RUMyQkQwMDk2QTRERCAvKiBNZWRpYVJlY29yZGVyRXJyb3JFdmVudC5oICovOyB9OwogCQk0RTE5
NTkyMjBBMzlEQUJBMDAyMjBGRTUgLyogTWVkaWFGZWF0dXJlTmFtZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRFMTk1OTIwMEEzOURBQkEwMDIyMEZF
NSAvKiBNZWRpYUZlYXR1cmVOYW1lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTRFMTk1OTJBMEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RTE5NTky
NDBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC03Mzk5LDYgKzc0MDAsOCBAQAogCQk0MTc2MTJB
RTFFM0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFj
a2VuZC5oOyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc2OTAwMzIyRkNEOEYyMDBCMTU3NkQg
LyogTWVkaWFTb3VyY2VSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZWRpYVNvdXJjZVJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
NzY5MDA0MjJGQ0Q4RjIwMEIxNTc2RCAvKiBNZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU291cmNlUmVnaXN0cnkuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc2RTg4RjIzQzM0OEQyMDAzRTgzRkUgLyog
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1lZGlhUmVjb3JkZXJQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MTc2RTg5MTIzQzM0Qjc1MDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJQcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxNzdGNTFDMjM4MjU0NDAwMEMwNDQ4NiAvKiBCYXNlQXVkaW9TaGFy
ZWRVbml0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VBdWRp
b1NoYXJlZFVuaXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc3RjUxRTIz
ODI1NDVFMDBDMDQ0ODYgLyogQmFzZUF1ZGlvU2hhcmVkVW5pdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBCYXNlQXVkaW9TaGFyZWRVbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxN0RBNENFMTM3MzQzMjYwMDdDNTdGQiAvKiBJbnRlcm5hbHMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW50ZXJuYWxzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xODkzMiw2ICsxODkzNSw4IEBACiAJCQkJNERCNzEzMEUyMTZFRUJB
RTAwOTZBNEREIC8qIE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmNwcCAqLywKIAkJCQk0REI3MTMw
QzIxNkVDMkJEMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaCAqLywKIAkJCQk0
REI3MTMwQTIxNkVDMkJDMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaWRsICov
LAorCQkJCTQxNzZFODkxMjNDMzRCNzUwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJvdmlkZXIu
Y3BwICovLAorCQkJCTQxNzZFODhGMjNDMzQ4RDIwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJv
dmlkZXIuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWVkaWFyZWNvcmRlcjsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CkBAIC0zMTQ3NCw2ICszMTQ3OSw3IEBACiAJCQkJNEQzQjUwMTYyMTdF
NThCNzAwNjY1REIxIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0RDczRjk0NjIxOEJDNUZBMDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBs
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0RDczRjk0RTIxOEM0QTg3MDAzQTNFRDYgLyogTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE3NkU4OTYy
M0MzNTM3QjAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92aWRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQzkwODQzRDAxQjE4RTQ3RDAwQjY4NTY0IC8qIE1lZGlhUmVtb3RlQ29udHJvbHMuaCBp
biBIZWFkZXJzICovLAogCQkJCUNEOEFDQThGMUQyMzk3MTkwMEVDQzU5RSAvKiBNZWRpYVJlbW90
ZVNvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRUVGQ0Q3QTE5REIzMUY3MDAzODc2RDcg
LyogTWVkaWFSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDg0ZTRlMThjM2Y2MzhlZTMzZDI4MDE4NGRkZDhjYWE4
YWEwZTQ5MjIuLmNiNTFmMzZmZWJmYjA4MWUyYjZmNzRlZTZlNDkwMThjZDk3MTA0ZGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01Myw2ICs1Myw4IEBACiAjaW5j
bHVkZSAiSURCQ29ubmVjdGlvblRvU2VydmVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50
LmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29y
ZGVyUHJpdmF0ZS5oIgorI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92aWRlci5oIgogI2luY2x1
ZGUgIk5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJQYWdlQ29uZmlndXJhdGlvbi5oIgpAQCAtNTcxLDEwICs1NzMsMTkgQEAgUmVmPFN0b3JhZ2VO
YW1lc3BhY2U+IEVtcHR5U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOjpjcmVhdGVUcmFuc2llbnRM
b2NhbFN0b3JhZ2UKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbXB0eVN0b3JhZ2VOYW1lc3Bh
Y2UgeyBzZXNzaW9uSUQgfSk7CiB9CiAKLWNsYXNzIEVtcHR5U3RvcmFnZVNlc3Npb25Qcm92aWRl
ciA6IHB1YmxpYyBTdG9yYWdlU2Vzc2lvblByb3ZpZGVyIHsKK2NsYXNzIEVtcHR5U3RvcmFnZVNl
c3Npb25Qcm92aWRlciBmaW5hbCA6IHB1YmxpYyBTdG9yYWdlU2Vzc2lvblByb3ZpZGVyIHsKICAg
ICBOZXR3b3JrU3RvcmFnZVNlc3Npb24qIHN0b3JhZ2VTZXNzaW9uKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbnVsbHB0cjsgfQogfTsKIAorY2xhc3MgRW1wdHlNZWRpYVJlY29yZGVyUHJvdmlkZXIg
ZmluYWwgOiBwdWJsaWMgTWVkaWFSZWNvcmRlclByb3ZpZGVyIHsKK3B1YmxpYzoKKyAgICBFbXB0
eU1lZGlhUmVjb3JkZXJQcm92aWRlcigpID0gZGVmYXVsdDsKK3ByaXZhdGU6CisjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+
IGNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYpIGZp
bmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KKyNlbmRpZgorfTsKKwogUGFnZUNvbmZpZ3VyYXRpb24g
cGFnZUNvbmZpZ3VyYXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKIHsKICAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbiB7CkBAIC01ODUs
NyArNTk2LDggQEAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb25XaXRoRW1wdHlD
bGllbnRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAgICAgQ2FjaGVTdG9yYWdlUHJv
dmlkZXI6OmNyZWF0ZSgpLAogICAgICAgICBhZG9wdFJlZigqbmV3IEVtcHR5QmFja0ZvcndhcmRD
bGllbnQpLAogICAgICAgICBDb29raWVKYXI6OmNyZWF0ZShhZG9wdFJlZigqbmV3IEVtcHR5U3Rv
cmFnZVNlc3Npb25Qcm92aWRlcikpLAotICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5UHJvZ3Jl
c3NUcmFja2VyQ2xpZW50PigpCisgICAgICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlQcm9ncmVzc1Ry
YWNrZXJDbGllbnQ+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlNZWRpYVJlY29yZGVy
UHJvdmlkZXI+KCkKICAgICB9OwogCiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEVtcHR5Q2hy
b21lQ2xpZW50PiBkdW1teUNocm9tZUNsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDYzYzA1
MzQzNzk4ZDMxMDJkODAzMmQzNTcxOTNjYzliYTkzNzY2MTkuLjAxMDI3OWZlZmM0NWY5ODZmMjgw
NWJlNzdiZjNjY2RmNzFlNTFkYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMjQ2LDYgKzI0Niw3
IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikKICNp
ZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICAsIG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50
KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNoU3ludGhlc2lzQ2xpZW50KSkKICNlbmRp
ZgorICAgICwgbV9tZWRpYVJlY29yZGVyUHJvdmlkZXIoKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRp
b24ubWVkaWFSZWNvcmRlclByb3ZpZGVyKSkpCiAgICAgLCBtX2xpYldlYlJUQ1Byb3ZpZGVyKFdU
Rk1vdmUocGFnZUNvbmZpZ3VyYXRpb24ubGliV2ViUlRDUHJvdmlkZXIpKQogICAgICwgbV92ZXJ0
aWNhbFNjcm9sbEVsYXN0aWNpdHkoU2Nyb2xsRWxhc3RpY2l0eUFsbG93ZWQpCiAgICAgLCBtX2hv
cml6b250YWxTY3JvbGxFbGFzdGljaXR5KFNjcm9sbEVsYXN0aWNpdHlBbGxvd2VkKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaAppbmRleCAyYzNmN2MzNDMzODdmYjQ4YzJmNTVlM2VhNmU5NWMzZTlmNTQ3NjUwLi5lMWYy
N2NmYzhjYzk3NTkzY2FlMjU0ZDZlOGU2NTA3Y2FlNzBlMmM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAt
MTEwLDYgKzExMCw3IEBAIGNsYXNzIExpYldlYlJUQ1Byb3ZpZGVyOwogY2xhc3MgTG93UG93ZXJN
b2RlTm90aWZpZXI7CiBjbGFzcyBNZWRpYUNhblN0YXJ0TGlzdGVuZXI7CiBjbGFzcyBNZWRpYVBs
YXliYWNrVGFyZ2V0OworY2xhc3MgTWVkaWFSZWNvcmRlclByb3ZpZGVyOwogY2xhc3MgUGFnZUNv
bmZpZ3VyYXRpb247CiBjbGFzcyBQYWdlQ29uc29sZUNsaWVudDsKIGNsYXNzIFBhZ2VEZWJ1Z2dh
YmxlOwpAQCAtNTg0LDYgKzU4NSw3IEBAIHB1YmxpYzoKICAgICBEYXRhYmFzZVByb3ZpZGVyJiBk
YXRhYmFzZVByb3ZpZGVyKCkgeyByZXR1cm4gbV9kYXRhYmFzZVByb3ZpZGVyOyB9CiAgICAgQ2Fj
aGVTdG9yYWdlUHJvdmlkZXImIGNhY2hlU3RvcmFnZVByb3ZpZGVyKCkgeyByZXR1cm4gbV9jYWNo
ZVN0b3JhZ2VQcm92aWRlcjsgfQogICAgIFNvY2tldFByb3ZpZGVyJiBzb2NrZXRQcm92aWRlcigp
IHsgcmV0dXJuIG1fc29ja2V0UHJvdmlkZXI7IH0KKyAgICBNZWRpYVJlY29yZGVyUHJvdmlkZXIm
IG1lZGlhUmVjb3JkZXJQcm92aWRlcigpIHsgcmV0dXJuIG1fbWVkaWFSZWNvcmRlclByb3ZpZGVy
OyB9CiAgICAgQ29va2llSmFyJiBjb29raWVKYXIoKSB7IHJldHVybiBtX2Nvb2tpZUphci5nZXQo
KTsgfQogCiAgICAgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyJiBzdG9yYWdlTmFtZXNwYWNlUHJv
dmlkZXIoKSB7IHJldHVybiBtX3N0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5nZXQoKTsgfQpAQCAt
Nzk1LDYgKzc5Nyw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFN5bnRo
ZXNpc0NsaWVudD4gbV9zcGVlY2hTeW50aGVzaXNDbGllbnQ7CiAjZW5kaWYKIAorICAgIFVuaXF1
ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+IG1fbWVkaWFSZWNvcmRlclByb3ZpZGVyOwogICAg
IFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4gbV9saWJXZWJSVENQcm92aWRlcjsKICAgICBS
VENDb250cm9sbGVyIG1fcnRjQ29udHJvbGxlcjsKIApAQCAtOTIwLDcgKzkyMyw2IEBAIHByaXZh
dGU6CiAgICAgUmVmPFVzZXJDb250ZW50UHJvdmlkZXI+IG1fdXNlckNvbnRlbnRQcm92aWRlcjsK
ICAgICBSZWY8VmlzaXRlZExpbmtTdG9yZT4gbV92aXNpdGVkTGlua1N0b3JlOwogICAgIFJlZlB0
cjxXaGVlbEV2ZW50VGVzdE1vbml0b3I+IG1fd2hlZWxFdmVudFRlc3RNb25pdG9yOwotCiAgICAg
SGFzaFNldDxBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIqPiBtX2FjdGl2aXR5U3RhdGVDaGFu
Z2VPYnNlcnZlcnM7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfVVNBR0UpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGVmODc3YTU1ODgyMWU0NDY3ZjQ1Y2Ez
YzA1MjFjYWYyMmQ5MDdkZGUuLjMzOGY0ZTdjMTkxMjFhZjE3OTQyZDAxNzI0Y2UyOTExM2M1ZDNm
MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCkBAIC0zNiw2
ICszNiw3IEBACiAjaW5jbHVkZSAiRHJhZ0NsaWVudC5oIgogI2luY2x1ZGUgIkVkaXRvckNsaWVu
dC5oIgogI2luY2x1ZGUgIkxpYldlYlJUQ1Byb3ZpZGVyLmgiCisjaW5jbHVkZSAiTWVkaWFSZWNv
cmRlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50LmgiCiAj
aW5jbHVkZSAiUGx1Z0luQ2xpZW50LmgiCiAjaW5jbHVkZSAiUGx1Z2luSW5mb1Byb3ZpZGVyLmgi
CkBAIC01NSw3ICs1Niw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFnZUNvbmZpZ3Vy
YXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVl
UmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiBz
b2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmIGxpYldlYlJUQ1By
b3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9yYWdlUHJvdmlkZXIs
IFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVudCwgUmVmPENvb2tpZUph
cj4mJiBjb29raWVKYXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYgcHJvZ3Jl
c3NUcmFja2VyQ2xpZW50KQorUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JD
bGllbnQsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiBzb2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExp
YldlYlJUQ1Byb3ZpZGVyPiYmIGxpYldlYlJUQ1Byb3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJv
dmlkZXI+JiYgY2FjaGVTdG9yYWdlUHJvdmlkZXIsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiBi
YWNrRm9yd2FyZENsaWVudCwgUmVmPENvb2tpZUphcj4mJiBjb29raWVKYXIsIFVuaXF1ZVJlZjxQ
cm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50LCBVbmlxdWVSZWY8
TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYmIG1lZGlhUmVjb3JkZXJQcm92aWRlcikKICAgICA6IHNl
c3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBlZGl0b3JDbGllbnQoV1RGTW92ZShlZGl0b3JDbGll
bnQpKQogICAgICwgc29ja2V0UHJvdmlkZXIoV1RGTW92ZShzb2NrZXRQcm92aWRlcikpCkBAIC02
NCw2ICs2NSw3IEBAIFBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDCiAgICAgLCBiYWNrRm9yd2FyZENs
aWVudChXVEZNb3ZlKGJhY2tGb3J3YXJkQ2xpZW50KSkKICAgICAsIGNvb2tpZUphcihXVEZNb3Zl
KGNvb2tpZUphcikpCiAgICAgLCBjYWNoZVN0b3JhZ2VQcm92aWRlcihXVEZNb3ZlKGNhY2hlU3Rv
cmFnZVByb3ZpZGVyKSkKKyAgICAsIG1lZGlhUmVjb3JkZXJQcm92aWRlcihXVEZNb3ZlKG1lZGlh
UmVjb3JkZXJQcm92aWRlcikpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3Vy
YXRpb24uaAppbmRleCAxOTFhMDJiNjE1ZjQwYTk4MGM0MjFmN2ZiZjNmMzE2ZDJiMTY0ZmVmLi4z
YThlZDMzNDQwYzJjMTg4NTI4MzE4OTE4YTc1MjJiOTIxN2Y0NzZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCkBAIC01Miw2ICs1Miw3IEBAIGNsYXNzIEVkaXRvckNs
aWVudDsKIGNsYXNzIEZyYW1lTG9hZGVyQ2xpZW50OwogY2xhc3MgSW5zcGVjdG9yQ2xpZW50Owog
Y2xhc3MgTGliV2ViUlRDUHJvdmlkZXI7CitjbGFzcyBNZWRpYVJlY29yZGVyUHJvdmlkZXI7CiBj
bGFzcyBQYXltZW50Q29vcmRpbmF0b3JDbGllbnQ7CiBjbGFzcyBQZXJmb3JtYW5jZUxvZ2dpbmdD
bGllbnQ7CiBjbGFzcyBQbHVnSW5DbGllbnQ7CkBAIC02OCw3ICs2OSw3IEBAIGNsYXNzIFNwZWVj
aFN5bnRoZXNpc0NsaWVudDsKIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9uIHsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShQYWdlQ29uZmlndXJhdGlvbik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vz
c2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmLCBSZWY8U29ja2V0UHJvdmlkZXI+JiYs
IFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVy
PiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYsIFJlZjxDb29raWVKYXI+JiYsIFVuaXF1ZVJl
ZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2VDb25m
aWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmLCBSZWY8
U29ja2V0UHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiwgUmVmPENh
Y2hlU3RvcmFnZVByb3ZpZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYsIFJlZjxDb29r
aWVKYXI+JiYsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYsIFVuaXF1ZVJlZjxN
ZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIH5QYWdlQ29uZmln
dXJhdGlvbigpOwogICAgIFBhZ2VDb25maWd1cmF0aW9uKFBhZ2VDb25maWd1cmF0aW9uJiYpOwog
CkBAIC0xMjMsNiArMTI0LDcgQEAgcHVibGljOgogICAgIFJlZlB0cjxEZXZpY2VPcmllbnRhdGlv
blVwZGF0ZVByb3ZpZGVyPiBkZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyOwogI2VuZGlm
CiAgICAgVmVjdG9yPFN0cmluZz4gY29yc0Rpc2FibGluZ1BhdHRlcm5zOworICAgIFVuaXF1ZVJl
ZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+IG1lZGlhUmVjb3JkZXJQcm92aWRlcjsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFS
ZWNvcmRlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIv
TWVkaWFSZWNvcmRlclByaXZhdGUuaAppbmRleCAxMGU5MWYzNzIxOTdlNzI2MjdmMjY1NmJkZjJi
NzQ5NmViOTNkOGE1Li5hZDUxODA3OWU4OTNiOWE0MDZmNjAxYzg4MDY0MTVkYTlhNGMwMGFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVj
b3JkZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRl
ci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAKICNpbmNsdWRlIDx3
dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1
ZGUgIkV4Y2VwdGlvbi5oIgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIApAQCAtNDMsMTIg
KzQ0LDE5IEBAIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIAogY2xhc3MgTWVkaWFSZWNvcmRlclByaXZh
dGUgewogcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCBzYW1wbGVCdWZmZXJVcGRhdGVkKE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlJiwgTWVkaWFTYW1wbGUmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIGNvbnN0IFdU
Rjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiwgc2l6ZV90KSA9IDA7CisgICAgdmlydHVhbCB+TWVkaWFSZWNvcmRlclBy
aXZhdGUoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2FtcGxlQnVmZmVyVXBkYXRl
ZChjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUmLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRh
JiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgPSAwOwogCiAgICAgdmly
dHVhbCB2b2lkIGZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxTaGFyZWRC
dWZmZXI+JiYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB+
TWVkaWFSZWNvcmRlclByaXZhdGUoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BS
ZWNvcmRpbmcoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFJlY29yZGluZygpIHsgfTsKKwor
ICAgIHVzaW5nIEVycm9yQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlv
bj4mJik+OworICAgIHZvaWQgc2V0RXJyb3JDYWxsYmFjayhFcnJvckNhbGxiYWNrJiYgZXJyb3JD
YWxsYmFjaykgeyBtX2Vycm9yQ2FsbGJhY2sgPSBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spOyB9CisK
K3Byb3RlY3RlZDoKKyAgICBFcnJvckNhbGxiYWNrIG1fZXJyb3JDYWxsYmFjazsKIH07CiAgICAg
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZG
SW1wbC5jcHAKaW5kZXggOTE4MzA0NjYwNjY2ZmNlZjU1OWUzYTczZDZmYzRkNWI1NjVlOWU0ZC4u
NmEyNGEyMGRlYzM4ZjY1NmNlNWE4YWJmODA3ZWU3MDczZDA0ZWZmNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFW
RkltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcApAQCAtNDAsNyArNDAsNiBAQCBzdGQ6OnVuaXF1
ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsPiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFW
RkltcGw6OmNyZWF0ZQogewogICAgIC8vIEZJWE1FOiB3ZSB3aWxsIG5lZWQgdG8gaW1wbGVtZW50
IHN1cHBvcnQgZm9yIG11bHRpcGxlIGF1ZGlvL3ZpZGVvIHRyYWNrcwogICAgIC8vIEN1cnJlbnRs
eSB3ZSBvbmx5IGNob29zZSB0aGUgZmlyc3QgdHJhY2sgYXMgdGhlIHJlY29yZGVkIHRyYWNrLgot
ICAgIC8vIEZJWE1FOiBXZSB3b3VsZCBiZXR0ZXIgdG8gdGhyb3cgYW4gZXhjZXB0aW9uIHRvIEph
dmFTY3JpcHQgaWYgd3JpdGVyIGNyZWF0aW9uIGZhaWxzLgogCiAgICAgU3RyaW5nIGF1ZGlvVHJh
Y2tJZDsKICAgICBTdHJpbmcgdmlkZW9UcmFja0lkOwpAQCAtODIsMTQgKzgxLDE0IEBAIE1lZGlh
UmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsKFJlZjxN
ZWRpYVJlY29yZGVyUHJpdmF0CiB7CiB9CiAKLXZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJ
bXBsOjpzYW1wbGVCdWZmZXJVcGRhdGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaywg
TWVkaWFTYW1wbGUmIHNhbXBsZUJ1ZmZlcikKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJ
bXBsOjpzYW1wbGVCdWZmZXJVcGRhdGVkKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0
cmFjaywgTWVkaWFTYW1wbGUmIHNhbXBsZUJ1ZmZlcikKIHsKICAgICBpZiAodHJhY2suaWQoKSAh
PSBtX3JlY29yZGVkVmlkZW9UcmFja0lEKQogICAgICAgICByZXR1cm47CiAgICAgbV93cml0ZXIt
PmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKHNhbXBsZUJ1ZmZlci5wbGF0Zm9ybVNhbXBsZSgpLnNh
bXBsZS5jbVNhbXBsZUJ1ZmZlcik7CiB9CiAKLXZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJ
bXBsOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNr
LCBjb25zdCBXVEY6Ok1lZGlhVGltZSYgbWVkaWFUaW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0
YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVf
dCBzYW1wbGVDb3VudCkKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjphdWRpb1Nh
bXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBjb25z
dCBXVEY6Ok1lZGlhVGltZSYgbWVkaWFUaW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0
YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBzYW1w
bGVDb3VudCkKIHsKICAgICBpZiAodHJhY2suaWQoKSAhPSBtX3JlY29yZGVkQXVkaW9UcmFja0lE
KQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaApp
bmRleCA1ZWMwYmVlN2I5NzcyMDlkZDhhNGYxOWRmMDk5YzE4MDM3MWUwYjc5Li4wY2YwZGYzYzY0
Y2M5NzEzZTMwNTliZTM2Y2FjYzlmYzdjY2MwYjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclBy
aXZhdGVBVkZJbXBsLmgKQEAgLTQzLDggKzQzLDggQEAgcHJpdmF0ZToKIAogICAgIGZyaWVuZCBz
dGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsPiBzdGQ6Om1ha2VfdW5p
cXVlPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4oUmVmPE1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyPiYmLCBTdHJpbmcmJiwgU3RyaW5nJiYpOwogCi0gICAgdm9pZCBzYW1wbGVCdWZmZXJV
cGRhdGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgTWVkaWFTYW1wbGUmKSBmaW5hbDsKLSAg
ICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIGNv
bnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRp
b1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKKyAgICB2b2lkIHNhbXBsZUJ1ZmZl
clVwZGF0ZWQoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBNZWRpYVNhbXBsZSYpIGZp
bmFsOworICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlJiwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0
YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOwogICAgIHZv
aWQgZmV0Y2hEYXRhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFNoYXJlZEJ1ZmZlcj4m
JiwgY29uc3QgU3RyaW5nJik+JiYpIGZpbmFsOwogICAgIGNvbnN0IFN0cmluZyYgbWltZVR5cGUo
KTsKICAgICB2b2lkIHN0b3BSZWNvcmRpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVN
b2NrLmNwcAppbmRleCBjODE2ZTFhYzEzMzUwZGI2ZDYwN2VjMWQwODUwMDQwZTM1N2I0NjFlLi5m
MmFjOGMyN2NiNDVjOTdjMmRjMDNiOGZlNGE3MzY5MTdkNGJjZjg3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9j
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJl
Y29yZGVyUHJpdmF0ZU1vY2suY3BwCkBAIC0zMywxNyArMzMsMTcgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi12b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6c2FtcGxlQnVmZmVyVXBk
YXRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2ssIE1lZGlhU2FtcGxlJikKK3ZvaWQg
TWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjpzYW1wbGVCdWZmZXJVcGRhdGVkKGNvbnN0IE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaywgTWVkaWFTYW1wbGUmKQogewogICAgIGdlbmVyYXRl
TW9ja1N0cmluZyh0cmFjayk7CiB9CiAKLXZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjph
dWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBjb25z
dCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2Nr
OjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRy
YWNrLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29u
c3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkKIHsKICAgICBnZW5lcmF0ZU1vY2tT
dHJpbmcodHJhY2spOwogfQogCi12b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6Z2VuZXJh
dGVNb2NrU3RyaW5nKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaykKK3ZvaWQgTWVkaWFS
ZWNvcmRlclByaXZhdGVNb2NrOjpnZW5lcmF0ZU1vY2tTdHJpbmcoY29uc3QgTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmIHRyYWNrKQogewogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9idWZm
ZXJMb2NrKTsKICAgICBpZiAodHJhY2sudHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5
cGU6OkF1ZGlvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNv
cmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmgKaW5kZXggMDM1NzExZTU1
YmY3ZTkxZjM5NzczZjc4ODgxOGQ4YjQzZGUyNTllZS4uNGRhZWQ2NzMxZGVhNTNlOTc1NjYxYTQ0
YTEyNzBmZjE4ZGUyZDg0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5oCkBAIC0z
NiwxMiArMzYsMTIgQEAgY2xhc3MgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU7CiAKIGNsYXNzIFdF
QkNPUkVfRVhQT1JUIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jayBmaW5hbCA6IHB1YmxpYyBNZWRp
YVJlY29yZGVyUHJpdmF0ZSB7CiBwcml2YXRlOgotICAgIHZvaWQgc2FtcGxlQnVmZmVyVXBkYXRl
ZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJikgZmluYWw7Ci0gICAgdm9p
ZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBjb25zdCBX
VEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgZmluYWw7CisgICAgdm9pZCBzYW1wbGVCdWZmZXJVcGRh
dGVkKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgTWVkaWFTYW1wbGUmKSBmaW5hbDsK
KyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZSYsIGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBj
b25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKICAgICB2b2lkIGZl
dGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxTaGFyZWRCdWZmZXI+JiYsIGNv
bnN0IFN0cmluZyYpPiYmKSBmaW5hbDsKICAgICBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKCk7CiAg
ICAgCi0gICAgdm9pZCBnZW5lcmF0ZU1vY2tTdHJpbmcoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUm
KTsKKyAgICB2b2lkIGdlbmVyYXRlTW9ja1N0cmluZyhjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZSYpOwogCiAgICAgbXV0YWJsZSBMb2NrIG1fYnVmZmVyTG9jazsKICAgICBTdHJpbmdCdWls
ZGVyIG1fYnVmZmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFy
ZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyQ29jb2EuaAppbmRleCBmZmY0NWQ2MzkzOGRiMzM4YjQ3MjRiN2E3NDZjZTM3MjRmYTFk
M2FiLi41MTk3OGJiNmQ4ZDFhMWIwZTVjMWM3YTAxNTEyMjJiZDhiZGZiMmE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaApAQCAtNDks
OSArNDksMTAgQEAgY2xhc3MgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKIGNsYXNzIE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlOwogY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CiAKLWNsYXNzIE1lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPE1lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluPiwgcHVi
bGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiB7CitjbGFzcyBX
RUJDT1JFX0VYUE9SVCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciwgV1RGOjpEZXN0cnVjdGlv
blRocmVhZDo6TWFpbj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlcj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8TWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXI+IGNyZWF0ZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogYXVkaW9UcmFj
aywgY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIHZpZGVvVHJhY2spOworICAgIHN0YXRp
YyBSZWZQdHI8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IGNyZWF0ZShib29sIGhhc0F1ZGlv
LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOwogICAgIH5NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
cigpOwogICAgIAogICAgIGJvb2wgc2V0dXBXcml0ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29j
b2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQppbmRleCA5MmZlMmE0NTBlNTkz
ZjI0YTk2OGZhZWYwYTZiOTZmOTVhZGUzNTEzLi4wNjljODg3NGYwMDllMDk2YzI0OWEwNzgwMTkw
ZGQ4MDQ4YzZiOWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJl
Y29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlckNvY29hLm1tCkBAIC05MCw2ICs5MCwxNyBAQCBzdGF0aWMgTlNTdHJpbmcgKmdl
dEFWRW5jb2RlckJpdFJhdGVLZXlXaXRoRmFsbGJhY2soKQogfQogCiBSZWZQdHI8TWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXI+IE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjcmVhdGUoY29u
c3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIGF1ZGlvVHJhY2ssIGNvbnN0IE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlKiB2aWRlb1RyYWNrKQoreworICAgIGludCB3aWR0aCA9IDAsIGhlaWdodCA9
IDA7CisgICAgaWYgKHZpZGVvVHJhY2spIHsKKyAgICAgICAgYXV0byYgc2V0dGluZ3MgPSB2aWRl
b1RyYWNrLT5zZXR0aW5ncygpOworICAgICAgICB3aWR0aCA9IHNldHRpbmdzLndpZHRoKCk7Cisg
ICAgICAgIGhlaWdodCA9IHNldHRpbmdzLmhlaWdodCgpOworICAgIH0KKyAgICByZXR1cm4gY3Jl
YXRlKCEhYXVkaW9UcmFjaywgd2lkdGgsIGhlaWdodCk7Cit9CisKK1JlZlB0cjxNZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlcj4gTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNyZWF0ZShib29s
IGhhc0F1ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCiB7CiAgICAgTlNTdHJpbmcgKmRpcmVj
dG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAInZpZGVvcyIpOwog
ICAgIE5TU3RyaW5nICpmaWxlbmFtZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiLyVs
bGQubXA0IiwgQ01DbG9ja0dldFRpbWUoQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSkudmFsdWVd
OwpAQCAtMTA2LDEyICsxMTcsMTEgQEAgUmVmUHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
PiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y3JlYXRlKGNvbnN0IE1lZGkKIAogICAgIGF1
dG8gd3JpdGVyID0gYWRvcHRSZWYoKm5ldyBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcihXVEZN
b3ZlKGF2QXNzZXRXcml0ZXIpLCBXVEZNb3ZlKGZpbGVQYXRoKSkpOwogCi0gICAgaWYgKGF1ZGlv
VHJhY2sgJiYgIXdyaXRlci0+c2V0QXVkaW9JbnB1dCgpKQorICAgIGlmIChoYXNBdWRpbyAmJiAh
d3JpdGVyLT5zZXRBdWRpb0lucHV0KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAg
aWYgKHZpZGVvVHJhY2spIHsKLSAgICAgICAgYXV0byYgc2V0dGluZ3MgPSB2aWRlb1RyYWNrLT5z
ZXR0aW5ncygpOwotICAgICAgICBpZiAoIXdyaXRlci0+c2V0VmlkZW9JbnB1dChzZXR0aW5ncy53
aWR0aCgpLCBzZXR0aW5ncy5oZWlnaHQoKSkpCisgICAgaWYgKHdpZHRoICYmIGhlaWdodCkgewor
ICAgICAgICBpZiAoIXdyaXRlci0+c2V0VmlkZW9JbnB1dCh3aWR0aCwgaGVpZ2h0KSkKICAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAppbmRleCA0YTA2
ODQ0MzhjZTY2NWQ3Y2QwNGRhMTBlYTExYTViYzJiNmYyOWY1Li5kZTQ0ZDg4ZWY1YjljMzgxNDA0
NGUwNWY3YzI4YmVlMThhNzJlZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaApAQCAtODEsNyArODEsNyBA
QCBwdWJsaWM6CiAKICAgICBTdHJpbmcgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CiAKLSAg
ICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciB0cmFja3MoKSBjb25zdDsKKyAgICBXRUJD
T1JFX0VYUE9SVCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciB0cmFja3MoKSBjb25zdDsK
ICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogYWN0aXZlVmlkZW9UcmFjaygpIHsgcmV0dXJu
IG1fYWN0aXZlVmlkZW9UcmFjazsgfQogCiAgICAgYm9vbCBhY3RpdmUoKSBjb25zdCB7IHJldHVy
biBtX2lzQWN0aXZlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAppbmRleCAzOTFhNjUzZjQ4
ZTNlN2UzMmE0ODJjNzc5N2M3ZGM3NzEzMTUwMjViLi4wMDcxNmZkMGE0NTYxNGRlNmNkOGFiYWRl
MDU5MGYyYmYxMGMwMjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKQEAgLTEwMCw3ICsx
MDAsNyBAQCBwdWJsaWM6CiAgICAgUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBjbG9uZSgp
OwogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKCkgeyByZXR1cm4gbV9zb3VyY2Uu
Z2V0KCk7IH0KLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUoKSBjb25zdDsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUoKSBjb25zdDsK
IAogICAgIHZvaWQgZW5kVHJhY2soKTsKIApAQCAtMTEwLDcgKzExMCw3IEBAIHB1YmxpYzoKICAg
ICBib29sIGhhc09ic2VydmVyKE9ic2VydmVyJikgY29uc3Q7CiAjZW5kaWYKIAotICAgIGNvbnN0
IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdDsKKyAgICBXRUJD
T1JFX0VYUE9SVCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkg
Y29uc3Q7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJp
bGl0aWVzKCkgY29uc3Q7CiAKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgTWVkaWFD
b25zdHJhaW50cyYsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5Q29uc3RyYWludHNIYW5kbGVy
JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlUXVvdGFNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVF1b3RhTWFuYWdlci5jcHAK
aW5kZXggMGM2MTNkMWE3MmRmZWE2NTljYjJlNzFhODIwYWFhYjYwOWFhOTYxNS4uMTcwNTVkYTIx
ZDYyMzA0MzY3MjZhMjExMDI2YjA2ZjRjZDliNmQ3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9TdG9yYWdlUXVvdGFNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL1N0b3JhZ2VRdW90YU1hbmFnZXIuY3BwCkBAIC0xMjcsNiArMTI3LDEyIEBAIHZvaWQg
U3RvcmFnZVF1b3RhTWFuYWdlcjo6dXBkYXRlUXVvdGFCYXNlZE9uVXNhZ2UoKQogICAgICAgICBt
X3F1b3RhID0gc3RkOjptYXgobV9xdW90YSwgZGVmYXVsdFF1b3RhU3RlcCAqICgobV91c2FnZSAv
IGRlZmF1bHRRdW90YVN0ZXApICsgMSkpOwogICAgIH0KIH0KK3VzYWdlID0gMTAxCitxdW90YSA9
IDEwMAorc3RlcCA9IDEwCisKKzEwKiAoKDEwMSAvIDEwKSArIDEpCisKIAogdm9pZCBTdG9yYWdl
UXVvdGFNYW5hZ2VyOjpyZXNldFF1b3RhVXBkYXRlZEJhc2VkT25Vc2FnZUZvclRlc3RpbmcoKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGJhOTQxOGM1MGM3OWYwMzg5
NWUzN2JjN2IzNzdmYWE5M2I1NTczYjYuLjY4YWI0MjM4NzZhNjUwOWU1ZGJlMjBmMDE2MmY0Mjdm
ZTA5MDRjNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTEyMiw2ICsx
MjIsNyBAQAogI2luY2x1ZGUgIk1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnkuaCIKICNp
bmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIuaCIKKyNpbmNs
dWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCIKICNpbmNsdWRlICJNZWRpYVJlc291cmNlTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFjay5oIgogI2luY2x1ZGUgIk1lbW9yeUNh
Y2hlLmgiCkBAIC01NTAsNiArNTUxLDggQEAgdm9pZCBJbnRlcm5hbHM6OnJlc2V0VG9Db25zaXN0
ZW50U3RhdGUoUGFnZSYgcGFnZSkKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRJbnRlcnJ1cHRBdWRpb09u
UGFnZVZpc2liaWxpdHlDaGFuZ2VFbmFibGVkKGZhbHNlKTsKKyAgICBXZWJDb3JlOjpNZWRpYVJl
Y29yZGVyOjpzZXRDdXN0b21Qcml2YXRlUmVjb3JkZXJDcmVhdG9yKG51bGxwdHIpOworICAgIHBh
Z2UubWVkaWFSZWNvcmRlclByb3ZpZGVyKCkuc2V0VXNlR1BVUHJvY2Vzcyh0cnVlKTsKICNlbmRp
ZgogCiAgICAgSFRNTENhbnZhc0VsZW1lbnQ6OnNldE1heFBpeGVsTWVtb3J5Rm9yVGVzdGluZygw
KTsgLy8gVGhpcyBtZWFucyB1c2UgdGhlIGRlZmF1bHQgdmFsdWUuCkBAIC0xNTU4LDcgKzE1NjEs
OSBAQCB2b2lkIEludGVybmFsczo6c2V0VXNlR1BVUHJvY2Vzc0ZvcldlYlJUQyhib29sIHVzZUdQ
VVByb2Nlc3MpCiAgICAgYXV0byogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKICAgICBp
ZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKQogICAgICAgICByZXR1cm47CisKICAg
ICBkb2N1bWVudC0+cGFnZSgpLT5saWJXZWJSVENQcm92aWRlcigpLnNldFVzZUdQVVByb2Nlc3Mo
dXNlR1BVUHJvY2Vzcyk7CisgICAgZG9jdW1lbnQtPnBhZ2UoKS0+bWVkaWFSZWNvcmRlclByb3Zp
ZGVyKCkuc2V0VXNlR1BVUHJvY2Vzcyh1c2VHUFVQcm9jZXNzKTsKICNlbmRpZgogfQogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dC9DTWFrZUxpc3RzLnR4dAppbmRleCBmZjUyZDI1MzZmNTY1ZmEyOTViZWI2MjAxMjY4YTBmMzMz
MTcwZmYzLi41MzI2NzhmMzc2MDMzYzNjMDBmOWY2YmQ1YTMwYzM4NjkwZTMzNGJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01h
a2VMaXN0cy50eHQKQEAgLTc4LDYgKzc4LDggQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJUkVDVE9S
SUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9HYW1lcGFkIgogICAgICIke1dFQktJ
VF9ESVJ9L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24iCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJv
Y2Vzcy9HUFUiCisgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9HUFUvbWVkaWEiCisgICAg
IiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9HUFUvd2VicnRjIgogICAgICIke1dFQktJVF9ESVJ9
L1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3QKaW5kZXggNzk5NGUzY2E3Nzc2MzI5ZDZmNzVkN2FhZjBjOTNmZDlhYTA1OWUxMC4uZWRmYjZl
MWUwNWU1NjQwMDhiN2Q1N2E4NzQ1Mzc4YzQzZDY2Y2Y5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTksNiArMTksOCBAQCAkKFBST0pF
Q1RfRElSKS9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVByb2Nlc3Muc2IuaW4K
ICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nl
c3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElS
KS9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluCiskKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29r
aWVNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9DdXN0
b21Qcm90b2NvbHMvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLm1lc3NhZ2Vz
LmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApp
bmRleCAwY2QyM2UwMWJiYWNkMmVjNGEwYmRjM2JkZmYyYmUwZDdiNjBiMDFiLi5kZmJjMGVmZTZi
ODQ3MjZmOTZjODk4MjhjZDgzZDBlZDc1OTA1YTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEyOSw2ICsxMjksMTMgQEAgJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyTWVzc2FnZXNSZXAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzUmVw
bGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVNZWRpYVJlY29yZGVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2Vy
TWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZWNvcmRlck1lc3Nh
Z2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZXNSZXBsaWVz
LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1l
ZGlhUmVjb3JkZXJzTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2Vz
UmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2Ug
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggOWQzZTJhOTBjN2I0ZDkw
YTQyNmM3NmE0ZTA1ZTZiMmY4MWNjMGU5ZS4uZTI5MDkzMDk3Y2Q5YmRlYjM0NWExOWE1ZDM3ZmU1
N2E1NDBkZWI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtl
CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTQzLDYgKzE0Myw4
IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHkgXAogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciBcCiAgICAgUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHkgXAorICAgIFJlbW90ZU1lZGlhUmVjb3JkZXIgXAorICAgIFJlbW90
ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyIFwKICAgICBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciBc
CiAgICAgUmVtb3RlT2JqZWN0UmVnaXN0cnkgXAogICAgIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAppbmRleCA1MmE5NWNlMGRlZDcwM2Q2MWQzNGE5ZDE3ZjBjOGI0MmU2
NjRmZGRhLi42MjBiNDFmMjhkNjY3NmEzZGUxN2Y0NzZiMmRmMzg4ZmZmNjQ3NzBkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCkBAIC0zOSw2ICszOSw5IEBACiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWFQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2Vz
LmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuaCIKKyNpbmNsdWRlICJS
ZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVk
aWFSZWNvcmRlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5oIgpAQCAtMTM3
LDYgKzE0MCwxNCBAQCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5JiBHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjp1c2VyTWVkaWFDYXB0dXJlTWFuYWdlcgogCiAgICAgcmV0dXJuICptX3Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7CiB9CisKK1JlbW90ZU1lZGlhUmVjb3JkZXJNYW5h
Z2VyJiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjptZWRpYVJlY29yZGVyTWFuYWdlcigpCit7
CisgICAgaWYgKCFtX3JlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyKQorICAgICAgICBtX3JlbW90
ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyID0gbWFrZVVuaXF1ZTxSZW1vdGVNZWRpYVJlY29yZGVyTWFu
YWdlcj4oKnRoaXMpOworCisgICAgcmV0dXJuICptX3JlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2Vy
OworfQogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykKQEAg
LTE2Myw2ICsxNzQsMTQgQEAgdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIEkKICAgICAgICAgdXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpLmRpZFJlY2VpdmVNZXNzYWdlRnJvbUdQVVByb2Nlc3Mo
Y29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgaWYgKGRl
Y29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29y
ZGVyTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIG1lZGlhUmVjb3Jk
ZXJNYW5hZ2VyKCkuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vzcyhjb25uZWN0aW9uLCBk
ZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdl
UmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSkgeworICAgICAgICBtZWRpYVJlY29yZGVyTWFuYWdlcigpLmRpZFJlY2Vp
dmVSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElC
V0VCUlRDKQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdl
czo6TGliV2ViUlRDQ29kZWNzUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgK
aW5kZXggYWM3MTI1ZDczOGQ4Njg4OGVlYThiNGE5MjUxNWY5ZGU0ZDFmNmIwNC4uZjQ4NTk2NGQ0
NmM1MmUzMzhkMmFiZTRmNzY1ZGRjYjVhOTRhMDc5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC00MSw4ICs0MSw5
IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgR1BVUHJvY2VzczsKIGNsYXNzIExpYldlYlJU
Q0NvZGVjc1Byb3h5OwogY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk7Ci1jbGFz
cyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OworY2xhc3MgUmVtb3RlTWVkaWFSZWNvcmRl
ck1hbmFnZXI7CiBjbGFzcyBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjsKK2NsYXNzIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7CiAKIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MKICAgICA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+CkBA
IC03MSw2ICs3Miw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkgJiYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5JiB1
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCk7CisgICAgUmVtb3RlTWVkaWFSZWNvcmRlck1h
bmFnZXImIG1lZGlhUmVjb3JkZXJNYW5hZ2VyKCk7CiAjZW5kaWYKIAogICAgIC8vIElQQzo6Q29u
bmVjdGlvbjo6Q2xpZW50CkBAIC04OSw2ICs5MSw3IEBAIHByaXZhdGU6CiAgICAgUEFMOjpTZXNz
aW9uSUQgbV9zZXNzaW9uSUQ7CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAgICAgc3RkOjp1bmlxdWVfcHRyPFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk+
IG1fdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVt
b3RlTWVkaWFSZWNvcmRlck1hbmFnZXI+IG1fcmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI7CiAj
ZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8TGliV2ViUlRDQ29kZWNzUHJveHk+IG1fbGliV2ViUlRDQ29kZWNzUHJveHk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVj
b3JkZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJl
Y29yZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZDhhODVkNTc0YmNlN2NhYzMwM2Q2M2EyOWJiOTVmMGMz
OWNjZjBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcApAQCAtMCwwICsxLDEzOSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlY29yZGVyLmgiCisK
KyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAi
U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1ZmZl
ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvUmVtb3RlVmlkZW9TYW1wbGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1
ZGlvQnVmZmVyTGlzdC5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorCit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0ZDo6dW5p
cXVlX3B0cjxSZW1vdGVNZWRpYVJlY29yZGVyPiBSZW1vdGVNZWRpYVJlY29yZGVyOjpjcmVhdGUo
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgTWVk
aWFSZWNvcmRlcklkZW50aWZpZXIgaWRlbnRpZmllciwgYm9vbCByZWNvcmRBdWRpbywgaW50IHdp
ZHRoLCBpbnQgaGVpZ2h0KQoreworICAgIGF1dG8gd3JpdGVyID0gTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXI6OmNyZWF0ZShyZWNvcmRBdWRpbywgd2lkdGgsIGhlaWdodCk7CisgICAgaWYgKCF3
cml0ZXIpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9w
dHI8UmVtb3RlTWVkaWFSZWNvcmRlcj4obmV3IFJlbW90ZU1lZGlhUmVjb3JkZXIgeyBncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLCBpZGVudGlmaWVyLCB3cml0ZXIucmVsZWFzZU5vbk51bGwoKSwg
cmVjb3JkQXVkaW8gfSk7Cit9CisKK1JlbW90ZU1lZGlhUmVjb3JkZXI6OlJlbW90ZU1lZGlhUmVj
b3JkZXIoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vz
cywgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPE1lZGlhUmVjb3JkZXJQ
cml2YXRlV3JpdGVyPiYmIHdyaXRlciwgYm9vbCByZWNvcmRBdWRpbykKKyAgICA6IG1fZ3B1Q29u
bmVjdGlvblRvV2ViUHJvY2VzcyhncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQorICAgICwgbV9p
ZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX3dyaXRlcihXVEZNb3ZlKHdyaXRlcikpCit7
CisgICAgaWYgKHJlY29yZEF1ZGlvKQorICAgICAgICBtX3JpbmdCdWZmZXIgPSBtYWtlVW5pcXVl
PENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4obnVs
bHB0cikpOworfQorCitSZW1vdGVNZWRpYVJlY29yZGVyOjp+UmVtb3RlTWVkaWFSZWNvcmRlcigp
Cit7Cit9CisKK1NoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBSZW1vdGVNZWRpYVJlY29yZGVyOjpz
dG9yYWdlKCkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2UmPihtX3JpbmdCdWZmZXItPnN0b3JhZ2UoKSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZWNv
cmRlcjo6YXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5k
bGUmIGhhbmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNj
cmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7CisgICAgQVNTRVJUKG1fcmluZ0J1
ZmZlcik7CisgICAgaWYgKCFtX3JpbmdCdWZmZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
ZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKKworICAgIGlmIChoYW5kbGUuaXNOdWxsKCkpIHsK
KyAgICAgICAgbV9yaW5nQnVmZmVyLT5kZWFsbG9jYXRlKCk7CisgICAgICAgIHN0b3JhZ2UoKS5z
ZXRSZWFkT25seShmYWxzZSk7CisgICAgICAgIHN0b3JhZ2UoKS5zZXRTdG9yYWdlKG51bGxwdHIp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBtZW1vcnkgPSBTaGFyZWRNZW1v
cnk6Om1hcChoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworICAg
IHN0b3JhZ2UoKS5zZXRTdG9yYWdlKFdURk1vdmUobWVtb3J5KSk7CisgICAgc3RvcmFnZSgpLnNl
dFJlYWRPbmx5KHRydWUpOworCisgICAgbV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlv
biwgbnVtYmVyT2ZGcmFtZXMpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXI6OmF1ZGlv
U2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMs
IHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQoreworICAgIEFTU0VSVCht
X3JpbmdCdWZmZXIpOworICAgIGlmICghbV9yaW5nQnVmZmVyKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX3JpbmdCdWZmZXItPnNldEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRG
cmFtZSk7CisKKyAgICBXZWJBdWRpb0J1ZmZlckxpc3QgYXVkaW9EYXRhKG1fZGVzY3JpcHRpb24s
IG51bWJlck9mRnJhbWVzKTsKKyAgICBtX3JpbmdCdWZmZXItPmZldGNoKGF1ZGlvRGF0YS5saXN0
KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsKKworICAgIG1fd3JpdGVyLT5h
cHBlbmRBdWRpb1NhbXBsZUJ1ZmZlcihhdWRpb0RhdGEsIG1fZGVzY3JpcHRpb24sIHRpbWUsIG51
bWJlck9mRnJhbWVzKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyOjp2aWRlb1NhbXBs
ZUF2YWlsYWJsZShXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSYmIHJlbW90ZVNhbXBsZSkKK3sK
KyAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vzc2lv
bi0+cGl4ZWxGb3JtYXQoKSAhPSByZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSkKKyAgICAgICAg
bV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiA9IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShy
ZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSk7CisKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNl
c3Npb24pIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24t
PmNyZWF0ZU1lZGlhU2FtcGxlKHJlbW90ZVNhbXBsZS5zdXJmYWNlKCksIHJlbW90ZVNhbXBsZS50
aW1lKCksIHJlbW90ZVNhbXBsZS5zaXplKCkpOworICAgIGlmICghc2FtcGxlQnVmZmVyKSB7Cisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgbV93cml0ZXItPmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKHNhbXBsZUJ1ZmZlci0+cGxhdGZv
cm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOworfQorCit2b2lkIFJlbW90ZU1lZGlh
UmVjb3JkZXI6OmZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6RGF0YVJlZmVy
ZW5jZSYmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBtcDRNaW1lVHlwZShNQUtF
X1NUQVRJQ19TVFJJTkdfSU1QTCgidmlkZW8vbXA0IikpOworICAgIG1fd3JpdGVyLT5mZXRjaERh
dGEoWyZtcDRNaW1lVHlwZSA9IG1wNE1pbWVUeXBlLmdldCgpLCBjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvJiYgZGF0YSkgbXV0YWJsZSB7CisgICAg
ICAgIGF1dG8qIHBvaW50ZXIgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRh
ID8gZGF0YS0+ZGF0YSgpIDogbnVsbHB0cik7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKElQ
Qzo6RGF0YVJlZmVyZW5jZSB7IHBvaW50ZXIsIGRhdGEgPyBkYXRhLT5zaXplKCkgOiAwIH0sIG1w
NE1pbWVUeXBlKTsKKyAgICB9KTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyOjpzdG9w
UmVjb3JkaW5nKCkKK3sKKyAgICBtX3dyaXRlci0+c3RvcFJlY29yZGluZygpOworfQorCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVNZWRpYVJlY29yZGVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZU1lZGlhUmVjb3JkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NGE4ZDE3NTVjNTk1MzBjMjMxMzZiNDc3Yjlh
OGEwODU0NDE0ZjU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmgKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAi
TWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCisjaW5jbHVkZSA8
V2ViQ29yZS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaD4KKyNpbmNsdWRlIDx3dGYvTWVkaWFUaW1l
Lmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIERhdGFSZWZl
cmVuY2U7CitjbGFzcyBEZWNvZGVyOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBD
QVJpbmdCdWZmZXI7CitjbGFzcyBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOworY2xhc3MgUmVtb3Rl
VmlkZW9TYW1wbGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOworY2xhc3MgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U7CisKK2NsYXNz
IFJlbW90ZU1lZGlhUmVjb3JkZXIgOiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPFJlbW90ZU1lZGlhUmVjb3JkZXI+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzJiwgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIsIGJvb2wgcmVjb3JkQXVkaW8sIGludCB3aWR0
aCwgaW50IGhlaWdodCk7CisgICAgflJlbW90ZU1lZGlhUmVjb3JkZXIoKTsKKworICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7
CisKK3ByaXZhdGU6CisgICAgUmVtb3RlTWVkaWFSZWNvcmRlcihHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJiwgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpNZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlcj4mJiwgYm9vbCByZWNvcmRBdWRpbyk7CisKKyAgICAvLyBJUEM6Ok1l
c3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgYXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQoY29uc3Qg
U2hhcmVkTWVtb3J5OjpIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisgICAgdm9pZCBhdWRpb1NhbXBsZXNB
dmFpbGFibGUoTWVkaWFUaW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3Rh
cnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworICAgIHZvaWQgdmlkZW9TYW1wbGVBdmFpbGFi
bGUoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUmJik7CisgICAgdm9pZCBmZXRjaERhdGEoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OkRhdGFSZWZlcmVuY2UmJiwgY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSk+JiYpOworICAgIHZvaWQgc3RvcFJlY29yZGluZygpOworCisgICAgU2hhcmVkUmlu
Z0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKTsKKworICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MmIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzczsKKyAgICBNZWRpYVJlY29yZGVySWRlbnRp
ZmllciBtX2lkZW50aWZpZXI7CisgICAgUmVmPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyPiBtX3dyaXRlcjsKKworICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biBtX2Rlc2NyaXB0aW9uOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDQVJpbmdCdWZm
ZXI+IG1fcmluZ0J1ZmZlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VUcmFu
c2ZlclNlc3Npb25WVD4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbjsKK307CisKK30KKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlh
UmVjb3JkZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzE0ZWRjNTM2MTAyM2Vk
Yzc4Mjc4MGM0ZDQ2ZTlkMTViOTQ4MTM5ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5tZXNzYWdlcy5pbgpAQCAt
MCwwICsxLDM0IEBACisjIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisj
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYg
UExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVt
b3RlTWVkaWFSZWNvcmRlciBOb3RSZWZDb3VudGVkIHsKKyAgICBBdWRpb1NhbXBsZXNTdG9yYWdl
Q2hhbmdlZChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNv
cmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVy
T2ZGcmFtZXMpCisgICAgQXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSB0aW1lLCB1aW50
NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJh
bWUpCisgICAgVmlkZW9TYW1wbGVBdmFpbGFibGUoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUg
c2FtcGxlKQorICAgIEZldGNoRGF0YSgpIC0+IChJUEM6OkRhdGFSZWZlcmVuY2UgYnVmZmVyLCBT
dHJpbmcgbWltZVR5cGUpIEFzeW5jCisgICAgU3RvcFJlY29yZGluZygpCit9CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJl
Y29yZGVyTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNGUzZmVkYmIyMTgyYjk2ZjFi
M2ZlNmY2YWNhZDZhY2Q1MGYyNDI2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5jcHAKQEAgLTAsMCAr
MSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1v
dGVNZWRpYVJlY29yZGVyTWFuYWdlci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJM
RShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJE
ZWNvZGVyLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlci5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvRXhjZXB0aW9uRGF0YS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3RlTWVk
aWFSZWNvcmRlck1hbmFnZXI6OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyKEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCisgICAgOiBtX2dwdUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcykKK3sKK30KKwor
UmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI6On5SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcigp
Cit7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI6OmRpZFJlY2VpdmVSZW1v
dGVNZWRpYVJlY29yZGVyTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6
RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAoYXV0byogcmVjb3JkZXIgPSBtX3JlY29yZGVy
cy5nZXQobWFrZU9iamVjdElkZW50aWZpZXI8TWVkaWFSZWNvcmRlcklkZW50aWZpZXJUeXBlPihk
ZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSkpKQorICAgICAgICByZWNvcmRlci0+ZGlkUmVjZWl2ZU1l
c3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZWNvcmRl
ck1hbmFnZXI6OmNyZWF0ZVJlY29yZGVyKE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIGJvb2wgcmVjb3JkQXVkaW8sIGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb25EYXRhPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBBU1NFUlQoIW1fcmVjb3JkZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAg
ICBhdXRvIHJlY29yZGVyID0gUmVtb3RlTWVkaWFSZWNvcmRlcjo6Y3JlYXRlKG1fZ3B1Q29ubmVj
dGlvblRvV2ViUHJvY2VzcywgaWRlbnRpZmllciwgcmVjb3JkQXVkaW8sIHdpZHRoLCBoZWlnaHQp
OworICAgIGlmICghcmVjb3JkZXIpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihF
eGNlcHRpb25EYXRhIHsgTm90U3VwcG9ydGVkRXJyb3IsICJVbmFibGUgdG8gY3JlYXRlIGEgcmVj
b3JkZXIgd2l0aCB0aGUgcHJvdmlkZWQgc3RyZWFtIl9zIH0pOworCisgICAgbV9yZWNvcmRlcnMu
YWRkKGlkZW50aWZpZXIsIFdURk1vdmUocmVjb3JkZXIpKTsKKyAgICBjb21wbGV0aW9uSGFuZGxl
cih7IH0pOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOjpyZWxlYXNlUmVj
b3JkZXIoTWVkaWFSZWNvcmRlcklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQo
bV9yZWNvcmRlcnMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIG1fcmVjb3JkZXJzLnJlbW92
ZShpZGVudGlmaWVyKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41ZDU3MGI0ZTIwMmZhZDI1MzkzNTRhZjE3MGYxMDEwMzI4OGU5ZDZkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRp
YVJlY29yZGVyTWFuYWdlci5oCkBAIC0wLDAgKzEsNzIgQEAKKworCisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQor
CisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlcklkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdl
UmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIERlY29k
ZXI7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBFeGNlcHRpb25EYXRhOworfQor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzczsK
K2NsYXNzIFJlbW90ZU1lZGlhUmVjb3JkZXI7CisKK2NsYXNzIFJlbW90ZU1lZGlhUmVjb3JkZXJN
YW5hZ2VyIDogcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUmVtb3RlTWVkaWFSZWNvcmRlck1h
bmFnZXIoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYpOworICAgIH5SZW1vdGVNZWRpYVJlY29y
ZGVyTWFuYWdlcigpOworCisgICAgdm9pZCBkaWRSZWNlaXZlUmVtb3RlTWVkaWFSZWNvcmRlck1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBD
OjpEZWNvZGVyJiBkZWNvZGVyKSB7IGRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIpOyB9CisKK3ByaXZhdGU6CisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFs
OworICAgIHZvaWQgY3JlYXRlUmVjb3JkZXIoTWVkaWFSZWNvcmRlcklkZW50aWZpZXIsIGJvb2wg
cmVjb3JkQXVkaW8sIGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChPcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYmKT4mJik7CisgICAgdm9pZCByZWxl
YXNlUmVjb3JkZXIoTWVkaWFSZWNvcmRlcklkZW50aWZpZXIpOworCisgICAgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOworICAgIEhhc2hNYXA8
TWVkaWFSZWNvcmRlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVJlY29y
ZGVyPj4gbV9yZWNvcmRlcnM7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNv
cmRlck1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzg3YTQxMzYxY2RiZDliN2VhZTJj
MzM3MzY1MmE5OGY0OTM0ZTE3NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIubWVzc2FnZXMuaW4KQEAg
LTAsMCArMSwzMSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
IyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lm
IFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisKK21lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyIE5vdFJlZkNv
dW50ZWQgeworICAgIENyZWF0ZVJlY29yZGVyKFdlYktpdDo6TWVkaWFSZWNvcmRlcklkZW50aWZp
ZXIgaWQsIGJvb2wgaGFzQXVkaW8sIGludCB3aWR0aCwgaW50IGhlaWdodCkgLT4gKE9wdGlvbmFs
PFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IGNyZWF0aW9uRXJyb3IpIEFzeW5jCisgICAgUmVsZWFz
ZVJlY29yZGVyKFdlYktpdDo6TWVkaWFSZWNvcmRlcklkZW50aWZpZXIgaWQpCit9CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBi
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggNWQ4NDQ3MTMy
NWJiYTdhNDM1ZWQ5MzNjMDkwOTA5NDUzYjlkNDAyNS4uZjhiY2UxNDU1MDdkZjQ5ZTg5ZWQ0Zjcx
OTg3NmUxMGJmNzA5NmJkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
LnB5CkBAIC0yMjAsNiArMjIwLDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRf
ZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYktpdDo6QWN0aXZpdHlTdGF0ZUNoYW5nZUlEJywKICAg
ICAgICAgJ1dlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEJywKICAgICAgICAgJ1dlYktpdDo6
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllcicsCisgICAgICAgICdXZWJLaXQ6Ok1l
ZGlhUmVjb3JkZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6UmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpSVENEZWNvZGVySWRlbnRpZmllcics
CiAgICAgICAgICdXZWJLaXQ6OlJUQ0VuY29kZXJJZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4
IGQwMzkzYmIwNjJkOTdhZTk2YTcyMjVhNmQ2MDdiMDc0YjM4ZTBjOTguLjMwNmNkMWU2OTM1NjYx
YWQ0MWMwNjA5Mjg0OGJmOWFmMzZiMWI3MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMjQsNiArMjQsOCBA
QAogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcAogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcAogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cAorR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAKK0dQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5jcHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJj
ZS5jcHAKQEAgLTUxMyw2ICs1MTUsOCBAQCBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllck1hbmFnZXIuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
ck1JTUVUeXBlQ2FjaGUuY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
TWVkaWFSZXNvdXJjZVByb3h5LmNwcAogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0Nv
ZGVjcy5jcHAKK1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAK
K1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCiAKIFdlYlBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL05l
dHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggZmU3
NTc5NTM3NjFiOTlmNjliODI4YzExYmJjMGYzMzFhZWVmYzE5MS4uYWJjOGI4NTkyZmIyNjcwMGI1
NmMwZjQ3Njg3NTkwY2YyYjA2ZTY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
Q29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNjM1LDUg
KzYzNSw3IEBAIEdQVVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIEdQVVByb2Nlc3NN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiBMaWJXZWJSVENDb2RlY3NQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAKIExpYldlYlJUQ0NvZGVjc01lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZU1lZGlhUmVjb3Jk
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAKIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlUmVjZWl2ZXIuY3BwCiBU
ZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1Nzc4YmE1ODcy
MzJjNmU2YTc4MjI0NmI5YzdjYjMyMGFlOGZjY2VhLi5jZjBiM2JlZTdlMDJmZDI2ODEzOTkzYzM1
NWEwOThlMzUyZWI4MjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTMzMTYsNiArMzMxNiwxNyBAQAogCQk0MTcyMTk4QzIzQjYxMkU4
MDBBRTU2ODYgLyogUlRDRGVjb2RlcklkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUlRDRGVjb2RlcklkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDE3MjE5OEQyM0I2MkM3QzAwQUU1Njg2IC8qIExpYldlYlJUQ0NvZGVjcy5tZXNz
YWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBMaWJXZWJSVENDb2RlY3MubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxNzY5MDEzMjJGREQ0MUIwMEIxNTc2RCAvKiBOZXR3b3JrUlRDUHJv
dmlkZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOZXR3b3Jr
UlRDUHJvdmlkZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODkyMjND
MzRENkUwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQx
NzZFODkzMjNDMzRENkYwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OTQyM0MzNEUyNjAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQ
cml2YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUmVj
b3JkZXJQcml2YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OTUy
M0MzNEUyNzAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQxNzZFODk3MjNDMzYxQkQwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVy
SWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVJlY29y
ZGVySWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc2RTg5ODIz
QzM2Njc3MDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJlY29yZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQxNzZFODk5MjNDMzZEOEUwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29y
ZGVyTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRp
YVJlY29yZGVyTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc2RTg5
QTIzQzM2RjcxMDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFn
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc2RTg5QjIzQzM3MjIyMDAz
RTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIubWVzc2FnZXMuaW47IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODlDMjNDMzc0NzkwMDNFODNGRSAvKiBS
ZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJl
bW90ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQxNzZFODlEMjNDMzc2RDUwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVjb3JkZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc5MTVBQzIyNTZCQjc0MDBENkY5
N0UgLyogV2ViU29ja2V0Q2hhbm5lbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBXZWJTb2NrZXRDaGFubmVsLmNwcDsgcGF0aCA9IE5ldHdvcmsvV2ViU29ja2V0Q2hh
bm5lbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzkxNUFEMjI1NkJCNzQw
MEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IFdlYlNvY2tldENoYW5uZWwuaDsgcGF0aCA9IE5ldHdvcmsvV2ViU29ja2V0Q2hhbm5l
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc5MTVCMDIyNTZDMEQ2MDBENkY5
N0UgLyogV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuaDsgcGF0aCA9IE5ldHdvcmsvV2ViU29j
a2V0Q2hhbm5lbE1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcxMTcs
NiArNzEyOCwxMSBAQAogCQkJCTQxNzIxOThBMjNCNjEyODIwMEFFNTY4NiAvKiBMaWJXZWJSVEND
b2RlY3MuY3BwICovLAogCQkJCTQxNzIxOTg5MjNCNjEyODIwMEFFNTY4NiAvKiBMaWJXZWJSVEND
b2RlY3MuaCAqLywKIAkJCQk0MTcyMTk4RDIzQjYyQzdDMDBBRTU2ODYgLyogTGliV2ViUlRDQ29k
ZWNzLm1lc3NhZ2VzLmluICovLAorCQkJCTQxNzZFODk3MjNDMzYxQkQwMDNFODNGRSAvKiBNZWRp
YVJlY29yZGVySWRlbnRpZmllci5oICovLAorCQkJCTQxNzZFODk0MjNDMzRFMjYwMDNFODNGRSAv
KiBNZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAgKi8sCisJCQkJNDE3NkU4OTUyM0MzNEUyNzAwM0U4
M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmggKi8sCisJCQkJNDE3NkU4OTMyM0MzNEQ2RjAw
M0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAgKi8sCisJCQkJNDE3NkU4OTIyM0Mz
NEQ2RTAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92aWRlci5oICovLAogCQkJCTQxNzIxOThD
MjNCNjEyRTgwMEFFNTY4NiAvKiBSVENEZWNvZGVySWRlbnRpZmllci5oICovLAogCQkJCTQxNTg2
NDlBMjNCRTA5MjQwMEEwQTYxRSAvKiBSVENFbmNvZGVySWRlbnRpZmllci5oICovLAogCQkJKTsK
QEAgLTcxMjksNiArNzE0NSwxMiBAQAogCQkJCTQxRTBBN0M2MjNCNjM5NzgwMDU2MTA2MCAvKiBM
aWJXZWJSVENDb2RlY3NQcm94eS5oICovLAogCQkJCTQxRTBBN0M3MjNCNjM5NzkwMDU2MTA2MCAv
KiBMaWJXZWJSVENDb2RlY3NQcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQk0MUUwQTdDODIzQjYz
OTc5MDA1NjEwNjAgLyogTGliV2ViUlRDQ29kZWNzUHJveHkubW0gKi8sCisJCQkJNDE3NkU4OUQy
M0MzNzZENTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXIuY3BwICovLAorCQkJCTQxNzZF
ODk4MjNDMzY2NzcwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyLmggKi8sCisJCQkJNDE3
NkU4OUMyM0MzNzQ3OTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4g
Ki8sCisJCQkJNDE3NkU4OUEyM0MzNkY3MTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXJN
YW5hZ2VyLmNwcCAqLywKKwkJCQk0MTc2RTg5OTIzQzM2RDhFMDAzRTgzRkUgLyogUmVtb3RlTWVk
aWFSZWNvcmRlck1hbmFnZXIuaCAqLywKKwkJCQk0MTc2RTg5QjIzQzM3MjIyMDAzRTgzRkUgLyog
UmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkpOwogCQkJcGF0
aCA9IHdlYnJ0YzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUmVjb3JkZXJQcm92aWRl
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZGUyZDY2YmZiY2I0OWQ5Mzg5Mzg2NThjMDAwZWEzMWQ5MmViZjcy
NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92aWRlci5oIgor
CisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJ
bXBsLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGQ6OnVuaXF1ZV9wdHI8
TWVkaWFSZWNvcmRlclByaXZhdGU+IE1lZGlhUmVjb3JkZXJQcm92aWRlcjo6Y3JlYXRlTWVkaWFS
ZWNvcmRlclByaXZhdGUoTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCit7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgcmV0dXJuIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6Y3JlYXRl
KHN0cmVhbSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShzdHJlYW0pOworICAgIHJldHVybiBu
dWxscHRyOworI2VuZGlmCit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUmVjb3JkZXJQcm92aWRlci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcx
MGU4ZDQ4MWY4NmEzNWQwZDllZTlmYjgzZWFlZTY2ZGM3OWRmY2UKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUmVjb3JkZXJQcm92aWRl
ci5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZTsKK2NsYXNzIE1lZGlh
U3RyZWFtUHJpdmF0ZTsKKworY2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFSZWNvcmRlclByb3Zp
ZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
VW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4gY3JlYXRlKCkgeyByZXR1cm4gbWFrZVVu
aXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCk7IH0KKyAgICB2aXJ0dWFsIH5NZWRpYVJl
Y29yZGVyUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0
cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoTWVkaWFT
dHJlYW1Qcml2YXRlJik7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVySWRlbnRpZmllci5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlcklkZW50aWZpZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zMmYwNGUzMzNmZTg0NjMyM2NjY2U3OTM4NWNhNzUyYjU2NDE5M2VkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRl
cklkZW50aWZpZXIuaApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworZW51bSBNZWRpYVJlY29yZGVySWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgTWVkaWFS
ZWNvcmRlcklkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPE1lZGlhUmVjb3JkZXJJZGVudGlm
aWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjA4MTI4ZDIyMTQ2ZWNiMjMxYzVhMGMyNWU4NDUwMGFjMTY3MmUxYmIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRp
YVJlY29yZGVyUHJpdmF0ZS5jcHAKQEAgLTAsMCArMSwxNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGUuaCIKKworI2lm
IFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJHUFVQ
cm9jZXNzQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2Vy
TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZXMuaCIKKyNp
bmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU3RyZWFtUHJpdmF0ZS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlbW90ZVZp
ZGVvU2FtcGxlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK01lZGlhUmVjb3JkZXJQcml2YXRlOjpNZWRpYVJl
Y29yZGVyUHJpdmF0ZShjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKKyAgICA6IG1f
aWRlbnRpZmllcihNZWRpYVJlY29yZGVySWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKKyAgICAsIG1f
Y29ubmVjdGlvbihXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVj
dGlvbigpLmNvbm5lY3Rpb24oKSkKK3sKKyAgICAvLyBGSVhNRTogd2Ugd2lsbCBuZWVkIHRvIGlt
cGxlbWVudCBzdXBwb3J0IGZvciBtdWx0aXBsZSBhdWRpby92aWRlbyB0cmFja3MKKyAgICAvLyBD
dXJyZW50bHkgd2Ugb25seSBjaG9vc2UgdGhlIGZpcnN0IHRyYWNrIGFzIHRoZSByZWNvcmRlZCB0
cmFjay4KKyAgICAvLyBGSVhNRTogV2Ugd291bGQgYmV0dGVyIHRvIHRocm93IGFuIGV4Y2VwdGlv
biB0byBKYXZhU2NyaXB0IGlmIHdyaXRlciBjcmVhdGlvbiBmYWlscy4KKworICAgIGNvbnN0IE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlKiBhdWRpb1RyYWNrIHsgbnVsbHB0ciB9OworICAgIGNvbnN0
IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiB2aWRlb1RyYWNrIHsgbnVsbHB0ciB9OworICAgIGZv
ciAoYXV0byYgdHJhY2sgOiBzdHJlYW0udHJhY2tzKCkpIHsKKyAgICAgICAgaWYgKCF0cmFjay0+
ZW5hYmxlZCgpIHx8IHRyYWNrLT5lbmRlZCgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgIHN3aXRjaCAodHJhY2stPnR5cGUoKSkgeworICAgICAgICBjYXNlIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OlR5cGU6OlZpZGVvOiB7CisgICAgICAgICAgICBhdXRvJiBzZXR0aW5ncyA9IHRyYWNr
LT5zZXR0aW5ncygpOworICAgICAgICAgICAgaWYgKCF2aWRlb1RyYWNrICYmIHNldHRpbmdzLnN1
cHBvcnRzV2lkdGgoKSAmJiBzZXR0aW5ncy5zdXBwb3J0c0hlaWdodCgpKSB7CisgICAgICAgICAg
ICAgICAgdmlkZW9UcmFjayA9IHRyYWNrLmdldCgpOworICAgICAgICAgICAgICAgIG1fcmVjb3Jk
ZWRWaWRlb1RyYWNrSUQgPSB2aWRlb1RyYWNrLT5pZCgpOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNl
OjpUeXBlOjpBdWRpbzoKKyAgICAgICAgICAgIGlmICghYXVkaW9UcmFjaykgeworICAgICAgICAg
ICAgICAgIG1fcmluZ0J1ZmZlciA9IG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVl
UmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPih0aGlzKSk7CisgICAgICAgICAgICAgICAgYXVk
aW9UcmFjayA9IHRyYWNrLmdldCgpOworICAgICAgICAgICAgICAgIG1fcmVjb3JkZWRBdWRpb1Ry
YWNrSUQgPSBhdWRpb1RyYWNrLT5pZCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZToKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIG1fY29ubmVjdGlvbi0+c2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6Q3JlYXRl
UmVjb3JkZXIgeyBtX2lkZW50aWZpZXIsICEhYXVkaW9UcmFjaywgdmlkZW9UcmFjayA/IHZpZGVv
VHJhY2stPnNldHRpbmdzKCkud2lkdGgoKSA6IDAsIHZpZGVvVHJhY2sgPyB2aWRlb1RyYWNrLT5z
ZXR0aW5ncygpLmhlaWdodCgpIDogMCB9LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0
aGlzKV0oYXV0byYmIGV4Y2VwdGlvbikgeworICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICFleGNl
cHRpb24pCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fZXJyb3JDYWxsYmFjayhFeGNl
cHRpb24geyBleGNlcHRpb24tPmNvZGUsIFdURk1vdmUoZXhjZXB0aW9uLT5tZXNzYWdlKSB9KTsK
KyAgICB9LCAwKTsKK30KKworTWVkaWFSZWNvcmRlclByaXZhdGU6On5NZWRpYVJlY29yZGVyUHJp
dmF0ZSgpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJl
Y29yZGVyTWFuYWdlcjo6UmVsZWFzZVJlY29yZGVyIHsgbV9pZGVudGlmaWVyIH0sIDApOworfQor
Cit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzYW1wbGVCdWZmZXJVcGRhdGVkKGNvbnN0IFdl
YkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaywgV2ViQ29yZTo6TWVkaWFTYW1w
bGUmIHNhbXBsZSkKK3sKKyAgICBpZiAodHJhY2suaWQoKSAhPSBtX3JlY29yZGVkVmlkZW9UcmFj
a0lEKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGF1dG8gcmVtb3RlU2FtcGxlID0gUmVtb3Rl
VmlkZW9TYW1wbGU6OmNyZWF0ZShzYW1wbGUpKQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OlZpZGVvU2FtcGxlQXZhaWxhYmxlIHsgV1RG
TW92ZSgqcmVtb3RlU2FtcGxlKSB9LCBtX2lkZW50aWZpZXIpOworfQorCit2b2lkIE1lZGlhUmVj
b3JkZXJQcml2YXRlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgV2ViQ29yZTo6TWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBs
YXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24m
IGRlc2NyaXB0aW9uLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCit7CisgICAgaWYgKHRyYWNrLmlk
KCkgIT0gbV9yZWNvcmRlZEF1ZGlvVHJhY2tJRCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KG1fZGVzY3JpcHRpb24gIT0gZGVzY3JpcHRpb24pIHsKKyAgICAgICAgQVNTRVJUKGRlc2NyaXB0
aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNB
QXVkaW9TdHJlYW1CYXNpY1R5cGUpOworICAgICAgICBtX2Rlc2NyaXB0aW9uID0gKldURjo6Z2V0
PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9uLnBsYXRmb3Jt
RGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CisKKyAgICAgICAgLy8gQWxsb2NhdGUgYSByaW5n
IGJ1ZmZlciBsYXJnZSBlbm91Z2ggdG8gY29udGFpbiAyIHNlY29uZHMgb2YgYXVkaW8uCisgICAg
ICAgIG1fbnVtYmVyT2ZGcmFtZXMgPSBtX2Rlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSAqIDI7Cisg
ICAgICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUobV9kZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlw
dGlvbigpLCBtX251bWJlck9mRnJhbWVzKTsKKyAgICB9CisKKyAgICBBU1NFUlQoaXM8V2ViQXVk
aW9CdWZmZXJMaXN0PihhdWRpb0RhdGEpKTsKKyAgICBtX3JpbmdCdWZmZXItPnN0b3JlKGRvd25j
YXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4oYXVkaW9EYXRhKS5saXN0KCksIG51bWJlck9mRnJhbWVz
LCB0aW1lLnRpbWVWYWx1ZSgpKTsKKyAgICB1aW50NjRfdCBzdGFydEZyYW1lOworICAgIHVpbnQ2
NF90IGVuZEZyYW1lOworICAgIG1fcmluZ0J1ZmZlci0+Z2V0Q3VycmVudEZyYW1lQm91bmRzKHN0
YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJl
bW90ZU1lZGlhUmVjb3JkZXI6OkF1ZGlvU2FtcGxlc0F2YWlsYWJsZSB7IHRpbWUsIG51bWJlck9m
RnJhbWVzLCBzdGFydEZyYW1lLCBlbmRGcmFtZSB9LCBtX2lkZW50aWZpZXIpOworfQorCit2b2lk
IE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3Jh
Z2UpCit7CisgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOworICAgIGlmIChzdG9yYWdl
KQorICAgICAgICBzdG9yYWdlLT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlBy
b3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJl
bW90ZU1lZGlhUmVjb3JkZXI6OkF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkIHsgaGFuZGxlLCBt
X2Rlc2NyaXB0aW9uLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4obV9udW1iZXJPZkZyYW1lcykgfSwg
bV9pZGVudGlmaWVyKTsKK30KKwordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6ZmV0Y2hEYXRh
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJiwg
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbV9j
b25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3Jk
ZXI6OkZldGNoRGF0YSB7IH0sIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXShhdXRvJiYgZGF0YSwgYXV0byYmIG1pbWVUeXBlKSBtdXRhYmxlIHsKKyAgICAg
ICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyOworICAgICAgICBpZiAoZGF0YS5zaXplKCkp
CisgICAgICAgICAgICBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLmRhdGEoKSwg
ZGF0YS5zaXplKCkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGJ1ZmZlciks
IG1pbWVUeXBlKTsKKyAgICB9LCBtX2lkZW50aWZpZXIpOworfQorCit2b2lkIE1lZGlhUmVjb3Jk
ZXJQcml2YXRlOjpzdG9wUmVjb3JkaW5nKCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVz
c2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OlN0b3BSZWNvcmRpbmcgeyB9LCBtX2lkZW50aWZp
ZXIpOworfQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
TWVkaWFSZWNvcmRlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGQzZThiZjNkMGQ0MzM5NmFk
OWI0MGQyZDcyODhjZGEzYzdlNDY1OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKQEAgLTAsMCArMSw3
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oQ09DT0EpICYm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJJZGVudGlmaWVy
LmgiCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL01lZGlhUmVjb3JkZXJQcml2YXRlLmg+CisjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgor
I2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVj
dGlvbjsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRl
OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgTWVkaWFSZWNvcmRlclByaXZhdGUg
ZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGUsIHB1YmxpYyBTaGFy
ZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFS
ZWNvcmRlclByaXZhdGU+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoK
KyAgICBleHBsaWNpdCBNZWRpYVJlY29yZGVyUHJpdmF0ZShjb25zdCBXZWJDb3JlOjpNZWRpYVN0
cmVhbVByaXZhdGUmKTsKKyAgICB+TWVkaWFSZWNvcmRlclByaXZhdGUoKTsKKworcHJpdmF0ZToK
KyAgICAvLyBXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZQorICAgIHZvaWQgc2FtcGxlQnVm
ZmVyVXBkYXRlZChjb25zdCBXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIFdlYkNv
cmU6Ok1lZGlhU2FtcGxlJikgZmluYWw7CisgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUo
Y29uc3QgV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBjb25zdCBXVEY6Ok1lZGlh
VGltZSYsIGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgV2ViQ29yZTo6
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgZmluYWw7CisgICAgdm9pZCBmZXRjaERh
dGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYm
LCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKT4mJikgZmluYWw7CisgICAgdm9pZCBzdG9wUmVjb3Jk
aW5nKCkgZmluYWw7CisKKyAgICAvLyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50Cisg
ICAgdm9pZCBzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqKTsKKworICAgIE1lZGlhUmVjb3Jk
ZXJJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1f
Y29ubmVjdGlvbjsKKyAgICBTdHJpbmcgbV9yZWNvcmRlZEF1ZGlvVHJhY2tJRDsKKyAgICBTdHJp
bmcgbV9yZWNvcmRlZFZpZGVvVHJhY2tJRDsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpDQVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsKKyAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbiB7IH07CisgICAgaW50NjRfdCBtX251bWJlck9mRnJh
bWVzIHsgMCB9OworfTsKKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJM
RShHUFVfUFJPQ0VTUykKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNThi
N2Y3ZTQ3YzYwMmIxYWY5OTc0ODI1NDJjMmQ2MzgzMWM3MmUzMgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRl
ci5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCIKKworI2luY2x1ZGUgIk1lZGlhUmVj
b3JkZXJQcml2YXRlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVJlY29yZGVyUHJpdmF0ZS5o
PgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Ok1lZGlhUmVj
b3JkZXJQcml2YXRlPiBNZWRpYVJlY29yZGVyUHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQ
cml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQoreworI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKKyAgICBpZiAoIW1fdXNlR1BVUHJvY2VzcykKKyAgICAgICAgcmV0dXJuIFdl
YkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUo
c3RyZWFtKTsKKworICAgIHJldHVybiBtYWtlVW5pcXVlPE1lZGlhUmVjb3JkZXJQcml2YXRlPihz
dHJlYW0pOworI2Vsc2UKKyAgICByZXR1cm4gV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVy
OjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShzdHJlYW0pOworI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKK30KKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVy
UHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVj
b3JkZXJQcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0NWZhYTRiZjBlNDc5NzhmZmY0N2MzODc1ZGQ2
N2JmNDFlNDk5M2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaApAQCAtMCwwICsxLDQyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUmVjb3JkZXJQ
cm92aWRlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgTWVkaWFSZWNvcmRlclBy
b3ZpZGVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlciB7Citw
dWJsaWM6CisgICAgTWVkaWFSZWNvcmRlclByb3ZpZGVyKCkgPSBkZWZhdWx0OworCitwcml2YXRl
OgorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6
Ok1lZGlhUmVjb3JkZXJQcml2YXRlPiBjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShjb25zdCBX
ZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGUmKSBmaW5hbDsKKyNlbmRpZgorfTsKKworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA0NGQ3Njdi
YzY0NzIxODNhMmMxMzExNzkwYjc4MGRjYzlmYzU2OWE4Li4yN2QyOWMwN2IzMzhiM2IwZmJhZmZh
ZDViYTRmOGI2Mzc1Yzc1OWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIkxpYldlYlJUQ1Byb3Zp
ZGVyLmgiCiAjaW5jbHVkZSAiTG9hZFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
CisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTmV0c2NhcGVQ
bHVnaW4uaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgiCkBAIC00NjAsNyArNDYx
LDggQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5jYWNoZVN0b3JhZ2VQcm92aWRlcigpLAogICAgICAgICBXZWJCYWNrRm9yd2FyZExpc3RQ
cm94eTo6Y3JlYXRlKCp0aGlzKSwKICAgICAgICAgV2ViQ29va2llSmFyOjpjcmVhdGUoKSwKLSAg
ICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCp0aGlzKQorICAg
ICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oKnRoaXMpLAorICAg
ICAgICBtYWtlVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgICk7CiAgICAg
cGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudCgqdGhp
cyk7CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggNGM0MTg2NGQ4OWY0MDU2N2VkODFlZDJlZmVmYjUwMWY2
NzUzZGI4NC4uMTliMjIxY2IyMjc4M2M1YjY0YzM1M2QwMjg1YTQ0OGY0NTNkMGI2NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTgwLDYgKzE4MCw3
IEBACiAjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbXBvcnQgPFdlYkNv
cmUvTG9nSW5pdGlhbGl6YXRpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3Ry
eS5oPgorI2ltcG9ydCA8V2ViQ29yZS9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaD4KICNpbXBvcnQg
PFdlYkNvcmUvTWVtb3J5Q2FjaGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvTWVtb3J5UmVsZWFzZS5o
PgogI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KQEAgLTE0NDgsNyAr
MTQ0OSw4IEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5l
Y2Vzc2FyeSgpCiAgICAgICAgIFdlYkNvcmU6OkNhY2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUo
KSwKICAgICAgICAgQmFja0ZvcndhcmRMaXN0OjpjcmVhdGUoc2VsZiksCiAgICAgICAgIFdlYkNv
cmU6OkNvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpLAotICAgICAg
ICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oc2VsZikKKyAgICAgICAg
bWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KHNlbGYpLAorICAgICAgICBt
YWtlVW5pcXVlUmVmPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgICk7CiAj
aWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xp
ZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudChzZWxmKTsKQEAgLTE3MTcsNyArMTcxOSw4IEBAIHN0
YXRpYyB2b2lkIFdlYktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiAg
ICAgICAgIFdlYkNvcmU6OkNhY2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUoKSwKICAgICAgICAg
QmFja0ZvcndhcmRMaXN0OjpjcmVhdGUoc2VsZiksCiAgICAgICAgIFdlYkNvcmU6OkNvb2tpZUph
cjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpLAotICAgICAgICBtYWtlVW5pcXVl
UmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oc2VsZikKKyAgICAgICAgbWFrZVVuaXF1ZVJl
ZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KHNlbGYpLAorICAgICAgICBtYWtlVW5pcXVlUmVm
PFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgICk7CiAgICAgcGFnZUNvbmZp
Z3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudElPUyhzZWxmKTsKICNp
ZiBFTkFCTEUoRFJBR19TVVBQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRl
eCBlYjA4NjY0ODY3NzkxNTY4MWYzYWMzZGM4MDM4MjRkYTA4OTcxYjBmLi5lOTU3M2QyYjZlOGJh
NGE0YWEwMzRmZDAwOTkxOGExNTM4MWQ1NDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3
LmNwcApAQCAtMTI5LDYgKzEyOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dJbml0aWFsaXph
dGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTG9nZ2luZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
TUlNRVR5cGVSZWdpc3RyeS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFSZWNvcmRlclByb3Zp
ZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvTWVtb3J5UmVsZWFzZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uLmg+CkBAIC0zMTE4LDEwICszMTE5LDExIEBAIEhSRVNVTFQgV2ViVmlldzo6aW5pdFdpdGhG
cmFtZShSRUNUIGZyYW1lLCBfSW5fIEJTVFIgZnJhbWVOYW1lLCBfSW5fIEJTVFIgZ3JvdXBOCiAg
ICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViRWRpdG9yQ2xpZW50Pih0aGlzKSwKICAgICAgICAgU29j
a2V0UHJvdmlkZXI6OmNyZWF0ZSgpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPExpYldlYlJUQ1By
b3ZpZGVyPigpLAotICAgICAgICBXZWJDb3JlOjpDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRl
KCksCisgICAgICAgIENhY2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUoKSwKICAgICAgICAgQmFj
a0ZvcndhcmRMaXN0OjpjcmVhdGUoKSwKICAgICAgICAgQ29va2llSmFyOjpjcmVhdGUoc3RvcmFn
ZVByb3ZpZGVyLmNvcHlSZWYoKSksCi0gICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jlc3NU
cmFja2VyQ2xpZW50PigpCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2Vy
Q2xpZW50PigpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4o
KQogICAgICk7CiAgICAgY29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21l
Q2xpZW50KHRoaXMpOwogICAgIGNvbmZpZ3VyYXRpb24uY29udGV4dE1lbnVDbGllbnQgPSBuZXcg
V2ViQ29udGV4dE1lbnVDbGllbnQodGhpcyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjA4M2IxOWFkZTc5ZDI5YjI3YTlj
YjRiODhlMjM2MmIxZTZhNzc1Ni4uMjllNWQzNTI4YWNiNDY0MDE5ZTgzOTc2ZTE0NzkxMjgwZGNi
YjMxYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTAxLTA3ICB5b3Vlbm4gZmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgTWVkaWFSZWNvcmRlciBiYWNr
ZW5kIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwNTgwMgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKwor
ICAgICAgICAqIGh0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1BVi1hdWRpby12
aWRlby1kYXRhYXZhaWxhYmxlLmh0bWw6CisgICAgICAgIERvIG5vdCB1c2UgR1BVUHJvY2VzcyBm
b3IgdGhpcyB0ZXN0IHVudGlsIGNhbnZhcyBidWZmZXJzIGFyZSBJT1N1cmZhY2VzLgorCiAyMDIw
LTAxLTA2ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAg
ICAgIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6b2Zmc2V0Rm9yUG9zaXRpb24gcmV0dXJucyBhIHdy
b25nIG9mZnNldCBmb3IgYSBnbHlwaCBib3VuZGFyeSBpbiBhIFJUTCB0ZXh0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXItQVYtYXVk
aW8tdmlkZW8tZGF0YWF2YWlsYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvbWVkaWFy
ZWNvcmRlci9NZWRpYVJlY29yZGVyLUFWLWF1ZGlvLXZpZGVvLWRhdGFhdmFpbGFibGUuaHRtbApp
bmRleCAzYzVmNTM5NmZjZWFmYjlhODU4ODIxN2YyZTBiZTA2YjEwNzRmNDBmLi40NGI2YTJmZWUz
YmEyNWY3YmJjZWJhZGU5NzQzMGIyMjQ4ODFkZmFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXItQVYtYXVkaW8tdmlkZW8tZGF0YWF2
YWlsYWJsZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlci1BVi1hdWRpby12aWRlby1kYXRhYXZhaWxhYmxlLmh0bWwKQEAgLTIwLDYgKzIw
LDEwIEBACiAgICAgPC9jYW52YXM+CiA8L2Rpdj4KIDxzY3JpcHQ+CisgICAgLy8gVGhpcyB0ZXN0
IGlzIG5vdCBwYXNzaW5nIHdpdGggR1BVUHJvY2VzcyBhcyBsb25nIGFzIGNhcHR1cmUgZnJhbWVz
IGFyZSBub3QgSU9TdXJmYWNlZCBiYWNrZWQuCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0VXNlR1BVUHJvY2Vzc0ZvcldlYlJUQyhmYWxzZSk7
CisKICAgICB2YXIgY29udGV4dDsKICAgICB2YXIgZHJhd1N0YXJ0VGltZTsKIApAQCAtMTExLDQg
KzExNSw0IEBACiAKIDwvc2NyaXB0PgogPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386968</attachid>
            <date>2020-01-07 07:30:42 -0800</date>
            <delta_ts>2020-01-08 03:06:53 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-205802-20200107163040.patch</filename>
            <type>text/plain</type>
            <size>106296</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGMzMmFmOWU2MDE0ZmQ3
MjUzZGYxNjJiZGJjODFiNTM3M2FmNjk4ZS4uMTdjMzc3MzhjY2JlOTdiMzhkMmIyNjY0MTFiNGIw
MDRiYmQ2YjkyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTAxLTA3ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgTWVkaWFS
ZWNvcmRlciBiYWNrZW5kIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTgwMgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMg
Q2FybHNvbi4KKworICAgICAgICBBZGQgYSBwYWdlIHByb3ZpZGVyIHRvIGNyZWF0ZSBNZWRpYVJl
Y29yZGVyUHJpdmF0ZSBpbXBsZW1lbnRhdGlvbnMuCisgICAgICAgIFRoaXMgaXMgdXNlZCBieSBX
ZWJLaXQgbGF5ZXIgdG8gaW1wbGVtZW50IHRoaXMgaW4gR1BVUHJvY2Vzcy4KKworICAgICAgICBV
cGRhdGUgTWVkaWFSZWNvcmRlclByaXZhdGUgYnkgYWRkaW5nIGFuIGVycm9yIGNhbGxiYWNrIHRo
YXQgaXMgdXNlZCB0byBzdXJmYWNlIGVycm9ycyBhcyBNZWRpYVJlY29yZGVyIGVycm9yIGV2ZW50
cy4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzIGFzIE1lZGlhUmVjb3JkZXIg
aW1wbGVtZW50YXRpb24gaW4gV2ViS2l0VGVzdFJ1bm5lciB3aWxsIHVzZSBHUFVQcm9jZXNzLgor
CisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNv
cmRlclByaXZhdGUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29y
ZGVyLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92
aWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVy
OjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Vz
LnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYWdlQ29u
ZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2U6Om1lZGlhUmVjb3JkZXJQcm92aWRlcik6CisgICAgICAgICog
cGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uZmln
dXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3Vy
YXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW06CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVzZXRU
b0NvbnNpc3RlbnRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldFVzZUdQ
VVByb2Nlc3NGb3JXZWJSVEMpOgorCiAyMDIwLTAxLTA3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIEFkZCBBUEkgdG8gc2V0
IHB1cnBvc2UgYW5kIGhpbnRzIG9mIGFjdGl2ZSBlZGl0YWJsZSBlbGVtZW50IHRvIGlucHV0IG1l
dGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggOGVmODZkMjE3YWVlZjExOWYxN2NiNTM4YTU1Y2UyYjNjNDRhMzc4
ZS4uMWU4ZjY1OTEyZjQzZjQ5NjJhMTMyYWNiMjVhNGZkODA0Nzg2NTMwZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw3MCBAQAorMjAyMC0wMS0wNyAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgSW1wbGVtZW50IE1lZGlhUmVjb3JkZXIgYmFja2VuZCBpbiBHUFVQcm9j
ZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU4
MDIKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQWRkIHN1
cHBvcnQgZm9yIHNlbmRpbmcgYXVkaW8vdmlkZW8gdHJhY2tzIHRvIHJlY29yZCBmcm9tIFdlYlBy
b2Nlc3MgdG8gR1BVUHJvY2Vzcy4KKyAgICAgICAgQWRkIGEgTWVkaWFSZWNvcmRlclByaXZhdGUg
aW1wbGVtZW50YXRpb24gdGhhdCBzdXBwb3J0cyBzZW5kaW5nIG9uZSBhdWRpbyB0cmFjayBhbmQv
b3Igb25lIHZpZGVvIHRyYWNrIHRvIEdQVVByb2Nlc3MKKyAgICAgICAgYW5kIHN0b3BwaW5nL2Zl
dGNoaW5nIGRhdGEgZnJvbSB0aGUgcmVtb3RlIHJlY29yZGVyIGluIEdQVVByb2Nlc3MuCisKKyAg
ICAgICAgSW4gR1BVUHJvY2VzcywgaW1wbGVtZW50IHRoZSByZW1vdGUgcmVjb3JkZXIgdXNpbmcg
dGhlIGV4aXN0aW5nIFdlYkNvcmUgcmVjb3JkZXIgd3JpdGVyLgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OnVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjptZWRpYVJlY29yZGVyTWFuYWdlcik6CisgICAgICAgIChXZWJL
aXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBH
UFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVByb2Nlc3Muc2IuaW46CisgICAgICAg
ICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyOjpSZW1vdGVNZWRpYVJlY29yZGVyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6flJlbW90ZU1lZGlhUmVjb3JkZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyOjpzdG9yYWdlKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6YXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyOjphdWRpb1NhbXBsZXNBdmFpbGFi
bGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyOjp2aWRlb1NhbXBsZUF2
YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OmZldGNoRGF0
YSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OnN0b3BSZWNvcmRpbmcp
OgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuaDogQWRk
ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5tZXNz
YWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFS
ZWNvcmRlck1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFS
ZWNvcmRlck1hbmFnZXI6OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI6On5SZW1vdGVNZWRpYVJlY29yZGVyTWFu
YWdlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOjpkaWRS
ZWNlaXZlUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6Y3JlYXRlUmVjb3JkZXIpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6cmVsZWFzZVJlY29yZGVyKToKKyAgICAgICAg
KiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI6OmRpZFJlY2VpdmVN
ZXNzYWdlRnJvbVdlYlByb2Nlc3MpOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUmVjb3JkZXJQcm92
aWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVy
OjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVySWRlbnRpZmllci5oOiBBZGRlZC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6Ok1lZGlhUmVjb3JkZXJQcml2
YXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6On5NZWRpYVJlY29y
ZGVyUHJpdmF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpzYW1w
bGVCdWZmZXJVcGRhdGVkKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6
OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQ
cml2YXRlOjpzdG9yYWdlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQ
cml2YXRlOjpmZXRjaERhdGEpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0
ZTo6c3RvcFJlY29yZGluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlh
UmVjb3JkZXJQcml2YXRlLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TWVk
aWFSZWNvcmRlclByb3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5oOiBBZGRlZC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6Om1fb3ZlcnJpZGRlbk1lZGlhVHlwZSk6CisKIDIwMjAtMDEtMDcgIENhcmxvcyBHYXJjaWEg
Q2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gQWRkIEFQ
SSB0byByZXRyaWV2ZSBhbmQgZGVsZXRlIHN1cnJvdW5kaW5nIHRleHQgZm9yIGlucHV0IG1ldGhv
ZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA0YzQ0Y2RlODUxN2EyZWI4M2YwMTU2
ZDMzNTAxYzFkOGMyYTliYTFmLi5kODg5M2E4YzQxNTE3MGFhOGM4NWIwZWQxNjQ0NTcxYWYwMjQ1
MGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAt
MDEtMDcgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxl
bWVudCBNZWRpYVJlY29yZGVyIGJhY2tlbmQgaW4gR1BVUHJvY2VzcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1ODAyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAg
ICAgICAoLVtXZWJWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6Z3JvdXBO
YW1lOl0pOgorICAgICAgICAoLVtXZWJWaWV3IGluaXRTaW1wbGVIVE1MRG9jdW1lbnRXaXRoU3R5
bGU6ZnJhbWU6cHJlZmVyZW5jZXM6Z3JvdXBOYW1lOl0pOgorCiAyMDIwLTAxLTA3ICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVd
IEFkZCBBUEkgdG8gc2V0IHB1cnBvc2UgYW5kIGhpbnRzIG9mIGFjdGl2ZSBlZGl0YWJsZSBlbGVt
ZW50IHRvIGlucHV0IG1ldGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCAxOTU1
ODIzZGFlOGFmZWU1YTk4MzYwMTYwODMxMmFlNGRjZTVkYjJmLi4zYzhiYzJjZjIxZWMyOGY4NjY0
Y2RhZDQxMjA2MTJhYTE5YjgxMDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMjAtMDEtMDcgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgorCisgICAgICAgIEltcGxlbWVudCBNZWRpYVJlY29yZGVyIGJhY2tlbmQgaW4gR1BVUHJvY2Vz
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1ODAy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogV2ViVmll
dy5jcHA6CisgICAgICAgIChXZWJWaWV3Ojppbml0V2l0aEZyYW1lKToKKwogMjAyMC0wMS0wNyAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dU
S11bV1BFXSBBZGQgQVBJIHRvIHNldCBwdXJwb3NlIGFuZCBoaW50cyBvZiBhY3RpdmUgZWRpdGFi
bGUgZWxlbWVudCB0byBpbnB1dCBtZXRob2RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA0NjYxOWM2
NWQ2YjNjM2Q4MWZmNGMyZTUwMDUyMTZhYTQ5NjJlYzE0Li44MTJlZDQ2OWQyMDkwODU1OGNkZDdj
ZGU4MjgzY2VlODg2YjhlY2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTgwLDYgKzgwLDggQEAg
c2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JREJSZXN1bHREYXRhLmgKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCVHJhbnNhY3Rpb25JbmZvLmgKIAorICAgIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJl
Y29yZGVyUHJvdmlkZXIuaAorCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
RXZlbnRzLmgKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25NZXRhZGF0YS5o
CiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oCkBAIC0x
MTU1LDYgKzExNTcsOCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1PcGVyYXRpb25zLmgKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmgKIAor
ICAgIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaAorCiAgICAg
cGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmljZS5oCiAgICAgcGxhdGZvcm0vbWVkaWFz
dHJlYW0vQ2FwdHVyZURldmljZU1hbmFnZXIuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhQ29uc3RyYWludHMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwCmluZGV4IDk5MWVhMmEwZjNkMjI0NGRmMWU4ZWUy
N2Y3OTA4NmQzZWM0M2Q2ZjAuLjQ0YzMxODczMzhjMzliZTI4MTI4OTRlMjMyYzZiODFkZjhlMjc5
MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIv
TWVkaWFSZWNvcmRlci5jcHAKQEAgLTM0LDYgKzM0LDggQEAKICNpbmNsdWRlICJFdmVudE5hbWVz
LmgiCiAjaW5jbHVkZSAiTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaCIKICNpbmNsdWRlICJNZWRp
YVJlY29yZGVyUHJpdmF0ZS5oIgorI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92aWRlci5oIgor
I2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJX
aW5kb3dFdmVudExvb3AuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgpAQCAt
NTAsMTEgKzUyLDE0IEBAIGNyZWF0b3JGdW5jdGlvbiBNZWRpYVJlY29yZGVyOjptX2N1c3RvbUNy
ZWF0b3IgPSBudWxscHRyOwogCiBFeGNlcHRpb25PcjxSZWY8TWVkaWFSZWNvcmRlcj4+IE1lZGlh
UmVjb3JkZXI6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxNZWRpYVN0cmVhbT4mJiBz
dHJlYW0sIE9wdGlvbnMmJiBvcHRpb25zKQogewotICAgIGF1dG8gcHJpdmF0ZUluc3RhbmNlID0g
TWVkaWFSZWNvcmRlcjo6Z2V0UHJpdmF0ZUltcGwoc3RyZWFtLT5wcml2YXRlU3RyZWFtKCkpOwor
ICAgIGF1dG8gcHJpdmF0ZUluc3RhbmNlID0gTWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNv
cmRlclByaXZhdGUoZG9jdW1lbnQsIHN0cmVhbS0+cHJpdmF0ZVN0cmVhbSgpKTsKICAgICBpZiAo
IXByaXZhdGVJbnN0YW5jZSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRl
ZEVycm9yLCAiVGhlIE1lZGlhUmVjb3JkZXIgaXMgdW5zdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9y
bSJfcyB9OwogICAgIGF1dG8gcmVjb3JkZXIgPSBhZG9wdFJlZigqbmV3IE1lZGlhUmVjb3JkZXIo
ZG9jdW1lbnQsIFdURk1vdmUoc3RyZWFtKSwgV1RGTW92ZShwcml2YXRlSW5zdGFuY2UpLCBXVEZN
b3ZlKG9wdGlvbnMpKSk7CiAgICAgcmVjb3JkZXItPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJl
Y29yZGVyLT5tX3ByaXZhdGUtPnNldEVycm9yQ2FsbGJhY2soW3JlY29yZGVyID0gcmVjb3JkZXIu
Y29weVJlZigpXShhdXRvJiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICAgICAgcmVjb3JkZXIt
PmRpc3BhdGNoRXJyb3IoV1RGTW92ZSgqZXhjZXB0aW9uKSk7CisgICAgfSk7CiAgICAgcmV0dXJu
IHJlY29yZGVyOwogfQogCkBAIC02MywxNyArNjgsMTYgQEAgdm9pZCBNZWRpYVJlY29yZGVyOjpz
ZXRDdXN0b21Qcml2YXRlUmVjb3JkZXJDcmVhdG9yKGNyZWF0b3JGdW5jdGlvbiBjcmVhdG9yKQog
ICAgIG1fY3VzdG9tQ3JlYXRvciA9IGNyZWF0b3I7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxNZWRp
YVJlY29yZGVyUHJpdmF0ZT4gTWVkaWFSZWNvcmRlcjo6Z2V0UHJpdmF0ZUltcGwoY29uc3QgTWVk
aWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCitzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclBy
aXZhdGU+IE1lZGlhUmVjb3JkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKERvY3VtZW50
JiBkb2N1bWVudCwgY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCiB7CiAgICAgaWYg
KG1fY3VzdG9tQ3JlYXRvcikKICAgICAgICAgcmV0dXJuIG1fY3VzdG9tQ3JlYXRvcigpOwogICAg
IAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHJldHVybiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFW
RkltcGw6OmNyZWF0ZShzdHJlYW0pOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc3RyZWFtKTsK
LSAgICByZXR1cm4gbnVsbHB0cjsKLSNlbmRpZgorICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5w
YWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJl
dHVybiBwYWdlLT5tZWRpYVJlY29yZGVyUHJvdmlkZXIoKS5jcmVhdGVNZWRpYVJlY29yZGVyUHJp
dmF0ZShzdHJlYW0pOwogfQogCiBNZWRpYVJlY29yZGVyOjpNZWRpYVJlY29yZGVyKERvY3VtZW50
JiBkb2N1bWVudCwgUmVmPE1lZGlhU3RyZWFtPiYmIHN0cmVhbSwgc3RkOjp1bmlxdWVfcHRyPE1l
ZGlhUmVjb3JkZXJQcml2YXRlPiYmIHByaXZhdGVJbXBsLCBPcHRpb25zJiYgb3B0aW9uKQpAQCAt
MTgyLDExICsxODYsMTcgQEAgdm9pZCBNZWRpYVJlY29yZGVyOjpkaWRBZGRPclJlbW92ZVRyYWNr
KCkKICAgICAgICAgaWYgKCFtX2lzQWN0aXZlIHx8IHN0YXRlKCkgPT0gUmVjb3JkaW5nU3RhdGU6
OkluYWN0aXZlKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBzdG9wUmVjb3JkaW5nSW50
ZXJuYWwoKTsKLSAgICAgICAgYXV0byBldmVudCA9IE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIEV4Y2VwdGlvbiB7IFVua25vd25FcnJvciwg
IlRyYWNrIGNhbm5vdCBiZSBhZGRlZCB0byBvciByZW1vdmVkIGZyb20gdGhlIE1lZGlhU3RyZWFt
IHdoaWxlIHJlY29yZGluZyBpcyBoYXBwZW5pbmciX3MgfSk7Ci0gICAgICAgIGRpc3BhdGNoRXZl
bnQoV1RGTW92ZShldmVudCkpOworICAgICAgICBkaXNwYXRjaEVycm9yKEV4Y2VwdGlvbiB7IFVu
a25vd25FcnJvciwgIlRyYWNrIGNhbm5vdCBiZSBhZGRlZCB0byBvciByZW1vdmVkIGZyb20gdGhl
IE1lZGlhU3RyZWFtIHdoaWxlIHJlY29yZGluZyBpcyBoYXBwZW5pbmciX3MgfSk7CiAgICAgfSk7
CiB9CiAKK3ZvaWQgTWVkaWFSZWNvcmRlcjo6ZGlzcGF0Y2hFcnJvcihFeGNlcHRpb24mJiBleGNl
cHRpb24pCit7CisgICAgaWYgKCFtX2lzQWN0aXZlKQorICAgICAgICByZXR1cm47CisgICAgZGlz
cGF0Y2hFdmVudChNZWRpYVJlY29yZGVyRXJyb3JFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5l
cnJvckV2ZW50LCBXVEZNb3ZlKGV4Y2VwdGlvbikpKTsKK30KKwogdm9pZCBNZWRpYVJlY29yZGVy
Ojp0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKIHsKICAgICBhdXRvIHBvc2l0
aW9uID0gbV90cmFja3MuZmluZE1hdGNoaW5nKFtdKGF1dG8mIHRyYWNrKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaAppbmRl
eCBlYjZmOTZhNmFlMGEzOWJhMTBiNTIwYmI5OGNjNGVlMWI1MzkzNzQ0Li5lOTBiOTliOTU3NTY1
Y2MwMDY4MzNkOTYzYTFmNTUwODk4NzYwNTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKQEAgLTcxLDExICs3MSwxMSBA
QCBwdWJsaWM6CiAgICAgCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc3RhcnRSZWNvcmRpbmcoT3B0
aW9uYWw8aW50Pik7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc3RvcFJlY29yZGluZygpOwotICAg
IAorCiBwcml2YXRlOgogICAgIE1lZGlhUmVjb3JkZXIoRG9jdW1lbnQmLCBSZWY8TWVkaWFTdHJl
YW0+JiYsIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4mJiwgT3B0aW9ucyYm
ID0geyB9KTsKIAotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZh
dGU+IGdldFByaXZhdGVJbXBsKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYpOworICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3Jk
ZXJQcml2YXRlKERvY3VtZW50JiwgY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJik7CiAgICAgCiAg
ICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CiAKQEAgLTkxLDcgKzkxLDkgQEAgcHJpdmF0
ZToKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CiAg
ICAgCiAgICAgdm9pZCBzdG9wUmVjb3JkaW5nSW50ZXJuYWwoKTsKLSAgICAKKworICAgIHZvaWQg
ZGlzcGF0Y2hFcnJvcihFeGNlcHRpb24mJik7CisKICAgICAvLyBNZWRpYVN0cmVhbTo6T2JzZXJ2
ZXIKICAgICB2b2lkIGRpZEFkZE9yUmVtb3ZlVHJhY2soKSBmaW5hbDsKICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJv
dmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVj
b3JkZXJQcm92aWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjY0ZmNjYzM2OGE2MTI3ZGY5OTFmYmZkM2Rm
YzFiZmYzMzkwYWMwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCkBAIC0wLDAgKzEsNDkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRl
clByb3ZpZGVyLmgiCisKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZS5oIgorCisjaWYg
UExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmgi
CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gTWVkaWFSZWNvcmRlclBy
b3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShjb25zdCBNZWRpYVN0cmVhbVByaXZh
dGUmIHN0cmVhbSkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICByZXR1cm4gTWVkaWFSZWNv
cmRlclByaXZhdGVBVkZJbXBsOjpjcmVhdGUoc3RyZWFtKTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKHN0cmVhbSk7CisgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKK30KKyNlbmRpZgorCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFS
ZWNvcmRlclByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIv
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGE5M2FmNDg2NzY2ZDc1ZWE4NGI1
ZjVlYjY5MjI0MTkxNzEwZTA3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaApAQCAtMCwwICsxLDQ5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgTWVkaWFSZWNvcmRlclByaXZhdGU7CitjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7CisK
K2NsYXNzIFdFQkNPUkVfRVhQT1JUIE1lZGlhUmVjb3JkZXJQcm92aWRlciB7CisgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgTWVkaWFSZWNvcmRlclByb3ZpZGVyKCkg
PSBkZWZhdWx0OworICAgIHZpcnR1YWwgfk1lZGlhUmVjb3JkZXJQcm92aWRlcigpID0gZGVmYXVs
dDsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9w
dHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0
IE1lZGlhU3RyZWFtUHJpdmF0ZSYpOworI2VuZGlmCisKKyAgICB2b2lkIHNldFVzZUdQVVByb2Nl
c3MoYm9vbCB2YWx1ZSkgeyBtX3VzZUdQVVByb2Nlc3MgPSB2YWx1ZTsgfQorCitwcm90ZWN0ZWQ6
CisgICAgYm9vbCBtX3VzZUdQVVByb2Nlc3MgeyBmYWxzZSB9OworfTsKKworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAppbmRleCA2MGJiYmZkNDZlZTg3OTY4ZmQyYzFlZmE1ZmY3N2I3ZWYwYWM0ZDY4Li40MTEyMTU1
N2FlNmYzNWRiOWFkNWY0YzFlOGFjY2NhMDg2NjNlNmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTUx
LDYgKzE1MSw3IEBAIE1vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAK
IAogTW9kdWxlcy9tZWRpYXJlY29yZGVyL0Jsb2JFdmVudC5jcHAKIE1vZHVsZXMvbWVkaWFyZWNv
cmRlci9NZWRpYVJlY29yZGVyLmNwcAorTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3Jk
ZXJQcm92aWRlci5jcHAKIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyRXJyb3JF
dmVudC5jcHAKIAogTW9kdWxlcy9tZWRpYXNlc3Npb24vSFRNTE1lZGlhRWxlbWVudE1lZGlhU2Vz
c2lvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBlYzQwODRkOTg0NThjMzUzMjQyNWJjOWVlZjc1MzdmNTA2MzViMzUwLi40
NTE0YWY2YzUyMzkxMDExODc3OTNiZjlkZmUzOGVhY2E4NjM0ZTRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTAxLDYgKzEx
MDEsNyBAQAogCQk0MTc2MTJCMDFFM0E5OTQwMDBDM0Q4MUQgLyogTGliV2ViUlRDTWVkaWFFbmRw
b2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3
NjEyQUMxRTNBOTkzQjAwQzNEODFEIC8qIExpYldlYlJUQ01lZGlhRW5kcG9pbnQuaCAqLzsgfTsK
IAkJNDE3NjEyQjExRTNBOTk0MDAwQzNEODFEIC8qIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTc2MTJBRDFFM0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5k
LmNwcCAqLzsgfTsKIAkJNDE3NjEyQjIxRTNBOTk0MDAwQzNEODFEIC8qIExpYldlYlJUQ1BlZXJD
b25uZWN0aW9uQmFja2VuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDE3NjEyQUUxRTNBOTkzQjAwQzNEODFEIC8qIExpYldlYlJUQ1BlZXJDb25uZWN0
aW9uQmFja2VuZC5oICovOyB9OworCQk0MTc2RTg5NjIzQzM1MzdCMDAzRTgzRkUgLyogTWVkaWFS
ZWNvcmRlclByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTc2RTg4RjIzQzM0OEQyMDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE3
REE2RDkxMzczNEU2RTAwN0M1N0ZCIC8qIEludGVybmFscy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTdEQTRDRjEzNzM0MzI2MDA3QzU3RkIgLyog
SW50ZXJuYWxzLmNwcCAqLzsgfTsKIAkJNDE3REE2REExMzczNEU2RTAwN0M1N0ZCIC8qIEludGVy
bmFscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3
REE0Q0UxMzczNDMyNjAwN0M1N0ZCIC8qIEludGVybmFscy5oICovOyB9OwogCQk0MTdEQTcxRDEz
NzM1REZBMDA3QzU3RkIgLyogSlNJbnRlcm5hbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3REE3MUIxMzczNURGQTAwN0M1N0ZCIC8qIEpTSW50
ZXJuYWxzLmNwcCAqLzsgfTsKQEAgLTEzNzQsOSArMTM3NSw5IEBACiAJCTRCREVBMzJDMjE4MDMz
RUIwMDUyREZDRCAvKiBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCREVBMzJCMjE4MDMzRUIwMDUyREZDRCAv
KiBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuaCAqLzsgfTsKIAkJNEQzQjAwQUIyMTVENjlBNzAw
NzZCOTgzIC8qIE1lZGlhUmVjb3JkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDREM0IwMEE5MjE1RDY5QTcwMDc2Qjk4MyAvKiBNZWRpYVJlY29yZGVy
LmggKi87IH07CiAJCTREM0IwMEFGMjE1RDZBNjkwMDc2Qjk4MyAvKiBCbG9iRXZlbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREM0IwMEFEMjE1RDZB
NjkwMDc2Qjk4MyAvKiBCbG9iRXZlbnQuaCAqLzsgfTsKLQkJNEQzQjUwMTYyMTdFNThCNzAwNjY1
REIxIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0RDNCNTAxNDIxN0U1OEI3MDA2NjVEQjEgLyogTWVkaWFSZWNv
cmRlclByaXZhdGUuaCAqLzsgfTsKKwkJNEQzQjUwMTYyMTdFNThCNzAwNjY1REIxIC8qIE1lZGlh
UmVjb3JkZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0RDNCNTAxNDIxN0U1OEI3MDA2NjVEQjEgLyogTWVkaWFSZWNvcmRlclByaXZhdGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0RDcz
Rjk0NjIxOEJDNUZBMDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RDczRjk0NDIxOEJD
NUZBMDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmggKi87IH07Ci0JCTRE
NzNGOTRFMjE4QzRBODcwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29h
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RDczRjk0
QzIxOEM0QTg3MDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oICov
OyB9OworCQk0RDczRjk0RTIxOEM0QTg3MDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNEQ3M0Y5NEMyMThDNEE4NzAwM0EzRUQ2IC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
Q29jb2EuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk0REI3MTMwRDIxNkVDQjREMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREQjcxMzBDMjE2
RUMyQkQwMDk2QTRERCAvKiBNZWRpYVJlY29yZGVyRXJyb3JFdmVudC5oICovOyB9OwogCQk0RTE5
NTkyMjBBMzlEQUJBMDAyMjBGRTUgLyogTWVkaWFGZWF0dXJlTmFtZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRFMTk1OTIwMEEzOURBQkEwMDIyMEZF
NSAvKiBNZWRpYUZlYXR1cmVOYW1lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTRFMTk1OTJBMEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RTE5NTky
NDBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC03Mzk5LDYgKzc0MDAsOCBAQAogCQk0MTc2MTJB
RTFFM0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFj
a2VuZC5oOyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc2OTAwMzIyRkNEOEYyMDBCMTU3NkQg
LyogTWVkaWFTb3VyY2VSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZWRpYVNvdXJjZVJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
NzY5MDA0MjJGQ0Q4RjIwMEIxNTc2RCAvKiBNZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU291cmNlUmVnaXN0cnkuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc2RTg4RjIzQzM0OEQyMDAzRTgzRkUgLyog
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1lZGlhUmVjb3JkZXJQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MTc2RTg5MTIzQzM0Qjc1MDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJQcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxNzdGNTFDMjM4MjU0NDAwMEMwNDQ4NiAvKiBCYXNlQXVkaW9TaGFy
ZWRVbml0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VBdWRp
b1NoYXJlZFVuaXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc3RjUxRTIz
ODI1NDVFMDBDMDQ0ODYgLyogQmFzZUF1ZGlvU2hhcmVkVW5pdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBCYXNlQXVkaW9TaGFyZWRVbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxN0RBNENFMTM3MzQzMjYwMDdDNTdGQiAvKiBJbnRlcm5hbHMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW50ZXJuYWxzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xODkzMiw2ICsxODkzNSw4IEBACiAJCQkJNERCNzEzMEUyMTZFRUJB
RTAwOTZBNEREIC8qIE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmNwcCAqLywKIAkJCQk0REI3MTMw
QzIxNkVDMkJEMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaCAqLywKIAkJCQk0
REI3MTMwQTIxNkVDMkJDMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaWRsICov
LAorCQkJCTQxNzZFODkxMjNDMzRCNzUwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJvdmlkZXIu
Y3BwICovLAorCQkJCTQxNzZFODhGMjNDMzQ4RDIwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJv
dmlkZXIuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWVkaWFyZWNvcmRlcjsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CkBAIC0zMTQ3NCw2ICszMTQ3OSw3IEBACiAJCQkJNEQzQjUwMTYyMTdF
NThCNzAwNjY1REIxIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0RDczRjk0NjIxOEJDNUZBMDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBs
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0RDczRjk0RTIxOEM0QTg3MDAzQTNFRDYgLyogTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE3NkU4OTYy
M0MzNTM3QjAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92aWRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQzkwODQzRDAxQjE4RTQ3RDAwQjY4NTY0IC8qIE1lZGlhUmVtb3RlQ29udHJvbHMuaCBp
biBIZWFkZXJzICovLAogCQkJCUNEOEFDQThGMUQyMzk3MTkwMEVDQzU5RSAvKiBNZWRpYVJlbW90
ZVNvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRUVGQ0Q3QTE5REIzMUY3MDAzODc2RDcg
LyogTWVkaWFSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDg0ZTRlMThjM2Y2MzhlZTMzZDI4MDE4NGRkZDhjYWE4
YWEwZTQ5MjIuLmNiNTFmMzZmZWJmYjA4MWUyYjZmNzRlZTZlNDkwMThjZDk3MTA0ZGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01Myw2ICs1Myw4IEBACiAjaW5j
bHVkZSAiSURCQ29ubmVjdGlvblRvU2VydmVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50
LmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29y
ZGVyUHJpdmF0ZS5oIgorI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92aWRlci5oIgogI2luY2x1
ZGUgIk5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJQYWdlQ29uZmlndXJhdGlvbi5oIgpAQCAtNTcxLDEwICs1NzMsMTkgQEAgUmVmPFN0b3JhZ2VO
YW1lc3BhY2U+IEVtcHR5U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOjpjcmVhdGVUcmFuc2llbnRM
b2NhbFN0b3JhZ2UKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbXB0eVN0b3JhZ2VOYW1lc3Bh
Y2UgeyBzZXNzaW9uSUQgfSk7CiB9CiAKLWNsYXNzIEVtcHR5U3RvcmFnZVNlc3Npb25Qcm92aWRl
ciA6IHB1YmxpYyBTdG9yYWdlU2Vzc2lvblByb3ZpZGVyIHsKK2NsYXNzIEVtcHR5U3RvcmFnZVNl
c3Npb25Qcm92aWRlciBmaW5hbCA6IHB1YmxpYyBTdG9yYWdlU2Vzc2lvblByb3ZpZGVyIHsKICAg
ICBOZXR3b3JrU3RvcmFnZVNlc3Npb24qIHN0b3JhZ2VTZXNzaW9uKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbnVsbHB0cjsgfQogfTsKIAorY2xhc3MgRW1wdHlNZWRpYVJlY29yZGVyUHJvdmlkZXIg
ZmluYWwgOiBwdWJsaWMgTWVkaWFSZWNvcmRlclByb3ZpZGVyIHsKK3B1YmxpYzoKKyAgICBFbXB0
eU1lZGlhUmVjb3JkZXJQcm92aWRlcigpID0gZGVmYXVsdDsKK3ByaXZhdGU6CisjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+
IGNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYpIGZp
bmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KKyNlbmRpZgorfTsKKwogUGFnZUNvbmZpZ3VyYXRpb24g
cGFnZUNvbmZpZ3VyYXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKIHsKICAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbiB7CkBAIC01ODUs
NyArNTk2LDggQEAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb25XaXRoRW1wdHlD
bGllbnRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAgICAgQ2FjaGVTdG9yYWdlUHJv
dmlkZXI6OmNyZWF0ZSgpLAogICAgICAgICBhZG9wdFJlZigqbmV3IEVtcHR5QmFja0ZvcndhcmRD
bGllbnQpLAogICAgICAgICBDb29raWVKYXI6OmNyZWF0ZShhZG9wdFJlZigqbmV3IEVtcHR5U3Rv
cmFnZVNlc3Npb25Qcm92aWRlcikpLAotICAgICAgICBtYWtlVW5pcXVlUmVmPEVtcHR5UHJvZ3Jl
c3NUcmFja2VyQ2xpZW50PigpCisgICAgICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlQcm9ncmVzc1Ry
YWNrZXJDbGllbnQ+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlNZWRpYVJlY29yZGVy
UHJvdmlkZXI+KCkKICAgICB9OwogCiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEVtcHR5Q2hy
b21lQ2xpZW50PiBkdW1teUNocm9tZUNsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDYzYzA1
MzQzNzk4ZDMxMDJkODAzMmQzNTcxOTNjYzliYTkzNzY2MTkuLjAxMDI3OWZlZmM0NWY5ODZmMjgw
NWJlNzdiZjNjY2RmNzFlNTFkYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMjQ2LDYgKzI0Niw3
IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikKICNp
ZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICAsIG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50
KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNoU3ludGhlc2lzQ2xpZW50KSkKICNlbmRp
ZgorICAgICwgbV9tZWRpYVJlY29yZGVyUHJvdmlkZXIoKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRp
b24ubWVkaWFSZWNvcmRlclByb3ZpZGVyKSkpCiAgICAgLCBtX2xpYldlYlJUQ1Byb3ZpZGVyKFdU
Rk1vdmUocGFnZUNvbmZpZ3VyYXRpb24ubGliV2ViUlRDUHJvdmlkZXIpKQogICAgICwgbV92ZXJ0
aWNhbFNjcm9sbEVsYXN0aWNpdHkoU2Nyb2xsRWxhc3RpY2l0eUFsbG93ZWQpCiAgICAgLCBtX2hv
cml6b250YWxTY3JvbGxFbGFzdGljaXR5KFNjcm9sbEVsYXN0aWNpdHlBbGxvd2VkKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaAppbmRleCAyYzNmN2MzNDMzODdmYjQ4YzJmNTVlM2VhNmU5NWMzZTlmNTQ3NjUwLi5lMWYy
N2NmYzhjYzk3NTkzY2FlMjU0ZDZlOGU2NTA3Y2FlNzBlMmM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAt
MTEwLDYgKzExMCw3IEBAIGNsYXNzIExpYldlYlJUQ1Byb3ZpZGVyOwogY2xhc3MgTG93UG93ZXJN
b2RlTm90aWZpZXI7CiBjbGFzcyBNZWRpYUNhblN0YXJ0TGlzdGVuZXI7CiBjbGFzcyBNZWRpYVBs
YXliYWNrVGFyZ2V0OworY2xhc3MgTWVkaWFSZWNvcmRlclByb3ZpZGVyOwogY2xhc3MgUGFnZUNv
bmZpZ3VyYXRpb247CiBjbGFzcyBQYWdlQ29uc29sZUNsaWVudDsKIGNsYXNzIFBhZ2VEZWJ1Z2dh
YmxlOwpAQCAtNTg0LDYgKzU4NSw3IEBAIHB1YmxpYzoKICAgICBEYXRhYmFzZVByb3ZpZGVyJiBk
YXRhYmFzZVByb3ZpZGVyKCkgeyByZXR1cm4gbV9kYXRhYmFzZVByb3ZpZGVyOyB9CiAgICAgQ2Fj
aGVTdG9yYWdlUHJvdmlkZXImIGNhY2hlU3RvcmFnZVByb3ZpZGVyKCkgeyByZXR1cm4gbV9jYWNo
ZVN0b3JhZ2VQcm92aWRlcjsgfQogICAgIFNvY2tldFByb3ZpZGVyJiBzb2NrZXRQcm92aWRlcigp
IHsgcmV0dXJuIG1fc29ja2V0UHJvdmlkZXI7IH0KKyAgICBNZWRpYVJlY29yZGVyUHJvdmlkZXIm
IG1lZGlhUmVjb3JkZXJQcm92aWRlcigpIHsgcmV0dXJuIG1fbWVkaWFSZWNvcmRlclByb3ZpZGVy
OyB9CiAgICAgQ29va2llSmFyJiBjb29raWVKYXIoKSB7IHJldHVybiBtX2Nvb2tpZUphci5nZXQo
KTsgfQogCiAgICAgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyJiBzdG9yYWdlTmFtZXNwYWNlUHJv
dmlkZXIoKSB7IHJldHVybiBtX3N0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5nZXQoKTsgfQpAQCAt
Nzk1LDYgKzc5Nyw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFN5bnRo
ZXNpc0NsaWVudD4gbV9zcGVlY2hTeW50aGVzaXNDbGllbnQ7CiAjZW5kaWYKIAorICAgIFVuaXF1
ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+IG1fbWVkaWFSZWNvcmRlclByb3ZpZGVyOwogICAg
IFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4gbV9saWJXZWJSVENQcm92aWRlcjsKICAgICBS
VENDb250cm9sbGVyIG1fcnRjQ29udHJvbGxlcjsKIApAQCAtOTIwLDcgKzkyMyw2IEBAIHByaXZh
dGU6CiAgICAgUmVmPFVzZXJDb250ZW50UHJvdmlkZXI+IG1fdXNlckNvbnRlbnRQcm92aWRlcjsK
ICAgICBSZWY8VmlzaXRlZExpbmtTdG9yZT4gbV92aXNpdGVkTGlua1N0b3JlOwogICAgIFJlZlB0
cjxXaGVlbEV2ZW50VGVzdE1vbml0b3I+IG1fd2hlZWxFdmVudFRlc3RNb25pdG9yOwotCiAgICAg
SGFzaFNldDxBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIqPiBtX2FjdGl2aXR5U3RhdGVDaGFu
Z2VPYnNlcnZlcnM7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfVVNBR0UpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGVmODc3YTU1ODgyMWU0NDY3ZjQ1Y2Ez
YzA1MjFjYWYyMmQ5MDdkZGUuLjMzOGY0ZTdjMTkxMjFhZjE3OTQyZDAxNzI0Y2UyOTExM2M1ZDNm
MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCkBAIC0zNiw2
ICszNiw3IEBACiAjaW5jbHVkZSAiRHJhZ0NsaWVudC5oIgogI2luY2x1ZGUgIkVkaXRvckNsaWVu
dC5oIgogI2luY2x1ZGUgIkxpYldlYlJUQ1Byb3ZpZGVyLmgiCisjaW5jbHVkZSAiTWVkaWFSZWNv
cmRlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50LmgiCiAj
aW5jbHVkZSAiUGx1Z0luQ2xpZW50LmgiCiAjaW5jbHVkZSAiUGx1Z2luSW5mb1Byb3ZpZGVyLmgi
CkBAIC01NSw3ICs1Niw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFnZUNvbmZpZ3Vy
YXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVl
UmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiBz
b2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmIGxpYldlYlJUQ1By
b3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9yYWdlUHJvdmlkZXIs
IFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVudCwgUmVmPENvb2tpZUph
cj4mJiBjb29raWVKYXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYgcHJvZ3Jl
c3NUcmFja2VyQ2xpZW50KQorUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JD
bGllbnQsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiBzb2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExp
YldlYlJUQ1Byb3ZpZGVyPiYmIGxpYldlYlJUQ1Byb3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJv
dmlkZXI+JiYgY2FjaGVTdG9yYWdlUHJvdmlkZXIsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiBi
YWNrRm9yd2FyZENsaWVudCwgUmVmPENvb2tpZUphcj4mJiBjb29raWVKYXIsIFVuaXF1ZVJlZjxQ
cm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50LCBVbmlxdWVSZWY8
TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYmIG1lZGlhUmVjb3JkZXJQcm92aWRlcikKICAgICA6IHNl
c3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBlZGl0b3JDbGllbnQoV1RGTW92ZShlZGl0b3JDbGll
bnQpKQogICAgICwgc29ja2V0UHJvdmlkZXIoV1RGTW92ZShzb2NrZXRQcm92aWRlcikpCkBAIC02
NCw2ICs2NSw3IEBAIFBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDCiAgICAgLCBiYWNrRm9yd2FyZENs
aWVudChXVEZNb3ZlKGJhY2tGb3J3YXJkQ2xpZW50KSkKICAgICAsIGNvb2tpZUphcihXVEZNb3Zl
KGNvb2tpZUphcikpCiAgICAgLCBjYWNoZVN0b3JhZ2VQcm92aWRlcihXVEZNb3ZlKGNhY2hlU3Rv
cmFnZVByb3ZpZGVyKSkKKyAgICAsIG1lZGlhUmVjb3JkZXJQcm92aWRlcihXVEZNb3ZlKG1lZGlh
UmVjb3JkZXJQcm92aWRlcikpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3Vy
YXRpb24uaAppbmRleCAxOTFhMDJiNjE1ZjQwYTk4MGM0MjFmN2ZiZjNmMzE2ZDJiMTY0ZmVmLi4z
YThlZDMzNDQwYzJjMTg4NTI4MzE4OTE4YTc1MjJiOTIxN2Y0NzZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCkBAIC01Miw2ICs1Miw3IEBAIGNsYXNzIEVkaXRvckNs
aWVudDsKIGNsYXNzIEZyYW1lTG9hZGVyQ2xpZW50OwogY2xhc3MgSW5zcGVjdG9yQ2xpZW50Owog
Y2xhc3MgTGliV2ViUlRDUHJvdmlkZXI7CitjbGFzcyBNZWRpYVJlY29yZGVyUHJvdmlkZXI7CiBj
bGFzcyBQYXltZW50Q29vcmRpbmF0b3JDbGllbnQ7CiBjbGFzcyBQZXJmb3JtYW5jZUxvZ2dpbmdD
bGllbnQ7CiBjbGFzcyBQbHVnSW5DbGllbnQ7CkBAIC02OCw3ICs2OSw3IEBAIGNsYXNzIFNwZWVj
aFN5bnRoZXNpc0NsaWVudDsKIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9uIHsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShQYWdlQ29uZmlndXJhdGlvbik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vz
c2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmLCBSZWY8U29ja2V0UHJvdmlkZXI+JiYs
IFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVy
PiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYsIFJlZjxDb29raWVKYXI+JiYsIFVuaXF1ZVJl
ZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2VDb25m
aWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmLCBSZWY8
U29ja2V0UHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiwgUmVmPENh
Y2hlU3RvcmFnZVByb3ZpZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYsIFJlZjxDb29r
aWVKYXI+JiYsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYsIFVuaXF1ZVJlZjxN
ZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIH5QYWdlQ29uZmln
dXJhdGlvbigpOwogICAgIFBhZ2VDb25maWd1cmF0aW9uKFBhZ2VDb25maWd1cmF0aW9uJiYpOwog
CkBAIC0xMjMsNiArMTI0LDcgQEAgcHVibGljOgogICAgIFJlZlB0cjxEZXZpY2VPcmllbnRhdGlv
blVwZGF0ZVByb3ZpZGVyPiBkZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyOwogI2VuZGlm
CiAgICAgVmVjdG9yPFN0cmluZz4gY29yc0Rpc2FibGluZ1BhdHRlcm5zOworICAgIFVuaXF1ZVJl
ZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+IG1lZGlhUmVjb3JkZXJQcm92aWRlcjsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFS
ZWNvcmRlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIv
TWVkaWFSZWNvcmRlclByaXZhdGUuaAppbmRleCAxMGU5MWYzNzIxOTdlNzI2MjdmMjY1NmJkZjJi
NzQ5NmViOTNkOGE1Li5hZDUxODA3OWU4OTNiOWE0MDZmNjAxYzg4MDY0MTVkYTlhNGMwMGFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVj
b3JkZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRl
ci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAKICNpbmNsdWRlIDx3
dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1
ZGUgIkV4Y2VwdGlvbi5oIgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIApAQCAtNDMsMTIg
KzQ0LDE5IEBAIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIAogY2xhc3MgTWVkaWFSZWNvcmRlclByaXZh
dGUgewogcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCBzYW1wbGVCdWZmZXJVcGRhdGVkKE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlJiwgTWVkaWFTYW1wbGUmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIGNvbnN0IFdU
Rjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiwgc2l6ZV90KSA9IDA7CisgICAgdmlydHVhbCB+TWVkaWFSZWNvcmRlclBy
aXZhdGUoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2FtcGxlQnVmZmVyVXBkYXRl
ZChjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUmLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRh
JiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgPSAwOwogCiAgICAgdmly
dHVhbCB2b2lkIGZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxTaGFyZWRC
dWZmZXI+JiYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB+
TWVkaWFSZWNvcmRlclByaXZhdGUoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BS
ZWNvcmRpbmcoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFJlY29yZGluZygpIHsgfTsKKwor
ICAgIHVzaW5nIEVycm9yQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlv
bj4mJik+OworICAgIHZvaWQgc2V0RXJyb3JDYWxsYmFjayhFcnJvckNhbGxiYWNrJiYgZXJyb3JD
YWxsYmFjaykgeyBtX2Vycm9yQ2FsbGJhY2sgPSBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spOyB9CisK
K3Byb3RlY3RlZDoKKyAgICBFcnJvckNhbGxiYWNrIG1fZXJyb3JDYWxsYmFjazsKIH07CiAgICAg
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZG
SW1wbC5jcHAKaW5kZXggOTE4MzA0NjYwNjY2ZmNlZjU1OWUzYTczZDZmYzRkNWI1NjVlOWU0ZC4u
NmEyNGEyMGRlYzM4ZjY1NmNlNWE4YWJmODA3ZWU3MDczZDA0ZWZmNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFW
RkltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcApAQCAtNDAsNyArNDAsNiBAQCBzdGQ6OnVuaXF1
ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsPiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFW
RkltcGw6OmNyZWF0ZQogewogICAgIC8vIEZJWE1FOiB3ZSB3aWxsIG5lZWQgdG8gaW1wbGVtZW50
IHN1cHBvcnQgZm9yIG11bHRpcGxlIGF1ZGlvL3ZpZGVvIHRyYWNrcwogICAgIC8vIEN1cnJlbnRs
eSB3ZSBvbmx5IGNob29zZSB0aGUgZmlyc3QgdHJhY2sgYXMgdGhlIHJlY29yZGVkIHRyYWNrLgot
ICAgIC8vIEZJWE1FOiBXZSB3b3VsZCBiZXR0ZXIgdG8gdGhyb3cgYW4gZXhjZXB0aW9uIHRvIEph
dmFTY3JpcHQgaWYgd3JpdGVyIGNyZWF0aW9uIGZhaWxzLgogCiAgICAgU3RyaW5nIGF1ZGlvVHJh
Y2tJZDsKICAgICBTdHJpbmcgdmlkZW9UcmFja0lkOwpAQCAtODIsMTQgKzgxLDE0IEBAIE1lZGlh
UmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsKFJlZjxN
ZWRpYVJlY29yZGVyUHJpdmF0CiB7CiB9CiAKLXZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJ
bXBsOjpzYW1wbGVCdWZmZXJVcGRhdGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaywg
TWVkaWFTYW1wbGUmIHNhbXBsZUJ1ZmZlcikKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJ
bXBsOjpzYW1wbGVCdWZmZXJVcGRhdGVkKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0
cmFjaywgTWVkaWFTYW1wbGUmIHNhbXBsZUJ1ZmZlcikKIHsKICAgICBpZiAodHJhY2suaWQoKSAh
PSBtX3JlY29yZGVkVmlkZW9UcmFja0lEKQogICAgICAgICByZXR1cm47CiAgICAgbV93cml0ZXIt
PmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKHNhbXBsZUJ1ZmZlci5wbGF0Zm9ybVNhbXBsZSgpLnNh
bXBsZS5jbVNhbXBsZUJ1ZmZlcik7CiB9CiAKLXZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJ
bXBsOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNr
LCBjb25zdCBXVEY6Ok1lZGlhVGltZSYgbWVkaWFUaW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0
YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVf
dCBzYW1wbGVDb3VudCkKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjphdWRpb1Nh
bXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBjb25z
dCBXVEY6Ok1lZGlhVGltZSYgbWVkaWFUaW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0
YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBzYW1w
bGVDb3VudCkKIHsKICAgICBpZiAodHJhY2suaWQoKSAhPSBtX3JlY29yZGVkQXVkaW9UcmFja0lE
KQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaApp
bmRleCA1ZWMwYmVlN2I5NzcyMDlkZDhhNGYxOWRmMDk5YzE4MDM3MWUwYjc5Li4wY2YwZGYzYzY0
Y2M5NzEzZTMwNTliZTM2Y2FjYzlmYzdjY2MwYjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclBy
aXZhdGVBVkZJbXBsLmgKQEAgLTQzLDggKzQzLDggQEAgcHJpdmF0ZToKIAogICAgIGZyaWVuZCBz
dGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsPiBzdGQ6Om1ha2VfdW5p
cXVlPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4oUmVmPE1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyPiYmLCBTdHJpbmcmJiwgU3RyaW5nJiYpOwogCi0gICAgdm9pZCBzYW1wbGVCdWZmZXJV
cGRhdGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgTWVkaWFTYW1wbGUmKSBmaW5hbDsKLSAg
ICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIGNv
bnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRp
b1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKKyAgICB2b2lkIHNhbXBsZUJ1ZmZl
clVwZGF0ZWQoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBNZWRpYVNhbXBsZSYpIGZp
bmFsOworICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlJiwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0
YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOwogICAgIHZv
aWQgZmV0Y2hEYXRhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFNoYXJlZEJ1ZmZlcj4m
JiwgY29uc3QgU3RyaW5nJik+JiYpIGZpbmFsOwogICAgIGNvbnN0IFN0cmluZyYgbWltZVR5cGUo
KTsKICAgICB2b2lkIHN0b3BSZWNvcmRpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVN
b2NrLmNwcAppbmRleCBjODE2ZTFhYzEzMzUwZGI2ZDYwN2VjMWQwODUwMDQwZTM1N2I0NjFlLi5m
MmFjOGMyN2NiNDVjOTdjMmRjMDNiOGZlNGE3MzY5MTdkNGJjZjg3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9j
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJl
Y29yZGVyUHJpdmF0ZU1vY2suY3BwCkBAIC0zMywxNyArMzMsMTcgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi12b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6c2FtcGxlQnVmZmVyVXBk
YXRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2ssIE1lZGlhU2FtcGxlJikKK3ZvaWQg
TWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjpzYW1wbGVCdWZmZXJVcGRhdGVkKGNvbnN0IE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaywgTWVkaWFTYW1wbGUmKQogewogICAgIGdlbmVyYXRl
TW9ja1N0cmluZyh0cmFjayk7CiB9CiAKLXZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjph
dWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBjb25z
dCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2Nr
OjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRy
YWNrLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29u
c3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkKIHsKICAgICBnZW5lcmF0ZU1vY2tT
dHJpbmcodHJhY2spOwogfQogCi12b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6Z2VuZXJh
dGVNb2NrU3RyaW5nKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaykKK3ZvaWQgTWVkaWFS
ZWNvcmRlclByaXZhdGVNb2NrOjpnZW5lcmF0ZU1vY2tTdHJpbmcoY29uc3QgTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmIHRyYWNrKQogewogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9idWZm
ZXJMb2NrKTsKICAgICBpZiAodHJhY2sudHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5
cGU6OkF1ZGlvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNv
cmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmgKaW5kZXggMDM1NzExZTU1
YmY3ZTkxZjM5NzczZjc4ODgxOGQ4YjQzZGUyNTllZS4uNGRhZWQ2NzMxZGVhNTNlOTc1NjYxYTQ0
YTEyNzBmZjE4ZGUyZDg0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5oCkBAIC0z
NiwxMiArMzYsMTIgQEAgY2xhc3MgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU7CiAKIGNsYXNzIFdF
QkNPUkVfRVhQT1JUIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jayBmaW5hbCA6IHB1YmxpYyBNZWRp
YVJlY29yZGVyUHJpdmF0ZSB7CiBwcml2YXRlOgotICAgIHZvaWQgc2FtcGxlQnVmZmVyVXBkYXRl
ZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJikgZmluYWw7Ci0gICAgdm9p
ZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBjb25zdCBX
VEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgZmluYWw7CisgICAgdm9pZCBzYW1wbGVCdWZmZXJVcGRh
dGVkKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgTWVkaWFTYW1wbGUmKSBmaW5hbDsK
KyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZSYsIGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBj
b25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKICAgICB2b2lkIGZl
dGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxTaGFyZWRCdWZmZXI+JiYsIGNv
bnN0IFN0cmluZyYpPiYmKSBmaW5hbDsKICAgICBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKCk7CiAg
ICAgCi0gICAgdm9pZCBnZW5lcmF0ZU1vY2tTdHJpbmcoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUm
KTsKKyAgICB2b2lkIGdlbmVyYXRlTW9ja1N0cmluZyhjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZSYpOwogCiAgICAgbXV0YWJsZSBMb2NrIG1fYnVmZmVyTG9jazsKICAgICBTdHJpbmdCdWls
ZGVyIG1fYnVmZmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFy
ZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyQ29jb2EuaAppbmRleCBmZmY0NWQ2MzkzOGRiMzM4YjQ3MjRiN2E3NDZjZTM3MjRmYTFk
M2FiLi41MTk3OGJiNmQ4ZDFhMWIwZTVjMWM3YTAxNTEyMjJiZDhiZGZiMmE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaApAQCAtNDks
OSArNDksMTAgQEAgY2xhc3MgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKIGNsYXNzIE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlOwogY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CiAKLWNsYXNzIE1lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPE1lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluPiwgcHVi
bGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiB7CitjbGFzcyBX
RUJDT1JFX0VYUE9SVCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciwgV1RGOjpEZXN0cnVjdGlv
blRocmVhZDo6TWFpbj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlcj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8TWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXI+IGNyZWF0ZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogYXVkaW9UcmFj
aywgY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIHZpZGVvVHJhY2spOworICAgIHN0YXRp
YyBSZWZQdHI8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IGNyZWF0ZShib29sIGhhc0F1ZGlv
LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOwogICAgIH5NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
cigpOwogICAgIAogICAgIGJvb2wgc2V0dXBXcml0ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29j
b2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQppbmRleCA5MmZlMmE0NTBlNTkz
ZjI0YTk2OGZhZWYwYTZiOTZmOTVhZGUzNTEzLi4wNjljODg3NGYwMDllMDk2YzI0OWEwNzgwMTkw
ZGQ4MDQ4YzZiOWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJl
Y29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlckNvY29hLm1tCkBAIC05MCw2ICs5MCwxNyBAQCBzdGF0aWMgTlNTdHJpbmcgKmdl
dEFWRW5jb2RlckJpdFJhdGVLZXlXaXRoRmFsbGJhY2soKQogfQogCiBSZWZQdHI8TWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXI+IE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjcmVhdGUoY29u
c3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIGF1ZGlvVHJhY2ssIGNvbnN0IE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlKiB2aWRlb1RyYWNrKQoreworICAgIGludCB3aWR0aCA9IDAsIGhlaWdodCA9
IDA7CisgICAgaWYgKHZpZGVvVHJhY2spIHsKKyAgICAgICAgYXV0byYgc2V0dGluZ3MgPSB2aWRl
b1RyYWNrLT5zZXR0aW5ncygpOworICAgICAgICB3aWR0aCA9IHNldHRpbmdzLndpZHRoKCk7Cisg
ICAgICAgIGhlaWdodCA9IHNldHRpbmdzLmhlaWdodCgpOworICAgIH0KKyAgICByZXR1cm4gY3Jl
YXRlKCEhYXVkaW9UcmFjaywgd2lkdGgsIGhlaWdodCk7Cit9CisKK1JlZlB0cjxNZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlcj4gTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNyZWF0ZShib29s
IGhhc0F1ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCiB7CiAgICAgTlNTdHJpbmcgKmRpcmVj
dG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAInZpZGVvcyIpOwog
ICAgIE5TU3RyaW5nICpmaWxlbmFtZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiLyVs
bGQubXA0IiwgQ01DbG9ja0dldFRpbWUoQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSkudmFsdWVd
OwpAQCAtMTA2LDEyICsxMTcsMTEgQEAgUmVmUHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
PiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y3JlYXRlKGNvbnN0IE1lZGkKIAogICAgIGF1
dG8gd3JpdGVyID0gYWRvcHRSZWYoKm5ldyBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcihXVEZN
b3ZlKGF2QXNzZXRXcml0ZXIpLCBXVEZNb3ZlKGZpbGVQYXRoKSkpOwogCi0gICAgaWYgKGF1ZGlv
VHJhY2sgJiYgIXdyaXRlci0+c2V0QXVkaW9JbnB1dCgpKQorICAgIGlmIChoYXNBdWRpbyAmJiAh
d3JpdGVyLT5zZXRBdWRpb0lucHV0KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAg
aWYgKHZpZGVvVHJhY2spIHsKLSAgICAgICAgYXV0byYgc2V0dGluZ3MgPSB2aWRlb1RyYWNrLT5z
ZXR0aW5ncygpOwotICAgICAgICBpZiAoIXdyaXRlci0+c2V0VmlkZW9JbnB1dChzZXR0aW5ncy53
aWR0aCgpLCBzZXR0aW5ncy5oZWlnaHQoKSkpCisgICAgaWYgKHdpZHRoICYmIGhlaWdodCkgewor
ICAgICAgICBpZiAoIXdyaXRlci0+c2V0VmlkZW9JbnB1dCh3aWR0aCwgaGVpZ2h0KSkKICAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAppbmRleCA0YTA2
ODQ0MzhjZTY2NWQ3Y2QwNGRhMTBlYTExYTViYzJiNmYyOWY1Li5kZTQ0ZDg4ZWY1YjljMzgxNDA0
NGUwNWY3YzI4YmVlMThhNzJlZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaApAQCAtODEsNyArODEsNyBA
QCBwdWJsaWM6CiAKICAgICBTdHJpbmcgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CiAKLSAg
ICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciB0cmFja3MoKSBjb25zdDsKKyAgICBXRUJD
T1JFX0VYUE9SVCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciB0cmFja3MoKSBjb25zdDsK
ICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogYWN0aXZlVmlkZW9UcmFjaygpIHsgcmV0dXJu
IG1fYWN0aXZlVmlkZW9UcmFjazsgfQogCiAgICAgYm9vbCBhY3RpdmUoKSBjb25zdCB7IHJldHVy
biBtX2lzQWN0aXZlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAppbmRleCAzOTFhNjUzZjQ4
ZTNlN2UzMmE0ODJjNzc5N2M3ZGM3NzEzMTUwMjViLi4wMDcxNmZkMGE0NTYxNGRlNmNkOGFiYWRl
MDU5MGYyYmYxMGMwMjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKQEAgLTEwMCw3ICsx
MDAsNyBAQCBwdWJsaWM6CiAgICAgUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBjbG9uZSgp
OwogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKCkgeyByZXR1cm4gbV9zb3VyY2Uu
Z2V0KCk7IH0KLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUoKSBjb25zdDsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUoKSBjb25zdDsK
IAogICAgIHZvaWQgZW5kVHJhY2soKTsKIApAQCAtMTEwLDcgKzExMCw3IEBAIHB1YmxpYzoKICAg
ICBib29sIGhhc09ic2VydmVyKE9ic2VydmVyJikgY29uc3Q7CiAjZW5kaWYKIAotICAgIGNvbnN0
IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdDsKKyAgICBXRUJD
T1JFX0VYUE9SVCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkg
Y29uc3Q7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJp
bGl0aWVzKCkgY29uc3Q7CiAKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgTWVkaWFD
b25zdHJhaW50cyYsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5Q29uc3RyYWludHNIYW5kbGVy
JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGJhOTQxOGM1MGM3OWYw
Mzg5NWUzN2JjN2IzNzdmYWE5M2I1NTczYjYuLjY4YWI0MjM4NzZhNjUwOWU1ZGJlMjBmMDE2MmY0
MjdmZTA5MDRjNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTEyMiw2
ICsxMjIsNyBAQAogI2luY2x1ZGUgIk1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnkuaCIK
ICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIuaCIKKyNp
bmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCIKICNpbmNsdWRlICJNZWRpYVJlc291cmNl
TG9hZGVyLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFjay5oIgogI2luY2x1ZGUgIk1lbW9y
eUNhY2hlLmgiCkBAIC01NTAsNiArNTUxLDggQEAgdm9pZCBJbnRlcm5hbHM6OnJlc2V0VG9Db25z
aXN0ZW50U3RhdGUoUGFnZSYgcGFnZSkKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAg
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRJbnRlcnJ1cHRBdWRp
b09uUGFnZVZpc2liaWxpdHlDaGFuZ2VFbmFibGVkKGZhbHNlKTsKKyAgICBXZWJDb3JlOjpNZWRp
YVJlY29yZGVyOjpzZXRDdXN0b21Qcml2YXRlUmVjb3JkZXJDcmVhdG9yKG51bGxwdHIpOworICAg
IHBhZ2UubWVkaWFSZWNvcmRlclByb3ZpZGVyKCkuc2V0VXNlR1BVUHJvY2Vzcyh0cnVlKTsKICNl
bmRpZgogCiAgICAgSFRNTENhbnZhc0VsZW1lbnQ6OnNldE1heFBpeGVsTWVtb3J5Rm9yVGVzdGlu
ZygwKTsgLy8gVGhpcyBtZWFucyB1c2UgdGhlIGRlZmF1bHQgdmFsdWUuCkBAIC0xNTU4LDcgKzE1
NjEsOSBAQCB2b2lkIEludGVybmFsczo6c2V0VXNlR1BVUHJvY2Vzc0ZvcldlYlJUQyhib29sIHVz
ZUdQVVByb2Nlc3MpCiAgICAgYXV0byogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKICAg
ICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKQogICAgICAgICByZXR1cm47CisK
ICAgICBkb2N1bWVudC0+cGFnZSgpLT5saWJXZWJSVENQcm92aWRlcigpLnNldFVzZUdQVVByb2Nl
c3ModXNlR1BVUHJvY2Vzcyk7CisgICAgZG9jdW1lbnQtPnBhZ2UoKS0+bWVkaWFSZWNvcmRlclBy
b3ZpZGVyKCkuc2V0VXNlR1BVUHJvY2Vzcyh1c2VHUFVQcm9jZXNzKTsKICNlbmRpZgogfQogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dl
YktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCBmZjUyZDI1MzZmNTY1ZmEyOTViZWI2MjAxMjY4YTBm
MzMzMTcwZmYzLi41MzI2NzhmMzc2MDMzYzNjMDBmOWY2YmQ1YTMwYzM4NjkwZTMzNGJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQv
Q01ha2VMaXN0cy50eHQKQEAgLTc4LDYgKzc4LDggQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJUkVD
VE9SSUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9HYW1lcGFkIgogICAgICIke1dF
QktJVF9ESVJ9L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24iCiAgICAgIiR7V0VCS0lUX0RJUn0vV2Vi
UHJvY2Vzcy9HUFUiCisgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9HUFUvbWVkaWEiCisg
ICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9HUFUvd2VicnRjIgogICAgICIke1dFQktJVF9E
SVJ9L1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKaW5kZXggNzk5NGUzY2E3Nzc2MzI5ZDZmNzVkN2FhZjBjOTNmZDlhYTA1OWUxMC4uZWRm
YjZlMWUwNWU1NjQwMDhiN2Q1N2E4NzQ1Mzc4YzQzZDY2Y2Y5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTksNiArMTksOCBAQCAkKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVByb2Nlc3Muc2Iu
aW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVBy
b2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1Rf
RElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluCisk
KFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdl
ci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJD
b29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9D
dXN0b21Qcm90b2NvbHMvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLm1lc3Nh
Z2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dAppbmRleCAwY2QyM2UwMWJiYWNkMmVjNGEwYmRjM2JkZmYyYmUwZDdiNjBiMDFiLi5kZmJjMGVm
ZTZiODQ3MjZmOTZjODk4MjhjZDgzZDBlZDc1OTA1YTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEyOSw2ICsxMjksMTMgQEAgJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyTWVzc2FnZXNSZXAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2Vz
UmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVjb3JkZXJNYW5h
Z2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZWNvcmRlck1l
c3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZXNSZXBs
aWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90
ZU1lZGlhUmVjb3JkZXJzTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3Nh
Z2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1h
a2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggOWQzZTJhOTBjN2I0
ZDkwYTQyNmM3NmE0ZTA1ZTZiMmY4MWNjMGU5ZS4uZTI5MDkzMDk3Y2Q5YmRlYjM0NWExOWE1ZDM3
ZmU1N2E1NDBkZWI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5t
YWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTQzLDYgKzE0
Myw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHkgXAogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciBcCiAgICAgUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHkgXAorICAgIFJlbW90ZU1lZGlhUmVjb3JkZXIgXAorICAgIFJl
bW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyIFwKICAgICBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ciBcCiAgICAgUmVtb3RlT2JqZWN0UmVnaXN0cnkgXAogICAgIFJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA1MmE5NWNlMGRlZDcwM2Q2MWQzNGE5ZDE3ZjBjOGI0
MmU2NjRmZGRhLi42MjBiNDFmMjhkNjY3NmEzZGUxN2Y0NzZiMmRmMzg4ZmZmNjQ3NzBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCkBAIC0zOSw2ICszOSw5IEBACiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuaCIKKyNpbmNsdWRl
ICJSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3Rl
TWVkaWFSZWNvcmRlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXIuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5oIgpAQCAt
MTM3LDYgKzE0MCwxNCBAQCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5JiBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjp1c2VyTWVkaWFDYXB0dXJlTWFuYWdlcgogCiAgICAgcmV0dXJuICpt
X3VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7CiB9CisKK1JlbW90ZU1lZGlhUmVjb3JkZXJN
YW5hZ2VyJiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjptZWRpYVJlY29yZGVyTWFuYWdlcigp
Cit7CisgICAgaWYgKCFtX3JlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyKQorICAgICAgICBtX3Jl
bW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyID0gbWFrZVVuaXF1ZTxSZW1vdGVNZWRpYVJlY29yZGVy
TWFuYWdlcj4oKnRoaXMpOworCisgICAgcmV0dXJuICptX3JlbW90ZU1lZGlhUmVjb3JkZXJNYW5h
Z2VyOworfQogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykK
QEAgLTE2Myw2ICsxNzQsMTQgQEAgdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIEkKICAgICAgICAgdXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpLmRpZFJlY2VpdmVNZXNzYWdlRnJvbUdQVVByb2Nl
c3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgaWYg
KGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJl
Y29yZGVyTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIG1lZGlhUmVj
b3JkZXJNYW5hZ2VyKCkuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vzcyhjb25uZWN0aW9u
LCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoZGVjb2Rlci5tZXNz
YWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBtZWRpYVJlY29yZGVyTWFuYWdlcigpLmRpZFJl
Y2VpdmVSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0Uo
TElCV0VCUlRDKQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNz
YWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmgKaW5kZXggYWM3MTI1ZDczOGQ4Njg4OGVlYThiNGE5MjUxNWY5ZGU0ZDFmNmIwNC4uZjQ4NTk2
NGQ0NmM1MmUzMzhkMmFiZTRmNzY1ZGRjYjVhOTRhMDc5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC00MSw4ICs0
MSw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgR1BVUHJvY2VzczsKIGNsYXNzIExpYldl
YlJUQ0NvZGVjc1Byb3h5OwogY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk7Ci1j
bGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OworY2xhc3MgUmVtb3RlTWVkaWFSZWNv
cmRlck1hbmFnZXI7CiBjbGFzcyBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjsKK2NsYXNzIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7CiAKIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MKICAgICA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+
CkBAIC03MSw2ICs3Miw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkg
JiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
JiB1c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCk7CisgICAgUmVtb3RlTWVkaWFSZWNvcmRl
ck1hbmFnZXImIG1lZGlhUmVjb3JkZXJNYW5hZ2VyKCk7CiAjZW5kaWYKIAogICAgIC8vIElQQzo6
Q29ubmVjdGlvbjo6Q2xpZW50CkBAIC04OSw2ICs5MSw3IEBAIHByaXZhdGU6CiAgICAgUEFMOjpT
ZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCiAgICAgc3RkOjp1bmlxdWVfcHRyPFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk+IG1fdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
UmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI+IG1fcmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI7
CiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8TGliV2ViUlRDQ29kZWNzUHJveHk+IG1fbGliV2ViUlRDQ29kZWNzUHJveHk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlh
UmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRp
YVJlY29yZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZDhhODVkNTc0YmNlN2NhYzMwM2Q2M2EyOWJiOTVm
MGMzOWNjZjBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcApAQCAtMCwwICsxLDEzOSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlY29yZGVyLmgi
CisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVk
ZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1
ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVtb3RlVmlkZW9TYW1wbGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dl
YkF1ZGlvQnVmZmVyTGlzdC5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgor
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0ZDo6
dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVJlY29yZGVyPiBSZW1vdGVNZWRpYVJlY29yZGVyOjpjcmVh
dGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcywg
TWVkaWFSZWNvcmRlcklkZW50aWZpZXIgaWRlbnRpZmllciwgYm9vbCByZWNvcmRBdWRpbywgaW50
IHdpZHRoLCBpbnQgaGVpZ2h0KQoreworICAgIGF1dG8gd3JpdGVyID0gTWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXI6OmNyZWF0ZShyZWNvcmRBdWRpbywgd2lkdGgsIGhlaWdodCk7CisgICAgaWYg
KCF3cml0ZXIpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6OnVuaXF1
ZV9wdHI8UmVtb3RlTWVkaWFSZWNvcmRlcj4obmV3IFJlbW90ZU1lZGlhUmVjb3JkZXIgeyBncHVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLCBpZGVudGlmaWVyLCB3cml0ZXIucmVsZWFzZU5vbk51bGwo
KSwgcmVjb3JkQXVkaW8gfSk7Cit9CisKK1JlbW90ZU1lZGlhUmVjb3JkZXI6OlJlbW90ZU1lZGlh
UmVjb3JkZXIoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvblRvV2ViUHJv
Y2VzcywgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPE1lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyPiYmIHdyaXRlciwgYm9vbCByZWNvcmRBdWRpbykKKyAgICA6IG1fZ3B1
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyhncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQorICAgICwg
bV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX3dyaXRlcihXVEZNb3ZlKHdyaXRlcikp
Cit7CisgICAgaWYgKHJlY29yZEF1ZGlvKQorICAgICAgICBtX3JpbmdCdWZmZXIgPSBtYWtlVW5p
cXVlPENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4o
bnVsbHB0cikpOworfQorCitSZW1vdGVNZWRpYVJlY29yZGVyOjp+UmVtb3RlTWVkaWFSZWNvcmRl
cigpCit7Cit9CisKK1NoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBSZW1vdGVNZWRpYVJlY29yZGVy
OjpzdG9yYWdlKCkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0
b3JhZ2UmPihtX3JpbmdCdWZmZXItPnN0b3JhZ2UoKSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFS
ZWNvcmRlcjo6YXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQoY29uc3QgU2hhcmVkTWVtb3J5OjpI
YW5kbGUmIGhhbmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBk
ZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7CisgICAgQVNTRVJUKG1fcmlu
Z0J1ZmZlcik7CisgICAgaWYgKCFtX3JpbmdCdWZmZXIpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKKworICAgIGlmIChoYW5kbGUuaXNOdWxsKCkp
IHsKKyAgICAgICAgbV9yaW5nQnVmZmVyLT5kZWFsbG9jYXRlKCk7CisgICAgICAgIHN0b3JhZ2Uo
KS5zZXRSZWFkT25seShmYWxzZSk7CisgICAgICAgIHN0b3JhZ2UoKS5zZXRTdG9yYWdlKG51bGxw
dHIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBtZW1vcnkgPSBTaGFyZWRN
ZW1vcnk6Om1hcChoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOwor
ICAgIHN0b3JhZ2UoKS5zZXRTdG9yYWdlKFdURk1vdmUobWVtb3J5KSk7CisgICAgc3RvcmFnZSgp
LnNldFJlYWRPbmx5KHRydWUpOworCisgICAgbV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlw
dGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXI6OmF1
ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFt
ZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQoreworICAgIEFTU0VS
VChtX3JpbmdCdWZmZXIpOworICAgIGlmICghbV9yaW5nQnVmZmVyKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX3JpbmdCdWZmZXItPnNldEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBl
bmRGcmFtZSk7CisKKyAgICBXZWJBdWRpb0J1ZmZlckxpc3QgYXVkaW9EYXRhKG1fZGVzY3JpcHRp
b24sIG51bWJlck9mRnJhbWVzKTsKKyAgICBtX3JpbmdCdWZmZXItPmZldGNoKGF1ZGlvRGF0YS5s
aXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsKKworICAgIG1fd3JpdGVy
LT5hcHBlbmRBdWRpb1NhbXBsZUJ1ZmZlcihhdWRpb0RhdGEsIG1fZGVzY3JpcHRpb24sIHRpbWUs
IG51bWJlck9mRnJhbWVzKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyOjp2aWRlb1Nh
bXBsZUF2YWlsYWJsZShXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSYmIHJlbW90ZVNhbXBsZSkK
K3sKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vz
c2lvbi0+cGl4ZWxGb3JtYXQoKSAhPSByZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSkKKyAgICAg
ICAgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiA9IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0
ZShyZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSk7CisKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2Zl
clNlc3Npb24pIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9IG1faW1hZ2VUcmFuc2ZlclNlc3Np
b24tPmNyZWF0ZU1lZGlhU2FtcGxlKHJlbW90ZVNhbXBsZS5zdXJmYWNlKCksIHJlbW90ZVNhbXBs
ZS50aW1lKCksIHJlbW90ZVNhbXBsZS5zaXplKCkpOworICAgIGlmICghc2FtcGxlQnVmZmVyKSB7
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgbV93cml0ZXItPmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKHNhbXBsZUJ1ZmZlci0+cGxh
dGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOworfQorCit2b2lkIFJlbW90ZU1l
ZGlhUmVjb3JkZXI6OmZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6RGF0YVJl
ZmVyZW5jZSYmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBtcDRNaW1lVHlwZShN
QUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgidmlkZW8vbXA0IikpOworICAgIG1fd3JpdGVyLT5mZXRj
aERhdGEoWyZtcDRNaW1lVHlwZSA9IG1wNE1pbWVUeXBlLmdldCgpLCBjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvJiYgZGF0YSkgbXV0YWJsZSB7Cisg
ICAgICAgIGF1dG8qIHBvaW50ZXIgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihk
YXRhID8gZGF0YS0+ZGF0YSgpIDogbnVsbHB0cik7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KElQQzo6RGF0YVJlZmVyZW5jZSB7IHBvaW50ZXIsIGRhdGEgPyBkYXRhLT5zaXplKCkgOiAwIH0s
IG1wNE1pbWVUeXBlKTsKKyAgICB9KTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyOjpz
dG9wUmVjb3JkaW5nKCkKK3sKKyAgICBtX3dyaXRlci0+c3RvcFJlY29yZGluZygpOworfQorCit9
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9S
ZW1vdGVNZWRpYVJlY29yZGVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZU1lZGlhUmVjb3JkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NGE4ZDE3NTVjNTk1MzBjMjMxMzZiNDc3
YjlhOGEwODU0NDE0ZjU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmgKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLmgiCisjaW5jbHVk
ZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaD4KKyNpbmNsdWRlIDx3dGYvTWVkaWFU
aW1lLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIERhdGFS
ZWZlcmVuY2U7CitjbGFzcyBEZWNvZGVyOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBDQVJpbmdCdWZmZXI7CitjbGFzcyBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOworY2xhc3MgUmVt
b3RlVmlkZW9TYW1wbGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOworY2xhc3MgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U7CisKK2Ns
YXNzIFJlbW90ZU1lZGlhUmVjb3JkZXIgOiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsK
KyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPFJlbW90ZU1lZGlhUmVjb3JkZXI+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJiwgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIsIGJvb2wgcmVjb3JkQXVkaW8sIGludCB3
aWR0aCwgaW50IGhlaWdodCk7CisgICAgflJlbW90ZU1lZGlhUmVjb3JkZXIoKTsKKworICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmlu
YWw7CisKK3ByaXZhdGU6CisgICAgUmVtb3RlTWVkaWFSZWNvcmRlcihHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJiwgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpNZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlcj4mJiwgYm9vbCByZWNvcmRBdWRpbyk7CisKKyAgICAvLyBJUEM6
Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgYXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQoY29u
c3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisgICAgdm9pZCBhdWRpb1NhbXBs
ZXNBdmFpbGFibGUoTWVkaWFUaW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qg
c3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworICAgIHZvaWQgdmlkZW9TYW1wbGVBdmFp
bGFibGUoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUmJik7CisgICAgdm9pZCBmZXRjaERhdGEo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OkRhdGFSZWZlcmVuY2UmJiwgY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSk+JiYpOworICAgIHZvaWQgc3RvcFJlY29yZGluZygpOworCisgICAgU2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKTsKKworICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MmIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzczsKKyAgICBNZWRpYVJlY29yZGVySWRl
bnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgUmVmPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyPiBtX3dyaXRlcjsKKworICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiBtX2Rlc2NyaXB0aW9uOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDQVJpbmdC
dWZmZXI+IG1fcmluZ0J1ZmZlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VU
cmFuc2ZlclNlc3Npb25WVD4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbjsKK307CisKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1l
ZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRj
L1JlbW90ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTRiYTY0ZDU2ZmJl
YTMwZmNiYjM5NmRhZDVlYTNmYzMwYzk5NWRlZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5tZXNzYWdlcy5pbgpA
QCAtMCwwICsxLDM0IEBACisjIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMg
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisj
aWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKworbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFSZWNvcmRlciBOb3RSZWZDb3VudGVk
IHsKKyAgICBBdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6
SGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBk
ZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisgICAgQXVkaW9TYW1wbGVzQXZh
aWxhYmxlKE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qg
c3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCisgICAgVmlkZW9TYW1wbGVBdmFpbGFibGUo
V2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUgc2FtcGxlKQorICAgIEZldGNoRGF0YSgpIC0+IChJ
UEM6OkRhdGFSZWZlcmVuY2UgYnVmZmVyLCBTdHJpbmcgbWltZVR5cGUpIEFzeW5jCisgICAgU3Rv
cFJlY29yZGluZygpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zNGUzZmVkYmIyMTgyYjk2ZjFiM2ZlNmY2YWNhZDZhY2Q1MGYyNDI2Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJl
Y29yZGVyTWFuYWdlci5jcHAKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5oIgorCisj
aWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIkRh
dGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJEZWNvZGVyLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVk
aWFSZWNvcmRlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRXhjZXB0aW9uRGF0YS5oPgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI6OlJlbW90ZU1lZGlh
UmVjb3JkZXJNYW5hZ2VyKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MpCisgICAgOiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoZ3B1Q29ubmVj
dGlvblRvV2ViUHJvY2VzcykKK3sKK30KKworUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI6On5S
ZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcigpCit7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZWNv
cmRlck1hbmFnZXI6OmRpZFJlY2VpdmVSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAo
YXV0byogcmVjb3JkZXIgPSBtX3JlY29yZGVycy5nZXQobWFrZU9iamVjdElkZW50aWZpZXI8TWVk
aWFSZWNvcmRlcklkZW50aWZpZXJUeXBlPihkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSkpKQorICAg
ICAgICByZWNvcmRlci0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7Cit9
CisKK3ZvaWQgUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI6OmNyZWF0ZVJlY29yZGVyKE1lZGlh
UmVjb3JkZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgcmVjb3JkQXVkaW8sIGludCB3aWR0
aCwgaW50IGhlaWdodCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb25E
YXRhPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoIW1fcmVjb3JkZXJz
LmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBhdXRvIHJlY29yZGVyID0gUmVtb3RlTWVkaWFS
ZWNvcmRlcjo6Y3JlYXRlKG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgaWRlbnRpZmllciwg
cmVjb3JkQXVkaW8sIHdpZHRoLCBoZWlnaHQpOworICAgIGlmICghcmVjb3JkZXIpCisgICAgICAg
IHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihFeGNlcHRpb25EYXRhIHsgTm90U3VwcG9ydGVkRXJy
b3IsICJVbmFibGUgdG8gY3JlYXRlIGEgcmVjb3JkZXIgd2l0aCB0aGUgcHJvdmlkZWQgc3RyZWFt
Il9zIH0pOworCisgICAgbV9yZWNvcmRlcnMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUocmVjb3Jk
ZXIpKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworfQorCit2b2lkIFJlbW90ZU1lZGlh
UmVjb3JkZXJNYW5hZ2VyOjpyZWxlYXNlUmVjb3JkZXIoTWVkaWFSZWNvcmRlcklkZW50aWZpZXIg
aWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQobV9yZWNvcmRlcnMuY29udGFpbnMoaWRlbnRpZmll
cikpOworICAgIG1fcmVjb3JkZXJzLnJlbW92ZShpZGVudGlmaWVyKTsKK30KKworfQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVk
aWFSZWNvcmRlck1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVt
b3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZDU3MGI0ZTIwMmZhZDI1Mzkz
NTRhZjE3MGYxMDEwMzI4OGU5ZDZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5oCkBAIC0wLDAgKzEs
NzIgQEAKKworCisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShDT0NP
QSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlcklkZW50
aWZpZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xh
c3MgQ29ubmVjdGlvbjsKK2NsYXNzIERlY29kZXI7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K3N0cnVjdCBFeGNlcHRpb25EYXRhOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKK2NsYXNzIFJlbW90ZU1lZGlhUmVjb3JkZXI7CisK
K2NsYXNzIFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyIDogcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VS
ZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhw
bGljaXQgUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYpOworICAgIH5SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcigpOworCisgICAgdm9pZCBkaWRS
ZWNlaXZlUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpE
ZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKSB7IGRpZFJlY2Vp
dmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOyB9CisKK3ByaXZhdGU6CisgICAgLy8gSVBD
OjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworICAgIHZvaWQgY3JlYXRlUmVjb3JkZXIoTWVk
aWFSZWNvcmRlcklkZW50aWZpZXIsIGJvb2wgcmVjb3JkQXVkaW8sIGludCB3aWR0aCwgaW50IGhl
aWdodCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25E
YXRhPiYmKT4mJik7CisgICAgdm9pZCByZWxlYXNlUmVjb3JkZXIoTWVkaWFSZWNvcmRlcklkZW50
aWZpZXIpOworCisgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9ncHVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOworICAgIEhhc2hNYXA8TWVkaWFSZWNvcmRlcklkZW50aWZpZXIsIHN0ZDo6
dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVJlY29yZGVyPj4gbV9yZWNvcmRlcnM7Cit9OworCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVNZWRpYVJlY29yZGVyTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzg3YTQxMzYxY2RiZDliN2VhZTJjMzM3MzY1MmE5OGY0OTM0ZTE3NAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNv
cmRlck1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMSBAQAorIyBDb3B5cmlnaHQgKEMp
IDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BV
X1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+IFJlbW90ZU1l
ZGlhUmVjb3JkZXJNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworICAgIENyZWF0ZVJlY29yZGVyKFdl
YktpdDo6TWVkaWFSZWNvcmRlcklkZW50aWZpZXIgaWQsIGJvb2wgaGFzQXVkaW8sIGludCB3aWR0
aCwgaW50IGhlaWdodCkgLT4gKE9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IGNyZWF0
aW9uRXJyb3IpIEFzeW5jCisgICAgUmVsZWFzZVJlY29yZGVyKFdlYktpdDo6TWVkaWFSZWNvcmRl
cklkZW50aWZpZXIgaWQpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKaW5kZXggNWQ4NDQ3MTMyNWJiYTdhNDM1ZWQ5MzNjMDkwOTA5NDUzYjlkNDAy
NS4uZjhiY2UxNDU1MDdkZjQ5ZTg5ZWQ0ZjcxOTg3NmUxMGJmNzA5NmJkZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yMjAsNiArMjIwLDcgQEAgZGVmIHR5
cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYktpdDo6
QWN0aXZpdHlTdGF0ZUNoYW5nZUlEJywKICAgICAgICAgJ1dlYktpdDo6TGF5ZXJIb3N0aW5nQ29u
dGV4dElEJywKICAgICAgICAgJ1dlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRp
ZmllcicsCisgICAgICAgICdXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJJZGVudGlmaWVyJywKICAgICAg
ICAgJ1dlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXInLAogICAgICAgICAnV2Vi
S2l0OjpSVENEZWNvZGVySWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJUQ0VuY29kZXJJ
ZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGQwMzkzYmIwNjJkOTdhZTk2YTcyMjVhNmQ2MDdi
MDc0YjM4ZTBjOTguLjMwNmNkMWU2OTM1NjYxYWQ0MWMwNjA5Mjg0OGJmOWFmMzZiMWI3MjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dApAQCAtMjQsNiArMjQsOCBAQAogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcAog
R1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAogR1BVUHJvY2Vzcy9HUFVQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVk
aWFSZWNvcmRlci5jcHAKK0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJNYW5h
Z2VyLmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5j
cHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKIEdQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAKQEAgLTUxMyw2ICs1MTUsOCBAQCBXZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCiBXZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuY3BwIEBuby11bmlmeQog
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcAogV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKK1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKK1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJl
Y29yZGVyUHJvdmlkZXIuY3BwCiAKIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggZmU3NTc5NTM3NjFiOTlmNjliODI4YzExYmJjMGYzMzFh
ZWVmYzE5MS4uYWJjOGI4NTkyZmIyNjcwMGI1NmMwZjQ3Njg3NTkwY2YyYjA2ZTY5MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQv
U291cmNlc0NvY29hLnR4dApAQCAtNjM1LDUgKzYzNSw3IEBAIEdQVVByb2Nlc3NQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAKIEdQVVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwCiBMaWJXZWJSVEND
b2RlY3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIExpYldlYlJUQ0NvZGVjc01lc3NhZ2VSZWNl
aXZlci5jcHAKK1JlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVN
ZWRpYVJlY29yZGVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFNlcnZpY2VXb3JrZXJGZXRj
aFRhc2tNZXNzYWdlUmVjZWl2ZXIuY3BwCiBUZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA1Nzc4YmE1ODcyMzJjNmU2YTc4MjI0NmI5YzdjYjMyMGFlOGZjY2Vh
Li5jZjBiM2JlZTdlMDJmZDI2ODEzOTkzYzM1NWEwOThlMzUyZWI4MjMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMzMTYsNiArMzMx
NiwxNyBAQAogCQk0MTcyMTk4QzIzQjYxMkU4MDBBRTU2ODYgLyogUlRDRGVjb2RlcklkZW50aWZp
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDRGVjb2RlcklkZW50aWZp
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3MjE5OEQyM0I2MkM3QzAwQUU1
Njg2IC8qIExpYldlYlJUQ0NvZGVjcy5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaWJXZWJSVENDb2RlY3Mu
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzY5MDEzMjJGREQ0
MUIwMEIxNTc2RCAvKiBOZXR3b3JrUlRDUHJvdmlkZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBOZXR3b3JrUlRDUHJvdmlkZXIubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQxNzZFODkyMjNDMzRENkUwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVy
UHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFSZWNvcmRlclByb3ZpZGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODkzMjNDMzRENkYwMDNFODNGRSAvKiBNZWRp
YVJlY29yZGVyUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFSZWNvcmRlclBy
b3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OTQyM0MzNEUy
NjAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJQcml2YXRlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OTUyM0MzNEUyNzAwM0U4M0ZFIC8qIE1lZGlhUmVjb3Jk
ZXJQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUmVjb3Jk
ZXJQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODk3MjNDMzYx
QkQwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVySWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNZWRpYVJlY29yZGVySWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0MTc2RTg5ODIzQzM2Njc3MDAzRTgzRkUgLyogUmVtb3RlTWVkaWFS
ZWNvcmRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJl
Y29yZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODk5MjNDMzZEOEUw
MDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0MTc2RTg5QTIzQzM2RjcxMDAzRTgzRkUgLyogUmVtb3RlTWVk
aWFSZWNvcmRlck1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MTc2RTg5QjIzQzM3MjIyMDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlck1h
bmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFSZWNv
cmRlck1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQx
NzZFODlDMjNDMzc0NzkwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW47
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODlEMjNDMzc2RDUwMDNFODNGRSAv
KiBSZW1vdGVNZWRpYVJlY29yZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlbW90ZU1lZGlhUmVjb3JkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTc5MTVBQzIyNTZCQjc0MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJTb2NrZXRDaGFubmVsLmNwcDsg
cGF0aCA9IE5ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxNzkxNUFEMjI1NkJCNzQwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlNvY2tldENoYW5uZWwuaDsgcGF0
aCA9IE5ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTc5MTVCMDIyNTZDMEQ2MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViU29ja2V0Q2hhbm5lbE1hbmFn
ZXIuaDsgcGF0aCA9IE5ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcxMTcsNiArNzEyOCwxMSBAQAogCQkJCTQxNzIxOThBMjNC
NjEyODIwMEFFNTY4NiAvKiBMaWJXZWJSVENDb2RlY3MuY3BwICovLAogCQkJCTQxNzIxOTg5MjNC
NjEyODIwMEFFNTY4NiAvKiBMaWJXZWJSVENDb2RlY3MuaCAqLywKIAkJCQk0MTcyMTk4RDIzQjYy
QzdDMDBBRTU2ODYgLyogTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2VzLmluICovLAorCQkJCTQxNzZF
ODk3MjNDMzYxQkQwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVySWRlbnRpZmllci5oICovLAorCQkJ
CTQxNzZFODk0MjNDMzRFMjYwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAgKi8s
CisJCQkJNDE3NkU4OTUyM0MzNEUyNzAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmgg
Ki8sCisJCQkJNDE3NkU4OTMyM0MzNEQ2RjAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92aWRl
ci5jcHAgKi8sCisJCQkJNDE3NkU4OTIyM0MzNEQ2RTAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQ
cm92aWRlci5oICovLAogCQkJCTQxNzIxOThDMjNCNjEyRTgwMEFFNTY4NiAvKiBSVENEZWNvZGVy
SWRlbnRpZmllci5oICovLAogCQkJCTQxNTg2NDlBMjNCRTA5MjQwMEEwQTYxRSAvKiBSVENFbmNv
ZGVySWRlbnRpZmllci5oICovLAogCQkJKTsKQEAgLTcxMjksNiArNzE0NSwxMiBAQAogCQkJCTQx
RTBBN0M2MjNCNjM5NzgwMDU2MTA2MCAvKiBMaWJXZWJSVENDb2RlY3NQcm94eS5oICovLAogCQkJ
CTQxRTBBN0M3MjNCNjM5NzkwMDU2MTA2MCAvKiBMaWJXZWJSVENDb2RlY3NQcm94eS5tZXNzYWdl
cy5pbiAqLywKIAkJCQk0MUUwQTdDODIzQjYzOTc5MDA1NjEwNjAgLyogTGliV2ViUlRDQ29kZWNz
UHJveHkubW0gKi8sCisJCQkJNDE3NkU4OUQyM0MzNzZENTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlh
UmVjb3JkZXIuY3BwICovLAorCQkJCTQxNzZFODk4MjNDMzY2NzcwMDNFODNGRSAvKiBSZW1vdGVN
ZWRpYVJlY29yZGVyLmggKi8sCisJCQkJNDE3NkU4OUMyM0MzNzQ3OTAwM0U4M0ZFIC8qIFJlbW90
ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJNDE3NkU4OUEyM0MzNkY3MTAwM0U4
M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLmNwcCAqLywKKwkJCQk0MTc2RTg5OTIz
QzM2RDhFMDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuaCAqLywKKwkJCQk0
MTc2RTg5QjIzQzM3MjIyMDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIubWVz
c2FnZXMuaW4gKi8sCiAJCQkpOwogCQkJcGF0aCA9IHdlYnJ0YzsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGUyZDY2YmZiY2I0
OWQ5Mzg5Mzg2NThjMDAwZWEzMWQ5MmViZjcyNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcApAQCAt
MCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
Ik1lZGlhUmVjb3JkZXJQcm92aWRlci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVk
ZSAiTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IE1lZGlhUmVj
b3JkZXJQcm92aWRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoTWVkaWFTdHJlYW1Qcml2
YXRlJiBzdHJlYW0pCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgcmV0dXJuIE1lZGlhUmVj
b3JkZXJQcml2YXRlQVZGSW1wbDo6Y3JlYXRlKHN0cmVhbSk7CisjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTShzdHJlYW0pOworICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCit9CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFSZWNvcmRlclBy
b3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUmVjb3Jk
ZXJQcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxMGU4ZDQ4MWY4NmEzNWQwZDllZTlmYjgzZWFlZTY2
ZGM3OWRmY2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUmVjb3JkZXJQcm92aWRlci5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVJl
Y29yZGVyUHJpdmF0ZTsKK2NsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZTsKKworY2xhc3MgV0VCQ09S
RV9FWFBPUlQgTWVkaWFSZWNvcmRlclByb3ZpZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRl
cj4gY3JlYXRlKCkgeyByZXR1cm4gbWFrZVVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+
KCk7IH0KKyAgICB2aXJ0dWFsIH5NZWRpYVJlY29yZGVyUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CisK
KyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRl
TWVkaWFSZWNvcmRlclByaXZhdGUoTWVkaWFTdHJlYW1Qcml2YXRlJik7Cit9OworCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVy
SWRlbnRpZmllci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFS
ZWNvcmRlcklkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmYwNGUzMzNmZTg0NjMyM2NjY2U3OTM4
NWNhNzUyYjU2NDE5M2VkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlcklkZW50aWZpZXIuaApAQCAtMCwwICsxLDM1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRp
Zmllci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBNZWRpYVJlY29yZGVySWRlbnRp
ZmllclR5cGUgeyB9OwordXNpbmcgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIgPSBPYmplY3RJZGVu
dGlmaWVyPE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVk
aWFSZWNvcmRlclByaXZhdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4MTI4ZDIyMTQ2ZWNiMjMx
YzVhMGMyNWU4NDUwMGFjMTY3MmUxYmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKQEAgLTAsMCAr
MSwxNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVk
aWFSZWNvcmRlclByaXZhdGUuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BV
X1BST0NFU1MpCisKKyNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUg
IlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVN
ZWRpYVJlY29yZGVyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU3RyZWFt
UHJpdmF0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1JlbW90ZVZpZGVvU2FtcGxlLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9TaGFyZWRCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5o
PgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK01l
ZGlhUmVjb3JkZXJQcml2YXRlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZShjb25zdCBNZWRpYVN0cmVh
bVByaXZhdGUmIHN0cmVhbSkKKyAgICA6IG1faWRlbnRpZmllcihNZWRpYVJlY29yZGVySWRlbnRp
Zmllcjo6Z2VuZXJhdGUoKSkKKyAgICAsIG1fY29ubmVjdGlvbihXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKSkKK3sKKyAgICAv
LyBGSVhNRTogd2Ugd2lsbCBuZWVkIHRvIGltcGxlbWVudCBzdXBwb3J0IGZvciBtdWx0aXBsZSBh
dWRpby92aWRlbyB0cmFja3MKKyAgICAvLyBDdXJyZW50bHkgd2Ugb25seSBjaG9vc2UgdGhlIGZp
cnN0IHRyYWNrIGFzIHRoZSByZWNvcmRlZCB0cmFjay4KKyAgICAvLyBGSVhNRTogV2Ugd291bGQg
YmV0dGVyIHRvIHRocm93IGFuIGV4Y2VwdGlvbiB0byBKYXZhU2NyaXB0IGlmIHdyaXRlciBjcmVh
dGlvbiBmYWlscy4KKworICAgIGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiBhdWRpb1Ry
YWNrIHsgbnVsbHB0ciB9OworICAgIGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiB2aWRl
b1RyYWNrIHsgbnVsbHB0ciB9OworICAgIGZvciAoYXV0byYgdHJhY2sgOiBzdHJlYW0udHJhY2tz
KCkpIHsKKyAgICAgICAgaWYgKCF0cmFjay0+ZW5hYmxlZCgpIHx8IHRyYWNrLT5lbmRlZCgpKQor
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIHN3aXRjaCAodHJhY2stPnR5cGUoKSkgewor
ICAgICAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvOiB7CisgICAgICAg
ICAgICBhdXRvJiBzZXR0aW5ncyA9IHRyYWNrLT5zZXR0aW5ncygpOworICAgICAgICAgICAgaWYg
KCF2aWRlb1RyYWNrICYmIHNldHRpbmdzLnN1cHBvcnRzV2lkdGgoKSAmJiBzZXR0aW5ncy5zdXBw
b3J0c0hlaWdodCgpKSB7CisgICAgICAgICAgICAgICAgdmlkZW9UcmFjayA9IHRyYWNrLmdldCgp
OworICAgICAgICAgICAgICAgIG1fcmVjb3JkZWRWaWRlb1RyYWNrSUQgPSB2aWRlb1RyYWNrLT5p
ZCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAg
ICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzoKKyAgICAgICAgICAgIGlm
ICghYXVkaW9UcmFjaykgeworICAgICAgICAgICAgICAgIG1fcmluZ0J1ZmZlciA9IG1ha2VVbmlx
dWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPih0
aGlzKSk7CisgICAgICAgICAgICAgICAgYXVkaW9UcmFjayA9IHRyYWNrLmdldCgpOworICAgICAg
ICAgICAgICAgIG1fcmVjb3JkZWRBdWRpb1RyYWNrSUQgPSBhdWRpb1RyYWNrLT5pZCgpOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6VHlwZTo6Tm9uZToKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
fQorICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVJlY29yZGVyTWFuYWdlcjo6Q3JlYXRlUmVjb3JkZXIgeyBtX2lkZW50aWZpZXIsICEhYXVk
aW9UcmFjaywgdmlkZW9UcmFjayA/IHZpZGVvVHJhY2stPnNldHRpbmdzKCkud2lkdGgoKSA6IDAs
IHZpZGVvVHJhY2sgPyB2aWRlb1RyYWNrLT5zZXR0aW5ncygpLmhlaWdodCgpIDogMCB9LCBbdGhp
cywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0oYXV0byYmIGV4Y2VwdGlvbikgeworICAg
ICAgICBpZiAoIXdlYWtUaGlzIHx8ICFleGNlcHRpb24pCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIG1fZXJyb3JDYWxsYmFjayhFeGNlcHRpb24geyBleGNlcHRpb24tPmNvZGUsIFdURk1v
dmUoZXhjZXB0aW9uLT5tZXNzYWdlKSB9KTsKKyAgICB9LCAwKTsKK30KKworTWVkaWFSZWNvcmRl
clByaXZhdGU6On5NZWRpYVJlY29yZGVyUHJpdmF0ZSgpCit7CisgICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6UmVsZWFzZVJlY29yZGVy
IHsgbV9pZGVudGlmaWVyIH0sIDApOworfQorCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpz
YW1wbGVCdWZmZXJVcGRhdGVkKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
JiB0cmFjaywgV2ViQ29yZTo6TWVkaWFTYW1wbGUmIHNhbXBsZSkKK3sKKyAgICBpZiAodHJhY2su
aWQoKSAhPSBtX3JlY29yZGVkVmlkZW9UcmFja0lEKQorICAgICAgICByZXR1cm47CisgICAgaWYg
KGF1dG8gcmVtb3RlU2FtcGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShzYW1wbGUpKQor
ICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6
OlZpZGVvU2FtcGxlQXZhaWxhYmxlIHsgV1RGTW92ZSgqcmVtb3RlU2FtcGxlKSB9LCBtX2lkZW50
aWZpZXIpOworfQorCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjphdWRpb1NhbXBsZXNBdmFp
bGFibGUoY29uc3QgV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBjb25z
dCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNv
bnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgbnVtYmVyT2ZG
cmFtZXMpCit7CisgICAgaWYgKHRyYWNrLmlkKCkgIT0gbV9yZWNvcmRlZEF1ZGlvVHJhY2tJRCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fZGVzY3JpcHRpb24gIT0gZGVzY3JpcHRpb24p
IHsKKyAgICAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS50eXBl
ID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUpOworICAgICAg
ICBtX2Rlc2NyaXB0aW9uID0gKldURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlw
dGlvbio+KGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CisK
KyAgICAgICAgLy8gQWxsb2NhdGUgYSByaW5nIGJ1ZmZlciBsYXJnZSBlbm91Z2ggdG8gY29udGFp
biAyIHNlY29uZHMgb2YgYXVkaW8uCisgICAgICAgIG1fbnVtYmVyT2ZGcmFtZXMgPSBtX2Rlc2Ny
aXB0aW9uLnNhbXBsZVJhdGUoKSAqIDI7CisgICAgICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUo
bV9kZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpLCBtX251bWJlck9mRnJhbWVzKTsKKyAg
ICB9CisKKyAgICBBU1NFUlQoaXM8V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRpb0RhdGEpKTsKKyAg
ICBtX3JpbmdCdWZmZXItPnN0b3JlKGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4oYXVkaW9E
YXRhKS5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsKKyAgICB1aW50
NjRfdCBzdGFydEZyYW1lOworICAgIHVpbnQ2NF90IGVuZEZyYW1lOworICAgIG1fcmluZ0J1ZmZl
ci0+Z2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAgICBtX2Nv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OkF1ZGlvU2FtcGxl
c0F2YWlsYWJsZSB7IHRpbWUsIG51bWJlck9mRnJhbWVzLCBzdGFydEZyYW1lLCBlbmRGcmFtZSB9
LCBtX2lkZW50aWZpZXIpOworfQorCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdG9yYWdl
Q2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2UpCit7CisgICAgU2hhcmVkTWVtb3J5OjpIYW5k
bGUgaGFuZGxlOworICAgIGlmIChzdG9yYWdlKQorICAgICAgICBzdG9yYWdlLT5jcmVhdGVIYW5k
bGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICBtX2Nv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OkF1ZGlvU2FtcGxl
c1N0b3JhZ2VDaGFuZ2VkIHsgaGFuZGxlLCBtX2Rlc2NyaXB0aW9uLCBzdGF0aWNfY2FzdDx1aW50
NjRfdD4obV9udW1iZXJPZkZyYW1lcykgfSwgbV9pZGVudGlmaWVyKTsKK30KKwordm9pZCBNZWRp
YVJlY29yZGVyUHJpdmF0ZTo6ZmV0Y2hEYXRhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRy
PFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OkZldGNoRGF0YSB7IH0sIFtjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvJiYgZGF0YSwgYXV0byYm
IG1pbWVUeXBlKSBtdXRhYmxlIHsKKyAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVy
OworICAgICAgICBpZiAoZGF0YS5zaXplKCkpCisgICAgICAgICAgICBidWZmZXIgPSBTaGFyZWRC
dWZmZXI6OmNyZWF0ZShkYXRhLmRhdGEoKSwgZGF0YS5zaXplKCkpOworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihXVEZNb3ZlKGJ1ZmZlciksIG1pbWVUeXBlKTsKKyAgICB9LCBtX2lkZW50aWZp
ZXIpOworfQorCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdG9wUmVjb3JkaW5nKCkKK3sK
KyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OlN0
b3BSZWNvcmRpbmcgeyB9LCBtX2lkZW50aWZpZXIpOworfQorCit9CisKKyNlbmRpZiAvLyBQTEFU
Rk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOGQzZThiZjNkMGQ0MzM5NmFkOWI0MGQyZDcyODhjZGEzYzdlNDY1OQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVj
b3JkZXJQcml2YXRlLmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1
ZGUgIk1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZl
clN0b3JhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUmVjb3JkZXJQcml2YXRlLmg+Cisj
aW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25h
bWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
Y2xhc3MgTWVkaWFSZWNvcmRlclByaXZhdGUgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6TWVkaWFS
ZWNvcmRlclByaXZhdGUsIHB1YmxpYyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50LCBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IHsKKyAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBNZWRpYVJlY29yZGVyUHJp
dmF0ZShjb25zdCBXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGUmKTsKKyAgICB+TWVkaWFSZWNv
cmRlclByaXZhdGUoKTsKKworcHJpdmF0ZToKKyAgICAvLyBXZWJDb3JlOjpNZWRpYVJlY29yZGVy
UHJpdmF0ZQorICAgIHZvaWQgc2FtcGxlQnVmZmVyVXBkYXRlZChjb25zdCBXZWJDb3JlOjpNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZSYsIFdlYkNvcmU6Ok1lZGlhU2FtcGxlJikgZmluYWw7CisgICAg
dm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUmLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFdlYkNvcmU6OlBsYXRmb3Jt
QXVkaW9EYXRhJiwgY29uc3QgV2ViQ29yZTo6QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVf
dCkgZmluYWw7CisgICAgdm9pZCBmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQ
dHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKT4mJikg
ZmluYWw7CisgICAgdm9pZCBzdG9wUmVjb3JkaW5nKCkgZmluYWw7CisKKyAgICAvLyBTaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50CisgICAgdm9pZCBzdG9yYWdlQ2hhbmdlZChTaGFyZWRN
ZW1vcnkqKTsKKworICAgIE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKwor
ICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBTdHJpbmcgbV9yZWNv
cmRlZEF1ZGlvVHJhY2tJRDsKKyAgICBTdHJpbmcgbV9yZWNvcmRlZFZpZGVvVHJhY2tJRDsKKwor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsK
KyAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbiB7IH07
CisgICAgaW50NjRfdCBtX251bWJlck9mRnJhbWVzIHsgMCB9OworfTsKKworfQorCisjZW5kaWYg
Ly8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQ
cm92aWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNThiN2Y3ZTQ3YzYwMmIxYWY5OTc0ODI1NDJjMmQ2Mzgz
MWM3MmUzMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlk
ZXIuaCIKKworI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlPiBNZWRpYVJlY29yZGVyUHJv
dmlkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0
ZSYgc3RyZWFtKQoreworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBpZiAoIW1fdXNlR1BV
UHJvY2VzcykKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcjo6
Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoc3RyZWFtKTsKKworICAgIHJldHVybiBtYWtlVW5p
cXVlPE1lZGlhUmVjb3JkZXJQcml2YXRlPihzdHJlYW0pOworI2Vsc2UKKyAgICByZXR1cm4gV2Vi
Q29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShz
dHJlYW0pOworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKK30KKyNlbmRpZiAvLyBFTkFC
TEUoTUVESUFfU1RSRUFNKQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0
NWZhYTRiZjBlNDc5NzhmZmY0N2MzODc1ZGQ2N2JmNDFlNDk5M2IKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlk
ZXIuaApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlIDxXZWJDb3JlL01lZGlhUmVjb3JkZXJQcm92aWRlci5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgTWVkaWFSZWNvcmRlclByb3ZpZGVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6
Ok1lZGlhUmVjb3JkZXJQcm92aWRlciB7CitwdWJsaWM6CisgICAgTWVkaWFSZWNvcmRlclByb3Zp
ZGVyKCkgPSBkZWZhdWx0OworCitwcml2YXRlOgorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlPiBjcmVhdGVN
ZWRpYVJlY29yZGVyUHJpdmF0ZShjb25zdCBXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGUmKSBm
aW5hbDsKKyNlbmRpZgorfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAppbmRleCA0NGQ3NjdiYzY0NzIxODNhMmMxMzExNzkwYjc4MGRjYzlmYzU2
OWE4Li4yN2QyOWMwN2IzMzhiM2IwZmJhZmZhZDViYTRmOGI2Mzc1Yzc1OWRmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDUsNiArNDUsNyBA
QAogI2luY2x1ZGUgIkxpYldlYlJUQ1Byb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTG9hZFBhcmFtZXRl
cnMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByb3Zp
ZGVyLmgiCiAjaW5jbHVkZSAiTmV0c2NhcGVQbHVnaW4uaCIKICNpbmNsdWRlICJOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uLmgiCkBAIC00NjAsNyArNDYxLDggQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRl
bnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQog
ICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5jYWNoZVN0b3JhZ2VQcm92aWRlcigpLAog
ICAgICAgICBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6Y3JlYXRlKCp0aGlzKSwKICAgICAgICAg
V2ViQ29va2llSmFyOjpjcmVhdGUoKSwKLSAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVz
c1RyYWNrZXJDbGllbnQ+KCp0aGlzKQorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNz
VHJhY2tlckNsaWVudD4oKnRoaXMpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPE1lZGlhUmVjb3Jk
ZXJQcm92aWRlcj4oKQogICAgICk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50
ID0gbmV3IFdlYkNocm9tZUNsaWVudCgqdGhpcyk7CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggNGM0MTg2
NGQ4OWY0MDU2N2VkODFlZDJlZmVmYjUwMWY2NzUzZGI4NC4uMTliMjIxY2IyMjc4M2M1YjY0YzM1
M2QwMjg1YTQ0OGY0NTNkMGI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQpAQCAtMTgwLDYgKzE4MCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXpl
ZFN0cmluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9nSW5pdGlhbGl6YXRpb24uaD4KICNpbXBv
cnQgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgorI2ltcG9ydCA8V2ViQ29yZS9NZWRpYVJl
Y29yZGVyUHJvdmlkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvTWVtb3J5Q2FjaGUuaD4KICNpbXBv
cnQgPFdlYkNvcmUvTWVtb3J5UmVsZWFzZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3Rv
cmFnZVNlc3Npb24uaD4KQEAgLTE0NDgsNyArMTQ0OSw4IEBAIHN0YXRpYyB2b2lkIFdlYktpdElu
aXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiAgICAgICAgIFdlYkNvcmU6OkNh
Y2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUoKSwKICAgICAgICAgQmFja0ZvcndhcmRMaXN0Ojpj
cmVhdGUoc2VsZiksCiAgICAgICAgIFdlYkNvcmU6OkNvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQ
cm92aWRlci5jb3B5UmVmKCkpLAotICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJh
Y2tlckNsaWVudD4oc2VsZikKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNr
ZXJDbGllbnQ+KHNlbGYpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6Ok1lZGlhUmVj
b3JkZXJQcm92aWRlcj4oKQogICAgICk7CiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAg
cGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudChzZWxm
KTsKQEAgLTE3MTcsNyArMTcxOSw4IEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRpYWxpemVHYW1l
cGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiAgICAgICAgIFdlYkNvcmU6OkNhY2hlU3RvcmFnZVBy
b3ZpZGVyOjpjcmVhdGUoKSwKICAgICAgICAgQmFja0ZvcndhcmRMaXN0OjpjcmVhdGUoc2VsZiks
CiAgICAgICAgIFdlYkNvcmU6OkNvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5
UmVmKCkpLAotICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4o
c2VsZikKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KHNl
bGYpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRl
cj4oKQogICAgICk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdl
YkNocm9tZUNsaWVudElPUyhzZWxmKTsKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCBlYjA4NjY0ODY3NzkxNTY4MWYzYWMzZGM4MDM4
MjRkYTA4OTcxYjBmLi5lOTU3M2QyYjZlOGJhNGE0YWEwMzRmZDAwOTkxOGExNTM4MWQ1NDg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApAQCAtMTI5LDYgKzEyOSw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9Mb2dJbml0aWFsaXphdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTG9n
Z2luZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZW1v
cnlDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5UmVsZWFzZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CkBAIC0zMTE4LDEwICszMTE5LDExIEBA
IEhSRVNVTFQgV2ViVmlldzo6aW5pdFdpdGhGcmFtZShSRUNUIGZyYW1lLCBfSW5fIEJTVFIgZnJh
bWVOYW1lLCBfSW5fIEJTVFIgZ3JvdXBOCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViRWRpdG9y
Q2xpZW50Pih0aGlzKSwKICAgICAgICAgU29ja2V0UHJvdmlkZXI6OmNyZWF0ZSgpLAogICAgICAg
ICBtYWtlVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPigpLAotICAgICAgICBXZWJDb3JlOjpD
YWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlKCksCisgICAgICAgIENhY2hlU3RvcmFnZVByb3Zp
ZGVyOjpjcmVhdGUoKSwKICAgICAgICAgQmFja0ZvcndhcmRMaXN0OjpjcmVhdGUoKSwKICAgICAg
ICAgQ29va2llSmFyOjpjcmVhdGUoc3RvcmFnZVByb3ZpZGVyLmNvcHlSZWYoKSksCi0gICAgICAg
IG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50PigpCisgICAgICAgIG1ha2VV
bmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50PigpLAorICAgICAgICBtYWtlVW5pcXVl
UmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKQogICAgICk7CiAgICAgY29uZmlndXJhdGlvbi5j
aHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50KHRoaXMpOwogICAgIGNvbmZpZ3VyYXRp
b24uY29udGV4dE1lbnVDbGllbnQgPSBuZXcgV2ViQ29udGV4dE1lbnVDbGllbnQodGhpcyk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggMjA4M2IxOWFkZTc5ZDI5YjI3YTljYjRiODhlMjM2MmIxZTZhNzc1Ni4uMjllNWQzNTI4
YWNiNDY0MDE5ZTgzOTc2ZTE0NzkxMjgwZGNiYjMxYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDIwLTAxLTA3ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJ
bXBsZW1lbnQgTWVkaWFSZWNvcmRlciBiYWNrZW5kIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTgwMgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIGh0dHAvd3B0L21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlci1BVi1hdWRpby12aWRlby1kYXRhYXZhaWxhYmxlLmh0bWw6CisgICAg
ICAgIERvIG5vdCB1c2UgR1BVUHJvY2VzcyBmb3IgdGhpcyB0ZXN0IHVudGlsIGNhbnZhcyBidWZm
ZXJzIGFyZSBJT1N1cmZhY2VzLgorCiAyMDIwLTAxLTA2ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9u
b3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6b2Zm
c2V0Rm9yUG9zaXRpb24gcmV0dXJucyBhIHdyb25nIG9mZnNldCBmb3IgYSBnbHlwaCBib3VuZGFy
eSBpbiBhIFJUTCB0ZXh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXItQVYtYXVkaW8tdmlkZW8tZGF0YWF2YWlsYWJsZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC93cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLUFWLWF1ZGlv
LXZpZGVvLWRhdGFhdmFpbGFibGUuaHRtbAppbmRleCAzYzVmNTM5NmZjZWFmYjlhODU4ODIxN2Yy
ZTBiZTA2YjEwNzRmNDBmLi40NGI2YTJmZWUzYmEyNWY3YmJjZWJhZGU5NzQzMGIyMjQ4ODFkZmFj
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9tZWRpYXJlY29yZGVyL01lZGlhUmVj
b3JkZXItQVYtYXVkaW8tdmlkZW8tZGF0YWF2YWlsYWJsZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1BVi1hdWRpby12aWRlby1kYXRh
YXZhaWxhYmxlLmh0bWwKQEAgLTIwLDYgKzIwLDEwIEBACiAgICAgPC9jYW52YXM+CiA8L2Rpdj4K
IDxzY3JpcHQ+CisgICAgLy8gVGhpcyB0ZXN0IGlzIG5vdCBwYXNzaW5nIHdpdGggR1BVUHJvY2Vz
cyBhcyBsb25nIGFzIGNhcHR1cmUgZnJhbWVzIGFyZSBub3QgSU9TdXJmYWNlZCBiYWNrZWQuCisg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0VXNl
R1BVUHJvY2Vzc0ZvcldlYlJUQyhmYWxzZSk7CisKICAgICB2YXIgY29udGV4dDsKICAgICB2YXIg
ZHJhd1N0YXJ0VGltZTsKIApAQCAtMTExLDQgKzExNSw0IEBACiAKIDwvc2NyaXB0PgogPC9ib2R5
PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387091</attachid>
            <date>2020-01-08 03:06:59 -0800</date>
            <delta_ts>2020-01-08 04:45:12 -0800</delta_ts>
            <desc>Build fixes</desc>
            <filename>bug-205802-20200108120656.patch</filename>
            <type>text/plain</type>
            <size>101460</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MTkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2UwMDkwZDYyMWVmODVm
MTViYzg3NTg0MjFhZWQ5ZTI0YzYxYzBhOS4uZGExMzlhZTVkY2Q0ZWE3MDU3YTBhZjJmMGQ4ODY2
YjQwMGYzZmY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTAxLTA4ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgTWVkaWFS
ZWNvcmRlciBiYWNrZW5kIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTgwMgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMg
Q2FybHNvbi4KKworICAgICAgICBBZGQgYSBwYWdlIHByb3ZpZGVyIHRvIGNyZWF0ZSBNZWRpYVJl
Y29yZGVyUHJpdmF0ZSBpbXBsZW1lbnRhdGlvbnMuCisgICAgICAgIFRoaXMgaXMgdXNlZCBieSBX
ZWJLaXQgbGF5ZXIgdG8gaW1wbGVtZW50IHRoaXMgaW4gR1BVUHJvY2Vzcy4KKworICAgICAgICBV
cGRhdGUgTWVkaWFSZWNvcmRlclByaXZhdGUgYnkgYWRkaW5nIGFuIGVycm9yIGNhbGxiYWNrIHRo
YXQgaXMgdXNlZCB0byBzdXJmYWNlIGVycm9ycyBhcyBNZWRpYVJlY29yZGVyIGVycm9yIGV2ZW50
cy4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzIGFzIE1lZGlhUmVjb3JkZXIg
aW1wbGVtZW50YXRpb24gaW4gV2ViS2l0VGVzdFJ1bm5lciB3aWxsIHVzZSBHUFVQcm9jZXNzLgor
CisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6Y3JlYXRlTWVkaWFSZWNv
cmRlclByaXZhdGUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29y
ZGVyLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92
aWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVy
OjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Vz
LnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYWdlQ29u
ZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2U6Om1lZGlhUmVjb3JkZXJQcm92aWRlcik6CisgICAgICAgICog
cGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uZmln
dXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3Vy
YXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW06CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVzZXRU
b0NvbnNpc3RlbnRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldFVzZUdQ
VVByb2Nlc3NGb3JXZWJSVEMpOgorCiAyMDIwLTAxLTA4ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9u
b3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtIYXJmQnV6el1bR1RLXSBmYXN0L3RleHQv
Y29tcGxleC1maXJzdC1nbHlwaC13aXRoLWluaXRpYWwtYWR2YW5jZS5odG1sIGlzIGZhaWxpbmcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYmZjN2VlZDJhODc5ZDViMWVhYmQ0MjhkYjVlNmI4ZDk3MDZmMzkwMC4uM2Vj
ZTIyZmIxZThlOWUxM2Y0ZmE1NDczN2QzYTc3NTMxZjVlNmNkYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw3MCBAQAorMjAyMC0wMS0wOCAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisK
KyAgICAgICAgSW1wbGVtZW50IE1lZGlhUmVjb3JkZXIgYmFja2VuZCBpbiBHUFVQcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU4MDIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQWRkIHN1cHBvcnQg
Zm9yIHNlbmRpbmcgYXVkaW8vdmlkZW8gdHJhY2tzIHRvIHJlY29yZCBmcm9tIFdlYlByb2Nlc3Mg
dG8gR1BVUHJvY2Vzcy4KKyAgICAgICAgQWRkIGEgTWVkaWFSZWNvcmRlclByaXZhdGUgaW1wbGVt
ZW50YXRpb24gdGhhdCBzdXBwb3J0cyBzZW5kaW5nIG9uZSBhdWRpbyB0cmFjayBhbmQvb3Igb25l
IHZpZGVvIHRyYWNrIHRvIEdQVVByb2Nlc3MKKyAgICAgICAgYW5kIHN0b3BwaW5nL2ZldGNoaW5n
IGRhdGEgZnJvbSB0aGUgcmVtb3RlIHJlY29yZGVyIGluIEdQVVByb2Nlc3MuCisKKyAgICAgICAg
SW4gR1BVUHJvY2VzcywgaW1wbGVtZW50IHRoZSByZW1vdGUgcmVjb3JkZXIgdXNpbmcgdGhlIGV4
aXN0aW5nIFdlYkNvcmUgcmVjb3JkZXIgd3JpdGVyLgorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy5tYWtlOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjptZWRpYVJlY29yZGVyTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OkdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBH
UFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVByb2Nlc3Muc2IuaW46CisgICAgICAgICogR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVJlY29yZGVyOjpSZW1vdGVNZWRpYVJlY29yZGVyKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6flJlbW90ZU1lZGlhUmVjb3JkZXIpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyOjpzdG9yYWdlKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFSZWNvcmRlcjo6YXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVyOjp2aWRlb1NhbXBsZUF2YWlsYWJs
ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OmZldGNoRGF0YSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OnN0b3BSZWNvcmRpbmcpOgorICAg
ICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuaDogQWRkZWQuCisg
ICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5tZXNzYWdlcy5p
bjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRl
ck1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRl
ck1hbmFnZXI6OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI6On5SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcik6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOjpkaWRSZWNlaXZl
UmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVJlY29yZGVyTWFuYWdlcjo6Y3JlYXRlUmVjb3JkZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6cmVsZWFzZVJlY29yZGVyKToKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdl
RnJvbVdlYlByb2Nlc3MpOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlh
UmVjb3JkZXJNYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3Vy
Y2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUmVjb3JkZXJQcm92aWRlci5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyOjpjcmVh
dGVNZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9NZWRpYVJlY29yZGVySWRlbnRpZmllci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlKToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6On5NZWRpYVJlY29yZGVyUHJp
dmF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpzYW1wbGVCdWZm
ZXJVcGRhdGVkKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFSZWNvcmRlclByaXZhdGU6OmF1ZGlv
U2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRl
OjpzdG9yYWdlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRl
OjpmZXRjaERhdGEpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c3Rv
cFJlY29yZGluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3Jk
ZXJQcml2YXRlLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRp
YVJlY29yZGVyUHJvdmlkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TWVkaWFSZWNv
cmRlclByb3ZpZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5oOiBBZGRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1f
b3ZlcnJpZGRlbk1lZGlhVHlwZSk6CisKIDIwMjAtMDEtMDcgIFNhaWQgQWJvdS1IYWxsYXdhICA8
c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgY3NzMy1pbWFnZXMg
aW1hZ2Utb3JpZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCAwYjBkYzBj
NWM4YWM3ZjQxYzdiMWJlZTlhZWRmNDY0YjA4MGNlNTdiLi45YTYyNzBhNDgwZDEwMmVlZWExMGMy
MGYyMTNjNGVkOWM1N2E0YTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMjAtMDEtMDggIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgor
CisgICAgICAgIEltcGxlbWVudCBNZWRpYVJlY29yZGVyIGJhY2tlbmQgaW4gR1BVUHJvY2Vzcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1ODAyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogV2ViVmlldy9X
ZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhG
cmFtZU5hbWU6Z3JvdXBOYW1lOl0pOgorICAgICAgICAoLVtXZWJWaWV3IGluaXRTaW1wbGVIVE1M
RG9jdW1lbnRXaXRoU3R5bGU6ZnJhbWU6cHJlZmVyZW5jZXM6Z3JvdXBOYW1lOl0pOgorCiAyMDIw
LTAxLTA3ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAg
ICAgICAgSW1wbGVtZW50IGNzczMtaW1hZ2VzIGltYWdlLW9yaWVudGF0aW9uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9DaGFuZ2VMb2cKaW5kZXggMTgwMjAzNzgzYzYyZGVjOWQyY2E3ZWMyMjJhZmM4MmU3NTQ1
YTU2ZC4uZmIzNzZmNDIyYmY4MDUwNTE0MTBkOWYyODU3ZTA5YjJmOGZhOWM0OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTAxLTA4ICB5b3Vlbm4g
ZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgTWVkaWFSZWNv
cmRlciBiYWNrZW5kIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNTgwMgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2Fy
bHNvbi4KKworICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6aW5pdFdp
dGhGcmFtZSk6CisKIDIwMjAtMDEtMDcgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNTQxMzIuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVh
ZGVycy5jbWFrZQppbmRleCA0NjYxOWM2NWQ2YjNjM2Q4MWZmNGMyZTUwMDUyMTZhYTQ5NjJlYzE0
Li44MTJlZDQ2OWQyMDkwODU1OGNkZDdjZGU4MjgzY2VlODg2YjhlY2MwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UKQEAgLTgwLDYgKzgwLDggQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVB
REVSUwogICAgIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJSZXN1bHREYXRhLmgKICAgICBN
b2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZvLmgKIAorICAgIE1vZHVs
ZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaAorCiAgICAgTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uRXZlbnRzLmgKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb25NZXRhZGF0YS5oCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vV2ViTWVk
aWFTZXNzaW9uTWFuYWdlci5oCkBAIC0xMTU1LDYgKzExNTcsOCBAQCBzZXQoV2ViQ29yZV9QUklW
QVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9U
cmFuc2Zvcm1PcGVyYXRpb25zLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1Ry
YW5zZm9ybWF0aW9uTWF0cml4LmgKIAorICAgIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFS
ZWNvcmRlclByaXZhdGUuaAorCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmlj
ZS5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmljZU1hbmFnZXIuaAogICAg
IHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwCmluZGV4
IDk5MWVhMmEwZjNkMjI0NGRmMWU4ZWUyN2Y3OTA4NmQzZWM0M2Q2ZjAuLmNkMTgyODMwZGRkZDk4
MjBhOGFlZDdhMmQ5ZDU4MGVmNDAzZWRhZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHAKQEAgLTM0LDE0ICszNCwx
MiBAQAogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJNZWRpYVJlY29yZGVyRXJy
b3JFdmVudC5oIgogI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlLmgiCisjaW5jbHVkZSAi
TWVkaWFSZWNvcmRlclByb3ZpZGVyLmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNo
YXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIldpbmRvd0V2ZW50TG9vcC5oIgogI2luY2x1ZGUgPHd0
Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKLSNpZiBQTEFURk9STShDT0NPQSkKLSNpbmNsdWRlICJN
ZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChNZWRpYVJlY29yZGVyKTsKQEAgLTUw
LDExICs0OCwxNCBAQCBjcmVhdG9yRnVuY3Rpb24gTWVkaWFSZWNvcmRlcjo6bV9jdXN0b21DcmVh
dG9yID0gbnVsbHB0cjsKIAogRXhjZXB0aW9uT3I8UmVmPE1lZGlhUmVjb3JkZXI+PiBNZWRpYVJl
Y29yZGVyOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8TWVkaWFTdHJlYW0+JiYgc3Ry
ZWFtLCBPcHRpb25zJiYgb3B0aW9ucykKIHsKLSAgICBhdXRvIHByaXZhdGVJbnN0YW5jZSA9IE1l
ZGlhUmVjb3JkZXI6OmdldFByaXZhdGVJbXBsKHN0cmVhbS0+cHJpdmF0ZVN0cmVhbSgpKTsKKyAg
ICBhdXRvIHByaXZhdGVJbnN0YW5jZSA9IE1lZGlhUmVjb3JkZXI6OmNyZWF0ZU1lZGlhUmVjb3Jk
ZXJQcml2YXRlKGRvY3VtZW50LCBzdHJlYW0tPnByaXZhdGVTdHJlYW0oKSk7CiAgICAgaWYgKCFw
cml2YXRlSW5zdGFuY2UpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRF
cnJvciwgIlRoZSBNZWRpYVJlY29yZGVyIGlzIHVuc3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm0i
X3MgfTsKICAgICBhdXRvIHJlY29yZGVyID0gYWRvcHRSZWYoKm5ldyBNZWRpYVJlY29yZGVyKGRv
Y3VtZW50LCBXVEZNb3ZlKHN0cmVhbSksIFdURk1vdmUocHJpdmF0ZUluc3RhbmNlKSwgV1RGTW92
ZShvcHRpb25zKSkpOwogICAgIHJlY29yZGVyLT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZWNv
cmRlci0+bV9wcml2YXRlLT5zZXRFcnJvckNhbGxiYWNrKFtyZWNvcmRlciA9IHJlY29yZGVyLmNv
cHlSZWYoKV0oYXV0byYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgICAgIHJlY29yZGVyLT5k
aXNwYXRjaEVycm9yKFdURk1vdmUoKmV4Y2VwdGlvbikpOworICAgIH0pOwogICAgIHJldHVybiBy
ZWNvcmRlcjsKIH0KIApAQCAtNjMsMTQgKzY0LDE5IEBAIHZvaWQgTWVkaWFSZWNvcmRlcjo6c2V0
Q3VzdG9tUHJpdmF0ZVJlY29yZGVyQ3JlYXRvcihjcmVhdG9yRnVuY3Rpb24gY3JlYXRvcikKICAg
ICBtX2N1c3RvbUNyZWF0b3IgPSBjcmVhdG9yOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8TWVkaWFS
ZWNvcmRlclByaXZhdGU+IE1lZGlhUmVjb3JkZXI6OmdldFByaXZhdGVJbXBsKGNvbnN0IE1lZGlh
U3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQorc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2
YXRlPiBNZWRpYVJlY29yZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQogewogICAgIGlmICht
X2N1c3RvbUNyZWF0b3IpCiAgICAgICAgIHJldHVybiBtX2N1c3RvbUNyZWF0b3IoKTsKLSAgICAK
KwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHJldHVybiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFW
RkltcGw6OmNyZWF0ZShzdHJlYW0pOworICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCk7
CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBw
YWdlLT5tZWRpYVJlY29yZGVyUHJvdmlkZXIoKS5jcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShz
dHJlYW0pOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZG9jdW1lbnQpOwogICAgIFVOVVNFRF9Q
QVJBTShzdHJlYW0pOwogICAgIHJldHVybiBudWxscHRyOwogI2VuZGlmCkBAIC0xODIsMTEgKzE4
OCwxNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXI6OmRpZEFkZE9yUmVtb3ZlVHJhY2soKQogICAgICAg
ICBpZiAoIW1faXNBY3RpdmUgfHwgc3RhdGUoKSA9PSBSZWNvcmRpbmdTdGF0ZTo6SW5hY3RpdmUp
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHN0b3BSZWNvcmRpbmdJbnRlcm5hbCgpOwot
ICAgICAgICBhdXRvIGV2ZW50ID0gTWVkaWFSZWNvcmRlckVycm9yRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkuZXJyb3JFdmVudCwgRXhjZXB0aW9uIHsgVW5rbm93bkVycm9yLCAiVHJhY2sgY2Fu
bm90IGJlIGFkZGVkIHRvIG9yIHJlbW92ZWQgZnJvbSB0aGUgTWVkaWFTdHJlYW0gd2hpbGUgcmVj
b3JkaW5nIGlzIGhhcHBlbmluZyJfcyB9KTsKLSAgICAgICAgZGlzcGF0Y2hFdmVudChXVEZNb3Zl
KGV2ZW50KSk7CisgICAgICAgIGRpc3BhdGNoRXJyb3IoRXhjZXB0aW9uIHsgVW5rbm93bkVycm9y
LCAiVHJhY2sgY2Fubm90IGJlIGFkZGVkIHRvIG9yIHJlbW92ZWQgZnJvbSB0aGUgTWVkaWFTdHJl
YW0gd2hpbGUgcmVjb3JkaW5nIGlzIGhhcHBlbmluZyJfcyB9KTsKICAgICB9KTsKIH0KIAordm9p
ZCBNZWRpYVJlY29yZGVyOjpkaXNwYXRjaEVycm9yKEV4Y2VwdGlvbiYmIGV4Y2VwdGlvbikKK3sK
KyAgICBpZiAoIW1faXNBY3RpdmUpCisgICAgICAgIHJldHVybjsKKyAgICBkaXNwYXRjaEV2ZW50
KE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQs
IFdURk1vdmUoZXhjZXB0aW9uKSkpOworfQorCiB2b2lkIE1lZGlhUmVjb3JkZXI6OnRyYWNrRW5k
ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQogewogICAgIGF1dG8gcG9zaXRpb24gPSBtX3Ry
YWNrcy5maW5kTWF0Y2hpbmcoW10oYXV0byYgdHJhY2spIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCmluZGV4IGViNmY5NmE2
YWUwYTM5YmExMGI1MjBiYjk4Y2M0ZWUxYjUzOTM3NDQuLmU5MGI5OWI5NTc1NjVjYzAwNjgzM2Q5
NjNhMWY1NTA4OTg3NjA1ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaApAQCAtNzEsMTEgKzcxLDExIEBAIHB1YmxpYzoK
ICAgICAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzdGFydFJlY29yZGluZyhPcHRpb25hbDxpbnQ+
KTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzdG9wUmVjb3JkaW5nKCk7Ci0gICAgCisKIHByaXZh
dGU6CiAgICAgTWVkaWFSZWNvcmRlcihEb2N1bWVudCYsIFJlZjxNZWRpYVN0cmVhbT4mJiwgc3Rk
Ojp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiYmLCBPcHRpb25zJiYgPSB7IH0pOwog
Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gZ2V0UHJp
dmF0ZUltcGwoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJik7CisgICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUo
RG9jdW1lbnQmLCBjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmKTsKICAgICAKICAgICBEb2N1bWVu
dCogZG9jdW1lbnQoKSBjb25zdDsKIApAQCAtOTEsNyArOTEsOSBAQCBwcml2YXRlOgogICAgIGNv
bnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKICAgICAKICAgICB2
b2lkIHN0b3BSZWNvcmRpbmdJbnRlcm5hbCgpOwotICAgIAorCisgICAgdm9pZCBkaXNwYXRjaEVy
cm9yKEV4Y2VwdGlvbiYmKTsKKwogICAgIC8vIE1lZGlhU3RyZWFtOjpPYnNlcnZlcgogICAgIHZv
aWQgZGlkQWRkT3JSZW1vdmVUcmFjaygpIGZpbmFsOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3Zp
ZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mY2IwOTdlZTc1OWZmNWRmYjc2NDk4ZDUwOTBlNGNjY2MwYzlk
NWE2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIu
aCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFBMQVRGT1JNKENPQ09BKQorCisjaW5j
bHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBNZWRpYVJlY29yZGVy
UHJvdmlkZXI6OmNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtUHJp
dmF0ZSYgc3RyZWFtKQoreworICAgIHJldHVybiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6
OmNyZWF0ZShzdHJlYW0pOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjJlMmY0MzZlYzBhZjhhZWY5NzUwODFjYmFiNDA4ZDQ1M2Q0ZWIyNGEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlclByb3ZpZGVyLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhUmVjb3JkZXJQcml2
YXRlOworY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlOworCitjbGFzcyBXRUJDT1JFX0VYUE9SVCBN
ZWRpYVJlY29yZGVyUHJvdmlkZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVi
bGljOgorICAgIE1lZGlhUmVjb3JkZXJQcm92aWRlcigpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFs
IH5NZWRpYVJlY29yZGVyUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CisKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxN
ZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoY29uc3QgTWVk
aWFTdHJlYW1Qcml2YXRlJik7CisjZW5kaWYKKworICAgIHZvaWQgc2V0VXNlR1BVUHJvY2Vzcyhi
b29sIHZhbHVlKSB7IG1fdXNlR1BVUHJvY2VzcyA9IHZhbHVlOyB9CisKK3Byb3RlY3RlZDoKKyAg
ICBib29sIG1fdXNlR1BVUHJvY2VzcyB7IGZhbHNlIH07Cit9OworCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cmlu
ZGV4IDYwYmJiZmQ0NmVlODc5NjhmZDJjMWVmYTVmZjc3YjdlZjBhYzRkNjguLjQxMTIxNTU3YWU2
ZjM1ZGI5YWQ1ZjRjMWU4YWNjY2EwODY2M2U2ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNTEsNiAr
MTUxLDcgQEAgTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcAogCiBN
b2R1bGVzL21lZGlhcmVjb3JkZXIvQmxvYkV2ZW50LmNwcAogTW9kdWxlcy9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXIuY3BwCitNb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclBy
b3ZpZGVyLmNwcAogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJFcnJvckV2ZW50
LmNwcAogCiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9IVE1MTWVkaWFFbGVtZW50TWVkaWFTZXNzaW9u
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGVjNDA4NGQ5ODQ1OGMzNTMyNDI1YmM5ZWVmNzUzN2Y1MDYzNWIzNTAuLjQ1MTRh
ZjZjNTIzOTEwMTE4Nzc5M2JmOWRmZTM4ZWFjYTg2MzRlNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExMDEsNiArMTEwMSw3
IEBACiAJCTQxNzYxMkIwMUUzQTk5NDAwMEMzRDgxRCAvKiBMaWJXZWJSVENNZWRpYUVuZHBvaW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc2MTJB
QzFFM0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oICovOyB9OwogCQk0
MTc2MTJCMTFFM0E5OTQwMDBDM0Q4MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5k
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzYx
MkFEMUUzQTk5M0IwMEMzRDgxRCAvKiBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3Bw
ICovOyB9OwogCQk0MTc2MTJCMjFFM0E5OTQwMDBDM0Q4MUQgLyogTGliV2ViUlRDUGVlckNvbm5l
Y3Rpb25CYWNrZW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MTc2MTJBRTFFM0E5OTNCMDBDM0Q4MUQgLyogTGliV2ViUlRDUGVlckNvbm5lY3Rpb25C
YWNrZW5kLmggKi87IH07CisJCTQxNzZFODk2MjNDMzUzN0IwMDNFODNGRSAvKiBNZWRpYVJlY29y
ZGVyUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxNzZFODhGMjNDMzQ4RDIwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTdEQTZE
OTEzNzM0RTZFMDA3QzU3RkIgLyogSW50ZXJuYWxzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxN0RBNENGMTM3MzQzMjYwMDdDNTdGQiAvKiBJbnRl
cm5hbHMuY3BwICovOyB9OwogCQk0MTdEQTZEQTEzNzM0RTZFMDA3QzU3RkIgLyogSW50ZXJuYWxz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTdEQTRD
RTEzNzM0MzI2MDA3QzU3RkIgLyogSW50ZXJuYWxzLmggKi87IH07CiAJCTQxN0RBNzFEMTM3MzVE
RkEwMDdDNTdGQiAvKiBKU0ludGVybmFscy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MTdEQTcxQjEzNzM1REZBMDA3QzU3RkIgLyogSlNJbnRlcm5h
bHMuY3BwICovOyB9OwpAQCAtMTM3NCw5ICsxMzc1LDkgQEAKIAkJNEJERUEzMkMyMTgwMzNFQjAw
NTJERkNEIC8qIEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEJERUEzMkIyMTgwMzNFQjAwNTJERkNEIC8qIEpT
V29ya2xldEdsb2JhbFNjb3BlQmFzZS5oICovOyB9OwogCQk0RDNCMDBBQjIxNUQ2OUE3MDA3NkI5
ODMgLyogTWVkaWFSZWNvcmRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNEQzQjAwQTkyMTVENjlBNzAwNzZCOTgzIC8qIE1lZGlhUmVjb3JkZXIuaCAq
LzsgfTsKIAkJNEQzQjAwQUYyMTVENkE2OTAwNzZCOTgzIC8qIEJsb2JFdmVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEQzQjAwQUQyMTVENkE2OTAw
NzZCOTgzIC8qIEJsb2JFdmVudC5oICovOyB9OwotCQk0RDNCNTAxNjIxN0U1OEI3MDA2NjVEQjEg
LyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDREM0I1MDE0MjE3RTU4QjcwMDY2NURCMSAvKiBNZWRpYVJlY29yZGVy
UHJpdmF0ZS5oICovOyB9OworCQk0RDNCNTAxNjIxN0U1OEI3MDA2NjVEQjEgLyogTWVkaWFSZWNv
cmRlclByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDREM0I1MDE0MjE3RTU4QjcwMDY2NURCMSAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTRENzNGOTQ2
MjE4QkM1RkEwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRENzNGOTQ0MjE4QkM1RkEw
MDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaCAqLzsgfTsKLQkJNEQ3M0Y5
NEUyMThDNEE4NzAwM0EzRUQ2IC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRENzNGOTRDMjE4
QzRBODcwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmggKi87IH07
CisJCTRENzNGOTRFMjE4QzRBODcwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
ckNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
RDczRjk0QzIxOEM0QTg3MDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2Nv
YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTRE
QjcxMzBEMjE2RUNCNEQwMDk2QTRERCAvKiBNZWRpYVJlY29yZGVyRXJyb3JFdmVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNERCNzEzMEMyMTZFQzJC
RDAwOTZBNEREIC8qIE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmggKi87IH07CiAJCTRFMTk1OTIy
MEEzOURBQkEwMDIyMEZFNSAvKiBNZWRpYUZlYXR1cmVOYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEUxOTU5MjAwQTM5REFCQTAwMjIwRkU1IC8q
IE1lZGlhRmVhdHVyZU5hbWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNEUxOTU5MkEwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRFMTk1OTI0MEEz
OURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTczOTksNiArNzQwMCw4IEBACiAJCTQxNzYxMkFFMUUz
QTk5M0IwMEMzRDgxRCAvKiBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5k
Lmg7IHBhdGggPSBsaWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzY5MDAzMjJGQ0Q4RjIwMEIxNTc2RCAvKiBN
ZWRpYVNvdXJjZVJlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1l
ZGlhU291cmNlUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3Njkw
MDQyMkZDRDhGMjAwQjE1NzZEIC8qIE1lZGlhU291cmNlUmVnaXN0cnkuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFTb3VyY2VSZWdpc3RyeS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODhGMjNDMzQ4RDIwMDNFODNGRSAvKiBNZWRp
YVJlY29yZGVyUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVk
aWFSZWNvcmRlclByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZF
ODkxMjNDMzRCNzUwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDE3N0Y1MUMyMzgyNTQ0MDAwQzA0NDg2IC8qIEJhc2VBdWRpb1NoYXJlZFVu
aXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFzZUF1ZGlvU2hh
cmVkVW5pdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzdGNTFFMjM4MjU0
NUUwMEMwNDQ4NiAvKiBCYXNlQXVkaW9TaGFyZWRVbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEJhc2VBdWRpb1NoYXJlZFVuaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDE3REE0Q0UxMzczNDMyNjAwN0M1N0ZCIC8qIEludGVybmFscy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRlcm5hbHMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE4OTMyLDYgKzE4OTM1LDggQEAKIAkJCQk0REI3MTMwRTIxNkVFQkFFMDA5
NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuY3BwICovLAogCQkJCTREQjcxMzBDMjE2
RUMyQkQwMDk2QTRERCAvKiBNZWRpYVJlY29yZGVyRXJyb3JFdmVudC5oICovLAogCQkJCTREQjcx
MzBBMjE2RUMyQkMwMDk2QTRERCAvKiBNZWRpYVJlY29yZGVyRXJyb3JFdmVudC5pZGwgKi8sCisJ
CQkJNDE3NkU4OTEyM0MzNEI3NTAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAg
Ki8sCisJCQkJNDE3NkU4OEYyM0MzNDhEMjAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92aWRl
ci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBtZWRpYXJlY29yZGVyOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTMxNDc0LDYgKzMxNDc5LDcgQEAKIAkJCQk0RDNCNTAxNjIxN0U1OEI3
MDA2NjVEQjEgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTRE
NzNGOTQ2MjE4QkM1RkEwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaCBp
biBIZWFkZXJzICovLAogCQkJCTRENzNGOTRFMjE4QzRBODcwMDNBM0VENiAvKiBNZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlckNvY29hLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTc2RTg5NjIzQzM1
MzdCMDAzRTgzRkUgLyogTWVkaWFSZWNvcmRlclByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDOTA4NDNEMDFCMThFNDdEMDBCNjg1NjQgLyogTWVkaWFSZW1vdGVDb250cm9scy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQ0Q4QUNBOEYxRDIzOTcxOTAwRUNDNTlFIC8qIE1lZGlhUmVtb3RlU29m
dExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFRUZDRDdBMTlEQjMxRjcwMDM4NzZENyAvKiBN
ZWRpYVJlc291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5jcHAKaW5kZXggODRlNGUxOGMzZjYzOGVlMzNkMjgwMTg0ZGRkOGNhYThhYTBl
NDkyMi4uMTJkNTJiZGM1ZmE3NGQxNDUzNTFmMWFmMDUwMzAzNmZkMjE1ZjQyYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTUzLDYgKzUzLDggQEAKICNpbmNsdWRl
ICJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDbGllbnQuaCIK
ICNpbmNsdWRlICJMaWJXZWJSVENQcm92aWRlci5oIgorI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQ
cml2YXRlLmgiCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAi
TmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBh
Z2VDb25maWd1cmF0aW9uLmgiCkBAIC01NzEsMTAgKzU3MywxOSBAQCBSZWY8U3RvcmFnZU5hbWVz
cGFjZT4gRW1wdHlTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI6OmNyZWF0ZVRyYW5zaWVudExvY2Fs
U3RvcmFnZQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5U3RvcmFnZU5hbWVzcGFjZSB7
IHNlc3Npb25JRCB9KTsKIH0KIAotY2xhc3MgRW1wdHlTdG9yYWdlU2Vzc2lvblByb3ZpZGVyIDog
cHVibGljIFN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIgeworY2xhc3MgRW1wdHlTdG9yYWdlU2Vzc2lv
blByb3ZpZGVyIGZpbmFsIDogcHVibGljIFN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIgewogICAgIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbiogc3RvcmFnZVNlc3Npb24oKSBjb25zdCBmaW5hbCB7IHJldHVy
biBudWxscHRyOyB9CiB9OwogCitjbGFzcyBFbXB0eU1lZGlhUmVjb3JkZXJQcm92aWRlciBmaW5h
bCA6IHB1YmxpYyBNZWRpYVJlY29yZGVyUHJvdmlkZXIgeworcHVibGljOgorICAgIEVtcHR5TWVk
aWFSZWNvcmRlclByb3ZpZGVyKCkgPSBkZWZhdWx0OworcHJpdmF0ZToKKyNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFS
ZWNvcmRlclByaXZhdGU+IGNyZWF0ZU1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IE1lZGlhU3Ry
ZWFtUHJpdmF0ZSYpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KKyNlbmRpZgorfTsKKwogUGFn
ZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJh
dGlvbiB7CkBAIC01ODUsNyArNTk2LDggQEAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3Vy
YXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAgICAg
Q2FjaGVTdG9yYWdlUHJvdmlkZXI6OmNyZWF0ZSgpLAogICAgICAgICBhZG9wdFJlZigqbmV3IEVt
cHR5QmFja0ZvcndhcmRDbGllbnQpLAogICAgICAgICBDb29raWVKYXI6OmNyZWF0ZShhZG9wdFJl
ZigqbmV3IEVtcHR5U3RvcmFnZVNlc3Npb25Qcm92aWRlcikpLAotICAgICAgICBtYWtlVW5pcXVl
UmVmPEVtcHR5UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PigpCisgICAgICAgIG1ha2VVbmlxdWVSZWY8
RW1wdHlQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8RW1w
dHlNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKICAgICB9OwogCiAgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEVtcHR5Q2hyb21lQ2xpZW50PiBkdW1teUNocm9tZUNsaWVudDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCmluZGV4IDYzYzA1MzQzNzk4ZDMxMDJkODAzMmQzNTcxOTNjYzliYTkzNzY2MTkuLjAxMDI3
OWZlZmM0NWY5ODZmMjgwNWJlNzdiZjNjY2RmNzFlNTFkYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApA
QCAtMjQ2LDYgKzI0Niw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29u
ZmlndXJhdGlvbikKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICAsIG1fc3BlZWNo
U3ludGhlc2lzQ2xpZW50KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNoU3ludGhlc2lz
Q2xpZW50KSkKICNlbmRpZgorICAgICwgbV9tZWRpYVJlY29yZGVyUHJvdmlkZXIoKFdURk1vdmUo
cGFnZUNvbmZpZ3VyYXRpb24ubWVkaWFSZWNvcmRlclByb3ZpZGVyKSkpCiAgICAgLCBtX2xpYldl
YlJUQ1Byb3ZpZGVyKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24ubGliV2ViUlRDUHJvdmlkZXIp
KQogICAgICwgbV92ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkoU2Nyb2xsRWxhc3RpY2l0eUFsbG93
ZWQpCiAgICAgLCBtX2hvcml6b250YWxTY3JvbGxFbGFzdGljaXR5KFNjcm9sbEVsYXN0aWNpdHlB
bGxvd2VkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBjNzRmNDI1MzhkNjYzMmM5OTkyMzBmZjI4OTA2NjI2
ZmY1NGM3ZGUzLi4yNzAzNzQ3ODFjMjAzZDY3NWEyMWEwMmE1ZjAzNDIyZDI3MTZiYTgwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaApAQCAtMTEwLDYgKzExMCw3IEBAIGNsYXNzIExpYldlYlJUQ1Byb3ZpZGVyOwog
Y2xhc3MgTG93UG93ZXJNb2RlTm90aWZpZXI7CiBjbGFzcyBNZWRpYUNhblN0YXJ0TGlzdGVuZXI7
CiBjbGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0OworY2xhc3MgTWVkaWFSZWNvcmRlclByb3ZpZGVy
OwogY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb247CiBjbGFzcyBQYWdlQ29uc29sZUNsaWVudDsKIGNs
YXNzIFBhZ2VEZWJ1Z2dhYmxlOwpAQCAtNTg0LDYgKzU4NSw3IEBAIHB1YmxpYzoKICAgICBEYXRh
YmFzZVByb3ZpZGVyJiBkYXRhYmFzZVByb3ZpZGVyKCkgeyByZXR1cm4gbV9kYXRhYmFzZVByb3Zp
ZGVyOyB9CiAgICAgQ2FjaGVTdG9yYWdlUHJvdmlkZXImIGNhY2hlU3RvcmFnZVByb3ZpZGVyKCkg
eyByZXR1cm4gbV9jYWNoZVN0b3JhZ2VQcm92aWRlcjsgfQogICAgIFNvY2tldFByb3ZpZGVyJiBz
b2NrZXRQcm92aWRlcigpIHsgcmV0dXJuIG1fc29ja2V0UHJvdmlkZXI7IH0KKyAgICBNZWRpYVJl
Y29yZGVyUHJvdmlkZXImIG1lZGlhUmVjb3JkZXJQcm92aWRlcigpIHsgcmV0dXJuIG1fbWVkaWFS
ZWNvcmRlclByb3ZpZGVyOyB9CiAgICAgQ29va2llSmFyJiBjb29raWVKYXIoKSB7IHJldHVybiBt
X2Nvb2tpZUphci5nZXQoKTsgfQogCiAgICAgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyJiBzdG9y
YWdlTmFtZXNwYWNlUHJvdmlkZXIoKSB7IHJldHVybiBtX3N0b3JhZ2VOYW1lc3BhY2VQcm92aWRl
ci5nZXQoKTsgfQpAQCAtNzk4LDYgKzgwMCw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVf
cHRyPFNwZWVjaFN5bnRoZXNpc0NsaWVudD4gbV9zcGVlY2hTeW50aGVzaXNDbGllbnQ7CiAjZW5k
aWYKIAorICAgIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+IG1fbWVkaWFSZWNvcmRl
clByb3ZpZGVyOwogICAgIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4gbV9saWJXZWJSVENQ
cm92aWRlcjsKICAgICBSVENDb250cm9sbGVyIG1fcnRjQ29udHJvbGxlcjsKIApAQCAtOTIzLDcg
KzkyNiw2IEBAIHByaXZhdGU6CiAgICAgUmVmPFVzZXJDb250ZW50UHJvdmlkZXI+IG1fdXNlckNv
bnRlbnRQcm92aWRlcjsKICAgICBSZWY8VmlzaXRlZExpbmtTdG9yZT4gbV92aXNpdGVkTGlua1N0
b3JlOwogICAgIFJlZlB0cjxXaGVlbEV2ZW50VGVzdE1vbml0b3I+IG1fd2hlZWxFdmVudFRlc3RN
b25pdG9yOwotCiAgICAgSGFzaFNldDxBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIqPiBtX2Fj
dGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlcnM7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfVVNBR0Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGVmODc3YTU1
ODgyMWU0NDY3ZjQ1Y2EzYzA1MjFjYWYyMmQ5MDdkZGUuLjMzOGY0ZTdjMTkxMjFhZjE3OTQyZDAx
NzI0Y2UyOTExM2M1ZDNmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNv
bmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRp
b24uY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiRHJhZ0NsaWVudC5oIgogI2luY2x1
ZGUgIkVkaXRvckNsaWVudC5oIgogI2luY2x1ZGUgIkxpYldlYlJUQ1Byb3ZpZGVyLmgiCisjaW5j
bHVkZSAiTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiUGVyZm9ybWFuY2VMb2dn
aW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAiUGx1Z0luQ2xpZW50LmgiCiAjaW5jbHVkZSAiUGx1Z2lu
SW5mb1Byb3ZpZGVyLmgiCkBAIC01NSw3ICs1Niw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2Nr
ZXRQcm92aWRlcj4mJiBzb2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVy
PiYmIGxpYldlYlJUQ1Byb3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVT
dG9yYWdlUHJvdmlkZXIsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVu
dCwgUmVmPENvb2tpZUphcj4mJiBjb29raWVKYXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJD
bGllbnQ+JiYgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50KQorUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VD
b25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNs
aWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiBzb2NrZXRQcm92aWRl
ciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmIGxpYldlYlJUQ1Byb3ZpZGVyLCBSZWY8
Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9yYWdlUHJvdmlkZXIsIFJlZjxCYWNrRm9y
d2FyZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVudCwgUmVmPENvb2tpZUphcj4mJiBjb29raWVK
YXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYgcHJvZ3Jlc3NUcmFja2VyQ2xp
ZW50LCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYmIG1lZGlhUmVjb3JkZXJQcm92
aWRlcikKICAgICA6IHNlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBlZGl0b3JDbGllbnQoV1RG
TW92ZShlZGl0b3JDbGllbnQpKQogICAgICwgc29ja2V0UHJvdmlkZXIoV1RGTW92ZShzb2NrZXRQ
cm92aWRlcikpCkBAIC02NCw2ICs2NSw3IEBAIFBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmln
dXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDCiAgICAg
LCBiYWNrRm9yd2FyZENsaWVudChXVEZNb3ZlKGJhY2tGb3J3YXJkQ2xpZW50KSkKICAgICAsIGNv
b2tpZUphcihXVEZNb3ZlKGNvb2tpZUphcikpCiAgICAgLCBjYWNoZVN0b3JhZ2VQcm92aWRlcihX
VEZNb3ZlKGNhY2hlU3RvcmFnZVByb3ZpZGVyKSkKKyAgICAsIG1lZGlhUmVjb3JkZXJQcm92aWRl
cihXVEZNb3ZlKG1lZGlhUmVjb3JkZXJQcm92aWRlcikpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZUNvbmZpZ3VyYXRpb24uaAppbmRleCAxOTFhMDJiNjE1ZjQwYTk4MGM0MjFmN2ZiZjNm
MzE2ZDJiMTY0ZmVmLi4zYThlZDMzNDQwYzJjMTg4NTI4MzE4OTE4YTc1MjJiOTIxN2Y0NzZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCkBAIC01Miw2ICs1Miw3IEBA
IGNsYXNzIEVkaXRvckNsaWVudDsKIGNsYXNzIEZyYW1lTG9hZGVyQ2xpZW50OwogY2xhc3MgSW5z
cGVjdG9yQ2xpZW50OwogY2xhc3MgTGliV2ViUlRDUHJvdmlkZXI7CitjbGFzcyBNZWRpYVJlY29y
ZGVyUHJvdmlkZXI7CiBjbGFzcyBQYXltZW50Q29vcmRpbmF0b3JDbGllbnQ7CiBjbGFzcyBQZXJm
b3JtYW5jZUxvZ2dpbmdDbGllbnQ7CiBjbGFzcyBQbHVnSW5DbGllbnQ7CkBAIC02OCw3ICs2OSw3
IEBAIGNsYXNzIFNwZWVjaFN5bnRoZXNpc0NsaWVudDsKIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9u
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlQ29uZmlndXJhdGlvbik7IFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2VDb25maWd1
cmF0aW9uKFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmLCBSZWY8U29j
a2V0UHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiwgUmVmPENhY2hl
U3RvcmFnZVByb3ZpZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYsIFJlZjxDb29raWVK
YXI+JiYsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYpOworICAgIFdFQkNPUkVf
RVhQT1JUIFBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9y
Q2xpZW50PiYmLCBSZWY8U29ja2V0UHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92
aWRlcj4mJiwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGll
bnQ+JiYsIFJlZjxDb29raWVKYXI+JiYsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+
JiYsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIH5QYWdlQ29uZmlndXJhdGlvbigpOwogICAgIFBhZ2VDb25maWd1cmF0aW9uKFBhZ2VDb25m
aWd1cmF0aW9uJiYpOwogCkBAIC0xMjMsNiArMTI0LDcgQEAgcHVibGljOgogICAgIFJlZlB0cjxE
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyPiBkZXZpY2VPcmllbnRhdGlvblVwZGF0ZVBy
b3ZpZGVyOwogI2VuZGlmCiAgICAgVmVjdG9yPFN0cmluZz4gY29yc0Rpc2FibGluZ1BhdHRlcm5z
OworICAgIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+IG1lZGlhUmVjb3JkZXJQcm92
aWRlcjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaAppbmRleCAxMGU5MWYzNzIxOTdl
NzI2MjdmMjY1NmJkZjJiNzQ5NmViOTNkOGE1Li5hZDUxODA3OWU4OTNiOWE0MDZmNjAxYzg4MDY0
MTVkYTlhNGMwMGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCkBAIC0yNiw2ICsyNiw3IEBA
CiAKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgorI2luY2x1ZGUgIkV4Y2VwdGlvbi5oIgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKIApAQCAtNDMsMTIgKzQ0LDE5IEBAIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIAogY2xhc3MgTWVk
aWFSZWNvcmRlclByaXZhdGUgewogcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCBzYW1wbGVCdWZm
ZXJVcGRhdGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgTWVkaWFTYW1wbGUmKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZSYsIGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBj
b25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSA9IDA7CisgICAgdmlydHVhbCB+
TWVkaWFSZWNvcmRlclByaXZhdGUoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2Ft
cGxlQnVmZmVyVXBkYXRlZChjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2Ft
cGxlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3Qg
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBs
YXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkg
PSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFJlZlB0cjxTaGFyZWRCdWZmZXI+JiYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpPiYmKSA9IDA7
Ci0gICAgdmlydHVhbCB+TWVkaWFSZWNvcmRlclByaXZhdGUoKSA9IGRlZmF1bHQ7Ci0gICAgdmly
dHVhbCB2b2lkIHN0b3BSZWNvcmRpbmcoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFJlY29y
ZGluZygpIHsgfTsKKworICAgIHVzaW5nIEVycm9yQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKE9w
dGlvbmFsPEV4Y2VwdGlvbj4mJik+OworICAgIHZvaWQgc2V0RXJyb3JDYWxsYmFjayhFcnJvckNh
bGxiYWNrJiYgZXJyb3JDYWxsYmFjaykgeyBtX2Vycm9yQ2FsbGJhY2sgPSBXVEZNb3ZlKGVycm9y
Q2FsbGJhY2spOyB9CisKK3Byb3RlY3RlZDoKKyAgICBFcnJvckNhbGxiYWNrIG1fZXJyb3JDYWxs
YmFjazsKIH07CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZG
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVj
b3JkZXJQcml2YXRlQVZGSW1wbC5jcHAKaW5kZXggOTE4MzA0NjYwNjY2ZmNlZjU1OWUzYTczZDZm
YzRkNWI1NjVlOWU0ZC4uNzNmMWQwYTE1MTlmMmMwM2I5MWQ2OTUxMDUxMzVhNGYyMGQxZGE2NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJl
Y29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcApAQCAtODIsMTQgKzgy
LDE0IEBAIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6TWVkaWFSZWNvcmRlclByaXZhdGVB
VkZJbXBsKFJlZjxNZWRpYVJlY29yZGVyUHJpdmF0CiB7CiB9CiAKLXZvaWQgTWVkaWFSZWNvcmRl
clByaXZhdGVBVkZJbXBsOjpzYW1wbGVCdWZmZXJVcGRhdGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlJiB0cmFjaywgTWVkaWFTYW1wbGUmIHNhbXBsZUJ1ZmZlcikKK3ZvaWQgTWVkaWFSZWNvcmRl
clByaXZhdGVBVkZJbXBsOjpzYW1wbGVCdWZmZXJVcGRhdGVkKGNvbnN0IE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlJiB0cmFjaywgTWVkaWFTYW1wbGUmIHNhbXBsZUJ1ZmZlcikKIHsKICAgICBpZiAo
dHJhY2suaWQoKSAhPSBtX3JlY29yZGVkVmlkZW9UcmFja0lEKQogICAgICAgICByZXR1cm47CiAg
ICAgbV93cml0ZXItPmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKHNhbXBsZUJ1ZmZlci5wbGF0Zm9y
bVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7CiB9CiAKLXZvaWQgTWVkaWFSZWNvcmRl
clByaXZhdGVBVkZJbXBsOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUmIHRyYWNrLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYgbWVkaWFUaW1lLCBjb25zdCBQbGF0
Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3Jp
cHRpb24sIHNpemVfdCBzYW1wbGVDb3VudCkKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJ
bXBsOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUm
IHRyYWNrLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYgbWVkaWFUaW1lLCBjb25zdCBQbGF0Zm9ybUF1
ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24s
IHNpemVfdCBzYW1wbGVDb3VudCkKIHsKICAgICBpZiAodHJhY2suaWQoKSAhPSBtX3JlY29yZGVk
QXVkaW9UcmFja0lEKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0
ZUFWRkltcGwuaAppbmRleCA1ZWMwYmVlN2I5NzcyMDlkZDhhNGYxOWRmMDk5YzE4MDM3MWUwYjc5
Li4wY2YwZGYzYzY0Y2M5NzEzZTMwNTliZTM2Y2FjYzlmYzdjY2MwYjM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRl
QVZGSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmgKQEAgLTQzLDggKzQzLDggQEAgcHJpdmF0ZToKIAog
ICAgIGZyaWVuZCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsPiBz
dGQ6Om1ha2VfdW5pcXVlPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4oUmVmPE1lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyPiYmLCBTdHJpbmcmJiwgU3RyaW5nJiYpOwogCi0gICAgdm9pZCBz
YW1wbGVCdWZmZXJVcGRhdGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgTWVkaWFTYW1wbGUm
KSBmaW5hbDsKLSAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYsIGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEm
LCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKKyAgICB2b2lk
IHNhbXBsZUJ1ZmZlclVwZGF0ZWQoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBNZWRp
YVNhbXBsZSYpIGZpbmFsOworICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0
Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZp
bmFsOwogICAgIHZvaWQgZmV0Y2hEYXRhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4mJiwgY29uc3QgU3RyaW5nJik+JiYpIGZpbmFsOwogICAgIGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUoKTsKICAgICB2b2lkIHN0b3BSZWNvcmRpbmcoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVN
b2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNv
cmRlclByaXZhdGVNb2NrLmNwcAppbmRleCBjODE2ZTFhYzEzMzUwZGI2ZDYwN2VjMWQwODUwMDQw
ZTM1N2I0NjFlLi5mMmFjOGMyN2NiNDVjOTdjMmRjMDNiOGZlNGE3MzY5MTdkNGJjZjg3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3Jk
ZXJQcml2YXRlTW9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNv
cmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suY3BwCkBAIC0zMywxNyArMzMsMTcgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6c2Ft
cGxlQnVmZmVyVXBkYXRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2ssIE1lZGlhU2Ft
cGxlJikKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjpzYW1wbGVCdWZmZXJVcGRhdGVk
KGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaywgTWVkaWFTYW1wbGUmKQogewog
ICAgIGdlbmVyYXRlTW9ja1N0cmluZyh0cmFjayk7CiB9CiAKLXZvaWQgTWVkaWFSZWNvcmRlclBy
aXZhdGVNb2NrOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUm
IHRyYWNrLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwg
Y29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkKK3ZvaWQgTWVkaWFSZWNvcmRl
clByaXZhdGVNb2NrOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUmIHRyYWNrLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVk
aW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkKIHsKICAgICBn
ZW5lcmF0ZU1vY2tTdHJpbmcodHJhY2spOwogfQogCi12b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRl
TW9jazo6Z2VuZXJhdGVNb2NrU3RyaW5nKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaykK
K3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjpnZW5lcmF0ZU1vY2tTdHJpbmcoY29uc3Qg
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKQogewogICAgIGF1dG8gbG9ja2VyID0gaG9s
ZExvY2sobV9idWZmZXJMb2NrKTsKICAgICBpZiAodHJhY2sudHlwZSgpID09IFJlYWx0aW1lTWVk
aWFTb3VyY2U6OlR5cGU6OkF1ZGlvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmgKaW5k
ZXggMDM1NzExZTU1YmY3ZTkxZjM5NzczZjc4ODgxOGQ4YjQzZGUyNTllZS4uNGRhZWQ2NzMxZGVh
NTNlOTc1NjYxYTQ0YTEyNzBmZjE4ZGUyZDg0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRl
TW9jay5oCkBAIC0zNiwxMiArMzYsMTIgQEAgY2xhc3MgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU7
CiAKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jayBmaW5hbCA6
IHB1YmxpYyBNZWRpYVJlY29yZGVyUHJpdmF0ZSB7CiBwcml2YXRlOgotICAgIHZvaWQgc2FtcGxl
QnVmZmVyVXBkYXRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJikgZmlu
YWw7Ci0gICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29u
c3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgZmluYWw7CisgICAgdm9pZCBzYW1w
bGVCdWZmZXJVcGRhdGVkKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgTWVkaWFTYW1w
bGUmKSBmaW5hbDsKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYsIGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1B
dWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsK
ICAgICB2b2lkIGZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxTaGFyZWRC
dWZmZXI+JiYsIGNvbnN0IFN0cmluZyYpPiYmKSBmaW5hbDsKICAgICBjb25zdCBTdHJpbmcmIG1p
bWVUeXBlKCk7CiAgICAgCi0gICAgdm9pZCBnZW5lcmF0ZU1vY2tTdHJpbmcoTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmKTsKKyAgICB2b2lkIGdlbmVyYXRlTW9ja1N0cmluZyhjb25zdCBNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYpOwogCiAgICAgbXV0YWJsZSBMb2NrIG1fYnVmZmVyTG9jazsKICAg
ICBTdHJpbmdCdWlsZGVyIG1fYnVmZmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29h
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAppbmRleCBmZmY0NWQ2MzkzOGRiMzM4YjQ3MjRiN2E3
NDZjZTM3MjRmYTFkM2FiLi41MTk3OGJiNmQ4ZDFhMWIwZTVjMWM3YTAxNTEyMjJiZDhiZGZiMmE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29h
L01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29j
b2EuaApAQCAtNDksOSArNDksMTAgQEAgY2xhc3MgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKIGNs
YXNzIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOwogY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CiAK
LWNsYXNzIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIDogcHVibGljIFRocmVhZFNhZmVSZWZD
b3VudGVkPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFk
OjpNYWluPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
PiB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciA6IHB1
YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciwgV1RG
OjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlcj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8TWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXI+IGNyZWF0ZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZSogYXVkaW9UcmFjaywgY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIHZpZGVvVHJhY2sp
OworICAgIHN0YXRpYyBSZWZQdHI8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IGNyZWF0ZShi
b29sIGhhc0F1ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOwogICAgIH5NZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlcigpOwogICAgIAogICAgIGJvb2wgc2V0dXBXcml0ZXIoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
cmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQppbmRleCA5
MmZlMmE0NTBlNTkzZjI0YTk2OGZhZWYwYTZiOTZmOTVhZGUzNTEzLi4wNjljODg3NGYwMDllMDk2
YzI0OWEwNzgwMTkwZGQ4MDQ4YzZiOWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRp
YVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCkBAIC05MCw2ICs5MCwxNyBAQCBzdGF0aWMg
TlNTdHJpbmcgKmdldEFWRW5jb2RlckJpdFJhdGVLZXlXaXRoRmFsbGJhY2soKQogfQogCiBSZWZQ
dHI8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
OjpjcmVhdGUoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIGF1ZGlvVHJhY2ssIGNvbnN0
IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiB2aWRlb1RyYWNrKQoreworICAgIGludCB3aWR0aCA9
IDAsIGhlaWdodCA9IDA7CisgICAgaWYgKHZpZGVvVHJhY2spIHsKKyAgICAgICAgYXV0byYgc2V0
dGluZ3MgPSB2aWRlb1RyYWNrLT5zZXR0aW5ncygpOworICAgICAgICB3aWR0aCA9IHNldHRpbmdz
LndpZHRoKCk7CisgICAgICAgIGhlaWdodCA9IHNldHRpbmdzLmhlaWdodCgpOworICAgIH0KKyAg
ICByZXR1cm4gY3JlYXRlKCEhYXVkaW9UcmFjaywgd2lkdGgsIGhlaWdodCk7Cit9CisKK1JlZlB0
cjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6
OmNyZWF0ZShib29sIGhhc0F1ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCiB7CiAgICAgTlNT
dHJpbmcgKmRpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShA
InZpZGVvcyIpOwogICAgIE5TU3RyaW5nICpmaWxlbmFtZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRo
Rm9ybWF0OkAiLyVsbGQubXA0IiwgQ01DbG9ja0dldFRpbWUoQ01DbG9ja0dldEhvc3RUaW1lQ2xv
Y2soKSkudmFsdWVdOwpAQCAtMTA2LDEyICsxMTcsMTEgQEAgUmVmUHRyPE1lZGlhUmVjb3JkZXJQ
cml2YXRlV3JpdGVyPiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y3JlYXRlKGNvbnN0IE1l
ZGkKIAogICAgIGF1dG8gd3JpdGVyID0gYWRvcHRSZWYoKm5ldyBNZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlcihXVEZNb3ZlKGF2QXNzZXRXcml0ZXIpLCBXVEZNb3ZlKGZpbGVQYXRoKSkpOwogCi0g
ICAgaWYgKGF1ZGlvVHJhY2sgJiYgIXdyaXRlci0+c2V0QXVkaW9JbnB1dCgpKQorICAgIGlmICho
YXNBdWRpbyAmJiAhd3JpdGVyLT5zZXRBdWRpb0lucHV0KCkpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCi0gICAgaWYgKHZpZGVvVHJhY2spIHsKLSAgICAgICAgYXV0byYgc2V0dGluZ3MgPSB2
aWRlb1RyYWNrLT5zZXR0aW5ncygpOwotICAgICAgICBpZiAoIXdyaXRlci0+c2V0VmlkZW9JbnB1
dChzZXR0aW5ncy53aWR0aCgpLCBzZXR0aW5ncy5oZWlnaHQoKSkpCisgICAgaWYgKHdpZHRoICYm
IGhlaWdodCkgeworICAgICAgICBpZiAoIXdyaXRlci0+c2V0VmlkZW9JbnB1dCh3aWR0aCwgaGVp
Z2h0KSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUu
aAppbmRleCA0YTA2ODQ0MzhjZTY2NWQ3Y2QwNGRhMTBlYTExYTViYzJiNmYyOWY1Li5kZTQ0ZDg4
ZWY1YjljMzgxNDA0NGUwNWY3YzI4YmVlMThhNzJlZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaApAQCAt
ODEsNyArODEsNyBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgaWQoKSBjb25zdCB7IHJldHVybiBt
X2lkOyB9CiAKLSAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciB0cmFja3MoKSBjb25z
dDsKKyAgICBXRUJDT1JFX0VYUE9SVCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciB0cmFj
a3MoKSBjb25zdDsKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogYWN0aXZlVmlkZW9UcmFj
aygpIHsgcmV0dXJuIG1fYWN0aXZlVmlkZW9UcmFjazsgfQogCiAgICAgYm9vbCBhY3RpdmUoKSBj
b25zdCB7IHJldHVybiBtX2lzQWN0aXZlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAppbmRl
eCAzOTFhNjUzZjQ4ZTNlN2UzMmE0ODJjNzc5N2M3ZGM3NzEzMTUwMjViLi4wMDcxNmZkMGE0NTYx
NGRlNmNkOGFiYWRlMDU5MGYyYmYxMGMwMjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgK
QEAgLTEwMCw3ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlPiBjbG9uZSgpOwogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKCkgeyByZXR1
cm4gbV9zb3VyY2UuZ2V0KCk7IH0KLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUo
KSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5
cGUoKSBjb25zdDsKIAogICAgIHZvaWQgZW5kVHJhY2soKTsKIApAQCAtMTEwLDcgKzExMCw3IEBA
IHB1YmxpYzoKICAgICBib29sIGhhc09ic2VydmVyKE9ic2VydmVyJikgY29uc3Q7CiAjZW5kaWYK
IAotICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25z
dDsKKyAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mm
IHNldHRpbmdzKCkgY29uc3Q7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllcyYgY2FwYWJpbGl0aWVzKCkgY29uc3Q7CiAKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMo
Y29uc3QgTWVkaWFDb25zdHJhaW50cyYsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5Q29uc3Ry
YWludHNIYW5kbGVyJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDU3
MzVmNjI1NDhkYTZiMDI3NGIyMzIzMzljNGJmYWNhYzg0MjE0ZWIuLjczYTIzNWRlMzE1OWJhOGQz
NjMwMTE5NGFlNTMwYmVjZTZkYmE4YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKQEAgLTEyMiw2ICsxMjIsNyBAQAogI2luY2x1ZGUgIk1lZGlhRW5naW5lQ29uZmlndXJhdGlv
bkZhY3RvcnkuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk1lZGlhUHJv
ZHVjZXIuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCIKICNpbmNsdWRlICJN
ZWRpYVJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFjay5oIgogI2lu
Y2x1ZGUgIk1lbW9yeUNhY2hlLmgiCkBAIC01NTAsNiArNTUxLDggQEAgdm9pZCBJbnRlcm5hbHM6
OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoUGFnZSYgcGFnZSkKIAogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRJ
bnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxpdHlDaGFuZ2VFbmFibGVkKGZhbHNlKTsKKyAgICBX
ZWJDb3JlOjpNZWRpYVJlY29yZGVyOjpzZXRDdXN0b21Qcml2YXRlUmVjb3JkZXJDcmVhdG9yKG51
bGxwdHIpOworICAgIHBhZ2UubWVkaWFSZWNvcmRlclByb3ZpZGVyKCkuc2V0VXNlR1BVUHJvY2Vz
cyh0cnVlKTsKICNlbmRpZgogCiAgICAgSFRNTENhbnZhc0VsZW1lbnQ6OnNldE1heFBpeGVsTWVt
b3J5Rm9yVGVzdGluZygwKTsgLy8gVGhpcyBtZWFucyB1c2UgdGhlIGRlZmF1bHQgdmFsdWUuCkBA
IC0xNTU5LDcgKzE1NjIsOSBAQCB2b2lkIEludGVybmFsczo6c2V0VXNlR1BVUHJvY2Vzc0Zvcldl
YlJUQyhib29sIHVzZUdQVVByb2Nlc3MpCiAgICAgYXV0byogZG9jdW1lbnQgPSBjb250ZXh0RG9j
dW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKQogICAgICAg
ICByZXR1cm47CisKICAgICBkb2N1bWVudC0+cGFnZSgpLT5saWJXZWJSVENQcm92aWRlcigpLnNl
dFVzZUdQVVByb2Nlc3ModXNlR1BVUHJvY2Vzcyk7CisgICAgZG9jdW1lbnQtPnBhZ2UoKS0+bWVk
aWFSZWNvcmRlclByb3ZpZGVyKCkuc2V0VXNlR1BVUHJvY2Vzcyh1c2VHUFVQcm9jZXNzKTsKICNl
bmRpZgogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCBmZjUyZDI1MzZmNTY1ZmEyOTVi
ZWI2MjAxMjY4YTBmMzMzMTcwZmYzLi41MzI2NzhmMzc2MDMzYzNjMDBmOWY2YmQ1YTMwYzM4Njkw
ZTMzNGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTc4LDYgKzc4LDggQEAgc2V0KFdlYktpdF9J
TkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9HYW1lcGFk
IgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24iCiAgICAgIiR7V0VC
S0lUX0RJUn0vV2ViUHJvY2Vzcy9HUFUiCisgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9H
UFUvbWVkaWEiCisgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9HUFUvd2VicnRjIgogICAg
ICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlIgogICAgICIke1dFQktJVF9E
SVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3QKaW5kZXggNzk5NGUzY2E3Nzc2MzI5ZDZmNzVkN2FhZjBjOTNmZDlh
YTA1OWUxMC4uZWRmYjZlMWUwNWU1NjQwMDhiN2Q1N2E4NzQ1Mzc4YzQzZDY2Y2Y5NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBi
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTksNiAr
MTksOCBAQCAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQ
VVByb2Nlc3Muc2IuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVD
VF9ESVIpL0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1lc3NhZ2VzLmlu
CiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1l
c3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJl
Y29yZGVyTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3Mv
Q29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3
b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1l
c3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURC
U2VydmVyLm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdAppbmRleCAwY2QyM2UwMWJiYWNkMmVjNGEwYmRjM2JkZmYyYmUwZDdiNjBi
MDFiLi5kZmJjMGVmZTZiODQ3MjZmOTZjODk4MjhjZDgzZDBlZDc1OTA1YTA2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEyOSw2ICsx
MjksMTMgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXNSZXAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlh
UmVjb3JkZXJNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXJNZXNzYWdlc1JlcGxpZXMu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVk
aWFSZWNvcmRlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlcy5oCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlY29yZGVy
TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZU1lZGlhUmVjb3JkZXJzTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXgg
OWQzZTJhOTBjN2I0ZDkwYTQyNmM3NmE0ZTA1ZTZiMmY4MWNjMGU5ZS4uZTI5MDkzMDk3Y2Q5YmRl
YjM0NWExOWE1ZDM3ZmU1N2E1NDBkZWI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpA
QCAtMTQzLDYgKzE0Myw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHkgXAogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciBcCiAg
ICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkgXAorICAgIFJlbW90ZU1lZGlhUmVjb3Jk
ZXIgXAorICAgIFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyIFwKICAgICBSZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlciBcCiAgICAgUmVtb3RlT2JqZWN0UmVnaXN0cnkgXAogICAgIFJlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA1MmE5NWNlMGRlZDcwM2Q2MWQz
NGE5ZDE3ZjBjOGI0MmU2NjRmZGRhLi42MjBiNDFmMjhkNjY3NmEzZGUxN2Y0NzZiMmRmMzg4ZmZm
NjQ3NzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0zOSw2ICszOSw5IEBACiAjaW5jbHVkZSAiUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIu
aCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5j
bHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXIuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2Fj
dGlvbi5oIgpAQCAtMTM3LDYgKzE0MCwxNCBAQCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
JiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp1c2VyTWVkaWFDYXB0dXJlTWFuYWdlcgogCiAg
ICAgcmV0dXJuICptX3VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7CiB9CisKK1JlbW90ZU1l
ZGlhUmVjb3JkZXJNYW5hZ2VyJiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjptZWRpYVJlY29y
ZGVyTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3JlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyKQor
ICAgICAgICBtX3JlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyID0gbWFrZVVuaXF1ZTxSZW1vdGVN
ZWRpYVJlY29yZGVyTWFuYWdlcj4oKnRoaXMpOworCisgICAgcmV0dXJuICptX3JlbW90ZU1lZGlh
UmVjb3JkZXJNYW5hZ2VyOworfQogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNF
KExJQldFQlJUQykKQEAgLTE2Myw2ICsxNzQsMTQgQEAgdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIEkK
ICAgICAgICAgdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpLmRpZFJlY2VpdmVNZXNzYWdl
RnJvbUdQVVByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpS
ZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAg
ICAgIG1lZGlhUmVjb3JkZXJNYW5hZ2VyKCkuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vz
cyhjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAo
ZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVj
b3JkZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBtZWRpYVJlY29yZGVyTWFu
YWdlcigpLmRpZFJlY2VpdmVSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZShjb25uZWN0aW9uLCBk
ZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICNlbmRpZgogI2lmIFBMQVRGT1JNKENP
Q09BKSAmJiBVU0UoTElCV0VCUlRDKQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5h
bWUoKSA9PSBNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmgKaW5kZXggYWM3MTI1ZDczOGQ4Njg4OGVlYThiNGE5MjUxNWY5ZGU0ZDFm
NmIwNC4uZjQ4NTk2NGQ0NmM1MmUzMzhkMmFiZTRmNzY1ZGRjYjVhOTRhMDc5MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
CkBAIC00MSw4ICs0MSw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgR1BVUHJvY2VzczsK
IGNsYXNzIExpYldlYlJUQ0NvZGVjc1Byb3h5OwogY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHk7Ci1jbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OworY2xhc3MgUmVt
b3RlTWVkaWFSZWNvcmRlck1hbmFnZXI7CiBjbGFzcyBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
cjsKK2NsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7CiAKIGNsYXNzIEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MKICAgICA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3M+CkBAIC03MSw2ICs3Miw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICNpZiBQTEFU
Rk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5JiB1c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCk7CisgICAgUmVtb3Rl
TWVkaWFSZWNvcmRlck1hbmFnZXImIG1lZGlhUmVjb3JkZXJNYW5hZ2VyKCk7CiAjZW5kaWYKIAog
ICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CkBAIC04OSw2ICs5MSw3IEBAIHByaXZhdGU6
CiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAjaWYgUExBVEZPUk0oQ09DT0EpICYm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgc3RkOjp1bmlxdWVfcHRyPFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk+IG1fdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI+IG1fcmVtb3RlTWVkaWFSZWNv
cmRlck1hbmFnZXI7CiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJU
QykKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDQ29kZWNzUHJveHk+IG1fbGliV2ViUlRD
Q29kZWNzUHJveHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRj
L1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjI0ZGRiZjI3OWZiMjY1OTQ2
YWExMjFjYjA3MjJiNjJiOGM2YWY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcApAQCAtMCwwICsxLDEzOSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRp
YVJlY29yZGVyLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNT
KSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0
b3JhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVtb3Rl
VmlkZW9TYW1wbGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgor
I2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorCit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRp
YVJlY29yZGVyPiBSZW1vdGVNZWRpYVJlY29yZGVyOjpjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyYgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgTWVkaWFSZWNvcmRlcklkZW50aWZp
ZXIgaWRlbnRpZmllciwgYm9vbCByZWNvcmRBdWRpbywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQor
eworICAgIGF1dG8gd3JpdGVyID0gTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNyZWF0ZShy
ZWNvcmRBdWRpbywgd2lkdGgsIGhlaWdodCk7CisgICAgaWYgKCF3cml0ZXIpCisgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFSZWNv
cmRlcj4obmV3IFJlbW90ZU1lZGlhUmVjb3JkZXIgeyBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LCBpZGVudGlmaWVyLCB3cml0ZXIucmVsZWFzZU5vbk51bGwoKSwgcmVjb3JkQXVkaW8gfSk7Cit9
CisKK1JlbW90ZU1lZGlhUmVjb3JkZXI6OlJlbW90ZU1lZGlhUmVjb3JkZXIoR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgTWVkaWFSZWNvcmRlcklk
ZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiYmIHdy
aXRlciwgYm9vbCByZWNvcmRBdWRpbykKKyAgICA6IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vz
cyhncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZp
ZXIpCisgICAgLCBtX3dyaXRlcihXVEZNb3ZlKHdyaXRlcikpCit7CisgICAgaWYgKHJlY29yZEF1
ZGlvKQorICAgICAgICBtX3JpbmdCdWZmZXIgPSBtYWtlVW5pcXVlPENBUmluZ0J1ZmZlcj4obWFr
ZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4obnVsbHB0cikpOworfQorCitSZW1v
dGVNZWRpYVJlY29yZGVyOjp+UmVtb3RlTWVkaWFSZWNvcmRlcigpCit7Cit9CisKK1NoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlJiBSZW1vdGVNZWRpYVJlY29yZGVyOjpzdG9yYWdlKCkKK3sKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXIt
PnN0b3JhZ2UoKSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZWNvcmRlcjo6YXVkaW9TYW1wbGVz
U3RvcmFnZUNoYW5nZWQoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhhbmRsZSwgY29uc3Qg
V2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgdWludDY0X3Qg
bnVtYmVyT2ZGcmFtZXMpCit7CisgICAgQVNTRVJUKG1fcmluZ0J1ZmZlcik7CisgICAgaWYgKCFt
X3JpbmdCdWZmZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZGVzY3JpcHRpb24gPSBkZXNj
cmlwdGlvbjsKKworICAgIGlmIChoYW5kbGUuaXNOdWxsKCkpIHsKKyAgICAgICAgbV9yaW5nQnVm
ZmVyLT5kZWFsbG9jYXRlKCk7CisgICAgICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25seShmYWxzZSk7
CisgICAgICAgIHN0b3JhZ2UoKS5zZXRTdG9yYWdlKG51bGxwdHIpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgYXV0byBtZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1hcChoYW5kbGUsIFNo
YXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworICAgIHN0b3JhZ2UoKS5zZXRTdG9y
YWdlKFdURk1vdmUobWVtb3J5KSk7CisgICAgc3RvcmFnZSgpLnNldFJlYWRPbmx5KHRydWUpOwor
CisgICAgbV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMp
OworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShN
ZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJh
bWUsIHVpbnQ2NF90IGVuZEZyYW1lKQoreworICAgIEFTU0VSVChtX3JpbmdCdWZmZXIpOworICAg
IGlmICghbV9yaW5nQnVmZmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3JpbmdCdWZmZXIt
PnNldEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7CisKKyAgICBXZWJB
dWRpb0J1ZmZlckxpc3QgYXVkaW9EYXRhKG1fZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsK
KyAgICBtX3JpbmdCdWZmZXItPmZldGNoKGF1ZGlvRGF0YS5saXN0KCksIG51bWJlck9mRnJhbWVz
LCB0aW1lLnRpbWVWYWx1ZSgpKTsKKworICAgIG1fd3JpdGVyLT5hcHBlbmRBdWRpb1NhbXBsZUJ1
ZmZlcihhdWRpb0RhdGEsIG1fZGVzY3JpcHRpb24sIHRpbWUsIG51bWJlck9mRnJhbWVzKTsKK30K
Kwordm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3Jl
OjpSZW1vdGVWaWRlb1NhbXBsZSYmIHJlbW90ZVNhbXBsZSkKK3sKKyAgICBpZiAoIW1faW1hZ2VU
cmFuc2ZlclNlc3Npb24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+cGl4ZWxGb3JtYXQoKSAh
PSByZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSkKKyAgICAgICAgbV9pbWFnZVRyYW5zZmVyU2Vz
c2lvbiA9IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShyZW1vdGVTYW1wbGUudmlkZW9G
b3JtYXQoKSk7CisKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24pIHsKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRv
IHNhbXBsZUJ1ZmZlciA9IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1lZGlhU2FtcGxl
KHJlbW90ZVNhbXBsZS5zdXJmYWNlKCksIHJlbW90ZVNhbXBsZS50aW1lKCksIHJlbW90ZVNhbXBs
ZS5zaXplKCkpOworICAgIGlmICghc2FtcGxlQnVmZmVyKSB7CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV93cml0ZXItPmFwcGVu
ZFZpZGVvU2FtcGxlQnVmZmVyKHNhbXBsZUJ1ZmZlci0+cGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUu
Y21TYW1wbGVCdWZmZXIpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXI6OmZldGNoRGF0
YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6RGF0YVJlZmVyZW5jZSYmLCBjb25zdCBTdHJp
bmcmIG1pbWVUeXBlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBtcDRNaW1lVHlwZShNQUtFX1NUQVRJQ19TVFJJTkdfSU1Q
TCgidmlkZW8vbXA0IikpOworICAgIG1fd3JpdGVyLT5mZXRjaERhdGEoWyZtcDRNaW1lVHlwZSA9
IG1wNE1pbWVUeXBlLmdldCgpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXShhdXRvJiYgZGF0YSkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8qIHBvaW50ZXIg
PSByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRhID8gZGF0YS0+ZGF0YSgpIDog
bnVsbHB0cik7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKElQQzo6RGF0YVJlZmVyZW5jZSB7
IHBvaW50ZXIsIGRhdGEgPyBkYXRhLT5zaXplKCkgOiAwIH0sIG1wNE1pbWVUeXBlKTsKKyAgICB9
KTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlY29yZGVyOjpzdG9wUmVjb3JkaW5nKCkKK3sKKyAg
ICBtX3dyaXRlci0+c3RvcFJlY29yZGluZygpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mZjVhODI5ODRmYjM5NjQxZWQxZTU2MTU0ODk4Zjk1MjZjOWJkNTJhCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRp
YVJlY29yZGVyLmgKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJJZGVudGlmaWVyLmgiCisjaW5j
bHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaD4KKyNpbmNsdWRlIDx3dGYvTWVk
aWFUaW1lLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIERh
dGFSZWZlcmVuY2U7CitjbGFzcyBEZWNvZGVyOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7Citj
bGFzcyBDQVJpbmdCdWZmZXI7CitjbGFzcyBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOworY2xhc3Mg
UmVtb3RlVmlkZW9TYW1wbGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOworY2xhc3MgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U7CisK
K2NsYXNzIFJlbW90ZU1lZGlhUmVjb3JkZXIgOiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVy
IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPFJlbW90ZU1lZGlhUmVjb3JkZXI+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJiwgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIsIGJvb2wgcmVjb3JkQXVkaW8sIGlu
dCB3aWR0aCwgaW50IGhlaWdodCk7CisgICAgflJlbW90ZU1lZGlhUmVjb3JkZXIoKTsKKworICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikg
ZmluYWw7CisKK3ByaXZhdGU6CisgICAgUmVtb3RlTWVkaWFSZWNvcmRlcihHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzJiwgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpNZWRp
YVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4mJiwgYm9vbCByZWNvcmRBdWRpbyk7CisKKyAgICAvLyBJ
UEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgYXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQo
Y29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisgICAgdm9pZCBhdWRpb1Nh
bXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0
X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworICAgIHZvaWQgdmlkZW9TYW1wbGVB
dmFpbGFibGUoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUmJik7CisgICAgdm9pZCBmZXRjaERh
dGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OkRhdGFSZWZlcmVuY2UmJiwgY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSk+JiYpOworICAgIHZvaWQgc3RvcFJlY29yZGluZygpOworCisgICAgU2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKTsKKworICAgIEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MmIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzczsKKyAgICBNZWRpYVJlY29yZGVy
SWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgUmVmPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQ
cml2YXRlV3JpdGVyPiBtX3dyaXRlcjsKKworICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiBtX2Rlc2NyaXB0aW9uOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDQVJp
bmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1h
Z2VUcmFuc2ZlclNlc3Npb25WVD4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbjsKK307CisKK30KKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTRiYTY0ZDU2
ZmJlYTMwZmNiYjM5NmRhZDVlYTNmYzMwYzk5NWRlZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5tZXNzYWdlcy5p
bgpAQCAtMCwwICsxLDM0IEBACisjIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoK
KyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisj
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKKworbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFSZWNvcmRlciBOb3RSZWZDb3Vu
dGVkIHsKKyAgICBBdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZChXZWJLaXQ6OlNoYXJlZE1lbW9y
eTo6SGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisgICAgQXVkaW9TYW1wbGVz
QXZhaWxhYmxlKE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0
X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCisgICAgVmlkZW9TYW1wbGVBdmFpbGFi
bGUoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUgc2FtcGxlKQorICAgIEZldGNoRGF0YSgpIC0+
IChJUEM6OkRhdGFSZWZlcmVuY2UgYnVmZmVyLCBTdHJpbmcgbWltZVR5cGUpIEFzeW5jCisgICAg
U3RvcFJlY29yZGluZygpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zNzBjZDliMzg3NTY5YTk4ZTg0ZTE3ODA5ZjA4NWQ2MmIzYjZlOWQ2Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRp
YVJlY29yZGVyTWFuYWdlci5jcHAKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5oIgor
CisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKKworI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJEZWNv
ZGVyLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlci5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvRXhjZXB0aW9uRGF0YS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3RlTWVkaWFS
ZWNvcmRlck1hbmFnZXI6OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyKEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCisgICAgOiBtX2dwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcykKK3sKK30KKworUmVt
b3RlTWVkaWFSZWNvcmRlck1hbmFnZXI6On5SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcigpCit7
Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI6OmRpZFJlY2VpdmVSZW1vdGVN
ZWRpYVJlY29yZGVyTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVj
b2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAoYXV0byogcmVjb3JkZXIgPSBtX3JlY29yZGVycy5n
ZXQobWFrZU9iamVjdElkZW50aWZpZXI8TWVkaWFSZWNvcmRlcklkZW50aWZpZXJUeXBlPihkZWNv
ZGVyLmRlc3RpbmF0aW9uSUQoKSkpKQorICAgICAgICByZWNvcmRlci0+ZGlkUmVjZWl2ZU1lc3Nh
Z2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZWNvcmRlck1h
bmFnZXI6OmNyZWF0ZVJlY29yZGVyKE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyIGlkZW50aWZpZXIs
IGJvb2wgcmVjb3JkQXVkaW8sIGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb25EYXRhPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3sKKyAgICBBU1NFUlQoIW1fcmVjb3JkZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBh
dXRvIHJlY29yZGVyID0gUmVtb3RlTWVkaWFSZWNvcmRlcjo6Y3JlYXRlKG1fZ3B1Q29ubmVjdGlv
blRvV2ViUHJvY2VzcywgaWRlbnRpZmllciwgcmVjb3JkQXVkaW8sIHdpZHRoLCBoZWlnaHQpOwor
ICAgIGlmICghcmVjb3JkZXIpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihFeGNl
cHRpb25EYXRhIHsgTm90U3VwcG9ydGVkRXJyb3IsICJVbmFibGUgdG8gY3JlYXRlIGEgcmVjb3Jk
ZXIgd2l0aCB0aGUgcHJvdmlkZWQgc3RyZWFtIl9zIH0pOworCisgICAgbV9yZWNvcmRlcnMuYWRk
KGlkZW50aWZpZXIsIFdURk1vdmUocmVjb3JkZXIpKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcih7
IH0pOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOjpyZWxlYXNlUmVjb3Jk
ZXIoTWVkaWFSZWNvcmRlcklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQobV9y
ZWNvcmRlcnMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIG1fcmVjb3JkZXJzLnJlbW92ZShp
ZGVudGlmaWVyKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41NDcxYmJkNDg0ZGQ5YjNkMGM4ZWUzZGQ2MTFjMDVlOTBkMDM2YzdjCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJl
Y29yZGVyTWFuYWdlci5oCkBAIC0wLDAgKzEsNzIgQEAKKworCisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlcklkZW50aWZpZXIu
aCIKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29u
bmVjdGlvbjsKK2NsYXNzIERlY29kZXI7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3N0cnVj
dCBFeGNlcHRpb25EYXRhOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2VzczsKK2NsYXNzIFJlbW90ZU1lZGlhUmVjb3JkZXI7CisKK2NsYXNz
IFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyIDogcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZl
ciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQg
UmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYpOwor
ICAgIH5SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcigpOworCisgICAgdm9pZCBkaWRSZWNlaXZl
UmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKSB7IGRpZFJlY2VpdmVNZXNz
YWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOyB9CisKK3ByaXZhdGU6CisgICAgLy8gSVBDOjpNZXNz
YWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIGZpbmFsOworICAgIHZvaWQgY3JlYXRlUmVjb3JkZXIoTWVkaWFSZWNv
cmRlcklkZW50aWZpZXIsIGJvb2wgcmVjb3JkQXVkaW8sIGludCB3aWR0aCwgaW50IGhlaWdodCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYm
KT4mJik7CisgICAgdm9pZCByZWxlYXNlUmVjb3JkZXIoTWVkaWFSZWNvcmRlcklkZW50aWZpZXIp
OworCisgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9ncHVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOworICAgIEhhc2hNYXA8TWVkaWFSZWNvcmRlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVl
X3B0cjxSZW1vdGVNZWRpYVJlY29yZGVyPj4gbV9yZWNvcmRlcnM7Cit9OworCit9CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRp
YVJlY29yZGVyTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93
ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Mzg3YTQxMzYxY2RiZDliN2VhZTJjMzM3MzY1MmE5OGY0OTM0ZTE3NAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1h
bmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NF
U1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUmVj
b3JkZXJNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworICAgIENyZWF0ZVJlY29yZGVyKFdlYktpdDo6
TWVkaWFSZWNvcmRlcklkZW50aWZpZXIgaWQsIGJvb2wgaGFzQXVkaW8sIGludCB3aWR0aCwgaW50
IGhlaWdodCkgLT4gKE9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IGNyZWF0aW9uRXJy
b3IpIEFzeW5jCisgICAgUmVsZWFzZVJlY29yZGVyKFdlYktpdDo6TWVkaWFSZWNvcmRlcklkZW50
aWZpZXIgaWQpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkKaW5kZXggNWQ4NDQ3MTMyNWJiYTdhNDM1ZWQ5MzNjMDkwOTA5NDUzYjlkNDAyNS4uZjhi
Y2UxNDU1MDdkZjQ5ZTg5ZWQ0ZjcxOTg3NmUxMGJmNzA5NmJkZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yMjAsNiArMjIwLDcgQEAgZGVmIHR5cGVzX3Ro
YXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYktpdDo6QWN0aXZp
dHlTdGF0ZUNoYW5nZUlEJywKICAgICAgICAgJ1dlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElE
JywKICAgICAgICAgJ1dlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllcics
CisgICAgICAgICdXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dl
YktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpS
VENEZWNvZGVySWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJUQ0VuY29kZXJJZGVudGlm
aWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXMudHh0CmluZGV4IGQwMzkzYmIwNjJkOTdhZTk2YTcyMjVhNmQ2MDdiMDc0YjM4
ZTBjOTguLjMwNmNkMWU2OTM1NjYxYWQ0MWMwNjA5Mjg0OGJmOWFmMzZiMWI3MjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2Vz
LnR4dApAQCAtMjQsNiArMjQsOCBAQAogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcAogR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAogR1BVUHJvY2Vzcy9HUFVQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNv
cmRlci5jcHAKK0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLmNw
cAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKIEdQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAKQEAgLTUxMyw2ICs1MTUsOCBAQCBXZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuY3BwIEBuby11bmlmeQogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcAogV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKK1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRp
YVJlY29yZGVyUHJpdmF0ZS5jcHAKK1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVy
UHJvdmlkZXIuY3BwCiAKIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwCiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXNDb2NvYS50eHQKaW5kZXggNmM2Zjc0YjQ0N2UxOWI0YmNkNjAwMzRlNWQ2ZDQyOTE4ZTk4NjUw
Ny4uOTM5ZmIxNzFiNzFlOGMyZjJmMjNlMDMyMjA2YjBhYjE3Yzk4YWI5OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNl
c0NvY29hLnR4dApAQCAtNjM2LDUgKzYzNiw3IEBAIEdQVVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAKIEdQVVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwCiBMaWJXZWJSVENDb2RlY3NQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIExpYldlYlJUQ0NvZGVjc01lc3NhZ2VSZWNlaXZlci5j
cHAKK1JlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVNZWRpYVJl
Y29yZGVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2tN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiBUZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBjZjE2ZjI5ZTAyZmYxYjFmNWM3Njk3Y2M1MDAwYTIwMTU0NmI3MDhjLi5hZDhi
NmRlZjIxNzhjZjI4ZjNlYWVlMGU3YjZiYWE0ZmQxNjczNTA4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMzMTgsNiArMzMxOCwxNyBA
QAogCQk0MTcyMTk4QzIzQjYxMkU4MDBBRTU2ODYgLyogUlRDRGVjb2RlcklkZW50aWZpZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDRGVjb2RlcklkZW50aWZpZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3MjE5OEQyM0I2MkM3QzAwQUU1Njg2IC8q
IExpYldlYlJUQ0NvZGVjcy5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaWJXZWJSVENDb2RlY3MubWVzc2Fn
ZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzY5MDEzMjJGREQ0MUIwMEIx
NTc2RCAvKiBOZXR3b3JrUlRDUHJvdmlkZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBOZXR3b3JrUlRDUHJvdmlkZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQxNzZFODkyMjNDMzRENkUwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJvdmlk
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFSZWNvcmRlclByb3ZpZGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODkzMjNDMzRENkYwMDNFODNGRSAvKiBNZWRpYVJlY29y
ZGVyUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFSZWNvcmRlclByb3ZpZGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NkU4OTQyM0MzNEUyNjAwM0U4
M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJQcml2YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDE3NkU4OTUyM0MzNEUyNzAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcml2
YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJQcml2
YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODk3MjNDMzYxQkQwMDNF
ODNGRSAvKiBNZWRpYVJlY29yZGVySWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNZWRpYVJlY29yZGVySWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0MTc2RTg5ODIzQzM2Njc3MDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJlY29yZGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODk5MjNDMzZEOEUwMDNFODNG
RSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0MTc2RTg5QTIzQzM2RjcxMDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNv
cmRlck1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVt
b3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0MTc2RTg5QjIzQzM3MjIyMDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIu
bWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFSZWNvcmRlck1h
bmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODlD
MjNDMzc0NzkwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzZFODlEMjNDMzc2RDUwMDNFODNGRSAvKiBSZW1v
dGVNZWRpYVJlY29yZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFJlbW90ZU1lZGlhUmVjb3JkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTc5MTVBQzIyNTZCQjc0MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJTb2NrZXRDaGFubmVsLmNwcDsgcGF0aCA9
IE5ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxNzkxNUFEMjI1NkJCNzQwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlNvY2tldENoYW5uZWwuaDsgcGF0aCA9IE5l
dHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTc5MTVCMDIyNTZDMEQ2MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuaDsg
cGF0aCA9IE5ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTcxMjgsNiArNzEzOSwxMSBAQAogCQkJCTQxNzIxOThBMjNCNjEyODIw
MEFFNTY4NiAvKiBMaWJXZWJSVENDb2RlY3MuY3BwICovLAogCQkJCTQxNzIxOTg5MjNCNjEyODIw
MEFFNTY4NiAvKiBMaWJXZWJSVENDb2RlY3MuaCAqLywKIAkJCQk0MTcyMTk4RDIzQjYyQzdDMDBB
RTU2ODYgLyogTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2VzLmluICovLAorCQkJCTQxNzZFODk3MjND
MzYxQkQwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVySWRlbnRpZmllci5oICovLAorCQkJCTQxNzZF
ODk0MjNDMzRFMjYwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAgKi8sCisJCQkJ
NDE3NkU4OTUyM0MzNEUyNzAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmggKi8sCisJ
CQkJNDE3NkU4OTMyM0MzNEQ2RjAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAg
Ki8sCisJCQkJNDE3NkU4OTIyM0MzNEQ2RTAwM0U4M0ZFIC8qIE1lZGlhUmVjb3JkZXJQcm92aWRl
ci5oICovLAogCQkJCTQxNzIxOThDMjNCNjEyRTgwMEFFNTY4NiAvKiBSVENEZWNvZGVySWRlbnRp
Zmllci5oICovLAogCQkJCTQxNTg2NDlBMjNCRTA5MjQwMEEwQTYxRSAvKiBSVENFbmNvZGVySWRl
bnRpZmllci5oICovLAogCQkJKTsKQEAgLTcxNDAsNiArNzE1NiwxMiBAQAogCQkJCTQxRTBBN0M2
MjNCNjM5NzgwMDU2MTA2MCAvKiBMaWJXZWJSVENDb2RlY3NQcm94eS5oICovLAogCQkJCTQxRTBB
N0M3MjNCNjM5NzkwMDU2MTA2MCAvKiBMaWJXZWJSVENDb2RlY3NQcm94eS5tZXNzYWdlcy5pbiAq
LywKIAkJCQk0MUUwQTdDODIzQjYzOTc5MDA1NjEwNjAgLyogTGliV2ViUlRDQ29kZWNzUHJveHku
bW0gKi8sCisJCQkJNDE3NkU4OUQyM0MzNzZENTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3Jk
ZXIuY3BwICovLAorCQkJCTQxNzZFODk4MjNDMzY2NzcwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJl
Y29yZGVyLmggKi8sCisJCQkJNDE3NkU4OUMyM0MzNzQ3OTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlh
UmVjb3JkZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJNDE3NkU4OUEyM0MzNkY3MTAwM0U4M0ZFIC8q
IFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLmNwcCAqLywKKwkJCQk0MTc2RTg5OTIzQzM2RDhF
MDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuaCAqLywKKwkJCQk0MTc2RTg5
QjIzQzM3MjIyMDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIubWVzc2FnZXMu
aW4gKi8sCiAJCQkpOwogCQkJcGF0aCA9IHdlYnJ0YzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRp
YVJlY29yZGVySWRlbnRpZmllci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvTWVkaWFSZWNvcmRlcklkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmYwNGUzMzNmZTg0NjMy
M2NjY2U3OTM4NWNhNzUyYjU2NDE5M2VkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlcklkZW50aWZpZXIuaApAQCAtMCww
ICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2Jq
ZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBNZWRpYVJlY29y
ZGVySWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIgPSBP
YmplY3RJZGVudGlmaWVyPE1lZGlhUmVjb3JkZXJJZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93
ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkNDA5MTk4
OGMxMjY4OTc1YmI5NzkyZTgzMzdjNmUwNjUzN2YzYzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAK
QEAgLTAsMCArMSwxNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGUuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBF
TkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJH
UFVQcm9jZXNzQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5h
Z2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZXMuaCIK
KyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU3RyZWFtUHJpdmF0ZS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlbW90
ZVZpZGVvU2FtcGxlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK01lZGlhUmVjb3JkZXJQcml2YXRlOjpNZWRp
YVJlY29yZGVyUHJpdmF0ZShjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKKyAgICA6
IG1faWRlbnRpZmllcihNZWRpYVJlY29yZGVySWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKKyAgICAs
IG1fY29ubmVjdGlvbihXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29u
bmVjdGlvbigpLmNvbm5lY3Rpb24oKSkKK3sKKyAgICAvLyBGSVhNRTogd2Ugd2lsbCBuZWVkIHRv
IGltcGxlbWVudCBzdXBwb3J0IGZvciBtdWx0aXBsZSBhdWRpby92aWRlbyB0cmFja3MKKyAgICAv
LyBDdXJyZW50bHkgd2Ugb25seSBjaG9vc2UgdGhlIGZpcnN0IHRyYWNrIGFzIHRoZSByZWNvcmRl
ZCB0cmFjay4KKworICAgIGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiBhdWRpb1RyYWNr
IHsgbnVsbHB0ciB9OworICAgIGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiB2aWRlb1Ry
YWNrIHsgbnVsbHB0ciB9OworICAgIGZvciAoYXV0byYgdHJhY2sgOiBzdHJlYW0udHJhY2tzKCkp
IHsKKyAgICAgICAgaWYgKCF0cmFjay0+ZW5hYmxlZCgpIHx8IHRyYWNrLT5lbmRlZCgpKQorICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIHN3aXRjaCAodHJhY2stPnR5cGUoKSkgeworICAg
ICAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvOiB7CisgICAgICAgICAg
ICBhdXRvJiBzZXR0aW5ncyA9IHRyYWNrLT5zZXR0aW5ncygpOworICAgICAgICAgICAgaWYgKCF2
aWRlb1RyYWNrICYmIHNldHRpbmdzLnN1cHBvcnRzV2lkdGgoKSAmJiBzZXR0aW5ncy5zdXBwb3J0
c0hlaWdodCgpKSB7CisgICAgICAgICAgICAgICAgdmlkZW9UcmFjayA9IHRyYWNrLmdldCgpOwor
ICAgICAgICAgICAgICAgIG1fcmVjb3JkZWRWaWRlb1RyYWNrSUQgPSB2aWRlb1RyYWNrLT5pZCgp
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
Y2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzoKKyAgICAgICAgICAgIGlmICgh
YXVkaW9UcmFjaykgeworICAgICAgICAgICAgICAgIG1fcmluZ0J1ZmZlciA9IG1ha2VVbmlxdWU8
Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPih0aGlz
KSk7CisgICAgICAgICAgICAgICAgYXVkaW9UcmFjayA9IHRyYWNrLmdldCgpOworICAgICAgICAg
ICAgICAgIG1fcmVjb3JkZWRBdWRpb1RyYWNrSUQgPSBhdWRpb1RyYWNrLT5pZCgpOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6Tm9uZToKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQor
ICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRp
YVJlY29yZGVyTWFuYWdlcjo6Q3JlYXRlUmVjb3JkZXIgeyBtX2lkZW50aWZpZXIsICEhYXVkaW9U
cmFjaywgdmlkZW9UcmFjayA/IHZpZGVvVHJhY2stPnNldHRpbmdzKCkud2lkdGgoKSA6IDAsIHZp
ZGVvVHJhY2sgPyB2aWRlb1RyYWNrLT5zZXR0aW5ncygpLmhlaWdodCgpIDogMCB9LCBbdGhpcywg
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0oYXV0byYmIGV4Y2VwdGlvbikgeworICAgICAg
ICBpZiAoIXdlYWtUaGlzIHx8ICFleGNlcHRpb24pCisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIG1fZXJyb3JDYWxsYmFjayhFeGNlcHRpb24geyBleGNlcHRpb24tPmNvZGUsIFdURk1vdmUo
ZXhjZXB0aW9uLT5tZXNzYWdlKSB9KTsKKyAgICB9LCAwKTsKK30KKworTWVkaWFSZWNvcmRlclBy
aXZhdGU6On5NZWRpYVJlY29yZGVyUHJpdmF0ZSgpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5k
KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6UmVsZWFzZVJlY29yZGVyIHsg
bV9pZGVudGlmaWVyIH0sIDApOworfQorCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzYW1w
bGVCdWZmZXJVcGRhdGVkKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0
cmFjaywgV2ViQ29yZTo6TWVkaWFTYW1wbGUmIHNhbXBsZSkKK3sKKyAgICBpZiAodHJhY2suaWQo
KSAhPSBtX3JlY29yZGVkVmlkZW9UcmFja0lEKQorICAgICAgICByZXR1cm47CisjaWYgSEFWRShJ
T1NVUkZBQ0UpCisgICAgaWYgKGF1dG8gcmVtb3RlU2FtcGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6
OmNyZWF0ZShzYW1wbGUpKQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJl
bW90ZU1lZGlhUmVjb3JkZXI6OlZpZGVvU2FtcGxlQXZhaWxhYmxlIHsgV1RGTW92ZSgqcmVtb3Rl
U2FtcGxlKSB9LCBtX2lkZW50aWZpZXIpOworI2Vsc2UKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyNlbmRpZgorfQorCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjphdWRpb1NhbXBsZXNB
dmFpbGFibGUoY29uc3QgV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBj
b25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEs
IGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgbnVtYmVy
T2ZGcmFtZXMpCit7CisgICAgaWYgKHRyYWNrLmlkKCkgIT0gbV9yZWNvcmRlZEF1ZGlvVHJhY2tJ
RCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fZGVzY3JpcHRpb24gIT0gZGVzY3JpcHRp
b24pIHsKKyAgICAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS50
eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUpOworICAg
ICAgICBtX2Rlc2NyaXB0aW9uID0gKldURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNj
cmlwdGlvbio+KGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7
CisKKyAgICAgICAgLy8gQWxsb2NhdGUgYSByaW5nIGJ1ZmZlciBsYXJnZSBlbm91Z2ggdG8gY29u
dGFpbiAyIHNlY29uZHMgb2YgYXVkaW8uCisgICAgICAgIG1fbnVtYmVyT2ZGcmFtZXMgPSBtX2Rl
c2NyaXB0aW9uLnNhbXBsZVJhdGUoKSAqIDI7CisgICAgICAgIG1fcmluZ0J1ZmZlci0+YWxsb2Nh
dGUobV9kZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpLCBtX251bWJlck9mRnJhbWVzKTsK
KyAgICB9CisKKyAgICBBU1NFUlQoaXM8V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRpb0RhdGEpKTsK
KyAgICBtX3JpbmdCdWZmZXItPnN0b3JlKGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4oYXVk
aW9EYXRhKS5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsKKyAgICB1
aW50NjRfdCBzdGFydEZyYW1lOworICAgIHVpbnQ2NF90IGVuZEZyYW1lOworICAgIG1fcmluZ0J1
ZmZlci0+Z2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAgICBt
X2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OkF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZSB7IHRpbWUsIG51bWJlck9mRnJhbWVzLCBzdGFydEZyYW1lLCBlbmRGcmFt
ZSB9LCBtX2lkZW50aWZpZXIpOworfQorCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdG9y
YWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2UpCit7CisgICAgU2hhcmVkTWVtb3J5OjpI
YW5kbGUgaGFuZGxlOworICAgIGlmIChzdG9yYWdlKQorICAgICAgICBzdG9yYWdlLT5jcmVhdGVI
YW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICBt
X2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OkF1ZGlvU2Ft
cGxlc1N0b3JhZ2VDaGFuZ2VkIHsgaGFuZGxlLCBtX2Rlc2NyaXB0aW9uLCBzdGF0aWNfY2FzdDx1
aW50NjRfdD4obV9udW1iZXJPZkZyYW1lcykgfSwgbV9pZGVudGlmaWVyKTsKK30KKwordm9pZCBN
ZWRpYVJlY29yZGVyUHJpdmF0ZTo6ZmV0Y2hEYXRhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVm
UHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OkZldGNoRGF0YSB7IH0sIFtjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvJiYgZGF0YSwgYXV0
byYmIG1pbWVUeXBlKSBtdXRhYmxlIHsKKyAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVm
ZmVyOworICAgICAgICBpZiAoZGF0YS5zaXplKCkpCisgICAgICAgICAgICBidWZmZXIgPSBTaGFy
ZWRCdWZmZXI6OmNyZWF0ZShkYXRhLmRhdGEoKSwgZGF0YS5zaXplKCkpOworICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihXVEZNb3ZlKGJ1ZmZlciksIG1pbWVUeXBlKTsKKyAgICB9LCBtX2lkZW50
aWZpZXIpOworfQorCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdG9wUmVjb3JkaW5nKCkK
K3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6
OlN0b3BSZWNvcmRpbmcgeyB9LCBtX2lkZW50aWZpZXIpOworfQorCit9CisKKyNlbmRpZiAvLyBQ
TEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RS
RUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVk
aWFSZWNvcmRlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L01lZGlhUmVjb3JkZXJQcml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQ5ZmFiZTNlYTcyNDczZjQ1OTkw
Y2U4YWQxNzJkMGNkMDNhODEyNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKQEAgLTAsMCArMSw3NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVO
QUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1l
ZGlhUmVjb3JkZXJJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2UuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFSZWNvcmRlclByaXZhdGUuaD4KKyNpbmNs
dWRlIDx3dGYvTWVkaWFUaW1lLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNw
YWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7Citj
bGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBNZWRpYVJlY29yZGVyUHJpdmF0ZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpNZWRpYVJlY29y
ZGVyUHJpdmF0ZSwgcHVibGljIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpDbGllbnQsIHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4geworICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhUmVjb3JkZXJQcml2YXRl
KGNvbnN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZSYpOworICAgIH5NZWRpYVJlY29yZGVy
UHJpdmF0ZSgpOworCitwcml2YXRlOgorICAgIC8vIFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2
YXRlCisgICAgdm9pZCBzYW1wbGVCdWZmZXJVcGRhdGVkKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlJiwgV2ViQ29yZTo6TWVkaWFTYW1wbGUmKSBmaW5hbDsKKyAgICB2b2lk
IGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZSYsIGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRp
b0RhdGEmLCBjb25zdCBXZWJDb3JlOjpBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBm
aW5hbDsKKyAgICB2b2lkIGZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxX
ZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpPiYmKSBmaW5h
bDsKKyAgICB2b2lkIHN0b3BSZWNvcmRpbmcoKSBmaW5hbDsKKworICAgIC8vIFNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlOjpDbGllbnQKKyAgICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9y
eSopOworCisgICAgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOworCisgICAg
UmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIFN0cmluZyBtX3JlY29yZGVk
QXVkaW9UcmFja0lEOworICAgIFN0cmluZyBtX3JlY29yZGVkVmlkZW9UcmFja0lEOworCisgICAg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNBUmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOworICAg
IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uIHsgfTsKKyAg
ICBpbnQ2NF90IG1fbnVtYmVyT2ZGcmFtZXMgeyAwIH07Cit9OworCit9CisKKyNlbmRpZiAvLyBQ
TEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9N
ZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93
ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iY2U3NzRhODgxZGNl
Yzc5NDI2Mzc5Njg1NTJlM2NjYzdiYjM3NDBiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcApAQCAt
MCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
Ik1lZGlhUmVjb3JkZXJQcm92aWRlci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYg
UExBVEZPUk0oQ09DT0EpCisKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvTWVkaWFSZWNvcmRlclByaXZhdGUuaD4KKwordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6TWVkaWFSZWNvcmRlclByaXZhdGU+IE1lZGlhUmVjb3JkZXJQcm92aWRlcjo6Y3JlYXRlTWVk
aWFSZWNvcmRlclByaXZhdGUoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCit7Cisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIGlmIChtX3VzZUdQVVByb2Nlc3MpCisgICAgICAg
IHJldHVybiBtYWtlVW5pcXVlPE1lZGlhUmVjb3JkZXJQcml2YXRlPihzdHJlYW0pOworI2VuZGlm
CisgICAgcmV0dXJuIFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcjo6Y3JlYXRlTWVkaWFS
ZWNvcmRlclByaXZhdGUoc3RyZWFtKTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElB
X1NUUkVBTSkgJiYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQyNTg4ZDQyYWI2MGRkYTZkMjk0ODhmYjg1ZmUyYWM1MDUwMThiZDIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVy
UHJvdmlkZXIuaApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUmVjb3JkZXJQcm92aWRlci5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgTWVkaWFSZWNvcmRlclByb3ZpZGVyIGZpbmFsIDogcHVibGljIFdl
YkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlciB7CitwdWJsaWM6CisgICAgTWVkaWFSZWNvcmRl
clByb3ZpZGVyKCkgPSBkZWZhdWx0OworCitwcml2YXRlOgorI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pICYmIFBMQVRGT1JNKENPQ09BKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpNZWRp
YVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoY29uc3QgV2ViQ29y
ZTo6TWVkaWFTdHJlYW1Qcml2YXRlJikgZmluYWw7CisjZW5kaWYKK307CisKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNGE0M2M1ZWI3NTEw
ZWM1Nzc3ODVlZWI4MDIyYmE0YTMyNDQzMjUzMy4uYjgyYTcxMWM1ZWQ5ZmQ4ZjMwMjZiNWM5ZDBm
YjQ3OTU4Yzk4M2I1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJMaWJXZWJSVENQcm92aWRlci5o
IgogI2luY2x1ZGUgIkxvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2lu
Y2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92aWRlci5oIgogI2luY2x1ZGUgIk5ldHNjYXBlUGx1Z2lu
LmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgpAQCAtNDYxLDcgKzQ2Miw4IEBA
IFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
Y2FjaGVTdG9yYWdlUHJvdmlkZXIoKSwKICAgICAgICAgV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6
OmNyZWF0ZSgqdGhpcyksCiAgICAgICAgIFdlYkNvb2tpZUphcjo6Y3JlYXRlKCksCi0gICAgICAg
IG1ha2VVbmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50PigqdGhpcykKKyAgICAgICAg
bWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCp0aGlzKSwKKyAgICAgICAg
bWFrZVVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKICAgICApOwogICAgIHBhZ2VD
b25maWd1cmF0aW9uLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnQoKnRoaXMpOwog
I2lmIEVOQUJMRShDT05URVhUX01FTlVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCmluZGV4IDRjNDE4NjRkODlmNDA1NjdlZDgxZWQyZWZlZmI1MDFmNjc1M2Ri
ODQuLjE5YjIyMWNiMjI3ODNjNWI2NGMzNTNkMDI4NWE0NDhmNDUzZDBiNjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTE4MCw2ICsxODAsNyBAQAog
I2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xv
Z0luaXRpYWxpemF0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL01lbW9yeUNhY2hlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01lbW9yeVJlbGVhc2UuaD4KICNp
bXBvcnQgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CkBAIC0xNDQ4LDcgKzE0NDks
OCBAQCBzdGF0aWMgdm9pZCBXZWJLaXRJbml0aWFsaXplR2FtZXBhZFByb3ZpZGVySWZOZWNlc3Nh
cnkoKQogICAgICAgICBXZWJDb3JlOjpDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlKCksCiAg
ICAgICAgIEJhY2tGb3J3YXJkTGlzdDo6Y3JlYXRlKHNlbGYpLAogICAgICAgICBXZWJDb3JlOjpD
b29raWVKYXI6OmNyZWF0ZShzdG9yYWdlUHJvdmlkZXIuY29weVJlZigpKSwKLSAgICAgICAgbWFr
ZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KHNlbGYpCisgICAgICAgIG1ha2VV
bmlxdWVSZWY8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50PihzZWxmKSwKKyAgICAgICAgbWFrZVVu
aXF1ZVJlZjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKICAgICApOwogI2lmICFQ
TEFURk9STShJT1NfRkFNSUxZKQogICAgIHBhZ2VDb25maWd1cmF0aW9uLmNocm9tZUNsaWVudCA9
IG5ldyBXZWJDaHJvbWVDbGllbnQoc2VsZik7CkBAIC0xNzE3LDcgKzE3MTksOCBAQCBzdGF0aWMg
dm9pZCBXZWJLaXRJbml0aWFsaXplR2FtZXBhZFByb3ZpZGVySWZOZWNlc3NhcnkoKQogICAgICAg
ICBXZWJDb3JlOjpDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlKCksCiAgICAgICAgIEJhY2tG
b3J3YXJkTGlzdDo6Y3JlYXRlKHNlbGYpLAogICAgICAgICBXZWJDb3JlOjpDb29raWVKYXI6OmNy
ZWF0ZShzdG9yYWdlUHJvdmlkZXIuY29weVJlZigpKSwKLSAgICAgICAgbWFrZVVuaXF1ZVJlZjxX
ZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KHNlbGYpCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2Vi
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PihzZWxmKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJD
b3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKICAgICApOwogICAgIHBhZ2VDb25maWd1cmF0
aW9uLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnRJT1Moc2VsZik7CiAjaWYgRU5B
QkxFKERSQUdfU1VQUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YlZpZXcuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKaW5kZXggZWIw
ODY2NDg2Nzc5MTU2ODFmM2FjM2RjODAzODI0ZGEwODk3MWIwZi4uZTk1NzNkMmI2ZThiYTRhNGFh
MDM0ZmQwMDk5MThhMTUzODFkNTQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAK
QEAgLTEyOSw2ICsxMjksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTG9nSW5pdGlhbGl6YXRpb24u
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0xvZ2dpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01JTUVU
eXBlUmVnaXN0cnkuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUmVjb3JkZXJQcm92aWRlci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5Q2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01l
bW9yeVJlbGVhc2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5o
PgpAQCAtMzExOCwxMCArMzExOSwxMSBAQCBIUkVTVUxUIFdlYlZpZXc6OmluaXRXaXRoRnJhbWUo
UkVDVCBmcmFtZSwgX0luXyBCU1RSIGZyYW1lTmFtZSwgX0luXyBCU1RSIGdyb3VwTgogICAgICAg
ICBtYWtlVW5pcXVlUmVmPFdlYkVkaXRvckNsaWVudD4odGhpcyksCiAgICAgICAgIFNvY2tldFBy
b3ZpZGVyOjpjcmVhdGUoKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRl
cj4oKSwKLSAgICAgICAgV2ViQ29yZTo6Q2FjaGVTdG9yYWdlUHJvdmlkZXI6OmNyZWF0ZSgpLAor
ICAgICAgICBDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlKCksCiAgICAgICAgIEJhY2tGb3J3
YXJkTGlzdDo6Y3JlYXRlKCksCiAgICAgICAgIENvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92
aWRlci5jb3B5UmVmKCkpLAotICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tl
ckNsaWVudD4oKQorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVu
dD4oKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCkKICAg
ICApOwogICAgIGNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVu
dCh0aGlzKTsKICAgICBjb25maWd1cmF0aW9uLmNvbnRleHRNZW51Q2xpZW50ID0gbmV3IFdlYkNv
bnRleHRNZW51Q2xpZW50KHRoaXMpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDgzNWM2MGYxZWE1ZjIxZmE3ZWM4Y2JmZTUz
YzNmNjBlZDhlY2JmY2YuLjVmNzYyM2QxNDY0ZGFhZTQ5NmY1OWNiNmYzMzgxYzc3YzYxYmYwM2Eg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wMS0wOCAgeW91ZW5uIGZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IE1lZGlhUmVjb3JkZXIgYmFja2VuZCBp
biBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDU4MDIKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAg
ICAgKiBodHRwL3dwdC9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXItQVYtYXVkaW8tdmlkZW8t
ZGF0YWF2YWlsYWJsZS5odG1sOgorICAgICAgICBEbyBub3QgdXNlIEdQVVByb2Nlc3MgZm9yIHRo
aXMgdGVzdCB1bnRpbCBjYW52YXMgYnVmZmVycyBhcmUgSU9TdXJmYWNlcy4KKwogMjAyMC0wMS0w
OCAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBb
SGFyZkJ1enpdW0dUS10gZmFzdC90ZXh0L2NvbXBsZXgtZmlyc3QtZ2x5cGgtd2l0aC1pbml0aWFs
LWFkdmFuY2UuaHRtbCBpcyBmYWlsaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dw
dC9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXItQVYtYXVkaW8tdmlkZW8tZGF0YWF2YWlsYWJs
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
LUFWLWF1ZGlvLXZpZGVvLWRhdGFhdmFpbGFibGUuaHRtbAppbmRleCAzYzVmNTM5NmZjZWFmYjlh
ODU4ODIxN2YyZTBiZTA2YjEwNzRmNDBmLi40NGI2YTJmZWUzYmEyNWY3YmJjZWJhZGU5NzQzMGIy
MjQ4ODFkZmFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXItQVYtYXVkaW8tdmlkZW8tZGF0YWF2YWlsYWJsZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1BVi1hdWRpby12
aWRlby1kYXRhYXZhaWxhYmxlLmh0bWwKQEAgLTIwLDYgKzIwLDEwIEBACiAgICAgPC9jYW52YXM+
CiA8L2Rpdj4KIDxzY3JpcHQ+CisgICAgLy8gVGhpcyB0ZXN0IGlzIG5vdCBwYXNzaW5nIHdpdGgg
R1BVUHJvY2VzcyBhcyBsb25nIGFzIGNhcHR1cmUgZnJhbWVzIGFyZSBub3QgSU9TdXJmYWNlZCBi
YWNrZWQuCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5h
bHMuc2V0VXNlR1BVUHJvY2Vzc0ZvcldlYlJUQyhmYWxzZSk7CisKICAgICB2YXIgY29udGV4dDsK
ICAgICB2YXIgZHJhd1N0YXJ0VGltZTsKIApAQCAtMTExLDQgKzExNSw0IEBACiAKIDwvc2NyaXB0
PgogPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>