<?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>169609</bug_id>
          
          <creation_ts>2017-03-14 08:36:30 -0700</creation_ts>
          <short_desc>Optionally capture audio in the UIProcess</short_desc>
          <delta_ts>2017-03-15 21:11:06 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>169567</dependson>
    
    <dependson>169591</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1287624</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-03-14 08:36:30 -0700</bug_when>
    <thetext>Optionally capture audio in the UIProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287629</commentid>
    <comment_count>1</comment_count>
      <attachid>304385</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-03-14 09:01:16 -0700</bug_when>
    <thetext>Created attachment 304385
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287803</commentid>
    <comment_count>2</comment_count>
      <attachid>304424</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-03-14 14:46:12 -0700</bug_when>
    <thetext>Created attachment 304424
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287861</commentid>
    <comment_count>3</comment_count>
      <attachid>304438</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-03-14 16:11:47 -0700</bug_when>
    <thetext>Created attachment 304438
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287877</commentid>
    <comment_count>4</comment_count>
      <attachid>304442</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-03-14 16:50:52 -0700</bug_when>
    <thetext>Created attachment 304442
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287881</commentid>
    <comment_count>5</comment_count>
      <attachid>304438</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-03-14 16:53:07 -0700</bug_when>
    <thetext>Comment on attachment 304438
Patch

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

&gt; Source/WebKit2/ChangeLog:9
&gt; +        requested in a WebProcess to be created in the UIProcess in the UIProcess and push its audio

Nit: &quot;in the UIProcess in the UIProcess&quot;

&gt; Source/WebKit2/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:87
&gt; +            m_numberOfFrames = m_description.sampleRate() * 2;

This magic number would benefit a const so it is clear what it means.

&gt; Source/WebKit2/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:98
&gt; +        m_manager.process().send(Messages::UserMediaCaptureManager::RingBufferFrameBoundsChanged(m_id, startFrame, endFrame), 0);
&gt; +
&gt; +        m_manager.process().send(Messages::UserMediaCaptureManager::AudioSamplesAvailable(m_id, time, numberOfFrames), 0);

Why not pass startFrame and endFrame in the AudioSamplesAvailable message since they are always needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287896</commentid>
    <comment_count>6</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-03-14 17:14:57 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 304438 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=304438&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:9
&gt; &gt; +        requested in a WebProcess to be created in the UIProcess in the UIProcess and push its audio
&gt; 
&gt; Nit: &quot;in the UIProcess in the UIProcess&quot;

Whoops.

&gt; &gt; Source/WebKit2/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:87
&gt; &gt; +            m_numberOfFrames = m_description.sampleRate() * 2;
&gt; 
&gt; This magic number would benefit a const so it is clear what it means.

We use this magic multiplier many places, and everywhere it means &quot;two seconds&quot;.  But I don&apos;t know that the right thing to do would be to make this something like &quot;static const int kTwoSeconds = 2&quot;; adding a comment might be sufficient. WDYT?

&gt; &gt; Source/WebKit2/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:98
&gt; &gt; +        m_manager.process().send(Messages::UserMediaCaptureManager::RingBufferFrameBoundsChanged(m_id, startFrame, endFrame), 0);
&gt; &gt; +
&gt; &gt; +        m_manager.process().send(Messages::UserMediaCaptureManager::AudioSamplesAvailable(m_id, time, numberOfFrames), 0);
&gt; 
&gt; Why not pass startFrame and endFrame in the AudioSamplesAvailable message
&gt; since they are always needed.

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287904</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-03-14 17:28:48 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; 
&gt; We use this magic multiplier many places, and everywhere it means &quot;two
&gt; seconds&quot;.  But I don&apos;t know that the right thing to do would be to make this
&gt; something like &quot;static const int kTwoSeconds = 2&quot;; adding a comment might be
&gt; sufficient. WDYT?
&gt; 

  That will work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287907</commentid>
    <comment_count>8</comment_count>
      <attachid>304451</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-03-14 17:37:27 -0700</bug_when>
    <thetext>Created attachment 304451
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287908</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-14 17:39:54 -0700</bug_when>
    <thetext>Attachment 304451 did not pass style-queue:


ERROR: Source/WTF/wtf/persistence/Encoder.h:104:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 1 in 31 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287935</commentid>
    <comment_count>10</comment_count>
      <attachid>304451</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-03-14 19:04:50 -0700</bug_when>
    <thetext>Comment on attachment 304451
Patch

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

&gt; Source/WTF/wtf/persistence/Encoder.h:81
&gt; +    WTF_EXPORT_PRIVATE void encode(unsigned long);

Unrelated: why do we use SHA1 in this class?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287936</commentid>
    <comment_count>11</comment_count>
      <attachid>304451</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-03-14 19:06:35 -0700</bug_when>
    <thetext>Comment on attachment 304451
Patch

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

&gt; Source/WebKit2/CMakeLists.txt:662
&gt; +    WebProcess/MediaStream/UserMediaCaptureSessionManager.messages.in

GTK bot doesn&apos;t like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287953</commentid>
    <comment_count>12</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-03-14 20:18:06 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Comment on attachment 304451 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=304451&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/CMakeLists.txt:662
&gt; &gt; +    WebProcess/MediaStream/UserMediaCaptureSessionManager.messages.in
&gt; 
&gt; GTK bot doesn&apos;t like this.

Looks like a misspelling: it&apos;s from an earlier name for this file. Should be an easy fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288050</commentid>
    <comment_count>13</comment_count>
      <attachid>304451</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-03-15 07:52:29 -0700</bug_when>
    <thetext>Comment on attachment 304451
Patch

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

&gt;&gt; Source/WTF/wtf/persistence/Encoder.h:81
&gt;&gt; +    WTF_EXPORT_PRIVATE void encode(unsigned long);
&gt; 
&gt; Unrelated: why do we use SHA1 in this class?

To generate data checksums.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288063</commentid>
    <comment_count>14</comment_count>
      <attachid>304502</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-03-15 08:33:32 -0700</bug_when>
    <thetext>Created attachment 304502
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288082</commentid>
    <comment_count>15</comment_count>
      <attachid>304506</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-03-15 09:27:40 -0700</bug_when>
    <thetext>Created attachment 304506
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288083</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-15 09:29:13 -0700</bug_when>
    <thetext>Attachment 304506 did not pass style-queue:


ERROR: Source/WTF/wtf/persistence/Encoder.h:104:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 1 in 31 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288104</commentid>
    <comment_count>17</comment_count>
      <attachid>304511</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-03-15 10:12:39 -0700</bug_when>
    <thetext>Created attachment 304511
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288115</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-15 10:33:08 -0700</bug_when>
    <thetext>Attachment 304511 did not pass style-queue:


ERROR: Source/WTF/wtf/persistence/Encoder.h:104:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 1 in 30 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288201</commentid>
    <comment_count>19</comment_count>
      <attachid>304531</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-03-15 12:49:24 -0700</bug_when>
    <thetext>Created attachment 304531
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288219</commentid>
    <comment_count>20</comment_count>
      <attachid>304537</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-03-15 13:32:13 -0700</bug_when>
    <thetext>Created attachment 304537
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288222</commentid>
    <comment_count>21</comment_count>
      <attachid>304539</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-03-15 13:42:38 -0700</bug_when>
    <thetext>Created attachment 304539
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288346</commentid>
    <comment_count>22</comment_count>
      <attachid>304578</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-03-15 16:36:56 -0700</bug_when>
    <thetext>Created attachment 304578
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288441</commentid>
    <comment_count>23</comment_count>
      <attachid>304578</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-15 21:10:58 -0700</bug_when>
    <thetext>Comment on attachment 304578
Patch for landing

Clearing flags on attachment: 304578

Committed r214027: &lt;http://trac.webkit.org/changeset/214027&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288442</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-15 21:11:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304385</attachid>
            <date>2017-03-14 09:01:16 -0700</date>
            <delta_ts>2017-03-14 14:46:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169609-20170314090112.patch</filename>
            <type>text/plain</type>
            <size>65743</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzODcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDc1MTg5MzlmODQzZThm
ZDA3MWNjYWQ0NzU1NTBhMTNjMjI3Y2VlYy4uODk0OWVjNDdiMTI1MGM3MDA5NDgyMTE0NzIxODlm
MjFhM2E0ZmIwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE4IEBACiAyMDE3LTAzLTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCisgICAgICAgIE9wdGlvbmFsbHkgY2FwdHVy
ZSBhdWRpbyBpbiB0aGUgVUlQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjk2MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBFeHBvcnQgc29tZSBwcmV2aW91c2x5IHVuLWV4cG9ydGVkIHN5bWJv
bHMgZnJvbSBXZWJDb3JlIGZvciB1c2UgaW4gV2ViS2l0Mi4KKworICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9XZWJB
dWRpb0J1ZmZlckxpc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlLmg6CisKKzIwMTctMDMtMTQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBs
ZS5jb20+CisKICAgICAgICAgQWRhcHQgQ0FSaW5nQnVmZmVyIHRvIGJlIHVzYWJsZSBhY3Jvc3Mg
cHJvY2Vzc2VzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjk1OTEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDRlODdlNDI3Y2JiZmE2NzY4Nzc3ZTU2Nzg0YzMyOTEy
NjQ0Y2M4YjYuLmRkNjRkMjc0MjYzMTljYWIyYWM2OWQ5NGQyZjRiNjQ3YjgyY2YzZDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsNSArMSw5MiBAQAogMjAxNy0wMy0xNCAgSmVyIE5vYmxlICA8amVyLm5vYmxl
QGFwcGxlLmNvbT4KIAorICAgICAgICBPcHRpb25hbGx5IGNhcHR1cmUgYXVkaW8gaW4gdGhlIFVJ
UHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY5NjA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIGEgbmV3IGNsYXNzIHBhaXIsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyL1Byb3h5LCB0byBh
bGxvdyBhIFJlYWx0aW1lTWVkaWFTb3VyY2UKKyAgICAgICAgcmVxdWVzdGVkIGluIGEgV2ViUHJv
Y2VzcyB0byBiZSBjcmVhdGVkIGluIHRoZSBVSVByb2Nlc3MgaW4gdGhlIFVJUHJvY2VzcyBhbmQg
cHVzaCBpdHMgYXVkaW8KKyAgICAgICAgZGF0YSBhY3Jvc3MgdGhlIHByb2Nlc3MgYm91bmRhcnkg
dG8gaXRzIGNsaWVudHMgaW4gdGhlIFdlYlByb2Nlc3MuIEJlY2F1c2UgdGhlc2UgY2xhc3Nlcwor
ICAgICAgICBhcmUgY2xpZW50cyBvZiB0aGUgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2lu
Z2xldG9uKCksIHRoZXkgbXVzdCBiZSBhIHNpbmdsZXRvbgorICAgICAgICBpbiB0aGUgV2ViUHJv
Y2VzcyBhcyB3ZWxsLCBzbyB0aGV5IGFyZSBhdHRhY2hlZCB0byB0aGUgV2ViUHJvY2VzcyBjbGFz
cyBpbiB0aGUgd2ViIHByb2Nlc3MKKyAgICAgICAgYW5kIHRvIFdlYlByb2Nlc3NQcm94eSBpbiB0
aGUgVUlQcm9jZXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OlNvdXJjZVByb3h5KToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6On5Tb3VyY2VQ
cm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNv
dXJjZVByb3h5Ojpzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjpTb3VyY2VQcm94eTo6ZGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViS2l0OjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94eTo6bnVtYmVyT2ZGcmFtZXMp
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6flVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkpOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZv
ckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5OjpzdGFydFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzdG9wUHJvZHVjaW5nRGF0YSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6cHJvY2Vzcyk6
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6bmV4dFNlc3Npb25J
RCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OlNv
dXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6
On5Tb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291
cmNlOjpzZXRDYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6U291cmNlOjpzZXRTZXR0aW5ncyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OmRlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6c2V0U3RvcmFnZSk6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnNldFJpbmdCdWZmZXJGcmFt
ZUJvdW5kcyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3Vy
Y2U6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIpOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUpOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6aW5pdGlhbGl6ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVNZWRpYVNvdXJj
ZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0OjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlU3RvcHBlZCk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VNdXRlZENoYW5nZWQpOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlRW5hYmxlZENoYW5nZWQpOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlU2V0dGluZ3NDaGFu
Z2VkKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN0b3JhZ2VD
aGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnJpbmdC
dWZmZXJGcmFtZUJvdW5kc0NoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN0YXJ0UHJvZHVjaW5nRGF0YSk6CisgICAgICAgIChXZWJL
aXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzdG9wUHJvZHVjaW5nRGF0YSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oOiBBZGRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2Vz
LmluOiBBZGRlZC4KKworICAgICAgICBJbml0aWFsaXplIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
L1Byb3h5OgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2Eu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVX
ZWJQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHkpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKToK
KworICAgICAgICBXZWJVc2VyTWVkaWFDbGllbnRNYWMgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeSBu
b3cgdGhhdCB0aGUgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgb3ZlcnJpZGVzCisgICAgICAgIHRo
ZSBmYWN0b3JpZXM6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVz
ZXJNZWRpYUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVudDo6
V2ViVXNlck1lZGlhQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50
Ojppbml0aWFsaXplRmFjdG9yaWVzKTogRGVsZXRlZC4KKworICAgICAgICBBZGQgYSBuZXcgcHJl
ZmVyZW5jZSBhbmQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBtZW1iZXIgdG8gY29udHJv
bCB3aGV0aGVyCisgICAgICAgIGNhcHR1cmluZyBpcyBkb25lIGluIHRoZSBVSVByb2Nlc3M6CisK
KyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oOgorICAgICAgICAq
IFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorCisgICAgICAgIEFkZCBuZXcgZmls
ZXMgdG8gdGhlIHByb2plY3Q6CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKworMjAxNy0wMy0xNCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNv
bT4KKwogICAgICAgICBBZGFwdCBDQVJpbmdCdWZmZXIgdG8gYmUgdXNhYmxlIGFjcm9zcyBwcm9j
ZXNzZXMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
OTU5MQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggNWExOWNjNWE1NTM3Yjg1ZTc1NmY2MzBjZDU4OWZlYjlhNzI1ZmYzYi4uMGIz
ZWQzOTg3ODhjYjZhNGIwYjFlOWQ0OWQ1Njg4MWQwOGVhNDY0NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjE2OCw3ICs2MTY4
LDcgQEAKIAkJQ0RFNTk1OTcxQkYyNkUyMTAwQTFDQkU4IC8qIENETVNlc3Npb25NZWRpYVNvdXJj
ZUFWRk9iakMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENERTU5NTk2MUJGMjZFMjEwMEExQ0JFOCAvKiBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpD
LmggKi87IH07CiAJCUNERTU5NTlEMUJGMjc1NzEwMEExQ0JFOCAvKiBDRE1TZXNzaW9uTWVkaWFT
b3VyY2VBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0RFNTk1OUMxQkYyNzU3MTAwQTFDQkU4IC8qIENETVNlc3Npb25NZWRpYVNvdXJjZUFW
Rk9iakMubW0gKi87IH07CiAJCUNERTY2N0E0MUU0QkJGMTUwMEU4MTU0QSAvKiBXZWJBdWRpb0J1
ZmZlckxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0RFNjY3QTIxRTRCQkYxNTAwRTgxNTRBIC8qIFdlYkF1ZGlvQnVmZmVyTGlzdC5jcHAgKi87
IH07Ci0JCUNERTY2N0E1MUU0QkJGMTUwMEU4MTU0QSAvKiBXZWJBdWRpb0J1ZmZlckxpc3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTY2N0EzMUU0
QkJGMTUwMEU4MTU0QSAvKiBXZWJBdWRpb0J1ZmZlckxpc3QuaCAqLzsgfTsKKwkJQ0RFNjY3QTUx
RTRCQkYxNTAwRTgxNTRBIC8qIFdlYkF1ZGlvQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3QTMxRTRCQkYxNTAwRTgxNTRBIC8q
IFdlYkF1ZGlvQnVmZmVyTGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUNERTdGQzQ0MTgxOTA0QjEwMDJCQkI3NyAvKiBPcmRlckl0ZXJhdG9y
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTdG
QzQyMTgxOTA0QjEwMDJCQkI3NyAvKiBPcmRlckl0ZXJhdG9yLmNwcCAqLzsgfTsKIAkJQ0RFN0ZD
NDUxODE5MDRCMTAwMkJCQjc3IC8qIE9yZGVySXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTdGQzQzMTgxOTA0QjEwMDJCQkI3NyAvKiBP
cmRlckl0ZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQ0RFODNEQjExODNDNDQwNjAwMzFFQUEzIC8qIFZpZGVvUGxheWJhY2tRdWFsaXR5
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTgz
REFGMTgzQzQ0MDYwMDMxRUFBMyAvKiBWaWRlb1BsYXliYWNrUXVhbGl0eS5jcHAgKi87IH07CkBA
IC02MTg1LDYgKzYxODUsNyBAQAogCQlDREVBN0M4NTEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVy
RnVsbFNjcmVlbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDREVBN0M4MzEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNjcmVlbi5jcHAgKi87
IH07CiAJCUNERUUzOTM3MTc5NzQyNTkwMDFENzU4MCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERUUzOTM2MTc5
NzQyNTkwMDFENzU4MCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmNwcCAqLzsgfTsKIAkJQ0RFRjRGRDcx
N0U4NUM4RjAwQUVFMjRCIC8qIEdyaWRMZW5ndGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERUY0RkQ2MTdFODVDOEYwMEFFRTI0QiAvKiBHcmlkTGVu
Z3RoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
Q0RFRkEyMjgxRTc2NjlFODAwMEFFOTlDIC8qIFBsYXRmb3JtQXVkaW9EYXRhLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREU2NjdBMTFFNEJCQTREMDBF
ODE1NEEgLyogUGxhdGZvcm1BdWRpb0RhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlDREYyQjAwNDE4MUYwNTlDMDBGMkI0MjQgLyogTWVkaWFE
ZXNjcmlwdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0RGMkIwMDMxODFGMDU5QzAwRjJCNDI0IC8qIE1lZGlhRGVzY3JpcHRpb24uaCAqLzsgfTsK
IAkJQ0RGMkIwMTAxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tCb3guY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGMkIwMDYxODIwNTQwNjAwRjJCNDI0
IC8qIE1vY2tCb3guY3BwICovOyB9OwogCQlDREYyQjAxMTE4MjA1NDA2MDBGMkI0MjQgLyogTW9j
a0JveC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RG
MkIwMDcxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tCb3guaCAqLzsgfTsKQEAgLTI2OTY5LDYgKzI2
OTcwLDcgQEAKIAkJCQlGRDMxNjA5OTEyQjAyNkY3MDBDMUEzNTkgLyogSFJURkRhdGFiYXNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA5QjEyQjAyNkY3MDBDMUEzNTkgLyogSFJURkRhdGFi
YXNlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA5RDEyQjAyNkY3MDBDMUEzNTkg
LyogSFJURkVsZXZhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0RFRkEyMjgxRTc2NjlFODAw
MEFFOTlDIC8qIFBsYXRmb3JtQXVkaW9EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA5
RjEyQjAyNkY3MDBDMUEzNTkgLyogSFJURktlcm5lbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQz
MTYwQTExMkIwMjZGNzAwQzFBMzU5IC8qIEhSVEZQYW5uZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDOTdFMjNBMTA5MTQ0OTUwMDEwRDM2MSAvKiBIVE1MQWxsQ29sbGVjdGlvbi5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9XZWJBdWRp
b0J1ZmZlckxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1dlYkF1ZGlvQnVm
ZmVyTGlzdC5oCmluZGV4IGJiZjNjMTM5YjYyNWU3YjRjNzlhZjg0MjQxMzhiNTA0MDczMTg1YTgu
LmRiNjVkMzUzNGUzYmE1ZTc4NzljZjJmNGQ5Njg0MDgwYzA0ZjYxNzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1dlYkF1ZGlvQnVmZmVyTGlzdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1dlYkF1ZGlvQnVmZmVyTGlzdC5oCkBAIC00Miw3
ICs0Miw3IEBAIGNsYXNzIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKIGNsYXNzIFdlYkF1ZGlv
QnVmZmVyTGlzdCA6IHB1YmxpYyBQbGF0Zm9ybUF1ZGlvRGF0YSB7CiBwdWJsaWM6CiAgICAgV2Vi
QXVkaW9CdWZmZXJMaXN0KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYpOwotICAgIFdl
YkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCB1aW50MzJf
dCBzYW1wbGVDb3VudCk7CisgICAgV0VCQ09SRV9FWFBPUlQgV2ViQXVkaW9CdWZmZXJMaXN0KGNv
bnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQzMl90IHNhbXBsZUNvdW50KTsKICAg
ICBXZWJBdWRpb0J1ZmZlckxpc3QoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgQ01T
YW1wbGVCdWZmZXJSZWYpOwogCiAgICAgQXVkaW9CdWZmZXJMaXN0KiBsaXN0KCkgY29uc3QgeyBy
ZXR1cm4gbV9saXN0LmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXggYTgzMGQ0MGVjOTNi
ZTlmNjMxYWQwNWYzY2U0NTZiYWIzNTZlZTE5Mi4uMDg3NDRjYWM0OWQyODcxZWNjYWRiODNjZmEy
ZjhlMWMyOGQwMDkzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtNjEsNyArNjEsNyBAQCBjbGFz
cyBNZWRpYVN0cmVhbVByaXZhdGU7CiBjbGFzcyBQbGF0Zm9ybUF1ZGlvRGF0YTsKIGNsYXNzIFJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczsKIAotY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZSA6
IHB1YmxpYyBSZWZDb3VudGVkPFJlYWx0aW1lTWVkaWFTb3VyY2U+IHsKK2NsYXNzIFdFQkNPUkVf
RVhQT1JUIFJlYWx0aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxSZWFsdGltZU1l
ZGlhU291cmNlPiB7CiBwdWJsaWM6CiAgICAgY2xhc3MgT2JzZXJ2ZXIgewogICAgIHB1YmxpYzoK
QEAgLTIwMyw2ICsyMDMsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGFwcGx5Q29u
c3RyYWludHMoY29uc3QgRmxhdHRlbmVkQ29uc3RyYWludCYpOwogICAgIHZpcnR1YWwgdm9pZCBh
cHBseVNpemVBbmRGcmFtZVJhdGUoc3RkOjpvcHRpb25hbDxpbnQ+IHdpZHRoLCBzdGQ6Om9wdGlv
bmFsPGludD4gaGVpZ2h0LCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4pOwogCisgICAgY29uc3QgVmVj
dG9yPE9ic2VydmVyKj4gb2JzZXJ2ZXJzKCkgY29uc3QgeyByZXR1cm4gbV9vYnNlcnZlcnM7IH0K
KwogICAgIGJvb2wgbV9tdXRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2VuYWJsZWQgeyB0cnVl
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYktpdDIvQ01ha2VMaXN0cy50eHQKaW5kZXggNjBlZjllZjJhNGNmOWFjYjgwMGNhNjQzOGEw
YjgyZTEyMjg4NWEzYy4uM2YzNjRjNzM5NjQwMzc2ZmI1N2RiNWMxNjViMGM2YWViZTIxMzljNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YktpdDIvQ01ha2VMaXN0cy50eHQKQEAgLTY1Niw2ICs2NTYsOCBAQCBzZXQoV2ViS2l0Ml9NRVNT
QUdFU19JTl9GSUxFUwogCiAgICAgV2ViUHJvY2Vzcy9JY29uRGF0YWJhc2UvV2ViSWNvbkRhdGFi
YXNlUHJveHkubWVzc2FnZXMuaW4KIAorICAgIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1l
ZGlhQ2FwdHVyZVNlc3Npb25NYW5hZ2VyLm1lc3NhZ2VzLmluCisKICAgICBXZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL1dlYlJUQ01vbml0b3IubWVzc2FnZXMuaW4KICAgICBXZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL1dlYlJUQ1Jlc29sdmVyLm1lc3NhZ2VzLmluCiAgICAgV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291
cmNlcy5tYWtlCmluZGV4IDk5NDkyZmZhZWExNDRlZTRjN2Y0ZTVlZTVkOTFlM2Y2NmI4YjVlNTAu
LjlkZWYzNzA0Yjc0ZDQ1ODhiYWRjMGI0MmMxMjA3MDdjYWZkOTFjNGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdDIvRGVy
aXZlZFNvdXJjZXMubWFrZQpAQCAtNDUsNiArNDUsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktp
dDIpL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9J
Y29uRGF0YWJhc2UgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlIFwKKyAg
ICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0gXAogICAgICQoV2ViS2l0MikvV2Vi
UHJvY2Vzcy9OZXR3b3JrIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTmV0d29yay93ZWJy
dGMgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zIFwKQEAgLTY1LDYg
KzY2LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvQ29jb2EgXAogICAg
ICQoV2ViS2l0MikvVUlQcm9jZXNzL0RhdGFiYXNlcyBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nl
c3MvRG93bmxvYWRzIFwKKyAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9NZWRpYVN0cmVhbSBcCiAg
ICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvTmV0d29yayBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nl
c3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL05v
dGlmaWNhdGlvbnMgXApAQCAtMTIxLDYgKzEyMyw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAog
ICAgIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIgXAogICAgIFN0b3JhZ2VBcmVhTWFwIFwK
ICAgICBTdG9yYWdlTWFuYWdlciBcCisgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgXAorICAg
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkgXAogICAgIFZpZXdHZXN0dXJlQ29udHJvbGxl
ciBcCiAgICAgVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3RvciBcCiAgICAgVmlld1VwZGF0ZURp
c3BhdGNoZXIgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVu
Y2VzRGVmaW5pdGlvbnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0Rl
ZmluaXRpb25zLmgKaW5kZXggN2ZmNzcwMjhiZmI1YzA1NWQ4ZWIyZDZhMDUyMTg4NDhmYWQ2YzU5
YS4uYjljMTU5ZGIwODZlYjI1NjcxYTRlYmM4MzYyYmYyMDQ5NzI5NWQ4MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCkBAIC0xMDMs
NiArMTAzLDEyIEBACiAjZGVmaW5lIERFRkFVTFRfQ0FOVkFTX1VTRVNfQUNDRUxFUkFURURfRFJB
V0lORyB0cnVlCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBERUZBVUxU
X1NIT1VMRF9DQVBUVVJFX0FVRElPX0lOX1VJUFJPQ0VTUyB0cnVlCisjZWxzZQorI2RlZmluZSBE
RUZBVUxUX1NIT1VMRF9DQVBUVVJFX0FVRElPX0lOX1VJUFJPQ0VTUyBmYWxzZQorI2VuZGlmCisK
IC8vIG1hY3JvKEtleVVwcGVyLCBLZXlMb3dlciwgVHlwZU5hbWVVcHBlciwgVHlwZU5hbWUsIERl
ZmF1bHRWYWx1ZSwgSHVtYW5SZWFkYWJsZU5hbWUsIEh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbikK
IAogI2RlZmluZSBGT1JfRUFDSF9XRUJLSVRfQk9PTF9QUkVGRVJFTkNFKG1hY3JvKSBcCkBAIC0y
NTIsNiArMjU4LDcgQEAKICAgICBtYWNybyhHYW1lcGFkc0VuYWJsZWQsIGdhbWVwYWRzRW5hYmxl
ZCwgQm9vbCwgYm9vbCwgdHJ1ZSwgIkdhbWVwYWRzIiwgIldlYiBHYW1lcGFkIEFQSSBzdXBwb3J0
IikgXAogICAgIG1hY3JvKElucHV0RXZlbnRzRW5hYmxlZCwgaW5wdXRFdmVudHNFbmFibGVkLCBC
b29sLCBib29sLCB0cnVlLCAiSW5wdXQgRXZlbnRzIiwgIkVuYWJsZSBJbnB1dEV2ZW50cyBzdXBw
b3J0IikgXAogICAgIG1hY3JvKENyZWRlbnRpYWxNYW5hZ2VtZW50RW5hYmxlZCwgY3JlZGVudGlh
bE1hbmFnZW1lbnRFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSwgIkNyZWRlbnRpYWwgTWFuYWdl
bWVudCIsICJFbmFibGUgQ3JlZGVudGlhbCBNYW5hZ2VtZW50IHN1cHBvcnQiKSBcCisgICAgbWFj
cm8oU2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MsIHNob3VsZENhcHR1cmVBdWRpb0luVUlQ
cm9jZXNzLCBCb29sLCBib29sLCBERUZBVUxUX1NIT1VMRF9DQVBUVVJFX0FVRElPX0lOX1VJUFJP
Q0VTUywgIkNhcHR1cmUiLCAiQ2FwdHVyZSBBdWRpbyBpbiBVSVByb2Nlc3MiKSBcCiAgICAgXAog
CiAjZGVmaW5lIEZPUl9FQUNIX1dFQktJVF9ET1VCTEVfUFJFRkVSRU5DRShtYWNybykgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwCmluZGV4IDUxMmQyMTJkODRhMDExODA4YzI5YThiNTE4NDE5ZTIwYTUxNzZiMWMuLmYz
M2VhNmMwYTgzYjQ5YjAxZTdhMTZhY2Q1YTExZWJhOWMzMTE2MzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAg
LTY4LDYgKzY4LDcgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUo
SVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbWVkaWFLZXlTdG9y
YWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAg
ICAgZW5jb2RlciA8PCBhdWRpb0NhcHR1cmVFeHRlbnNpb25IYW5kbGU7CisgICAgZW5jb2RlciA8
PCBzaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzczsKICNlbmRpZgogICAgIGVuY29kZXIgPDwg
c2hvdWxkVXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uOwogICAgIGVuY29kZXIgPDwgdXJsU2NoZW1l
c1JlZ2lzdGVyZWRBc0VtcHR5RG9jdW1lbnQ7CkBAIC0xODksNiArMTkwLDggQEAgYm9vbCBXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBX
ZWJQcm9jZXNzQ3JlYXQKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocGFyYW1ldGVycy5hdWRpb0NhcHR1cmVFeHRlbnNpb25IYW5kbGUpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnNob3Vs
ZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlm
CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnNob3VsZFVzZVRlc3RpbmdOZXR3
b3JrU2Vzc2lvbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IGEzZTYyY2Y5
ZDQzMWY0MGJkY2E3YTVjODAwY2M1NzA1OTcxYzhlOTQuLmZkODA2YjIyMDI0NzllMTYwNDg2MWRm
OThlMDhjYWIxYTFhYTYwZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtODgsNiArODgsNyBAQCBzdHJ1Y3QgV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
IG1lZGlhS2V5U3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBhdWRpb0NhcHR1cmVFeHRl
bnNpb25IYW5kbGU7CisgICAgYm9vbCBzaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyB7IGZh
bHNlIH07CiAjZW5kaWYKICAgICBTdHJpbmcgbWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWYxOGIxYjE3MjY5OGUyNmFm
YjkwZDA2YWU1ODE0MmViOTA5ZWQyNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtMCww
ICsxLDE1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdl
LmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9N
ZWRpYUNvbnN0cmFpbnRzSW1wbC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHkgOiBwdWJsaWMgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIsIHB1YmxpYyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6
Q2xpZW50IHsKK3B1YmxpYzoKKyAgICBTb3VyY2VQcm94eSh1aW50NjRfdCBpZCwgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eSYgbWFuYWdlciwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYg
c291cmNlKQorICAgICAgICA6IG1faWQoaWQpCisgICAgICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIp
CisgICAgICAgICwgbV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQorICAgICAgICAsIG1fc3RvcmFn
ZSgqbmV3IFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlKHRoaXMpKQorICAgICAgICAsIG1fcmluZ0J1
ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KCZtX3N0b3JhZ2Up
KQorICAgIHsKKyAgICAgICAgbV9zb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKKyAgICB9CisK
KyAgICB+U291cmNlUHJveHkoKQorICAgIHsKKyAgICAgICAgbV9zdG9yYWdlLmludmFsaWRhdGUo
KTsKKyAgICAgICAgbV9zb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKKyAgICB9CisKKyAg
ICBSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UoKSB7IHJldHVybiBtX3NvdXJjZTsgfQorICAg
IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24oKSB7IHJldHVybiBtX2Rlc2Ny
aXB0aW9uOyB9CisgICAgaW50NjRfdCBudW1iZXJPZkZyYW1lcygpIHsgcmV0dXJuIG1fbnVtYmVy
T2ZGcmFtZXM7IH0KKworICAgIHZvaWQgc291cmNlU3RvcHBlZCgpIGZpbmFsIHsKKyAgICAgICAg
bV9tYW5hZ2VyLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6U291cmNlU3RvcHBlZChtX2lkKSwgMCk7CisgICAgfQorCisgICAgdm9pZCBzb3VyY2VNdXRl
ZENoYW5nZWQoKSBmaW5hbCB7CisgICAgICAgIG1fbWFuYWdlci5wcm9jZXNzKCkuc2VuZChNZXNz
YWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZU11dGVkQ2hhbmdlZChtX2lkLCBt
X3NvdXJjZS0+bXV0ZWQoKSksIDApOworICAgIH0KKworICAgIHZvaWQgc291cmNlRW5hYmxlZENo
YW5nZWQoKSBmaW5hbCB7CisgICAgICAgIG1fbWFuYWdlci5wcm9jZXNzKCkuc2VuZChNZXNzYWdl
czo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZUVuYWJsZWRDaGFuZ2VkKG1faWQsIG1f
c291cmNlLT5lbmFibGVkKCkpLCAwKTsKKyAgICB9CisKKyAgICB2b2lkIHNvdXJjZVNldHRpbmdz
Q2hhbmdlZCgpIGZpbmFsIHsKKyAgICAgICAgbV9tYW5hZ2VyLnByb2Nlc3MoKS5zZW5kKE1lc3Nh
Z2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlU2V0dGluZ3NDaGFuZ2VkKG1faWQs
IG1fc291cmNlLT5zZXR0aW5ncygpKSwgMCk7CisgICAgfQorCisgICAgdm9pZCBhdWRpb1NhbXBs
ZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0
YSYgYXVkaW9EYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwg
c2l6ZV90IG51bWJlck9mRnJhbWVzKSBmaW5hbCB7CisgICAgICAgIGlmIChtX2Rlc2NyaXB0aW9u
ICE9IGRlc2NyaXB0aW9uKSB7CisgICAgICAgICAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxhdGZv
cm1EZXNjcmlwdGlvbigpLnR5cGUgPT0gUGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0cmVh
bUJhc2ljVHlwZSk7CisgICAgICAgICAgICBtX2Rlc2NyaXB0aW9uID0gKldURjo6Z2V0PGNvbnN0
IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3Jp
cHRpb24oKS5kZXNjcmlwdGlvbik7CisgICAgICAgICAgICBtX251bWJlck9mRnJhbWVzID0gbV9k
ZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAyOworICAgICAgICAgICAgbV9yaW5nQnVmZmVyLmFs
bG9jYXRlKG1fZGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgbV9udW1iZXJPZkZyYW1l
cyk7CisgICAgICAgIH0KKworICAgICAgICBBU1NFUlQoaXM8V2ViQXVkaW9CdWZmZXJMaXN0Pihh
dWRpb0RhdGEpKTsKKyAgICAgICAgbV9yaW5nQnVmZmVyLnN0b3JlKGRvd25jYXN0PFdlYkF1ZGlv
QnVmZmVyTGlzdD4oYXVkaW9EYXRhKS5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVW
YWx1ZSgpKTsKKyAgICAgICAgdWludDY0X3Qgc3RhcnRGcmFtZTsKKyAgICAgICAgdWludDY0X3Qg
ZW5kRnJhbWU7CisgICAgICAgIG1fcmluZ0J1ZmZlci5nZXRDdXJyZW50RnJhbWVCb3VuZHMoc3Rh
cnRGcmFtZSwgZW5kRnJhbWUpOworICAgICAgICBtX21hbmFnZXIucHJvY2VzcygpLnNlbmQoTWVz
c2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpSaW5nQnVmZmVyRnJhbWVCb3VuZHNDaGFu
Z2VkKG1faWQsIHN0YXJ0RnJhbWUsIGVuZEZyYW1lKSwgMCk7CisKKyAgICAgICAgbV9tYW5hZ2Vy
LnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9T
YW1wbGVzQXZhaWxhYmxlKG1faWQsIHRpbWUsIG51bWJlck9mRnJhbWVzKSwgMCk7CisgICAgfQor
CisgICAgdm9pZCBzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2UpIGZpbmFsIHsK
KyAgICAgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOworICAgICAgICBpZiAoc3RvcmFn
ZSkKKyAgICAgICAgICAgIHN0b3JhZ2UtPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9y
eTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworICAgICAgICBtX21hbmFnZXIucHJvY2VzcygpLnNl
bmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTdG9yYWdlQ2hhbmdlZChtX2lk
LCBoYW5kbGUsIG1fZGVzY3JpcHRpb24sIG1fbnVtYmVyT2ZGcmFtZXMpLCAwKTsKKyAgICB9CisK
K3Byb3RlY3RlZDoKKyAgICB1aW50NjRfdCBtX2lkOworICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkmIG1fbWFuYWdlcjsKKyAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3Vy
Y2U7CisgICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIG1fc3RvcmFnZTsKKyAgICBDQVJpbmdC
dWZmZXIgbV9yaW5nQnVmZmVyOworICAgIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2Ny
aXB0aW9uIHsgfTsKKyAgICBpbnQ2NF90IG1fbnVtYmVyT2ZGcmFtZXMgeyAwIH07Cit9OworCitV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
KFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcykKKyAgICA6IG1fcHJvY2Vzcyhwcm9jZXNzKQorewor
ICAgIG1fcHJvY2Vzcy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMpOworfQorCitVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Ojp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgp
Cit7CisgICAgbV9wcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKK30KKwordm9p
ZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1
cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IENhcHR1cmVEZXZpY2Um
IGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50c0RhdGEmIGNvbnN0cmFpbnRzRGF0YSwgYm9v
bCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cykKK3sKKyAgICBhdXRvIGNv
bnN0cmFpbnRzID0gTWVkaWFDb25zdHJhaW50c0ltcGw6OmNyZWF0ZShjb25zdHJhaW50c0RhdGEp
OworICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBzb3VyY2UgPSBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5kZWZhdWx0QXVkaW9GYWN0b3J5KCktPmNyZWF0ZU1l
ZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhkZXZpY2UsIGNvbnN0cmFp
bnRzLnB0cigpLCBpbnZhbGlkQ29uc3RyYWludHMpOworICAgIHN1Y2NlZWRlZCA9ICEhc291cmNl
OworICAgIAorICAgIGlmIChzb3VyY2UpCisgICAgICAgIG1fcHJveGllcy5zZXQoaWQsIHN0ZDo6
bWFrZV91bmlxdWU8U291cmNlUHJveHk+KGlkLCAqdGhpcywgc291cmNlLnJlbGVhc2VOb25OdWxs
KCkpKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzdGFydFByb2R1
Y2luZ0RhdGEodWludDY0X3QgaWQpCit7CisgICAgYXV0byBpdGVyID0gbV9wcm94aWVzLmZpbmQo
aWQpOworICAgIGlmIChpdGVyICE9IG1fcHJveGllcy5lbmQoKSkKKyAgICAgICAgaXRlci0+dmFs
dWUtPnNvdXJjZSgpLnN0YXJ0UHJvZHVjaW5nRGF0YSgpOworfQorCit2b2lkIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6OnN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQoreworICAg
IGF1dG8gaXRlciA9IG1fcHJveGllcy5maW5kKGlkKTsKKyAgICBpZiAoaXRlciAhPSBtX3Byb3hp
ZXMuZW5kKCkpCisgICAgICAgIGl0ZXItPnZhbHVlLT5zb3VyY2UoKS5zdG9wUHJvZHVjaW5nRGF0
YSgpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODExMzIxZGJhY2EwNDc1ZWQ0NzlmMmJiZmJiMzVlNTY2NGQ4ZjZkMgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRl
ICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAi
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBT
aGFyZWRNZW1vcnk7CitjbGFzcyBXZWJQcm9jZXNzUHJveHk7CisKK2NsYXNzIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkgOiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK3B1Ymxp
YzoKKyAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KFdlYlByb2Nlc3NQcm94eSYpOwor
ICAgIH5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCk7CisKKyAgICBXZWJQcm9jZXNzUHJv
eHkmIHByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX3Byb2Nlc3M7IH0KKworcHJpdmF0ZToKKyAg
ICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisgICAgdm9pZCBkaWRSZWNlaXZl
U3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVf
cHRyPElQQzo6RW5jb2Rlcj4mKSBmaW5hbDsKKworICAgIHZvaWQgY3JlYXRlTWVkaWFTb3VyY2VG
b3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEmLCBi
b29sJiBzdWNjZWVkZWQsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnRzKTsKKyAgICB2b2lkIHN0
YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CisgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSh1
aW50NjRfdCk7CisKKyAgICBjbGFzcyBTb3VyY2VQcm94eTsKKyAgICBmcmllbmQgY2xhc3MgU291
cmNlUHJveHk7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRyPFNvdXJjZVBy
b3h5Pj4gbV9wcm94aWVzOworICAgIFdlYlByb2Nlc3NQcm94eSYgbV9wcm9jZXNzOworfTsKKwor
fQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzRiOGNiYjdiOGE2OWI3M2IzOTdhOWU5ZDJiY2MwZTcwYjEzMTE1ZgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjggQEAKKyMgQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+IFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkgeworICAgIENyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdp
dGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2Us
IHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSBjb25zdHJhaW50cykgLT4gKGJv
b2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cykKKyAgICBTdGFydFByb2R1Y2lu
Z0RhdGEodWludDY0X3QgaWQpCisgICAgU3RvcFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bv
b2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9v
bENvY29hLm1tCmluZGV4IDg3MzhmMDcwNjM3ZjQ5MGYxZjA4NmMwOTliOTM3NGU3NDBlY2M3ZWUu
LmY0NzNiNWQ4MTIxOGViZjJmMDJhOWFmZmZiYWE1ZTE0OTk5YjhhZjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBA
IC0yNTgsNiArMjU4LDggQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXpl
V2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJgogICAgIC8vIEZJWE1FOiBS
ZW1vdmUgdGhpcyBhbmQgcmVsYXRlZCBwYXJhbWV0ZXIgd2hlbiA8cmRhcjovL3Byb2JsZW0vMjk0
NDgzNjg+IGlzIGZpeGVkLgogICAgIGlmIChtZWRpYVN0cmVhbUVuYWJsZWQgfHwgd2ViUlRDRW5h
YmxlZCkKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yR2VuZXJpY0V4
dGVuc2lvbigiY29tLmFwcGxlLndlYmtpdC5taWNyb3Bob25lIiwgcGFyYW1ldGVycy5hdWRpb0Nh
cHR1cmVFeHRlbnNpb25IYW5kbGUpOworCisgICAgcGFyYW1ldGVycy5zaG91bGRDYXB0dXJlQXVk
aW9JblVJUHJvY2VzcyA9IG1fZGVmYXVsdFBhZ2VHcm91cC0+cHJlZmVyZW5jZXMoKS5zaG91bGRD
YXB0dXJlQXVkaW9JblVJUHJvY2VzcygpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggNWZmNjRkNjQ4YzRiNzg0MjVmZDkx
MjcwNjM0N2YyODc4Zjk0ZTUwMC4uY2QxZGNkN2Q1NmVjNjc3ZDI0Yzk3OTk2Zjc4ZDRiZDEwMjU3
ZDU5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAK
QEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIlRl
eHRDaGVja2VyU3RhdGUuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5oIgorI2luY2x1ZGUgIlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtLmgiCiAjaW5jbHVkZSAiV2ViSWNvbkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVj
dG9yVXRpbGl0aWVzLmgiCkBAIC0xMDQsOSArMTA1LDE0IEBAIFdlYlByb2Nlc3NQcm94eTo6V2Vi
UHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgV2Vic2l0ZURhdGFTdG9y
ZSoKICAgICAsIG1faXNSZXNwb25zaXZlKE5vT3JNYXliZTo6TWF5YmUpCiAgICAgLCBtX3Zpc2li
bGVQYWdlQ291bnRlcihbdGhpc10oUmVmQ291bnRlckV2ZW50KSB7IHVwZGF0ZUJhY2tncm91bmRS
ZXNwb25zaXZlbmVzc1RpbWVyKCk7IH0pCiAgICAgLCBtX3dlYnNpdGVEYXRhU3RvcmUod2Vic2l0
ZURhdGFTdG9yZSkKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KyAgICAsIG1fdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eShzdGQ6Om1ha2VfdW5pcXVlPFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk+KCp0aGlzKSkKKyNlbmRpZgogewogICAgIFdlYlBh
c3RlYm9hcmRQcm94eTo6c2luZ2xldG9uKCkuYWRkV2ViUHJvY2Vzc1Byb3h5KCp0aGlzKTsKIAor
CisKICAgICBjb25uZWN0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaAppbmRleCBmNWU2MWFhMDAxODA2Nzc0ODJhZjM3MDdkY2JkYjE5OTUxN2ZhZjZh
Li5iMzI4ODE1Y2YxNjQyN2Y4YWM2ZGQ2NjZmM2E5NTcyZGFhNzFjOTNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC01Niw2ICs1Niw3IEBAIHN0cnVj
dCBQbHVnaW5JbmZvOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNz
UHJveHk7CitjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OwogY2xhc3MgV2ViQmFj
a0ZvcndhcmRMaXN0SXRlbTsKIGNsYXNzIFdlYlBhZ2VHcm91cDsKIGNsYXNzIFdlYlByb2Nlc3NQ
b29sOwpAQCAtMjczLDYgKzI3NCwxMCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJzaXRlRGF0
YVN0b3JlPiBtX3dlYnNpdGVEYXRhU3RvcmU7CiAKICAgICBib29sIG1faXNVbmRlck1lbW9yeVBy
ZXNzdXJlIHsgZmFsc2UgfTsKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
PiBtX3VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDE5MjNjODY0ZTAxNjE5ZDk1MGIxOGViNTk1MTE5YjBkMGZjMTUw
ZTIuLjFmODViMmIzYzM0OTAwMGEwM2M3NzI5OTI2MDQ5ZTJmOWEwNDNiZmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE4NzQs
MTEgKzE4NzQsMTggQEAKIAkJQ0QwMDNBNTMxOUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5
U3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEMDAzQTUxMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5h
Z2VyLmggKi87IH07CiAJCUNEMTlBMjZEMUExM0U4MkEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDE5QTI2OTFBMTNFODIwMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuY3BwICovOyB9OwogCQlDRDE5QTI2RTFBMTNFODM0MDA4RDY1MEUgLyogV2ViRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEMTlBMjZBMUExM0U4MjEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oICovOyB9OworCQlDRDQ5MUIwNzFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0Q0OTFCMDUxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmNwcCAqLzsgfTsKKwkJQ0Q0OTFCMDgxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDQ5MUIwNjFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
aCAqLzsgfTsKKwkJQ0Q0OTFCMEQxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENENDkxQjBCMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCUNENDkxQjBFMUU3MzJFNEQw
MDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ5MUIwQzFFNzMyRTREMDAwMDkw
NjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oICovOyB9OworCQlDRDQ5MUIx
MjFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ5MUIxMDFFNzM0
ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgKi87IH07CisJ
CUNENDkxQjEzMUU3MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ5MUIx
MTFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oICovOyB9
OworCQlDRDQ5MUIxNzFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDQ5MUIxNTFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCUNENDkxQjE4MUU3MzUy
NTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENDkxQjE2MUU3MzUy
NTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLzsg
fTsKIAkJQ0Q0QjREOUMxRTc2NUUwMDAwRDI3MDkyIC8qIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENEI0
RDlBMUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5jcHAgKi87IH07
CiAJCUNENEI0RDlEMUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0QjREOUIx
RTc2NUUwMDAwRDI3MDkyIC8qIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmggKi87IH07CiAJCUNE
NUM2NkEwMTM0QjlEMzgwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xp
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
NUM2NjlFMTM0QjlEMzYwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xp
ZW50LmNwcCAqLzsgfTsKIAkJQ0Q1QzY2QTExMzRCOUQzODAwNEZFMkE4IC8qIEluamVjdGVkQnVu
ZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENENUM2NjlGMTM0QjlEMzcwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRs
ZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmggKi87IH07Ci0JCUNENjE3ODE0MUU2REU5QTAwMEZEQTU3
RCAvKiBXZWJVc2VyTWVkaWFDbGllbnRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDYxNzgxMjFFNkRFOUEwMDBGREE1N0QgLyogV2ViVXNlck1l
ZGlhQ2xpZW50TWFjLm1tICovOyB9OwogCQlDRDZGNzVGNDEzMUI2NkQwMDBENkIyMUUgLyogV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRDczQkEzRTEzMUEyRThBMDBFRURFRDIgLyogV2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eS5jcHAgKi87IH07CiAJCUNENzNCQTQ3MTMxQUNDOUEwMEVFREVEMiAvKiBX
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENzNCQTQ1MTMxQUNDODgwMEVFREVE
MiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsK
IAkJQ0Q3M0JBNEUxMzFBQ0RCNzAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENENzNCQTQ4MTMxQUNEOEUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi87IH07CkBAIC00MTU3LDExICs0MTY0LDIwIEBACiAJCUNEMDAzQTUx
MTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaDsgcGF0
aCA9IE1lZGlhQ2FjaGUvV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRDE5QTI2OTFBMTNFODIwMDA4RDY1MEUgLyogV2ViRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRDE5QTI2QTFBMTNFODIxMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFCMDUxRTcwRDA1
RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFCMDYxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNE
NDkxQjBBMUU3MzJEMTIwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdl
cy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFCMEIxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFCMEMxRTczMkU0RDAwMDA5MDY2
IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ5MUIxMDFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDsgcGF0aCA9IC4uL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDRDQ5MUIxMTFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5Lmg7IHBhdGggPSAuLi9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENDkxQjE0MUU3MzQ5RjMw
MDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHBhdGggPSAuLi9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDRDQ5MUIxNTFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFCMTYxRTczNTI1NTAw
MDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVz
c2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q0QjREOUExRTc2NUUwMDAw
RDI3MDkyIC8qIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q0QjREOUIxRTc2NUUwMDAwRDI3MDkyIC8qIFNoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYXJl
ZFJpbmdCdWZmZXJTdG9yYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENUM2
NjlFMTM0QjlEMzYwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxl
UGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
RDVDNjY5RjEzNEI5RDM3MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNs
aWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBh
Z2VGdWxsU2NyZWVuQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUNENjE3
ODEyMUU2REU5QTAwMEZEQTU3RCAvKiBXZWJVc2VyTWVkaWFDbGllbnRNYWMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJVc2VyTWVkaWFDbGllbnRNYWMubW07
IHBhdGggPSBjb2NvYS9XZWJVc2VyTWVkaWFDbGllbnRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNENzNCQTM3MTMxQTI5RkUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFu
YWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJGdWxsU2Ny
ZWVuTWFuYWdlci5jcHA7IHBhdGggPSBGdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q3M0JBMzgxMzFBMjlGRTAwRUVERUQy
IC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmg7IHBhdGggPSBGdWxsU2NyZWVuL1dlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENzNCQTM5MTMxQTI5
RkUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IG5hbWUgPSBXZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbjsgcGF0aCA9IEZ1
bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC02MjY0LDYgKzYyODAsOSBAQAogCQk3QzZFNzBGODE4QjJENDdFMDBG
MjRFMkUgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAorCQkJCUNENDkxQjA1MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ci5jcHAgKi8sCisJCQkJQ0Q0OTFCMDYxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmggKi8sCisJCQkJQ0Q0OTFCMEExRTczMkQxMjAwMDA5MDY2IC8qIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJCUNEQTI5QTE5MUNCREJGNDEwMDkw
MUNDRiAvKiBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLmggKi8sCiAJCQkJQ0RBMjlBMUMxQ0JE
QkY1QjAwOTAxQ0NGIC8qIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIubWVzc2FnZXMuaW4gKi8s
CiAJCQkJQ0RBMjlBMTgxQ0JEQkY0MTAwOTAxQ0NGIC8qIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFn
ZXIubW0gKi8sCkBAIC03NDI5LDYgKzc0NDgsOSBAQAogCQkJCTFBQTQxN0VEMTJDMDBEODcwMDJC
RTY3QiAvKiBUZXh0Q2hlY2tlck1hYy5tbSAqLywKIAkJCQkxQUYwNUQ4NTE0Njg4MzQ4MDA4QjFF
ODEgLyogVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oICovLAogCQkJCTFBRjA1
RDg0MTQ2ODgzNDgwMDhCMUU4MSAvKiBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5
Lm1tICovLAorCQkJCUNENDkxQjEwMUU3MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5LmNwcCAqLywKKwkJCQlDRDQ5MUIxMTFFNzM0ODIxMDAwMDkwNjYgLyogVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oICovLAorCQkJCUNENDkxQjE0MUU3MzQ5RjMwMDAw
OTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJ
CTJEMTI1QzVEMTg1N0VBMDUwMDNCQTNDQiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNYWMubW0g
Ki8sCiAJCQkJMkQ2Q0QxMTcxODkwNThBNTAwRTVBNEEwIC8qIFZpZXdTbmFwc2hvdFN0b3JlLmgg
Ki8sCiAJCQkJMkQ2Q0QxMTgxODkwNThBNTAwRTVBNEEwIC8qIFZpZXdTbmFwc2hvdFN0b3JlLm1t
ICovLApAQCAtNzY3MSw2ICs3NjkzLDEwIEBACiAJCQkJMUEzMzRERUMxNkRFOEY4ODAwNkE4RTM4
IC8qIFN0b3JhZ2VBcmVhTWFwTWVzc2FnZXMuaCAqLywKIAkJCQkxQUIzMUE5NDE2QkM2ODgxMDBG
NkRCQzkgLyogU3RvcmFnZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFBQjMx
QTk1MTZCQzY4ODEwMEY2REJDOSAvKiBTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJCQkJ
Q0Q0OTFCMTUxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUNENDkxQjE2MUU3MzUyNTUwMDAwOTA2NiAvKiBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLywKKwkJCQlDRDQ5MUIwQjFF
NzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLAorCQkJCUNENDkxQjBDMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlck1lc3NhZ2VzLmggKi8sCiAJCQkJMkQxQjVENUIxODU4NjlDODAwNkM2NTk2IC8qIFZp
ZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMkQxQjVENUMx
ODU4NjlDODAwNkM2NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VzLmggKi8sCiAJ
CQkJMkQ4MTlCOUYxODYyODAwRTAwMUYwM0QxIC8qIFZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0
b3JNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtNzgwNSw3ICs3ODMxLDYgQEAKIAkJQ0Q2MTc4
MTExRTZERTk4MDAwRkRBNTdEIC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKLQkJCQlDRDYxNzgxMjFFNkRFOUEwMDBGREE1N0QgLyogV2ViVXNlck1l
ZGlhQ2xpZW50TWFjLm1tICovLAogCQkJKTsKIAkJCW5hbWUgPSBjb2NvYTsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CkBAIC04MDMwLDYgKzgwNTUsNyBAQAogCQkJCTdDMjQxMzAzMUFBQ0ZB
NzUwMEE1OEMxNSAvKiBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk3QzI0MTMwNTFBQUNGQTlDMDBBNThDMTUgLyogX1dLVXNlckNvbnRlbnRFeHRlbnNp
b25TdG9yZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0EzNzkzRTFBQzM3OEIzMDA3
OURDMzcgLyogX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVByaXZhdGUuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUNENDkxQjEzMUU3MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQk3Qzg5RDJCQTFBNkIwRjJDMDAzQTVGREUg
LyogX1dLVXNlckNvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDODlEMkJDMUE2
QjBGNUIwMDNBNUZERSAvKiBfV0tVc2VyQ29udGVudEZpbHRlckludGVybmFsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3QTgyMUY1MDFFMkY3QTc1MDA2MDQ1NzcgLyogQVBJQ3VzdG9tUHJvdG9jb2xN
YW5hZ2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTgwMzcsNiArODA2Myw3IEBACiAJCQkJ
N0M4ODJERjkxQzdFOTk2RjAwNkJGNzMxIC8qIF9XS1VzZXJDb250ZW50V29ybGRJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0NCMzY1QUExRDMxREI3MDAwNzE1OENBIC8qIF9XS1VzZXJJ
bml0aWF0ZWRBY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTdDQjM2NUFEMUQzMURDMTAwMDcx
NThDQSAvKiBfV0tVc2VySW5pdGlhdGVkQWN0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAor
CQkJCUNENDkxQjBFMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDg3ODYxRDFCREI1NEJGMDBEMDJBQkIgLyog
X1dLVXNlclN0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEODc4NjIwMUJEQjU3RjUw
MEQwMkFCQiAvKiBfV0tVc2VyU3R5bGVTaGVldEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTgxQjM4MTE4QkQ2NkFEMDAwN0ZEQUMgLyogX1dLVmlzaXRlZExpbmtTdG9yZS5oIGluIEhl
YWRlcnMgKi8sCkBAIC04MDgyLDYgKzgxMDksNyBAQAogCQkJCTFBMjQ2NEYzMTg5MUU0NTEwMDIz
NEM1QiAvKiBBUElMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRDNBNDgzMUE1
RDAyRkEwMDk2MjNCOCAvKiBBUElOYXZpZ2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREY5
RUVFQzFBNzgzNkVFMDBCNkNGQkUgLyogQVBJTmF2aWdhdGlvbkFjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQ0Q0OTFCMDgxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREQ5RUIyRDFBNkYwMTI1MDBCQjEyNjcgLyogQVBJ
TmF2aWdhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNGNjlGQTIxMTc2RDAxNDAw
NDcxQTUyIC8qIEFQSU5hdmlnYXRpb25EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREY5RUVF
RTFBNzg2RUFEMDBCNkNGQkUgLyogQVBJTmF2aWdhdGlvblJlc3BvbnNlLmggaW4gSGVhZGVycyAq
LywKQEAgLTg0MDMsNiArODQzMSw3IEBACiAJCQkJRTE4RTY5MEMxNjlCNTYzRjAwOUI2NjcwIC8q
IFNlY0l0ZW1TaGltUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxOEU2OTE4MTY5QjY2N0Iw
MDlCNjY3MCAvKiBTZWNJdGVtU2hpbVByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxNEQ5RjU3MTkxMTlEMzUwMDAwNjNBNyAvKiBTZXJ2aWNlc0NvbnRyb2xsZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUNENDkxQjE4MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzA3NUFCMURFODVG
MzMwMDM5RUM2OSAvKiBOZXR3b3JrUlRDU29ja2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUZE
RTY1QTE5NTRBNDJCMDBDNDhGRkEgLyogU2Vzc2lvblN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTAwMkQ0OTE5NkIzNDVEMDBCOUFENDQgLyogU2Vzc2lvblN0YXRlQ29kaW5nLmggaW4gSGVh
ZGVycyAqLywKQEAgLTk1ODEsNiArOTYxMCw3IEBACiAJCQkJMzczRDEyMjIxOEE0NzMwMTAwNjZE
OUNDIC8qIF9XS0ZyYW1lSGFuZGxlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNBODhCMzkxQkM3
MEYzRjAwQUJBNUMyIC8qIF9XS0hpdFRlc3RSZXN1bHQubW0gaW4gU291cmNlcyAqLywKIAkJCQk1
MTBGNTkxMjFEREUyOTc3MDA0MTJGRjUgLyogX1dLTGlua0ljb25QYXJhbWV0ZXJzLm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJQ0Q0OTFCMEQxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExMThBOUYy
MTkwOEI4RUEwMEY3QzkyQiAvKiBfV0tOU0ZpbGVNYW5hZ2VyRXh0cmFzLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMUE0M0U4MjkxODhGM0NEQzAwOUU0RDMwIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmln
dXJhdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBOUUzMjhFMTgyMTY1QTkwMEY1RDA0QyAv
KiBfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UubW0gaW4gU291cmNlcyAqLywKQEAgLTk2MTUsNiAr
OTY0NSw3IEBACiAJCQkJOTNBODhCNDcxQkM4ODI5NzAwQUJBNUMyIC8qIEFQSUhpdFRlc3RSZXN1
bHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NEM0E0ODIxQTVEMDJGQTAwOTYyM0I4IC8qIEFQ
SU5hdmlnYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNGNjlGQTMxMTc2RDAxNDAwNDcx
QTUyIC8qIEFQSU5hdmlnYXRpb25EYXRhLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNENDkxQjE3
MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgzMkVEMThCMUUyRkUxNTcwMDZCQTY0QSAv
KiBQZXJBY3Rpdml0eVN0YXRlQ1BVVXNhZ2VTYW1wbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUI2MzQwM0Y5MTQ5MTBENTcwMDEwNzBCNSAvKiBBUElPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMzc4RTFBM0QxODFFRDZGRjAwMzEwMDdBIC8qIEFQSU9iamVjdC5tbSBpbiBTb3VyY2Vz
ICovLApAQCAtOTYzOSw2ICs5NjcwLDcgQEAKIAkJCQkxQTM2MzVBOTFBMzE0NEEzMDBFRDYxOTcg
LyogQVBJV2Vic2l0ZURhdGFTdG9yZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTM2MzVBRDFB
MzE0NUU1MDBFRDYxOTcgLyogQVBJV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNUNCMjM3OTExREYwRTJFNjAwMTE3QUEzIC8qIEFQSVdlYnNpdGVQb2xpY2llcy5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDQ5MUIxMjFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTY1NjNFNDFC
N0E4QzUwMDA5Q0Y3ODcgLyogQVBJV2luZG93RmVhdHVyZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUFENEMxOTIxQjM5RjMzMjAwQUJDMjhFIC8qIEFwcGxpY2F0aW9uU3RhdGVUcmFja2VyLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUEzRDYxMDUxM0E3RjAzQTAwRjk1RDRFIC8qIEFyZ3VtZW50
Q29kZXJzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTk1Niw3ICs5OTg4LDYgQEAKIAkJCQk3NTNF
M0UwRDE4ODczOTg1MDAxODg0OTYgLyogU2Vzc2lvblRyYWNrZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUE2NDIwRTQxMkRDRTJGRjAwQ0FBRTJDIC8qIFNoYXJlYWJsZUJpdG1hcC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlDMDFBMjYwMTEyNjYyRjIxMDBDOUVENTUgLyogU2hhcmVhYmxlQml0
bWFwQ0cuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQ0Q2MTc4MTQxRTZERTlBMDAwRkRBNTdEIC8q
IFdlYlVzZXJNZWRpYUNsaWVudE1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxMjE3NDYwMTY0
QzIwRTMwMDM3QTVDMSAvKiBTaGFyZWFibGVSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk0NDUwQUVDMDFEQzNGQUU1MDA5OTQzRjIgLyogU2hhcmVkTWVtb3J5Q29jb2EuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMkRBRjA2RDcxOEJEMUE0NzAwODFDRUIxIC8qIFNtYXJ0TWFnbmlmaWNh
dGlvbkNvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLywKQEAgLTEwMTU5LDYgKzEwMTkwLDcgQEAK
IAkJCQk5OUMzQUUyNDFEQUQ4RTM3MDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNlc3Npb25NYWMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzQ2OTRDQzFBNEI1MTBBMDBBRDU4NDUgLyogV2ViUGFz
dGVib2FyZFByb3h5Q29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzQ2OTRDOTFBNEI0RUEx
MDBBRDU4NDUgLyogV2ViUGFzdGVib2FyZFByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUNENDkxQjA3MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUIxRjc3NDFEMUIyRjhBMDA3QzlCRDEg
LyogV2ViUGF5bWVudENvb3JkaW5hdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQjFGNzk2
MUQxQjM2MTMwMDdDOUJEMSAvKiBXZWJQYXltZW50Q29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFCMUY3OEIxRDFCMzM1NTAwN0M5QkQxIC8qIFdlYlBh
eW1lbnRDb29yZGluYXRvclByb3h5LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVk
aWFDbGllbnQuY3BwCmluZGV4IGFhZGVkMzQ0YTc2YWVhNmFiNDcxNjJkODk2OGNjYjJjNWYwNTBj
NjcuLjM2MjIwMmUwZWQ2MGU2NTc3NGZmYzg3MDcwY2Q1MTczZGI1Y2I4NmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlVzZXJNZWRpYUNsaWVudC5jcHAKQEAgLTMzLDcgKzMzLDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiBXZWJVc2VyTWVkaWFDbGllbnQ6OldlYlVzZXJNZWRpYUNsaWVudChXZWJQYWdlJiBwYWdlKQog
ICAgIDogbV9wYWdlKHBhZ2UpCiB7Ci0gICAgaW5pdGlhbGl6ZUZhY3RvcmllcygpOwogfQogCiB2
b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6cGFnZURlc3Ryb3llZCgpCkBAIC02MSwxMyArNjAsNiBA
QCB2b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6Y2FuY2VsTWVkaWFEZXZpY2VzRW51bWVyYXRpb25S
ZXF1ZXN0KE1lZGlhRGV2aWNlc0VudW1lcgogICAgIG1fcGFnZS51c2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIoKS5jYW5jZWxNZWRpYURldmljZXNFbnVtZXJhdGlvbihyZXF1ZXN0KTsK
IH0KIAotI2lmICFQTEFURk9STShDT0NPQSkKLXZvaWQgV2ViVXNlck1lZGlhQ2xpZW50Ojppbml0
aWFsaXplRmFjdG9yaWVzKCkKLXsKLQotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdlYktp
dDsKIAogI2VuZGlmIC8vIE1FRElBX1NUUkVBTQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9jb2NvYS9XZWJVc2VyTWVkaWFDbGllbnRNYWMubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2NvY29hL1dlYlVzZXJN
ZWRpYUNsaWVudE1hYy5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYThkZjJmMTAx
OWJhODZmNmZhN2EzNjE2MDRhMGVhMjc2YmQ3NWMxZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L2NvY29hL1dlYlVzZXJNZWRpYUNsaWVudE1hYy5tbQorKysgL2Rldi9udWxsCkBAIC0x
LDYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
V2ViVXNlck1lZGlhQ2xpZW50LmgiCi0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFU
Rk9STShDT0NPQSkKLQotI2ltcG9ydCA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
Lmg+Ci0jaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJVc2VyTWVkaWFDbGllbnRB
dWRpb0ZhY3RvcnkgZmluYWwgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZh
Y3RvcnkgewotcHVibGljOgotICAgIHN0YXRpYyBXZWJVc2VyTWVkaWFDbGllbnRBdWRpb0ZhY3Rv
cnkmIHNpbmdsZXRvbigpCi0gICAgewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V2Vi
VXNlck1lZGlhQ2xpZW50QXVkaW9GYWN0b3J5PiBmYWN0b3J5OwotICAgICAgICByZXR1cm4gZmFj
dG9yeTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+
IGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhjb25zdCBD
YXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
LCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cykgZmluYWwgewotICAgICAgICBhdXRvKiBmYWN0
b3J5ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuZGVmYXVsdEF1ZGlv
RmFjdG9yeSgpOwotICAgICAgICByZXR1cm4gZmFjdG9yeSA/IGZhY3RvcnktPmNyZWF0ZU1lZGlh
U291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhkZXZpY2UsIGNvbnN0cmFpbnRz
LCBpbnZhbGlkQ29uc3RyYWludHMpIDogbnVsbHB0cjsKLSAgICB9Ci19OwotCi12b2lkIFdlYlVz
ZXJNZWRpYUNsaWVudDo6aW5pdGlhbGl6ZUZhY3RvcmllcygpCi17Ci0gICAgc3RhdGljIGRpc3Bh
dGNoX29uY2VfdCBvbmNlVG9rZW47Ci0gICAgZGlzcGF0Y2hfb25jZSgmb25jZVRva2VuLCBeIHsK
LSAgICAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCku
c2V0QXVkaW9GYWN0b3J5KFdlYlVzZXJNZWRpYUNsaWVudEF1ZGlvRmFjdG9yeTo6c2luZ2xldG9u
KCkpOwotICAgIH0pOwotfQotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKaW5kZXggNmE0MWI0Y2YwNzNjOGIwMjIxNDFhYWM1ZDNmNTM5OGE5OTk1
MDc4Ny4uYTFlYTk2ZDc5YzhmOWFmMjUwMjMyZWMxZjBkNTkwYzZlMTg2MjM0OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5j
bHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNsdWRlICJTdGF0aXN0aWNzRGF0YS5oIgogI2lu
Y2x1ZGUgIlVzZXJEYXRhLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCIK
ICNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmgiCiAjaW5jbHVkZSAiV2ViQ29u
bmVjdGlvblRvVUlQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlci5oIgpAQCAt
MTkxLDYgKzE5MiwxMCBAQCBXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKCkKICAgICBhZGRTdXBwbGVt
ZW50PFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXI+KCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisgICAgYWRkU3VwcGxlbWVudDxVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcj4o
KTsKKyNlbmRpZgorCiAgICAgbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMuYWRkKFNlc3Np
b25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+KCkpOwog
CiAgICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZE9ic2VydmVyKCkuc2V0U3RhdGlzdGlj
c1N0b3JlKG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNvcHlSZWYoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4MDRjYzI0YWQ5ZjY4MWZkZmI1MGQwMDM2MzE1NmUz
ZGY2ZjdmZTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDIyOSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisK
KyNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIgorI2luY2x1ZGUgIlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIK
KyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvTWVkaWFDb25zdHJhaW50c0ltcGwuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVy
TGlzdC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK3N0YXRpYyB1aW50NjRfdCBuZXh0U2Vzc2lvbklEKCkKK3sKKyAgICBzdGF0aWMgdWludDY0
X3QgbmV4dElEID0gMDsKKyAgICByZXR1cm4gKytuZXh0SUQ7Cit9CisKK2NsYXNzIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZSwgcHVi
bGljIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpDbGllbnQgeworcHVibGljOgorICAgIFNvdXJj
ZShjb25zdCBTdHJpbmcmIHNvdXJjZUlELCBUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwg
dWludDY0X3QgaWQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyKQorICAgICAgICA6
IFJlYWx0aW1lTWVkaWFTb3VyY2Uoc291cmNlSUQsIHR5cGUsIG5hbWUpCisgICAgICAgICwgbV9p
ZChpZCkKKyAgICAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKKyAgICAgICAgLCBtX3N0b3JhZ2Uo
Km5ldyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSh0aGlzKSkKKyAgICAgICAgLCBtX3JpbmdCdWZm
ZXIoc3RkOjp1bmlxdWVfcHRyPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPigmbV9zdG9yYWdlKSkK
KyAgICB7CisgICAgfQorCisgICAgflNvdXJjZSgpCisgICAgeworICAgICAgICBtX3N0b3JhZ2Uu
aW52YWxpZGF0ZSgpOworICAgIH0KKworICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NhcGFiaWxp
dGllczsgfQorICAgIHZvaWQgc2V0Q2FwYWJpbGl0aWVzKFJlZlB0cjxSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMpIHsgbV9jYXBhYmlsaXRpZXMgPSBjYXBhYmls
aXRpZXM7IH0KKworICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGlu
Z3MoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NldHRpbmdzOyB9CisgICAgdm9pZCBzZXRTZXR0
aW5ncyhjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQorICAgIHsK
KyAgICAgICAgbV9zZXR0aW5ncyA9IHNldHRpbmdzOworICAgICAgICBzZXR0aW5nc0RpZENoYW5n
ZSgpOworICAgIH0KKworICAgIGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3Jp
cHRpb24oKSBjb25zdCB7IHJldHVybiBtX2Rlc2NyaXB0aW9uOyB9CisgICAgdm9pZCBzZXRTdG9y
YWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBoYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJh
bWVzKQorICAgIHsKKyAgICAgICAgbV9kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOworICAgICAg
ICBpZiAoaGFuZGxlLmlzTnVsbCgpKSB7CisgICAgICAgICAgICBtX3JpbmdCdWZmZXIuZGVhbGxv
Y2F0ZSgpOworICAgICAgICAgICAgbV9zdG9yYWdlLnNldFJlYWRPbmx5KGZhbHNlKTsKKyAgICAg
ICAgICAgIG1fc3RvcmFnZS5zZXRTdG9yYWdlKG51bGxwdHIpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gc3RvcmFnZSA9IFNo
YXJlZE1lbW9yeTo6bWFwKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25s
eSk7CisgICAgICAgIG1fc3RvcmFnZS5zZXRTdG9yYWdlKFdURk1vdmUoc3RvcmFnZSkpOworICAg
ICAgICBtX3N0b3JhZ2Uuc2V0UmVhZE9ubHkodHJ1ZSk7CisKKyAgICAgICAgbV9yaW5nQnVmZmVy
LmFsbG9jYXRlKGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisgICAgfQorCisgICAgdm9p
ZCBzZXRSaW5nQnVmZmVyRnJhbWVCb3VuZHModWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3Qg
ZW5kRnJhbWUpCisgICAgeworICAgICAgICBtX3JpbmdCdWZmZXIuc2V0Q3VycmVudEZyYW1lQm91
bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAgICB9CisKKyAgICB2b2lkIGF1ZGlvU2FtcGxl
c0F2YWlsYWJsZShNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisgICAg
eworICAgICAgICBXZWJBdWRpb0J1ZmZlckxpc3QgYXVkaW9EYXRhKG1fZGVzY3JpcHRpb24sIG51
bWJlck9mRnJhbWVzKTsKKyAgICAgICAgbV9yaW5nQnVmZmVyLmZldGNoKGF1ZGlvRGF0YS5saXN0
KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsKKworICAgICAgICBmb3IgKGF1
dG8qIG9ic2VydmVyIDogb2JzZXJ2ZXJzKCkpCisgICAgICAgICAgICBvYnNlcnZlci0+YXVkaW9T
YW1wbGVzQXZhaWxhYmxlKHRpbWUsIGF1ZGlvRGF0YSwgbV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZG
cmFtZXMpOworICAgIH0KKworICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWwgeyBt
X21hbmFnZXIuc3RhcnRQcm9kdWNpbmdEYXRhKG1faWQpOyB9CisgICAgdm9pZCBzdG9wUHJvZHVj
aW5nRGF0YSgpIGZpbmFsIHsgbV9tYW5hZ2VyLnN0b3BQcm9kdWNpbmdEYXRhKG1faWQpOyB9CisK
KyAgICBBdWRpb1NvdXJjZVByb3ZpZGVyKiBhdWRpb1NvdXJjZVByb3ZpZGVyKCkgZmluYWwgeyBy
ZXR1cm4gbnVsbHB0cjsgfQorCitwcml2YXRlOgorICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2UK
KyAgICB2b2lkIGJlZ2luQ29uZmlndXJhdGlvbigpIGZpbmFsIHsgfQorICAgIHZvaWQgY29tbWl0
Q29uZmlndXJhdGlvbigpIGZpbmFsIHsgfQorCisgICAgLy8gU2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2U6OkNsaWVudAorICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KikgZmluYWwg
eyB9CisKKyAgICB1aW50NjRfdCBtX2lkOworICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBt
X21hbmFnZXI7CisgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1f
Y2FwYWJpbGl0aWVzOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX3NldHRpbmdz
OworICAgIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uOworICAgIFNoYXJl
ZFJpbmdCdWZmZXJTdG9yYWdlJiBtX3N0b3JhZ2U7CisgICAgQ0FSaW5nQnVmZmVyIG1fcmluZ0J1
ZmZlcjsKK307CisKK1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcihXZWJQcm9jZXNzKiBwcm9jZXNzKQorICAgIDogbV9wcm9jZXNzKCpwcm9jZXNzKQorewor
ICAgIG1fcHJvY2Vzcy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKK30KKworVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6On5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlcigpCit7CisgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudW5zZXRBdWRpb0ZhY3RvcnkoKnRoaXMp
OworICAgIG1fcHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOworfQorCitjb25zdCBjaGFy
KiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIHJldHVy
biAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIiOworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjppbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMpCit7CisgICAgaWYgKHBhcmFtZXRlcnMuc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVBy
b2Nlc3MpCisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnNl
dEF1ZGlvRmFjdG9yeSgqdGhpcyk7Cit9CisKK1JlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNl
V2l0aENvbnN0cmFpbnRzKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnRzKQorewor
ICAgIGlmICghY29uc3RyYWludHMpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgdWlu
dDY0X3QgaWQgPSBuZXh0U2Vzc2lvbklEKCk7CisgICAgTWVkaWFDb25zdHJhaW50c0RhdGEgY29u
c3RyYWludHNEYXRhOworICAgIGNvbnN0cmFpbnRzRGF0YS5tYW5kYXRvcnlDb25zdHJhaW50cyA9
IGNvbnN0cmFpbnRzLT5tYW5kYXRvcnlDb25zdHJhaW50cygpOworICAgIGNvbnN0cmFpbnRzRGF0
YS5hZHZhbmNlZENvbnN0cmFpbnRzID0gY29uc3RyYWludHMtPmFkdmFuY2VkQ29uc3RyYWludHMo
KTsKKyAgICBjb25zdHJhaW50c0RhdGEuaXNWYWxpZCA9IGNvbnN0cmFpbnRzLT5pc1ZhbGlkKCk7
CisgICAgYm9vbCBzdWNjZWVkZWQ7CisKKyAgICBtX3Byb2Nlc3Muc2VuZFN5bmMoTWVzc2FnZXM6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVy
ZURldmljZVdpdGhDb25zdHJhaW50cyhpZCwgZGV2aWNlLCBjb25zdHJhaW50c0RhdGEpLCB7c3Vj
Y2VlZGVkLCBpbnZhbGlkQ29uc3RyYWludHN9LCAwKTsKKworICAgIGF1dG8gc291cmNlID0gYWRv
cHRSZWYobmV3IFNvdXJjZShTdHJpbmc6Om51bWJlcihpZCksIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OkF1ZGlvLCBkZXZpY2UubGFiZWwoKSwgaWQsICp0aGlzKSk7CisgICAgbV9zb3VyY2VzLnNldChp
ZCwgc291cmNlKTsKKyAgICByZXR1cm4gc291cmNlOworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjpzb3VyY2VTdG9wcGVkKHVpbnQ2NF90IGlkKQoreworICAgIEFTU0VSVChtX3Nv
dXJjZXMuY29udGFpbnMoaWQpKTsKKyAgICBhdXRvJiBzb3VyY2UgPSAqbV9zb3VyY2VzLmdldChp
ZCk7CisgICAgc291cmNlLnN0b3AoKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6c291cmNlTXV0ZWRDaGFuZ2VkKHVpbnQ2NF90IGlkLCBib29sIG11dGVkKQoreworICAgIEFT
U0VSVChtX3NvdXJjZXMuY29udGFpbnMoaWQpKTsKKyAgICBtX3NvdXJjZXMuZ2V0KGlkKS0+c2V0
TXV0ZWQobXV0ZWQpOworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VF
bmFibGVkQ2hhbmdlZCh1aW50NjRfdCBpZCwgYm9vbCBlbmFibGVkKQoreworICAgIEFTU0VSVCht
X3NvdXJjZXMuY29udGFpbnMoaWQpKTsKKyAgICBtX3NvdXJjZXMuZ2V0KGlkKS0+c2V0RW5hYmxl
ZChlbmFibGVkKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlU2V0
dGluZ3NDaGFuZ2VkKHVpbnQ2NF90IGlkLCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MmIHNldHRpbmdzKQoreworICAgIEFTU0VSVChtX3NvdXJjZXMuY29udGFpbnMoaWQpKTsKKyAg
ICBtX3NvdXJjZXMuZ2V0KGlkKS0+c2V0U2V0dGluZ3Moc2V0dGluZ3MpOworfQorCit2b2lkIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzdG9yYWdlQ2hhbmdlZCh1aW50NjRfdCBpZCwgY29uc3Qg
U2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhhbmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7Cisg
ICAgQVNTRVJUKG1fc291cmNlcy5jb250YWlucyhpZCkpOworICAgIG1fc291cmNlcy5nZXQoaWQp
LT5zZXRTdG9yYWdlKGhhbmRsZSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKK30KKwor
dm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6cmluZ0J1ZmZlckZyYW1lQm91bmRzQ2hhbmdl
ZCh1aW50NjRfdCBpZCwgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCit7
CisgICAgQVNTRVJUKG1fc291cmNlcy5jb250YWlucyhpZCkpOworICAgIG1fc291cmNlcy5nZXQo
aWQpLT5zZXRSaW5nQnVmZmVyRnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOworfQor
Cit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjphdWRpb1NhbXBsZXNBdmFpbGFibGUodWlu
dDY0X3QgaWQsIE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAg
ICBBU1NFUlQobV9zb3VyY2VzLmNvbnRhaW5zKGlkKSk7CisgICAgbV9zb3VyY2VzLmdldChpZCkt
PmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCBudW1iZXJPZkZyYW1lcyk7Cit9CisKK3ZvaWQg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkK
K3sKKyAgICBtX3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6U3RhcnRQcm9kdWNpbmdEYXRhKGlkKSwgMCk7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OnN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQoreworICAgIG1fcHJv
Y2Vzcy5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTdG9wUHJv
ZHVjaW5nRGF0YShpZCksIDApOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjBjZjg3ODQxNDA1ZDU4MTdiZmY2ZTY5YTBkNmFmNGZiYWZlNGE4NmYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmgKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNs
dWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKKyNpbmNs
dWRlICJXZWJQcm9jZXNzU3VwcGxlbWVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVN
ZWRpYVNvdXJjZS5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKK2NsYXNzIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKK30KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIENyb3NzUHJvY2Vzc1JlYWx0aW1lQXVkaW9Tb3VyY2U7CitjbGFzcyBX
ZWJQcm9jZXNzOworCitjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciA6IHB1YmxpYyBXZWJQ
cm9jZXNzU3VwcGxlbWVudCwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkgeworcHVibGljOgorICAg
IGV4cGxpY2l0IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKFdlYlByb2Nlc3MqKTsKKyAgICB+VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIoKTsKKworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVt
ZW50TmFtZSgpOworCitwcml2YXRlOgorICAgIC8vIFdlYlByb2Nlc3NTdXBwbGVtZW50CisgICAg
dm9pZCBpbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKSBmaW5h
bDsKKworICAgIC8vIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OkZhY3Rvcnk6CisgICAg
UmVmUHRyPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZU1lZGlhU291cmNlRm9y
Q2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
JiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYpIGZpbmFsOworCisg
ICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgLy8gTWVzc2FnZXM6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyCisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKHVpbnQ2NF90
IGlkKTsKKyAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZCh1aW50NjRfdCBpZCwgYm9vbCBtdXRl
ZCk7CisgICAgdm9pZCBzb3VyY2VFbmFibGVkQ2hhbmdlZCh1aW50NjRfdCBpZCwgYm9vbCBlbmFi
bGVkKTsKKyAgICB2b2lkIHNvdXJjZVNldHRpbmdzQ2hhbmdlZCh1aW50NjRfdCBpZCwgY29uc3Qg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJik7CisgICAgdm9pZCBzdG9yYWdl
Q2hhbmdlZCh1aW50NjRfdCBpZCwgY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmLCBjb25zdCBX
ZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1l
cyk7CisgICAgdm9pZCByaW5nQnVmZmVyRnJhbWVCb3VuZHNDaGFuZ2VkKHVpbnQ2NF90IGlkLCB1
aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7CisgICAgdm9pZCBhdWRpb1Nh
bXBsZXNBdmFpbGFibGUodWludDY0X3QgaWQsIE1lZGlhVGltZSwgdWludDY0X3QgbnVtYmVyT2ZG
cmFtZXMpOworCisgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QpOworICAgIHZv
aWQgc3RvcFByb2R1Y2luZ0RhdGEodWludDY0X3QpOworCisgICAgY2xhc3MgU291cmNlOworICAg
IGZyaWVuZCBjbGFzcyBTb3VyY2U7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFNvdXJj
ZT4+IG1fc291cmNlczsKKyAgICBXZWJQcm9jZXNzJiBtX3Byb2Nlc3M7Cit9OworCit9CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
Y29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmMz
MDFjZjNjMmE2M2Q1ZDdmMTBkM2EyMTNlMmYzYjE2YTJkMWNhYwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
bWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworbWVzc2FnZXMgLT4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgeworICAgIFNv
dXJjZVN0b3BwZWQodWludDY0X3QgaWQpCisgICAgU291cmNlTXV0ZWRDaGFuZ2VkKHVpbnQ2NF90
IGlkLCBib29sIG11dGVkKQorICAgIFNvdXJjZUVuYWJsZWRDaGFuZ2VkKHVpbnQ2NF90IGlkLCBi
b29sIGVuYWJsZWQpCisgICAgU291cmNlU2V0dGluZ3NDaGFuZ2VkKHVpbnQ2NF90IGlkLCBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MpCisgICAgU3RvcmFnZUNo
YW5nZWQodWludDY0X3QgaWQsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUgc3RvcmFnZUhh
bmRsZSwgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIGRlc2NyaXB0aW9uLCB1aW50
NjRfdCBudW1iZXJPZkZyYW1lcykKKyAgICBSaW5nQnVmZmVyRnJhbWVCb3VuZHNDaGFuZ2VkKHVp
bnQ2NF90IGlkLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7CisgICAg
QXVkaW9TYW1wbGVzQXZhaWxhYmxlKHVpbnQ2NF90IGlkLCBNZWRpYVRpbWUgdGltZSwgdWludDY0
X3QgbnVtYmVyT2ZGcmFtZXMpCit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304424</attachid>
            <date>2017-03-14 14:46:12 -0700</date>
            <delta_ts>2017-03-14 16:11:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169609-20170314144612.patch</filename>
            <type>text/plain</type>
            <size>65676</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzOTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTA0Njg3Y2ZhMzNjMTYy
ODZjODUyOWYzN2I0NzgzNzA0ZDRkMjgwMi4uMDU4NmNhNDlmOGEyZTI1OTU2ZjlkMjQwMjdhNDIy
MWVmYTI1YmM2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTAzLTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIE9wdGlvbmFsbHkgY2FwdHVy
ZSBhdWRpbyBpbiB0aGUgVUlQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjk2MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBFeHBvcnQgc29tZSBwcmV2aW91c2x5IHVuLWV4cG9ydGVkIHN5bWJv
bHMgZnJvbSBXZWJDb3JlIGZvciB1c2UgaW4gV2ViS2l0Mi4KKworICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9XZWJB
dWRpb0J1ZmZlckxpc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlLmg6CisKIDIwMTctMDMtMDYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVmYWN0b3I6IEFsbG93IFdlYktpdDIgdG8gb3ZlcnJpZGUgdGhl
IGNyZWF0aW9uIG9mIFJlYWx0aW1lTWVkaWFTb3VyY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzBiMjdlNzZl
NzVlYjUyNmQ4ZDUyN2VhNTZjYTljZWY2ODM1ZDc1OS4uZjA2NjAwZjVlOGM2N2JkZmE0YWZlMmE0
ZTM4MjI5NGRkNDBlYWMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkwIEBACisyMDE3LTAzLTE0
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIE9wdGlvbmFsbHkg
Y2FwdHVyZSBhdWRpbyBpbiB0aGUgVUlQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjk2MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgY2xhc3MgcGFpciwgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIvUHJveHksIHRvIGFsbG93IGEgUmVhbHRpbWVNZWRpYVNvdXJjZQorICAgICAg
ICByZXF1ZXN0ZWQgaW4gYSBXZWJQcm9jZXNzIHRvIGJlIGNyZWF0ZWQgaW4gdGhlIFVJUHJvY2Vz
cyBpbiB0aGUgVUlQcm9jZXNzIGFuZCBwdXNoIGl0cyBhdWRpbworICAgICAgICBkYXRhIGFjcm9z
cyB0aGUgcHJvY2VzcyBib3VuZGFyeSB0byBpdHMgY2xpZW50cyBpbiB0aGUgV2ViUHJvY2Vzcy4g
QmVjYXVzZSB0aGVzZSBjbGFzc2VzCisgICAgICAgIGFyZSBjbGllbnRzIG9mIHRoZSBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKSwgdGhleSBtdXN0IGJlIGEgc2luZ2xldG9u
CisgICAgICAgIGluIHRoZSBXZWJQcm9jZXNzIGFzIHdlbGwsIHNvIHRoZXkgYXJlIGF0dGFjaGVk
IHRvIHRoZSBXZWJQcm9jZXNzIGNsYXNzIGluIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICBhbmQg
dG8gV2ViUHJvY2Vzc1Byb3h5IGluIHRoZSBVSVByb2Nlc3MuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94eTo6U291
cmNlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjpTb3VyY2VQcm94eTo6flNvdXJjZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OnNvdXJjZSk6CisgICAgICAgIChXZWJL
aXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpkZXNjcmlwdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJj
ZVByb3h5OjpudW1iZXJPZkZyYW1lcyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkpOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Ojp+VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnN0YXJ0UHJvZHVj
aW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OnN0b3BQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5Ojpwcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpuZXh0U2Vzc2lvbklEKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OlNvdXJjZTo6U291cmNlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6flNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnNldENhcGFiaWxpdGllcyk6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnNldFNldHRpbmdzKToKKyAg
ICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6ZGVzY3JpcHRp
b24pOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpz
ZXRTdG9yYWdlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNv
dXJjZTo6c2V0UmluZ0J1ZmZlckZyYW1lQm91bmRzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6On5Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyk6
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VTdG9wcGVk
KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZU11dGVk
Q2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3Vy
Y2VFbmFibGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpzb3VyY2VTZXR0aW5nc0NoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlcjo6c3RvcmFnZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6cmluZ0J1ZmZlckZyYW1lQm91bmRzQ2hhbmdlZCk6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjphdWRpb1NhbXBsZXNBdmFpbGFibGUp
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3RhcnRQcm9kdWNp
bmdEYXRhKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN0b3BQ
cm9kdWNpbmdEYXRhKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorCisgICAgICAgIEluaXRpYWxpemUg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIvUHJveHk6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Oldl
YlByb2Nlc3NQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OldlYlByb2Nlc3MpOgorCisgICAgICAgIFdlYlVzZXJNZWRpYUNsaWVudE1hYyBp
cyBubyBsb25nZXIgbmVjZXNzYXJ5IG5vdyB0aGF0IHRoZSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ciBvdmVycmlkZXMKKyAgICAgICAgdGhlIGZhY3RvcmllczoKKworICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViVXNlck1lZGlhQ2xpZW50OjpXZWJVc2VyTWVkaWFDbGllbnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJVc2VyTWVkaWFDbGllbnQ6OmluaXRpYWxpemVGYWN0b3JpZXMpOiBEZWxldGVkLgor
CisgICAgICAgIEFkZCBhIG5ldyBwcmVmZXJlbmNlIGFuZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzIG1lbWJlciB0byBjb250cm9sIHdoZXRoZXIKKyAgICAgICAgY2FwdHVyaW5nIGlzIGRv
bmUgaW4gdGhlIFVJUHJvY2VzczoKKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0Rl
ZmluaXRpb25zLmg6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpl
bmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpk
ZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6
CisKKyAgICAgICAgQWRkIG5ldyBmaWxlcyB0byB0aGUgcHJvamVjdDoKKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICog
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE3LTAzLTA2ICBKZXIgTm9i
bGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZmFjdG9yOiBBbGxvdyBXZWJL
aXQyIHRvIG92ZXJyaWRlIHRoZSBjcmVhdGlvbiBvZiBSZWFsdGltZU1lZGlhU291cmNlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDVhMTljYzVhNTUzN2I4NWU3NTZmNjMwY2Q1ODlmZWI5YTcyNWZmM2IuLjBiM2VkMzk4Nzg4Y2I2
YTRiMGIxZTlkNDlkNTY4ODFkMDhlYTQ2NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYxNjgsNyArNjE2OCw3IEBACiAJCUNE
RTU5NTk3MUJGMjZFMjEwMEExQ0JFOCAvKiBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREU1OTU5NjFC
RjI2RTIxMDBBMUNCRTggLyogQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oICovOyB9Owog
CQlDREU1OTU5RDFCRjI3NTcxMDBBMUNCRTggLyogQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2Jq
Qy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTU5
NTlDMUJGMjc1NzEwMEExQ0JFOCAvKiBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tICov
OyB9OwogCQlDREU2NjdBNDFFNEJCRjE1MDBFODE1NEEgLyogV2ViQXVkaW9CdWZmZXJMaXN0LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTY2N0Ey
MUU0QkJGMTUwMEU4MTU0QSAvKiBXZWJBdWRpb0J1ZmZlckxpc3QuY3BwICovOyB9OwotCQlDREU2
NjdBNTFFNEJCRjE1MDBFODE1NEEgLyogV2ViQXVkaW9CdWZmZXJMaXN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREU2NjdBMzFFNEJCRjE1MDBFODE1
NEEgLyogV2ViQXVkaW9CdWZmZXJMaXN0LmggKi87IH07CisJCUNERTY2N0E1MUU0QkJGMTUwMEU4
MTU0QSAvKiBXZWJBdWRpb0J1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENERTY2N0EzMUU0QkJGMTUwMEU4MTU0QSAvKiBXZWJBdWRpb0J1
ZmZlckxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlDREU3RkM0NDE4MTkwNEIxMDAyQkJCNzcgLyogT3JkZXJJdGVyYXRvci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREU3RkM0MjE4MTkwNEIx
MDAyQkJCNzcgLyogT3JkZXJJdGVyYXRvci5jcHAgKi87IH07CiAJCUNERTdGQzQ1MTgxOTA0QjEw
MDJCQkI3NyAvKiBPcmRlckl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDREU3RkM0MzE4MTkwNEIxMDAyQkJCNzcgLyogT3JkZXJJdGVyYXRv
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNE
RTgzREIxMTgzQzQ0MDYwMDMxRUFBMyAvKiBWaWRlb1BsYXliYWNrUXVhbGl0eS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREU4M0RBRjE4M0M0NDA2
MDAzMUVBQTMgLyogVmlkZW9QbGF5YmFja1F1YWxpdHkuY3BwICovOyB9OwpAQCAtNjE4NSw2ICs2
MTg1LDcgQEAKIAkJQ0RFQTdDODUxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQTdD
ODMxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uY3BwICovOyB9OwogCQlDREVF
MzkzNzE3OTc0MjU5MDAxRDc1ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVFMzkzNjE3OTc0MjU5MDAxRDc1
ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgKi87IH07CiAJCUNERUY0RkQ3MTdFODVDOEYwMEFF
RTI0QiAvKiBHcmlkTGVuZ3RoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyogR3JpZExlbmd0aC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERUZBMjI4MUU3
NjY5RTgwMDBBRTk5QyAvKiBQbGF0Zm9ybUF1ZGlvRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3QTExRTRCQkE0RDAwRTgxNTRBIC8qIFBs
YXRmb3JtQXVkaW9EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQ0RGMkIwMDQxODFGMDU5QzAwRjJCNDI0IC8qIE1lZGlhRGVzY3JpcHRpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjJCMDAz
MTgxRjA1OUMwMEYyQjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggKi87IH07CiAJCUNERjJCMDEw
MTgyMDU0MDYwMEYyQjQyNCAvKiBNb2NrQm94LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjJCMDA2MTgyMDU0MDYwMEYyQjQyNCAvKiBNb2NrQm94
LmNwcCAqLzsgfTsKIAkJQ0RGMkIwMTExODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tCb3guaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjJCMDA3MTgyMDU0
MDYwMEYyQjQyNCAvKiBNb2NrQm94LmggKi87IH07CkBAIC0yNjk2OSw2ICsyNjk3MCw3IEBACiAJ
CQkJRkQzMTYwOTkxMkIwMjZGNzAwQzFBMzU5IC8qIEhSVEZEYXRhYmFzZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkQzMTYwOUIxMkIwMjZGNzAwQzFBMzU5IC8qIEhSVEZEYXRhYmFzZUxvYWRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwOUQxMkIwMjZGNzAwQzFBMzU5IC8qIEhSVEZFbGV2
YXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUNERUZBMjI4MUU3NjY5RTgwMDBBRTk5QyAvKiBQ
bGF0Zm9ybUF1ZGlvRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwOUYxMkIwMjZGNzAw
QzFBMzU5IC8qIEhSVEZLZXJuZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MEExMTJCMDI2
RjcwMEMxQTM1OSAvKiBIUlRGUGFubmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk3RTIzQTEw
OTE0NDk1MDAxMEQzNjEgLyogSFRNTEFsbENvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vV2ViQXVkaW9CdWZmZXJMaXN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9XZWJBdWRpb0J1ZmZlckxpc3QuaApp
bmRleCBiYmYzYzEzOWI2MjVlN2I0Yzc5YWY4NDI0MTM4YjUwNDA3MzE4NWE4Li5kYjY1ZDM1MzRl
M2JhNWU3ODc5Y2YyZjRkOTY4NDA4MGMwNGY2MTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9XZWJBdWRpb0J1ZmZlckxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9XZWJBdWRpb0J1ZmZlckxpc3QuaApAQCAtNDIsNyArNDIsNyBAQCBj
bGFzcyBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CiBjbGFzcyBXZWJBdWRpb0J1ZmZlckxpc3Qg
OiBwdWJsaWMgUGxhdGZvcm1BdWRpb0RhdGEgewogcHVibGljOgogICAgIFdlYkF1ZGlvQnVmZmVy
TGlzdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mKTsKLSAgICBXZWJBdWRpb0J1ZmZl
ckxpc3QoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDMyX3Qgc2FtcGxlQ291
bnQpOworICAgIFdFQkNPUkVfRVhQT1JUIFdlYkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mLCB1aW50MzJfdCBzYW1wbGVDb3VudCk7CiAgICAgV2ViQXVkaW9C
dWZmZXJMaXN0KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIENNU2FtcGxlQnVmZmVy
UmVmKTsKIAogICAgIEF1ZGlvQnVmZmVyTGlzdCogbGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fbGlz
dC5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IGFjYWNkZWE4MzQyYjVjYWJiMjQyNWYw
MjNiOWQ5ZmFiNmM0ODEzNGEuLjEyOWJlNjRmM2M4NDY3Y2Y5ZmRhNzA2Mzg3ZDBkMzA0MDlhZjky
YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTYxLDcgKzYxLDcgQEAgY2xhc3MgTWVkaWFTdHJl
YW1Qcml2YXRlOwogY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CiBjbGFzcyBSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3M7CiAKLWNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMgUmVm
Q291bnRlZDxSZWFsdGltZU1lZGlhU291cmNlPiB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBSZWFs
dGltZU1lZGlhU291cmNlIDogcHVibGljIFJlZkNvdW50ZWQ8UmVhbHRpbWVNZWRpYVNvdXJjZT4g
ewogcHVibGljOgogICAgIGNsYXNzIE9ic2VydmVyIHsKICAgICBwdWJsaWM6CkBAIC0yMDAsNiAr
MjAwLDggQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNv
bnN0IEZsYXR0ZW5lZENvbnN0cmFpbnQmKTsKICAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTaXplQW5k
RnJhbWVSYXRlKHN0ZDo6b3B0aW9uYWw8aW50PiB3aWR0aCwgc3RkOjpvcHRpb25hbDxpbnQ+IGhl
aWdodCwgc3RkOjpvcHRpb25hbDxkb3VibGU+KTsKIAorICAgIGNvbnN0IFZlY3RvcjxPYnNlcnZl
cio+IG9ic2VydmVycygpIGNvbnN0IHsgcmV0dXJuIG1fb2JzZXJ2ZXJzOyB9CisKICAgICBib29s
IG1fbXV0ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9lbmFibGVkIHsgdHJ1ZSB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NN
YWtlTGlzdHMudHh0CmluZGV4IGIxY2VlMTQ1Mzk5ZGIwYjE1N2YxMjA0YzdjZmVkMmNhZjUzZjZi
ZTkuLjZjMGVhYzE3N2VmM2E0ZDAwNWYzODU3YjI3MjE2Y2JhYTZkNWNiN2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtl
TGlzdHMudHh0CkBAIC02NTcsNiArNjU3LDggQEAgc2V0KFdlYktpdDJfTUVTU0FHRVNfSU5fRklM
RVMKIAogICAgIFdlYlByb2Nlc3MvSWNvbkRhdGFiYXNlL1dlYkljb25EYXRhYmFzZVByb3h5Lm1l
c3NhZ2VzLmluCiAKKyAgICBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYUNhcHR1cmVT
ZXNzaW9uTWFuYWdlci5tZXNzYWdlcy5pbgorCiAgICAgV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9XZWJSVENNb25pdG9yLm1lc3NhZ2VzLmluCiAgICAgV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9XZWJSVENSZXNvbHZlci5tZXNzYWdlcy5pbgogICAgIFdlYlByb2Nlc3MvTmV0d29yay93ZWJy
dGMvV2ViUlRDU29ja2V0Lm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9E
ZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQpp
bmRleCA5OTQ5MmZmYWVhMTQ0ZWU0YzdmNGU1ZWU1ZDkxZTNmNjZiOGI1ZTUwLi45ZGVmMzcwNGI3
NGQ0NTg4YmFkYzBiNDJjMTIwNzA3Y2FmZDkxYzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKQEAgLTQ1LDYgKzQ1LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9j
ZXNzL0dlb2xvY2F0aW9uIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNl
IFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTWVkaWFDYWNoZSBcCisgICAgJChXZWJLaXQy
KS9XZWJQcm9jZXNzL01lZGlhU3RyZWFtIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTmV0
d29yayBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjIFwKICAgICAk
KFdlYktpdDIpL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucyBcCkBAIC02NSw2ICs2Niw3IEBAIFZQ
QVRIID0gXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL0NvY29hIFwKICAgICAkKFdlYktpdDIp
L1VJUHJvY2Vzcy9EYXRhYmFzZXMgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL0Rvd25sb2Fk
cyBcCisgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvTWVkaWFTdHJlYW0gXAogICAgICQoV2ViS2l0
MikvVUlQcm9jZXNzL05ldHdvcmsgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL05ldHdvcmsv
Q3VzdG9tUHJvdG9jb2xzIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25z
IFwKQEAgLTEyMSw2ICsxMjMsOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBTbWFydE1h
Z25pZmljYXRpb25Db250cm9sbGVyIFwKICAgICBTdG9yYWdlQXJlYU1hcCBcCiAgICAgU3RvcmFn
ZU1hbmFnZXIgXAorICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIFwKKyAgICBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5IFwKICAgICBWaWV3R2VzdHVyZUNvbnRyb2xsZXIgXAogICAgIFZp
ZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3IgXAogICAgIFZpZXdVcGRhdGVEaXNwYXRjaGVyIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRp
b25zLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5o
CmluZGV4IDdmZjc3MDI4YmZiNWMwNTVkOGViMmQ2YTA1MjE4ODQ4ZmFkNmM1OWEuLmI5YzE1OWRi
MDg2ZWIyNTY3MWE0ZWJjODM2MmJmMjA0OTcyOTVkODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaApAQCAtMTAzLDYgKzEwMywxMiBA
QAogI2RlZmluZSBERUZBVUxUX0NBTlZBU19VU0VTX0FDQ0VMRVJBVEVEX0RSQVdJTkcgdHJ1ZQog
I2VuZGlmCiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNkZWZpbmUgREVGQVVMVF9TSE9VTERfQ0FQ
VFVSRV9BVURJT19JTl9VSVBST0NFU1MgdHJ1ZQorI2Vsc2UKKyNkZWZpbmUgREVGQVVMVF9TSE9V
TERfQ0FQVFVSRV9BVURJT19JTl9VSVBST0NFU1MgZmFsc2UKKyNlbmRpZgorCiAvLyBtYWNybyhL
ZXlVcHBlciwgS2V5TG93ZXIsIFR5cGVOYW1lVXBwZXIsIFR5cGVOYW1lLCBEZWZhdWx0VmFsdWUs
IEh1bWFuUmVhZGFibGVOYW1lLCBIdW1hblJlYWRhYmxlRGVzY3JpcHRpb24pCiAKICNkZWZpbmUg
Rk9SX0VBQ0hfV0VCS0lUX0JPT0xfUFJFRkVSRU5DRShtYWNybykgXApAQCAtMjUyLDYgKzI1OCw3
IEBACiAgICAgbWFjcm8oR2FtZXBhZHNFbmFibGVkLCBnYW1lcGFkc0VuYWJsZWQsIEJvb2wsIGJv
b2wsIHRydWUsICJHYW1lcGFkcyIsICJXZWIgR2FtZXBhZCBBUEkgc3VwcG9ydCIpIFwKICAgICBt
YWNybyhJbnB1dEV2ZW50c0VuYWJsZWQsIGlucHV0RXZlbnRzRW5hYmxlZCwgQm9vbCwgYm9vbCwg
dHJ1ZSwgIklucHV0IEV2ZW50cyIsICJFbmFibGUgSW5wdXRFdmVudHMgc3VwcG9ydCIpIFwKICAg
ICBtYWNybyhDcmVkZW50aWFsTWFuYWdlbWVudEVuYWJsZWQsIGNyZWRlbnRpYWxNYW5hZ2VtZW50
RW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UsICJDcmVkZW50aWFsIE1hbmFnZW1lbnQiLCAiRW5h
YmxlIENyZWRlbnRpYWwgTWFuYWdlbWVudCBzdXBwb3J0IikgXAorICAgIG1hY3JvKFNob3VsZENh
cHR1cmVBdWRpb0luVUlQcm9jZXNzLCBzaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcywgQm9v
bCwgYm9vbCwgREVGQVVMVF9TSE9VTERfQ0FQVFVSRV9BVURJT19JTl9VSVBST0NFU1MsICJDYXB0
dXJlIiwgIkNhcHR1cmUgQXVkaW8gaW4gVUlQcm9jZXNzIikgXAogICAgIFwKIAogI2RlZmluZSBG
T1JfRUFDSF9XRUJLSVRfRE9VQkxFX1BSRUZFUkVOQ0UobWFjcm8pIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRl
eCA1MTJkMjEyZDg0YTAxMTgwOGMyOWE4YjUxODQxOWUyMGE1MTc2YjFjLi5mMzNlYTZjMGE4M2I0
OWIwMWU3YTE2YWNkNWExMWViYTljMzExNjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC02OCw2ICs2OCw3
IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1lZGlhS2V5U3RvcmFnZURpcmVjdG9y
eUV4dGVuc2lvbkhhbmRsZTsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIGVuY29kZXIg
PDwgYXVkaW9DYXB0dXJlRXh0ZW5zaW9uSGFuZGxlOworICAgIGVuY29kZXIgPDwgc2hvdWxkQ2Fw
dHVyZUF1ZGlvSW5VSVByb2Nlc3M7CiAjZW5kaWYKICAgICBlbmNvZGVyIDw8IHNob3VsZFVzZVRl
c3RpbmdOZXR3b3JrU2Vzc2lvbjsKICAgICBlbmNvZGVyIDw8IHVybFNjaGVtZXNSZWdpc3RlcmVk
QXNFbXB0eURvY3VtZW50OwpAQCAtMTg5LDYgKzE5MCw4IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUHJvY2Vzc0Ny
ZWF0CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBh
cmFtZXRlcnMuYXVkaW9DYXB0dXJlRXh0ZW5zaW9uSGFuZGxlKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5zaG91bGRDYXB0dXJlQXVk
aW9JblVJUHJvY2VzcykpCisgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5zaG91bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb24p
KQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBhM2U2MmNmOWQ0MzFmNDBiZGNh
N2E1YzgwMGNjNTcwNTk3MWM4ZTk0Li5mZDgwNmIyMjAyNDc5ZTE2MDQ4NjFkZjk4ZTA4Y2FiMWEx
YWE2MGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKQEAgLTg4LDYgKzg4LDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMgewogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBtZWRpYUtleVN0
b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
ICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgYXVkaW9DYXB0dXJlRXh0ZW5zaW9uSGFuZGxl
OworICAgIGJvb2wgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MgeyBmYWxzZSB9OwogI2Vu
ZGlmCiAgICAgU3RyaW5nIG1lZGlhS2V5U3RvcmFnZURpcmVjdG9yeTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmMThiMWIxNzI2OThlMjZhZmI5MGQwNmFlNTgx
NDJlYjkwOWVkMjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSwxNTQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisKKyNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIgorI2luY2x1
ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDb25zdHJh
aW50c0ltcGwuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgorCit1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5IDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6Ok9ic2VydmVyLCBwdWJsaWMgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OkNsaWVudCB7Citw
dWJsaWM6CisgICAgU291cmNlUHJveHkodWludDY0X3QgaWQsIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkmIG1hbmFnZXIsIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKKyAg
ICAgICAgOiBtX2lkKGlkKQorICAgICAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQorICAgICAgICAs
IG1fc291cmNlKFdURk1vdmUoc291cmNlKSkKKyAgICAgICAgLCBtX3N0b3JhZ2UoKm5ldyBTaGFy
ZWRSaW5nQnVmZmVyU3RvcmFnZSh0aGlzKSkKKyAgICAgICAgLCBtX3JpbmdCdWZmZXIoc3RkOjp1
bmlxdWVfcHRyPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPigmbV9zdG9yYWdlKSkKKyAgICB7Cisg
ICAgICAgIG1fc291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CisgICAgfQorCisgICAgflNvdXJj
ZVByb3h5KCkKKyAgICB7CisgICAgICAgIG1fc3RvcmFnZS5pbnZhbGlkYXRlKCk7CisgICAgICAg
IG1fc291cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CisgICAgfQorCisgICAgUmVhbHRpbWVN
ZWRpYVNvdXJjZSYgc291cmNlKCkgeyByZXR1cm4gbV9zb3VyY2U7IH0KKyAgICBDQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKCkgeyByZXR1cm4gbV9kZXNjcmlwdGlvbjsgfQor
ICAgIGludDY0X3QgbnVtYmVyT2ZGcmFtZXMoKSB7IHJldHVybiBtX251bWJlck9mRnJhbWVzOyB9
CisKKyAgICB2b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5hbCB7CisgICAgICAgIG1fbWFuYWdlci5w
cm9jZXNzKCkuc2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZVN0
b3BwZWQobV9pZCksIDApOworICAgIH0KKworICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKCkg
ZmluYWwgeworICAgICAgICBtX21hbmFnZXIucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2VNdXRlZENoYW5nZWQobV9pZCwgbV9zb3VyY2UtPm11
dGVkKCkpLCAwKTsKKyAgICB9CisKKyAgICB2b2lkIHNvdXJjZUVuYWJsZWRDaGFuZ2VkKCkgZmlu
YWwgeworICAgICAgICBtX21hbmFnZXIucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2VFbmFibGVkQ2hhbmdlZChtX2lkLCBtX3NvdXJjZS0+ZW5h
YmxlZCgpKSwgMCk7CisgICAgfQorCisgICAgdm9pZCBzb3VyY2VTZXR0aW5nc0NoYW5nZWQoKSBm
aW5hbCB7CisgICAgICAgIG1fbWFuYWdlci5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZVNldHRpbmdzQ2hhbmdlZChtX2lkLCBtX3NvdXJjZS0+
c2V0dGluZ3MoKSksIDApOworICAgIH0KKworICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxl
KGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0
YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBudW1i
ZXJPZkZyYW1lcykgZmluYWwgeworICAgICAgICBpZiAobV9kZXNjcmlwdGlvbiAhPSBkZXNjcmlw
dGlvbikgeworICAgICAgICAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRp
b24oKS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUp
OworICAgICAgICAgICAgbV9kZXNjcmlwdGlvbiA9ICpXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVh
bUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVz
Y3JpcHRpb24pOworICAgICAgICAgICAgbV9udW1iZXJPZkZyYW1lcyA9IG1fZGVzY3JpcHRpb24u
c2FtcGxlUmF0ZSgpICogMjsKKyAgICAgICAgICAgIG1fcmluZ0J1ZmZlci5hbGxvY2F0ZShtX2Rl
c2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCksIG1fbnVtYmVyT2ZGcmFtZXMpOworICAgICAg
ICB9CisKKyAgICAgICAgQVNTRVJUKGlzPFdlYkF1ZGlvQnVmZmVyTGlzdD4oYXVkaW9EYXRhKSk7
CisgICAgICAgIG1fcmluZ0J1ZmZlci5zdG9yZShkb3duY2FzdDxXZWJBdWRpb0J1ZmZlckxpc3Q+
KGF1ZGlvRGF0YSkubGlzdCgpLCBudW1iZXJPZkZyYW1lcywgdGltZS50aW1lVmFsdWUoKSk7Cisg
ICAgICAgIHVpbnQ2NF90IHN0YXJ0RnJhbWU7CisgICAgICAgIHVpbnQ2NF90IGVuZEZyYW1lOwor
ICAgICAgICBtX3JpbmdCdWZmZXIuZ2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVu
ZEZyYW1lKTsKKyAgICAgICAgbV9tYW5hZ2VyLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6UmluZ0J1ZmZlckZyYW1lQm91bmRzQ2hhbmdlZChtX2lkLCBz
dGFydEZyYW1lLCBlbmRGcmFtZSksIDApOworCisgICAgICAgIG1fbWFuYWdlci5wcm9jZXNzKCku
c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlvU2FtcGxlc0F2YWls
YWJsZShtX2lkLCB0aW1lLCBudW1iZXJPZkZyYW1lcyksIDApOworICAgIH0KKworICAgIHZvaWQg
c3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlKSBmaW5hbCB7CisgICAgICAgIFNo
YXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgaWYgKHN0b3JhZ2UpCisgICAgICAg
ICAgICBzdG9yYWdlLT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rp
b246OlJlYWRPbmx5KTsKKyAgICAgICAgbV9tYW5hZ2VyLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2Vz
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U3RvcmFnZUNoYW5nZWQobV9pZCwgaGFuZGxlLCBt
X2Rlc2NyaXB0aW9uLCBtX251bWJlck9mRnJhbWVzKSwgMCk7CisgICAgfQorCitwcm90ZWN0ZWQ6
CisgICAgdWludDY0X3QgbV9pZDsKKyAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5JiBt
X21hbmFnZXI7CisgICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fc291cmNlOworICAgIFNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBtX3N0b3JhZ2U7CisgICAgQ0FSaW5nQnVmZmVyIG1fcmlu
Z0J1ZmZlcjsKKyAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbiB7IH07
CisgICAgaW50NjRfdCBtX251bWJlck9mRnJhbWVzIHsgMCB9OworfTsKKworVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eShXZWJQcm9jZXNz
UHJveHkmIHByb2Nlc3MpCisgICAgOiBtX3Byb2Nlc3MocHJvY2VzcykKK3sKKyAgICBtX3Byb2Nl
c3MuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKK30KKworVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6flVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoKQoreworICAgIG1f
cHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Cit9CisKK3ZvaWQgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0
aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHNEYXRhJiBjb25zdHJhaW50c0RhdGEsIGJvb2wmIHN1Y2NlZWRl
ZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMpCit7CisgICAgYXV0byBjb25zdHJhaW50cyA9
IE1lZGlhQ29uc3RyYWludHNJbXBsOjpjcmVhdGUoY29uc3RyYWludHNEYXRhKTsKKyAgICBSZWZQ
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gc291cmNlID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6c2luZ2xldG9uKCkuZGVmYXVsdEF1ZGlvRmFjdG9yeSgpLT5jcmVhdGVNZWRpYVNvdXJjZUZv
ckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoZGV2aWNlLCBjb25zdHJhaW50cy5wdHIoKSwg
aW52YWxpZENvbnN0cmFpbnRzKTsKKyAgICBzdWNjZWVkZWQgPSAhIXNvdXJjZTsKKyAgICAKKyAg
ICBpZiAoc291cmNlKQorICAgICAgICBtX3Byb3hpZXMuc2V0KGlkLCBzdGQ6Om1ha2VfdW5pcXVl
PFNvdXJjZVByb3h5PihpZCwgKnRoaXMsIHNvdXJjZS5yZWxlYXNlTm9uTnVsbCgpKSk7Cit9CisK
K3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6c3RhcnRQcm9kdWNpbmdEYXRhKHVp
bnQ2NF90IGlkKQoreworICAgIGF1dG8gaXRlciA9IG1fcHJveGllcy5maW5kKGlkKTsKKyAgICBp
ZiAoaXRlciAhPSBtX3Byb3hpZXMuZW5kKCkpCisgICAgICAgIGl0ZXItPnZhbHVlLT5zb3VyY2Uo
KS5zdGFydFByb2R1Y2luZ0RhdGEoKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OjpzdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKK3sKKyAgICBhdXRvIGl0ZXIg
PSBtX3Byb3hpZXMuZmluZChpZCk7CisgICAgaWYgKGl0ZXIgIT0gbV9wcm94aWVzLmVuZCgpKQor
ICAgICAgICBpdGVyLT52YWx1ZS0+c291cmNlKCkuc3RvcFByb2R1Y2luZ0RhdGEoKTsKK30KKwor
fQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxMTMyMWRi
YWNhMDQ3NWVkNDc5ZjJiYmZiYjM1ZTU2NjRkOGY2ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5o
CkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRG
T1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiQ29ubmVjdGlv
bi5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVN
ZWRpYVNvdXJjZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU2hhcmVkTWVtb3J5
OworY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OworCitjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5IDogcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eShXZWJQcm9jZXNzUHJveHkmKTsKKyAgICB+VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpOworCisgICAgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNz
KCkgY29uc3QgeyByZXR1cm4gbV9wcm9jZXNzOyB9CisKK3ByaXZhdGU6CisgICAgLy8gSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVu
Y29kZXI+JikgZmluYWw7CisKKyAgICB2b2lkIGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURl
dmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURl
dmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhJiwgYm9vbCYgc3VjY2Vl
ZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cyk7CisgICAgdm9pZCBzdGFydFByb2R1Y2lu
Z0RhdGEodWludDY0X3QpOworICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEodWludDY0X3QpOwor
CisgICAgY2xhc3MgU291cmNlUHJveHk7CisgICAgZnJpZW5kIGNsYXNzIFNvdXJjZVByb3h5Owor
ICAgIEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxTb3VyY2VQcm94eT4+IG1fcHJv
eGllczsKKyAgICBXZWJQcm9jZXNzUHJveHkmIG1fcHJvY2VzczsKK307CisKK30KKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljc0YjhjYmI3YjhhNjliNzNiMzk3YTllOWQyYmNjMGU3MGIxMzExNWYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI4IEBACisjIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5IHsKKyAgICBDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWlu
dHModWludDY0X3QgaWQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2aWNlLCBzdHJ1Y3QgV2Vi
Q29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEgY29uc3RyYWludHMpIC0+IChib29sIHN1Y2Nlc3Ms
IFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMpCisgICAgU3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2
NF90IGlkKQorICAgIFN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQorfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpp
bmRleCA4NzM4ZjA3MDYzN2Y0OTBmMWYwODZjMDk5YjkzNzRlNzQwZWNjN2VlLi5mNDczYjVkODEy
MThlYmYyZjAyYTlhZmZmYmFhNWUxNDk5OWI4YWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpAQCAtMjU4LDYgKzI1
OCw4IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3Mo
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYKICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMg
YW5kIHJlbGF0ZWQgcGFyYW1ldGVyIHdoZW4gPHJkYXI6Ly9wcm9ibGVtLzI5NDQ4MzY4PiBpcyBm
aXhlZC4KICAgICBpZiAobWVkaWFTdHJlYW1FbmFibGVkIHx8IHdlYlJUQ0VuYWJsZWQpCiAgICAg
ICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvckdlbmVyaWNFeHRlbnNpb24oImNv
bS5hcHBsZS53ZWJraXQubWljcm9waG9uZSIsIHBhcmFtZXRlcnMuYXVkaW9DYXB0dXJlRXh0ZW5z
aW9uSGFuZGxlKTsKKworICAgIHBhcmFtZXRlcnMuc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nl
c3MgPSBtX2RlZmF1bHRQYWdlR3JvdXAtPnByZWZlcmVuY2VzKCkuc2hvdWxkQ2FwdHVyZUF1ZGlv
SW5VSVByb2Nlc3MoKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDVmZjY0ZDY0OGM0Yjc4NDI1ZmQ5MTI3MDYzNDdmMjg3
OGY5NGU1MDAuLmNkMWRjZDdkNTZlYzY3N2QyNGM5Nzk5NmY3OGQ0YmQxMDI1N2Q1OWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0zNyw2ICsz
Nyw3IEBACiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0
YXRlLmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIgogI2lu
Y2x1ZGUgIldlYkljb25EYXRhYmFzZS5oIgogI2luY2x1ZGUgIldlYkluc3BlY3RvclV0aWxpdGll
cy5oIgpAQCAtMTA0LDkgKzEwNSwxNCBAQCBXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94
eShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFdlYnNpdGVEYXRhU3RvcmUqCiAgICAgLCBt
X2lzUmVzcG9uc2l2ZShOb09yTWF5YmU6Ok1heWJlKQogICAgICwgbV92aXNpYmxlUGFnZUNvdW50
ZXIoW3RoaXNdKFJlZkNvdW50ZXJFdmVudCkgeyB1cGRhdGVCYWNrZ3JvdW5kUmVzcG9uc2l2ZW5l
c3NUaW1lcigpOyB9KQogICAgICwgbV93ZWJzaXRlRGF0YVN0b3JlKHdlYnNpdGVEYXRhU3RvcmUp
CisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgLCBtX3Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoc3RkOjptYWtlX3VuaXF1ZTxVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5PigqdGhpcykpCisjZW5kaWYKIHsKICAgICBXZWJQYXN0ZWJvYXJkUHJv
eHk6OnNpbmdsZXRvbigpLmFkZFdlYlByb2Nlc3NQcm94eSgqdGhpcyk7CiAKKworCiAgICAgY29u
bmVjdCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgK
aW5kZXggZjVlNjFhYTAwMTgwNjc3NDgyYWYzNzA3ZGNiZGIxOTk1MTdmYWY2YS4uYjMyODgxNWNm
MTY0MjdmOGFjNmRkNjY2ZjNhOTU3MmRhYTcxYzkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtNTYsNiArNTYsNyBAQCBzdHJ1Y3QgUGx1Z2luSW5m
bzsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5OworY2xh
c3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW07CiBjbGFzcyBXZWJQYWdlR3JvdXA7CiBjbGFzcyBXZWJQcm9jZXNzUG9vbDsKQEAgLTI3
Myw2ICsyNzQsMTAgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2Vic2l0ZURhdGFTdG9yZT4gbV93
ZWJzaXRlRGF0YVN0b3JlOwogCiAgICAgYm9vbCBtX2lzVW5kZXJNZW1vcnlQcmVzc3VyZSB7IGZh
bHNlIH07CisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eT4gbV91c2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCAxM2U0MWM2MjJhMmQ5NjllM2JhODYzM2UwYTdiM2VlZTlmNWFlY2JlLi5lZGE3N2Q4
MWNkY2RjOWI5OTJjYWVkODk4ZjliN2YwMjA3NDI2YThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xODc5LDExICsxODc5LDE4
IEBACiAJCUNEMDAzQTUzMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5h
Z2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDAw
M0E1MTE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oICovOyB9
OwogCQlDRDE5QTI2RDFBMTNFODJBMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Qx
OUEyNjkxQTEzRTgyMDAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCAq
LzsgfTsKIAkJQ0QxOUEyNkUxQTEzRTgzNDAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RDE5QTI2QTFBMTNFODIxMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAq
LzsgfTsKKwkJQ0Q0OTFCMDcxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
NDkxQjA1MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgKi87
IH07CisJCUNENDkxQjA4MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0OTFC
MDYxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggKi87IH07CisJ
CUNENDkxQjBEMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDQ5MUIwQjFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQlDRDQ5MUIwRTFFNzMyRTREMDAwMDkwNjYgLyog
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0OTFCMEMxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKKwkJQ0Q0OTFCMTIxRTczNDgyMTAw
MDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0OTFCMTAxRTczNDgyMTAwMDA5MDY2
IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwICovOyB9OworCQlDRDQ5MUIxMzFF
NzM0ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0OTFCMTExRTczNDgyMTAw
MDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCAqLzsgfTsKKwkJQ0Q0OTFC
MTcxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0Q0OTFCMTUxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQlDRDQ5MUIxODFFNzM1MjU1MDAwMDkwNjYg
LyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ5MUIxNjFFNzM1MjU1MDAwMDkwNjYg
LyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi87IH07CiAJCUNENEI0
RDlDMUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDRCNEQ5QTFFNzY1RTAw
MDBEMjcwOTIgLyogU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuY3BwICovOyB9OwogCQlDRDRCNEQ5
RDFFNzY1RTAwMDBEMjcwOTIgLyogU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENEI0RDlCMUU3NjVFMDAwMEQy
NzA5MiAvKiBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oICovOyB9OwogCQlDRDVDNjZBMDEzNEI5
RDM4MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDVDNjY5RTEzNEI5
RDM2MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5jcHAgKi87
IH07CiAJCUNENUM2NkExMTM0QjlEMzgwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxs
U2NyZWVuQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDVDNjY5RjEzNEI5RDM3MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNj
cmVlbkNsaWVudC5oICovOyB9OwotCQlDRDYxNzgxNDFFNkRFOUEwMDBGREE1N0QgLyogV2ViVXNl
ck1lZGlhQ2xpZW50TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0Q2MTc4MTIxRTZERTlBMDAwRkRBNTdEIC8qIFdlYlVzZXJNZWRpYUNsaWVudE1h
Yy5tbSAqLzsgfTsKIAkJQ0Q2Rjc1RjQxMzFCNjZEMDAwRDZCMjFFIC8qIFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0Q3M0JBM0UxMzFBMkU4QTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHkuY3BwICovOyB9OwogCQlDRDczQkE0NzEzMUFDQzlBMDBFRURFRDIgLyogV2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDczQkE0NTEzMUFDQzg4MDBFRURFRDIgLyogV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCUNENzNCQTRF
MTMxQUNEQjcwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDczQkE0
ODEzMUFDRDhFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovOyB9OwpAQCAtNDE2OSwxMSArNDE3NiwyMCBAQAogCQlDRDAwM0E1MTE5RDQ5QjVEMDA1
QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmg7IHBhdGggPSBNZWRpYUNh
Y2hlL1dlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0QxOUEyNjkxQTEzRTgyMDAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QxOUEy
NkExQTEzRTgyMTAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENDkxQjA1MUU3MEQwNUYwMDAwOTA2NiAv
KiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNENDkxQjA2MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ5MUIwQTFFNzMy
RDEyMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNENDkxQjBCMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENDkxQjBDMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQ0Q0OTFCMTAxRTczNDgyMTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA7IHBhdGggPSAuLi9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0
OTFCMTExRTczNDgyMTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5oOyBwYXRoID0gLi4vQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ5MUIxNDFFNzM0OUYzMDAwMDkwNjYgLyog
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBwYXRoID0gLi4vQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0Q0OTFCMTUxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENDkxQjE2MUU3MzUyNTUwMDAwOTA2NiAvKiBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENEI0RDlBMUU3NjVFMDAwMEQyNzA5MiAvKiBT
aGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNENEI0RDlCMUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFyZWRSaW5nQnVmZmVyU3Rv
cmFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFyZWRSaW5nQnVmZmVy
U3RvcmFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDVDNjY5RTEzNEI5RDM2
MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2Ny
ZWVuQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1QzY2OUYxMzRC
OUQzNzAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVl
bkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDRDYxNzgxMjFFNkRFOUEw
MDBGREE1N0QgLyogV2ViVXNlck1lZGlhQ2xpZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBuYW1lID0gV2ViVXNlck1lZGlhQ2xpZW50TWFjLm1tOyBwYXRoID0gY29j
b2EvV2ViVXNlck1lZGlhQ2xpZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDRDczQkEzNzEzMUEyOUZFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViRnVsbFNjcmVlbk1hbmFnZXIu
Y3BwOyBwYXRoID0gRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENzNCQTM4MTMxQTI5RkUwMEVFREVEMiAvKiBXZWJGdWxs
U2NyZWVuTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJGdWxs
U2NyZWVuTWFuYWdlci5oOyBwYXRoID0gRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDczQkEzOTEzMUEyOUZFMDBFRURFRDIg
LyogV2ViRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1l
ID0gV2ViRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW47IHBhdGggPSBGdWxsU2NyZWVuL1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNjI4MSw2ICs2Mjk3LDkgQEAKIAkJN0M2RTcwRjgxOEIyRDQ3RTAwRjI0RTJFIC8qIGNv
Y29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlDRDQ5
MUIwNTFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwICovLAor
CQkJCUNENDkxQjA2MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5o
ICovLAorCQkJCUNENDkxQjBBMUU3MzJEMTIwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCQlDREEyOUExOTFDQkRCRjQxMDA5MDFDQ0YgLyogV2Vi
UGxheWJhY2tTZXNzaW9uTWFuYWdlci5oICovLAogCQkJCUNEQTI5QTFDMUNCREJGNUIwMDkwMUND
RiAvKiBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJCUNEQTI5
QTE4MUNCREJGNDEwMDkwMUNDRiAvKiBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1tICovLApA
QCAtNzQ0OCw2ICs3NDY3LDkgQEAKIAkJCQkxQUE0MTdFRDEyQzAwRDg3MDAyQkU2N0IgLyogVGV4
dENoZWNrZXJNYWMubW0gKi8sCiAJCQkJMUFGMDVEODUxNDY4ODM0ODAwOEIxRTgxIC8qIFRpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaCAqLywKIAkJCQkxQUYwNUQ4NDE0Njg4MzQ4
MDA4QjFFODEgLyogVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbSAqLywKKwkJ
CQlDRDQ5MUIxMDFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5jcHAgKi8sCisJCQkJQ0Q0OTFCMTExRTczNDgyMTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkuaCAqLywKKwkJCQlDRDQ5MUIxNDFFNzM0OUYzMDAwMDkwNjYgLyogVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQkyRDEyNUM1RDE4
NTdFQTA1MDAzQkEzQ0IgLyogVmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tICovLAogCQkJCTJE
NkNEMTE3MTg5MDU4QTUwMEU1QTRBMCAvKiBWaWV3U25hcHNob3RTdG9yZS5oICovLAogCQkJCTJE
NkNEMTE4MTg5MDU4QTUwMEU1QTRBMCAvKiBWaWV3U25hcHNob3RTdG9yZS5tbSAqLywKQEAgLTc2
OTAsNiArNzcxMiwxMCBAQAogCQkJCTFBMzM0REVDMTZERThGODgwMDZBOEUzOCAvKiBTdG9yYWdl
QXJlYU1hcE1lc3NhZ2VzLmggKi8sCiAJCQkJMUFCMzFBOTQxNkJDNjg4MTAwRjZEQkM5IC8qIFN0
b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQUIzMUE5NTE2QkM2ODgx
MDBGNkRCQzkgLyogU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCUNENDkxQjE1MUU3
MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLywKKwkJCQlDRDQ5MUIxNjFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJQ0Q0OTFCMEIxRTczMkU0RDAwMDA5
MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJ
CQlDRDQ5MUIwQzFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNz
YWdlcy5oICovLAogCQkJCTJEMUI1RDVCMTg1ODY5QzgwMDZDNjU5NiAvKiBWaWV3R2VzdHVyZUNv
bnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTJEMUI1RDVDMTg1ODY5QzgwMDZD
NjU5NiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdlcy5oICovLAogCQkJCTJEODE5QjlG
MTg2MjgwMEUwMDFGMDNEMSAvKiBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLywKQEAgLTc4MjQsNyArNzg1MCw2IEBACiAJCUNENjE3ODExMUU2REU5ODAw
MEZEQTU3RCAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCi0JCQkJQ0Q2MTc4MTIxRTZERTlBMDAwRkRBNTdEIC8qIFdlYlVzZXJNZWRpYUNsaWVudE1h
Yy5tbSAqLywKIAkJCSk7CiAJCQluYW1lID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpAQCAtODA0OSw2ICs4MDc0LDcgQEAKIAkJCQk3QzI0MTMwMzFBQUNGQTc1MDBBNThDMTUg
LyogX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0My
NDEzMDUxQUFDRkE5QzAwQTU4QzE1IC8qIF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NBMzc5M0UxQUMzNzhCMzAwNzlEQzM3IC8qIF9X
S1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVQcml2YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQlD
RDQ5MUIxMzFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0M4OUQyQkExQTZCMEYyQzAwM0E1RkRFIC8qIF9XS1VzZXJD
b250ZW50RmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Qzg5RDJCQzFBNkIwRjVCMDAzQTVG
REUgLyogX1dLVXNlckNvbnRlbnRGaWx0ZXJJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
N0E4MjFGNTAxRTJGN0E3NTAwNjA0NTc3IC8qIEFQSUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC04MDU2LDYgKzgwODIsNyBAQAogCQkJCTdDODgyREY5MUM3
RTk5NkYwMDZCRjczMSAvKiBfV0tVc2VyQ29udGVudFdvcmxkSW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTdDQjM2NUFBMUQzMURCNzAwMDcxNThDQSAvKiBfV0tVc2VySW5pdGlhdGVkQWN0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0IzNjVBRDFEMzFEQzEwMDA3MTU4Q0EgLyogX1dL
VXNlckluaXRpYXRlZEFjdGlvbkludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDQ5MUIw
RTFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMkQ4Nzg2MUQxQkRCNTRCRjAwRDAyQUJCIC8qIF9XS1VzZXJTdHls
ZVNoZWV0LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDg3ODYyMDFCREI1N0Y1MDBEMDJBQkIgLyog
X1dLVXNlclN0eWxlU2hlZXRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4MUIzODEx
OEJENjZBRDAwMDdGREFDIC8qIF9XS1Zpc2l0ZWRMaW5rU3RvcmUuaCBpbiBIZWFkZXJzICovLApA
QCAtODEwMSw2ICs4MTI4LDcgQEAKIAkJCQkxQTI0NjRGMzE4OTFFNDUxMDAyMzRDNUIgLyogQVBJ
TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0QzQTQ4MzFBNUQwMkZBMDA5NjIz
QjggLyogQVBJTmF2aWdhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRGOUVFRUMxQTc4MzZF
RTAwQjZDRkJFIC8qIEFQSU5hdmlnYXRpb25BY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUNE
NDkxQjA4MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMkREOUVCMkQxQTZGMDEyNTAwQkIxMjY3IC8qIEFQSU5hdmlnYXRpb25D
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRjY5RkEyMTE3NkQwMTQwMDQ3MUE1MiAvKiBB
UElOYXZpZ2F0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRGOUVFRUUxQTc4NkVBRDAw
QjZDRkJFIC8qIEFQSU5hdmlnYXRpb25SZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCkBAIC04NDIy
LDYgKzg0NTAsNyBAQAogCQkJCUUxOEU2OTBDMTY5QjU2M0YwMDlCNjY3MCAvKiBTZWNJdGVtU2hp
bVByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMThFNjkxODE2OUI2NjdCMDA5QjY2NzAgLyog
U2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTREOUY1NzE5
MTE5RDM1MDAwMDYzQTcgLyogU2VydmljZXNDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlDRDQ5MUIxODFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMwNzVBQjFERTg1RjMzMDAzOUVDNjkg
LyogTmV0d29ya1JUQ1NvY2tldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGREU2NUExOTU0QTQy
QjAwQzQ4RkZBIC8qIFNlc3Npb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEwMDJENDkx
OTZCMzQ1RDAwQjlBRDQ0IC8qIFNlc3Npb25TdGF0ZUNvZGluZy5oIGluIEhlYWRlcnMgKi8sCkBA
IC05NjAyLDYgKzk2MzEsNyBAQAogCQkJCTM3M0QxMjIyMThBNDczMDEwMDY2RDlDQyAvKiBfV0tG
cmFtZUhhbmRsZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzQTg4QjM5MUJDNzBGM0YwMEFCQTVD
MiAvKiBfV0tIaXRUZXN0UmVzdWx0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEwRjU5MTIxRERF
Mjk3NzAwNDEyRkY1IC8qIF9XS0xpbmtJY29uUGFyYW1ldGVycy5tbSBpbiBTb3VyY2VzICovLAor
CQkJCUNENDkxQjBEMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTE4QTlGMjE5MDhCOEVBMDBG
N0M5MkIgLyogX1dLTlNGaWxlTWFuYWdlckV4dHJhcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFB
NDNFODI5MTg4RjNDREMwMDlFNEQzMCAvKiBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0g
aW4gU291cmNlcyAqLywKIAkJCQkxQTlFMzI4RTE4MjE2NUE5MDBGNUQwNEMgLyogX1dLUmVtb3Rl
T2JqZWN0SW50ZXJmYWNlLm1tIGluIFNvdXJjZXMgKi8sCkBAIC05NjM2LDYgKzk2NjYsNyBAQAog
CQkJCTkzQTg4QjQ3MUJDODgyOTcwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTdDRDNBNDgyMUE1RDAyRkEwMDk2MjNCOCAvKiBBUElOYXZpZ2F0aW9u
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRjY5RkEzMTE3NkQwMTQwMDQ3MUE1MiAvKiBBUElO
YXZpZ2F0aW9uRGF0YS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDQ5MUIxNzFFNzM1MjU1MDAw
MDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk4MzJFRDE4QjFFMkZFMTU3MDA2QkE2NEEgLyogUGVyQWN0aXZp
dHlTdGF0ZUNQVVVzYWdlU2FtcGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNjM0MDNGOTE0
OTEwRDU3MDAxMDcwQjUgLyogQVBJT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3OEUx
QTNEMTgxRUQ2RkYwMDMxMDA3QSAvKiBBUElPYmplY3QubW0gaW4gU291cmNlcyAqLywKQEAgLTk2
NjAsNiArOTY5MSw3IEBACiAJCQkJMUEzNjM1QTkxQTMxNDRBMzAwRUQ2MTk3IC8qIEFQSVdlYnNp
dGVEYXRhU3RvcmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEzNjM1QUQxQTMxNDVFNTAwRUQ2
MTk3IC8qIEFQSVdlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVD
QjIzNzkxMURGMEUyRTYwMDExN0FBMyAvKiBBUElXZWJzaXRlUG9saWNpZXMuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQ0Q0OTFCMTIxRTczNDgyMTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE2NTYzRTQxQjdBOEM1MDAwOUNG
Nzg3IC8qIEFQSVdpbmRvd0ZlYXR1cmVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBRDRDMTky
MUIzOUYzMzIwMEFCQzI4RSAvKiBBcHBsaWNhdGlvblN0YXRlVHJhY2tlci5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBM0Q2MTA1MTNBN0YwM0EwMEY5NUQ0RSAvKiBBcmd1bWVudENvZGVycy5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTk5NzksNyArMTAwMTEsNiBAQAogCQkJCTc1M0UzRTBEMTg4NzM5
ODUwMDE4ODQ5NiAvKiBTZXNzaW9uVHJhY2tlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTY0
MjBFNDEyRENFMkZGMDBDQUFFMkMgLyogU2hhcmVhYmxlQml0bWFwLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUMwMUEyNjAxMTI2NjJGMjEwMEM5RUQ1NSAvKiBTaGFyZWFibGVCaXRtYXBDRy5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQlDRDYxNzgxNDFFNkRFOUEwMDBGREE1N0QgLyogV2ViVXNlck1l
ZGlhQ2xpZW50TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyMTc0NjAxNjRDMjBFMzAwMzdB
NUMxIC8qIFNoYXJlYWJsZVJlc291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ0NTBBRUMw
MURDM0ZBRTUwMDk5NDNGMiAvKiBTaGFyZWRNZW1vcnlDb2NvYS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkyREFGMDZENzE4QkQxQTQ3MDA4MUNFQjEgLyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJv
bGxlci5tbSBpbiBTb3VyY2VzICovLApAQCAtMTAxODIsNiArMTAyMTMsNyBAQAogCQkJCTk5QzNB
RTI0MURBRDhFMzcwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTdDNDY5NENDMUE0QjUxMEEwMEFENTg0NSAvKiBXZWJQYXN0ZWJvYXJkUHJv
eHlDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDNDY5NEM5MUE0QjRFQTEwMEFENTg0NSAv
KiBXZWJQYXN0ZWJvYXJkUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJQ0Q0OTFCMDcxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFBQjFGNzc0MUQxQjJGOEEwMDdDOUJEMSAvKiBXZWJQYXlt
ZW50Q29vcmRpbmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFCMUY3OTYxRDFCMzYxMzAw
N0M5QkQxIC8qIFdlYlBheW1lbnRDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxQUIxRjc4QjFEMUIzMzU1MDA3QzlCRDEgLyogV2ViUGF5bWVudENvb3Jk
aW5hdG9yUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5j
cHAKaW5kZXggYWFkZWQzNDRhNzZhZWE2YWI0NzE2MmQ4OTY4Y2NiMmM1ZjA1MGM2Ny4uMzYyMjAy
ZTBlZDYwZTY1Nzc0ZmZjODcwNzBjZDUxNzNkYjVjYjg2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlh
Q2xpZW50LmNwcApAQCAtMzMsNyArMzMsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFdlYlVzZXJN
ZWRpYUNsaWVudDo6V2ViVXNlck1lZGlhQ2xpZW50KFdlYlBhZ2UmIHBhZ2UpCiAgICAgOiBtX3Bh
Z2UocGFnZSkKIHsKLSAgICBpbml0aWFsaXplRmFjdG9yaWVzKCk7CiB9CiAKIHZvaWQgV2ViVXNl
ck1lZGlhQ2xpZW50OjpwYWdlRGVzdHJveWVkKCkKQEAgLTYxLDEzICs2MCw2IEBAIHZvaWQgV2Vi
VXNlck1lZGlhQ2xpZW50OjpjYW5jZWxNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QoTWVk
aWFEZXZpY2VzRW51bWVyCiAgICAgbV9wYWdlLnVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcigpLmNhbmNlbE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uKHJlcXVlc3QpOwogfQogCi0jaWYg
IVBMQVRGT1JNKENPQ09BKQotdm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OmluaXRpYWxpemVGYWN0
b3JpZXMoKQotewotCi19Ci0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OwogCiAjZW5k
aWYgLy8gTUVESUFfU1RSRUFNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L2NvY29hL1dlYlVzZXJNZWRpYUNsaWVudE1hYy5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvY29jb2EvV2ViVXNlck1lZGlhQ2xpZW50
TWFjLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOGRmMmYxMDE5YmE4NmY2ZmE3
YTM2MTYwNGEwZWEyNzZiZDc1YzFlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvY29j
b2EvV2ViVXNlck1lZGlhQ2xpZW50TWFjLm1tCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJVc2VyTWVk
aWFDbGllbnQuaCIKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFBMQVRGT1JNKENPQ09B
KQotCi0jaW1wb3J0IDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KLSNpbXBv
cnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQot
bmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYlVzZXJNZWRpYUNsaWVudEF1ZGlvRmFjdG9y
eSBmaW5hbCA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSB7Ci1w
dWJsaWM6Ci0gICAgc3RhdGljIFdlYlVzZXJNZWRpYUNsaWVudEF1ZGlvRmFjdG9yeSYgc2luZ2xl
dG9uKCkKLSAgICB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxXZWJVc2VyTWVkaWFD
bGllbnRBdWRpb0ZhY3Rvcnk+IGZhY3Rvcnk7Ci0gICAgICAgIHJldHVybiBmYWN0b3J5OwotICAg
IH0KLQotcHJpdmF0ZToKLSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlTWVk
aWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGNvbnN0IENhcHR1cmVEZXZp
Y2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYg
aW52YWxpZENvbnN0cmFpbnRzKSBmaW5hbCB7Ci0gICAgICAgIGF1dG8qIGZhY3RvcnkgPSBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5kZWZhdWx0QXVkaW9GYWN0b3J5KCk7
Ci0gICAgICAgIHJldHVybiBmYWN0b3J5ID8gZmFjdG9yeS0+Y3JlYXRlTWVkaWFTb3VyY2VGb3JD
YXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGRldmljZSwgY29uc3RyYWludHMsIGludmFsaWRD
b25zdHJhaW50cykgOiBudWxscHRyOwotICAgIH0KLX07Ci0KLXZvaWQgV2ViVXNlck1lZGlhQ2xp
ZW50Ojppbml0aWFsaXplRmFjdG9yaWVzKCkKLXsKLSAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90
IG9uY2VUb2tlbjsKLSAgICBkaXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4sIF4gewotICAgICAgICBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5zZXRBdWRpb0Zh
Y3RvcnkoV2ViVXNlck1lZGlhQ2xpZW50QXVkaW9GYWN0b3J5OjpzaW5nbGV0b24oKSk7Ci0gICAg
fSk7Ci19Ci0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcAppbmRleCA2YTQxYjRjZjA3M2M4YjAyMjE0MWFhYzVkM2Y1Mzk4YTk5OTUwNzg3Li5hMWVh
OTZkNzljOGY5YWYyNTAyMzJlYzFmMGQ1OTBjNmUxODYyMzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJTZXNz
aW9uVHJhY2tlci5oIgogI2luY2x1ZGUgIlN0YXRpc3RpY3NEYXRhLmgiCiAjaW5jbHVkZSAiVXNl
ckRhdGEuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIgogI2luY2x1ZGUg
IldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaCIKICNpbmNsdWRlICJXZWJDb25uZWN0aW9uVG9V
SVByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyLmgiCkBAIC0xOTEsNiArMTky
LDEwIEBAIFdlYlByb2Nlc3M6OldlYlByb2Nlc3MoKQogICAgIGFkZFN1cHBsZW1lbnQ8V2ViTWVk
aWFLZXlTdG9yYWdlTWFuYWdlcj4oKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKyAgICBhZGRTdXBwbGVtZW50PFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyPigpOworI2VuZGlm
CisKICAgICBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5hZGQoU2Vzc2lvbklEOjpkZWZh
dWx0U2Vzc2lvbklEKCksIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4oKSk7CiAKICAgICBSZXNv
dXJjZUxvYWRPYnNlcnZlcjo6c2hhcmVkT2JzZXJ2ZXIoKS5zZXRTdGF0aXN0aWNzU3RvcmUobV9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY29weVJlZigpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjgwNGNjMjRhZDlmNjgxZmRmYjUwZDAwMzYzMTU2ZTNkZjZmN2ZlMQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMjI5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgiCisK
KyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUg
IlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlN
ZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUg
IldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2aWNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9N
ZWRpYUNvbnN0cmFpbnRzSW1wbC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGlj
IHVpbnQ2NF90IG5leHRTZXNzaW9uSUQoKQoreworICAgIHN0YXRpYyB1aW50NjRfdCBuZXh0SUQg
PSAwOworICAgIHJldHVybiArK25leHRJRDsKK30KKworY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OlNvdXJjZSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlLCBwdWJsaWMgU2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2U6OkNsaWVudCB7CitwdWJsaWM6CisgICAgU291cmNlKGNvbnN0IFN0
cmluZyYgc291cmNlSUQsIFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCB1aW50NjRfdCBp
ZCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIpCisgICAgICAgIDogUmVhbHRpbWVN
ZWRpYVNvdXJjZShzb3VyY2VJRCwgdHlwZSwgbmFtZSkKKyAgICAgICAgLCBtX2lkKGlkKQorICAg
ICAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQorICAgICAgICAsIG1fc3RvcmFnZSgqbmV3IFNoYXJl
ZFJpbmdCdWZmZXJTdG9yYWdlKHRoaXMpKQorICAgICAgICAsIG1fcmluZ0J1ZmZlcihzdGQ6OnVu
aXF1ZV9wdHI8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KCZtX3N0b3JhZ2UpKQorICAgIHsKKyAg
ICB9CisKKyAgICB+U291cmNlKCkKKyAgICB7CisgICAgICAgIG1fc3RvcmFnZS5pbnZhbGlkYXRl
KCk7CisgICAgfQorCisgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+
IGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOyB9Cisg
ICAgdm9pZCBzZXRDYXBhYmlsaXRpZXMoUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXM+IGNhcGFiaWxpdGllcykgeyBtX2NhcGFiaWxpdGllcyA9IGNhcGFiaWxpdGllczsgfQor
CisgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0KKyAgICB2b2lkIHNldFNldHRpbmdzKGNvbnN0
IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MpCisgICAgeworICAgICAgICBt
X3NldHRpbmdzID0gc2V0dGluZ3M7CisgICAgICAgIHNldHRpbmdzRGlkQ2hhbmdlKCk7CisgICAg
fQorCisgICAgY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fZGVzY3JpcHRpb247IH0KKyAgICB2b2lkIHNldFN0b3JhZ2UoY29uc3Qg
U2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhhbmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisgICAg
eworICAgICAgICBtX2Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CisgICAgICAgIGlmIChoYW5k
bGUuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgIG1fcmluZ0J1ZmZlci5kZWFsbG9jYXRlKCk7Cisg
ICAgICAgICAgICBtX3N0b3JhZ2Uuc2V0UmVhZE9ubHkoZmFsc2UpOworICAgICAgICAgICAgbV9z
dG9yYWdlLnNldFN0b3JhZ2UobnVsbHB0cik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKworICAgICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBzdG9yYWdlID0gU2hhcmVkTWVtb3J5
OjptYXAoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICAg
ICAgbV9zdG9yYWdlLnNldFN0b3JhZ2UoV1RGTW92ZShzdG9yYWdlKSk7CisgICAgICAgIG1fc3Rv
cmFnZS5zZXRSZWFkT25seSh0cnVlKTsKKworICAgICAgICBtX3JpbmdCdWZmZXIuYWxsb2NhdGUo
ZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAgICB9CisKKyAgICB2b2lkIHNldFJpbmdC
dWZmZXJGcmFtZUJvdW5kcyh1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkK
KyAgICB7CisgICAgICAgIG1fcmluZ0J1ZmZlci5zZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRG
cmFtZSwgZW5kRnJhbWUpOworICAgIH0KKworICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxl
KE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKKyAgICB7CisgICAgICAg
IFdlYkF1ZGlvQnVmZmVyTGlzdCBhdWRpb0RhdGEobV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFt
ZXMpOworICAgICAgICBtX3JpbmdCdWZmZXIuZmV0Y2goYXVkaW9EYXRhLmxpc3QoKSwgbnVtYmVy
T2ZGcmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOworCisgICAgICAgIGZvciAoYXV0byogb2JzZXJ2
ZXIgOiBvYnNlcnZlcnMoKSkKKyAgICAgICAgICAgIG9ic2VydmVyLT5hdWRpb1NhbXBsZXNBdmFp
bGFibGUodGltZSwgYXVkaW9EYXRhLCBtX2Rlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7Cisg
ICAgfQorCisgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbCB7IG1fbWFuYWdlci5z
dGFydFByb2R1Y2luZ0RhdGEobV9pZCk7IH0KKyAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkg
ZmluYWwgeyBtX21hbmFnZXIuc3RvcFByb2R1Y2luZ0RhdGEobV9pZCk7IH0KKworICAgIEF1ZGlv
U291cmNlUHJvdmlkZXIqIGF1ZGlvU291cmNlUHJvdmlkZXIoKSBmaW5hbCB7IHJldHVybiBudWxs
cHRyOyB9CisKK3ByaXZhdGU6CisgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZQorICAgIHZvaWQg
YmVnaW5Db25maWd1cmF0aW9uKCkgZmluYWwgeyB9CisgICAgdm9pZCBjb21taXRDb25maWd1cmF0
aW9uKCkgZmluYWwgeyB9CisKKyAgICAvLyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50
CisgICAgdm9pZCBzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqKSBmaW5hbCB7IH0KKworICAg
IHVpbnQ2NF90IG1faWQ7CisgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFuYWdlcjsK
KyAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRp
ZXM7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0dGluZ3M7CisgICAgQ0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb247CisgICAgU2hhcmVkUmluZ0J1ZmZl
clN0b3JhZ2UmIG1fc3RvcmFnZTsKKyAgICBDQVJpbmdCdWZmZXIgbV9yaW5nQnVmZmVyOworfTsK
KworVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKFdlYlBy
b2Nlc3MqIHByb2Nlc3MpCisgICAgOiBtX3Byb2Nlc3MoKnByb2Nlc3MpCit7CisgICAgbV9wcm9j
ZXNzLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMpOworfQorCitVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6flVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKCkKK3sKKyAgICBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzaW5nbGV0b24oKS51bnNldEF1ZGlvRmFjdG9yeSgqdGhpcyk7CisgICAgbV9w
cm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Cit9CisKK2NvbnN0IGNoYXIqIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpzdXBwbGVtZW50TmFtZSgpCit7CisgICAgcmV0dXJuICJVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlciI7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6Omlu
aXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykK
K3sKKyAgICBpZiAocGFyYW1ldGVycy5zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcykKKyAg
ICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0QXVkaW9GYWN0
b3J5KCp0aGlzKTsKK30KKworUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyOjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3Ry
YWludHMoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cywgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMpCit7CisgICAgaWYgKCFj
b25zdHJhaW50cykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICB1aW50NjRfdCBpZCA9
IG5leHRTZXNzaW9uSUQoKTsKKyAgICBNZWRpYUNvbnN0cmFpbnRzRGF0YSBjb25zdHJhaW50c0Rh
dGE7CisgICAgY29uc3RyYWludHNEYXRhLm1hbmRhdG9yeUNvbnN0cmFpbnRzID0gY29uc3RyYWlu
dHMtPm1hbmRhdG9yeUNvbnN0cmFpbnRzKCk7CisgICAgY29uc3RyYWludHNEYXRhLmFkdmFuY2Vk
Q29uc3RyYWludHMgPSBjb25zdHJhaW50cy0+YWR2YW5jZWRDb25zdHJhaW50cygpOworICAgIGNv
bnN0cmFpbnRzRGF0YS5pc1ZhbGlkID0gY29uc3RyYWludHMtPmlzVmFsaWQoKTsKKyAgICBib29s
IHN1Y2NlZWRlZDsKKworICAgIG1fcHJvY2Vzcy5zZW5kU3luYyhNZXNzYWdlczo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0
aENvbnN0cmFpbnRzKGlkLCBkZXZpY2UsIGNvbnN0cmFpbnRzRGF0YSksIHtzdWNjZWVkZWQsIGlu
dmFsaWRDb25zdHJhaW50c30sIDApOworCisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZihuZXcg
U291cmNlKFN0cmluZzo6bnVtYmVyKGlkKSwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8sIGRl
dmljZS5sYWJlbCgpLCBpZCwgKnRoaXMpKTsKKyAgICBtX3NvdXJjZXMuc2V0KGlkLCBzb3VyY2Up
OworICAgIHJldHVybiBzb3VyY2U7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OnNvdXJjZVN0b3BwZWQodWludDY0X3QgaWQpCit7CisgICAgQVNTRVJUKG1fc291cmNlcy5jb250
YWlucyhpZCkpOworICAgIGF1dG8mIHNvdXJjZSA9ICptX3NvdXJjZXMuZ2V0KGlkKTsKKyAgICBz
b3VyY2Uuc3RvcCgpOworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VN
dXRlZENoYW5nZWQodWludDY0X3QgaWQsIGJvb2wgbXV0ZWQpCit7CisgICAgQVNTRVJUKG1fc291
cmNlcy5jb250YWlucyhpZCkpOworICAgIG1fc291cmNlcy5nZXQoaWQpLT5zZXRNdXRlZChtdXRl
ZCk7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZUVuYWJsZWRDaGFu
Z2VkKHVpbnQ2NF90IGlkLCBib29sIGVuYWJsZWQpCit7CisgICAgQVNTRVJUKG1fc291cmNlcy5j
b250YWlucyhpZCkpOworICAgIG1fc291cmNlcy5nZXQoaWQpLT5zZXRFbmFibGVkKGVuYWJsZWQp
OworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VTZXR0aW5nc0NoYW5n
ZWQodWludDY0X3QgaWQsIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGlu
Z3MpCit7CisgICAgQVNTRVJUKG1fc291cmNlcy5jb250YWlucyhpZCkpOworICAgIG1fc291cmNl
cy5nZXQoaWQpLT5zZXRTZXR0aW5ncyhzZXR0aW5ncyk7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OnN0b3JhZ2VDaGFuZ2VkKHVpbnQ2NF90IGlkLCBjb25zdCBTaGFyZWRNZW1v
cnk6OkhhbmRsZSYgaGFuZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24mIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBBU1NFUlQo
bV9zb3VyY2VzLmNvbnRhaW5zKGlkKSk7CisgICAgbV9zb3VyY2VzLmdldChpZCktPnNldFN0b3Jh
Z2UoaGFuZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworfQorCit2b2lkIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpyaW5nQnVmZmVyRnJhbWVCb3VuZHNDaGFuZ2VkKHVpbnQ2NF90
IGlkLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKK3sKKyAgICBBU1NF
UlQobV9zb3VyY2VzLmNvbnRhaW5zKGlkKSk7CisgICAgbV9zb3VyY2VzLmdldChpZCktPnNldFJp
bmdCdWZmZXJGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7Cit9CisKK3ZvaWQgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh1aW50NjRfdCBpZCwg
TWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQoreworICAgIEFTU0VSVCht
X3NvdXJjZXMuY29udGFpbnMoaWQpKTsKKyAgICBtX3NvdXJjZXMuZ2V0KGlkKS0+YXVkaW9TYW1w
bGVzQXZhaWxhYmxlKHRpbWUsIG51bWJlck9mRnJhbWVzKTsKK30KKwordm9pZCBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlcjo6c3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQoreworICAgIG1f
cHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTdGFy
dFByb2R1Y2luZ0RhdGEoaWQpLCAwKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6c3RvcFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCit7CisgICAgbV9wcm9jZXNzLnNlbmQo
TWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlN0b3BQcm9kdWNpbmdEYXRh
KGlkKSwgMCk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MGNmODc4NDE0MDVkNTgxN2JmZjZlNjlhMGQ2YWY0ZmJhZmU0YTg2ZgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuaApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQ
TEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lc3Nh
Z2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUgIldlYlBy
b2Nlc3NTdXBwbGVtZW50LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNl
Lmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xh
c3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
Y2xhc3MgQ3Jvc3NQcm9jZXNzUmVhbHRpbWVBdWRpb1NvdXJjZTsKK2NsYXNzIFdlYlByb2Nlc3M7
CisKK2NsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIDogcHVibGljIFdlYlByb2Nlc3NTdXBw
bGVtZW50LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIoV2ViUHJvY2VzcyopOworICAgIH5Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcigpOworCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7
CisKK3ByaXZhdGU6CisgICAgLy8gV2ViUHJvY2Vzc1N1cHBsZW1lbnQKKyAgICB2b2lkIGluaXRp
YWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpIGZpbmFsOworCisgICAg
Ly8gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6RmFjdG9yeToKKyAgICBSZWZQdHI8V2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2
aWNlV2l0aENvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBX
ZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJikgZmluYWw7CisKKyAgICAvLyBJUEM6
Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICAvLyBNZXNzYWdlczo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIKKyAgICB2b2lkIHNvdXJjZVN0b3BwZWQodWludDY0X3QgaWQpOworICAg
IHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKHVpbnQ2NF90IGlkLCBib29sIG11dGVkKTsKKyAgICB2
b2lkIHNvdXJjZUVuYWJsZWRDaGFuZ2VkKHVpbnQ2NF90IGlkLCBib29sIGVuYWJsZWQpOworICAg
IHZvaWQgc291cmNlU2V0dGluZ3NDaGFuZ2VkKHVpbnQ2NF90IGlkLCBjb25zdCBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmKTsKKyAgICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKHVp
bnQ2NF90IGlkLCBjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKyAgICB2
b2lkIHJpbmdCdWZmZXJGcmFtZUJvdW5kc0NoYW5nZWQodWludDY0X3QgaWQsIHVpbnQ2NF90IHN0
YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWls
YWJsZSh1aW50NjRfdCBpZCwgTWVkaWFUaW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisK
KyAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CisgICAgdm9pZCBzdG9wUHJv
ZHVjaW5nRGF0YSh1aW50NjRfdCk7CisKKyAgICBjbGFzcyBTb3VyY2U7CisgICAgZnJpZW5kIGNs
YXNzIFNvdXJjZTsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8U291cmNlPj4gbV9zb3Vy
Y2VzOworICAgIFdlYlByb2Nlc3MmIG1fcHJvY2VzczsKK307CisKK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzMwMWNmM2MyYTYz
ZDVkN2YxMGQzYTIxM2UyZjNiMTZhMmQxY2FjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5p
bgpAQCAtMCwwICsxLDMyIEBACisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoK
KyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisj
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CittZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciB7CisgICAgU291cmNlU3RvcHBl
ZCh1aW50NjRfdCBpZCkKKyAgICBTb3VyY2VNdXRlZENoYW5nZWQodWludDY0X3QgaWQsIGJvb2wg
bXV0ZWQpCisgICAgU291cmNlRW5hYmxlZENoYW5nZWQodWludDY0X3QgaWQsIGJvb2wgZW5hYmxl
ZCkKKyAgICBTb3VyY2VTZXR0aW5nc0NoYW5nZWQodWludDY0X3QgaWQsIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncykKKyAgICBTdG9yYWdlQ2hhbmdlZCh1aW50
NjRfdCBpZCwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZSBzdG9yYWdlSGFuZGxlLCBXZWJD
b3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJl
ck9mRnJhbWVzKQorICAgIFJpbmdCdWZmZXJGcmFtZUJvdW5kc0NoYW5nZWQodWludDY0X3QgaWQs
IHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKKyAgICBBdWRpb1NhbXBs
ZXNBdmFpbGFibGUodWludDY0X3QgaWQsIE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJP
ZkZyYW1lcykKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304438</attachid>
            <date>2017-03-14 16:11:47 -0700</date>
            <delta_ts>2017-03-14 16:50:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169609-20170314161147.patch</filename>
            <type>text/plain</type>
            <size>66614</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzOTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTA0Njg3Y2ZhMzNjMTYy
ODZjODUyOWYzN2I0NzgzNzA0ZDRkMjgwMi4uMDU4NmNhNDlmOGEyZTI1OTU2ZjlkMjQwMjdhNDIy
MWVmYTI1YmM2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTAzLTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIE9wdGlvbmFsbHkgY2FwdHVy
ZSBhdWRpbyBpbiB0aGUgVUlQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjk2MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBFeHBvcnQgc29tZSBwcmV2aW91c2x5IHVuLWV4cG9ydGVkIHN5bWJv
bHMgZnJvbSBXZWJDb3JlIGZvciB1c2UgaW4gV2ViS2l0Mi4KKworICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9XZWJB
dWRpb0J1ZmZlckxpc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlLmg6CisKIDIwMTctMDMtMDYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVmYWN0b3I6IEFsbG93IFdlYktpdDIgdG8gb3ZlcnJpZGUgdGhl
IGNyZWF0aW9uIG9mIFJlYWx0aW1lTWVkaWFTb3VyY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzBiMjdlNzZl
NzVlYjUyNmQ4ZDUyN2VhNTZjYTljZWY2ODM1ZDc1OS4uZjA2NjAwZjVlOGM2N2JkZmE0YWZlMmE0
ZTM4MjI5NGRkNDBlYWMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkwIEBACisyMDE3LTAzLTE0
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIE9wdGlvbmFsbHkg
Y2FwdHVyZSBhdWRpbyBpbiB0aGUgVUlQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjk2MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgY2xhc3MgcGFpciwgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIvUHJveHksIHRvIGFsbG93IGEgUmVhbHRpbWVNZWRpYVNvdXJjZQorICAgICAg
ICByZXF1ZXN0ZWQgaW4gYSBXZWJQcm9jZXNzIHRvIGJlIGNyZWF0ZWQgaW4gdGhlIFVJUHJvY2Vz
cyBpbiB0aGUgVUlQcm9jZXNzIGFuZCBwdXNoIGl0cyBhdWRpbworICAgICAgICBkYXRhIGFjcm9z
cyB0aGUgcHJvY2VzcyBib3VuZGFyeSB0byBpdHMgY2xpZW50cyBpbiB0aGUgV2ViUHJvY2Vzcy4g
QmVjYXVzZSB0aGVzZSBjbGFzc2VzCisgICAgICAgIGFyZSBjbGllbnRzIG9mIHRoZSBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKSwgdGhleSBtdXN0IGJlIGEgc2luZ2xldG9u
CisgICAgICAgIGluIHRoZSBXZWJQcm9jZXNzIGFzIHdlbGwsIHNvIHRoZXkgYXJlIGF0dGFjaGVk
IHRvIHRoZSBXZWJQcm9jZXNzIGNsYXNzIGluIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICBhbmQg
dG8gV2ViUHJvY2Vzc1Byb3h5IGluIHRoZSBVSVByb2Nlc3MuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94eTo6U291
cmNlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjpTb3VyY2VQcm94eTo6flNvdXJjZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OnNvdXJjZSk6CisgICAgICAgIChXZWJL
aXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpkZXNjcmlwdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJj
ZVByb3h5OjpudW1iZXJPZkZyYW1lcyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkpOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Ojp+VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnN0YXJ0UHJvZHVj
aW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OnN0b3BQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5Ojpwcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpuZXh0U2Vzc2lvbklEKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OlNvdXJjZTo6U291cmNlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6flNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnNldENhcGFiaWxpdGllcyk6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnNldFNldHRpbmdzKToKKyAg
ICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6ZGVzY3JpcHRp
b24pOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpz
ZXRTdG9yYWdlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNv
dXJjZTo6c2V0UmluZ0J1ZmZlckZyYW1lQm91bmRzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6On5Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyk6
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VTdG9wcGVk
KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZU11dGVk
Q2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3Vy
Y2VFbmFibGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpzb3VyY2VTZXR0aW5nc0NoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlcjo6c3RvcmFnZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6cmluZ0J1ZmZlckZyYW1lQm91bmRzQ2hhbmdlZCk6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjphdWRpb1NhbXBsZXNBdmFpbGFibGUp
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3RhcnRQcm9kdWNp
bmdEYXRhKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN0b3BQ
cm9kdWNpbmdEYXRhKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorCisgICAgICAgIEluaXRpYWxpemUg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIvUHJveHk6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Oldl
YlByb2Nlc3NQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OldlYlByb2Nlc3MpOgorCisgICAgICAgIFdlYlVzZXJNZWRpYUNsaWVudE1hYyBp
cyBubyBsb25nZXIgbmVjZXNzYXJ5IG5vdyB0aGF0IHRoZSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ciBvdmVycmlkZXMKKyAgICAgICAgdGhlIGZhY3RvcmllczoKKworICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViVXNlck1lZGlhQ2xpZW50OjpXZWJVc2VyTWVkaWFDbGllbnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJVc2VyTWVkaWFDbGllbnQ6OmluaXRpYWxpemVGYWN0b3JpZXMpOiBEZWxldGVkLgor
CisgICAgICAgIEFkZCBhIG5ldyBwcmVmZXJlbmNlIGFuZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzIG1lbWJlciB0byBjb250cm9sIHdoZXRoZXIKKyAgICAgICAgY2FwdHVyaW5nIGlzIGRv
bmUgaW4gdGhlIFVJUHJvY2VzczoKKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0Rl
ZmluaXRpb25zLmg6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpl
bmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpk
ZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6
CisKKyAgICAgICAgQWRkIG5ldyBmaWxlcyB0byB0aGUgcHJvamVjdDoKKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICog
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE3LTAzLTA2ICBKZXIgTm9i
bGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZmFjdG9yOiBBbGxvdyBXZWJL
aXQyIHRvIG92ZXJyaWRlIHRoZSBjcmVhdGlvbiBvZiBSZWFsdGltZU1lZGlhU291cmNlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDVhMTljYzVhNTUzN2I4NWU3NTZmNjMwY2Q1ODlmZWI5YTcyNWZmM2IuLjBiM2VkMzk4Nzg4Y2I2
YTRiMGIxZTlkNDlkNTY4ODFkMDhlYTQ2NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYxNjgsNyArNjE2OCw3IEBACiAJCUNE
RTU5NTk3MUJGMjZFMjEwMEExQ0JFOCAvKiBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREU1OTU5NjFC
RjI2RTIxMDBBMUNCRTggLyogQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oICovOyB9Owog
CQlDREU1OTU5RDFCRjI3NTcxMDBBMUNCRTggLyogQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2Jq
Qy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTU5
NTlDMUJGMjc1NzEwMEExQ0JFOCAvKiBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tICov
OyB9OwogCQlDREU2NjdBNDFFNEJCRjE1MDBFODE1NEEgLyogV2ViQXVkaW9CdWZmZXJMaXN0LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTY2N0Ey
MUU0QkJGMTUwMEU4MTU0QSAvKiBXZWJBdWRpb0J1ZmZlckxpc3QuY3BwICovOyB9OwotCQlDREU2
NjdBNTFFNEJCRjE1MDBFODE1NEEgLyogV2ViQXVkaW9CdWZmZXJMaXN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREU2NjdBMzFFNEJCRjE1MDBFODE1
NEEgLyogV2ViQXVkaW9CdWZmZXJMaXN0LmggKi87IH07CisJCUNERTY2N0E1MUU0QkJGMTUwMEU4
MTU0QSAvKiBXZWJBdWRpb0J1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENERTY2N0EzMUU0QkJGMTUwMEU4MTU0QSAvKiBXZWJBdWRpb0J1
ZmZlckxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlDREU3RkM0NDE4MTkwNEIxMDAyQkJCNzcgLyogT3JkZXJJdGVyYXRvci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREU3RkM0MjE4MTkwNEIx
MDAyQkJCNzcgLyogT3JkZXJJdGVyYXRvci5jcHAgKi87IH07CiAJCUNERTdGQzQ1MTgxOTA0QjEw
MDJCQkI3NyAvKiBPcmRlckl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDREU3RkM0MzE4MTkwNEIxMDAyQkJCNzcgLyogT3JkZXJJdGVyYXRv
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNE
RTgzREIxMTgzQzQ0MDYwMDMxRUFBMyAvKiBWaWRlb1BsYXliYWNrUXVhbGl0eS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREU4M0RBRjE4M0M0NDA2
MDAzMUVBQTMgLyogVmlkZW9QbGF5YmFja1F1YWxpdHkuY3BwICovOyB9OwpAQCAtNjE4NSw2ICs2
MTg1LDcgQEAKIAkJQ0RFQTdDODUxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQTdD
ODMxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uY3BwICovOyB9OwogCQlDREVF
MzkzNzE3OTc0MjU5MDAxRDc1ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVFMzkzNjE3OTc0MjU5MDAxRDc1
ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgKi87IH07CiAJCUNERUY0RkQ3MTdFODVDOEYwMEFF
RTI0QiAvKiBHcmlkTGVuZ3RoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyogR3JpZExlbmd0aC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERUZBMjI4MUU3
NjY5RTgwMDBBRTk5QyAvKiBQbGF0Zm9ybUF1ZGlvRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3QTExRTRCQkE0RDAwRTgxNTRBIC8qIFBs
YXRmb3JtQXVkaW9EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQ0RGMkIwMDQxODFGMDU5QzAwRjJCNDI0IC8qIE1lZGlhRGVzY3JpcHRpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjJCMDAz
MTgxRjA1OUMwMEYyQjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggKi87IH07CiAJCUNERjJCMDEw
MTgyMDU0MDYwMEYyQjQyNCAvKiBNb2NrQm94LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjJCMDA2MTgyMDU0MDYwMEYyQjQyNCAvKiBNb2NrQm94
LmNwcCAqLzsgfTsKIAkJQ0RGMkIwMTExODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tCb3guaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjJCMDA3MTgyMDU0
MDYwMEYyQjQyNCAvKiBNb2NrQm94LmggKi87IH07CkBAIC0yNjk2OSw2ICsyNjk3MCw3IEBACiAJ
CQkJRkQzMTYwOTkxMkIwMjZGNzAwQzFBMzU5IC8qIEhSVEZEYXRhYmFzZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkQzMTYwOUIxMkIwMjZGNzAwQzFBMzU5IC8qIEhSVEZEYXRhYmFzZUxvYWRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwOUQxMkIwMjZGNzAwQzFBMzU5IC8qIEhSVEZFbGV2
YXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUNERUZBMjI4MUU3NjY5RTgwMDBBRTk5QyAvKiBQ
bGF0Zm9ybUF1ZGlvRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwOUYxMkIwMjZGNzAw
QzFBMzU5IC8qIEhSVEZLZXJuZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MEExMTJCMDI2
RjcwMEMxQTM1OSAvKiBIUlRGUGFubmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk3RTIzQTEw
OTE0NDk1MDAxMEQzNjEgLyogSFRNTEFsbENvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vV2ViQXVkaW9CdWZmZXJMaXN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9XZWJBdWRpb0J1ZmZlckxpc3QuaApp
bmRleCBiYmYzYzEzOWI2MjVlN2I0Yzc5YWY4NDI0MTM4YjUwNDA3MzE4NWE4Li5kYjY1ZDM1MzRl
M2JhNWU3ODc5Y2YyZjRkOTY4NDA4MGMwNGY2MTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9XZWJBdWRpb0J1ZmZlckxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9XZWJBdWRpb0J1ZmZlckxpc3QuaApAQCAtNDIsNyArNDIsNyBAQCBj
bGFzcyBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CiBjbGFzcyBXZWJBdWRpb0J1ZmZlckxpc3Qg
OiBwdWJsaWMgUGxhdGZvcm1BdWRpb0RhdGEgewogcHVibGljOgogICAgIFdlYkF1ZGlvQnVmZmVy
TGlzdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mKTsKLSAgICBXZWJBdWRpb0J1ZmZl
ckxpc3QoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDMyX3Qgc2FtcGxlQ291
bnQpOworICAgIFdFQkNPUkVfRVhQT1JUIFdlYkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mLCB1aW50MzJfdCBzYW1wbGVDb3VudCk7CiAgICAgV2ViQXVkaW9C
dWZmZXJMaXN0KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIENNU2FtcGxlQnVmZmVy
UmVmKTsKIAogICAgIEF1ZGlvQnVmZmVyTGlzdCogbGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fbGlz
dC5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFj
L0NBUmluZ0J1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0NBUmlu
Z0J1ZmZlci5oCmluZGV4IDVhYWI0OTI3ZGUwYWQ5N2Y4YjgxNTgxMjQyOWFmZTk2YjQ3YjUzMWIu
LjMyNzk5ZWNmODI2NmIwMmQ0ZmM3MmZkNWYyOTdjNGM0NmI4ZGVjZDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9DQVJpbmdCdWZmZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmgKQEAgLTg1LDYgKzg1
LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q3VycmVudEZyYW1lQm91
bmRzKHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKIAogICAgIHVpbnQz
Ml90IGNoYW5uZWxDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hhbm5lbENvdW50OyB9CisgICAg
V0VCQ09SRV9FWFBPUlQgQ0FSaW5nQnVmZmVyU3RvcmFnZSYgc3RvcmFnZSgpIHsgcmV0dXJuIG1f
YnVmZmVyczsgfQogCiBwcml2YXRlOgogICAgIHNpemVfdCBmcmFtZU9mZnNldCh1aW50NjRfdCBm
cmFtZU51bWJlcikgeyByZXR1cm4gKGZyYW1lTnVtYmVyICYgbV9mcmFtZUNvdW50TWFzaykgKiBt
X2J5dGVzUGVyRnJhbWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCBhY2FjZGVhODM0MmI1Y2Fi
YjI0MjVmMDIzYjlkOWZhYjZjNDgxMzRhLi4xMjliZTY0ZjNjODQ2N2NmOWZkYTcwNjM4N2QwZDMw
NDA5YWY5MmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC02MSw3ICs2MSw3IEBAIGNsYXNzIE1l
ZGlhU3RyZWFtUHJpdmF0ZTsKIGNsYXNzIFBsYXRmb3JtQXVkaW9EYXRhOwogY2xhc3MgUmVhbHRp
bWVNZWRpYVNvdXJjZVNldHRpbmdzOwogCi1jbGFzcyBSZWFsdGltZU1lZGlhU291cmNlIDogcHVi
bGljIFJlZkNvdW50ZWQ8UmVhbHRpbWVNZWRpYVNvdXJjZT4geworY2xhc3MgV0VCQ09SRV9FWFBP
UlQgUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBSZWZDb3VudGVkPFJlYWx0aW1lTWVkaWFT
b3VyY2U+IHsKIHB1YmxpYzoKICAgICBjbGFzcyBPYnNlcnZlciB7CiAgICAgcHVibGljOgpAQCAt
MjAwLDYgKzIwMCw4IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgYXBwbHlDb25zdHJh
aW50cyhjb25zdCBGbGF0dGVuZWRDb25zdHJhaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIGFwcGx5
U2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0aW9uYWw8
aW50PiBoZWlnaHQsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPik7CiAKKyAgICBjb25zdCBWZWN0b3I8
T2JzZXJ2ZXIqPiBvYnNlcnZlcnMoKSBjb25zdCB7IHJldHVybiBtX29ic2VydmVyczsgfQorCiAg
ICAgYm9vbCBtX211dGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fZW5hYmxlZCB7IHRydWUgfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
S2l0Mi9DTWFrZUxpc3RzLnR4dAppbmRleCBiMWNlZTE0NTM5OWRiMGIxNTdmMTIwNGM3Y2ZlZDJj
YWY1M2Y2YmU5Li4yZjNmODNiYmM4YTE1OTNiZTc4YmMxY2EzNjgwNzAzNzI1Mjc2NDY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DTWFrZUxpc3RzLnR4dApAQCAtNjI5LDYgKzYyOSw4IEBAIHNldChXZWJLaXQyX01FU1NBR0VT
X0lOX0ZJTEVTCiAKICAgICBVSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lv
bi5tZXNzYWdlcy5pbgogCisgICAgVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4KKwogICAgIFVJUHJvY2Vzcy9EYXRhYmFzZXMvRGF0YWJhc2VQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4KIAogICAgIFVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxv
YWRQcm94eS5tZXNzYWdlcy5pbgpAQCAtNjU3LDYgKzY1OSw4IEBAIHNldChXZWJLaXQyX01FU1NB
R0VTX0lOX0ZJTEVTCiAKICAgICBXZWJQcm9jZXNzL0ljb25EYXRhYmFzZS9XZWJJY29uRGF0YWJh
c2VQcm94eS5tZXNzYWdlcy5pbgogCisgICAgV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVk
aWFDYXB0dXJlU2Vzc2lvbk1hbmFnZXIubWVzc2FnZXMuaW4KKwogICAgIFdlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvV2ViUlRDTW9uaXRvci5tZXNzYWdlcy5pbgogICAgIFdlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvV2ViUlRDUmVzb2x2ZXIubWVzc2FnZXMuaW4KICAgICBXZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tldC5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKaW5kZXggOTk0OTJmZmFlYTE0NGVlNGM3ZjRlNWVlNWQ5MWUzZjY2YjhiNWU1MC4u
OWRlZjM3MDRiNzRkNDU4OGJhZGMwYjQyYzEyMDcwN2NhZmQ5MWM0YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EZXJp
dmVkU291cmNlcy5tYWtlCkBAIC00NSw2ICs0NSw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0
MikvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0lj
b25EYXRhYmFzZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL01lZGlhQ2FjaGUgXAorICAg
ICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbSBcCiAgICAgJChXZWJLaXQyKS9XZWJQ
cm9jZXNzL05ldHdvcmsgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
YyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMgXApAQCAtNjUsNiAr
NjYsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9Db2NvYSBcCiAgICAg
JChXZWJLaXQyKS9VSVByb2Nlc3MvRGF0YWJhc2VzIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vz
cy9Eb3dubG9hZHMgXAorICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL01lZGlhU3RyZWFtIFwKICAg
ICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9OZXR3b3JrIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vz
cy9OZXR3b3JrL0N1c3RvbVByb3RvY29scyBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvTm90
aWZpY2F0aW9ucyBcCkBAIC0xMjEsNiArMTIzLDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAg
ICAgU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlciBcCiAgICAgU3RvcmFnZUFyZWFNYXAgXAog
ICAgIFN0b3JhZ2VNYW5hZ2VyIFwKKyAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciBcCisgICAg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSBcCiAgICAgVmlld0dlc3R1cmVDb250cm9sbGVy
IFwKICAgICBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yIFwKICAgICBWaWV3VXBkYXRlRGlz
cGF0Y2hlciBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXNEZWZpbml0aW9ucy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVm
aW5pdGlvbnMuaAppbmRleCA3ZmY3NzAyOGJmYjVjMDU1ZDhlYjJkNmEwNTIxODg0OGZhZDZjNTlh
Li5iOWMxNTlkYjA4NmViMjU2NzFhNGViYzgzNjJiZjIwNDk3Mjk1ZDgzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKQEAgLTEwMyw2
ICsxMDMsMTIgQEAKICNkZWZpbmUgREVGQVVMVF9DQU5WQVNfVVNFU19BQ0NFTEVSQVRFRF9EUkFX
SU5HIHRydWUKICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisjZGVmaW5lIERFRkFVTFRf
U0hPVUxEX0NBUFRVUkVfQVVESU9fSU5fVUlQUk9DRVNTIHRydWUKKyNlbHNlCisjZGVmaW5lIERF
RkFVTFRfU0hPVUxEX0NBUFRVUkVfQVVESU9fSU5fVUlQUk9DRVNTIGZhbHNlCisjZW5kaWYKKwog
Ly8gbWFjcm8oS2V5VXBwZXIsIEtleUxvd2VyLCBUeXBlTmFtZVVwcGVyLCBUeXBlTmFtZSwgRGVm
YXVsdFZhbHVlLCBIdW1hblJlYWRhYmxlTmFtZSwgSHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uKQog
CiAjZGVmaW5lIEZPUl9FQUNIX1dFQktJVF9CT09MX1BSRUZFUkVOQ0UobWFjcm8pIFwKQEAgLTI1
Miw2ICsyNTgsNyBAQAogICAgIG1hY3JvKEdhbWVwYWRzRW5hYmxlZCwgZ2FtZXBhZHNFbmFibGVk
LCBCb29sLCBib29sLCB0cnVlLCAiR2FtZXBhZHMiLCAiV2ViIEdhbWVwYWQgQVBJIHN1cHBvcnQi
KSBcCiAgICAgbWFjcm8oSW5wdXRFdmVudHNFbmFibGVkLCBpbnB1dEV2ZW50c0VuYWJsZWQsIEJv
b2wsIGJvb2wsIHRydWUsICJJbnB1dCBFdmVudHMiLCAiRW5hYmxlIElucHV0RXZlbnRzIHN1cHBv
cnQiKSBcCiAgICAgbWFjcm8oQ3JlZGVudGlhbE1hbmFnZW1lbnRFbmFibGVkLCBjcmVkZW50aWFs
TWFuYWdlbWVudEVuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlLCAiQ3JlZGVudGlhbCBNYW5hZ2Vt
ZW50IiwgIkVuYWJsZSBDcmVkZW50aWFsIE1hbmFnZW1lbnQgc3VwcG9ydCIpIFwKKyAgICBtYWNy
byhTaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2Vzcywgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVBy
b2Nlc3MsIEJvb2wsIGJvb2wsIERFRkFVTFRfU0hPVUxEX0NBUFRVUkVfQVVESU9fSU5fVUlQUk9D
RVNTLCAiQ2FwdHVyZSIsICJDYXB0dXJlIEF1ZGlvIGluIFVJUHJvY2VzcyIpIFwKICAgICBcCiAK
ICNkZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX0RPVUJMRV9QUkVGRVJFTkNFKG1hY3JvKSBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHAKaW5kZXggNTEyZDIxMmQ4NGEwMTE4MDhjMjlhOGI1MTg0MTllMjBhNTE3NmIxYy4uZjMz
ZWE2YzBhODNiNDliMDFlN2ExNmFjZDVhMTFlYmE5YzMxMTYzNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAt
NjgsNiArNjgsNyBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJ
UEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBtZWRpYUtleVN0b3Jh
Z2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAg
ICBlbmNvZGVyIDw8IGF1ZGlvQ2FwdHVyZUV4dGVuc2lvbkhhbmRsZTsKKyAgICBlbmNvZGVyIDw8
IHNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzOwogI2VuZGlmCiAgICAgZW5jb2RlciA8PCBz
aG91bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb247CiAgICAgZW5jb2RlciA8PCB1cmxTY2hlbWVz
UmVnaXN0ZXJlZEFzRW1wdHlEb2N1bWVudDsKQEAgLTE4OSw2ICsxOTAsOCBAQCBib29sIFdlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdl
YlByb2Nlc3NDcmVhdAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShwYXJhbWV0ZXJzLmF1ZGlvQ2FwdHVyZUV4dGVuc2lvbkhhbmRsZSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuc2hvdWxk
Q2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYK
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuc2hvdWxkVXNlVGVzdGluZ05ldHdv
cmtTZXNzaW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggYTNlNjJjZjlk
NDMxZjQwYmRjYTdhNWM4MDBjYzU3MDU5NzFjOGU5NC4uZmQ4MDZiMjIwMjQ3OWUxNjA0ODYxZGY5
OGUwOGNhYjFhMWFhNjBkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC04OCw2ICs4OCw3IEBAIHN0cnVjdCBXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUg
bWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGF1ZGlvQ2FwdHVyZUV4dGVu
c2lvbkhhbmRsZTsKKyAgICBib29sIHNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzIHsgZmFs
c2UgfTsKICNlbmRpZgogICAgIFN0cmluZyBtZWRpYUtleVN0b3JhZ2VEaXJlY3Rvcnk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjIxYTE2N2M3ZGU1Y2FhZGJl
NzY3YzJjNmJhYmY2YWI1Y2MwMDIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC0wLDAg
KzEsMTU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2Uu
aCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVk
ZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5Lmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01l
ZGlhQ29uc3RyYWludHNJbXBsLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KKyNp
bmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
U291cmNlUHJveHkgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIsIHB1Ymxp
YyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50IHsKK3B1YmxpYzoKKyAgICBTb3VyY2VQ
cm94eSh1aW50NjRfdCBpZCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSYgbWFuYWdlciwg
UmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQorICAgICAgICA6IG1faWQoaWQpCisg
ICAgICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCisgICAgICAgICwgbV9zb3VyY2UoV1RGTW92ZShz
b3VyY2UpKQorICAgICAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPih0aGlz
KSkpCisgICAgeworICAgICAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworICAgIH0K
KworICAgIH5Tb3VyY2VQcm94eSgpCisgICAgeworICAgICAgICBzdG9yYWdlKCkuaW52YWxpZGF0
ZSgpOworICAgICAgICBtX3NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworICAgIH0KKwor
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSgpIHsgcmV0dXJuIG1fc291cmNlOyB9Cisg
ICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKSB7IHJldHVybiBzdGF0aWNfY2Fz
dDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci5zdG9yYWdlKCkpOyB9Cisg
ICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbigpIHsgcmV0dXJuIG1fZGVz
Y3JpcHRpb247IH0KKyAgICBpbnQ2NF90IG51bWJlck9mRnJhbWVzKCkgeyByZXR1cm4gbV9udW1i
ZXJPZkZyYW1lczsgfQorCisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWwgeworICAgICAg
ICBtX21hbmFnZXIucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpTb3VyY2VTdG9wcGVkKG1faWQpLCAwKTsKKyAgICB9CisKKyAgICB2b2lkIHNvdXJjZU11
dGVkQ2hhbmdlZCgpIGZpbmFsIHsKKyAgICAgICAgbV9tYW5hZ2VyLnByb2Nlc3MoKS5zZW5kKE1l
c3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlTXV0ZWRDaGFuZ2VkKG1faWQs
IG1fc291cmNlLT5tdXRlZCgpKSwgMCk7CisgICAgfQorCisgICAgdm9pZCBzb3VyY2VFbmFibGVk
Q2hhbmdlZCgpIGZpbmFsIHsKKyAgICAgICAgbV9tYW5hZ2VyLnByb2Nlc3MoKS5zZW5kKE1lc3Nh
Z2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlRW5hYmxlZENoYW5nZWQobV9pZCwg
bV9zb3VyY2UtPmVuYWJsZWQoKSksIDApOworICAgIH0KKworICAgIHZvaWQgc291cmNlU2V0dGlu
Z3NDaGFuZ2VkKCkgZmluYWwgeworICAgICAgICBtX21hbmFnZXIucHJvY2VzcygpLnNlbmQoTWVz
c2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2VTZXR0aW5nc0NoYW5nZWQobV9p
ZCwgbV9zb3VyY2UtPnNldHRpbmdzKCkpLCAwKTsKKyAgICB9CisKKyAgICB2b2lkIGF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9E
YXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9u
LCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpIGZpbmFsIHsKKyAgICAgICAgaWYgKG1fZGVzY3JpcHRp
b24gIT0gZGVzY3JpcHRpb24pIHsKKyAgICAgICAgICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0
Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3Ry
ZWFtQmFzaWNUeXBlKTsKKyAgICAgICAgICAgIG1fZGVzY3JpcHRpb24gPSAqV1RGOjpnZXQ8Y29u
c3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNj
cmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIG1fbnVtYmVyT2ZGcmFtZXMgPSBt
X2Rlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSAqIDI7CisgICAgICAgICAgICBtX3JpbmdCdWZmZXIu
YWxsb2NhdGUobV9kZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpLCBtX251bWJlck9mRnJh
bWVzKTsKKyAgICAgICAgfQorCisgICAgICAgIEFTU0VSVChpczxXZWJBdWRpb0J1ZmZlckxpc3Q+
KGF1ZGlvRGF0YSkpOworICAgICAgICBtX3JpbmdCdWZmZXIuc3RvcmUoZG93bmNhc3Q8V2ViQXVk
aW9CdWZmZXJMaXN0PihhdWRpb0RhdGEpLmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUudGlt
ZVZhbHVlKCkpOworICAgICAgICB1aW50NjRfdCBzdGFydEZyYW1lOworICAgICAgICB1aW50NjRf
dCBlbmRGcmFtZTsKKyAgICAgICAgbV9yaW5nQnVmZmVyLmdldEN1cnJlbnRGcmFtZUJvdW5kcyhz
dGFydEZyYW1lLCBlbmRGcmFtZSk7CisgICAgICAgIG1fbWFuYWdlci5wcm9jZXNzKCkuc2VuZChN
ZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlJpbmdCdWZmZXJGcmFtZUJvdW5kc0No
YW5nZWQobV9pZCwgc3RhcnRGcmFtZSwgZW5kRnJhbWUpLCAwKTsKKworICAgICAgICBtX21hbmFn
ZXIucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRp
b1NhbXBsZXNBdmFpbGFibGUobV9pZCwgdGltZSwgbnVtYmVyT2ZGcmFtZXMpLCAwKTsKKyAgICB9
CisKKyAgICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSogc3RvcmFnZSkgZmluYWwg
eworICAgICAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7CisgICAgICAgIGlmIChzdG9y
YWdlKQorICAgICAgICAgICAgc3RvcmFnZS0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVt
b3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CisgICAgICAgIG1fbWFuYWdlci5wcm9jZXNzKCku
c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlN0b3JhZ2VDaGFuZ2VkKG1f
aWQsIGhhbmRsZSwgbV9kZXNjcmlwdGlvbiwgbV9udW1iZXJPZkZyYW1lcyksIDApOworICAgIH0K
KworcHJvdGVjdGVkOgorICAgIHVpbnQ2NF90IG1faWQ7CisgICAgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eSYgbV9tYW5hZ2VyOworICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBtX3Nv
dXJjZTsKKyAgICBDQVJpbmdCdWZmZXIgbV9yaW5nQnVmZmVyOworICAgIENBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uIHsgfTsKKyAgICBpbnQ2NF90IG1fbnVtYmVyT2ZGcmFt
ZXMgeyAwIH07Cit9OworCitVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5KFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcykKKyAgICA6IG1fcHJv
Y2Vzcyhwcm9jZXNzKQoreworICAgIG1fcHJvY2Vzcy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
KnRoaXMpOworfQorCitVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Ojp+VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eSgpCit7CisgICAgbV9wcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVN
ZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNv
bnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50c0RhdGEmIGNv
bnN0cmFpbnRzRGF0YSwgYm9vbCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50
cykKK3sKKyAgICBhdXRvIGNvbnN0cmFpbnRzID0gTWVkaWFDb25zdHJhaW50c0ltcGw6OmNyZWF0
ZShjb25zdHJhaW50c0RhdGEpOworICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBzb3Vy
Y2UgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5kZWZhdWx0QXVkaW9G
YWN0b3J5KCktPmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50
cyhkZXZpY2UsIGNvbnN0cmFpbnRzLnB0cigpLCBpbnZhbGlkQ29uc3RyYWludHMpOworICAgIHN1
Y2NlZWRlZCA9ICEhc291cmNlOworICAgIAorICAgIGlmIChzb3VyY2UpCisgICAgICAgIG1fcHJv
eGllcy5zZXQoaWQsIHN0ZDo6bWFrZV91bmlxdWU8U291cmNlUHJveHk+KGlkLCAqdGhpcywgc291
cmNlLnJlbGVhc2VOb25OdWxsKCkpKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OjpzdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCit7CisgICAgYXV0byBpdGVy
ID0gbV9wcm94aWVzLmZpbmQoaWQpOworICAgIGlmIChpdGVyICE9IG1fcHJveGllcy5lbmQoKSkK
KyAgICAgICAgaXRlci0+dmFsdWUtPnNvdXJjZSgpLnN0YXJ0UHJvZHVjaW5nRGF0YSgpOworfQor
Cit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnN0b3BQcm9kdWNpbmdEYXRhKHVp
bnQ2NF90IGlkKQoreworICAgIGF1dG8gaXRlciA9IG1fcHJveGllcy5maW5kKGlkKTsKKyAgICBp
ZiAoaXRlciAhPSBtX3Byb3hpZXMuZW5kKCkpCisgICAgICAgIGl0ZXItPnZhbHVlLT5zb3VyY2Uo
KS5zdG9wUHJvZHVjaW5nRGF0YSgpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODExMzIxZGJhY2EwNDc1ZWQ0NzlmMmJiZmJiMzVlNTY2NGQ4
ZjZkMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2Vp
dmVyLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBTaGFyZWRNZW1vcnk7CitjbGFzcyBXZWJQcm9jZXNzUHJveHk7CisK
K2NsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkgOiBwcml2YXRlIElQQzo6TWVzc2Fn
ZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KFdl
YlByb2Nlc3NQcm94eSYpOworICAgIH5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCk7CisK
KyAgICBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX3Byb2Nlc3M7
IH0KKworcHJpdmF0ZToKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7Cisg
ICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNv
ZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBmaW5hbDsKKworICAgIHZvaWQg
Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90
IGlkLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFD
b25zdHJhaW50c0RhdGEmLCBib29sJiBzdWNjZWVkZWQsIFN0cmluZyYgaW52YWxpZENvbnN0cmFp
bnRzKTsKKyAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CisgICAgdm9pZCBz
dG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CisKKyAgICBjbGFzcyBTb3VyY2VQcm94eTsKKyAg
ICBmcmllbmQgY2xhc3MgU291cmNlUHJveHk7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1
bmlxdWVfcHRyPFNvdXJjZVByb3h5Pj4gbV9wcm94aWVzOworICAgIFdlYlByb2Nlc3NQcm94eSYg
bV9wcm9jZXNzOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzRiOGNiYjdiOGE2OWI3M2IzOTdhOWU5ZDJi
Y2MwZTcwYjEzMTE1ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAg
KzEsMjggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21lc3NhZ2Vz
IC0+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkgeworICAgIENyZWF0ZU1lZGlhU291cmNl
Rm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZSBkZXZpY2UsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSBj
b25zdHJhaW50cykgLT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cykK
KyAgICBTdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCisgICAgU3RvcFByb2R1Y2luZ0Rh
dGEodWludDY0X3QgaWQpCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCmluZGV4IDg3MzhmMDcwNjM3ZjQ5MGYxZjA4NmMw
OTliOTM3NGU3NDBlY2M3ZWUuLmY0NzNiNWQ4MTIxOGViZjJmMDJhOWFmZmZiYWE1ZTE0OTk5Yjhh
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UG9vbENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9j
ZXNzUG9vbENvY29hLm1tCkBAIC0yNTgsNiArMjU4LDggQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6
cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
JgogICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBhbmQgcmVsYXRlZCBwYXJhbWV0ZXIgd2hlbiA8
cmRhcjovL3Byb2JsZW0vMjk0NDgzNjg+IGlzIGZpeGVkLgogICAgIGlmIChtZWRpYVN0cmVhbUVu
YWJsZWQgfHwgd2ViUlRDRW5hYmxlZCkKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRl
SGFuZGxlRm9yR2VuZXJpY0V4dGVuc2lvbigiY29tLmFwcGxlLndlYmtpdC5taWNyb3Bob25lIiwg
cGFyYW1ldGVycy5hdWRpb0NhcHR1cmVFeHRlbnNpb25IYW5kbGUpOworCisgICAgcGFyYW1ldGVy
cy5zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyA9IG1fZGVmYXVsdFBhZ2VHcm91cC0+cHJl
ZmVyZW5jZXMoKS5zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcygpOwogI2VuZGlmCiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggNWZm
NjRkNjQ4YzRiNzg0MjVmZDkxMjcwNjM0N2YyODc4Zjk0ZTUwMC4uY2QxZGNkN2Q1NmVjNjc3ZDI0
Yzk3OTk2Zjc4ZDRiZDEwMjU3ZDU5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJUZXh0Q2hlY2tl
ci5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5o
IgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJX
ZWJCYWNrRm9yd2FyZExpc3RJdGVtLmgiCiAjaW5jbHVkZSAiV2ViSWNvbkRhdGFiYXNlLmgiCiAj
aW5jbHVkZSAiV2ViSW5zcGVjdG9yVXRpbGl0aWVzLmgiCkBAIC0xMDQsOSArMTA1LDE0IEBAIFdl
YlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9v
bCwgV2Vic2l0ZURhdGFTdG9yZSoKICAgICAsIG1faXNSZXNwb25zaXZlKE5vT3JNYXliZTo6TWF5
YmUpCiAgICAgLCBtX3Zpc2libGVQYWdlQ291bnRlcihbdGhpc10oUmVmQ291bnRlckV2ZW50KSB7
IHVwZGF0ZUJhY2tncm91bmRSZXNwb25zaXZlbmVzc1RpbWVyKCk7IH0pCiAgICAgLCBtX3dlYnNp
dGVEYXRhU3RvcmUod2Vic2l0ZURhdGFTdG9yZSkKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICAsIG1fdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eShz
dGQ6Om1ha2VfdW5pcXVlPFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk+KCp0aGlzKSkKKyNl
bmRpZgogewogICAgIFdlYlBhc3RlYm9hcmRQcm94eTo6c2luZ2xldG9uKCkuYWRkV2ViUHJvY2Vz
c1Byb3h5KCp0aGlzKTsKIAorCisKICAgICBjb25uZWN0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBmNWU2MWFhMDAxODA2Nzc0ODJhZjM3
MDdkY2JkYjE5OTUxN2ZhZjZhLi5iMzI4ODE1Y2YxNjQyN2Y4YWM2ZGQ2NjZmM2E5NTcyZGFhNzFj
OTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC01
Niw2ICs1Niw3IEBAIHN0cnVjdCBQbHVnaW5JbmZvOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNs
YXNzIE5ldHdvcmtQcm9jZXNzUHJveHk7CitjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0SXRlbTsKIGNsYXNzIFdlYlBhZ2VHcm91cDsK
IGNsYXNzIFdlYlByb2Nlc3NQb29sOwpAQCAtMjczLDYgKzI3NCwxMCBAQCBwcml2YXRlOgogICAg
IFJlZlB0cjxXZWJzaXRlRGF0YVN0b3JlPiBtX3dlYnNpdGVEYXRhU3RvcmU7CiAKICAgICBib29s
IG1faXNVbmRlck1lbW9yeVByZXNzdXJlIHsgZmFsc2UgfTsKKworI2lmIFBMQVRGT1JNKENPQ09B
KSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5PiBtX3VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7CisjZW5k
aWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDEzZTQxYzYyMmEyZDk2OWUzYmE4
NjMzZTBhN2IzZWVlOWY1YWVjYmUuLmVkYTc3ZDgxY2RjZGM5Yjk5MmNhZWQ4OThmOWI3ZjAyMDc0
MjZhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTE4NzksMTEgKzE4NzksMTggQEAKIAkJQ0QwMDNBNTMxOUQ0OUI1RDAwNUFC
Q0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMDAzQTUxMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJN
ZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmggKi87IH07CiAJCUNEMTlBMjZEMUExM0U4MkEwMDhENjUw
RSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5QTI2OTFBMTNFODIwMDA4RDY1MEUgLyogV2Vi
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwICovOyB9OwogCQlDRDE5QTI2RTFBMTNFODM0MDA4
RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTlBMjZBMUExM0U4MjEwMDhENjUwRSAvKiBX
ZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovOyB9OworCQlDRDQ5MUIwNzFFNzBEMDVGMDAw
MDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0OTFCMDUxRTcwRDA1RjAwMDA5MDY2IC8qIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJQ0Q0OTFCMDgxRTcwRDA1RjAwMDA5
MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ5MUIwNjFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuaCAqLzsgfTsKKwkJQ0Q0OTFCMEQxRTczMkU0RDAwMDA5MDY2IC8q
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENDkxQjBCMUU3MzJFNEQwMDAwOTA2
NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJ
CUNENDkxQjBFMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3Nh
Z2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ5
MUIwQzFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5o
ICovOyB9OworCQlDRDQ5MUIxMjFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDQ5MUIxMDFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5jcHAgKi87IH07CisJCUNENDkxQjEzMUU3MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDQ5MUIxMTFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5oICovOyB9OworCQlDRDQ5MUIxNzFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ5MUIxNTFFNzM1MjU1MDAwMDkwNjYg
LyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07
CisJCUNENDkxQjE4MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENENDkxQjE2MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5TWVzc2FnZXMuaCAqLzsgfTsKIAkJQ0Q0QjREOUMxRTc2NUUwMDAwRDI3MDkyIC8qIFNoYXJl
ZFJpbmdCdWZmZXJTdG9yYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENENEI0RDlBMUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFyZWRSaW5nQnVmZmVy
U3RvcmFnZS5jcHAgKi87IH07CiAJCUNENEI0RDlEMUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0Q0QjREOUIxRTc2NUUwMDAwRDI3MDkyIC8qIFNoYXJlZFJpbmdCdWZmZXJTdG9y
YWdlLmggKi87IH07CiAJCUNENUM2NkEwMTM0QjlEMzgwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRs
ZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENENUM2NjlFMTM0QjlEMzYwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRs
ZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcCAqLzsgfTsKIAkJQ0Q1QzY2QTExMzRCOUQzODAwNEZF
MkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENUM2NjlGMTM0QjlEMzcwMDRGRTJB
OCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmggKi87IH07Ci0JCUNENjE3
ODE0MUU2REU5QTAwMEZEQTU3RCAvKiBXZWJVc2VyTWVkaWFDbGllbnRNYWMubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDYxNzgxMjFFNkRFOUEwMDBG
REE1N0QgLyogV2ViVXNlck1lZGlhQ2xpZW50TWFjLm1tICovOyB9OwogCQlDRDZGNzVGNDEzMUI2
NkQwMDBENkIyMUUgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDczQkEzRTEzMUEyRThBMDBFRURF
RDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAgKi87IH07CiAJCUNENzNCQTQ3MTMx
QUNDOUEwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENzNC
QTQ1MTMxQUNDODgwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLzsgfTsKIAkJQ0Q3M0JBNEUxMzFBQ0RCNzAwRUVERUQyIC8qIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENzNCQTQ4MTMxQUNEOEUwMEVFREVEMiAvKiBXZWJGdWxs
U2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CkBAIC00MTY5LDExICs0MTc2
LDIwIEBACiAJCUNEMDAzQTUxMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VN
YW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYk1lZGlhS2V5U3Rv
cmFnZU1hbmFnZXIuaDsgcGF0aCA9IE1lZGlhQ2FjaGUvV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDE5QTI2OTFBMTNFODIwMDA4RDY1
MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDRDE5QTI2QTFBMTNFODIxMDA4RDY1MEUgLyogV2ViRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQ0Q0OTFCMDUxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFCMDYxRTcwRDA1
RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNENDkxQjBBMUU3MzJEMTIwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNz
YWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFCMEIxRTczMkU0RDAw
MDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFC
MEMxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJN
ZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ5MUIxMDFFNzM0ODIx
MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNw
cDsgcGF0aCA9IC4uL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ5MUIxMTFFNzM0ODIxMDAwMDkwNjYgLyogVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmg7IHBhdGggPSAuLi9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNENDkxQjE0MUU3MzQ5RjMwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgbmFtZSA9IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW47IHBhdGggPSAuLi9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ5MUIxNTFFNzM1MjU1MDAwMDkw
NjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Q0Q0OTFCMTYxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlN
ZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0Q0QjREOUExRTc2NUUwMDAwRDI3MDkyIC8qIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJlZFJpbmdCdWZmZXJTdG9y
YWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q0QjREOUIxRTc2NUUwMDAw
RDI3MDkyIC8qIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNENUM2NjlFMTM0QjlEMzYwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBh
Z2VGdWxsU2NyZWVuQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRDVDNjY5RjEzNEI5RDM3MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5k
bGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUNENjE3ODEyMUU2REU5QTAwMEZEQTU3RCAvKiBXZWJVc2VyTWVkaWFDbGll
bnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJVc2Vy
TWVkaWFDbGllbnRNYWMubW07IHBhdGggPSBjb2NvYS9XZWJVc2VyTWVkaWFDbGllbnRNYWMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENzNCQTM3MTMxQTI5RkUwMEVFREVEMiAv
KiBXZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBXZWJGdWxsU2NyZWVuTWFuYWdlci5jcHA7IHBhdGggPSBGdWxsU2NyZWVuL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q3M0JB
MzgxMzFBMjlGRTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmg7IHBhdGggPSBGdWxs
U2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNENzNCQTM5MTMxQTI5RkUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNz
YWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNz
YWdlcy5pbjsgcGF0aCA9IEZ1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MjgxLDYgKzYyOTcsOSBAQAogCQk3
QzZFNzBGODE4QjJENDdFMDBGMjRFMkUgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUNENDkxQjA1MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgKi8sCisJCQkJQ0Q0OTFCMDYxRTcwRDA1RjAwMDA5MDY2
IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggKi8sCisJCQkJQ0Q0OTFCMEExRTczMkQxMjAw
MDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJCUNE
QTI5QTE5MUNCREJGNDEwMDkwMUNDRiAvKiBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLmggKi8s
CiAJCQkJQ0RBMjlBMUMxQ0JEQkY1QjAwOTAxQ0NGIC8qIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFn
ZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJQ0RBMjlBMTgxQ0JEQkY0MTAwOTAxQ0NGIC8qIFdlYlBs
YXliYWNrU2Vzc2lvbk1hbmFnZXIubW0gKi8sCkBAIC03NDQ4LDYgKzc0NjcsOSBAQAogCQkJCTFB
QTQxN0VEMTJDMDBEODcwMDJCRTY3QiAvKiBUZXh0Q2hlY2tlck1hYy5tbSAqLywKIAkJCQkxQUYw
NUQ4NTE0Njg4MzQ4MDA4QjFFODEgLyogVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94
eS5oICovLAogCQkJCTFBRjA1RDg0MTQ2ODgzNDgwMDhCMUU4MSAvKiBUaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYVByb3h5Lm1tICovLAorCQkJCUNENDkxQjEwMUU3MzQ4MjEwMDAwOTA2NiAv
KiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCAqLywKKwkJCQlDRDQ5MUIxMTFFNzM0
ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oICovLAorCQkJCUNE
NDkxQjE0MUU3MzQ5RjMwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluICovLAogCQkJCTJEMTI1QzVEMTg1N0VBMDUwMDNCQTNDQiAvKiBWaWV3R2VzdHVy
ZUNvbnRyb2xsZXJNYWMubW0gKi8sCiAJCQkJMkQ2Q0QxMTcxODkwNThBNTAwRTVBNEEwIC8qIFZp
ZXdTbmFwc2hvdFN0b3JlLmggKi8sCiAJCQkJMkQ2Q0QxMTgxODkwNThBNTAwRTVBNEEwIC8qIFZp
ZXdTbmFwc2hvdFN0b3JlLm1tICovLApAQCAtNzY5MCw2ICs3NzEyLDEwIEBACiAJCQkJMUEzMzRE
RUMxNkRFOEY4ODAwNkE4RTM4IC8qIFN0b3JhZ2VBcmVhTWFwTWVzc2FnZXMuaCAqLywKIAkJCQkx
QUIzMUE5NDE2QkM2ODgxMDBGNkRCQzkgLyogU3RvcmFnZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLAogCQkJCTFBQjMxQTk1MTZCQzY4ODEwMEY2REJDOSAvKiBTdG9yYWdlTWFuYWdlck1l
c3NhZ2VzLmggKi8sCisJCQkJQ0Q0OTFCMTUxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUNENDkxQjE2MUU3
MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCAq
LywKKwkJCQlDRDQ5MUIwQjFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUNENDkxQjBDMUU3MzJFNEQwMDAwOTA2NiAv
KiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmggKi8sCiAJCQkJMkQxQjVENUIxODU4
NjlDODAwNkM2NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8sCiAJCQkJMkQxQjVENUMxODU4NjlDODAwNkM2NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxl
ck1lc3NhZ2VzLmggKi8sCiAJCQkJMkQ4MTlCOUYxODYyODAwRTAwMUYwM0QxIC8qIFZpZXdHZXN0
dXJlR2VvbWV0cnlDb2xsZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtNzgyNCw3ICs3
ODUwLDYgQEAKIAkJQ0Q2MTc4MTExRTZERTk4MDAwRkRBNTdEIC8qIGNvY29hICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQlDRDYxNzgxMjFFNkRFOUEwMDBG
REE1N0QgLyogV2ViVXNlck1lZGlhQ2xpZW50TWFjLm1tICovLAogCQkJKTsKIAkJCW5hbWUgPSBj
b2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC04MDQ5LDYgKzgwNzQsNyBAQAog
CQkJCTdDMjQxMzAzMUFBQ0ZBNzUwMEE1OEMxNSAvKiBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0
b3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzI0MTMwNTFBQUNGQTlDMDBBNThDMTUgLyogX1dL
VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk3
Q0EzNzkzRTFBQzM3OEIzMDA3OURDMzcgLyogX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVBy
aXZhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUNENDkxQjEzMUU3MzQ4MjEwMDAwOTA2NiAvKiBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQk3Qzg5RDJC
QTFBNkIwRjJDMDAzQTVGREUgLyogX1dLVXNlckNvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTdDODlEMkJDMUE2QjBGNUIwMDNBNUZERSAvKiBfV0tVc2VyQ29udGVudEZpbHRlcklu
dGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QTgyMUY1MDFFMkY3QTc1MDA2MDQ1NzcgLyog
QVBJQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTgwNTYs
NiArODA4Miw3IEBACiAJCQkJN0M4ODJERjkxQzdFOTk2RjAwNkJGNzMxIC8qIF9XS1VzZXJDb250
ZW50V29ybGRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NCMzY1QUExRDMxREI3MDAw
NzE1OENBIC8qIF9XS1VzZXJJbml0aWF0ZWRBY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTdD
QjM2NUFEMUQzMURDMTAwMDcxNThDQSAvKiBfV0tVc2VySW5pdGlhdGVkQWN0aW9uSW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovLAorCQkJCUNENDkxQjBFMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDg3ODYxRDFC
REI1NEJGMDBEMDJBQkIgLyogX1dLVXNlclN0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTJEODc4NjIwMUJEQjU3RjUwMEQwMkFCQiAvKiBfV0tVc2VyU3R5bGVTaGVldEludGVybmFsLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTgxQjM4MTE4QkQ2NkFEMDAwN0ZEQUMgLyogX1dLVmlzaXRl
ZExpbmtTdG9yZS5oIGluIEhlYWRlcnMgKi8sCkBAIC04MTAxLDYgKzgxMjgsNyBAQAogCQkJCTFB
MjQ2NEYzMTg5MUU0NTEwMDIzNEM1QiAvKiBBUElMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTdDRDNBNDgzMUE1RDAyRkEwMDk2MjNCOCAvKiBBUElOYXZpZ2F0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyREY5RUVFQzFBNzgzNkVFMDBCNkNGQkUgLyogQVBJTmF2aWdhdGlvbkFj
dGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q0OTFCMDgxRTcwRDA1RjAwMDA5MDY2IC8qIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREQ5RUIyRDFBNkYw
MTI1MDBCQjEyNjcgLyogQVBJTmF2aWdhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNGNjlGQTIxMTc2RDAxNDAwNDcxQTUyIC8qIEFQSU5hdmlnYXRpb25EYXRhLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkyREY5RUVFRTFBNzg2RUFEMDBCNkNGQkUgLyogQVBJTmF2aWdhdGlvblJlc3Bv
bnNlLmggaW4gSGVhZGVycyAqLywKQEAgLTg0MjIsNiArODQ1MCw3IEBACiAJCQkJRTE4RTY5MEMx
NjlCNTYzRjAwOUI2NjcwIC8qIFNlY0l0ZW1TaGltUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUUxOEU2OTE4MTY5QjY2N0IwMDlCNjY3MCAvKiBTZWNJdGVtU2hpbVByb3h5TWVzc2FnZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCTUxNEQ5RjU3MTkxMTlEMzUwMDAwNjNBNyAvKiBTZXJ2aWNlc0Nv
bnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUNENDkxQjE4MUU3MzUyNTUwMDAwOTA2NiAv
KiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxMzA3NUFCMURFODVGMzMwMDM5RUM2OSAvKiBOZXR3b3JrUlRDU29ja2V0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQUZERTY1QTE5NTRBNDJCMDBDNDhGRkEgLyogU2Vzc2lvblN0YXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTAwMkQ0OTE5NkIzNDVEMDBCOUFENDQgLyogU2Vzc2lvblN0
YXRlQ29kaW5nLmggaW4gSGVhZGVycyAqLywKQEAgLTk2MDIsNiArOTYzMSw3IEBACiAJCQkJMzcz
RDEyMjIxOEE0NzMwMTAwNjZEOUNDIC8qIF9XS0ZyYW1lSGFuZGxlLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTNBODhCMzkxQkM3MEYzRjAwQUJBNUMyIC8qIF9XS0hpdFRlc3RSZXN1bHQubW0gaW4g
U291cmNlcyAqLywKIAkJCQk1MTBGNTkxMjFEREUyOTc3MDA0MTJGRjUgLyogX1dLTGlua0ljb25Q
YXJhbWV0ZXJzLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q0OTFCMEQxRTczMkU0RDAwMDA5MDY2
IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUExMThBOUYyMTkwOEI4RUEwMEY3QzkyQiAvKiBfV0tOU0ZpbGVNYW5hZ2VyRXh0
cmFzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE0M0U4MjkxODhGM0NEQzAwOUU0RDMwIC8qIF9X
S1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBOUUzMjhF
MTgyMTY1QTkwMEY1RDA0QyAvKiBfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UubW0gaW4gU291cmNl
cyAqLywKQEAgLTk2MzYsNiArOTY2Niw3IEBACiAJCQkJOTNBODhCNDcxQkM4ODI5NzAwQUJBNUMy
IC8qIEFQSUhpdFRlc3RSZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NEM0E0ODIxQTVE
MDJGQTAwOTYyM0I4IC8qIEFQSU5hdmlnYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNG
NjlGQTMxMTc2RDAxNDAwNDcxQTUyIC8qIEFQSU5hdmlnYXRpb25EYXRhLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUNENDkxQjE3MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgzMkVEMThC
MUUyRkUxNTcwMDZCQTY0QSAvKiBQZXJBY3Rpdml0eVN0YXRlQ1BVVXNhZ2VTYW1wbGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUI2MzQwM0Y5MTQ5MTBENTcwMDEwNzBCNSAvKiBBUElPYmplY3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc4RTFBM0QxODFFRDZGRjAwMzEwMDdBIC8qIEFQSU9i
amVjdC5tbSBpbiBTb3VyY2VzICovLApAQCAtOTY2MCw2ICs5NjkxLDcgQEAKIAkJCQkxQTM2MzVB
OTFBMzE0NEEzMDBFRDYxOTcgLyogQVBJV2Vic2l0ZURhdGFTdG9yZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxQTM2MzVBRDFBMzE0NUU1MDBFRDYxOTcgLyogQVBJV2Vic2l0ZURhdGFTdG9yZUNv
Y29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNCMjM3OTExREYwRTJFNjAwMTE3QUEzIC8qIEFQ
SVdlYnNpdGVQb2xpY2llcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDQ5MUIxMjFFNzM0ODIx
MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxQTY1NjNFNDFCN0E4QzUwMDA5Q0Y3ODcgLyogQVBJV2luZG93RmVhdHVyZXMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUFENEMxOTIxQjM5RjMzMjAwQUJDMjhFIC8qIEFwcGxpY2F0
aW9uU3RhdGVUcmFja2VyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEzRDYxMDUxM0E3RjAzQTAw
Rjk1RDRFIC8qIEFyZ3VtZW50Q29kZXJzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTk3OSw3ICsx
MDAxMSw2IEBACiAJCQkJNzUzRTNFMEQxODg3Mzk4NTAwMTg4NDk2IC8qIFNlc3Npb25UcmFja2Vy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNjQyMEU0MTJEQ0UyRkYwMENBQUUyQyAvKiBTaGFy
ZWFibGVCaXRtYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzAxQTI2MDExMjY2MkYyMTAwQzlF
RDU1IC8qIFNoYXJlYWJsZUJpdG1hcENHLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUNENjE3ODE0
MUU2REU5QTAwMEZEQTU3RCAvKiBXZWJVc2VyTWVkaWFDbGllbnRNYWMubW0gaW4gU291cmNlcyAq
LywKIAkJCQk1MTIxNzQ2MDE2NEMyMEUzMDAzN0E1QzEgLyogU2hhcmVhYmxlUmVzb3VyY2UuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDQ1MEFFQzAxREMzRkFFNTAwOTk0M0YyIC8qIFNoYXJlZE1l
bW9yeUNvY29hLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEQUYwNkQ3MThCRDFBNDcwMDgxQ0VC
MSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0x
MDE4Miw2ICsxMDIxMyw3IEBACiAJCQkJOTlDM0FFMjQxREFEOEUzNzAwQUY1QzE2IC8qIFdlYkF1
dG9tYXRpb25TZXNzaW9uTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M0Njk0Q0MxQTRCNTEw
QTAwQUQ1ODQ1IC8qIFdlYlBhc3RlYm9hcmRQcm94eUNvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJN0M0Njk0QzkxQTRCNEVBMTAwQUQ1ODQ1IC8qIFdlYlBhc3RlYm9hcmRQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDQ5MUIwNzFFNzBEMDVGMDAwMDkwNjYg
LyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFCMUY3
NzQxRDFCMkY4QTAwN0M5QkQxIC8qIFdlYlBheW1lbnRDb29yZGluYXRvci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxQUIxRjc5NjFEMUIzNjEzMDA3QzlCRDEgLyogV2ViUGF5bWVudENvb3JkaW5h
dG9yTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQjFGNzhCMUQxQjMz
NTUwMDdDOUJEMSAvKiBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHAgaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViVXNlck1lZGlhQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcAppbmRleCBhYWRlZDM0NGE3NmFlYTZhYjQ3
MTYyZDg5NjhjY2IyYzVmMDUwYzY3Li4zNjIyMDJlMGVkNjBlNjU3NzRmZmM4NzA3MGNkNTE3M2Ri
NWNiODZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCkBAIC0zMyw3ICszMyw2IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogV2ViVXNlck1lZGlhQ2xpZW50OjpXZWJVc2VyTWVkaWFDbGll
bnQoV2ViUGFnZSYgcGFnZSkKICAgICA6IG1fcGFnZShwYWdlKQogewotICAgIGluaXRpYWxpemVG
YWN0b3JpZXMoKTsKIH0KIAogdm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OnBhZ2VEZXN0cm95ZWQo
KQpAQCAtNjEsMTMgKzYwLDYgQEAgdm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OmNhbmNlbE1lZGlh
RGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdChNZWRpYURldmljZXNFbnVtZXIKICAgICBtX3BhZ2Uu
dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkuY2FuY2VsTWVkaWFEZXZpY2VzRW51
bWVyYXRpb24ocmVxdWVzdCk7CiB9CiAKLSNpZiAhUExBVEZPUk0oQ09DT0EpCi12b2lkIFdlYlVz
ZXJNZWRpYUNsaWVudDo6aW5pdGlhbGl6ZUZhY3RvcmllcygpCi17Ci0KLX0KLSNlbmRpZgotCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQ7CiAKICNlbmRpZiAvLyBNRURJQV9TVFJFQU0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvY29jb2EvV2ViVXNl
ck1lZGlhQ2xpZW50TWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9jb2NvYS9XZWJVc2VyTWVkaWFDbGllbnRNYWMubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGE4ZGYyZjEwMTliYTg2ZjZmYTdhMzYxNjA0YTBlYTI3NmJkNzVjMWUuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9jb2NvYS9XZWJVc2VyTWVkaWFDbGllbnRNYWMubW0K
KysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIldlYlVzZXJNZWRpYUNsaWVudC5oIgotCi0jaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkgJiYgUExBVEZPUk0oQ09DT0EpCi0KLSNpbXBvcnQgPFdlYkNvcmUvUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlci5oPgotI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0K
LXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3Mg
V2ViVXNlck1lZGlhQ2xpZW50QXVkaW9GYWN0b3J5IGZpbmFsIDogcHVibGljIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgV2ViVXNlck1l
ZGlhQ2xpZW50QXVkaW9GYWN0b3J5JiBzaW5nbGV0b24oKQotICAgIHsKLSAgICAgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFdlYlVzZXJNZWRpYUNsaWVudEF1ZGlvRmFjdG9yeT4gZmFjdG9yeTsK
LSAgICAgICAgcmV0dXJuIGZhY3Rvcnk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIFJlZlB0cjxS
ZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRo
Q29uc3RyYWludHMoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMpIGZpbmFsIHsK
LSAgICAgICAgYXV0byogZmFjdG9yeSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmds
ZXRvbigpLmRlZmF1bHRBdWRpb0ZhY3RvcnkoKTsKLSAgICAgICAgcmV0dXJuIGZhY3RvcnkgPyBm
YWN0b3J5LT5jcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMo
ZGV2aWNlLCBjb25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnRzKSA6IG51bGxwdHI7Ci0gICAg
fQotfTsKLQotdm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OmluaXRpYWxpemVGYWN0b3JpZXMoKQot
ewotICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOwotICAgIGRpc3BhdGNoX29u
Y2UoJm9uY2VUb2tlbiwgXiB7Ci0gICAgICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnNpbmdsZXRvbigpLnNldEF1ZGlvRmFjdG9yeShXZWJVc2VyTWVkaWFDbGllbnRBdWRp
b0ZhY3Rvcnk6OnNpbmdsZXRvbigpKTsKLSAgICB9KTsKLX0KLQotfQotCi0jZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDZhNDFiNGNmMDczYzhiMDIy
MTQxYWFjNWQzZjUzOThhOTk5NTA3ODcuLmExZWE5NmQ3OWM4ZjlhZjI1MDIzMmVjMWYwZDU5MGM2
ZTE4NjIzNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAt
NDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSAiU3Rh
dGlzdGljc0RhdGEuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5oIgorI2luY2x1ZGUgIlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5o
IgogI2luY2x1ZGUgIldlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYkNv
b2tpZU1hbmFnZXIuaCIKQEAgLTE5MSw2ICsxOTIsMTAgQEAgV2ViUHJvY2Vzczo6V2ViUHJvY2Vz
cygpCiAgICAgYWRkU3VwcGxlbWVudDxXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyPigpOwogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGFkZFN1cHBsZW1lbnQ8VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI+KCk7CisjZW5kaWYKKwogICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3Jp
Z2luSGFzaGVzLmFkZChTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgSGFzaE1hcDx1bnNp
Z25lZCwgZG91YmxlPigpKTsKIAogICAgIFJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWRPYnNl
cnZlcigpLnNldFN0YXRpc3RpY3NTdG9yZShtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5j
b3B5UmVmKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMGM4ZDlkNThlMWYx
OTRiNzA3MTQ5NGMxYTBhMjU4YzlmYjExNWU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTAs
MCArMSwyMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIK
KyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAi
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NhcHR1cmVE
ZXZpY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHNJbXBsLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgdWludDY0X3QgbmV4dFNlc3Npb25JRCgpCit7
CisgICAgc3RhdGljIHVpbnQ2NF90IG5leHRJRCA9IDA7CisgICAgcmV0dXJuICsrbmV4dElEOwor
fQorCitjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlIDogcHVibGljIFJlYWx0
aW1lTWVkaWFTb3VyY2UgeworcHVibGljOgorICAgIFNvdXJjZShjb25zdCBTdHJpbmcmIHNvdXJj
ZUlELCBUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgdWludDY0X3QgaWQsIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyKQorICAgICAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2Uo
c291cmNlSUQsIHR5cGUsIG5hbWUpCisgICAgICAgICwgbV9pZChpZCkKKyAgICAgICAgLCBtX21h
bmFnZXIobWFuYWdlcikKKyAgICAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZVJlZjxTaGFy
ZWRSaW5nQnVmZmVyU3RvcmFnZT4obnVsbHB0cikpCisgICAgeworICAgIH0KKworICAgIH5Tb3Vy
Y2UoKQorICAgIHsKKyAgICAgICAgc3RvcmFnZSgpLmludmFsaWRhdGUoKTsKKyAgICB9CisKKyAg
ICBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSYgc3RvcmFnZSgpIHsgcmV0dXJuIHN0YXRpY19jYXN0
PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLnN0b3JhZ2UoKSk7IH0KKyAg
ICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9jYXBhYmlsaXRpZXM7IH0KKyAgICB2b2lkIHNldENhcGFi
aWxpdGllcyhSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0
aWVzKSB7IG1fY2FwYWJpbGl0aWVzID0gY2FwYWJpbGl0aWVzOyB9CisKKyAgICBjb25zdCBSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9zZXR0aW5nczsgfQorICAgIHZvaWQgc2V0U2V0dGluZ3MoY29uc3QgUmVhbHRpbWVNZWRpYVNv
dXJjZVNldHRpbmdzJiBzZXR0aW5ncykKKyAgICB7CisgICAgICAgIG1fc2V0dGluZ3MgPSBzZXR0
aW5nczsKKyAgICAgICAgc2V0dGluZ3NEaWRDaGFuZ2UoKTsKKyAgICB9CisKKyAgICBjb25zdCBD
QUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9k
ZXNjcmlwdGlvbjsgfQorICAgIHZvaWQgc2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6Okhh
bmRsZSYgaGFuZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRl
c2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKKyAgICB7CisgICAgICAgIG1fZGVz
Y3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKKyAgICAgICAgaWYgKGhhbmRsZS5pc051bGwoKSkgewor
ICAgICAgICAgICAgbV9yaW5nQnVmZmVyLmRlYWxsb2NhdGUoKTsKKyAgICAgICAgICAgIHN0b3Jh
Z2UoKS5zZXRSZWFkT25seShmYWxzZSk7CisgICAgICAgICAgICBzdG9yYWdlKCkuc2V0U3RvcmFn
ZShudWxscHRyKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFJl
ZlB0cjxTaGFyZWRNZW1vcnk+IG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRsZSwgU2hh
cmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CisgICAgICAgIHN0b3JhZ2UoKS5zZXRT
dG9yYWdlKFdURk1vdmUobWVtb3J5KSk7CisgICAgICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25seSh0
cnVlKTsKKworICAgICAgICBtX3JpbmdCdWZmZXIuYWxsb2NhdGUoZGVzY3JpcHRpb24sIG51bWJl
ck9mRnJhbWVzKTsKKyAgICB9CisKKyAgICB2b2lkIHNldFJpbmdCdWZmZXJGcmFtZUJvdW5kcyh1
aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKKyAgICB7CisgICAgICAgIG1f
cmluZ0J1ZmZlci5zZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOwor
ICAgIH0KKworICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSB0aW1lLCB1
aW50NjRfdCBudW1iZXJPZkZyYW1lcykKKyAgICB7CisgICAgICAgIFdlYkF1ZGlvQnVmZmVyTGlz
dCBhdWRpb0RhdGEobV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgICAgICBtX3Jp
bmdCdWZmZXIuZmV0Y2goYXVkaW9EYXRhLmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUudGlt
ZVZhbHVlKCkpOworCisgICAgICAgIGZvciAoYXV0byogb2JzZXJ2ZXIgOiBvYnNlcnZlcnMoKSkK
KyAgICAgICAgICAgIG9ic2VydmVyLT5hdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgYXVkaW9E
YXRhLCBtX2Rlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisgICAgfQorCisgICAgdm9pZCBz
dGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbCB7IG1fbWFuYWdlci5zdGFydFByb2R1Y2luZ0RhdGEo
bV9pZCk7IH0KKyAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgZmluYWwgeyBtX21hbmFnZXIu
c3RvcFByb2R1Y2luZ0RhdGEobV9pZCk7IH0KKworICAgIEF1ZGlvU291cmNlUHJvdmlkZXIqIGF1
ZGlvU291cmNlUHJvdmlkZXIoKSBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CisKK3ByaXZhdGU6
CisgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZQorICAgIHZvaWQgYmVnaW5Db25maWd1cmF0aW9u
KCkgZmluYWwgeyB9CisgICAgdm9pZCBjb21taXRDb25maWd1cmF0aW9uKCkgZmluYWwgeyB9CisK
KyAgICB1aW50NjRfdCBtX2lkOworICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFn
ZXI7CisgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJp
bGl0aWVzOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX3NldHRpbmdzOworICAg
IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uOworICAgIENBUmluZ0J1ZmZl
ciBtX3JpbmdCdWZmZXI7Cit9OworCitVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIoV2ViUHJvY2VzcyogcHJvY2VzcykKKyAgICA6IG1fcHJvY2VzcygqcHJv
Y2VzcykKK3sKKyAgICBtX3Byb2Nlc3MuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7Cit9CisK
K1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIoKQorewor
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnVuc2V0QXVkaW9GYWN0
b3J5KCp0aGlzKTsKKyAgICBtX3Byb2Nlc3MucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKK30KKwor
Y29uc3QgY2hhciogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKCkKK3sK
KyAgICByZXR1cm4gIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIjsKK30KKwordm9pZCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6aW5pdGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzKQoreworICAgIGlmIChwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVB
dWRpb0luVUlQcm9jZXNzKQorICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5n
bGV0b24oKS5zZXRBdWRpb0ZhY3RvcnkoKnRoaXMpOworfQorCitSZWZQdHI8UmVhbHRpbWVNZWRp
YVNvdXJjZT4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2Fw
dHVyZURldmljZVdpdGhDb25zdHJhaW50cyhjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmIGludmFsaWRDb25zdHJh
aW50cykKK3sKKyAgICBpZiAoIWNvbnN0cmFpbnRzKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgIHVpbnQ2NF90IGlkID0gbmV4dFNlc3Npb25JRCgpOworICAgIE1lZGlhQ29uc3RyYWlu
dHNEYXRhIGNvbnN0cmFpbnRzRGF0YTsKKyAgICBjb25zdHJhaW50c0RhdGEubWFuZGF0b3J5Q29u
c3RyYWludHMgPSBjb25zdHJhaW50cy0+bWFuZGF0b3J5Q29uc3RyYWludHMoKTsKKyAgICBjb25z
dHJhaW50c0RhdGEuYWR2YW5jZWRDb25zdHJhaW50cyA9IGNvbnN0cmFpbnRzLT5hZHZhbmNlZENv
bnN0cmFpbnRzKCk7CisgICAgY29uc3RyYWludHNEYXRhLmlzVmFsaWQgPSBjb25zdHJhaW50cy0+
aXNWYWxpZCgpOworICAgIGJvb2wgc3VjY2VlZGVkOworCisgICAgbV9wcm9jZXNzLnNlbmRTeW5j
KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJj
ZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoaWQsIGRldmljZSwgY29uc3RyYWludHNE
YXRhKSwge3N1Y2NlZWRlZCwgaW52YWxpZENvbnN0cmFpbnRzfSwgMCk7CisKKyAgICBhdXRvIHNv
dXJjZSA9IGFkb3B0UmVmKG5ldyBTb3VyY2UoU3RyaW5nOjpudW1iZXIoaWQpLCBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpBdWRpbywgZGV2aWNlLmxhYmVsKCksIGlkLCAqdGhpcykpOworICAg
IG1fc291cmNlcy5zZXQoaWQsIHNvdXJjZSk7CisgICAgcmV0dXJuIHNvdXJjZTsKK30KKwordm9p
ZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlU3RvcHBlZCh1aW50NjRfdCBpZCkKK3sK
KyAgICBBU1NFUlQobV9zb3VyY2VzLmNvbnRhaW5zKGlkKSk7CisgICAgYXV0byYgc291cmNlID0g
Km1fc291cmNlcy5nZXQoaWQpOworICAgIHNvdXJjZS5zdG9wKCk7Cit9CisKK3ZvaWQgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZU11dGVkQ2hhbmdlZCh1aW50NjRfdCBpZCwgYm9vbCBt
dXRlZCkKK3sKKyAgICBBU1NFUlQobV9zb3VyY2VzLmNvbnRhaW5zKGlkKSk7CisgICAgbV9zb3Vy
Y2VzLmdldChpZCktPnNldE11dGVkKG11dGVkKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6c291cmNlRW5hYmxlZENoYW5nZWQodWludDY0X3QgaWQsIGJvb2wgZW5hYmxlZCkK
K3sKKyAgICBBU1NFUlQobV9zb3VyY2VzLmNvbnRhaW5zKGlkKSk7CisgICAgbV9zb3VyY2VzLmdl
dChpZCktPnNldEVuYWJsZWQoZW5hYmxlZCk7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OnNvdXJjZVNldHRpbmdzQ2hhbmdlZCh1aW50NjRfdCBpZCwgY29uc3QgUmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncykKK3sKKyAgICBBU1NFUlQobV9zb3VyY2VzLmNv
bnRhaW5zKGlkKSk7CisgICAgbV9zb3VyY2VzLmdldChpZCktPnNldFNldHRpbmdzKHNldHRpbmdz
KTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3RvcmFnZUNoYW5nZWQodWlu
dDY0X3QgaWQsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBoYW5kbGUsIGNvbnN0IFdlYkNv
cmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJl
ck9mRnJhbWVzKQoreworICAgIEFTU0VSVChtX3NvdXJjZXMuY29udGFpbnMoaWQpKTsKKyAgICBt
X3NvdXJjZXMuZ2V0KGlkKS0+c2V0U3RvcmFnZShoYW5kbGUsIGRlc2NyaXB0aW9uLCBudW1iZXJP
ZkZyYW1lcyk7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnJpbmdCdWZmZXJG
cmFtZUJvdW5kc0NoYW5nZWQodWludDY0X3QgaWQsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2
NF90IGVuZEZyYW1lKQoreworICAgIEFTU0VSVChtX3NvdXJjZXMuY29udGFpbnMoaWQpKTsKKyAg
ICBtX3NvdXJjZXMuZ2V0KGlkKS0+c2V0UmluZ0J1ZmZlckZyYW1lQm91bmRzKHN0YXJ0RnJhbWUs
IGVuZEZyYW1lKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6YXVkaW9TYW1w
bGVzQXZhaWxhYmxlKHVpbnQ2NF90IGlkLCBNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVy
T2ZGcmFtZXMpCit7CisgICAgQVNTRVJUKG1fc291cmNlcy5jb250YWlucyhpZCkpOworICAgIG1f
c291cmNlcy5nZXQoaWQpLT5hdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgbnVtYmVyT2ZGcmFt
ZXMpOworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzdGFydFByb2R1Y2luZ0Rh
dGEodWludDY0X3QgaWQpCit7CisgICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHk6OlN0YXJ0UHJvZHVjaW5nRGF0YShpZCksIDApOworfQorCit2
b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCBp
ZCkKK3sKKyAgICBtX3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6U3RvcFByb2R1Y2luZ0RhdGEoaWQpLCAwKTsKK30KKworfQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wY2Y4Nzg0MTQwNWQ1ODE3YmZmNmU2OWEwZDZhZjRm
YmFmZTRhODZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9j
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiU2hhcmVk
TWVtb3J5LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1N1cHBsZW1lbnQuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb247Cit9
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBDcm9zc1Byb2Nlc3NSZWFsdGltZUF1ZGlv
U291cmNlOworY2xhc3MgV2ViUHJvY2VzczsKKworY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIgOiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNl
aXZlciwgcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5
IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcihXZWJQcm9j
ZXNzKik7CisgICAgflVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKCk7CisKKyAgICBzdGF0aWMgY29u
c3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsKKworcHJpdmF0ZToKKyAgICAvLyBXZWJQcm9jZXNz
U3VwcGxlbWVudAorICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzJikgZmluYWw7CisKKyAgICAvLyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
OjpGYWN0b3J5OgorICAgIFJlZlB0cjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjcmVh
dGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoY29uc3QgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJp
bmcmKSBmaW5hbDsKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKwor
ICAgIC8vIE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcgorICAgIHZvaWQgc291cmNl
U3RvcHBlZCh1aW50NjRfdCBpZCk7CisgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQodWludDY0
X3QgaWQsIGJvb2wgbXV0ZWQpOworICAgIHZvaWQgc291cmNlRW5hYmxlZENoYW5nZWQodWludDY0
X3QgaWQsIGJvb2wgZW5hYmxlZCk7CisgICAgdm9pZCBzb3VyY2VTZXR0aW5nc0NoYW5nZWQodWlu
dDY0X3QgaWQsIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYpOwor
ICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQodWludDY0X3QgaWQsIGNvbnN0IFNoYXJlZE1lbW9yeTo6
SGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDY0
X3QgbnVtYmVyT2ZGcmFtZXMpOworICAgIHZvaWQgcmluZ0J1ZmZlckZyYW1lQm91bmRzQ2hhbmdl
ZCh1aW50NjRfdCBpZCwgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOwor
ICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKHVpbnQ2NF90IGlkLCBNZWRpYVRpbWUsIHVp
bnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKworICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKHVp
bnQ2NF90KTsKKyAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsKKworICAgIGNs
YXNzIFNvdXJjZTsKKyAgICBmcmllbmQgY2xhc3MgU291cmNlOworICAgIEhhc2hNYXA8dWludDY0
X3QsIFJlZlB0cjxTb3VyY2U+PiBtX3NvdXJjZXM7CisgICAgV2ViUHJvY2VzcyYgbV9wcm9jZXNz
OworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmlu
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjZjMzAxY2YzYzJhNjNkNWQ3ZjEwZDNhMjEzZTJmM2IxNmEyZDFjYWMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzIgQEAKKyMgQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+IFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyIHsKKyAgICBTb3VyY2VTdG9wcGVkKHVpbnQ2NF90IGlkKQorICAgIFNvdXJjZU11dGVk
Q2hhbmdlZCh1aW50NjRfdCBpZCwgYm9vbCBtdXRlZCkKKyAgICBTb3VyY2VFbmFibGVkQ2hhbmdl
ZCh1aW50NjRfdCBpZCwgYm9vbCBlbmFibGVkKQorICAgIFNvdXJjZVNldHRpbmdzQ2hhbmdlZCh1
aW50NjRfdCBpZCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdz
KQorICAgIFN0b3JhZ2VDaGFuZ2VkKHVpbnQ2NF90IGlkLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6
SGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBk
ZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisgICAgUmluZ0J1ZmZlckZyYW1l
Qm91bmRzQ2hhbmdlZCh1aW50NjRfdCBpZCwgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3Qg
ZW5kRnJhbWUpOworICAgIEF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh1aW50NjRfdCBpZCwgTWVkaWFU
aW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQorfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304442</attachid>
            <date>2017-03-14 16:50:52 -0700</date>
            <delta_ts>2017-03-14 17:37:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169609-20170314165051.patch</filename>
            <type>text/plain</type>
            <size>66694</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzOTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTA0Njg3Y2ZhMzNjMTYy
ODZjODUyOWYzN2I0NzgzNzA0ZDRkMjgwMi4uMDU4NmNhNDlmOGEyZTI1OTU2ZjlkMjQwMjdhNDIy
MWVmYTI1YmM2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTAzLTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIE9wdGlvbmFsbHkgY2FwdHVy
ZSBhdWRpbyBpbiB0aGUgVUlQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjk2MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBFeHBvcnQgc29tZSBwcmV2aW91c2x5IHVuLWV4cG9ydGVkIHN5bWJv
bHMgZnJvbSBXZWJDb3JlIGZvciB1c2UgaW4gV2ViS2l0Mi4KKworICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9XZWJB
dWRpb0J1ZmZlckxpc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlLmg6CisKIDIwMTctMDMtMDYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVmYWN0b3I6IEFsbG93IFdlYktpdDIgdG8gb3ZlcnJpZGUgdGhl
IGNyZWF0aW9uIG9mIFJlYWx0aW1lTWVkaWFTb3VyY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzBiMjdlNzZl
NzVlYjUyNmQ4ZDUyN2VhNTZjYTljZWY2ODM1ZDc1OS4uZjA2NjAwZjVlOGM2N2JkZmE0YWZlMmE0
ZTM4MjI5NGRkNDBlYWMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkwIEBACisyMDE3LTAzLTE0
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIE9wdGlvbmFsbHkg
Y2FwdHVyZSBhdWRpbyBpbiB0aGUgVUlQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjk2MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgY2xhc3MgcGFpciwgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIvUHJveHksIHRvIGFsbG93IGEgUmVhbHRpbWVNZWRpYVNvdXJjZQorICAgICAg
ICByZXF1ZXN0ZWQgaW4gYSBXZWJQcm9jZXNzIHRvIGJlIGNyZWF0ZWQgaW4gdGhlIFVJUHJvY2Vz
cyBpbiB0aGUgVUlQcm9jZXNzIGFuZCBwdXNoIGl0cyBhdWRpbworICAgICAgICBkYXRhIGFjcm9z
cyB0aGUgcHJvY2VzcyBib3VuZGFyeSB0byBpdHMgY2xpZW50cyBpbiB0aGUgV2ViUHJvY2Vzcy4g
QmVjYXVzZSB0aGVzZSBjbGFzc2VzCisgICAgICAgIGFyZSBjbGllbnRzIG9mIHRoZSBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKSwgdGhleSBtdXN0IGJlIGEgc2luZ2xldG9u
CisgICAgICAgIGluIHRoZSBXZWJQcm9jZXNzIGFzIHdlbGwsIHNvIHRoZXkgYXJlIGF0dGFjaGVk
IHRvIHRoZSBXZWJQcm9jZXNzIGNsYXNzIGluIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICBhbmQg
dG8gV2ViUHJvY2Vzc1Byb3h5IGluIHRoZSBVSVByb2Nlc3MuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94eTo6U291
cmNlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjpTb3VyY2VQcm94eTo6flNvdXJjZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OnNvdXJjZSk6CisgICAgICAgIChXZWJL
aXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpkZXNjcmlwdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJj
ZVByb3h5OjpudW1iZXJPZkZyYW1lcyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkpOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Ojp+VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnN0YXJ0UHJvZHVj
aW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OnN0b3BQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5Ojpwcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpuZXh0U2Vzc2lvbklEKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OlNvdXJjZTo6U291cmNlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6flNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnNldENhcGFiaWxpdGllcyk6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnNldFNldHRpbmdzKToKKyAg
ICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6ZGVzY3JpcHRp
b24pOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpz
ZXRTdG9yYWdlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNv
dXJjZTo6c2V0UmluZ0J1ZmZlckZyYW1lQm91bmRzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6On5Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyk6
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VTdG9wcGVk
KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZU11dGVk
Q2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3Vy
Y2VFbmFibGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpzb3VyY2VTZXR0aW5nc0NoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlcjo6c3RvcmFnZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6cmluZ0J1ZmZlckZyYW1lQm91bmRzQ2hhbmdlZCk6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjphdWRpb1NhbXBsZXNBdmFpbGFibGUp
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3RhcnRQcm9kdWNp
bmdEYXRhKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN0b3BQ
cm9kdWNpbmdEYXRhKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorCisgICAgICAgIEluaXRpYWxpemUg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIvUHJveHk6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Oldl
YlByb2Nlc3NQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OldlYlByb2Nlc3MpOgorCisgICAgICAgIFdlYlVzZXJNZWRpYUNsaWVudE1hYyBp
cyBubyBsb25nZXIgbmVjZXNzYXJ5IG5vdyB0aGF0IHRoZSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ciBvdmVycmlkZXMKKyAgICAgICAgdGhlIGZhY3RvcmllczoKKworICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViVXNlck1lZGlhQ2xpZW50OjpXZWJVc2VyTWVkaWFDbGllbnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJVc2VyTWVkaWFDbGllbnQ6OmluaXRpYWxpemVGYWN0b3JpZXMpOiBEZWxldGVkLgor
CisgICAgICAgIEFkZCBhIG5ldyBwcmVmZXJlbmNlIGFuZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzIG1lbWJlciB0byBjb250cm9sIHdoZXRoZXIKKyAgICAgICAgY2FwdHVyaW5nIGlzIGRv
bmUgaW4gdGhlIFVJUHJvY2VzczoKKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0Rl
ZmluaXRpb25zLmg6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpl
bmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpk
ZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6
CisKKyAgICAgICAgQWRkIG5ldyBmaWxlcyB0byB0aGUgcHJvamVjdDoKKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICog
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE3LTAzLTA2ICBKZXIgTm9i
bGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZmFjdG9yOiBBbGxvdyBXZWJL
aXQyIHRvIG92ZXJyaWRlIHRoZSBjcmVhdGlvbiBvZiBSZWFsdGltZU1lZGlhU291cmNlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDVhMTljYzVhNTUzN2I4NWU3NTZmNjMwY2Q1ODlmZWI5YTcyNWZmM2IuLjBiM2VkMzk4Nzg4Y2I2
YTRiMGIxZTlkNDlkNTY4ODFkMDhlYTQ2NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYxNjgsNyArNjE2OCw3IEBACiAJCUNE
RTU5NTk3MUJGMjZFMjEwMEExQ0JFOCAvKiBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREU1OTU5NjFC
RjI2RTIxMDBBMUNCRTggLyogQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oICovOyB9Owog
CQlDREU1OTU5RDFCRjI3NTcxMDBBMUNCRTggLyogQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2Jq
Qy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTU5
NTlDMUJGMjc1NzEwMEExQ0JFOCAvKiBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tICov
OyB9OwogCQlDREU2NjdBNDFFNEJCRjE1MDBFODE1NEEgLyogV2ViQXVkaW9CdWZmZXJMaXN0LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTY2N0Ey
MUU0QkJGMTUwMEU4MTU0QSAvKiBXZWJBdWRpb0J1ZmZlckxpc3QuY3BwICovOyB9OwotCQlDREU2
NjdBNTFFNEJCRjE1MDBFODE1NEEgLyogV2ViQXVkaW9CdWZmZXJMaXN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREU2NjdBMzFFNEJCRjE1MDBFODE1
NEEgLyogV2ViQXVkaW9CdWZmZXJMaXN0LmggKi87IH07CisJCUNERTY2N0E1MUU0QkJGMTUwMEU4
MTU0QSAvKiBXZWJBdWRpb0J1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENERTY2N0EzMUU0QkJGMTUwMEU4MTU0QSAvKiBXZWJBdWRpb0J1
ZmZlckxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlDREU3RkM0NDE4MTkwNEIxMDAyQkJCNzcgLyogT3JkZXJJdGVyYXRvci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREU3RkM0MjE4MTkwNEIx
MDAyQkJCNzcgLyogT3JkZXJJdGVyYXRvci5jcHAgKi87IH07CiAJCUNERTdGQzQ1MTgxOTA0QjEw
MDJCQkI3NyAvKiBPcmRlckl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDREU3RkM0MzE4MTkwNEIxMDAyQkJCNzcgLyogT3JkZXJJdGVyYXRv
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNE
RTgzREIxMTgzQzQ0MDYwMDMxRUFBMyAvKiBWaWRlb1BsYXliYWNrUXVhbGl0eS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREU4M0RBRjE4M0M0NDA2
MDAzMUVBQTMgLyogVmlkZW9QbGF5YmFja1F1YWxpdHkuY3BwICovOyB9OwpAQCAtNjE4NSw2ICs2
MTg1LDcgQEAKIAkJQ0RFQTdDODUxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQTdD
ODMxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uY3BwICovOyB9OwogCQlDREVF
MzkzNzE3OTc0MjU5MDAxRDc1ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVFMzkzNjE3OTc0MjU5MDAxRDc1
ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgKi87IH07CiAJCUNERUY0RkQ3MTdFODVDOEYwMEFF
RTI0QiAvKiBHcmlkTGVuZ3RoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyogR3JpZExlbmd0aC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERUZBMjI4MUU3
NjY5RTgwMDBBRTk5QyAvKiBQbGF0Zm9ybUF1ZGlvRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3QTExRTRCQkE0RDAwRTgxNTRBIC8qIFBs
YXRmb3JtQXVkaW9EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQ0RGMkIwMDQxODFGMDU5QzAwRjJCNDI0IC8qIE1lZGlhRGVzY3JpcHRpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjJCMDAz
MTgxRjA1OUMwMEYyQjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggKi87IH07CiAJCUNERjJCMDEw
MTgyMDU0MDYwMEYyQjQyNCAvKiBNb2NrQm94LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjJCMDA2MTgyMDU0MDYwMEYyQjQyNCAvKiBNb2NrQm94
LmNwcCAqLzsgfTsKIAkJQ0RGMkIwMTExODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tCb3guaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjJCMDA3MTgyMDU0
MDYwMEYyQjQyNCAvKiBNb2NrQm94LmggKi87IH07CkBAIC0yNjk2OSw2ICsyNjk3MCw3IEBACiAJ
CQkJRkQzMTYwOTkxMkIwMjZGNzAwQzFBMzU5IC8qIEhSVEZEYXRhYmFzZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkQzMTYwOUIxMkIwMjZGNzAwQzFBMzU5IC8qIEhSVEZEYXRhYmFzZUxvYWRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwOUQxMkIwMjZGNzAwQzFBMzU5IC8qIEhSVEZFbGV2
YXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUNERUZBMjI4MUU3NjY5RTgwMDBBRTk5QyAvKiBQ
bGF0Zm9ybUF1ZGlvRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwOUYxMkIwMjZGNzAw
QzFBMzU5IC8qIEhSVEZLZXJuZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MEExMTJCMDI2
RjcwMEMxQTM1OSAvKiBIUlRGUGFubmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk3RTIzQTEw
OTE0NDk1MDAxMEQzNjEgLyogSFRNTEFsbENvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vV2ViQXVkaW9CdWZmZXJMaXN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9XZWJBdWRpb0J1ZmZlckxpc3QuaApp
bmRleCBiYmYzYzEzOWI2MjVlN2I0Yzc5YWY4NDI0MTM4YjUwNDA3MzE4NWE4Li5kYjY1ZDM1MzRl
M2JhNWU3ODc5Y2YyZjRkOTY4NDA4MGMwNGY2MTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9XZWJBdWRpb0J1ZmZlckxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9XZWJBdWRpb0J1ZmZlckxpc3QuaApAQCAtNDIsNyArNDIsNyBAQCBj
bGFzcyBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CiBjbGFzcyBXZWJBdWRpb0J1ZmZlckxpc3Qg
OiBwdWJsaWMgUGxhdGZvcm1BdWRpb0RhdGEgewogcHVibGljOgogICAgIFdlYkF1ZGlvQnVmZmVy
TGlzdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mKTsKLSAgICBXZWJBdWRpb0J1ZmZl
ckxpc3QoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDMyX3Qgc2FtcGxlQ291
bnQpOworICAgIFdFQkNPUkVfRVhQT1JUIFdlYkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mLCB1aW50MzJfdCBzYW1wbGVDb3VudCk7CiAgICAgV2ViQXVkaW9C
dWZmZXJMaXN0KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIENNU2FtcGxlQnVmZmVy
UmVmKTsKIAogICAgIEF1ZGlvQnVmZmVyTGlzdCogbGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fbGlz
dC5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFj
L0NBUmluZ0J1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0NBUmlu
Z0J1ZmZlci5oCmluZGV4IDVhYWI0OTI3ZGUwYWQ5N2Y4YjgxNTgxMjQyOWFmZTk2YjQ3YjUzMWIu
LjQ1YzU1ZGMxMzAxODE4MjFkNjA4ZThiNzNhZDdmNzY0NWZkZjgyMTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9DQVJpbmdCdWZmZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmgKQEAgLTg1LDYgKzg1
LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q3VycmVudEZyYW1lQm91
bmRzKHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKIAogICAgIHVpbnQz
Ml90IGNoYW5uZWxDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hhbm5lbENvdW50OyB9CisgICAg
Q0FSaW5nQnVmZmVyU3RvcmFnZSYgc3RvcmFnZSgpIHsgcmV0dXJuIG1fYnVmZmVyczsgfQogCiBw
cml2YXRlOgogICAgIHNpemVfdCBmcmFtZU9mZnNldCh1aW50NjRfdCBmcmFtZU51bWJlcikgeyBy
ZXR1cm4gKGZyYW1lTnVtYmVyICYgbV9mcmFtZUNvdW50TWFzaykgKiBtX2J5dGVzUGVyRnJhbWU7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCBhY2FjZGVhODM0MmI1Y2FiYjI0MjVmMDIzYjlkOWZh
YjZjNDgxMzRhLi4xMjliZTY0ZjNjODQ2N2NmOWZkYTcwNjM4N2QwZDMwNDA5YWY5MmM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZS5oCkBAIC02MSw3ICs2MSw3IEBAIGNsYXNzIE1lZGlhU3RyZWFtUHJpdmF0
ZTsKIGNsYXNzIFBsYXRmb3JtQXVkaW9EYXRhOwogY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzOwogCi1jbGFzcyBSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFJlZkNvdW50ZWQ8
UmVhbHRpbWVNZWRpYVNvdXJjZT4geworY2xhc3MgV0VCQ09SRV9FWFBPUlQgUmVhbHRpbWVNZWRp
YVNvdXJjZSA6IHB1YmxpYyBSZWZDb3VudGVkPFJlYWx0aW1lTWVkaWFTb3VyY2U+IHsKIHB1Ymxp
YzoKICAgICBjbGFzcyBPYnNlcnZlciB7CiAgICAgcHVibGljOgpAQCAtMjAwLDYgKzIwMCw4IEBA
IHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgYXBwbHlDb25zdHJhaW50cyhjb25zdCBGbGF0
dGVuZWRDb25zdHJhaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIGFwcGx5U2l6ZUFuZEZyYW1lUmF0
ZShzdGQ6Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0aW9uYWw8aW50PiBoZWlnaHQsIHN0
ZDo6b3B0aW9uYWw8ZG91YmxlPik7CiAKKyAgICBjb25zdCBWZWN0b3I8T2JzZXJ2ZXIqPiBvYnNl
cnZlcnMoKSBjb25zdCB7IHJldHVybiBtX29ic2VydmVyczsgfQorCiAgICAgYm9vbCBtX211dGVk
IHsgZmFsc2UgfTsKICAgICBib29sIG1fZW5hYmxlZCB7IHRydWUgfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3Rz
LnR4dAppbmRleCBiMWNlZTE0NTM5OWRiMGIxNTdmMTIwNGM3Y2ZlZDJjYWY1M2Y2YmU5Li4yZjNm
ODNiYmM4YTE1OTNiZTc4YmMxY2EzNjgwNzAzNzI1Mjc2NDY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4
dApAQCAtNjI5LDYgKzYyOSw4IEBAIHNldChXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCiAKICAg
ICBVSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5tZXNzYWdlcy5pbgog
CisgICAgVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4KKwogICAgIFVJUHJvY2Vzcy9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW4KIAogICAgIFVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5tZXNzYWdl
cy5pbgpAQCAtNjU3LDYgKzY1OSw4IEBAIHNldChXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCiAK
ICAgICBXZWJQcm9jZXNzL0ljb25EYXRhYmFzZS9XZWJJY29uRGF0YWJhc2VQcm94eS5tZXNzYWdl
cy5pbgogCisgICAgV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFDYXB0dXJlU2Vzc2lv
bk1hbmFnZXIubWVzc2FnZXMuaW4KKwogICAgIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2Vi
UlRDTW9uaXRvci5tZXNzYWdlcy5pbgogICAgIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2Vi
UlRDUmVzb2x2ZXIubWVzc2FnZXMuaW4KICAgICBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dl
YlJUQ1NvY2tldC5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGVyaXZl
ZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXgg
OTk0OTJmZmFlYTE0NGVlNGM3ZjRlNWVlNWQ5MWUzZjY2YjhiNWU1MC4uOWRlZjM3MDRiNzRkNDU4
OGJhZGMwYjQyYzEyMDcwN2NhZmQ5MWM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGVy
aXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtl
CkBAIC00NSw2ICs0NSw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9H
ZW9sb2NhdGlvbiBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZSBcCiAg
ICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL01lZGlhQ2FjaGUgXAorICAgICQoV2ViS2l0MikvV2Vi
UHJvY2Vzcy9NZWRpYVN0cmVhbSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL05ldHdvcmsg
XAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0YyBcCiAgICAgJChXZWJL
aXQyKS9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMgXApAQCAtNjUsNiArNjYsNyBAQCBWUEFUSCA9
IFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9Db2NvYSBcCiAgICAgJChXZWJLaXQyKS9VSVBy
b2Nlc3MvRGF0YWJhc2VzIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9Eb3dubG9hZHMgXAor
ICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL01lZGlhU3RyZWFtIFwKICAgICAkKFdlYktpdDIpL1VJ
UHJvY2Vzcy9OZXR3b3JrIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3Rv
bVByb3RvY29scyBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucyBcCkBA
IC0xMjEsNiArMTIzLDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgU21hcnRNYWduaWZp
Y2F0aW9uQ29udHJvbGxlciBcCiAgICAgU3RvcmFnZUFyZWFNYXAgXAogICAgIFN0b3JhZ2VNYW5h
Z2VyIFwKKyAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciBcCisgICAgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eSBcCiAgICAgVmlld0dlc3R1cmVDb250cm9sbGVyIFwKICAgICBWaWV3R2Vz
dHVyZUdlb21ldHJ5Q29sbGVjdG9yIFwKICAgICBWaWV3VXBkYXRlRGlzcGF0Y2hlciBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAppbmRl
eCA3ZmY3NzAyOGJmYjVjMDU1ZDhlYjJkNmEwNTIxODg0OGZhZDZjNTlhLi5iOWMxNTlkYjA4NmVi
MjU2NzFhNGViYzgzNjJiZjIwNDk3Mjk1ZDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKQEAgLTEwMyw2ICsxMDMsMTIgQEAKICNk
ZWZpbmUgREVGQVVMVF9DQU5WQVNfVVNFU19BQ0NFTEVSQVRFRF9EUkFXSU5HIHRydWUKICNlbmRp
ZgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisjZGVmaW5lIERFRkFVTFRfU0hPVUxEX0NBUFRVUkVf
QVVESU9fSU5fVUlQUk9DRVNTIHRydWUKKyNlbHNlCisjZGVmaW5lIERFRkFVTFRfU0hPVUxEX0NB
UFRVUkVfQVVESU9fSU5fVUlQUk9DRVNTIGZhbHNlCisjZW5kaWYKKwogLy8gbWFjcm8oS2V5VXBw
ZXIsIEtleUxvd2VyLCBUeXBlTmFtZVVwcGVyLCBUeXBlTmFtZSwgRGVmYXVsdFZhbHVlLCBIdW1h
blJlYWRhYmxlTmFtZSwgSHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uKQogCiAjZGVmaW5lIEZPUl9F
QUNIX1dFQktJVF9CT09MX1BSRUZFUkVOQ0UobWFjcm8pIFwKQEAgLTI1Miw2ICsyNTgsNyBAQAog
ICAgIG1hY3JvKEdhbWVwYWRzRW5hYmxlZCwgZ2FtZXBhZHNFbmFibGVkLCBCb29sLCBib29sLCB0
cnVlLCAiR2FtZXBhZHMiLCAiV2ViIEdhbWVwYWQgQVBJIHN1cHBvcnQiKSBcCiAgICAgbWFjcm8o
SW5wdXRFdmVudHNFbmFibGVkLCBpbnB1dEV2ZW50c0VuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUs
ICJJbnB1dCBFdmVudHMiLCAiRW5hYmxlIElucHV0RXZlbnRzIHN1cHBvcnQiKSBcCiAgICAgbWFj
cm8oQ3JlZGVudGlhbE1hbmFnZW1lbnRFbmFibGVkLCBjcmVkZW50aWFsTWFuYWdlbWVudEVuYWJs
ZWQsIEJvb2wsIGJvb2wsIGZhbHNlLCAiQ3JlZGVudGlhbCBNYW5hZ2VtZW50IiwgIkVuYWJsZSBD
cmVkZW50aWFsIE1hbmFnZW1lbnQgc3VwcG9ydCIpIFwKKyAgICBtYWNybyhTaG91bGRDYXB0dXJl
QXVkaW9JblVJUHJvY2Vzcywgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MsIEJvb2wsIGJv
b2wsIERFRkFVTFRfU0hPVUxEX0NBUFRVUkVfQVVESU9fSU5fVUlQUk9DRVNTLCAiQ2FwdHVyZSIs
ICJDYXB0dXJlIEF1ZGlvIGluIFVJUHJvY2VzcyIpIFwKICAgICBcCiAKICNkZWZpbmUgRk9SX0VB
Q0hfV0VCS0lUX0RPVUJMRV9QUkVGRVJFTkNFKG1hY3JvKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggNTEy
ZDIxMmQ4NGEwMTE4MDhjMjlhOGI1MTg0MTllMjBhNTE3NmIxYy4uZjMzZWE2YzBhODNiNDliMDFl
N2ExNmFjZDVhMTFlYmE5YzMxMTYzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNjgsNiArNjgsNyBAQCB2
b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBtZWRpYUtleVN0b3JhZ2VEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGU7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBlbmNvZGVyIDw8IGF1
ZGlvQ2FwdHVyZUV4dGVuc2lvbkhhbmRsZTsKKyAgICBlbmNvZGVyIDw8IHNob3VsZENhcHR1cmVB
dWRpb0luVUlQcm9jZXNzOwogI2VuZGlmCiAgICAgZW5jb2RlciA8PCBzaG91bGRVc2VUZXN0aW5n
TmV0d29ya1Nlc3Npb247CiAgICAgZW5jb2RlciA8PCB1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzRW1w
dHlEb2N1bWVudDsKQEAgLTE4OSw2ICsxOTAsOCBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVhdAog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0
ZXJzLmF1ZGlvQ2FwdHVyZUV4dGVuc2lvbkhhbmRsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuc2hvdWxkQ2FwdHVyZUF1ZGlvSW5V
SVByb2Nlc3MpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHBhcmFtZXRlcnMuc2hvdWxkVXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggYTNlNjJjZjlkNDMxZjQwYmRjYTdhNWM4
MDBjYzU3MDU5NzFjOGU5NC4uZmQ4MDZiMjIwMjQ3OWUxNjA0ODYxZGY5OGUwOGNhYjFhMWFhNjBk
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oCkBAIC04OCw2ICs4OCw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzIHsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgbWVkaWFLZXlTdG9yYWdl
RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAg
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGF1ZGlvQ2FwdHVyZUV4dGVuc2lvbkhhbmRsZTsKKyAg
ICBib29sIHNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzIHsgZmFsc2UgfTsKICNlbmRpZgog
ICAgIFN0cmluZyBtZWRpYUtleVN0b3JhZ2VEaXJlY3Rvcnk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjIxYTE2N2M3ZGU1Y2FhZGJlNzY3YzJjNmJhYmY2YWI1
Y2MwMDIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC0wLDAgKzEsMTU0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRlICJV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9DQVJpbmdCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHNJ
bXBsLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KKyNpbmNsdWRlIDx3dGYvVW5p
cXVlUmVmLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHkgOiBw
dWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIsIHB1YmxpYyBTaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZTo6Q2xpZW50IHsKK3B1YmxpYzoKKyAgICBTb3VyY2VQcm94eSh1aW50NjRfdCBp
ZCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSYgbWFuYWdlciwgUmVmPFJlYWx0aW1lTWVk
aWFTb3VyY2U+JiYgc291cmNlKQorICAgICAgICA6IG1faWQoaWQpCisgICAgICAgICwgbV9tYW5h
Z2VyKG1hbmFnZXIpCisgICAgICAgICwgbV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQorICAgICAg
ICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPiht
YWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPih0aGlzKSkpCisgICAgeworICAg
ICAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworICAgIH0KKworICAgIH5Tb3VyY2VQ
cm94eSgpCisgICAgeworICAgICAgICBzdG9yYWdlKCkuaW52YWxpZGF0ZSgpOworICAgICAgICBt
X3NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworICAgIH0KKworICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2UmIHNvdXJjZSgpIHsgcmV0dXJuIG1fc291cmNlOyB9CisgICAgU2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci5zdG9yYWdlKCkpOyB9CisgICAgQ0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbigpIHsgcmV0dXJuIG1fZGVzY3JpcHRpb247IH0KKyAg
ICBpbnQ2NF90IG51bWJlck9mRnJhbWVzKCkgeyByZXR1cm4gbV9udW1iZXJPZkZyYW1lczsgfQor
CisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWwgeworICAgICAgICBtX21hbmFnZXIucHJv
Y2VzcygpLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2VTdG9w
cGVkKG1faWQpLCAwKTsKKyAgICB9CisKKyAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZCgpIGZp
bmFsIHsKKyAgICAgICAgbV9tYW5hZ2VyLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6U291cmNlTXV0ZWRDaGFuZ2VkKG1faWQsIG1fc291cmNlLT5tdXRl
ZCgpKSwgMCk7CisgICAgfQorCisgICAgdm9pZCBzb3VyY2VFbmFibGVkQ2hhbmdlZCgpIGZpbmFs
IHsKKyAgICAgICAgbV9tYW5hZ2VyLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlcjo6U291cmNlRW5hYmxlZENoYW5nZWQobV9pZCwgbV9zb3VyY2UtPmVuYWJs
ZWQoKSksIDApOworICAgIH0KKworICAgIHZvaWQgc291cmNlU2V0dGluZ3NDaGFuZ2VkKCkgZmlu
YWwgeworICAgICAgICBtX21hbmFnZXIucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2VTZXR0aW5nc0NoYW5nZWQobV9pZCwgbV9zb3VyY2UtPnNl
dHRpbmdzKCkpLCAwKTsKKyAgICB9CisKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShj
b25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEs
IGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgbnVtYmVy
T2ZGcmFtZXMpIGZpbmFsIHsKKyAgICAgICAgaWYgKG1fZGVzY3JpcHRpb24gIT0gZGVzY3JpcHRp
b24pIHsKKyAgICAgICAgICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9u
KCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsK
KyAgICAgICAgICAgIG1fZGVzY3JpcHRpb24gPSAqV1RGOjpnZXQ8Y29uc3QgQXVkaW9TdHJlYW1C
YXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLmRlc2Ny
aXB0aW9uKTsKKyAgICAgICAgICAgIG1fbnVtYmVyT2ZGcmFtZXMgPSBtX2Rlc2NyaXB0aW9uLnNh
bXBsZVJhdGUoKSAqIDI7CisgICAgICAgICAgICBtX3JpbmdCdWZmZXIuYWxsb2NhdGUobV9kZXNj
cmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpLCBtX251bWJlck9mRnJhbWVzKTsKKyAgICAgICAg
fQorCisgICAgICAgIEFTU0VSVChpczxXZWJBdWRpb0J1ZmZlckxpc3Q+KGF1ZGlvRGF0YSkpOwor
ICAgICAgICBtX3JpbmdCdWZmZXIuc3RvcmUoZG93bmNhc3Q8V2ViQXVkaW9CdWZmZXJMaXN0Pihh
dWRpb0RhdGEpLmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOworICAg
ICAgICB1aW50NjRfdCBzdGFydEZyYW1lOworICAgICAgICB1aW50NjRfdCBlbmRGcmFtZTsKKyAg
ICAgICAgbV9yaW5nQnVmZmVyLmdldEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRG
cmFtZSk7CisgICAgICAgIG1fbWFuYWdlci5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OlJpbmdCdWZmZXJGcmFtZUJvdW5kc0NoYW5nZWQobV9pZCwgc3Rh
cnRGcmFtZSwgZW5kRnJhbWUpLCAwKTsKKworICAgICAgICBtX21hbmFnZXIucHJvY2VzcygpLnNl
bmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb1NhbXBsZXNBdmFpbGFi
bGUobV9pZCwgdGltZSwgbnVtYmVyT2ZGcmFtZXMpLCAwKTsKKyAgICB9CisKKyAgICB2b2lkIHN0
b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSogc3RvcmFnZSkgZmluYWwgeworICAgICAgICBTaGFy
ZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7CisgICAgICAgIGlmIChzdG9yYWdlKQorICAgICAgICAg
ICAgc3RvcmFnZS0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9u
OjpSZWFkT25seSk7CisgICAgICAgIG1fbWFuYWdlci5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlN0b3JhZ2VDaGFuZ2VkKG1faWQsIGhhbmRsZSwgbV9k
ZXNjcmlwdGlvbiwgbV9udW1iZXJPZkZyYW1lcyksIDApOworICAgIH0KKworcHJvdGVjdGVkOgor
ICAgIHVpbnQ2NF90IG1faWQ7CisgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSYgbV9t
YW5hZ2VyOworICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKKyAgICBDQVJp
bmdCdWZmZXIgbV9yaW5nQnVmZmVyOworICAgIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rl
c2NyaXB0aW9uIHsgfTsKKyAgICBpbnQ2NF90IG1fbnVtYmVyT2ZGcmFtZXMgeyAwIH07Cit9Owor
CitVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5KFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcykKKyAgICA6IG1fcHJvY2Vzcyhwcm9jZXNzKQor
eworICAgIG1fcHJvY2Vzcy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMpOworfQorCitV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Ojp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eSgpCit7CisgICAgbV9wcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKK30KKwor
dm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNh
cHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IENhcHR1cmVEZXZp
Y2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50c0RhdGEmIGNvbnN0cmFpbnRzRGF0YSwg
Ym9vbCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cykKK3sKKyAgICBhdXRv
IGNvbnN0cmFpbnRzID0gTWVkaWFDb25zdHJhaW50c0ltcGw6OmNyZWF0ZShjb25zdHJhaW50c0Rh
dGEpOworICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBzb3VyY2UgPSBSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5kZWZhdWx0QXVkaW9GYWN0b3J5KCktPmNyZWF0
ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhkZXZpY2UsIGNvbnN0
cmFpbnRzLnB0cigpLCBpbnZhbGlkQ29uc3RyYWludHMpOworICAgIHN1Y2NlZWRlZCA9ICEhc291
cmNlOworICAgIAorICAgIGlmIChzb3VyY2UpCisgICAgICAgIG1fcHJveGllcy5zZXQoaWQsIHN0
ZDo6bWFrZV91bmlxdWU8U291cmNlUHJveHk+KGlkLCAqdGhpcywgc291cmNlLnJlbGVhc2VOb25O
dWxsKCkpKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzdGFydFBy
b2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCit7CisgICAgYXV0byBpdGVyID0gbV9wcm94aWVzLmZp
bmQoaWQpOworICAgIGlmIChpdGVyICE9IG1fcHJveGllcy5lbmQoKSkKKyAgICAgICAgaXRlci0+
dmFsdWUtPnNvdXJjZSgpLnN0YXJ0UHJvZHVjaW5nRGF0YSgpOworfQorCit2b2lkIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHk6OnN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQorewor
ICAgIGF1dG8gaXRlciA9IG1fcHJveGllcy5maW5kKGlkKTsKKyAgICBpZiAoaXRlciAhPSBtX3By
b3hpZXMuZW5kKCkpCisgICAgICAgIGl0ZXItPnZhbHVlLT5zb3VyY2UoKS5zdG9wUHJvZHVjaW5n
RGF0YSgpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODExMzIxZGJhY2EwNDc1ZWQ0NzlmMmJiZmJiMzVlNTY2NGQ4ZjZkMgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5LmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNs
dWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVk
ZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBTaGFyZWRNZW1vcnk7CitjbGFzcyBXZWJQcm9jZXNzUHJveHk7CisKK2NsYXNzIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkgOiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK3B1
YmxpYzoKKyAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KFdlYlByb2Nlc3NQcm94eSYp
OworICAgIH5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCk7CisKKyAgICBXZWJQcm9jZXNz
UHJveHkmIHByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX3Byb2Nlc3M7IH0KKworcHJpdmF0ZToK
KyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisgICAgdm9pZCBkaWRSZWNl
aXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlx
dWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBmaW5hbDsKKworICAgIHZvaWQgY3JlYXRlTWVkaWFTb3Vy
Y2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEm
LCBib29sJiBzdWNjZWVkZWQsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnRzKTsKKyAgICB2b2lk
IHN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CisgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0
YSh1aW50NjRfdCk7CisKKyAgICBjbGFzcyBTb3VyY2VQcm94eTsKKyAgICBmcmllbmQgY2xhc3Mg
U291cmNlUHJveHk7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRyPFNvdXJj
ZVByb3h5Pj4gbV9wcm94aWVzOworICAgIFdlYlByb2Nlc3NQcm94eSYgbV9wcm9jZXNzOworfTsK
KworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzRiOGNiYjdiOGE2OWI3M2IzOTdhOWU5ZDJiY2MwZTcwYjEzMTE1Zgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjggQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+IFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkgeworICAgIENyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmlj
ZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZp
Y2UsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSBjb25zdHJhaW50cykgLT4g
KGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cykKKyAgICBTdGFydFByb2R1
Y2luZ0RhdGEodWludDY0X3QgaWQpCisgICAgU3RvcFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQp
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vz
c1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UG9vbENvY29hLm1tCmluZGV4IDg3MzhmMDcwNjM3ZjQ5MGYxZjA4NmMwOTliOTM3NGU3NDBlY2M3
ZWUuLmY0NzNiNWQ4MTIxOGViZjJmMDJhOWFmZmZiYWE1ZTE0OTk5YjhhZjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1t
CkBAIC0yNTgsNiArMjU4LDggQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFs
aXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJgogICAgIC8vIEZJWE1F
OiBSZW1vdmUgdGhpcyBhbmQgcmVsYXRlZCBwYXJhbWV0ZXIgd2hlbiA8cmRhcjovL3Byb2JsZW0v
Mjk0NDgzNjg+IGlzIGZpeGVkLgogICAgIGlmIChtZWRpYVN0cmVhbUVuYWJsZWQgfHwgd2ViUlRD
RW5hYmxlZCkKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yR2VuZXJp
Y0V4dGVuc2lvbigiY29tLmFwcGxlLndlYmtpdC5taWNyb3Bob25lIiwgcGFyYW1ldGVycy5hdWRp
b0NhcHR1cmVFeHRlbnNpb25IYW5kbGUpOworCisgICAgcGFyYW1ldGVycy5zaG91bGRDYXB0dXJl
QXVkaW9JblVJUHJvY2VzcyA9IG1fZGVmYXVsdFBhZ2VHcm91cC0+cHJlZmVyZW5jZXMoKS5zaG91
bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcygpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggNWZmNjRkNjQ4YzRiNzg0MjVm
ZDkxMjcwNjM0N2YyODc4Zjk0ZTUwMC4uY2QxZGNkN2Q1NmVjNjc3ZDI0Yzk3OTk2Zjc4ZDRiZDEw
MjU3ZDU5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUg
IlRleHRDaGVja2VyU3RhdGUuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5oIgorI2luY2x1ZGUgIlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExp
c3RJdGVtLmgiCiAjaW5jbHVkZSAiV2ViSWNvbkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiV2ViSW5z
cGVjdG9yVXRpbGl0aWVzLmgiCkBAIC0xMDQsOSArMTA1LDE0IEBAIFdlYlByb2Nlc3NQcm94eTo6
V2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgV2Vic2l0ZURhdGFT
dG9yZSoKICAgICAsIG1faXNSZXNwb25zaXZlKE5vT3JNYXliZTo6TWF5YmUpCiAgICAgLCBtX3Zp
c2libGVQYWdlQ291bnRlcihbdGhpc10oUmVmQ291bnRlckV2ZW50KSB7IHVwZGF0ZUJhY2tncm91
bmRSZXNwb25zaXZlbmVzc1RpbWVyKCk7IH0pCiAgICAgLCBtX3dlYnNpdGVEYXRhU3RvcmUod2Vi
c2l0ZURhdGFTdG9yZSkKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKyAgICAsIG1fdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eShzdGQ6Om1ha2VfdW5pcXVl
PFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk+KCp0aGlzKSkKKyNlbmRpZgogewogICAgIFdl
YlBhc3RlYm9hcmRQcm94eTo6c2luZ2xldG9uKCkuYWRkV2ViUHJvY2Vzc1Byb3h5KCp0aGlzKTsK
IAorCisKICAgICBjb25uZWN0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuaAppbmRleCBmNWU2MWFhMDAxODA2Nzc0ODJhZjM3MDdkY2JkYjE5OTUxN2Zh
ZjZhLi5iMzI4ODE1Y2YxNjQyN2Y4YWM2ZGQ2NjZmM2E5NTcyZGFhNzFjOTNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC01Niw2ICs1Niw3IEBAIHN0
cnVjdCBQbHVnaW5JbmZvOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtQcm9j
ZXNzUHJveHk7CitjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OwogY2xhc3MgV2Vi
QmFja0ZvcndhcmRMaXN0SXRlbTsKIGNsYXNzIFdlYlBhZ2VHcm91cDsKIGNsYXNzIFdlYlByb2Nl
c3NQb29sOwpAQCAtMjczLDYgKzI3NCwxMCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJzaXRl
RGF0YVN0b3JlPiBtX3dlYnNpdGVEYXRhU3RvcmU7CiAKICAgICBib29sIG1faXNVbmRlck1lbW9y
eVByZXNzdXJlIHsgZmFsc2UgfTsKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5PiBtX3VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7CisjZW5kaWYKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDEzZTQxYzYyMmEyZDk2OWUzYmE4NjMzZTBhN2IzZWVlOWY1
YWVjYmUuLmVkYTc3ZDgxY2RjZGM5Yjk5MmNhZWQ4OThmOWI3ZjAyMDc0MjZhOGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE4
NzksMTEgKzE4NzksMTggQEAKIAkJQ0QwMDNBNTMxOUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlh
S2V5U3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEMDAzQTUxMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VN
YW5hZ2VyLmggKi87IH07CiAJCUNEMTlBMjZEMUExM0U4MkEwMDhENjUwRSAvKiBXZWJEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDE5QTI2OTFBMTNFODIwMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQuY3BwICovOyB9OwogCQlDRDE5QTI2RTFBMTNFODM0MDA4RDY1MEUgLyogV2ViRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEMTlBMjZBMUExM0U4MjEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5oICovOyB9OworCQlDRDQ5MUIwNzFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0Q0OTFCMDUxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmNwcCAqLzsgfTsKKwkJQ0Q0OTFCMDgxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDQ5MUIwNjFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuaCAqLzsgfTsKKwkJQ0Q0OTFCMEQxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENENDkxQjBCMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCUNENDkxQjBFMUU3MzJF
NEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ5MUIwQzFFNzMyRTREMDAw
MDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oICovOyB9OworCQlDRDQ5
MUIxMjFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ5MUIxMDFF
NzM0ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgKi87IH07
CisJCUNENDkxQjEzMUU3MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ5
MUIxMTFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oICov
OyB9OworCQlDRDQ5MUIxNzFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRDQ5MUIxNTFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCUNENDkxQjE4MUU3
MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENDkxQjE2MUU3
MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCAq
LzsgfTsKIAkJQ0Q0QjREOUMxRTc2NUUwMDAwRDI3MDkyIC8qIFNoYXJlZFJpbmdCdWZmZXJTdG9y
YWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
NEI0RDlBMUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5jcHAgKi87
IH07CiAJCUNENEI0RDlEMUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFyZWRSaW5nQnVmZmVyU3RvcmFn
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0QjRE
OUIxRTc2NUUwMDAwRDI3MDkyIC8qIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmggKi87IH07CiAJ
CUNENUM2NkEwMTM0QjlEMzgwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVu
Q2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENENUM2NjlFMTM0QjlEMzYwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVu
Q2xpZW50LmNwcCAqLzsgfTsKIAkJQ0Q1QzY2QTExMzRCOUQzODAwNEZFMkE4IC8qIEluamVjdGVk
QnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENENUM2NjlGMTM0QjlEMzcwMDRGRTJBOCAvKiBJbmplY3RlZEJ1
bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmggKi87IH07Ci0JCUNENjE3ODE0MUU2REU5QTAwMEZE
QTU3RCAvKiBXZWJVc2VyTWVkaWFDbGllbnRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDYxNzgxMjFFNkRFOUEwMDBGREE1N0QgLyogV2ViVXNl
ck1lZGlhQ2xpZW50TWFjLm1tICovOyB9OwogCQlDRDZGNzVGNDEzMUI2NkQwMDBENkIyMUUgLyog
V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDczQkEzRTEzMUEyRThBMDBFRURFRDIgLyogV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eS5jcHAgKi87IH07CiAJCUNENzNCQTQ3MTMxQUNDOUEwMEVFREVEMiAv
KiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENzNCQTQ1MTMxQUNDODgwMEVF
REVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsg
fTsKIAkJQ0Q3M0JBNEUxMzFBQ0RCNzAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENENzNCQTQ4MTMxQUNEOEUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CkBAIC00MTY5LDExICs0MTc2LDIwIEBACiAJCUNEMDAz
QTUxMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaDsg
cGF0aCA9IE1lZGlhQ2FjaGUvV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDRDE5QTI2OTFBMTNFODIwMDA4RDY1MEUgLyogV2ViRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDRDE5QTI2QTFBMTNFODIxMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFCMDUxRTcw
RDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFCMDYxRTcwRDA1RjAwMDA5MDY2IC8qIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNENDkxQjBBMUU3MzJEMTIwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNz
YWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFCMEIxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFCMEMxRTczMkU0RDAwMDA5
MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ5MUIxMDFFNzM0ODIxMDAwMDkwNjYgLyogVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDsgcGF0aCA9IC4uL0Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDRDQ5MUIxMTFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5Lmg7IHBhdGggPSAuLi9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENDkxQjE0MUU3MzQ5
RjMwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFt
ZSA9IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHBhdGggPSAuLi9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDRDQ5MUIxNTFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFCMTYxRTczNTI1
NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q0QjREOUExRTc2NUUw
MDAwRDI3MDkyIC8qIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q0QjREOUIxRTc2NUUwMDAwRDI3MDkyIC8qIFNoYXJl
ZFJpbmdCdWZmZXJTdG9yYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
NUM2NjlFMTM0QjlEMzYwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xp
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVu
ZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDRDVDNjY5RjEzNEI5RDM3MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVl
bkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRs
ZVBhZ2VGdWxsU2NyZWVuQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUNE
NjE3ODEyMUU2REU5QTAwMEZEQTU3RCAvKiBXZWJVc2VyTWVkaWFDbGllbnRNYWMubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJVc2VyTWVkaWFDbGllbnRNYWMu
bW07IHBhdGggPSBjb2NvYS9XZWJVc2VyTWVkaWFDbGllbnRNYWMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNENzNCQTM3MTMxQTI5RkUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVu
TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJGdWxs
U2NyZWVuTWFuYWdlci5jcHA7IHBhdGggPSBGdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2Vy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q3M0JBMzgxMzFBMjlGRTAwRUVE
RUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmg7IHBhdGggPSBGdWxsU2NyZWVuL1dlYkZ1bGxT
Y3JlZW5NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENzNCQTM5MTMx
QTI5RkUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IG5hbWUgPSBXZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbjsgcGF0aCA9
IEZ1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC02MjgxLDYgKzYyOTcsOSBAQAogCQk3QzZFNzBGODE4QjJENDdF
MDBGMjRFMkUgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKAorCQkJCUNENDkxQjA1MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5jcHAgKi8sCisJCQkJQ0Q0OTFCMDYxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmggKi8sCisJCQkJQ0Q0OTFCMEExRTczMkQxMjAwMDA5MDY2IC8qIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJCUNEQTI5QTE5MUNCREJGNDEw
MDkwMUNDRiAvKiBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLmggKi8sCiAJCQkJQ0RBMjlBMUMx
Q0JEQkY1QjAwOTAxQ0NGIC8qIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIubWVzc2FnZXMuaW4g
Ki8sCiAJCQkJQ0RBMjlBMTgxQ0JEQkY0MTAwOTAxQ0NGIC8qIFdlYlBsYXliYWNrU2Vzc2lvbk1h
bmFnZXIubW0gKi8sCkBAIC03NDQ4LDYgKzc0NjcsOSBAQAogCQkJCTFBQTQxN0VEMTJDMDBEODcw
MDJCRTY3QiAvKiBUZXh0Q2hlY2tlck1hYy5tbSAqLywKIAkJCQkxQUYwNUQ4NTE0Njg4MzQ4MDA4
QjFFODEgLyogVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oICovLAogCQkJCTFB
RjA1RDg0MTQ2ODgzNDgwMDhCMUU4MSAvKiBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVBy
b3h5Lm1tICovLAorCQkJCUNENDkxQjEwMUU3MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmNwcCAqLywKKwkJCQlDRDQ5MUIxMTFFNzM0ODIxMDAwMDkwNjYgLyog
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oICovLAorCQkJCUNENDkxQjE0MUU3MzQ5RjMw
MDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovLAog
CQkJCTJEMTI1QzVEMTg1N0VBMDUwMDNCQTNDQiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNYWMu
bW0gKi8sCiAJCQkJMkQ2Q0QxMTcxODkwNThBNTAwRTVBNEEwIC8qIFZpZXdTbmFwc2hvdFN0b3Jl
LmggKi8sCiAJCQkJMkQ2Q0QxMTgxODkwNThBNTAwRTVBNEEwIC8qIFZpZXdTbmFwc2hvdFN0b3Jl
Lm1tICovLApAQCAtNzY5MCw2ICs3NzEyLDEwIEBACiAJCQkJMUEzMzRERUMxNkRFOEY4ODAwNkE4
RTM4IC8qIFN0b3JhZ2VBcmVhTWFwTWVzc2FnZXMuaCAqLywKIAkJCQkxQUIzMUE5NDE2QkM2ODgx
MDBGNkRCQzkgLyogU3RvcmFnZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFB
QjMxQTk1MTZCQzY4ODEwMEY2REJDOSAvKiBTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJ
CQkJQ0Q0OTFCMTUxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUNENDkxQjE2MUU3MzUyNTUwMDAwOTA2NiAv
KiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLywKKwkJCQlDRDQ5MUIw
QjFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwICovLAorCQkJCUNENDkxQjBDMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlck1lc3NhZ2VzLmggKi8sCiAJCQkJMkQxQjVENUIxODU4NjlDODAwNkM2NTk2IC8q
IFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMkQxQjVE
NUMxODU4NjlDODAwNkM2NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VzLmggKi8s
CiAJCQkJMkQ4MTlCOUYxODYyODAwRTAwMUYwM0QxIC8qIFZpZXdHZXN0dXJlR2VvbWV0cnlDb2xs
ZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtNzgyNCw3ICs3ODUwLDYgQEAKIAkJQ0Q2
MTc4MTExRTZERTk4MDAwRkRBNTdEIC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKLQkJCQlDRDYxNzgxMjFFNkRFOUEwMDBGREE1N0QgLyogV2ViVXNl
ck1lZGlhQ2xpZW50TWFjLm1tICovLAogCQkJKTsKIAkJCW5hbWUgPSBjb2NvYTsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC04MDQ5LDYgKzgwNzQsNyBAQAogCQkJCTdDMjQxMzAzMUFB
Q0ZBNzUwMEE1OEMxNSAvKiBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3QzI0MTMwNTFBQUNGQTlDMDBBNThDMTUgLyogX1dLVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0EzNzkzRTFBQzM3OEIz
MDA3OURDMzcgLyogX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVByaXZhdGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUNENDkxQjEzMUU3MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQk3Qzg5RDJCQTFBNkIwRjJDMDAzQTVG
REUgLyogX1dLVXNlckNvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDODlEMkJD
MUE2QjBGNUIwMDNBNUZERSAvKiBfV0tVc2VyQ29udGVudEZpbHRlckludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk3QTgyMUY1MDFFMkY3QTc1MDA2MDQ1NzcgLyogQVBJQ3VzdG9tUHJvdG9j
b2xNYW5hZ2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTgwNTYsNiArODA4Miw3IEBACiAJ
CQkJN0M4ODJERjkxQzdFOTk2RjAwNkJGNzMxIC8qIF9XS1VzZXJDb250ZW50V29ybGRJbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NCMzY1QUExRDMxREI3MDAwNzE1OENBIC8qIF9XS1Vz
ZXJJbml0aWF0ZWRBY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTdDQjM2NUFEMUQzMURDMTAw
MDcxNThDQSAvKiBfV0tVc2VySW5pdGlhdGVkQWN0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LAorCQkJCUNENDkxQjBFMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDg3ODYxRDFCREI1NEJGMDBEMDJBQkIg
LyogX1dLVXNlclN0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEODc4NjIwMUJEQjU3
RjUwMEQwMkFCQiAvKiBfV0tVc2VyU3R5bGVTaGVldEludGVybmFsLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQTgxQjM4MTE4QkQ2NkFEMDAwN0ZEQUMgLyogX1dLVmlzaXRlZExpbmtTdG9yZS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC04MTAxLDYgKzgxMjgsNyBAQAogCQkJCTFBMjQ2NEYzMTg5MUU0NTEw
MDIzNEM1QiAvKiBBUElMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRDNBNDgz
MUE1RDAyRkEwMDk2MjNCOCAvKiBBUElOYXZpZ2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQky
REY5RUVFQzFBNzgzNkVFMDBCNkNGQkUgLyogQVBJTmF2aWdhdGlvbkFjdGlvbi5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQ0Q0OTFCMDgxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREQ5RUIyRDFBNkYwMTI1MDBCQjEyNjcgLyog
QVBJTmF2aWdhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNGNjlGQTIxMTc2RDAx
NDAwNDcxQTUyIC8qIEFQSU5hdmlnYXRpb25EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREY5
RUVFRTFBNzg2RUFEMDBCNkNGQkUgLyogQVBJTmF2aWdhdGlvblJlc3BvbnNlLmggaW4gSGVhZGVy
cyAqLywKQEAgLTg0MjIsNiArODQ1MCw3IEBACiAJCQkJRTE4RTY5MEMxNjlCNTYzRjAwOUI2Njcw
IC8qIFNlY0l0ZW1TaGltUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxOEU2OTE4MTY5QjY2
N0IwMDlCNjY3MCAvKiBTZWNJdGVtU2hpbVByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxNEQ5RjU3MTkxMTlEMzUwMDAwNjNBNyAvKiBTZXJ2aWNlc0NvbnRyb2xsZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUNENDkxQjE4MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzA3NUFCMURF
ODVGMzMwMDM5RUM2OSAvKiBOZXR3b3JrUlRDU29ja2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QUZERTY1QTE5NTRBNDJCMDBDNDhGRkEgLyogU2Vzc2lvblN0YXRlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQTAwMkQ0OTE5NkIzNDVEMDBCOUFENDQgLyogU2Vzc2lvblN0YXRlQ29kaW5nLmggaW4g
SGVhZGVycyAqLywKQEAgLTk2MDIsNiArOTYzMSw3IEBACiAJCQkJMzczRDEyMjIxOEE0NzMwMTAw
NjZEOUNDIC8qIF9XS0ZyYW1lSGFuZGxlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNBODhCMzkx
QkM3MEYzRjAwQUJBNUMyIC8qIF9XS0hpdFRlc3RSZXN1bHQubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk1MTBGNTkxMjFEREUyOTc3MDA0MTJGRjUgLyogX1dLTGlua0ljb25QYXJhbWV0ZXJzLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJQ0Q0OTFCMEQxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExMThB
OUYyMTkwOEI4RUEwMEY3QzkyQiAvKiBfV0tOU0ZpbGVNYW5hZ2VyRXh0cmFzLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUE0M0U4MjkxODhGM0NEQzAwOUU0RDMwIC8qIF9XS1Byb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBOUUzMjhFMTgyMTY1QTkwMEY1RDA0
QyAvKiBfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UubW0gaW4gU291cmNlcyAqLywKQEAgLTk2MzYs
NiArOTY2Niw3IEBACiAJCQkJOTNBODhCNDcxQkM4ODI5NzAwQUJBNUMyIC8qIEFQSUhpdFRlc3RS
ZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NEM0E0ODIxQTVEMDJGQTAwOTYyM0I4IC8q
IEFQSU5hdmlnYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNGNjlGQTMxMTc2RDAxNDAw
NDcxQTUyIC8qIEFQSU5hdmlnYXRpb25EYXRhLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNENDkx
QjE3MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgzMkVEMThCMUUyRkUxNTcwMDZCQTY0
QSAvKiBQZXJBY3Rpdml0eVN0YXRlQ1BVVXNhZ2VTYW1wbGVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUI2MzQwM0Y5MTQ5MTBENTcwMDEwNzBCNSAvKiBBUElPYmplY3QuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMzc4RTFBM0QxODFFRDZGRjAwMzEwMDdBIC8qIEFQSU9iamVjdC5tbSBpbiBTb3Vy
Y2VzICovLApAQCAtOTY2MCw2ICs5NjkxLDcgQEAKIAkJCQkxQTM2MzVBOTFBMzE0NEEzMDBFRDYx
OTcgLyogQVBJV2Vic2l0ZURhdGFTdG9yZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTM2MzVB
RDFBMzE0NUU1MDBFRDYxOTcgLyogQVBJV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNUNCMjM3OTExREYwRTJFNjAwMTE3QUEzIC8qIEFQSVdlYnNpdGVQb2xpY2ll
cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDQ5MUIxMjFFNzM0ODIxMDAwMDkwNjYgLyogVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTY1NjNF
NDFCN0E4QzUwMDA5Q0Y3ODcgLyogQVBJV2luZG93RmVhdHVyZXMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUFENEMxOTIxQjM5RjMzMjAwQUJDMjhFIC8qIEFwcGxpY2F0aW9uU3RhdGVUcmFja2Vy
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEzRDYxMDUxM0E3RjAzQTAwRjk1RDRFIC8qIEFyZ3Vt
ZW50Q29kZXJzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTk3OSw3ICsxMDAxMSw2IEBACiAJCQkJ
NzUzRTNFMEQxODg3Mzk4NTAwMTg4NDk2IC8qIFNlc3Npb25UcmFja2VyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBNjQyMEU0MTJEQ0UyRkYwMENBQUUyQyAvKiBTaGFyZWFibGVCaXRtYXAuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQzAxQTI2MDExMjY2MkYyMTAwQzlFRDU1IC8qIFNoYXJlYWJs
ZUJpdG1hcENHLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUNENjE3ODE0MUU2REU5QTAwMEZEQTU3
RCAvKiBXZWJVc2VyTWVkaWFDbGllbnRNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTIxNzQ2
MDE2NEMyMEUzMDAzN0E1QzEgLyogU2hhcmVhYmxlUmVzb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDQ1MEFFQzAxREMzRkFFNTAwOTk0M0YyIC8qIFNoYXJlZE1lbW9yeUNvY29hLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTJEQUYwNkQ3MThCRDFBNDcwMDgxQ0VCMSAvKiBTbWFydE1hZ25p
ZmljYXRpb25Db250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0xMDE4Miw2ICsxMDIxMyw3
IEBACiAJCQkJOTlDM0FFMjQxREFEOEUzNzAwQUY1QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9u
TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M0Njk0Q0MxQTRCNTEwQTAwQUQ1ODQ1IC8qIFdl
YlBhc3RlYm9hcmRQcm94eUNvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M0Njk0QzkxQTRC
NEVBMTAwQUQ1ODQ1IC8qIFdlYlBhc3RlYm9hcmRQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlDRDQ5MUIwNzFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFCMUY3NzQxRDFCMkY4QTAwN0M5
QkQxIC8qIFdlYlBheW1lbnRDb29yZGluYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUIx
Rjc5NjFEMUIzNjEzMDA3QzlCRDEgLyogV2ViUGF5bWVudENvb3JkaW5hdG9yTWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQjFGNzhCMUQxQjMzNTUwMDdDOUJEMSAvKiBX
ZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNl
ck1lZGlhQ2xpZW50LmNwcAppbmRleCBhYWRlZDM0NGE3NmFlYTZhYjQ3MTYyZDg5NjhjY2IyYzVm
MDUwYzY3Li4zNjIyMDJlMGVkNjBlNjU3NzRmZmM4NzA3MGNkNTE3M2RiNWNiODZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRp
YUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCkBAIC0zMyw3ICszMyw2IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogV2ViVXNlck1lZGlhQ2xpZW50OjpXZWJVc2VyTWVkaWFDbGllbnQoV2ViUGFnZSYgcGFn
ZSkKICAgICA6IG1fcGFnZShwYWdlKQogewotICAgIGluaXRpYWxpemVGYWN0b3JpZXMoKTsKIH0K
IAogdm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OnBhZ2VEZXN0cm95ZWQoKQpAQCAtNjEsMTMgKzYw
LDYgQEAgdm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OmNhbmNlbE1lZGlhRGV2aWNlc0VudW1lcmF0
aW9uUmVxdWVzdChNZWRpYURldmljZXNFbnVtZXIKICAgICBtX3BhZ2UudXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyKCkuY2FuY2VsTWVkaWFEZXZpY2VzRW51bWVyYXRpb24ocmVxdWVz
dCk7CiB9CiAKLSNpZiAhUExBVEZPUk0oQ09DT0EpCi12b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6
aW5pdGlhbGl6ZUZhY3RvcmllcygpCi17Ci0KLX0KLSNlbmRpZgotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQ7CiAKICNlbmRpZiAvLyBNRURJQV9TVFJFQU0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvY29jb2EvV2ViVXNlck1lZGlhQ2xpZW50TWFj
Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9jb2NvYS9XZWJV
c2VyTWVkaWFDbGllbnRNYWMubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE4ZGYy
ZjEwMTliYTg2ZjZmYTdhMzYxNjA0YTBlYTI3NmJkNzVjMWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9jb2NvYS9XZWJVc2VyTWVkaWFDbGllbnRNYWMubW0KKysrIC9kZXYvbnVsbApA
QCAtMSw2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIldlYlVzZXJNZWRpYUNsaWVudC5oIgotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYg
UExBVEZPUk0oQ09DT0EpCi0KLSNpbXBvcnQgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlci5oPgotI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0KLXVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViVXNlck1lZGlhQ2xp
ZW50QXVkaW9GYWN0b3J5IGZpbmFsIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1
cmVGYWN0b3J5IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgV2ViVXNlck1lZGlhQ2xpZW50QXVkaW9G
YWN0b3J5JiBzaW5nbGV0b24oKQotICAgIHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFdlYlVzZXJNZWRpYUNsaWVudEF1ZGlvRmFjdG9yeT4gZmFjdG9yeTsKLSAgICAgICAgcmV0dXJu
IGZhY3Rvcnk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291
cmNlPiBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoY29u
c3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJh
aW50cywgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMpIGZpbmFsIHsKLSAgICAgICAgYXV0byog
ZmFjdG9yeSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmRlZmF1bHRB
dWRpb0ZhY3RvcnkoKTsKLSAgICAgICAgcmV0dXJuIGZhY3RvcnkgPyBmYWN0b3J5LT5jcmVhdGVN
ZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoZGV2aWNlLCBjb25zdHJh
aW50cywgaW52YWxpZENvbnN0cmFpbnRzKSA6IG51bGxwdHI7Ci0gICAgfQotfTsKLQotdm9pZCBX
ZWJVc2VyTWVkaWFDbGllbnQ6OmluaXRpYWxpemVGYWN0b3JpZXMoKQotewotICAgIHN0YXRpYyBk
aXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOwotICAgIGRpc3BhdGNoX29uY2UoJm9uY2VUb2tlbiwg
XiB7Ci0gICAgICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRv
bigpLnNldEF1ZGlvRmFjdG9yeShXZWJVc2VyTWVkaWFDbGllbnRBdWRpb0ZhY3Rvcnk6OnNpbmds
ZXRvbigpKTsKLSAgICB9KTsKLX0KLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDZhNDFiNGNmMDczYzhiMDIyMTQxYWFjNWQzZjUzOThh
OTk5NTA3ODcuLmExZWE5NmQ3OWM4ZjlhZjI1MDIzMmVjMWYwZDU5MGM2ZTE4NjIzNDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDIsNiArNDIsNyBAQAog
I2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc0RhdGEuaCIK
ICNpbmNsdWRlICJVc2VyRGF0YS5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
LmgiCiAjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oIgogI2luY2x1ZGUgIldl
YkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXIuaCIK
QEAgLTE5MSw2ICsxOTIsMTAgQEAgV2ViUHJvY2Vzczo6V2ViUHJvY2VzcygpCiAgICAgYWRkU3Vw
cGxlbWVudDxXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyPigpOwogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorICAgIGFkZFN1cHBsZW1lbnQ8VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI+KCk7CisjZW5kaWYKKwogICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmFkZChT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPigp
KTsKIAogICAgIFJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWRPYnNlcnZlcigpLnNldFN0YXRp
c3RpY3NTdG9yZShtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jb3B5UmVmKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNDA1MDFmN2FhYjJhNzBlMzQwMmQxODdlNTc1
ZWM4ZmM1MzZjYTkxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTAsMCArMSwyMjUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRlICJVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NhcHR1cmVEZXZpY2UuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHNJbXBsLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9S
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1
ZmZlckxpc3QuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitzdGF0aWMgdWludDY0X3QgbmV4dFNlc3Npb25JRCgpCit7CisgICAgc3RhdGljIHVp
bnQ2NF90IG5leHRJRCA9IDA7CisgICAgcmV0dXJuICsrbmV4dElEOworfQorCitjbGFzcyBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2Ug
eworcHVibGljOgorICAgIFNvdXJjZShjb25zdCBTdHJpbmcmIHNvdXJjZUlELCBUeXBlIHR5cGUs
IGNvbnN0IFN0cmluZyYgbmFtZSwgdWludDY0X3QgaWQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
JiBtYW5hZ2VyKQorICAgICAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2Uoc291cmNlSUQsIHR5cGUs
IG5hbWUpCisgICAgICAgICwgbV9pZChpZCkKKyAgICAgICAgLCBtX21hbmFnZXIobWFuYWdlcikK
KyAgICAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3Rv
cmFnZT4obnVsbHB0cikpCisgICAgeworICAgIH0KKworICAgIH5Tb3VyY2UoKQorICAgIHsKKyAg
ICAgICAgc3RvcmFnZSgpLmludmFsaWRhdGUoKTsKKyAgICB9CisKKyAgICBTaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZSYgc3RvcmFnZSgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFNoYXJlZFJpbmdCdWZm
ZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLnN0b3JhZ2UoKSk7IH0KKyAgICBSZWZQdHI8UmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9jYXBhYmlsaXRpZXM7IH0KKyAgICB2b2lkIHNldENhcGFiaWxpdGllcyhSZWZQdHI8
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKSB7IG1fY2FwYWJp
bGl0aWVzID0gY2FwYWJpbGl0aWVzOyB9CisKKyAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNl
U2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zZXR0aW5nczsgfQor
ICAgIHZvaWQgc2V0U2V0dGluZ3MoY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBz
ZXR0aW5ncykKKyAgICB7CisgICAgICAgIG1fc2V0dGluZ3MgPSBzZXR0aW5nczsKKyAgICAgICAg
c2V0dGluZ3NEaWRDaGFuZ2UoKTsKKyAgICB9CisKKyAgICBjb25zdCBDQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mIGRlc2NyaXB0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZXNjcmlwdGlvbjsgfQor
ICAgIHZvaWQgc2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYgaGFuZGxlLCBj
b25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCB1aW50
NjRfdCBudW1iZXJPZkZyYW1lcykKKyAgICB7CisgICAgICAgIG1fZGVzY3JpcHRpb24gPSBkZXNj
cmlwdGlvbjsKKyAgICAgICAgaWYgKGhhbmRsZS5pc051bGwoKSkgeworICAgICAgICAgICAgbV9y
aW5nQnVmZmVyLmRlYWxsb2NhdGUoKTsKKyAgICAgICAgICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25s
eShmYWxzZSk7CisgICAgICAgICAgICBzdG9yYWdlKCkuc2V0U3RvcmFnZShudWxscHRyKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFJlZlB0cjxTaGFyZWRNZW1v
cnk+IG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90
ZWN0aW9uOjpSZWFkT25seSk7CisgICAgICAgIHN0b3JhZ2UoKS5zZXRTdG9yYWdlKFdURk1vdmUo
bWVtb3J5KSk7CisgICAgICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25seSh0cnVlKTsKKworICAgICAg
ICBtX3JpbmdCdWZmZXIuYWxsb2NhdGUoZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAg
ICB9CisKKyAgICB2b2lkIHNldFJpbmdCdWZmZXJGcmFtZUJvdW5kcyh1aW50NjRfdCBzdGFydEZy
YW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKKyAgICB7CisgICAgICAgIG1fcmluZ0J1ZmZlci5zZXRD
dXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOworICAgIH0KKworICAgIHZv
aWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJP
ZkZyYW1lcykKKyAgICB7CisgICAgICAgIFdlYkF1ZGlvQnVmZmVyTGlzdCBhdWRpb0RhdGEobV9k
ZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgICAgICBtX3JpbmdCdWZmZXIuZmV0Y2go
YXVkaW9EYXRhLmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOworCisg
ICAgICAgIGZvciAoYXV0byogb2JzZXJ2ZXIgOiBvYnNlcnZlcnMoKSkKKyAgICAgICAgICAgIG9i
c2VydmVyLT5hdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgYXVkaW9EYXRhLCBtX2Rlc2NyaXB0
aW9uLCBudW1iZXJPZkZyYW1lcyk7CisgICAgfQorCisgICAgdm9pZCBzdGFydFByb2R1Y2luZ0Rh
dGEoKSBmaW5hbCB7IG1fbWFuYWdlci5zdGFydFByb2R1Y2luZ0RhdGEobV9pZCk7IH0KKyAgICB2
b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgZmluYWwgeyBtX21hbmFnZXIuc3RvcFByb2R1Y2luZ0Rh
dGEobV9pZCk7IH0KKworICAgIEF1ZGlvU291cmNlUHJvdmlkZXIqIGF1ZGlvU291cmNlUHJvdmlk
ZXIoKSBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CisKK3ByaXZhdGU6CisgICAgLy8gUmVhbHRp
bWVNZWRpYVNvdXJjZQorICAgIHZvaWQgYmVnaW5Db25maWd1cmF0aW9uKCkgZmluYWwgeyB9Cisg
ICAgdm9pZCBjb21taXRDb25maWd1cmF0aW9uKCkgZmluYWwgeyB9CisKKyAgICB1aW50NjRfdCBt
X2lkOworICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7CisgICAgUmVmUHRy
PFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOworICAgIFJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX3NldHRpbmdzOworICAgIENBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uOworICAgIENBUmluZ0J1ZmZlciBtX3JpbmdCdWZmZXI7
Cit9OworCitVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIo
V2ViUHJvY2VzcyogcHJvY2VzcykKKyAgICA6IG1fcHJvY2VzcygqcHJvY2VzcykKK3sKKyAgICBt
X3Byb2Nlc3MuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7Cit9CisKK1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIoKQoreworICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnVuc2V0QXVkaW9GYWN0b3J5KCp0aGlzKTsKKyAg
ICBtX3Byb2Nlc3MucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKK30KKworY29uc3QgY2hhciogVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICByZXR1cm4gIlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIjsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6aW5pdGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzKQoreworICAgIGlmIChwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNz
KQorICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5zZXRBdWRp
b0ZhY3RvcnkoKnRoaXMpOworfQorCitSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhD
b25zdHJhaW50cyhjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cykKK3sKKyAgICBp
ZiAoIWNvbnN0cmFpbnRzKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHVpbnQ2NF90
IGlkID0gbmV4dFNlc3Npb25JRCgpOworICAgIE1lZGlhQ29uc3RyYWludHNEYXRhIGNvbnN0cmFp
bnRzRGF0YTsKKyAgICBjb25zdHJhaW50c0RhdGEubWFuZGF0b3J5Q29uc3RyYWludHMgPSBjb25z
dHJhaW50cy0+bWFuZGF0b3J5Q29uc3RyYWludHMoKTsKKyAgICBjb25zdHJhaW50c0RhdGEuYWR2
YW5jZWRDb25zdHJhaW50cyA9IGNvbnN0cmFpbnRzLT5hZHZhbmNlZENvbnN0cmFpbnRzKCk7Cisg
ICAgY29uc3RyYWludHNEYXRhLmlzVmFsaWQgPSBjb25zdHJhaW50cy0+aXNWYWxpZCgpOworICAg
IGJvb2wgc3VjY2VlZGVkOworCisgICAgbV9wcm9jZXNzLnNlbmRTeW5jKE1lc3NhZ2VzOjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZp
Y2VXaXRoQ29uc3RyYWludHMoaWQsIGRldmljZSwgY29uc3RyYWludHNEYXRhKSwgTWVzc2FnZXM6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVy
ZURldmljZVdpdGhDb25zdHJhaW50czo6UmVwbHkoc3VjY2VlZGVkLCBpbnZhbGlkQ29uc3RyYWlu
dHMpLCAwKTsKKworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYobmV3IFNvdXJjZShTdHJpbmc6
Om51bWJlcihpZCksIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBkZXZpY2UubGFi
ZWwoKSwgaWQsICp0aGlzKSk7CisgICAgbV9zb3VyY2VzLnNldChpZCwgc291cmNlKTsKKyAgICBy
ZXR1cm4gc291cmNlOworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VT
dG9wcGVkKHVpbnQ2NF90IGlkKQoreworICAgIEFTU0VSVChtX3NvdXJjZXMuY29udGFpbnMoaWQp
KTsKKyAgICBhdXRvJiBzb3VyY2UgPSAqbV9zb3VyY2VzLmdldChpZCk7CisgICAgc291cmNlLnN0
b3AoKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlTXV0ZWRDaGFu
Z2VkKHVpbnQ2NF90IGlkLCBib29sIG11dGVkKQoreworICAgIEFTU0VSVChtX3NvdXJjZXMuY29u
dGFpbnMoaWQpKTsKKyAgICBtX3NvdXJjZXMuZ2V0KGlkKS0+c2V0TXV0ZWQobXV0ZWQpOworfQor
Cit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VFbmFibGVkQ2hhbmdlZCh1aW50
NjRfdCBpZCwgYm9vbCBlbmFibGVkKQoreworICAgIEFTU0VSVChtX3NvdXJjZXMuY29udGFpbnMo
aWQpKTsKKyAgICBtX3NvdXJjZXMuZ2V0KGlkKS0+c2V0RW5hYmxlZChlbmFibGVkKTsKK30KKwor
dm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlU2V0dGluZ3NDaGFuZ2VkKHVpbnQ2
NF90IGlkLCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQorewor
ICAgIEFTU0VSVChtX3NvdXJjZXMuY29udGFpbnMoaWQpKTsKKyAgICBtX3NvdXJjZXMuZ2V0KGlk
KS0+c2V0U2V0dGluZ3Moc2V0dGluZ3MpOworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpzdG9yYWdlQ2hhbmdlZCh1aW50NjRfdCBpZCwgY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5k
bGUmIGhhbmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNj
cmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7CisgICAgQVNTRVJUKG1fc291cmNl
cy5jb250YWlucyhpZCkpOworICAgIG1fc291cmNlcy5nZXQoaWQpLT5zZXRTdG9yYWdlKGhhbmRs
ZSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6cmluZ0J1ZmZlckZyYW1lQm91bmRzQ2hhbmdlZCh1aW50NjRfdCBpZCwgdWlu
dDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCit7CisgICAgQVNTRVJUKG1fc291
cmNlcy5jb250YWlucyhpZCkpOworICAgIG1fc291cmNlcy5nZXQoaWQpLT5zZXRSaW5nQnVmZmVy
RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOworfQorCit2b2lkIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyOjphdWRpb1NhbXBsZXNBdmFpbGFibGUodWludDY0X3QgaWQsIE1lZGlhVGlt
ZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBBU1NFUlQobV9zb3VyY2Vz
LmNvbnRhaW5zKGlkKSk7CisgICAgbV9zb3VyY2VzLmdldChpZCktPmF1ZGlvU2FtcGxlc0F2YWls
YWJsZSh0aW1lLCBudW1iZXJPZkZyYW1lcyk7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OnN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKK3sKKyAgICBtX3Byb2Nlc3Mu
c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RhcnRQcm9kdWNp
bmdEYXRhKGlkKSwgMCk7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN0b3BQ
cm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQoreworICAgIG1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2Vz
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTdG9wUHJvZHVjaW5nRGF0YShpZCksIDAp
OworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjZjg3ODQx
NDA1ZDU4MTdiZmY2ZTY5YTBkNmFmNGZiYWZlNGE4NmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAg
LTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0o
Q09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2
ZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzU3Vw
cGxlbWVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgorI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENBQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIENy
b3NzUHJvY2Vzc1JlYWx0aW1lQXVkaW9Tb3VyY2U7CitjbGFzcyBXZWJQcm9jZXNzOworCitjbGFz
cyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciA6IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVudCwg
cHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkgeworcHVibGljOgorICAgIGV4cGxpY2l0IFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyKFdlYlByb2Nlc3MqKTsKKyAgICB+VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIoKTsKKworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOworCitwcml2
YXRlOgorICAgIC8vIFdlYlByb2Nlc3NTdXBwbGVtZW50CisgICAgdm9pZCBpbml0aWFsaXplKGNv
bnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKSBmaW5hbDsKKworICAgIC8vIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OkZhY3Rvcnk6CisgICAgUmVmUHRyPFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhD
b25zdHJhaW50cyhjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6
TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYpIGZpbmFsOworCisgICAgLy8gSVBDOjpNZXNzYWdl
UmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgLy8gTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyCisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKHVpbnQ2NF90IGlkKTsKKyAgICB2b2lkIHNv
dXJjZU11dGVkQ2hhbmdlZCh1aW50NjRfdCBpZCwgYm9vbCBtdXRlZCk7CisgICAgdm9pZCBzb3Vy
Y2VFbmFibGVkQ2hhbmdlZCh1aW50NjRfdCBpZCwgYm9vbCBlbmFibGVkKTsKKyAgICB2b2lkIHNv
dXJjZVNldHRpbmdzQ2hhbmdlZCh1aW50NjRfdCBpZCwgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzJik7CisgICAgdm9pZCBzdG9yYWdlQ2hhbmdlZCh1aW50NjRfdCBp
ZCwgY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisgICAgdm9pZCByaW5n
QnVmZmVyRnJhbWVCb3VuZHNDaGFuZ2VkKHVpbnQ2NF90IGlkLCB1aW50NjRfdCBzdGFydEZyYW1l
LCB1aW50NjRfdCBlbmRGcmFtZSk7CisgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUodWlu
dDY0X3QgaWQsIE1lZGlhVGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworCisgICAgdm9p
ZCBzdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QpOworICAgIHZvaWQgc3RvcFByb2R1Y2luZ0Rh
dGEodWludDY0X3QpOworCisgICAgY2xhc3MgU291cmNlOworICAgIGZyaWVuZCBjbGFzcyBTb3Vy
Y2U7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFNvdXJjZT4+IG1fc291cmNlczsKKyAg
ICBXZWJQcm9jZXNzJiBtX3Byb2Nlc3M7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmMzMDFjZjNjMmE2M2Q1ZDdmMTBk
M2EyMTNlMmYzYjE2YTJkMWNhYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAs
MCArMSwzMiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisj
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2Fn
ZXMgLT4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgeworICAgIFNvdXJjZVN0b3BwZWQodWludDY0
X3QgaWQpCisgICAgU291cmNlTXV0ZWRDaGFuZ2VkKHVpbnQ2NF90IGlkLCBib29sIG11dGVkKQor
ICAgIFNvdXJjZUVuYWJsZWRDaGFuZ2VkKHVpbnQ2NF90IGlkLCBib29sIGVuYWJsZWQpCisgICAg
U291cmNlU2V0dGluZ3NDaGFuZ2VkKHVpbnQ2NF90IGlkLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3Mgc2V0dGluZ3MpCisgICAgU3RvcmFnZUNoYW5nZWQodWludDY0X3QgaWQs
IFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUgc3RvcmFnZUhhbmRsZSwgV2ViQ29yZTo6Q0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1l
cykKKyAgICBSaW5nQnVmZmVyRnJhbWVCb3VuZHNDaGFuZ2VkKHVpbnQ2NF90IGlkLCB1aW50NjRf
dCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7CisgICAgQXVkaW9TYW1wbGVzQXZhaWxh
YmxlKHVpbnQ2NF90IGlkLCBNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMp
Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304451</attachid>
            <date>2017-03-14 17:37:27 -0700</date>
            <delta_ts>2017-03-15 12:51:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169609-20170314173724.patch</filename>
            <type>text/plain</type>
            <size>72940</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzOTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA5ZjdjYzczODc3MTU4YTAxZDk4YWNj
MWE5M2E5YWU5NGRmMjg2NjAuLmY1NDRlZmQ3ZTU3ZDZmOTNmNzgzNmNlNThkYmUzMDM1ZGFhZmVm
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTctMDMtMTQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgT3B0aW9uYWxseSBjYXB0dXJlIGF1ZGlvIGluIHRoZSBV
SVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2OTYwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBhbiBlbmNvZGVyL2RlY29kZXIgbWV0aG9kIGZvciAidW5zaWduZWQgbG9uZyIsIGEgdHlw
ZSBmb3VuZCBpbiBwbGF0Zm9ybS1kZWZpbmVkIHN0cnVjdHMuCisKKyAgICAgICAgKiB3dGYvcGVy
c2lzdGVuY2UvRGVjb2Rlci5jcHA6CisgICAgICAgIChXVEY6OlBlcnNpc3RlbmNlOjpEZWNvZGVy
OjpkZWNvZGUpOgorICAgICAgICAqIHd0Zi9wZXJzaXN0ZW5jZS9EZWNvZGVyLmg6CisgICAgICAg
ICogd3RmL3BlcnNpc3RlbmNlL0VuY29kZXIuY3BwOgorICAgICAgICAoV1RGOjpQZXJzaXN0ZW5j
ZTo6RW5jb2Rlcjo6ZW5jb2RlKToKKyAgICAgICAgKiB3dGYvcGVyc2lzdGVuY2UvRW5jb2Rlci5o
OgorCiAyMDE3LTAzLTE0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVjb3JkIHRoZSBIYXNoU2V0L0hhc2hNYXAgb3BlcmF0aW9ucyBpbiBERkcvRlRML0IzIGFu
ZCByZXBsYXkgdGhlbSBpbiBhIGJlbmNobWFyawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDUwNDY4N2NmYTMzYzE2
Mjg2Yzg1MjlmMzdiNDc4MzcwNGQ0ZDI4MDIuLjA1ODZjYTQ5ZjhhMmUyNTk1NmY5ZDI0MDI3YTQy
MjFlZmEyNWJjNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNy0wMy0xNCAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBPcHRpb25hbGx5IGNhcHR1
cmUgYXVkaW8gaW4gdGhlIFVJUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTY5NjA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRXhwb3J0IHNvbWUgcHJldmlvdXNseSB1bi1leHBvcnRlZCBzeW1i
b2xzIGZyb20gV2ViQ29yZSBmb3IgdXNlIGluIFdlYktpdDIuCisKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vV2Vi
QXVkaW9CdWZmZXJMaXN0Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZS5oOgorCiAyMDE3LTAzLTA2ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgogCiAgICAgICAgIFJlZmFjdG9yOiBBbGxvdyBXZWJLaXQyIHRvIG92ZXJyaWRlIHRo
ZSBjcmVhdGlvbiBvZiBSZWFsdGltZU1lZGlhU291cmNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGMwYjI3ZTc2
ZTc1ZWI1MjZkOGQ1MjdlYTU2Y2E5Y2VmNjgzNWQ3NTkuLjQ5MzU4OWRhZTkxOTEyMjMwMjE1ZGRh
MmFjMzMyYTUzMDViNWFkMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5OSBAQAorMjAxNy0wMy0x
NCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBPcHRpb25hbGx5
IGNhcHR1cmUgYXVkaW8gaW4gdGhlIFVJUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5NjA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IGNsYXNzIHBhaXIsIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyL1Byb3h5LCB0byBhbGxvdyBhIFJlYWx0aW1lTWVkaWFTb3VyY2UKKyAgICAg
ICAgcmVxdWVzdGVkIGluIGEgV2ViUHJvY2VzcyB0byBiZSBjcmVhdGVkIGluIHRoZSBVSVByb2Nl
c3MgYW5kIHB1c2ggaXRzIGF1ZGlvIGRhdGEgYWNyb3NzIHRoZQorICAgICAgICBwcm9jZXNzIGJv
dW5kYXJ5IHRvIGl0cyBjbGllbnRzIGluIHRoZSBXZWJQcm9jZXNzLiBCZWNhdXNlIHRoZXNlIGNs
YXNzZXMgYXJlIGNsaWVudHMgb2YgdGhlCisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnNpbmdsZXRvbigpLCB0aGV5IG11c3QgYmUgYSBzaW5nbGV0b24gaW4gdGhlIFdlYlByb2Nl
c3MgYXMgd2VsbCwKKyAgICAgICAgc28gdGhleSBhcmUgYXR0YWNoZWQgdG8gdGhlIFdlYlByb2Nl
c3MgY2xhc3MgaW4gdGhlIHdlYiBwcm9jZXNzIGFuZCB0byBXZWJQcm9jZXNzUHJveHkgaW4KKyAg
ICAgICAgdGhlIFVJUHJvY2Vzcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpTb3VyY2VQcm94eSk6CisgICAg
ICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5Ojp+
U291cmNlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjpTb3VyY2VQcm94eTo6c291cmNlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OmRlc2NyaXB0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6Om51bWJlck9m
RnJhbWVzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHk6On5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KToKKyAg
ICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFT
b3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6c3RvcFByb2R1Y2luZ0Rh
dGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnBy
b2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Om5leHRT
ZXNzaW9uSUQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291
cmNlOjpTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
U291cmNlOjp+U291cmNlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OlNvdXJjZTo6c2V0Q2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6c2V0U2V0dGluZ3MpOgorICAgICAgICAoV2ViS2l0OjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpkZXNjcmlwdGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnNldFN0b3JhZ2UpOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpzZXRSaW5nQnVm
ZmVyRnJhbWVCb3VuZHMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6U291cmNlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIpOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6flVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN1cHBsZW1lbnRO
YW1lKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmluaXRpYWxp
emUpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlTWVk
aWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYktp
dDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZVN0b3BwZWQpOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlTXV0ZWRDaGFuZ2VkKToKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZUVuYWJsZWRDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZVNldHRp
bmdzQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpz
dG9yYWdlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjpyaW5nQnVmZmVyRnJhbWVCb3VuZHNDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJL
aXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzdGFydFByb2R1Y2luZ0RhdGEpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3RvcFByb2R1Y2luZ0RhdGEpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaDogQWRk
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5t
ZXNzYWdlcy5pbjogQWRkZWQuCisKKyAgICAgICAgSW5pdGlhbGl6ZSBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlci9Qcm94eToKKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9v
bENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0
aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6V2ViUHJv
Y2Vzcyk6CisKKyAgICAgICAgV2ViVXNlck1lZGlhQ2xpZW50TWFjIGlzIG5vIGxvbmdlciBuZWNl
c3Nhcnkgbm93IHRoYXQgdGhlIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIG92ZXJyaWRlcworICAg
ICAgICB0aGUgZmFjdG9yaWVzOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyTWVkaWFD
bGllbnQ6OldlYlVzZXJNZWRpYUNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJNZWRp
YUNsaWVudDo6aW5pdGlhbGl6ZUZhY3Rvcmllcyk6IERlbGV0ZWQuCisKKyAgICAgICAgQWRkIGEg
bmV3IHByZWZlcmVuY2UgYW5kIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgbWVtYmVyIHRv
IGNvbnRyb2wgd2hldGhlcgorICAgICAgICBjYXB0dXJpbmcgaXMgZG9uZSBpbiB0aGUgVUlQcm9j
ZXNzOgorCisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaDoKKyAg
ICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKworICAgICAgICBBZGQg
YW4gZW5jb2RlL2RlY29kZSBtZXRob2QgZm9yICJ1bnNpZ25lZCBsb25nIiwgYSB0eXBlIGZvdW5k
IGluIHBsYXRmb3JtLWRlZmluZWQgc3RydWN0cy4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9E
ZWNvZGVyLmNwcDoKKyAgICAgICAgKElQQzo6RGVjb2Rlcjo6ZGVjb2RlKToKKyAgICAgICAgKiBQ
bGF0Zm9ybS9JUEMvRGVjb2Rlci5oOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9FbmNvZGVyLmNw
cDoKKyAgICAgICAgKElQQzo6RW5jb2Rlcjo6ZW5jb2RlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9J
UEMvRW5jb2Rlci5oOgorCisgICAgICAgIEFkZCBuZXcgZmlsZXMgdG8gdGhlIHByb2plY3Q6CisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxNy0w
My0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZhY3Rv
cjogQWxsb3cgV2ViS2l0MiB0byBvdmVycmlkZSB0aGUgY3JlYXRpb24gb2YgUmVhbHRpbWVNZWRp
YVNvdXJjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3BlcnNpc3RlbmNlL0RlY29kZXIu
Y3BwIGIvU291cmNlL1dURi93dGYvcGVyc2lzdGVuY2UvRGVjb2Rlci5jcHAKaW5kZXggMzU0ZmYw
NjA2YjAyODAxNDZhMmQyNDg2MmQyY2FhMWNlOGMzNjBjYS4uMGFkOWFlNTVkNGYyODA3ZTc3ZGE1
Njc2MTkzNTc4YTlkMTI1MzgyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvcGVyc2lzdGVu
Y2UvRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dURi93dGYvcGVyc2lzdGVuY2UvRGVjb2Rlci5j
cHAKQEAgLTEwNyw2ICsxMDcsMTEgQEAgYm9vbCBEZWNvZGVyOjpkZWNvZGUoaW50NjRfdCYgcmVz
dWx0KQogICAgIHJldHVybiBkZWNvZGVOdW1iZXIocmVzdWx0KTsKIH0KIAorYm9vbCBEZWNvZGVy
OjpkZWNvZGUodW5zaWduZWQgbG9uZyYgcmVzdWx0KQoreworICAgIHJldHVybiBkZWNvZGVOdW1i
ZXIocmVzdWx0KTsKK30KKwogYm9vbCBEZWNvZGVyOjpkZWNvZGUoZmxvYXQmIHJlc3VsdCkKIHsK
ICAgICByZXR1cm4gZGVjb2RlTnVtYmVyKHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9wZXJzaXN0ZW5jZS9EZWNvZGVyLmggYi9Tb3VyY2UvV1RGL3d0Zi9wZXJzaXN0ZW5jZS9E
ZWNvZGVyLmgKaW5kZXggNDE0ZWM4OGZjMmYwOTRmODVmZWFhYzM4Njk4MDE0NWM5ODk4Zjg4Ny4u
MDY5NWE1YWIxZmQ0YWU2NjkwOTI5ZDlmMjZmYjg1YzBkOTc5YjBmZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvcGVyc2lzdGVuY2UvRGVjb2Rlci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3Bl
cnNpc3RlbmNlL0RlY29kZXIuaApAQCAtNTEsNiArNTEsNyBAQCBwdWJsaWM6CiAgICAgV1RGX0VY
UE9SVF9QUklWQVRFIGJvb2wgZGVjb2RlKHVpbnQ2NF90Jik7CiAgICAgV1RGX0VYUE9SVF9QUklW
QVRFIGJvb2wgZGVjb2RlKGludDMyX3QmKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBk
ZWNvZGUoaW50NjRfdCYpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGRlY29kZSh1bnNp
Z25lZCBsb25nJik7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgZGVjb2RlKGZsb2F0Jik7
CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgZGVjb2RlKGRvdWJsZSYpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9wZXJzaXN0ZW5jZS9FbmNvZGVyLmNwcCBiL1NvdXJjZS9XVEYv
d3RmL3BlcnNpc3RlbmNlL0VuY29kZXIuY3BwCmluZGV4IDBmMTFlMzQ4MWZmMzMwZjEyYjRjOWEz
OTc0MmY0ZmNjZmIxZTk0N2UuLmFmYjE5ZTQ3OGZmZGUwOTZlZWU5MjAzZGEwNWE4ZDA1MDcxZjZl
YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3BlcnNpc3RlbmNlL0VuY29kZXIuY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL3BlcnNpc3RlbmNlL0VuY29kZXIuY3BwCkBAIC0xMDUsNiArMTA1
LDExIEBAIHZvaWQgRW5jb2Rlcjo6ZW5jb2RlKGludDY0X3QgdmFsdWUpCiAgICAgZW5jb2RlTnVt
YmVyKHZhbHVlKTsKIH0KIAordm9pZCBFbmNvZGVyOjplbmNvZGUodW5zaWduZWQgbG9uZyB2YWx1
ZSkKK3sKKyAgICBlbmNvZGVOdW1iZXIodmFsdWUpOworfQorCiB2b2lkIEVuY29kZXI6OmVuY29k
ZShmbG9hdCB2YWx1ZSkKIHsKICAgICBlbmNvZGVOdW1iZXIodmFsdWUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvcGVyc2lzdGVuY2UvRW5jb2Rlci5oIGIvU291cmNlL1dURi93dGYvcGVy
c2lzdGVuY2UvRW5jb2Rlci5oCmluZGV4IDYxYzk2NTUzMGU3ZjFkMzBkMmYxMDY5MTFiYzVkYWU1
OGQwZDk1YWUuLjFiMjczY2RmMDQzM2E0YzYzOGZhYmJhMDljN2Q1MGM0ZGQxNDFlZGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3BlcnNpc3RlbmNlL0VuY29kZXIuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9wZXJzaXN0ZW5jZS9FbmNvZGVyLmgKQEAgLTc4LDYgKzc4LDcgQEAgcHJpdmF0ZToK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBlbmNvZGUodWludDY0X3QpOwogICAgIFdURl9F
WFBPUlRfUFJJVkFURSB2b2lkIGVuY29kZShpbnQzMl90KTsKICAgICBXVEZfRVhQT1JUX1BSSVZB
VEUgdm9pZCBlbmNvZGUoaW50NjRfdCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZW5j
b2RlKHVuc2lnbmVkIGxvbmcpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGVuY29kZShm
bG9hdCk7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZW5jb2RlKGRvdWJsZSk7CiAKQEAg
LTEwMCw2ICsxMDEsNyBAQCB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW5jb2Rlcjo6U2FsdDxpbnQzMl90
PiB7IHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2YWx1ZSA9IDE3OyB9OwogdGVtcGxhdGUgPD4gc3Ry
dWN0IEVuY29kZXI6OlNhbHQ8aW50NjRfdD4geyBzdGF0aWMgY29uc3QgdW5zaWduZWQgdmFsdWUg
PSAxOTsgfTsKIHRlbXBsYXRlIDw+IHN0cnVjdCBFbmNvZGVyOjpTYWx0PGZsb2F0PiB7IHN0YXRp
YyBjb25zdCB1bnNpZ25lZCB2YWx1ZSA9IDIzOyB9OwogdGVtcGxhdGUgPD4gc3RydWN0IEVuY29k
ZXI6OlNhbHQ8ZG91YmxlPiB7IHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2YWx1ZSA9IDI5OyB9Owor
dGVtcGxhdGUgPD4gc3RydWN0IEVuY29kZXI6OlNhbHQ8dW5zaWduZWQgbG9uZz4geyBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgdmFsdWUgPSAzMTsgfTsKIHRlbXBsYXRlIDw+IHN0cnVjdCBFbmNvZGVy
OjpTYWx0PHVpbnQ4X3QqPiB7IHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2YWx1ZSA9IDEwMTsgfTsK
IAogdGVtcGxhdGUgPHR5cGVuYW1lIFR5cGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWExOWNjNWE1NTM3Yjg1ZTc1NmY2MzBj
ZDU4OWZlYjlhNzI1ZmYzYi4uMGIzZWQzOTg3ODhjYjZhNGIwYjFlOWQ0OWQ1Njg4MWQwOGVhNDY0
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNjE2OCw3ICs2MTY4LDcgQEAKIAkJQ0RFNTk1OTcxQkYyNkUyMTAwQTFDQkU4IC8q
IENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTU5NTk2MUJGMjZFMjEwMEExQ0JFOCAvKiBDRE1TZXNz
aW9uTWVkaWFTb3VyY2VBVkZPYmpDLmggKi87IH07CiAJCUNERTU5NTlEMUJGMjc1NzEwMEExQ0JF
OCAvKiBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNTk1OUMxQkYyNzU3MTAwQTFDQkU4IC8qIENE
TVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0gKi87IH07CiAJCUNERTY2N0E0MUU0QkJGMTUw
MEU4MTU0QSAvKiBXZWJBdWRpb0J1ZmZlckxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3QTIxRTRCQkYxNTAwRTgxNTRBIC8qIFdlYkF1
ZGlvQnVmZmVyTGlzdC5jcHAgKi87IH07Ci0JCUNERTY2N0E1MUU0QkJGMTUwMEU4MTU0QSAvKiBX
ZWJBdWRpb0J1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENERTY2N0EzMUU0QkJGMTUwMEU4MTU0QSAvKiBXZWJBdWRpb0J1ZmZlckxpc3Qu
aCAqLzsgfTsKKwkJQ0RFNjY3QTUxRTRCQkYxNTAwRTgxNTRBIC8qIFdlYkF1ZGlvQnVmZmVyTGlz
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3
QTMxRTRCQkYxNTAwRTgxNTRBIC8qIFdlYkF1ZGlvQnVmZmVyTGlzdC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERTdGQzQ0MTgxOTA0QjEwMDJC
QkI3NyAvKiBPcmRlckl0ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENERTdGQzQyMTgxOTA0QjEwMDJCQkI3NyAvKiBPcmRlckl0ZXJhdG9y
LmNwcCAqLzsgfTsKIAkJQ0RFN0ZDNDUxODE5MDRCMTAwMkJCQjc3IC8qIE9yZGVySXRlcmF0b3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTdGQzQz
MTgxOTA0QjEwMDJCQkI3NyAvKiBPcmRlckl0ZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RFODNEQjExODNDNDQwNjAwMzFFQUEzIC8q
IFZpZGVvUGxheWJhY2tRdWFsaXR5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENERTgzREFGMTgzQzQ0MDYwMDMxRUFBMyAvKiBWaWRlb1BsYXliYWNr
UXVhbGl0eS5jcHAgKi87IH07CkBAIC02MTg1LDYgKzYxODUsNyBAQAogCQlDREVBN0M4NTEyNzYy
MzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNjcmVlbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVBN0M4MzEyNzYyMzA0MDBCODQ2REQgLyogUmVu
ZGVyRnVsbFNjcmVlbi5jcHAgKi87IH07CiAJCUNERUUzOTM3MTc5NzQyNTkwMDFENzU4MCAvKiBQ
dWJsaWNVUkxNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENERUUzOTM2MTc5NzQyNTkwMDFENzU4MCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmNw
cCAqLzsgfTsKIAkJQ0RFRjRGRDcxN0U4NUM4RjAwQUVFMjRCIC8qIEdyaWRMZW5ndGguaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERUY0RkQ2MTdFODVD
OEYwMEFFRTI0QiAvKiBHcmlkTGVuZ3RoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RFRkEyMjgxRTc2NjlFODAwMEFFOTlDIC8qIFBsYXRmb3Jt
QXVkaW9EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDREU2NjdBMTFFNEJCQTREMDBFODE1NEEgLyogUGxhdGZvcm1BdWRpb0RhdGEuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDREYyQjAwNDE4MUYw
NTlDMDBGMkI0MjQgLyogTWVkaWFEZXNjcmlwdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGMkIwMDMxODFGMDU5QzAwRjJCNDI0IC8qIE1lZGlh
RGVzY3JpcHRpb24uaCAqLzsgfTsKIAkJQ0RGMkIwMTAxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tC
b3guY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RG
MkIwMDYxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tCb3guY3BwICovOyB9OwogCQlDREYyQjAxMTE4
MjA1NDA2MDBGMkI0MjQgLyogTW9ja0JveC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0RGMkIwMDcxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tCb3guaCAq
LzsgfTsKQEAgLTI2OTY5LDYgKzI2OTcwLDcgQEAKIAkJCQlGRDMxNjA5OTEyQjAyNkY3MDBDMUEz
NTkgLyogSFJURkRhdGFiYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA5QjEyQjAyNkY3
MDBDMUEzNTkgLyogSFJURkRhdGFiYXNlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMx
NjA5RDEyQjAyNkY3MDBDMUEzNTkgLyogSFJURkVsZXZhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQ0RFRkEyMjgxRTc2NjlFODAwMEFFOTlDIC8qIFBsYXRmb3JtQXVkaW9EYXRhLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGRDMxNjA5RjEyQjAyNkY3MDBDMUEzNTkgLyogSFJURktlcm5lbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwQTExMkIwMjZGNzAwQzFBMzU5IC8qIEhSVEZQYW5uZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTdFMjNBMTA5MTQ0OTUwMDEwRDM2MSAvKiBIVE1MQWxs
Q29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9XZWJBdWRpb0J1ZmZlckxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL1dlYkF1ZGlvQnVmZmVyTGlzdC5oCmluZGV4IGJiZjNjMTM5YjYyNWU3YjRjNzlh
Zjg0MjQxMzhiNTA0MDczMTg1YTguLmRiNjVkMzUzNGUzYmE1ZTc4NzljZjJmNGQ5Njg0MDgwYzA0
ZjYxNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1dlYkF1ZGlv
QnVmZmVyTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1dlYkF1ZGlv
QnVmZmVyTGlzdC5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIENBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbjsKIGNsYXNzIFdlYkF1ZGlvQnVmZmVyTGlzdCA6IHB1YmxpYyBQbGF0Zm9ybUF1ZGlvRGF0
YSB7CiBwdWJsaWM6CiAgICAgV2ViQXVkaW9CdWZmZXJMaXN0KGNvbnN0IENBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiYpOwotICAgIFdlYkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24mLCB1aW50MzJfdCBzYW1wbGVDb3VudCk7CisgICAgV0VCQ09SRV9FWFBPUlQg
V2ViQXVkaW9CdWZmZXJMaXN0KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQz
Ml90IHNhbXBsZUNvdW50KTsKICAgICBXZWJBdWRpb0J1ZmZlckxpc3QoY29uc3QgQ0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uJiwgQ01TYW1wbGVCdWZmZXJSZWYpOwogCiAgICAgQXVkaW9CdWZmZXJM
aXN0KiBsaXN0KCkgY29uc3QgeyByZXR1cm4gbV9saXN0LmdldCgpOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmgKaW5kZXggNWFhYjQ5Mjdk
ZTBhZDk3ZjhiODE1ODEyNDI5YWZlOTZiNDdiNTMxYi4uNDVjNTVkYzEzMDE4MTgyMWQ2MDhlOGI3
M2FkN2Y3NjQ1ZmRmODIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vbWFjL0NBUmluZ0J1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L21hYy9DQVJpbmdCdWZmZXIuaApAQCAtODUsNiArODUsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRDdXJyZW50RnJhbWVCb3VuZHModWludDY0X3Qgc3RhcnRGcmFtZSwg
dWludDY0X3QgZW5kRnJhbWUpOwogCiAgICAgdWludDMyX3QgY2hhbm5lbENvdW50KCkgY29uc3Qg
eyByZXR1cm4gbV9jaGFubmVsQ291bnQ7IH0KKyAgICBDQVJpbmdCdWZmZXJTdG9yYWdlJiBzdG9y
YWdlKCkgeyByZXR1cm4gbV9idWZmZXJzOyB9CiAKIHByaXZhdGU6CiAgICAgc2l6ZV90IGZyYW1l
T2Zmc2V0KHVpbnQ2NF90IGZyYW1lTnVtYmVyKSB7IHJldHVybiAoZnJhbWVOdW1iZXIgJiBtX2Zy
YW1lQ291bnRNYXNrKSAqIG1fYnl0ZXNQZXJGcmFtZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4
IGFjYWNkZWE4MzQyYjVjYWJiMjQyNWYwMjNiOWQ5ZmFiNmM0ODEzNGEuLjEyOWJlNjRmM2M4NDY3
Y2Y5ZmRhNzA2Mzg3ZDBkMzA0MDlhZjkyYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTYxLDcg
KzYxLDcgQEAgY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlOwogY2xhc3MgUGxhdGZvcm1BdWRpb0Rh
dGE7CiBjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M7CiAKLWNsYXNzIFJlYWx0aW1l
TWVkaWFTb3VyY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxSZWFsdGltZU1lZGlhU291cmNlPiB7Citj
bGFzcyBXRUJDT1JFX0VYUE9SVCBSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFJlZkNvdW50
ZWQ8UmVhbHRpbWVNZWRpYVNvdXJjZT4gewogcHVibGljOgogICAgIGNsYXNzIE9ic2VydmVyIHsK
ICAgICBwdWJsaWM6CkBAIC0yMDAsNiArMjAwLDggQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwg
dm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IEZsYXR0ZW5lZENvbnN0cmFpbnQmKTsKICAgICB2
aXJ0dWFsIHZvaWQgYXBwbHlTaXplQW5kRnJhbWVSYXRlKHN0ZDo6b3B0aW9uYWw8aW50PiB3aWR0
aCwgc3RkOjpvcHRpb25hbDxpbnQ+IGhlaWdodCwgc3RkOjpvcHRpb25hbDxkb3VibGU+KTsKIAor
ICAgIGNvbnN0IFZlY3RvcjxPYnNlcnZlcio+IG9ic2VydmVycygpIGNvbnN0IHsgcmV0dXJuIG1f
b2JzZXJ2ZXJzOyB9CisKICAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9l
bmFibGVkIHsgdHJ1ZSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CmluZGV4IGIxY2VlMTQ1Mzk5ZGIw
YjE1N2YxMjA0YzdjZmVkMmNhZjUzZjZiZTkuLjJmM2Y4M2JiYzhhMTU5M2JlNzhiYzFjYTM2ODA3
MDM3MjUyNzY0NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CkBAIC02MjksNiArNjI5LDggQEAgc2V0
KFdlYktpdDJfTUVTU0FHRVNfSU5fRklMRVMKIAogICAgIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dl
YkF1dG9tYXRpb25TZXNzaW9uLm1lc3NhZ2VzLmluCiAKKyAgICBVSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorCiAgICAgVUlQcm9jZXNzL0Rh
dGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogCiAgICAgVUlQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5Lm1lc3NhZ2VzLmluCkBAIC02NTcsNiArNjU5LDggQEAg
c2V0KFdlYktpdDJfTUVTU0FHRVNfSU5fRklMRVMKIAogICAgIFdlYlByb2Nlc3MvSWNvbkRhdGFi
YXNlL1dlYkljb25EYXRhYmFzZVByb3h5Lm1lc3NhZ2VzLmluCiAKKyAgICBXZWJQcm9jZXNzL01l
ZGlhU3RyZWFtL1VzZXJNZWRpYUNhcHR1cmVTZXNzaW9uTWFuYWdlci5tZXNzYWdlcy5pbgorCiAg
ICAgV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENNb25pdG9yLm1lc3NhZ2VzLmluCiAg
ICAgV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZlci5tZXNzYWdlcy5pbgog
ICAgIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0Lm1lc3NhZ2VzLmluCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dl
YktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA5OTQ5MmZmYWVhMTQ0ZWU0YzdmNGU1ZWU1
ZDkxZTNmNjZiOGI1ZTUwLi45ZGVmMzcwNGI3NGQ0NTg4YmFkYzBiNDJjMTIwNzA3Y2FmZDkxYzRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTQ1LDYgKzQ1LDcgQEAgVlBBVEgg
PSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uIFwKICAgICAkKFdlYktp
dDIpL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3Mv
TWVkaWFDYWNoZSBcCisgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL01lZGlhU3RyZWFtIFwKICAg
ICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTmV0d29yayBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9j
ZXNzL05ldHdvcmsvd2VicnRjIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTm90aWZpY2F0
aW9ucyBcCkBAIC02NSw2ICs2Niw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikvVUlQcm9j
ZXNzL0NvY29hIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9EYXRhYmFzZXMgXAogICAgICQo
V2ViS2l0MikvVUlQcm9jZXNzL0Rvd25sb2FkcyBcCisgICAgJChXZWJLaXQyKS9VSVByb2Nlc3Mv
TWVkaWFTdHJlYW0gXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL05ldHdvcmsgXAogICAgICQo
V2ViS2l0MikvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzIFwKICAgICAkKFdlYktp
dDIpL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zIFwKQEAgLTEyMSw2ICsxMjMsOCBAQCBNRVNTQUdF
X1JFQ0VJVkVSUyA9IFwKICAgICBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyIFwKICAgICBT
dG9yYWdlQXJlYU1hcCBcCiAgICAgU3RvcmFnZU1hbmFnZXIgXAorICAgIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyIFwKKyAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IFwKICAgICBWaWV3
R2VzdHVyZUNvbnRyb2xsZXIgXAogICAgIFZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3IgXAog
ICAgIFZpZXdVcGRhdGVEaXNwYXRjaGVyIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0lQQy9EZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9EZWNv
ZGVyLmNwcAppbmRleCA3NDBhMGNjZWQxNzhkNmI2YTc1ODQzYzBhNzkwNjljYTMyYzA5ZGMyLi4w
MzQyYjFkOGQ2YjNkZjA1MTBmNGQ2NjRmMzNhNjMxNjQzMmM0MWE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vSVBDL0RlY29kZXIuY3BwCkBAIC0yNTEsNiArMjUxLDE1IEBAIGJvb2wgRGVjb2Rl
cjo6ZGVjb2RlKGludDY0X3QmIHJlc3VsdCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBE
ZWNvZGVyOjpkZWNvZGUodW5zaWduZWQgbG9uZyYgcmVzdWx0KQoreworICAgIGlmICghYWxpZ25C
dWZmZXJQb3NpdGlvbihzaXplb2YocmVzdWx0KSwgc2l6ZW9mKHJlc3VsdCkpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBkZWNvZGVWYWx1ZUZyb21CdWZmZXIocmVzdWx0LCBtX2J1ZmZl
clBvcyk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIGJvb2wgRGVjb2Rlcjo6ZGVjb2RlKGZsb2F0
JiByZXN1bHQpCiB7CiAgICAgaWYgKCFhbGlnbkJ1ZmZlclBvc2l0aW9uKHNpemVvZihyZXN1bHQp
LCBzaXplb2YocmVzdWx0KSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9J
UEMvRGVjb2Rlci5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0RlY29kZXIuaAppbmRl
eCA1YTMwYzQyNTg3OWQ3NzkxMjZhYjVmNGQ2OTVjZjg4YmNkNDY2NTdiLi43ZjA1OWJkMzk4YWQy
NDg2ODY4NDg4Y2UxMjE1ZWUxNDExODNjYzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9JUEMvRGVjb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9E
ZWNvZGVyLmgKQEAgLTg0LDYgKzg0LDcgQEAgcHVibGljOgogICAgIGJvb2wgZGVjb2RlKHVpbnQ2
NF90Jik7CiAgICAgYm9vbCBkZWNvZGUoaW50MzJfdCYpOwogICAgIGJvb2wgZGVjb2RlKGludDY0
X3QmKTsKKyAgICBib29sIGRlY29kZSh1bnNpZ25lZCBsb25nJik7CiAgICAgYm9vbCBkZWNvZGUo
ZmxvYXQmKTsKICAgICBib29sIGRlY29kZShkb3VibGUmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vSVBDL0VuY29kZXIuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vSVBDL0VuY29kZXIuY3BwCmluZGV4IDZjZDc0NzFkMTJjY2YxNDA2MGNmMmU0YzI3MWIzZTUw
Zjg5ZjcyNzQuLmQ2NDAwYzY5M2EyNjA1OWY0ODBmZWNkNDZjNDFlYzY1NTJiZjQxYTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9FbmNvZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvRW5jb2Rlci5jcHAKQEAgLTIzNiw2ICsyMzYsMTIgQEAg
dm9pZCBFbmNvZGVyOjplbmNvZGUoaW50NjRfdCBuKQogICAgIGNvcHlWYWx1ZVRvQnVmZmVyKG4s
IGJ1ZmZlcik7CiB9CiAKK3ZvaWQgRW5jb2Rlcjo6ZW5jb2RlKHVuc2lnbmVkIGxvbmcgbikKK3sK
KyAgICB1aW50OF90KiBidWZmZXIgPSBncm93KHNpemVvZihuKSwgc2l6ZW9mKG4pKTsKKyAgICBj
b3B5VmFsdWVUb0J1ZmZlcihuLCBidWZmZXIpOworfQorCiB2b2lkIEVuY29kZXI6OmVuY29kZShm
bG9hdCBuKQogewogICAgIHVpbnQ4X3QqIGJ1ZmZlciA9IGdyb3coc2l6ZW9mKG4pLCBzaXplb2Yo
bikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0VuY29kZXIuaCBi
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9FbmNvZGVyLmgKaW5kZXggOTJmOWJhMjU2YzNi
NGRlOWFjYjI3MjJjZWU5MTU1N2FlZGU0ZGRlMC4uM2JhNzk4YjU3YTVjOGYwZWJkYTdjOWU0ZGQx
MThiNDIxNWMzYjYzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Vu
Y29kZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvRW5jb2Rlci5oCkBAIC05
Niw2ICs5Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBlbmNvZGUodWludDY0X3QpOwogICAgIHZv
aWQgZW5jb2RlKGludDMyX3QpOwogICAgIHZvaWQgZW5jb2RlKGludDY0X3QpOworICAgIHZvaWQg
ZW5jb2RlKHVuc2lnbmVkIGxvbmcpOwogICAgIHZvaWQgZW5jb2RlKGZsb2F0KTsKICAgICB2b2lk
IGVuY29kZShkb3VibGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZl
cmVuY2VzRGVmaW5pdGlvbnMuaAppbmRleCA3ZmY3NzAyOGJmYjVjMDU1ZDhlYjJkNmEwNTIxODg0
OGZhZDZjNTlhLi5iOWMxNTlkYjA4NmViMjU2NzFhNGViYzgzNjJiZjIwNDk3Mjk1ZDgzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgK
QEAgLTEwMyw2ICsxMDMsMTIgQEAKICNkZWZpbmUgREVGQVVMVF9DQU5WQVNfVVNFU19BQ0NFTEVS
QVRFRF9EUkFXSU5HIHRydWUKICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisjZGVmaW5l
IERFRkFVTFRfU0hPVUxEX0NBUFRVUkVfQVVESU9fSU5fVUlQUk9DRVNTIHRydWUKKyNlbHNlCisj
ZGVmaW5lIERFRkFVTFRfU0hPVUxEX0NBUFRVUkVfQVVESU9fSU5fVUlQUk9DRVNTIGZhbHNlCisj
ZW5kaWYKKwogLy8gbWFjcm8oS2V5VXBwZXIsIEtleUxvd2VyLCBUeXBlTmFtZVVwcGVyLCBUeXBl
TmFtZSwgRGVmYXVsdFZhbHVlLCBIdW1hblJlYWRhYmxlTmFtZSwgSHVtYW5SZWFkYWJsZURlc2Ny
aXB0aW9uKQogCiAjZGVmaW5lIEZPUl9FQUNIX1dFQktJVF9CT09MX1BSRUZFUkVOQ0UobWFjcm8p
IFwKQEAgLTI1Miw2ICsyNTgsNyBAQAogICAgIG1hY3JvKEdhbWVwYWRzRW5hYmxlZCwgZ2FtZXBh
ZHNFbmFibGVkLCBCb29sLCBib29sLCB0cnVlLCAiR2FtZXBhZHMiLCAiV2ViIEdhbWVwYWQgQVBJ
IHN1cHBvcnQiKSBcCiAgICAgbWFjcm8oSW5wdXRFdmVudHNFbmFibGVkLCBpbnB1dEV2ZW50c0Vu
YWJsZWQsIEJvb2wsIGJvb2wsIHRydWUsICJJbnB1dCBFdmVudHMiLCAiRW5hYmxlIElucHV0RXZl
bnRzIHN1cHBvcnQiKSBcCiAgICAgbWFjcm8oQ3JlZGVudGlhbE1hbmFnZW1lbnRFbmFibGVkLCBj
cmVkZW50aWFsTWFuYWdlbWVudEVuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlLCAiQ3JlZGVudGlh
bCBNYW5hZ2VtZW50IiwgIkVuYWJsZSBDcmVkZW50aWFsIE1hbmFnZW1lbnQgc3VwcG9ydCIpIFwK
KyAgICBtYWNybyhTaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2Vzcywgc2hvdWxkQ2FwdHVyZUF1
ZGlvSW5VSVByb2Nlc3MsIEJvb2wsIGJvb2wsIERFRkFVTFRfU0hPVUxEX0NBUFRVUkVfQVVESU9f
SU5fVUlQUk9DRVNTLCAiQ2FwdHVyZSIsICJDYXB0dXJlIEF1ZGlvIGluIFVJUHJvY2VzcyIpIFwK
ICAgICBcCiAKICNkZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX0RPVUJMRV9QUkVGRVJFTkNFKG1hY3Jv
KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHAKaW5kZXggNTEyZDIxMmQ4NGEwMTE4MDhjMjlhOGI1MTg0MTllMjBhNTE3
NmIxYy4uZjMzZWE2YzBhODNiNDliMDFlN2ExNmFjZDVhMTFlYmE5YzMxMTYzNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcApAQCAtNjgsNiArNjgsNyBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6
OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBtZWRp
YUtleVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CiAjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKICAgICBlbmNvZGVyIDw8IGF1ZGlvQ2FwdHVyZUV4dGVuc2lvbkhhbmRsZTsKKyAgICBl
bmNvZGVyIDw8IHNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzOwogI2VuZGlmCiAgICAgZW5j
b2RlciA8PCBzaG91bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb247CiAgICAgZW5jb2RlciA8PCB1
cmxTY2hlbWVzUmVnaXN0ZXJlZEFzRW1wdHlEb2N1bWVudDsKQEAgLTE4OSw2ICsxOTAsOCBAQCBi
b29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRl
Y29kZXIsIFdlYlByb2Nlc3NDcmVhdAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmF1ZGlvQ2FwdHVyZUV4dGVuc2lvbkhhbmRsZSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRl
cnMuc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CiAjZW5kaWYKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuc2hvdWxkVXNlVGVz
dGluZ05ldHdvcmtTZXNzaW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXgg
YTNlNjJjZjlkNDMxZjQwYmRjYTdhNWM4MDBjYzU3MDU5NzFjOGU5NC4uZmQ4MDZiMjIwMjQ3OWUx
NjA0ODYxZGY5OGUwOGNhYjFhMWFhNjBkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC04OCw2ICs4OCw3IEBAIHN0
cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUgbWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGF1ZGlvQ2Fw
dHVyZUV4dGVuc2lvbkhhbmRsZTsKKyAgICBib29sIHNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9j
ZXNzIHsgZmFsc2UgfTsKICNlbmRpZgogICAgIFN0cmluZyBtZWRpYUtleVN0b3JhZ2VEaXJlY3Rv
cnk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MGFmYzdhMjBj
YTlhMmY3ODY1NzMxYjhjYjE5YTliNWMzOTBjNGRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3Bw
CkBAIC0wLDAgKzEsMTU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCIKKworI2lmIFBMQVRGT1JNKENP
Q09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZl
clN0b3JhZ2UuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmgi
CisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vz
c1Byb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL01lZGlhQ29uc3RyYWludHNJbXBsLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxp
c3QuaD4KKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6U291cmNlUHJveHkgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2
ZXIsIHB1YmxpYyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50IHsKK3B1YmxpYzoKKyAg
ICBTb3VyY2VQcm94eSh1aW50NjRfdCBpZCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSYg
bWFuYWdlciwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQorICAgICAgICA6IG1f
aWQoaWQpCisgICAgICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCisgICAgICAgICwgbV9zb3VyY2Uo
V1RGTW92ZShzb3VyY2UpKQorICAgICAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlUmVmPFNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9y
YWdlPih0aGlzKSkpCisgICAgeworICAgICAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMp
OworICAgIH0KKworICAgIH5Tb3VyY2VQcm94eSgpCisgICAgeworICAgICAgICBzdG9yYWdlKCku
aW52YWxpZGF0ZSgpOworICAgICAgICBtX3NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwor
ICAgIH0KKworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSgpIHsgcmV0dXJuIG1fc291
cmNlOyB9CisgICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKSB7IHJldHVybiBz
dGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci5zdG9yYWdl
KCkpOyB9CisgICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbigpIHsgcmV0
dXJuIG1fZGVzY3JpcHRpb247IH0KKyAgICBpbnQ2NF90IG51bWJlck9mRnJhbWVzKCkgeyByZXR1
cm4gbV9udW1iZXJPZkZyYW1lczsgfQorCisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWwg
eworICAgICAgICBtX21hbmFnZXIucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyOjpTb3VyY2VTdG9wcGVkKG1faWQpLCAwKTsKKyAgICB9CisKKyAgICB2b2lk
IHNvdXJjZU11dGVkQ2hhbmdlZCgpIGZpbmFsIHsKKyAgICAgICAgbV9tYW5hZ2VyLnByb2Nlc3Mo
KS5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlTXV0ZWRDaGFu
Z2VkKG1faWQsIG1fc291cmNlLT5tdXRlZCgpKSwgMCk7CisgICAgfQorCisgICAgdm9pZCBzb3Vy
Y2VFbmFibGVkQ2hhbmdlZCgpIGZpbmFsIHsKKyAgICAgICAgbV9tYW5hZ2VyLnByb2Nlc3MoKS5z
ZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlRW5hYmxlZENoYW5n
ZWQobV9pZCwgbV9zb3VyY2UtPmVuYWJsZWQoKSksIDApOworICAgIH0KKworICAgIHZvaWQgc291
cmNlU2V0dGluZ3NDaGFuZ2VkKCkgZmluYWwgeworICAgICAgICBtX21hbmFnZXIucHJvY2Vzcygp
LnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2VTZXR0aW5nc0No
YW5nZWQobV9pZCwgbV9zb3VyY2UtPnNldHRpbmdzKCkpLCAwKTsKKyAgICB9CisKKyAgICB2b2lk
IGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRm
b3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRl
c2NyaXB0aW9uLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpIGZpbmFsIHsKKyAgICAgICAgaWYgKG1f
ZGVzY3JpcHRpb24gIT0gZGVzY3JpcHRpb24pIHsKKyAgICAgICAgICAgIEFTU0VSVChkZXNjcmlw
dGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpD
QUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKKyAgICAgICAgICAgIG1fZGVzY3JpcHRpb24gPSAqV1RG
OjpnZXQ8Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxh
dGZvcm1EZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKKworICAgICAgICAgICAgLy8gQWxsb2Nh
dGUgYSByaW5nIGJ1ZmZlciBsYXJnZSBlbm91Z2ggdG8gY29udGFpbiAyIHNlY29uZHMgb2YgYXVk
aW8uCisgICAgICAgICAgICBtX251bWJlck9mRnJhbWVzID0gbV9kZXNjcmlwdGlvbi5zYW1wbGVS
YXRlKCkgKiAyOworICAgICAgICAgICAgbV9yaW5nQnVmZmVyLmFsbG9jYXRlKG1fZGVzY3JpcHRp
b24uc3RyZWFtRGVzY3JpcHRpb24oKSwgbV9udW1iZXJPZkZyYW1lcyk7CisgICAgICAgIH0KKwor
ICAgICAgICBBU1NFUlQoaXM8V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRpb0RhdGEpKTsKKyAgICAg
ICAgbV9yaW5nQnVmZmVyLnN0b3JlKGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4oYXVkaW9E
YXRhKS5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsKKyAgICAgICAg
dWludDY0X3Qgc3RhcnRGcmFtZTsKKyAgICAgICAgdWludDY0X3QgZW5kRnJhbWU7CisgICAgICAg
IG1fcmluZ0J1ZmZlci5nZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUp
OworICAgICAgICBtX21hbmFnZXIucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyOjpBdWRpb1NhbXBsZXNBdmFpbGFibGUobV9pZCwgdGltZSwgbnVtYmVyT2ZG
cmFtZXMsIHN0YXJ0RnJhbWUsIGVuZEZyYW1lKSwgMCk7CisgICAgfQorCisgICAgdm9pZCBzdG9y
YWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2UpIGZpbmFsIHsKKyAgICAgICAgU2hhcmVk
TWVtb3J5OjpIYW5kbGUgaGFuZGxlOworICAgICAgICBpZiAoc3RvcmFnZSkKKyAgICAgICAgICAg
IHN0b3JhZ2UtPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6
UmVhZE9ubHkpOworICAgICAgICBtX21hbmFnZXIucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTdG9yYWdlQ2hhbmdlZChtX2lkLCBoYW5kbGUsIG1fZGVz
Y3JpcHRpb24sIG1fbnVtYmVyT2ZGcmFtZXMpLCAwKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAg
ICB1aW50NjRfdCBtX2lkOworICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkmIG1fbWFu
YWdlcjsKKyAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CisgICAgQ0FSaW5n
QnVmZmVyIG1fcmluZ0J1ZmZlcjsKKyAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNj
cmlwdGlvbiB7IH07CisgICAgaW50NjRfdCBtX251bWJlck9mRnJhbWVzIHsgMCB9OworfTsKKwor
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eShXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCisgICAgOiBtX3Byb2Nlc3MocHJvY2VzcykKK3sK
KyAgICBtX3Byb2Nlc3MuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKK30KKworVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6flVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHko
KQoreworICAgIG1fcHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Cit9CisKK3Zv
aWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0
dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBDYXB0dXJlRGV2aWNl
JiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHNEYXRhJiBjb25zdHJhaW50c0RhdGEsIGJv
b2wmIHN1Y2NlZWRlZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMpCit7CisgICAgYXV0byBj
b25zdHJhaW50cyA9IE1lZGlhQ29uc3RyYWludHNJbXBsOjpjcmVhdGUoY29uc3RyYWludHNEYXRh
KTsKKyAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gc291cmNlID0gUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuZGVmYXVsdEF1ZGlvRmFjdG9yeSgpLT5jcmVhdGVN
ZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoZGV2aWNlLCBjb25zdHJh
aW50cy5wdHIoKSwgaW52YWxpZENvbnN0cmFpbnRzKTsKKyAgICBzdWNjZWVkZWQgPSAhIXNvdXJj
ZTsKKyAgICAKKyAgICBpZiAoc291cmNlKQorICAgICAgICBtX3Byb3hpZXMuc2V0KGlkLCBzdGQ6
Om1ha2VfdW5pcXVlPFNvdXJjZVByb3h5PihpZCwgKnRoaXMsIHNvdXJjZS5yZWxlYXNlTm9uTnVs
bCgpKSk7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6c3RhcnRQcm9k
dWNpbmdEYXRhKHVpbnQ2NF90IGlkKQoreworICAgIGF1dG8gaXRlciA9IG1fcHJveGllcy5maW5k
KGlkKTsKKyAgICBpZiAoaXRlciAhPSBtX3Byb3hpZXMuZW5kKCkpCisgICAgICAgIGl0ZXItPnZh
bHVlLT5zb3VyY2UoKS5zdGFydFByb2R1Y2luZ0RhdGEoKTsKK30KKwordm9pZCBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OjpzdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKK3sKKyAg
ICBhdXRvIGl0ZXIgPSBtX3Byb3hpZXMuZmluZChpZCk7CisgICAgaWYgKGl0ZXIgIT0gbV9wcm94
aWVzLmVuZCgpKQorICAgICAgICBpdGVyLT52YWx1ZS0+c291cmNlKCkuc3RvcFByb2R1Y2luZ0Rh
dGEoKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjgxMTMyMWRiYWNhMDQ3NWVkNDc5ZjJiYmZiYjM1ZTU2NjRkOGY2ZDIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVk
ZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUg
IlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
U2hhcmVkTWVtb3J5OworY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OworCitjbGFzcyBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5IDogcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitwdWJs
aWM6CisgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eShXZWJQcm9jZXNzUHJveHkmKTsK
KyAgICB+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpOworCisgICAgV2ViUHJvY2Vzc1By
b3h5JiBwcm9jZXNzKCkgY29uc3QgeyByZXR1cm4gbV9wcm9jZXNzOyB9CisKK3ByaXZhdGU6Cisg
ICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2
ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVl
X3B0cjxJUEM6OkVuY29kZXI+JikgZmluYWw7CisKKyAgICB2b2lkIGNyZWF0ZU1lZGlhU291cmNl
Rm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgY29uc3QgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhJiwg
Ym9vbCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cyk7CisgICAgdm9pZCBz
dGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QpOworICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEo
dWludDY0X3QpOworCisgICAgY2xhc3MgU291cmNlUHJveHk7CisgICAgZnJpZW5kIGNsYXNzIFNv
dXJjZVByb3h5OworICAgIEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxTb3VyY2VQ
cm94eT4+IG1fcHJveGllczsKKyAgICBXZWJQcm9jZXNzUHJveHkmIG1fcHJvY2VzczsKK307CisK
K30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjc0YjhjYmI3YjhhNjliNzNiMzk3YTllOWQyYmNjMGU3MGIxMzExNWYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI4IEBACisjIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisj
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5IHsKKyAgICBDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VX
aXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2aWNl
LCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEgY29uc3RyYWludHMpIC0+IChi
b29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMpCisgICAgU3RhcnRQcm9kdWNp
bmdEYXRhKHVpbnQ2NF90IGlkKQorICAgIFN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
b29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bv
b2xDb2NvYS5tbQppbmRleCA4NzM4ZjA3MDYzN2Y0OTBmMWYwODZjMDk5YjkzNzRlNzQwZWNjN2Vl
Li5mNDczYjVkODEyMThlYmYyZjAyYTlhZmZmYmFhNWUxNDk5OWI4YWY2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpA
QCAtMjU4LDYgKzI1OCw4IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6
ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYKICAgICAvLyBGSVhNRTog
UmVtb3ZlIHRoaXMgYW5kIHJlbGF0ZWQgcGFyYW1ldGVyIHdoZW4gPHJkYXI6Ly9wcm9ibGVtLzI5
NDQ4MzY4PiBpcyBmaXhlZC4KICAgICBpZiAobWVkaWFTdHJlYW1FbmFibGVkIHx8IHdlYlJUQ0Vu
YWJsZWQpCiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvckdlbmVyaWNF
eHRlbnNpb24oImNvbS5hcHBsZS53ZWJraXQubWljcm9waG9uZSIsIHBhcmFtZXRlcnMuYXVkaW9D
YXB0dXJlRXh0ZW5zaW9uSGFuZGxlKTsKKworICAgIHBhcmFtZXRlcnMuc2hvdWxkQ2FwdHVyZUF1
ZGlvSW5VSVByb2Nlc3MgPSBtX2RlZmF1bHRQYWdlR3JvdXAtPnByZWZlcmVuY2VzKCkuc2hvdWxk
Q2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MoKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDVmZjY0ZDY0OGM0Yjc4NDI1ZmQ5
MTI3MDYzNDdmMjg3OGY5NGU1MDAuLmNkMWRjZDdkNTZlYzY3N2QyNGM5Nzk5NmY3OGQ0YmQxMDI1
N2Q1OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
CkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJU
ZXh0Q2hlY2tlclN0YXRlLmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKKyNpbmNsdWRlICJVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0
SXRlbS5oIgogI2luY2x1ZGUgIldlYkljb25EYXRhYmFzZS5oIgogI2luY2x1ZGUgIldlYkluc3Bl
Y3RvclV0aWxpdGllcy5oIgpAQCAtMTA0LDkgKzEwNSwxNCBAQCBXZWJQcm9jZXNzUHJveHk6Oldl
YlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFdlYnNpdGVEYXRhU3Rv
cmUqCiAgICAgLCBtX2lzUmVzcG9uc2l2ZShOb09yTWF5YmU6Ok1heWJlKQogICAgICwgbV92aXNp
YmxlUGFnZUNvdW50ZXIoW3RoaXNdKFJlZkNvdW50ZXJFdmVudCkgeyB1cGRhdGVCYWNrZ3JvdW5k
UmVzcG9uc2l2ZW5lc3NUaW1lcigpOyB9KQogICAgICwgbV93ZWJzaXRlRGF0YVN0b3JlKHdlYnNp
dGVEYXRhU3RvcmUpCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0p
CisgICAgLCBtX3VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoc3RkOjptYWtlX3VuaXF1ZTxV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5PigqdGhpcykpCisjZW5kaWYKIHsKICAgICBXZWJQ
YXN0ZWJvYXJkUHJveHk6OnNpbmdsZXRvbigpLmFkZFdlYlByb2Nlc3NQcm94eSgqdGhpcyk7CiAK
KworCiAgICAgY29ubmVjdCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmgKaW5kZXggZjVlNjFhYTAwMTgwNjc3NDgyYWYzNzA3ZGNiZGIxOTk1MTdmYWY2
YS4uYjMyODgxNWNmMTY0MjdmOGFjNmRkNjY2ZjNhOTU3MmRhYTcxYzkzYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtNTYsNiArNTYsNyBAQCBzdHJ1
Y3QgUGx1Z2luSW5mbzsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZXR3b3JrUHJvY2Vz
c1Byb3h5OworY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW07CiBjbGFzcyBXZWJQYWdlR3JvdXA7CiBjbGFzcyBXZWJQcm9jZXNz
UG9vbDsKQEAgLTI3Myw2ICsyNzQsMTAgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2Vic2l0ZURh
dGFTdG9yZT4gbV93ZWJzaXRlRGF0YVN0b3JlOwogCiAgICAgYm9vbCBtX2lzVW5kZXJNZW1vcnlQ
cmVzc3VyZSB7IGZhbHNlIH07CisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eT4gbV91c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OworI2VuZGlmCiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAxM2U0MWM2MjJhMmQ5NjllM2JhODYzM2UwYTdiM2VlZTlmNWFl
Y2JlLi5lZGE3N2Q4MWNkY2RjOWI5OTJjYWVkODk4ZjliN2YwMjA3NDI2YThlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xODc5
LDExICsxODc5LDE4IEBACiAJCUNEMDAzQTUzMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtl
eVN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDAwM0E1MTE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9yYWdlTWFu
YWdlci5oICovOyB9OwogCQlDRDE5QTI2RDFBMTNFODJBMDA4RDY1MEUgLyogV2ViRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0QxOUEyNjkxQTEzRTgyMDAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LmNwcCAqLzsgfTsKIAkJQ0QxOUEyNkUxQTEzRTgzNDAwOEQ2NTBFIC8qIFdlYkRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDE5QTI2QTFBMTNFODIxMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQuaCAqLzsgfTsKKwkJQ0Q0OTFCMDcxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENENDkxQjA1MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5jcHAgKi87IH07CisJCUNENDkxQjA4MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0Q0OTFCMDYxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
LmggKi87IH07CisJCUNENDkxQjBEMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRDQ5MUIwQjFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQlDRDQ5MUIwRTFFNzMyRTRE
MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0OTFCMEMxRTczMkU0RDAwMDA5
MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKKwkJQ0Q0OTFC
MTIxRTczNDgyMTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0OTFCMTAxRTcz
NDgyMTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwICovOyB9Owor
CQlDRDQ5MUIxMzFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0OTFC
MTExRTczNDgyMTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCAqLzsg
fTsKKwkJQ0Q0OTFCMTcxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0Q0OTFCMTUxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQlDRDQ5MUIxODFFNzM1
MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ5MUIxNjFFNzM1
MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi87
IH07CiAJCUNENEI0RDlDMUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFyZWRSaW5nQnVmZmVyU3RvcmFn
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDRC
NEQ5QTFFNzY1RTAwMDBEMjcwOTIgLyogU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuY3BwICovOyB9
OwogCQlDRDRCNEQ5RDFFNzY1RTAwMDBEMjcwOTIgLyogU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENEI0RDlC
MUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oICovOyB9OwogCQlD
RDVDNjZBMDEzNEI5RDM4MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNs
aWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RDVDNjY5RTEzNEI5RDM2MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNs
aWVudC5jcHAgKi87IH07CiAJCUNENUM2NkExMTM0QjlEMzgwMDRGRTJBOCAvKiBJbmplY3RlZEJ1
bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRDVDNjY5RjEzNEI5RDM3MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5k
bGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oICovOyB9OwotCQlDRDYxNzgxNDFFNkRFOUEwMDBGREE1
N0QgLyogV2ViVXNlck1lZGlhQ2xpZW50TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2MTc4MTIxRTZERTlBMDAwRkRBNTdEIC8qIFdlYlVzZXJN
ZWRpYUNsaWVudE1hYy5tbSAqLzsgfTsKIAkJQ0Q2Rjc1RjQxMzFCNjZEMDAwRDZCMjFFIC8qIFdl
YkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0Q3M0JBM0UxMzFBMkU4QTAwRUVERUQyIC8qIFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHkuY3BwICovOyB9OwogCQlDRDczQkE0NzEzMUFDQzlBMDBFRURFRDIgLyog
V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDczQkE0NTEzMUFDQzg4MDBFRURF
RDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07
CiAJCUNENzNCQTRFMTMxQUNEQjcwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDczQkE0ODEzMUFDRDhFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovOyB9OwpAQCAtNDE2OSwxMSArNDE3NiwyMCBAQAogCQlDRDAwM0E1
MTE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmg7IHBh
dGggPSBNZWRpYUNhY2hlL1dlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0QxOUEyNjkxQTEzRTgyMDAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0QxOUEyNkExQTEzRTgyMTAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENDkxQjA1MUU3MEQw
NUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENDkxQjA2MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
RDQ5MUIwQTFFNzMyRDEyMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2Fn
ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENDkxQjBCMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENDkxQjBDMUU3MzJFNEQwMDAwOTA2
NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFCMTAxRTczNDgyMTAwMDA5MDY2IC8qIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA7IHBhdGggPSAuLi9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0Q0OTFCMTExRTczNDgyMTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5oOyBwYXRoID0gLi4vQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ5MUIxNDFFNzM0OUYz
MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUg
PSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBwYXRoID0gLi4vQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFCMTUxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENDkxQjE2MUU3MzUyNTUw
MDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1l
c3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENEI0RDlBMUU3NjVFMDAw
MEQyNzA5MiAvKiBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENEI0RDlCMUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFy
ZWRSaW5nQnVmZmVyU3RvcmFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDVD
NjY5RTEzNEI5RDM2MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRs
ZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0Q1QzY2OUYxMzRCOUQzNzAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5D
bGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQ
YWdlRnVsbFNjcmVlbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDRDYx
NzgxMjFFNkRFOUEwMDBGREE1N0QgLyogV2ViVXNlck1lZGlhQ2xpZW50TWFjLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV2ViVXNlck1lZGlhQ2xpZW50TWFjLm1t
OyBwYXRoID0gY29jb2EvV2ViVXNlck1lZGlhQ2xpZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRDczQkEzNzEzMUEyOUZFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1h
bmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViRnVsbFNj
cmVlbk1hbmFnZXIuY3BwOyBwYXRoID0gRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENzNCQTM4MTMxQTI5RkUwMEVFREVE
MiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBXZWJGdWxsU2NyZWVuTWFuYWdlci5oOyBwYXRoID0gRnVsbFNjcmVlbi9XZWJGdWxsU2Ny
ZWVuTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDczQkEzOTEzMUEy
OUZFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBuYW1lID0gV2ViRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW47IHBhdGggPSBG
dWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNjI4MSw2ICs2Mjk3LDkgQEAKIAkJN0M2RTcwRjgxOEIyRDQ3RTAw
RjI0RTJFIC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQlDRDQ5MUIwNTFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuY3BwICovLAorCQkJCUNENDkxQjA2MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlci5oICovLAorCQkJCUNENDkxQjBBMUU3MzJEMTIwMDAwOTA2NiAvKiBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCQlDREEyOUExOTFDQkRCRjQxMDA5
MDFDQ0YgLyogV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5oICovLAogCQkJCUNEQTI5QTFDMUNC
REJGNUIwMDkwMUNDRiAvKiBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1lc3NhZ2VzLmluICov
LAogCQkJCUNEQTI5QTE4MUNCREJGNDEwMDkwMUNDRiAvKiBXZWJQbGF5YmFja1Nlc3Npb25NYW5h
Z2VyLm1tICovLApAQCAtNzQ0OCw2ICs3NDY3LDkgQEAKIAkJCQkxQUE0MTdFRDEyQzAwRDg3MDAy
QkU2N0IgLyogVGV4dENoZWNrZXJNYWMubW0gKi8sCiAJCQkJMUFGMDVEODUxNDY4ODM0ODAwOEIx
RTgxIC8qIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaCAqLywKIAkJCQkxQUYw
NUQ4NDE0Njg4MzQ4MDA4QjFFODEgLyogVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94
eS5tbSAqLywKKwkJCQlDRDQ5MUIxMDFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5jcHAgKi8sCisJCQkJQ0Q0OTFCMTExRTczNDgyMTAwMDA5MDY2IC8qIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCAqLywKKwkJCQlDRDQ5MUIxNDFFNzM0OUYzMDAw
MDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJ
CQkyRDEyNUM1RDE4NTdFQTA1MDAzQkEzQ0IgLyogVmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1t
ICovLAogCQkJCTJENkNEMTE3MTg5MDU4QTUwMEU1QTRBMCAvKiBWaWV3U25hcHNob3RTdG9yZS5o
ICovLAogCQkJCTJENkNEMTE4MTg5MDU4QTUwMEU1QTRBMCAvKiBWaWV3U25hcHNob3RTdG9yZS5t
bSAqLywKQEAgLTc2OTAsNiArNzcxMiwxMCBAQAogCQkJCTFBMzM0REVDMTZERThGODgwMDZBOEUz
OCAvKiBTdG9yYWdlQXJlYU1hcE1lc3NhZ2VzLmggKi8sCiAJCQkJMUFCMzFBOTQxNkJDNjg4MTAw
RjZEQkM5IC8qIFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQUIz
MUE5NTE2QkM2ODgxMDBGNkRCQzkgLyogU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJ
CUNENDkxQjE1MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQlDRDQ5MUIxNjFFNzM1MjU1MDAwMDkwNjYgLyog
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJQ0Q0OTFCMEIx
RTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKKwkJCQlDRDQ5MUIwQzFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJNZXNzYWdlcy5oICovLAogCQkJCTJEMUI1RDVCMTg1ODY5QzgwMDZDNjU5NiAvKiBW
aWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTJEMUI1RDVD
MTg1ODY5QzgwMDZDNjU5NiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdlcy5oICovLAog
CQkJCTJEODE5QjlGMTg2MjgwMEUwMDFGMDNEMSAvKiBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVj
dG9yTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTc4MjQsNyArNzg1MCw2IEBACiAJCUNENjE3
ODExMUU2REU5ODAwMEZEQTU3RCAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCi0JCQkJQ0Q2MTc4MTIxRTZERTlBMDAwRkRBNTdEIC8qIFdlYlVzZXJN
ZWRpYUNsaWVudE1hYy5tbSAqLywKIAkJCSk7CiAJCQluYW1lID0gY29jb2E7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwpAQCAtODA0OSw2ICs4MDc0LDcgQEAKIAkJCQk3QzI0MTMwMzFBQUNG
QTc1MDBBNThDMTUgLyogX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJN0MyNDEzMDUxQUFDRkE5QzAwQTU4QzE1IC8qIF9XS1VzZXJDb250ZW50RXh0ZW5z
aW9uU3RvcmVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NBMzc5M0UxQUMzNzhCMzAw
NzlEQzM3IC8qIF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVQcml2YXRlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlDRDQ5MUIxMzFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M4OUQyQkExQTZCMEYyQzAwM0E1RkRF
IC8qIF9XS1VzZXJDb250ZW50RmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Qzg5RDJCQzFB
NkIwRjVCMDAzQTVGREUgLyogX1dLVXNlckNvbnRlbnRGaWx0ZXJJbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJN0E4MjFGNTAxRTJGN0E3NTAwNjA0NTc3IC8qIEFQSUN1c3RvbVByb3RvY29s
TWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC04MDU2LDYgKzgwODIsNyBAQAogCQkJ
CTdDODgyREY5MUM3RTk5NkYwMDZCRjczMSAvKiBfV0tVc2VyQ29udGVudFdvcmxkSW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovLAogCQkJCTdDQjM2NUFBMUQzMURCNzAwMDcxNThDQSAvKiBfV0tVc2Vy
SW5pdGlhdGVkQWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0IzNjVBRDFEMzFEQzEwMDA3
MTU4Q0EgLyogX1dLVXNlckluaXRpYXRlZEFjdGlvbkludGVybmFsLmggaW4gSGVhZGVycyAqLywK
KwkJCQlDRDQ5MUIwRTFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJN
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ4Nzg2MUQxQkRCNTRCRjAwRDAyQUJCIC8q
IF9XS1VzZXJTdHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDg3ODYyMDFCREI1N0Y1
MDBEMDJBQkIgLyogX1dLVXNlclN0eWxlU2hlZXRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUE4MUIzODExOEJENjZBRDAwMDdGREFDIC8qIF9XS1Zpc2l0ZWRMaW5rU3RvcmUuaCBpbiBI
ZWFkZXJzICovLApAQCAtODEwMSw2ICs4MTI4LDcgQEAKIAkJCQkxQTI0NjRGMzE4OTFFNDUxMDAy
MzRDNUIgLyogQVBJTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0QzQTQ4MzFB
NUQwMkZBMDA5NjIzQjggLyogQVBJTmF2aWdhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRG
OUVFRUMxQTc4MzZFRTAwQjZDRkJFIC8qIEFQSU5hdmlnYXRpb25BY3Rpb24uaCBpbiBIZWFkZXJz
ICovLAorCQkJCUNENDkxQjA4MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkREOUVCMkQxQTZGMDEyNTAwQkIxMjY3IC8qIEFQ
SU5hdmlnYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRjY5RkEyMTE3NkQwMTQw
MDQ3MUE1MiAvKiBBUElOYXZpZ2F0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRGOUVF
RUUxQTc4NkVBRDAwQjZDRkJFIC8qIEFQSU5hdmlnYXRpb25SZXNwb25zZS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC04NDIyLDYgKzg0NTAsNyBAQAogCQkJCUUxOEU2OTBDMTY5QjU2M0YwMDlCNjY3MCAv
KiBTZWNJdGVtU2hpbVByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMThFNjkxODE2OUI2NjdC
MDA5QjY2NzAgLyogU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MTREOUY1NzE5MTE5RDM1MDAwMDYzQTcgLyogU2VydmljZXNDb250cm9sbGVyLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlDRDQ5MUIxODFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMwNzVBQjFERTg1
RjMzMDAzOUVDNjkgLyogTmV0d29ya1JUQ1NvY2tldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFG
REU2NUExOTU0QTQyQjAwQzQ4RkZBIC8qIFNlc3Npb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUEwMDJENDkxOTZCMzQ1RDAwQjlBRDQ0IC8qIFNlc3Npb25TdGF0ZUNvZGluZy5oIGluIEhl
YWRlcnMgKi8sCkBAIC05NjAyLDYgKzk2MzEsNyBAQAogCQkJCTM3M0QxMjIyMThBNDczMDEwMDY2
RDlDQyAvKiBfV0tGcmFtZUhhbmRsZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzQTg4QjM5MUJD
NzBGM0YwMEFCQTVDMiAvKiBfV0tIaXRUZXN0UmVzdWx0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTEwRjU5MTIxRERFMjk3NzAwNDEyRkY1IC8qIF9XS0xpbmtJY29uUGFyYW1ldGVycy5tbSBpbiBT
b3VyY2VzICovLAorCQkJCUNENDkxQjBEMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTE4QTlG
MjE5MDhCOEVBMDBGN0M5MkIgLyogX1dLTlNGaWxlTWFuYWdlckV4dHJhcy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBNDNFODI5MTg4RjNDREMwMDlFNEQzMCAvKiBfV0tQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTlFMzI4RTE4MjE2NUE5MDBGNUQwNEMg
LyogX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlLm1tIGluIFNvdXJjZXMgKi8sCkBAIC05NjM2LDYg
Kzk2NjYsNyBAQAogCQkJCTkzQTg4QjQ3MUJDODgyOTcwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVz
dWx0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDRDNBNDgyMUE1RDAyRkEwMDk2MjNCOCAvKiBB
UElOYXZpZ2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRjY5RkEzMTE3NkQwMTQwMDQ3
MUE1MiAvKiBBUElOYXZpZ2F0aW9uRGF0YS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDQ5MUIx
NzFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MzJFRDE4QjFFMkZFMTU3MDA2QkE2NEEg
LyogUGVyQWN0aXZpdHlTdGF0ZUNQVVVzYWdlU2FtcGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCNjM0MDNGOTE0OTEwRDU3MDAxMDcwQjUgLyogQVBJT2JqZWN0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTM3OEUxQTNEMTgxRUQ2RkYwMDMxMDA3QSAvKiBBUElPYmplY3QubW0gaW4gU291cmNl
cyAqLywKQEAgLTk2NjAsNiArOTY5MSw3IEBACiAJCQkJMUEzNjM1QTkxQTMxNDRBMzAwRUQ2MTk3
IC8qIEFQSVdlYnNpdGVEYXRhU3RvcmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEzNjM1QUQx
QTMxNDVFNTAwRUQ2MTk3IC8qIEFQSVdlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTVDQjIzNzkxMURGMEUyRTYwMDExN0FBMyAvKiBBUElXZWJzaXRlUG9saWNpZXMu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q0OTFCMTIxRTczNDgyMTAwMDA5MDY2IC8qIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE2NTYzRTQx
QjdBOEM1MDAwOUNGNzg3IC8qIEFQSVdpbmRvd0ZlYXR1cmVzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTFBRDRDMTkyMUIzOUYzMzIwMEFCQzI4RSAvKiBBcHBsaWNhdGlvblN0YXRlVHJhY2tlci5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTFBM0Q2MTA1MTNBN0YwM0EwMEY5NUQ0RSAvKiBBcmd1bWVu
dENvZGVycy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTk5NzksNyArMTAwMTEsNiBAQAogCQkJCTc1
M0UzRTBEMTg4NzM5ODUwMDE4ODQ5NiAvKiBTZXNzaW9uVHJhY2tlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxQTY0MjBFNDEyRENFMkZGMDBDQUFFMkMgLyogU2hhcmVhYmxlQml0bWFwLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUMwMUEyNjAxMTI2NjJGMjEwMEM5RUQ1NSAvKiBTaGFyZWFibGVC
aXRtYXBDRy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDRDYxNzgxNDFFNkRFOUEwMDBGREE1N0Qg
LyogV2ViVXNlck1lZGlhQ2xpZW50TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyMTc0NjAx
NjRDMjBFMzAwMzdBNUMxIC8qIFNoYXJlYWJsZVJlc291cmNlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTQ0NTBBRUMwMURDM0ZBRTUwMDk5NDNGMiAvKiBTaGFyZWRNZW1vcnlDb2NvYS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkyREFGMDZENzE4QkQxQTQ3MDA4MUNFQjEgLyogU21hcnRNYWduaWZp
Y2F0aW9uQ29udHJvbGxlci5tbSBpbiBTb3VyY2VzICovLApAQCAtMTAxODIsNiArMTAyMTMsNyBA
QAogCQkJCTk5QzNBRTI0MURBRDhFMzcwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1h
Yy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDNDY5NENDMUE0QjUxMEEwMEFENTg0NSAvKiBXZWJQ
YXN0ZWJvYXJkUHJveHlDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDNDY5NEM5MUE0QjRF
QTEwMEFENTg0NSAvKiBXZWJQYXN0ZWJvYXJkUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJQ0Q0OTFCMDcxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQjFGNzc0MUQxQjJGOEEwMDdDOUJE
MSAvKiBXZWJQYXltZW50Q29vcmRpbmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFCMUY3
OTYxRDFCMzYxMzAwN0M5QkQxIC8qIFdlYlBheW1lbnRDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUIxRjc4QjFEMUIzMzU1MDA3QzlCRDEgLyogV2Vi
UGF5bWVudENvb3JkaW5hdG9yUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJN
ZWRpYUNsaWVudC5jcHAKaW5kZXggYWFkZWQzNDRhNzZhZWE2YWI0NzE2MmQ4OTY4Y2NiMmM1ZjA1
MGM2Ny4uMzYyMjAyZTBlZDYwZTY1Nzc0ZmZjODcwNzBjZDUxNzNkYjVjYjg2ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViVXNlck1lZGlhQ2xpZW50LmNwcApAQCAtMzMsNyArMzMsNiBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIFdlYlVzZXJNZWRpYUNsaWVudDo6V2ViVXNlck1lZGlhQ2xpZW50KFdlYlBhZ2UmIHBhZ2Up
CiAgICAgOiBtX3BhZ2UocGFnZSkKIHsKLSAgICBpbml0aWFsaXplRmFjdG9yaWVzKCk7CiB9CiAK
IHZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpwYWdlRGVzdHJveWVkKCkKQEAgLTYxLDEzICs2MCw2
IEBAIHZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpjYW5jZWxNZWRpYURldmljZXNFbnVtZXJhdGlv
blJlcXVlc3QoTWVkaWFEZXZpY2VzRW51bWVyCiAgICAgbV9wYWdlLnVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcigpLmNhbmNlbE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uKHJlcXVlc3Qp
OwogfQogCi0jaWYgIVBMQVRGT1JNKENPQ09BKQotdm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6Omlu
aXRpYWxpemVGYWN0b3JpZXMoKQotewotCi19Ci0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0OwogCiAjZW5kaWYgLy8gTUVESUFfU1RSRUFNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2NvY29hL1dlYlVzZXJNZWRpYUNsaWVudE1hYy5t
bSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvY29jb2EvV2ViVXNl
ck1lZGlhQ2xpZW50TWFjLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOGRmMmYx
MDE5YmE4NmY2ZmE3YTM2MTYwNGEwZWEyNzZiZDc1YzFlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvY29jb2EvV2ViVXNlck1lZGlhQ2xpZW50TWFjLm1tCisrKyAvZGV2L251bGwKQEAg
LTEsNjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJXZWJVc2VyTWVkaWFDbGllbnQuaCIKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFBM
QVRGT1JNKENPQ09BKQotCi0jaW1wb3J0IDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuaD4KLSNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotCi11c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYlVzZXJNZWRpYUNsaWVu
dEF1ZGlvRmFjdG9yeSBmaW5hbCA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJl
RmFjdG9yeSB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFdlYlVzZXJNZWRpYUNsaWVudEF1ZGlvRmFj
dG9yeSYgc2luZ2xldG9uKCkKLSAgICB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxX
ZWJVc2VyTWVkaWFDbGllbnRBdWRpb0ZhY3Rvcnk+IGZhY3Rvcnk7Ci0gICAgICAgIHJldHVybiBm
YWN0b3J5OwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZT4gY3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGNvbnN0
IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWlu
dHMsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnRzKSBmaW5hbCB7Ci0gICAgICAgIGF1dG8qIGZh
Y3RvcnkgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5kZWZhdWx0QXVk
aW9GYWN0b3J5KCk7Ci0gICAgICAgIHJldHVybiBmYWN0b3J5ID8gZmFjdG9yeS0+Y3JlYXRlTWVk
aWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGRldmljZSwgY29uc3RyYWlu
dHMsIGludmFsaWRDb25zdHJhaW50cykgOiBudWxscHRyOwotICAgIH0KLX07Ci0KLXZvaWQgV2Vi
VXNlck1lZGlhQ2xpZW50Ojppbml0aWFsaXplRmFjdG9yaWVzKCkKLXsKLSAgICBzdGF0aWMgZGlz
cGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKLSAgICBkaXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4sIF4g
ewotICAgICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24o
KS5zZXRBdWRpb0ZhY3RvcnkoV2ViVXNlck1lZGlhQ2xpZW50QXVkaW9GYWN0b3J5OjpzaW5nbGV0
b24oKSk7Ci0gICAgfSk7Ci19Ci0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcAppbmRleCA2YTQxYjRjZjA3M2M4YjAyMjE0MWFhYzVkM2Y1Mzk4YTk5
OTUwNzg3Li5hMWVhOTZkNzljOGY5YWYyNTAyMzJlYzFmMGQ1OTBjNmUxODYyMzQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNp
bmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgogI2luY2x1ZGUgIlN0YXRpc3RpY3NEYXRhLmgiCiAj
aW5jbHVkZSAiVXNlckRhdGEuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5o
IgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaCIKICNpbmNsdWRlICJXZWJD
b25uZWN0aW9uVG9VSVByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyLmgiCkBA
IC0xOTEsNiArMTkyLDEwIEBAIFdlYlByb2Nlc3M6OldlYlByb2Nlc3MoKQogICAgIGFkZFN1cHBs
ZW1lbnQ8V2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlcj4oKTsKICNlbmRpZgogCisjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKyAgICBhZGRTdXBwbGVtZW50PFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
PigpOworI2VuZGlmCisKICAgICBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5hZGQoU2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4oKSk7
CiAKICAgICBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hhcmVkT2JzZXJ2ZXIoKS5zZXRTdGF0aXN0
aWNzU3RvcmUobV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY29weVJlZigpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjYyMzdkMGViOWRjMWZiNDE2NDM3ZjcxMjhiMjM0
MTc5M2MxOGQyOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
Y29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMjI2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjaW5jbHVkZSAiVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5o
IgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2aWNlLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzSW1wbC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZm
ZXJMaXN0Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0
IHsKKworc3RhdGljIHVpbnQ2NF90IG5leHRTZXNzaW9uSUQoKQoreworICAgIHN0YXRpYyB1aW50
NjRfdCBuZXh0SUQgPSAwOworICAgIHJldHVybiArK25leHRJRDsKK30KKworY2xhc3MgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlIHsK
K3B1YmxpYzoKKyAgICBTb3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyY2VJRCwgVHlwZSB0eXBlLCBj
b25zdCBTdHJpbmcmIG5hbWUsIHVpbnQ2NF90IGlkLCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYg
bWFuYWdlcikKKyAgICAgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKHNvdXJjZUlELCB0eXBlLCBu
YW1lKQorICAgICAgICAsIG1faWQoaWQpCisgICAgICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCisg
ICAgICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2U+KG51bGxwdHIpKQorICAgIHsKKyAgICB9CisKKyAgICB+U291cmNlKCkKKyAgICB7CisgICAg
ICAgIHN0b3JhZ2UoKS5pbnZhbGlkYXRlKCk7CisgICAgfQorCisgICAgU2hhcmVkUmluZ0J1ZmZl
clN0b3JhZ2UmIHN0b3JhZ2UoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVy
U3RvcmFnZSY+KG1fcmluZ0J1ZmZlci5zdG9yYWdlKCkpOyB9CisgICAgUmVmUHRyPFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fY2FwYWJpbGl0aWVzOyB9CisgICAgdm9pZCBzZXRDYXBhYmlsaXRpZXMoUmVmUHRyPFJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcykgeyBtX2NhcGFiaWxp
dGllcyA9IGNhcGFiaWxpdGllczsgfQorCisgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0KKyAg
ICB2b2lkIHNldFNldHRpbmdzKGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0
dGluZ3MpCisgICAgeworICAgICAgICBtX3NldHRpbmdzID0gc2V0dGluZ3M7CisgICAgICAgIHNl
dHRpbmdzRGlkQ2hhbmdlKCk7CisgICAgfQorCisgICAgY29uc3QgQ0FBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uJiBkZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGVzY3JpcHRpb247IH0KKyAg
ICB2b2lkIHNldFN0b3JhZ2UoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhhbmRsZSwgY29u
c3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgdWludDY0
X3QgbnVtYmVyT2ZGcmFtZXMpCisgICAgeworICAgICAgICBtX2Rlc2NyaXB0aW9uID0gZGVzY3Jp
cHRpb247CisgICAgICAgIGlmIChoYW5kbGUuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgIG1fcmlu
Z0J1ZmZlci5kZWFsbG9jYXRlKCk7CisgICAgICAgICAgICBzdG9yYWdlKCkuc2V0UmVhZE9ubHko
ZmFsc2UpOworICAgICAgICAgICAgc3RvcmFnZSgpLnNldFN0b3JhZ2UobnVsbHB0cik7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5
PiBtZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1hcChoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVj
dGlvbjo6UmVhZE9ubHkpOworICAgICAgICBzdG9yYWdlKCkuc2V0U3RvcmFnZShXVEZNb3ZlKG1l
bW9yeSkpOworICAgICAgICBzdG9yYWdlKCkuc2V0UmVhZE9ubHkodHJ1ZSk7CisKKyAgICAgICAg
bV9yaW5nQnVmZmVyLmFsbG9jYXRlKGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisgICAg
fQorCisgICAgdm9pZCBzZXRSaW5nQnVmZmVyRnJhbWVCb3VuZHModWludDY0X3Qgc3RhcnRGcmFt
ZSwgdWludDY0X3QgZW5kRnJhbWUpCisgICAgeworICAgICAgICBtX3JpbmdCdWZmZXIuc2V0Q3Vy
cmVudEZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAgICB9CisKKyAgICB2b2lk
IGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZG
cmFtZXMpCisgICAgeworICAgICAgICBXZWJBdWRpb0J1ZmZlckxpc3QgYXVkaW9EYXRhKG1fZGVz
Y3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAgICAgICAgbV9yaW5nQnVmZmVyLmZldGNoKGF1
ZGlvRGF0YS5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsKKworICAg
ICAgICBmb3IgKGF1dG8qIG9ic2VydmVyIDogb2JzZXJ2ZXJzKCkpCisgICAgICAgICAgICBvYnNl
cnZlci0+YXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIGF1ZGlvRGF0YSwgbV9kZXNjcmlwdGlv
biwgbnVtYmVyT2ZGcmFtZXMpOworICAgIH0KKworICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRh
KCkgZmluYWwgeyBtX21hbmFnZXIuc3RhcnRQcm9kdWNpbmdEYXRhKG1faWQpOyB9CisgICAgdm9p
ZCBzdG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9tYW5hZ2VyLnN0b3BQcm9kdWNpbmdEYXRh
KG1faWQpOyB9CisKKyAgICBBdWRpb1NvdXJjZVByb3ZpZGVyKiBhdWRpb1NvdXJjZVByb3ZpZGVy
KCkgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQorCitwcml2YXRlOgorICAgIC8vIFJlYWx0aW1l
TWVkaWFTb3VyY2UKKyAgICB2b2lkIGJlZ2luQ29uZmlndXJhdGlvbigpIGZpbmFsIHsgfQorICAg
IHZvaWQgY29tbWl0Q29uZmlndXJhdGlvbigpIGZpbmFsIHsgfQorCisgICAgdWludDY0X3QgbV9p
ZDsKKyAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbV9tYW5hZ2VyOworICAgIFJlZlB0cjxS
ZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKKyAgICBSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKKyAgICBDQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24gbV9kZXNjcmlwdGlvbjsKKyAgICBDQVJpbmdCdWZmZXIgbV9yaW5nQnVmZmVyOwor
fTsKKworVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKFdl
YlByb2Nlc3MqIHByb2Nlc3MpCisgICAgOiBtX3Byb2Nlc3MoKnByb2Nlc3MpCit7CisgICAgbV9w
cm9jZXNzLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMpOworfQorCitVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6flVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKCkKK3sKKyAgICBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS51bnNldEF1ZGlvRmFjdG9yeSgqdGhpcyk7CisgICAg
bV9wcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Cit9CisKK2NvbnN0IGNoYXIqIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpzdXBwbGVtZW50TmFtZSgpCit7CisgICAgcmV0dXJuICJVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlciI7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OmluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVy
cykKK3sKKyAgICBpZiAocGFyYW1ldGVycy5zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcykK
KyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0QXVkaW9G
YWN0b3J5KCp0aGlzKTsKK30KKworUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29u
c3RyYWludHMoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMpCit7CisgICAgaWYg
KCFjb25zdHJhaW50cykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICB1aW50NjRfdCBp
ZCA9IG5leHRTZXNzaW9uSUQoKTsKKyAgICBNZWRpYUNvbnN0cmFpbnRzRGF0YSBjb25zdHJhaW50
c0RhdGE7CisgICAgY29uc3RyYWludHNEYXRhLm1hbmRhdG9yeUNvbnN0cmFpbnRzID0gY29uc3Ry
YWludHMtPm1hbmRhdG9yeUNvbnN0cmFpbnRzKCk7CisgICAgY29uc3RyYWludHNEYXRhLmFkdmFu
Y2VkQ29uc3RyYWludHMgPSBjb25zdHJhaW50cy0+YWR2YW5jZWRDb25zdHJhaW50cygpOworICAg
IGNvbnN0cmFpbnRzRGF0YS5pc1ZhbGlkID0gY29uc3RyYWludHMtPmlzVmFsaWQoKTsKKyAgICBi
b29sIHN1Y2NlZWRlZDsKKworICAgIG1fcHJvY2Vzcy5zZW5kU3luYyhNZXNzYWdlczo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNl
V2l0aENvbnN0cmFpbnRzKGlkLCBkZXZpY2UsIGNvbnN0cmFpbnRzRGF0YSksIE1lc3NhZ2VzOjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVE
ZXZpY2VXaXRoQ29uc3RyYWludHM6OlJlcGx5KHN1Y2NlZWRlZCwgaW52YWxpZENvbnN0cmFpbnRz
KSwgMCk7CisKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKG5ldyBTb3VyY2UoU3RyaW5nOjpu
dW1iZXIoaWQpLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgZGV2aWNlLmxhYmVs
KCksIGlkLCAqdGhpcykpOworICAgIG1fc291cmNlcy5zZXQoaWQsIHNvdXJjZSk7CisgICAgcmV0
dXJuIHNvdXJjZTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlU3Rv
cHBlZCh1aW50NjRfdCBpZCkKK3sKKyAgICBBU1NFUlQobV9zb3VyY2VzLmNvbnRhaW5zKGlkKSk7
CisgICAgbV9zb3VyY2VzLmdldChpZCktPnN0b3AoKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6c291cmNlTXV0ZWRDaGFuZ2VkKHVpbnQ2NF90IGlkLCBib29sIG11dGVkKQor
eworICAgIEFTU0VSVChtX3NvdXJjZXMuY29udGFpbnMoaWQpKTsKKyAgICBtX3NvdXJjZXMuZ2V0
KGlkKS0+c2V0TXV0ZWQobXV0ZWQpOworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
Ojpzb3VyY2VFbmFibGVkQ2hhbmdlZCh1aW50NjRfdCBpZCwgYm9vbCBlbmFibGVkKQoreworICAg
IEFTU0VSVChtX3NvdXJjZXMuY29udGFpbnMoaWQpKTsKKyAgICBtX3NvdXJjZXMuZ2V0KGlkKS0+
c2V0RW5hYmxlZChlbmFibGVkKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
c291cmNlU2V0dGluZ3NDaGFuZ2VkKHVpbnQ2NF90IGlkLCBjb25zdCBSZWFsdGltZU1lZGlhU291
cmNlU2V0dGluZ3MmIHNldHRpbmdzKQoreworICAgIEFTU0VSVChtX3NvdXJjZXMuY29udGFpbnMo
aWQpKTsKKyAgICBtX3NvdXJjZXMuZ2V0KGlkKS0+c2V0U2V0dGluZ3Moc2V0dGluZ3MpOworfQor
Cit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzdG9yYWdlQ2hhbmdlZCh1aW50NjRfdCBp
ZCwgY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhhbmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFt
ZXMpCit7CisgICAgQVNTRVJUKG1fc291cmNlcy5jb250YWlucyhpZCkpOworICAgIG1fc291cmNl
cy5nZXQoaWQpLT5zZXRTdG9yYWdlKGhhbmRsZSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVz
KTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6cmluZ0J1ZmZlckZyYW1lQm91
bmRzQ2hhbmdlZCh1aW50NjRfdCBpZCwgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5k
RnJhbWUpCit7CisgICAgQVNTRVJUKG1fc291cmNlcy5jb250YWlucyhpZCkpOworICAgIG1fc291
cmNlcy5nZXQoaWQpLT5zZXRSaW5nQnVmZmVyRnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJh
bWUpOworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjphdWRpb1NhbXBsZXNBdmFp
bGFibGUodWludDY0X3QgaWQsIE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1l
cywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCit7CisgICAgQVNTRVJU
KG1fc291cmNlcy5jb250YWlucyhpZCkpOworICAgIGF1dG8mIHNvdXJjZSA9ICptX3NvdXJjZXMu
Z2V0KGlkKTsKKyAgICBzb3VyY2Uuc2V0UmluZ0J1ZmZlckZyYW1lQm91bmRzKHN0YXJ0RnJhbWUs
IGVuZEZyYW1lKTsKKyAgICBzb3VyY2UuYXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIG51bWJl
ck9mRnJhbWVzKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3RhcnRQcm9k
dWNpbmdEYXRhKHVpbnQ2NF90IGlkKQoreworICAgIG1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTdGFydFByb2R1Y2luZ0RhdGEoaWQpLCAwKTsK
K30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3RvcFByb2R1Y2luZ0RhdGEodWlu
dDY0X3QgaWQpCit7CisgICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OlN0b3BQcm9kdWNpbmdEYXRhKGlkKSwgMCk7Cit9CisKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmEzMjY2NjJhNjM5NzY4NzI4OWI1NTU1
NDFjYTNkZmJkYTYwN2ZjYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApAQCAtMCwwICsxLDgyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUg
IlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NTdXBwbGVtZW50LmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgQ3Jvc3NQcm9jZXNzUmVhbHRp
bWVBdWRpb1NvdXJjZTsKK2NsYXNzIFdlYlByb2Nlc3M7CisKK2NsYXNzIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyIDogcHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50LCBwdWJsaWMgSVBDOjpNZXNz
YWdlUmVjZWl2ZXIsIHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJl
RmFjdG9yeSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIo
V2ViUHJvY2VzcyopOworICAgIH5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlcigpOworCisgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CisKK3ByaXZhdGU6CisgICAgLy8gV2Vi
UHJvY2Vzc1N1cHBsZW1lbnQKKyAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyYpIGZpbmFsOworCisgICAgLy8gV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZTo6RmFjdG9yeToKKyAgICBSZWZQdHI8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZT4gY3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGNvbnN0
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
KiwgU3RyaW5nJikgZmluYWw7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmlu
YWw7CisKKyAgICAvLyBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIKKyAgICB2b2lk
IHNvdXJjZVN0b3BwZWQodWludDY0X3QgaWQpOworICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2Vk
KHVpbnQ2NF90IGlkLCBib29sIG11dGVkKTsKKyAgICB2b2lkIHNvdXJjZUVuYWJsZWRDaGFuZ2Vk
KHVpbnQ2NF90IGlkLCBib29sIGVuYWJsZWQpOworICAgIHZvaWQgc291cmNlU2V0dGluZ3NDaGFu
Z2VkKHVpbnQ2NF90IGlkLCBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MmKTsKKyAgICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKHVpbnQ2NF90IGlkLCBjb25zdCBTaGFyZWRN
ZW1vcnk6OkhhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYs
IHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKyAgICB2b2lkIHJpbmdCdWZmZXJGcmFtZUJvdW5k
c0NoYW5nZWQodWludDY0X3QgaWQsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZy
YW1lKTsKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh1aW50NjRfdCBpZCwgTWVkaWFU
aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0
X3QgZW5kRnJhbWUpOworCisgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QpOwor
ICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEodWludDY0X3QpOworCisgICAgY2xhc3MgU291cmNl
OworICAgIGZyaWVuZCBjbGFzcyBTb3VyY2U7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRy
PFNvdXJjZT4+IG1fc291cmNlczsKKyAgICBXZWJQcm9jZXNzJiBtX3Byb2Nlc3M7Cit9OworCit9
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZWVjMDU2NWM2ODY0YTQ2YjAwZTlmOGZiOTEwYzE4Yzg5ZTllNGExMwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgewor
ICAgIFNvdXJjZVN0b3BwZWQodWludDY0X3QgaWQpCisgICAgU291cmNlTXV0ZWRDaGFuZ2VkKHVp
bnQ2NF90IGlkLCBib29sIG11dGVkKQorICAgIFNvdXJjZUVuYWJsZWRDaGFuZ2VkKHVpbnQ2NF90
IGlkLCBib29sIGVuYWJsZWQpCisgICAgU291cmNlU2V0dGluZ3NDaGFuZ2VkKHVpbnQ2NF90IGlk
LCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MpCisgICAgU3Rv
cmFnZUNoYW5nZWQodWludDY0X3QgaWQsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUgc3Rv
cmFnZUhhbmRsZSwgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIGRlc2NyaXB0aW9u
LCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKKyAgICBBdWRpb1NhbXBsZXNBdmFpbGFibGUodWlu
dDY0X3QgaWQsIE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0
X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304502</attachid>
            <date>2017-03-15 08:33:32 -0700</date>
            <delta_ts>2017-03-15 09:27:27 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-169609-20170315083328.patch</filename>
            <type>text/plain</type>
            <size>72939</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzOTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA5ZjdjYzczODc3MTU4YTAxZDk4YWNj
MWE5M2E5YWU5NGRmMjg2NjAuLjE4ODZjMjU0NWUyOWRlYTdiZjllZDBjMzQ1N2ViNGRkYjNiYTRm
MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTctMDMtMTQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgT3B0aW9uYWxseSBjYXB0dXJlIGF1ZGlvIGluIHRoZSBV
SVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2OTYwOQorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAg
ICAgQWRkIGFuIGVuY29kZXIvZGVjb2RlciBtZXRob2QgZm9yICJ1bnNpZ25lZCBsb25nIiwgYSB0
eXBlIGZvdW5kIGluIHBsYXRmb3JtLWRlZmluZWQgc3RydWN0cy4KKworICAgICAgICAqIHd0Zi9w
ZXJzaXN0ZW5jZS9EZWNvZGVyLmNwcDoKKyAgICAgICAgKFdURjo6UGVyc2lzdGVuY2U6OkRlY29k
ZXI6OmRlY29kZSk6CisgICAgICAgICogd3RmL3BlcnNpc3RlbmNlL0RlY29kZXIuaDoKKyAgICAg
ICAgKiB3dGYvcGVyc2lzdGVuY2UvRW5jb2Rlci5jcHA6CisgICAgICAgIChXVEY6OlBlcnNpc3Rl
bmNlOjpFbmNvZGVyOjplbmNvZGUpOgorICAgICAgICAqIHd0Zi9wZXJzaXN0ZW5jZS9FbmNvZGVy
Lmg6CisKIDIwMTctMDMtMTQgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZWNvcmQgdGhlIEhhc2hTZXQvSGFzaE1hcCBvcGVyYXRpb25zIGluIERGRy9GVEwvQjMg
YW5kIHJlcGxheSB0aGVtIGluIGEgYmVuY2htYXJrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTA0Njg3Y2ZhMzNj
MTYyODZjODUyOWYzN2I0NzgzNzA0ZDRkMjgwMi4uMGJjYTBhNTM4ODA5YWExZjQ2MjRhZDRkNTQw
ZTlmYzk4ZjlkNThkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTAzLTE0ICBK
ZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIE9wdGlvbmFsbHkgY2Fw
dHVyZSBhdWRpbyBpbiB0aGUgVUlQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjk2MDkKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENo
cmlzdGVuc2VuLgorCisgICAgICAgIEV4cG9ydCBzb21lIHByZXZpb3VzbHkgdW4tZXhwb3J0ZWQg
c3ltYm9scyBmcm9tIFdlYkNvcmUgZm9yIHVzZSBpbiBXZWJLaXQyLgorCisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlv
L1dlYkF1ZGlvQnVmZmVyTGlzdC5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaDoKKwogMjAxNy0wMy0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxl
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZhY3RvcjogQWxsb3cgV2ViS2l0MiB0byBvdmVycmlk
ZSB0aGUgY3JlYXRpb24gb2YgUmVhbHRpbWVNZWRpYVNvdXJjZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjMGIy
N2U3NmU3NWViNTI2ZDhkNTI3ZWE1NmNhOWNlZjY4MzVkNzU5Li4yYmRhOWY4ZGMxMmZhY2JkZmJm
N2ZkMDg0OWZlZjhkNDA3NjVhZDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTkgQEAKKzIwMTct
MDMtMTQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgT3B0aW9u
YWxseSBjYXB0dXJlIGF1ZGlvIGluIHRoZSBVSVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTYwOQorCisgICAgICAgIFJldmlld2VkIGJ5
IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgQWRkIGEgbmV3IGNsYXNzIHBhaXIsIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyL1Byb3h5LCB0byBhbGxvdyBhIFJlYWx0aW1lTWVkaWFTb3VyY2UK
KyAgICAgICAgcmVxdWVzdGVkIGluIGEgV2ViUHJvY2VzcyB0byBiZSBjcmVhdGVkIGluIHRoZSBV
SVByb2Nlc3MgYW5kIHB1c2ggaXRzIGF1ZGlvIGRhdGEgYWNyb3NzIHRoZQorICAgICAgICBwcm9j
ZXNzIGJvdW5kYXJ5IHRvIGl0cyBjbGllbnRzIGluIHRoZSBXZWJQcm9jZXNzLiBCZWNhdXNlIHRo
ZXNlIGNsYXNzZXMgYXJlIGNsaWVudHMgb2YgdGhlCisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OnNpbmdsZXRvbigpLCB0aGV5IG11c3QgYmUgYSBzaW5nbGV0b24gaW4gdGhlIFdl
YlByb2Nlc3MgYXMgd2VsbCwKKyAgICAgICAgc28gdGhleSBhcmUgYXR0YWNoZWQgdG8gdGhlIFdl
YlByb2Nlc3MgY2xhc3MgaW4gdGhlIHdlYiBwcm9jZXNzIGFuZCB0byBXZWJQcm9jZXNzUHJveHkg
aW4KKyAgICAgICAgdGhlIFVJUHJvY2Vzcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpTb3VyY2VQcm94eSk6
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVBy
b3h5Ojp+U291cmNlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjpTb3VyY2VQcm94eTo6c291cmNlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OmRlc2NyaXB0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6Om51
bWJlck9mRnJhbWVzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6On5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRl
TWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6c3RhcnRQcm9kdWNpbmdEYXRhKToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6c3RvcFByb2R1
Y2luZ0RhdGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk6OnByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
Om5leHRTZXNzaW9uSUQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6U291cmNlOjpTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6U291cmNlOjp+U291cmNlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OlNvdXJjZTo6c2V0Q2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6c2V0U2V0dGluZ3MpOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpkZXNjcmlwdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnNldFN0b3JhZ2Up
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpzZXRS
aW5nQnVmZmVyRnJhbWVCb3VuZHMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6U291cmNlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIpOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6flVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN1cHBs
ZW1lbnROYW1lKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6Omlu
aXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3Jl
YXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZVN0b3BwZWQpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlTXV0ZWRDaGFuZ2VkKToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZUVuYWJsZWRD
aGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJj
ZVNldHRpbmdzQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpzdG9yYWdlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjpyaW5nQnVmZmVyRnJhbWVCb3VuZHNDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzdGFydFByb2R1Y2luZ0RhdGEpOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3RvcFByb2R1Y2luZ0Rh
dGEpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
aDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisKKyAgICAgICAgSW5pdGlhbGl6ZSBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlci9Qcm94eToKKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9j
ZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZv
cm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1By
b3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
V2ViUHJvY2Vzcyk6CisKKyAgICAgICAgV2ViVXNlck1lZGlhQ2xpZW50TWFjIGlzIG5vIGxvbmdl
ciBuZWNlc3Nhcnkgbm93IHRoYXQgdGhlIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIG92ZXJyaWRl
cworICAgICAgICB0aGUgZmFjdG9yaWVzOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2Vy
TWVkaWFDbGllbnQ6OldlYlVzZXJNZWRpYUNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVz
ZXJNZWRpYUNsaWVudDo6aW5pdGlhbGl6ZUZhY3Rvcmllcyk6IERlbGV0ZWQuCisKKyAgICAgICAg
QWRkIGEgbmV3IHByZWZlcmVuY2UgYW5kIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgbWVt
YmVyIHRvIGNvbnRyb2wgd2hldGhlcgorICAgICAgICBjYXB0dXJpbmcgaXMgZG9uZSBpbiB0aGUg
VUlQcm9jZXNzOgorCisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMu
aDoKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6Cisg
ICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKworICAgICAg
ICBBZGQgYW4gZW5jb2RlL2RlY29kZSBtZXRob2QgZm9yICJ1bnNpZ25lZCBsb25nIiwgYSB0eXBl
IGZvdW5kIGluIHBsYXRmb3JtLWRlZmluZWQgc3RydWN0cy4KKworICAgICAgICAqIFBsYXRmb3Jt
L0lQQy9EZWNvZGVyLmNwcDoKKyAgICAgICAgKElQQzo6RGVjb2Rlcjo6ZGVjb2RlKToKKyAgICAg
ICAgKiBQbGF0Zm9ybS9JUEMvRGVjb2Rlci5oOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9FbmNv
ZGVyLmNwcDoKKyAgICAgICAgKElQQzo6RW5jb2Rlcjo6ZW5jb2RlKToKKyAgICAgICAgKiBQbGF0
Zm9ybS9JUEMvRW5jb2Rlci5oOgorCisgICAgICAgIEFkZCBuZXcgZmlsZXMgdG8gdGhlIHByb2pl
Y3Q6CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5tYWtlOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwog
MjAxNy0wMy0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZWZhY3RvcjogQWxsb3cgV2ViS2l0MiB0byBvdmVycmlkZSB0aGUgY3JlYXRpb24gb2YgUmVhbHRp
bWVNZWRpYVNvdXJjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3BlcnNpc3RlbmNlL0Rl
Y29kZXIuY3BwIGIvU291cmNlL1dURi93dGYvcGVyc2lzdGVuY2UvRGVjb2Rlci5jcHAKaW5kZXgg
MzU0ZmYwNjA2YjAyODAxNDZhMmQyNDg2MmQyY2FhMWNlOGMzNjBjYS4uMGFkOWFlNTVkNGYyODA3
ZTc3ZGE1Njc2MTkzNTc4YTlkMTI1MzgyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvcGVy
c2lzdGVuY2UvRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dURi93dGYvcGVyc2lzdGVuY2UvRGVj
b2Rlci5jcHAKQEAgLTEwNyw2ICsxMDcsMTEgQEAgYm9vbCBEZWNvZGVyOjpkZWNvZGUoaW50NjRf
dCYgcmVzdWx0KQogICAgIHJldHVybiBkZWNvZGVOdW1iZXIocmVzdWx0KTsKIH0KIAorYm9vbCBE
ZWNvZGVyOjpkZWNvZGUodW5zaWduZWQgbG9uZyYgcmVzdWx0KQoreworICAgIHJldHVybiBkZWNv
ZGVOdW1iZXIocmVzdWx0KTsKK30KKwogYm9vbCBEZWNvZGVyOjpkZWNvZGUoZmxvYXQmIHJlc3Vs
dCkKIHsKICAgICByZXR1cm4gZGVjb2RlTnVtYmVyKHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9wZXJzaXN0ZW5jZS9EZWNvZGVyLmggYi9Tb3VyY2UvV1RGL3d0Zi9wZXJzaXN0
ZW5jZS9EZWNvZGVyLmgKaW5kZXggNDE0ZWM4OGZjMmYwOTRmODVmZWFhYzM4Njk4MDE0NWM5ODk4
Zjg4Ny4uMDY5NWE1YWIxZmQ0YWU2NjkwOTI5ZDlmMjZmYjg1YzBkOTc5YjBmZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvcGVyc2lzdGVuY2UvRGVjb2Rlci5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL3BlcnNpc3RlbmNlL0RlY29kZXIuaApAQCAtNTEsNiArNTEsNyBAQCBwdWJsaWM6CiAgICAg
V1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgZGVjb2RlKHVpbnQ2NF90Jik7CiAgICAgV1RGX0VYUE9S
VF9QUklWQVRFIGJvb2wgZGVjb2RlKGludDMyX3QmKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUg
Ym9vbCBkZWNvZGUoaW50NjRfdCYpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGRlY29k
ZSh1bnNpZ25lZCBsb25nJik7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgZGVjb2RlKGZs
b2F0Jik7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgZGVjb2RlKGRvdWJsZSYpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9wZXJzaXN0ZW5jZS9FbmNvZGVyLmNwcCBiL1NvdXJj
ZS9XVEYvd3RmL3BlcnNpc3RlbmNlL0VuY29kZXIuY3BwCmluZGV4IDBmMTFlMzQ4MWZmMzMwZjEy
YjRjOWEzOTc0MmY0ZmNjZmIxZTk0N2UuLmFmYjE5ZTQ3OGZmZGUwOTZlZWU5MjAzZGEwNWE4ZDA1
MDcxZjZlYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3BlcnNpc3RlbmNlL0VuY29kZXIu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3BlcnNpc3RlbmNlL0VuY29kZXIuY3BwCkBAIC0xMDUs
NiArMTA1LDExIEBAIHZvaWQgRW5jb2Rlcjo6ZW5jb2RlKGludDY0X3QgdmFsdWUpCiAgICAgZW5j
b2RlTnVtYmVyKHZhbHVlKTsKIH0KIAordm9pZCBFbmNvZGVyOjplbmNvZGUodW5zaWduZWQgbG9u
ZyB2YWx1ZSkKK3sKKyAgICBlbmNvZGVOdW1iZXIodmFsdWUpOworfQorCiB2b2lkIEVuY29kZXI6
OmVuY29kZShmbG9hdCB2YWx1ZSkKIHsKICAgICBlbmNvZGVOdW1iZXIodmFsdWUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvcGVyc2lzdGVuY2UvRW5jb2Rlci5oIGIvU291cmNlL1dURi93
dGYvcGVyc2lzdGVuY2UvRW5jb2Rlci5oCmluZGV4IDYxYzk2NTUzMGU3ZjFkMzBkMmYxMDY5MTFi
YzVkYWU1OGQwZDk1YWUuLjFiMjczY2RmMDQzM2E0YzYzOGZhYmJhMDljN2Q1MGM0ZGQxNDFlZGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3BlcnNpc3RlbmNlL0VuY29kZXIuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9wZXJzaXN0ZW5jZS9FbmNvZGVyLmgKQEAgLTc4LDYgKzc4LDcgQEAgcHJp
dmF0ZToKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBlbmNvZGUodWludDY0X3QpOwogICAg
IFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGVuY29kZShpbnQzMl90KTsKICAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgdm9pZCBlbmNvZGUoaW50NjRfdCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZv
aWQgZW5jb2RlKHVuc2lnbmVkIGxvbmcpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGVu
Y29kZShmbG9hdCk7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZW5jb2RlKGRvdWJsZSk7
CiAKQEAgLTEwMCw2ICsxMDEsNyBAQCB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW5jb2Rlcjo6U2FsdDxp
bnQzMl90PiB7IHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2YWx1ZSA9IDE3OyB9OwogdGVtcGxhdGUg
PD4gc3RydWN0IEVuY29kZXI6OlNhbHQ8aW50NjRfdD4geyBzdGF0aWMgY29uc3QgdW5zaWduZWQg
dmFsdWUgPSAxOTsgfTsKIHRlbXBsYXRlIDw+IHN0cnVjdCBFbmNvZGVyOjpTYWx0PGZsb2F0PiB7
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2YWx1ZSA9IDIzOyB9OwogdGVtcGxhdGUgPD4gc3RydWN0
IEVuY29kZXI6OlNhbHQ8ZG91YmxlPiB7IHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2YWx1ZSA9IDI5
OyB9OwordGVtcGxhdGUgPD4gc3RydWN0IEVuY29kZXI6OlNhbHQ8dW5zaWduZWQgbG9uZz4geyBz
dGF0aWMgY29uc3QgdW5zaWduZWQgdmFsdWUgPSAzMTsgfTsKIHRlbXBsYXRlIDw+IHN0cnVjdCBF
bmNvZGVyOjpTYWx0PHVpbnQ4X3QqPiB7IHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2YWx1ZSA9IDEw
MTsgfTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFR5cGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWExOWNjNWE1NTM3Yjg1ZTc1
NmY2MzBjZDU4OWZlYjlhNzI1ZmYzYi4uMGIzZWQzOTg3ODhjYjZhNGIwYjFlOWQ0OWQ1Njg4MWQw
OGVhNDY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtNjE2OCw3ICs2MTY4LDcgQEAKIAkJQ0RFNTk1OTcxQkYyNkUyMTAwQTFD
QkU4IC8qIENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTU5NTk2MUJGMjZFMjEwMEExQ0JFOCAvKiBD
RE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmggKi87IH07CiAJCUNERTU5NTlEMUJGMjc1NzEw
MEExQ0JFOCAvKiBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNTk1OUMxQkYyNzU3MTAwQTFDQkU4
IC8qIENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0gKi87IH07CiAJCUNERTY2N0E0MUU0
QkJGMTUwMEU4MTU0QSAvKiBXZWJBdWRpb0J1ZmZlckxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3QTIxRTRCQkYxNTAwRTgxNTRBIC8q
IFdlYkF1ZGlvQnVmZmVyTGlzdC5jcHAgKi87IH07Ci0JCUNERTY2N0E1MUU0QkJGMTUwMEU4MTU0
QSAvKiBXZWJBdWRpb0J1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENERTY2N0EzMUU0QkJGMTUwMEU4MTU0QSAvKiBXZWJBdWRpb0J1ZmZl
ckxpc3QuaCAqLzsgfTsKKwkJQ0RFNjY3QTUxRTRCQkYxNTAwRTgxNTRBIC8qIFdlYkF1ZGlvQnVm
ZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0RFNjY3QTMxRTRCQkYxNTAwRTgxNTRBIC8qIFdlYkF1ZGlvQnVmZmVyTGlzdC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERTdGQzQ0MTgxOTA0
QjEwMDJCQkI3NyAvKiBPcmRlckl0ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTdGQzQyMTgxOTA0QjEwMDJCQkI3NyAvKiBPcmRlckl0
ZXJhdG9yLmNwcCAqLzsgfTsKIAkJQ0RFN0ZDNDUxODE5MDRCMTAwMkJCQjc3IC8qIE9yZGVySXRl
cmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
RTdGQzQzMTgxOTA0QjEwMDJCQkI3NyAvKiBPcmRlckl0ZXJhdG9yLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RFODNEQjExODNDNDQwNjAwMzFF
QUEzIC8qIFZpZGVvUGxheWJhY2tRdWFsaXR5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTgzREFGMTgzQzQ0MDYwMDMxRUFBMyAvKiBWaWRlb1Bs
YXliYWNrUXVhbGl0eS5jcHAgKi87IH07CkBAIC02MTg1LDYgKzYxODUsNyBAQAogCQlDREVBN0M4
NTEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNjcmVlbi5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVBN0M4MzEyNzYyMzA0MDBCODQ2REQg
LyogUmVuZGVyRnVsbFNjcmVlbi5jcHAgKi87IH07CiAJCUNERUUzOTM3MTc5NzQyNTkwMDFENzU4
MCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENERUUzOTM2MTc5NzQyNTkwMDFENzU4MCAvKiBQdWJsaWNVUkxNYW5h
Z2VyLmNwcCAqLzsgfTsKIAkJQ0RFRjRGRDcxN0U4NUM4RjAwQUVFMjRCIC8qIEdyaWRMZW5ndGgu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERUY0RkQ2
MTdFODVDOEYwMEFFRTI0QiAvKiBHcmlkTGVuZ3RoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RFRkEyMjgxRTc2NjlFODAwMEFFOTlDIC8qIFBs
YXRmb3JtQXVkaW9EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDREU2NjdBMTFFNEJCQTREMDBFODE1NEEgLyogUGxhdGZvcm1BdWRpb0RhdGEuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDREYyQjAw
NDE4MUYwNTlDMDBGMkI0MjQgLyogTWVkaWFEZXNjcmlwdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGMkIwMDMxODFGMDU5QzAwRjJCNDI0IC8q
IE1lZGlhRGVzY3JpcHRpb24uaCAqLzsgfTsKIAkJQ0RGMkIwMTAxODIwNTQwNjAwRjJCNDI0IC8q
IE1vY2tCb3guY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0RGMkIwMDYxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tCb3guY3BwICovOyB9OwogCQlDREYy
QjAxMTE4MjA1NDA2MDBGMkI0MjQgLyogTW9ja0JveC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGMkIwMDcxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tC
b3guaCAqLzsgfTsKQEAgLTI2OTY5LDYgKzI2OTcwLDcgQEAKIAkJCQlGRDMxNjA5OTEyQjAyNkY3
MDBDMUEzNTkgLyogSFJURkRhdGFiYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA5QjEy
QjAyNkY3MDBDMUEzNTkgLyogSFJURkRhdGFiYXNlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGRDMxNjA5RDEyQjAyNkY3MDBDMUEzNTkgLyogSFJURkVsZXZhdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQ0RFRkEyMjgxRTc2NjlFODAwMEFFOTlDIC8qIFBsYXRmb3JtQXVkaW9EYXRhLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA5RjEyQjAyNkY3MDBDMUEzNTkgLyogSFJURktlcm5l
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwQTExMkIwMjZGNzAwQzFBMzU5IC8qIEhSVEZQ
YW5uZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTdFMjNBMTA5MTQ0OTUwMDEwRDM2MSAvKiBI
VE1MQWxsQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9XZWJBdWRpb0J1ZmZlckxpc3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL1dlYkF1ZGlvQnVmZmVyTGlzdC5oCmluZGV4IGJiZjNjMTM5YjYyNWU3
YjRjNzlhZjg0MjQxMzhiNTA0MDczMTg1YTguLmRiNjVkMzUzNGUzYmE1ZTc4NzljZjJmNGQ5Njg0
MDgwYzA0ZjYxNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1dl
YkF1ZGlvQnVmZmVyTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1dl
YkF1ZGlvQnVmZmVyTGlzdC5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIENBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbjsKIGNsYXNzIFdlYkF1ZGlvQnVmZmVyTGlzdCA6IHB1YmxpYyBQbGF0Zm9ybUF1
ZGlvRGF0YSB7CiBwdWJsaWM6CiAgICAgV2ViQXVkaW9CdWZmZXJMaXN0KGNvbnN0IENBQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYpOwotICAgIFdlYkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mLCB1aW50MzJfdCBzYW1wbGVDb3VudCk7CisgICAgV0VCQ09SRV9F
WFBPUlQgV2ViQXVkaW9CdWZmZXJMaXN0KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYs
IHVpbnQzMl90IHNhbXBsZUNvdW50KTsKICAgICBXZWJBdWRpb0J1ZmZlckxpc3QoY29uc3QgQ0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgQ01TYW1wbGVCdWZmZXJSZWYpOwogCiAgICAgQXVkaW9C
dWZmZXJMaXN0KiBsaXN0KCkgY29uc3QgeyByZXR1cm4gbV9saXN0LmdldCgpOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmgKaW5kZXggNWFh
YjQ5MjdkZTBhZDk3ZjhiODE1ODEyNDI5YWZlOTZiNDdiNTMxYi4uNDVjNTVkYzEzMDE4MTgyMWQ2
MDhlOGI3M2FkN2Y3NjQ1ZmRmODIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vbWFjL0NBUmluZ0J1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL21hYy9DQVJpbmdCdWZmZXIuaApAQCAtODUsNiArODUsNyBAQCBwdWJsaWM6CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDdXJyZW50RnJhbWVCb3VuZHModWludDY0X3Qgc3RhcnRG
cmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOwogCiAgICAgdWludDMyX3QgY2hhbm5lbENvdW50KCkg
Y29uc3QgeyByZXR1cm4gbV9jaGFubmVsQ291bnQ7IH0KKyAgICBDQVJpbmdCdWZmZXJTdG9yYWdl
JiBzdG9yYWdlKCkgeyByZXR1cm4gbV9idWZmZXJzOyB9CiAKIHByaXZhdGU6CiAgICAgc2l6ZV90
IGZyYW1lT2Zmc2V0KHVpbnQ2NF90IGZyYW1lTnVtYmVyKSB7IHJldHVybiAoZnJhbWVOdW1iZXIg
JiBtX2ZyYW1lQ291bnRNYXNrKSAqIG1fYnl0ZXNQZXJGcmFtZTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5o
CmluZGV4IGFjYWNkZWE4MzQyYjVjYWJiMjQyNWYwMjNiOWQ5ZmFiNmM0ODEzNGEuLjEyOWJlNjRm
M2M4NDY3Y2Y5ZmRhNzA2Mzg3ZDBkMzA0MDlhZjkyYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAg
LTYxLDcgKzYxLDcgQEAgY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlOwogY2xhc3MgUGxhdGZvcm1B
dWRpb0RhdGE7CiBjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M7CiAKLWNsYXNzIFJl
YWx0aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxSZWFsdGltZU1lZGlhU291cmNl
PiB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFJl
ZkNvdW50ZWQ8UmVhbHRpbWVNZWRpYVNvdXJjZT4gewogcHVibGljOgogICAgIGNsYXNzIE9ic2Vy
dmVyIHsKICAgICBwdWJsaWM6CkBAIC0yMDAsNiArMjAwLDggQEAgcHJvdGVjdGVkOgogICAgIHZp
cnR1YWwgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IEZsYXR0ZW5lZENvbnN0cmFpbnQmKTsK
ICAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTaXplQW5kRnJhbWVSYXRlKHN0ZDo6b3B0aW9uYWw8aW50
PiB3aWR0aCwgc3RkOjpvcHRpb25hbDxpbnQ+IGhlaWdodCwgc3RkOjpvcHRpb25hbDxkb3VibGU+
KTsKIAorICAgIGNvbnN0IFZlY3RvcjxPYnNlcnZlcio+IG9ic2VydmVycygpIGNvbnN0IHsgcmV0
dXJuIG1fb2JzZXJ2ZXJzOyB9CisKICAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9lbmFibGVkIHsgdHJ1ZSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CmluZGV4IGIxY2VlMTQ1
Mzk5ZGIwYjE1N2YxMjA0YzdjZmVkMmNhZjUzZjZiZTkuLmNlMzYwZjI1MzRhMTgzNTIwOTM5MjMx
N2ViMDMwZjk5ZDM1YTQzZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CkBAIC02MjksNiArNjI5LDgg
QEAgc2V0KFdlYktpdDJfTUVTU0FHRVNfSU5fRklMRVMKIAogICAgIFVJUHJvY2Vzcy9BdXRvbWF0
aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLm1lc3NhZ2VzLmluCiAKKyAgICBVSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorCiAgICAgVUlQcm9j
ZXNzL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogCiAgICAgVUlQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5Lm1lc3NhZ2VzLmluCkBAIC02NTcsNiArNjU5
LDggQEAgc2V0KFdlYktpdDJfTUVTU0FHRVNfSU5fRklMRVMKIAogICAgIFdlYlByb2Nlc3MvSWNv
bkRhdGFiYXNlL1dlYkljb25EYXRhYmFzZVByb3h5Lm1lc3NhZ2VzLmluCiAKKyAgICBXZWJQcm9j
ZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluCisKICAg
ICBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ01vbml0b3IubWVzc2FnZXMuaW4KICAg
ICBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1Jlc29sdmVyLm1lc3NhZ2VzLmluCiAg
ICAgV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQubWVzc2FnZXMuaW4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2Vi
S2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDk5NDkyZmZhZWExNDRlZTRjN2Y0ZTVlZTVk
OTFlM2Y2NmI4YjVlNTAuLjlkZWYzNzA0Yjc0ZDQ1ODhiYWRjMGI0MmMxMjA3MDdjYWZkOTFjNGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291
cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNDUsNiArNDUsNyBAQCBWUEFUSCA9
IFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24gXAogICAgICQoV2ViS2l0
MikvV2ViUHJvY2Vzcy9JY29uRGF0YWJhc2UgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9N
ZWRpYUNhY2hlIFwKKyAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0gXAogICAg
ICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9OZXR3b3JrIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9Ob3RpZmljYXRp
b25zIFwKQEAgLTY1LDYgKzY2LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nl
c3MvQ29jb2EgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL0RhdGFiYXNlcyBcCiAgICAgJChX
ZWJLaXQyKS9VSVByb2Nlc3MvRG93bmxvYWRzIFwKKyAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9N
ZWRpYVN0cmVhbSBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvTmV0d29yayBcCiAgICAgJChX
ZWJLaXQyKS9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMgXAogICAgICQoV2ViS2l0
MikvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMgXApAQCAtMTIxLDYgKzEyMyw4IEBAIE1FU1NBR0Vf
UkVDRUlWRVJTID0gXAogICAgIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIgXAogICAgIFN0
b3JhZ2VBcmVhTWFwIFwKICAgICBTdG9yYWdlTWFuYWdlciBcCisgICAgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIgXAorICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkgXAogICAgIFZpZXdH
ZXN0dXJlQ29udHJvbGxlciBcCiAgICAgVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3RvciBcCiAg
ICAgVmlld1VwZGF0ZURpc3BhdGNoZXIgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vSVBDL0RlY29kZXIuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0RlY29k
ZXIuY3BwCmluZGV4IDc0MGEwY2NlZDE3OGQ2YjZhNzU4NDNjMGE3OTA2OWNhMzJjMDlkYzIuLjAz
NDJiMWQ4ZDZiM2RmMDUxMGY0ZDY2NGYzM2E2MzE2NDMyYzQxYTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9EZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9JUEMvRGVjb2Rlci5jcHAKQEAgLTI1MSw2ICsyNTEsMTUgQEAgYm9vbCBEZWNvZGVy
OjpkZWNvZGUoaW50NjRfdCYgcmVzdWx0KQogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIERl
Y29kZXI6OmRlY29kZSh1bnNpZ25lZCBsb25nJiByZXN1bHQpCit7CisgICAgaWYgKCFhbGlnbkJ1
ZmZlclBvc2l0aW9uKHNpemVvZihyZXN1bHQpLCBzaXplb2YocmVzdWx0KSkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIGRlY29kZVZhbHVlRnJvbUJ1ZmZlcihyZXN1bHQsIG1fYnVmZmVy
UG9zKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBEZWNvZGVyOjpkZWNvZGUoZmxvYXQm
IHJlc3VsdCkKIHsKICAgICBpZiAoIWFsaWduQnVmZmVyUG9zaXRpb24oc2l6ZW9mKHJlc3VsdCks
IHNpemVvZihyZXN1bHQpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQ
Qy9EZWNvZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvRGVjb2Rlci5oCmluZGV4
IDVhMzBjNDI1ODc5ZDc3OTEyNmFiNWY0ZDY5NWNmODhiY2Q0NjY1N2IuLjdmMDU5YmQzOThhZDI0
ODY4Njg0ODhjZTEyMTVlZTE0MTE4M2NjNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0lQQy9EZWNvZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Rl
Y29kZXIuaApAQCAtODQsNiArODQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBkZWNvZGUodWludDY0
X3QmKTsKICAgICBib29sIGRlY29kZShpbnQzMl90Jik7CiAgICAgYm9vbCBkZWNvZGUoaW50NjRf
dCYpOworICAgIGJvb2wgZGVjb2RlKHVuc2lnbmVkIGxvbmcmKTsKICAgICBib29sIGRlY29kZShm
bG9hdCYpOwogICAgIGJvb2wgZGVjb2RlKGRvdWJsZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9JUEMvRW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9JUEMvRW5jb2Rlci5jcHAKaW5kZXggNmNkNzQ3MWQxMmNjZjE0MDYwY2YyZTRjMjcxYjNlNTBm
ODlmNzI3NC4uZDY0MDBjNjkzYTI2MDU5ZjQ4MGZlY2Q0NmM0MWVjNjU1MmJmNDFhNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0VuY29kZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9FbmNvZGVyLmNwcApAQCAtMjM2LDYgKzIzNiwxMiBAQCB2
b2lkIEVuY29kZXI6OmVuY29kZShpbnQ2NF90IG4pCiAgICAgY29weVZhbHVlVG9CdWZmZXIobiwg
YnVmZmVyKTsKIH0KIAordm9pZCBFbmNvZGVyOjplbmNvZGUodW5zaWduZWQgbG9uZyBuKQorewor
ICAgIHVpbnQ4X3QqIGJ1ZmZlciA9IGdyb3coc2l6ZW9mKG4pLCBzaXplb2YobikpOworICAgIGNv
cHlWYWx1ZVRvQnVmZmVyKG4sIGJ1ZmZlcik7Cit9CisKIHZvaWQgRW5jb2Rlcjo6ZW5jb2RlKGZs
b2F0IG4pCiB7CiAgICAgdWludDhfdCogYnVmZmVyID0gZ3JvdyhzaXplb2YobiksIHNpemVvZihu
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvRW5jb2Rlci5oIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0VuY29kZXIuaAppbmRleCA5MmY5YmEyNTZjM2I0
ZGU5YWNiMjcyMmNlZTkxNTU3YWVkZTRkZGUwLi4zYmE3OThiNTdhNWM4ZjBlYmRhN2M5ZTRkZDEx
OGI0MjE1YzNiNjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvRW5j
b2Rlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9FbmNvZGVyLmgKQEAgLTk2
LDYgKzk2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGVuY29kZSh1aW50NjRfdCk7CiAgICAgdm9p
ZCBlbmNvZGUoaW50MzJfdCk7CiAgICAgdm9pZCBlbmNvZGUoaW50NjRfdCk7CisgICAgdm9pZCBl
bmNvZGUodW5zaWduZWQgbG9uZyk7CiAgICAgdm9pZCBlbmNvZGUoZmxvYXQpOwogICAgIHZvaWQg
ZW5jb2RlKGRvdWJsZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
cmVmZXJlbmNlc0RlZmluaXRpb25zLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVy
ZW5jZXNEZWZpbml0aW9ucy5oCmluZGV4IDdmZjc3MDI4YmZiNWMwNTVkOGViMmQ2YTA1MjE4ODQ4
ZmFkNmM1OWEuLmI5YzE1OWRiMDg2ZWIyNTY3MWE0ZWJjODM2MmJmMjA0OTcyOTVkODMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaApA
QCAtMTAzLDYgKzEwMywxMiBAQAogI2RlZmluZSBERUZBVUxUX0NBTlZBU19VU0VTX0FDQ0VMRVJB
VEVEX0RSQVdJTkcgdHJ1ZQogI2VuZGlmCiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNkZWZpbmUg
REVGQVVMVF9TSE9VTERfQ0FQVFVSRV9BVURJT19JTl9VSVBST0NFU1MgdHJ1ZQorI2Vsc2UKKyNk
ZWZpbmUgREVGQVVMVF9TSE9VTERfQ0FQVFVSRV9BVURJT19JTl9VSVBST0NFU1MgZmFsc2UKKyNl
bmRpZgorCiAvLyBtYWNybyhLZXlVcHBlciwgS2V5TG93ZXIsIFR5cGVOYW1lVXBwZXIsIFR5cGVO
YW1lLCBEZWZhdWx0VmFsdWUsIEh1bWFuUmVhZGFibGVOYW1lLCBIdW1hblJlYWRhYmxlRGVzY3Jp
cHRpb24pCiAKICNkZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX0JPT0xfUFJFRkVSRU5DRShtYWNybykg
XApAQCAtMjUyLDYgKzI1OCw3IEBACiAgICAgbWFjcm8oR2FtZXBhZHNFbmFibGVkLCBnYW1lcGFk
c0VuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUsICJHYW1lcGFkcyIsICJXZWIgR2FtZXBhZCBBUEkg
c3VwcG9ydCIpIFwKICAgICBtYWNybyhJbnB1dEV2ZW50c0VuYWJsZWQsIGlucHV0RXZlbnRzRW5h
YmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSwgIklucHV0IEV2ZW50cyIsICJFbmFibGUgSW5wdXRFdmVu
dHMgc3VwcG9ydCIpIFwKICAgICBtYWNybyhDcmVkZW50aWFsTWFuYWdlbWVudEVuYWJsZWQsIGNy
ZWRlbnRpYWxNYW5hZ2VtZW50RW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UsICJDcmVkZW50aWFs
IE1hbmFnZW1lbnQiLCAiRW5hYmxlIENyZWRlbnRpYWwgTWFuYWdlbWVudCBzdXBwb3J0IikgXAor
ICAgIG1hY3JvKFNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzLCBzaG91bGRDYXB0dXJlQXVk
aW9JblVJUHJvY2VzcywgQm9vbCwgYm9vbCwgREVGQVVMVF9TSE9VTERfQ0FQVFVSRV9BVURJT19J
Tl9VSVBST0NFU1MsICJDYXB0dXJlIiwgIkNhcHR1cmUgQXVkaW8gaW4gVUlQcm9jZXNzIikgXAog
ICAgIFwKIAogI2RlZmluZSBGT1JfRUFDSF9XRUJLSVRfRE9VQkxFX1BSRUZFUkVOQ0UobWFjcm8p
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcAppbmRleCA1MTJkMjEyZDg0YTAxMTgwOGMyOWE4YjUxODQxOWUyMGE1MTc2
YjFjLi5mMzNlYTZjMGE4M2I0OWIwMWU3YTE2YWNkNWExMWViYTljMzExNjM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCkBAIC02OCw2ICs2OCw3IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6
ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1lZGlh
S2V5U3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQogICAgIGVuY29kZXIgPDwgYXVkaW9DYXB0dXJlRXh0ZW5zaW9uSGFuZGxlOworICAgIGVu
Y29kZXIgPDwgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3M7CiAjZW5kaWYKICAgICBlbmNv
ZGVyIDw8IHNob3VsZFVzZVRlc3RpbmdOZXR3b3JrU2Vzc2lvbjsKICAgICBlbmNvZGVyIDw8IHVy
bFNjaGVtZXNSZWdpc3RlcmVkQXNFbXB0eURvY3VtZW50OwpAQCAtMTg5LDYgKzE5MCw4IEBAIGJv
b2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVj
b2RlciwgV2ViUHJvY2Vzc0NyZWF0CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuYXVkaW9DYXB0dXJlRXh0ZW5zaW9uSGFuZGxlKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVy
cy5zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcykpCisgICAgICAgIHJldHVybiBmYWxzZTsK
ICNlbmRpZgogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5zaG91bGRVc2VUZXN0
aW5nTmV0d29ya1Nlc3Npb24pKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBh
M2U2MmNmOWQ0MzFmNDBiZGNhN2E1YzgwMGNjNTcwNTk3MWM4ZTk0Li5mZDgwNmIyMjAyNDc5ZTE2
MDQ4NjFkZjk4ZTA4Y2FiMWExYWE2MGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTg4LDYgKzg4LDcgQEAgc3Ry
dWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZSBtZWRpYUtleVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CiAjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgYXVkaW9DYXB0
dXJlRXh0ZW5zaW9uSGFuZGxlOworICAgIGJvb2wgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nl
c3MgeyBmYWxzZSB9OwogI2VuZGlmCiAgICAgU3RyaW5nIG1lZGlhS2V5U3RvcmFnZURpcmVjdG9y
eTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwYWZjN2EyMGNh
OWEyZjc4NjU3MzFiOGNiMTlhOWI1YzM5MGM0ZGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAK
QEAgLTAsMCArMSwxNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIgorCisjaWYgUExBVEZPUk0oQ09D
T0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVy
U3RvcmFnZS5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIK
KyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNz
UHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvTWVkaWFDb25zdHJhaW50c0ltcGwuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlz
dC5oPgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OjpTb3VyY2VQcm94eSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZl
ciwgcHVibGljIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpDbGllbnQgeworcHVibGljOgorICAg
IFNvdXJjZVByb3h5KHVpbnQ2NF90IGlkLCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5JiBt
YW5hZ2VyLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCisgICAgICAgIDogbV9p
ZChpZCkKKyAgICAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKKyAgICAgICAgLCBtX3NvdXJjZShX
VEZNb3ZlKHNvdXJjZSkpCisgICAgICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWVSZWY8U2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2U+KHRoaXMpKSkKKyAgICB7CisgICAgICAgIG1fc291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7
CisgICAgfQorCisgICAgflNvdXJjZVByb3h5KCkKKyAgICB7CisgICAgICAgIHN0b3JhZ2UoKS5p
bnZhbGlkYXRlKCk7CisgICAgICAgIG1fc291cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7Cisg
ICAgfQorCisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKCkgeyByZXR1cm4gbV9zb3Vy
Y2U7IH0KKyAgICBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSYgc3RvcmFnZSgpIHsgcmV0dXJuIHN0
YXRpY19jYXN0PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLnN0b3JhZ2Uo
KSk7IH0KKyAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKCkgeyByZXR1
cm4gbV9kZXNjcmlwdGlvbjsgfQorICAgIGludDY0X3QgbnVtYmVyT2ZGcmFtZXMoKSB7IHJldHVy
biBtX251bWJlck9mRnJhbWVzOyB9CisKKyAgICB2b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5hbCB7
CisgICAgICAgIG1fbWFuYWdlci5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OlNvdXJjZVN0b3BwZWQobV9pZCksIDApOworICAgIH0KKworICAgIHZvaWQg
c291cmNlTXV0ZWRDaGFuZ2VkKCkgZmluYWwgeworICAgICAgICBtX21hbmFnZXIucHJvY2Vzcygp
LnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2VNdXRlZENoYW5n
ZWQobV9pZCwgbV9zb3VyY2UtPm11dGVkKCkpLCAwKTsKKyAgICB9CisKKyAgICB2b2lkIHNvdXJj
ZUVuYWJsZWRDaGFuZ2VkKCkgZmluYWwgeworICAgICAgICBtX21hbmFnZXIucHJvY2VzcygpLnNl
bmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2VFbmFibGVkQ2hhbmdl
ZChtX2lkLCBtX3NvdXJjZS0+ZW5hYmxlZCgpKSwgMCk7CisgICAgfQorCisgICAgdm9pZCBzb3Vy
Y2VTZXR0aW5nc0NoYW5nZWQoKSBmaW5hbCB7CisgICAgICAgIG1fbWFuYWdlci5wcm9jZXNzKCku
c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZVNldHRpbmdzQ2hh
bmdlZChtX2lkLCBtX3NvdXJjZS0+c2V0dGluZ3MoKSksIDApOworICAgIH0KKworICAgIHZvaWQg
YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgUGxhdGZv
cm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVz
Y3JpcHRpb24sIHNpemVfdCBudW1iZXJPZkZyYW1lcykgZmluYWwgeworICAgICAgICBpZiAobV9k
ZXNjcmlwdGlvbiAhPSBkZXNjcmlwdGlvbikgeworICAgICAgICAgICAgQVNTRVJUKGRlc2NyaXB0
aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNB
QXVkaW9TdHJlYW1CYXNpY1R5cGUpOworICAgICAgICAgICAgbV9kZXNjcmlwdGlvbiA9ICpXVEY6
OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5wbGF0
Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOworCisgICAgICAgICAgICAvLyBBbGxvY2F0
ZSBhIHJpbmcgYnVmZmVyIGxhcmdlIGVub3VnaCB0byBjb250YWluIDIgc2Vjb25kcyBvZiBhdWRp
by4KKyAgICAgICAgICAgIG1fbnVtYmVyT2ZGcmFtZXMgPSBtX2Rlc2NyaXB0aW9uLnNhbXBsZVJh
dGUoKSAqIDI7CisgICAgICAgICAgICBtX3JpbmdCdWZmZXIuYWxsb2NhdGUobV9kZXNjcmlwdGlv
bi5zdHJlYW1EZXNjcmlwdGlvbigpLCBtX251bWJlck9mRnJhbWVzKTsKKyAgICAgICAgfQorCisg
ICAgICAgIEFTU0VSVChpczxXZWJBdWRpb0J1ZmZlckxpc3Q+KGF1ZGlvRGF0YSkpOworICAgICAg
ICBtX3JpbmdCdWZmZXIuc3RvcmUoZG93bmNhc3Q8V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRpb0Rh
dGEpLmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOworICAgICAgICB1
aW50NjRfdCBzdGFydEZyYW1lOworICAgICAgICB1aW50NjRfdCBlbmRGcmFtZTsKKyAgICAgICAg
bV9yaW5nQnVmZmVyLmdldEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7
CisgICAgICAgIG1fbWFuYWdlci5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OkF1ZGlvU2FtcGxlc0F2YWlsYWJsZShtX2lkLCB0aW1lLCBudW1iZXJPZkZy
YW1lcywgc3RhcnRGcmFtZSwgZW5kRnJhbWUpLCAwKTsKKyAgICB9CisKKyAgICB2b2lkIHN0b3Jh
Z2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSogc3RvcmFnZSkgZmluYWwgeworICAgICAgICBTaGFyZWRN
ZW1vcnk6OkhhbmRsZSBoYW5kbGU7CisgICAgICAgIGlmIChzdG9yYWdlKQorICAgICAgICAgICAg
c3RvcmFnZS0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpS
ZWFkT25seSk7CisgICAgICAgIG1fbWFuYWdlci5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlN0b3JhZ2VDaGFuZ2VkKG1faWQsIGhhbmRsZSwgbV9kZXNj
cmlwdGlvbiwgbV9udW1iZXJPZkZyYW1lcyksIDApOworICAgIH0KKworcHJvdGVjdGVkOgorICAg
IHVpbnQ2NF90IG1faWQ7CisgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSYgbV9tYW5h
Z2VyOworICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKKyAgICBDQVJpbmdC
dWZmZXIgbV9yaW5nQnVmZmVyOworICAgIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2Ny
aXB0aW9uIHsgfTsKKyAgICBpbnQ2NF90IG1fbnVtYmVyT2ZGcmFtZXMgeyAwIH07Cit9OworCitV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
KFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcykKKyAgICA6IG1fcHJvY2Vzcyhwcm9jZXNzKQorewor
ICAgIG1fcHJvY2Vzcy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMpOworfQorCitVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Ojp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgp
Cit7CisgICAgbV9wcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKK30KKwordm9p
ZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1
cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IENhcHR1cmVEZXZpY2Um
IGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50c0RhdGEmIGNvbnN0cmFpbnRzRGF0YSwgYm9v
bCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cykKK3sKKyAgICBhdXRvIGNv
bnN0cmFpbnRzID0gTWVkaWFDb25zdHJhaW50c0ltcGw6OmNyZWF0ZShjb25zdHJhaW50c0RhdGEp
OworICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBzb3VyY2UgPSBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5kZWZhdWx0QXVkaW9GYWN0b3J5KCktPmNyZWF0ZU1l
ZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhkZXZpY2UsIGNvbnN0cmFp
bnRzLnB0cigpLCBpbnZhbGlkQ29uc3RyYWludHMpOworICAgIHN1Y2NlZWRlZCA9ICEhc291cmNl
OworICAgIAorICAgIGlmIChzb3VyY2UpCisgICAgICAgIG1fcHJveGllcy5zZXQoaWQsIHN0ZDo6
bWFrZV91bmlxdWU8U291cmNlUHJveHk+KGlkLCAqdGhpcywgc291cmNlLnJlbGVhc2VOb25OdWxs
KCkpKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzdGFydFByb2R1
Y2luZ0RhdGEodWludDY0X3QgaWQpCit7CisgICAgYXV0byBpdGVyID0gbV9wcm94aWVzLmZpbmQo
aWQpOworICAgIGlmIChpdGVyICE9IG1fcHJveGllcy5lbmQoKSkKKyAgICAgICAgaXRlci0+dmFs
dWUtPnNvdXJjZSgpLnN0YXJ0UHJvZHVjaW5nRGF0YSgpOworfQorCit2b2lkIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6OnN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQoreworICAg
IGF1dG8gaXRlciA9IG1fcHJveGllcy5maW5kKGlkKTsKKyAgICBpZiAoaXRlciAhPSBtX3Byb3hp
ZXMuZW5kKCkpCisgICAgICAgIGl0ZXItPnZhbHVlLT5zb3VyY2UoKS5zdG9wUHJvZHVjaW5nRGF0
YSgpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODExMzIxZGJhY2EwNDc1ZWQ0NzlmMmJiZmJiMzVlNTY2NGQ4ZjZkMgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRl
ICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAi
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBT
aGFyZWRNZW1vcnk7CitjbGFzcyBXZWJQcm9jZXNzUHJveHk7CisKK2NsYXNzIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkgOiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK3B1Ymxp
YzoKKyAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KFdlYlByb2Nlc3NQcm94eSYpOwor
ICAgIH5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCk7CisKKyAgICBXZWJQcm9jZXNzUHJv
eHkmIHByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX3Byb2Nlc3M7IH0KKworcHJpdmF0ZToKKyAg
ICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisgICAgdm9pZCBkaWRSZWNlaXZl
U3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVf
cHRyPElQQzo6RW5jb2Rlcj4mKSBmaW5hbDsKKworICAgIHZvaWQgY3JlYXRlTWVkaWFTb3VyY2VG
b3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEmLCBi
b29sJiBzdWNjZWVkZWQsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnRzKTsKKyAgICB2b2lkIHN0
YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CisgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSh1
aW50NjRfdCk7CisKKyAgICBjbGFzcyBTb3VyY2VQcm94eTsKKyAgICBmcmllbmQgY2xhc3MgU291
cmNlUHJveHk7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRyPFNvdXJjZVBy
b3h5Pj4gbV9wcm94aWVzOworICAgIFdlYlByb2Nlc3NQcm94eSYgbV9wcm9jZXNzOworfTsKKwor
fQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzRiOGNiYjdiOGE2OWI3M2IzOTdhOWU5ZDJiY2MwZTcwYjEzMTE1ZgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjggQEAKKyMgQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+IFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkgeworICAgIENyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdp
dGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2Us
IHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSBjb25zdHJhaW50cykgLT4gKGJv
b2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cykKKyAgICBTdGFydFByb2R1Y2lu
Z0RhdGEodWludDY0X3QgaWQpCisgICAgU3RvcFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bv
b2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9v
bENvY29hLm1tCmluZGV4IDg3MzhmMDcwNjM3ZjQ5MGYxZjA4NmMwOTliOTM3NGU3NDBlY2M3ZWUu
LmY0NzNiNWQ4MTIxOGViZjJmMDJhOWFmZmZiYWE1ZTE0OTk5YjhhZjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBA
IC0yNTgsNiArMjU4LDggQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXpl
V2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJgogICAgIC8vIEZJWE1FOiBS
ZW1vdmUgdGhpcyBhbmQgcmVsYXRlZCBwYXJhbWV0ZXIgd2hlbiA8cmRhcjovL3Byb2JsZW0vMjk0
NDgzNjg+IGlzIGZpeGVkLgogICAgIGlmIChtZWRpYVN0cmVhbUVuYWJsZWQgfHwgd2ViUlRDRW5h
YmxlZCkKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yR2VuZXJpY0V4
dGVuc2lvbigiY29tLmFwcGxlLndlYmtpdC5taWNyb3Bob25lIiwgcGFyYW1ldGVycy5hdWRpb0Nh
cHR1cmVFeHRlbnNpb25IYW5kbGUpOworCisgICAgcGFyYW1ldGVycy5zaG91bGRDYXB0dXJlQXVk
aW9JblVJUHJvY2VzcyA9IG1fZGVmYXVsdFBhZ2VHcm91cC0+cHJlZmVyZW5jZXMoKS5zaG91bGRD
YXB0dXJlQXVkaW9JblVJUHJvY2VzcygpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggNWZmNjRkNjQ4YzRiNzg0MjVmZDkx
MjcwNjM0N2YyODc4Zjk0ZTUwMC4uY2QxZGNkN2Q1NmVjNjc3ZDI0Yzk3OTk2Zjc4ZDRiZDEwMjU3
ZDU5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAK
QEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIlRl
eHRDaGVja2VyU3RhdGUuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5oIgorI2luY2x1ZGUgIlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtLmgiCiAjaW5jbHVkZSAiV2ViSWNvbkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVj
dG9yVXRpbGl0aWVzLmgiCkBAIC0xMDQsOSArMTA1LDE0IEBAIFdlYlByb2Nlc3NQcm94eTo6V2Vi
UHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgV2Vic2l0ZURhdGFTdG9y
ZSoKICAgICAsIG1faXNSZXNwb25zaXZlKE5vT3JNYXliZTo6TWF5YmUpCiAgICAgLCBtX3Zpc2li
bGVQYWdlQ291bnRlcihbdGhpc10oUmVmQ291bnRlckV2ZW50KSB7IHVwZGF0ZUJhY2tncm91bmRS
ZXNwb25zaXZlbmVzc1RpbWVyKCk7IH0pCiAgICAgLCBtX3dlYnNpdGVEYXRhU3RvcmUod2Vic2l0
ZURhdGFTdG9yZSkKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KyAgICAsIG1fdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eShzdGQ6Om1ha2VfdW5pcXVlPFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk+KCp0aGlzKSkKKyNlbmRpZgogewogICAgIFdlYlBh
c3RlYm9hcmRQcm94eTo6c2luZ2xldG9uKCkuYWRkV2ViUHJvY2Vzc1Byb3h5KCp0aGlzKTsKIAor
CisKICAgICBjb25uZWN0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaAppbmRleCBmNWU2MWFhMDAxODA2Nzc0ODJhZjM3MDdkY2JkYjE5OTUxN2ZhZjZh
Li5iMzI4ODE1Y2YxNjQyN2Y4YWM2ZGQ2NjZmM2E5NTcyZGFhNzFjOTNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC01Niw2ICs1Niw3IEBAIHN0cnVj
dCBQbHVnaW5JbmZvOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNz
UHJveHk7CitjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OwogY2xhc3MgV2ViQmFj
a0ZvcndhcmRMaXN0SXRlbTsKIGNsYXNzIFdlYlBhZ2VHcm91cDsKIGNsYXNzIFdlYlByb2Nlc3NQ
b29sOwpAQCAtMjczLDYgKzI3NCwxMCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJzaXRlRGF0
YVN0b3JlPiBtX3dlYnNpdGVEYXRhU3RvcmU7CiAKICAgICBib29sIG1faXNVbmRlck1lbW9yeVBy
ZXNzdXJlIHsgZmFsc2UgfTsKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
PiBtX3VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDEzZTQxYzYyMmEyZDk2OWUzYmE4NjMzZTBhN2IzZWVlOWY1YWVj
YmUuLmVkYTc3ZDgxY2RjZGM5Yjk5MmNhZWQ4OThmOWI3ZjAyMDc0MjZhOGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE4Nzks
MTEgKzE4NzksMTggQEAKIAkJQ0QwMDNBNTMxOUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5
U3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEMDAzQTUxMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5h
Z2VyLmggKi87IH07CiAJCUNEMTlBMjZEMUExM0U4MkEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDE5QTI2OTFBMTNFODIwMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuY3BwICovOyB9OwogCQlDRDE5QTI2RTFBMTNFODM0MDA4RDY1MEUgLyogV2ViRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEMTlBMjZBMUExM0U4MjEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oICovOyB9OworCQlDRDQ5MUIwNzFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0Q0OTFCMDUxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmNwcCAqLzsgfTsKKwkJQ0Q0OTFCMDgxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDQ5MUIwNjFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
aCAqLzsgfTsKKwkJQ0Q0OTFCMEQxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENENDkxQjBCMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCUNENDkxQjBFMUU3MzJFNEQw
MDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ5MUIwQzFFNzMyRTREMDAwMDkw
NjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oICovOyB9OworCQlDRDQ5MUIx
MjFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ5MUIxMDFFNzM0
ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgKi87IH07CisJ
CUNENDkxQjEzMUU3MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ5MUIx
MTFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oICovOyB9
OworCQlDRDQ5MUIxNzFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDQ5MUIxNTFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCUNENDkxQjE4MUU3MzUy
NTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENDkxQjE2MUU3MzUy
NTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLzsg
fTsKIAkJQ0Q0QjREOUMxRTc2NUUwMDAwRDI3MDkyIC8qIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENEI0
RDlBMUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5jcHAgKi87IH07
CiAJCUNENEI0RDlEMUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0QjREOUIx
RTc2NUUwMDAwRDI3MDkyIC8qIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmggKi87IH07CiAJCUNE
NUM2NkEwMTM0QjlEMzgwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xp
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
NUM2NjlFMTM0QjlEMzYwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xp
ZW50LmNwcCAqLzsgfTsKIAkJQ0Q1QzY2QTExMzRCOUQzODAwNEZFMkE4IC8qIEluamVjdGVkQnVu
ZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENENUM2NjlGMTM0QjlEMzcwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRs
ZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmggKi87IH07Ci0JCUNENjE3ODE0MUU2REU5QTAwMEZEQTU3
RCAvKiBXZWJVc2VyTWVkaWFDbGllbnRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDYxNzgxMjFFNkRFOUEwMDBGREE1N0QgLyogV2ViVXNlck1l
ZGlhQ2xpZW50TWFjLm1tICovOyB9OwogCQlDRDZGNzVGNDEzMUI2NkQwMDBENkIyMUUgLyogV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRDczQkEzRTEzMUEyRThBMDBFRURFRDIgLyogV2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eS5jcHAgKi87IH07CiAJCUNENzNCQTQ3MTMxQUNDOUEwMEVFREVEMiAvKiBX
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENzNCQTQ1MTMxQUNDODgwMEVFREVE
MiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsK
IAkJQ0Q3M0JBNEUxMzFBQ0RCNzAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENENzNCQTQ4MTMxQUNEOEUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi87IH07CkBAIC00MTY5LDExICs0MTc2LDIwIEBACiAJCUNEMDAzQTUx
MTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaDsgcGF0
aCA9IE1lZGlhQ2FjaGUvV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRDE5QTI2OTFBMTNFODIwMDA4RDY1MEUgLyogV2ViRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRDE5QTI2QTFBMTNFODIxMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFCMDUxRTcwRDA1
RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFCMDYxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNE
NDkxQjBBMUU3MzJEMTIwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdl
cy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFCMEIxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFCMEMxRTczMkU0RDAwMDA5MDY2
IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ5MUIxMDFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDsgcGF0aCA9IC4uL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDRDQ5MUIxMTFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5Lmg7IHBhdGggPSAuLi9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENDkxQjE0MUU3MzQ5RjMw
MDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHBhdGggPSAuLi9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDRDQ5MUIxNTFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFCMTYxRTczNTI1NTAw
MDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVz
c2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q0QjREOUExRTc2NUUwMDAw
RDI3MDkyIC8qIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q0QjREOUIxRTc2NUUwMDAwRDI3MDkyIC8qIFNoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYXJl
ZFJpbmdCdWZmZXJTdG9yYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENUM2
NjlFMTM0QjlEMzYwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxl
UGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
RDVDNjY5RjEzNEI5RDM3MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNs
aWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBh
Z2VGdWxsU2NyZWVuQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUNENjE3
ODEyMUU2REU5QTAwMEZEQTU3RCAvKiBXZWJVc2VyTWVkaWFDbGllbnRNYWMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJVc2VyTWVkaWFDbGllbnRNYWMubW07
IHBhdGggPSBjb2NvYS9XZWJVc2VyTWVkaWFDbGllbnRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNENzNCQTM3MTMxQTI5RkUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFu
YWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJGdWxsU2Ny
ZWVuTWFuYWdlci5jcHA7IHBhdGggPSBGdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q3M0JBMzgxMzFBMjlGRTAwRUVERUQy
IC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmg7IHBhdGggPSBGdWxsU2NyZWVuL1dlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENzNCQTM5MTMxQTI5
RkUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IG5hbWUgPSBXZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbjsgcGF0aCA9IEZ1
bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC02MjgxLDYgKzYyOTcsOSBAQAogCQk3QzZFNzBGODE4QjJENDdFMDBG
MjRFMkUgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAorCQkJCUNENDkxQjA1MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ci5jcHAgKi8sCisJCQkJQ0Q0OTFCMDYxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmggKi8sCisJCQkJQ0Q0OTFCMEExRTczMkQxMjAwMDA5MDY2IC8qIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJCUNEQTI5QTE5MUNCREJGNDEwMDkw
MUNDRiAvKiBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLmggKi8sCiAJCQkJQ0RBMjlBMUMxQ0JE
QkY1QjAwOTAxQ0NGIC8qIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIubWVzc2FnZXMuaW4gKi8s
CiAJCQkJQ0RBMjlBMTgxQ0JEQkY0MTAwOTAxQ0NGIC8qIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFn
ZXIubW0gKi8sCkBAIC03NDQ4LDYgKzc0NjcsOSBAQAogCQkJCTFBQTQxN0VEMTJDMDBEODcwMDJC
RTY3QiAvKiBUZXh0Q2hlY2tlck1hYy5tbSAqLywKIAkJCQkxQUYwNUQ4NTE0Njg4MzQ4MDA4QjFF
ODEgLyogVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oICovLAogCQkJCTFBRjA1
RDg0MTQ2ODgzNDgwMDhCMUU4MSAvKiBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5
Lm1tICovLAorCQkJCUNENDkxQjEwMUU3MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5LmNwcCAqLywKKwkJCQlDRDQ5MUIxMTFFNzM0ODIxMDAwMDkwNjYgLyogVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oICovLAorCQkJCUNENDkxQjE0MUU3MzQ5RjMwMDAw
OTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJ
CTJEMTI1QzVEMTg1N0VBMDUwMDNCQTNDQiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNYWMubW0g
Ki8sCiAJCQkJMkQ2Q0QxMTcxODkwNThBNTAwRTVBNEEwIC8qIFZpZXdTbmFwc2hvdFN0b3JlLmgg
Ki8sCiAJCQkJMkQ2Q0QxMTgxODkwNThBNTAwRTVBNEEwIC8qIFZpZXdTbmFwc2hvdFN0b3JlLm1t
ICovLApAQCAtNzY5MCw2ICs3NzEyLDEwIEBACiAJCQkJMUEzMzRERUMxNkRFOEY4ODAwNkE4RTM4
IC8qIFN0b3JhZ2VBcmVhTWFwTWVzc2FnZXMuaCAqLywKIAkJCQkxQUIzMUE5NDE2QkM2ODgxMDBG
NkRCQzkgLyogU3RvcmFnZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFBQjMx
QTk1MTZCQzY4ODEwMEY2REJDOSAvKiBTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJCQkJ
Q0Q0OTFCMTUxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUNENDkxQjE2MUU3MzUyNTUwMDAwOTA2NiAvKiBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLywKKwkJCQlDRDQ5MUIwQjFF
NzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLAorCQkJCUNENDkxQjBDMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlck1lc3NhZ2VzLmggKi8sCiAJCQkJMkQxQjVENUIxODU4NjlDODAwNkM2NTk2IC8qIFZp
ZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMkQxQjVENUMx
ODU4NjlDODAwNkM2NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VzLmggKi8sCiAJ
CQkJMkQ4MTlCOUYxODYyODAwRTAwMUYwM0QxIC8qIFZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0
b3JNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtNzgyNCw3ICs3ODUwLDYgQEAKIAkJQ0Q2MTc4
MTExRTZERTk4MDAwRkRBNTdEIC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKLQkJCQlDRDYxNzgxMjFFNkRFOUEwMDBGREE1N0QgLyogV2ViVXNlck1l
ZGlhQ2xpZW50TWFjLm1tICovLAogCQkJKTsKIAkJCW5hbWUgPSBjb2NvYTsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CkBAIC04MDQ5LDYgKzgwNzQsNyBAQAogCQkJCTdDMjQxMzAzMUFBQ0ZB
NzUwMEE1OEMxNSAvKiBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk3QzI0MTMwNTFBQUNGQTlDMDBBNThDMTUgLyogX1dLVXNlckNvbnRlbnRFeHRlbnNp
b25TdG9yZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0EzNzkzRTFBQzM3OEIzMDA3
OURDMzcgLyogX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVByaXZhdGUuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUNENDkxQjEzMUU3MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQk3Qzg5RDJCQTFBNkIwRjJDMDAzQTVGREUg
LyogX1dLVXNlckNvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDODlEMkJDMUE2
QjBGNUIwMDNBNUZERSAvKiBfV0tVc2VyQ29udGVudEZpbHRlckludGVybmFsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3QTgyMUY1MDFFMkY3QTc1MDA2MDQ1NzcgLyogQVBJQ3VzdG9tUHJvdG9jb2xN
YW5hZ2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTgwNTYsNiArODA4Miw3IEBACiAJCQkJ
N0M4ODJERjkxQzdFOTk2RjAwNkJGNzMxIC8qIF9XS1VzZXJDb250ZW50V29ybGRJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0NCMzY1QUExRDMxREI3MDAwNzE1OENBIC8qIF9XS1VzZXJJ
bml0aWF0ZWRBY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTdDQjM2NUFEMUQzMURDMTAwMDcx
NThDQSAvKiBfV0tVc2VySW5pdGlhdGVkQWN0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAor
CQkJCUNENDkxQjBFMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDg3ODYxRDFCREI1NEJGMDBEMDJBQkIgLyog
X1dLVXNlclN0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEODc4NjIwMUJEQjU3RjUw
MEQwMkFCQiAvKiBfV0tVc2VyU3R5bGVTaGVldEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTgxQjM4MTE4QkQ2NkFEMDAwN0ZEQUMgLyogX1dLVmlzaXRlZExpbmtTdG9yZS5oIGluIEhl
YWRlcnMgKi8sCkBAIC04MTAxLDYgKzgxMjgsNyBAQAogCQkJCTFBMjQ2NEYzMTg5MUU0NTEwMDIz
NEM1QiAvKiBBUElMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRDNBNDgzMUE1
RDAyRkEwMDk2MjNCOCAvKiBBUElOYXZpZ2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREY5
RUVFQzFBNzgzNkVFMDBCNkNGQkUgLyogQVBJTmF2aWdhdGlvbkFjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQ0Q0OTFCMDgxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREQ5RUIyRDFBNkYwMTI1MDBCQjEyNjcgLyogQVBJ
TmF2aWdhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNGNjlGQTIxMTc2RDAxNDAw
NDcxQTUyIC8qIEFQSU5hdmlnYXRpb25EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREY5RUVF
RTFBNzg2RUFEMDBCNkNGQkUgLyogQVBJTmF2aWdhdGlvblJlc3BvbnNlLmggaW4gSGVhZGVycyAq
LywKQEAgLTg0MjIsNiArODQ1MCw3IEBACiAJCQkJRTE4RTY5MEMxNjlCNTYzRjAwOUI2NjcwIC8q
IFNlY0l0ZW1TaGltUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxOEU2OTE4MTY5QjY2N0Iw
MDlCNjY3MCAvKiBTZWNJdGVtU2hpbVByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxNEQ5RjU3MTkxMTlEMzUwMDAwNjNBNyAvKiBTZXJ2aWNlc0NvbnRyb2xsZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUNENDkxQjE4MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzA3NUFCMURFODVG
MzMwMDM5RUM2OSAvKiBOZXR3b3JrUlRDU29ja2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUZE
RTY1QTE5NTRBNDJCMDBDNDhGRkEgLyogU2Vzc2lvblN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTAwMkQ0OTE5NkIzNDVEMDBCOUFENDQgLyogU2Vzc2lvblN0YXRlQ29kaW5nLmggaW4gSGVh
ZGVycyAqLywKQEAgLTk2MDIsNiArOTYzMSw3IEBACiAJCQkJMzczRDEyMjIxOEE0NzMwMTAwNjZE
OUNDIC8qIF9XS0ZyYW1lSGFuZGxlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNBODhCMzkxQkM3
MEYzRjAwQUJBNUMyIC8qIF9XS0hpdFRlc3RSZXN1bHQubW0gaW4gU291cmNlcyAqLywKIAkJCQk1
MTBGNTkxMjFEREUyOTc3MDA0MTJGRjUgLyogX1dLTGlua0ljb25QYXJhbWV0ZXJzLm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJQ0Q0OTFCMEQxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExMThBOUYy
MTkwOEI4RUEwMEY3QzkyQiAvKiBfV0tOU0ZpbGVNYW5hZ2VyRXh0cmFzLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMUE0M0U4MjkxODhGM0NEQzAwOUU0RDMwIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmln
dXJhdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBOUUzMjhFMTgyMTY1QTkwMEY1RDA0QyAv
KiBfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UubW0gaW4gU291cmNlcyAqLywKQEAgLTk2MzYsNiAr
OTY2Niw3IEBACiAJCQkJOTNBODhCNDcxQkM4ODI5NzAwQUJBNUMyIC8qIEFQSUhpdFRlc3RSZXN1
bHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NEM0E0ODIxQTVEMDJGQTAwOTYyM0I4IC8qIEFQ
SU5hdmlnYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNGNjlGQTMxMTc2RDAxNDAwNDcx
QTUyIC8qIEFQSU5hdmlnYXRpb25EYXRhLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNENDkxQjE3
MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgzMkVEMThCMUUyRkUxNTcwMDZCQTY0QSAv
KiBQZXJBY3Rpdml0eVN0YXRlQ1BVVXNhZ2VTYW1wbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUI2MzQwM0Y5MTQ5MTBENTcwMDEwNzBCNSAvKiBBUElPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMzc4RTFBM0QxODFFRDZGRjAwMzEwMDdBIC8qIEFQSU9iamVjdC5tbSBpbiBTb3VyY2Vz
ICovLApAQCAtOTY2MCw2ICs5NjkxLDcgQEAKIAkJCQkxQTM2MzVBOTFBMzE0NEEzMDBFRDYxOTcg
LyogQVBJV2Vic2l0ZURhdGFTdG9yZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTM2MzVBRDFB
MzE0NUU1MDBFRDYxOTcgLyogQVBJV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNUNCMjM3OTExREYwRTJFNjAwMTE3QUEzIC8qIEFQSVdlYnNpdGVQb2xpY2llcy5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDQ5MUIxMjFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTY1NjNFNDFC
N0E4QzUwMDA5Q0Y3ODcgLyogQVBJV2luZG93RmVhdHVyZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUFENEMxOTIxQjM5RjMzMjAwQUJDMjhFIC8qIEFwcGxpY2F0aW9uU3RhdGVUcmFja2VyLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUEzRDYxMDUxM0E3RjAzQTAwRjk1RDRFIC8qIEFyZ3VtZW50
Q29kZXJzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTk3OSw3ICsxMDAxMSw2IEBACiAJCQkJNzUz
RTNFMEQxODg3Mzk4NTAwMTg4NDk2IC8qIFNlc3Npb25UcmFja2VyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFBNjQyMEU0MTJEQ0UyRkYwMENBQUUyQyAvKiBTaGFyZWFibGVCaXRtYXAuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQzAxQTI2MDExMjY2MkYyMTAwQzlFRDU1IC8qIFNoYXJlYWJsZUJp
dG1hcENHLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUNENjE3ODE0MUU2REU5QTAwMEZEQTU3RCAv
KiBXZWJVc2VyTWVkaWFDbGllbnRNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTIxNzQ2MDE2
NEMyMEUzMDAzN0E1QzEgLyogU2hhcmVhYmxlUmVzb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDQ1MEFFQzAxREMzRkFFNTAwOTk0M0YyIC8qIFNoYXJlZE1lbW9yeUNvY29hLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTJEQUYwNkQ3MThCRDFBNDcwMDgxQ0VCMSAvKiBTbWFydE1hZ25pZmlj
YXRpb25Db250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0xMDE4Miw2ICsxMDIxMyw3IEBA
CiAJCQkJOTlDM0FFMjQxREFEOEUzNzAwQUY1QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uTWFj
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M0Njk0Q0MxQTRCNTEwQTAwQUQ1ODQ1IC8qIFdlYlBh
c3RlYm9hcmRQcm94eUNvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M0Njk0QzkxQTRCNEVB
MTAwQUQ1ODQ1IC8qIFdlYlBhc3RlYm9hcmRQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlDRDQ5MUIwNzFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFCMUY3NzQxRDFCMkY4QTAwN0M5QkQx
IC8qIFdlYlBheW1lbnRDb29yZGluYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUIxRjc5
NjFEMUIzNjEzMDA3QzlCRDEgLyogV2ViUGF5bWVudENvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQjFGNzhCMUQxQjMzNTUwMDdDOUJEMSAvKiBXZWJQ
YXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1l
ZGlhQ2xpZW50LmNwcAppbmRleCBhYWRlZDM0NGE3NmFlYTZhYjQ3MTYyZDg5NjhjY2IyYzVmMDUw
YzY3Li4zNjIyMDJlMGVkNjBlNjU3NzRmZmM4NzA3MGNkNTE3M2RiNWNiODZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJVc2VyTWVkaWFDbGllbnQuY3BwCkBAIC0zMyw3ICszMyw2IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogV2ViVXNlck1lZGlhQ2xpZW50OjpXZWJVc2VyTWVkaWFDbGllbnQoV2ViUGFnZSYgcGFnZSkK
ICAgICA6IG1fcGFnZShwYWdlKQogewotICAgIGluaXRpYWxpemVGYWN0b3JpZXMoKTsKIH0KIAog
dm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OnBhZ2VEZXN0cm95ZWQoKQpAQCAtNjEsMTMgKzYwLDYg
QEAgdm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OmNhbmNlbE1lZGlhRGV2aWNlc0VudW1lcmF0aW9u
UmVxdWVzdChNZWRpYURldmljZXNFbnVtZXIKICAgICBtX3BhZ2UudXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyKCkuY2FuY2VsTWVkaWFEZXZpY2VzRW51bWVyYXRpb24ocmVxdWVzdCk7
CiB9CiAKLSNpZiAhUExBVEZPUk0oQ09DT0EpCi12b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6aW5p
dGlhbGl6ZUZhY3RvcmllcygpCi17Ci0KLX0KLSNlbmRpZgotCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQ7CiAKICNlbmRpZiAvLyBNRURJQV9TVFJFQU0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvY29jb2EvV2ViVXNlck1lZGlhQ2xpZW50TWFjLm1t
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9jb2NvYS9XZWJVc2Vy
TWVkaWFDbGllbnRNYWMubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE4ZGYyZjEw
MTliYTg2ZjZmYTdhMzYxNjA0YTBlYTI3NmJkNzVjMWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9jb2NvYS9XZWJVc2VyTWVkaWFDbGllbnRNYWMubW0KKysrIC9kZXYvbnVsbApAQCAt
MSw2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IldlYlVzZXJNZWRpYUNsaWVudC5oIgotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgUExB
VEZPUk0oQ09DT0EpCi0KLSNpbXBvcnQgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ci5oPgotI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViVXNlck1lZGlhQ2xpZW50
QXVkaW9GYWN0b3J5IGZpbmFsIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVG
YWN0b3J5IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgV2ViVXNlck1lZGlhQ2xpZW50QXVkaW9GYWN0
b3J5JiBzaW5nbGV0b24oKQotICAgIHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFdl
YlVzZXJNZWRpYUNsaWVudEF1ZGlvRmFjdG9yeT4gZmFjdG9yeTsKLSAgICAgICAgcmV0dXJuIGZh
Y3Rvcnk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNl
PiBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoY29uc3Qg
Q2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cywgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMpIGZpbmFsIHsKLSAgICAgICAgYXV0byogZmFj
dG9yeSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmRlZmF1bHRBdWRp
b0ZhY3RvcnkoKTsKLSAgICAgICAgcmV0dXJuIGZhY3RvcnkgPyBmYWN0b3J5LT5jcmVhdGVNZWRp
YVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoZGV2aWNlLCBjb25zdHJhaW50
cywgaW52YWxpZENvbnN0cmFpbnRzKSA6IG51bGxwdHI7Ci0gICAgfQotfTsKLQotdm9pZCBXZWJV
c2VyTWVkaWFDbGllbnQ6OmluaXRpYWxpemVGYWN0b3JpZXMoKQotewotICAgIHN0YXRpYyBkaXNw
YXRjaF9vbmNlX3Qgb25jZVRva2VuOwotICAgIGRpc3BhdGNoX29uY2UoJm9uY2VUb2tlbiwgXiB7
Ci0gICAgICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigp
LnNldEF1ZGlvRmFjdG9yeShXZWJVc2VyTWVkaWFDbGllbnRBdWRpb0ZhY3Rvcnk6OnNpbmdsZXRv
bigpKTsKLSAgICB9KTsKLX0KLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwCmluZGV4IDZhNDFiNGNmMDczYzhiMDIyMTQxYWFjNWQzZjUzOThhOTk5
NTA3ODcuLmExZWE5NmQ3OWM4ZjlhZjI1MDIzMmVjMWYwZDU5MGM2ZTE4NjIzNDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2lu
Y2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc0RhdGEuaCIKICNp
bmNsdWRlICJVc2VyRGF0YS5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgi
CiAjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oIgogI2luY2x1ZGUgIldlYkNv
bm5lY3Rpb25Ub1VJUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXIuaCIKQEAg
LTE5MSw2ICsxOTIsMTAgQEAgV2ViUHJvY2Vzczo6V2ViUHJvY2VzcygpCiAgICAgYWRkU3VwcGxl
bWVudDxXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyPigpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorICAgIGFkZFN1cHBsZW1lbnQ8VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI+
KCk7CisjZW5kaWYKKwogICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmFkZChTZXNz
aW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPigpKTsK
IAogICAgIFJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWRPYnNlcnZlcigpLnNldFN0YXRpc3Rp
Y3NTdG9yZShtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jb3B5UmVmKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NjIzN2QwZWI5ZGMxZmI0MTY0MzdmNzEyOGIyMzQx
NzkzYzE4ZDI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9j
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTAsMCArMSwyMjYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
CisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRlICJVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgi
CisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NhcHR1cmVEZXZpY2UuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHNJbXBsLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZl
ckxpc3QuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitzdGF0aWMgdWludDY0X3QgbmV4dFNlc3Npb25JRCgpCit7CisgICAgc3RhdGljIHVpbnQ2
NF90IG5leHRJRCA9IDA7CisgICAgcmV0dXJuICsrbmV4dElEOworfQorCitjbGFzcyBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6U291cmNlIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2Ugewor
cHVibGljOgorICAgIFNvdXJjZShjb25zdCBTdHJpbmcmIHNvdXJjZUlELCBUeXBlIHR5cGUsIGNv
bnN0IFN0cmluZyYgbmFtZSwgdWludDY0X3QgaWQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBt
YW5hZ2VyKQorICAgICAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2Uoc291cmNlSUQsIHR5cGUsIG5h
bWUpCisgICAgICAgICwgbV9pZChpZCkKKyAgICAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKKyAg
ICAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFn
ZT4obnVsbHB0cikpCisgICAgeworICAgIH0KKworICAgIH5Tb3VyY2UoKQorICAgIHsKKyAgICAg
ICAgc3RvcmFnZSgpLmludmFsaWRhdGUoKTsKKyAgICB9CisKKyAgICBTaGFyZWRSaW5nQnVmZmVy
U3RvcmFnZSYgc3RvcmFnZSgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFNoYXJlZFJpbmdCdWZmZXJT
dG9yYWdlJj4obV9yaW5nQnVmZmVyLnN0b3JhZ2UoKSk7IH0KKyAgICBSZWZQdHI8UmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9jYXBhYmlsaXRpZXM7IH0KKyAgICB2b2lkIHNldENhcGFiaWxpdGllcyhSZWZQdHI8UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKSB7IG1fY2FwYWJpbGl0
aWVzID0gY2FwYWJpbGl0aWVzOyB9CisKKyAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3MmIHNldHRpbmdzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zZXR0aW5nczsgfQorICAg
IHZvaWQgc2V0U2V0dGluZ3MoY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0
aW5ncykKKyAgICB7CisgICAgICAgIG1fc2V0dGluZ3MgPSBzZXR0aW5nczsKKyAgICAgICAgc2V0
dGluZ3NEaWRDaGFuZ2UoKTsKKyAgICB9CisKKyAgICBjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mIGRlc2NyaXB0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZXNjcmlwdGlvbjsgfQorICAg
IHZvaWQgc2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYgaGFuZGxlLCBjb25z
dCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCB1aW50NjRf
dCBudW1iZXJPZkZyYW1lcykKKyAgICB7CisgICAgICAgIG1fZGVzY3JpcHRpb24gPSBkZXNjcmlw
dGlvbjsKKyAgICAgICAgaWYgKGhhbmRsZS5pc051bGwoKSkgeworICAgICAgICAgICAgbV9yaW5n
QnVmZmVyLmRlYWxsb2NhdGUoKTsKKyAgICAgICAgICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25seShm
YWxzZSk7CisgICAgICAgICAgICBzdG9yYWdlKCkuc2V0U3RvcmFnZShudWxscHRyKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+
IG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0
aW9uOjpSZWFkT25seSk7CisgICAgICAgIHN0b3JhZ2UoKS5zZXRTdG9yYWdlKFdURk1vdmUobWVt
b3J5KSk7CisgICAgICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25seSh0cnVlKTsKKworICAgICAgICBt
X3JpbmdCdWZmZXIuYWxsb2NhdGUoZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAgICB9
CisKKyAgICB2b2lkIHNldFJpbmdCdWZmZXJGcmFtZUJvdW5kcyh1aW50NjRfdCBzdGFydEZyYW1l
LCB1aW50NjRfdCBlbmRGcmFtZSkKKyAgICB7CisgICAgICAgIG1fcmluZ0J1ZmZlci5zZXRDdXJy
ZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOworICAgIH0KKworICAgIHZvaWQg
YXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZy
YW1lcykKKyAgICB7CisgICAgICAgIFdlYkF1ZGlvQnVmZmVyTGlzdCBhdWRpb0RhdGEobV9kZXNj
cmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgICAgICBtX3JpbmdCdWZmZXIuZmV0Y2goYXVk
aW9EYXRhLmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOworCisgICAg
ICAgIGZvciAoYXV0byogb2JzZXJ2ZXIgOiBvYnNlcnZlcnMoKSkKKyAgICAgICAgICAgIG9ic2Vy
dmVyLT5hdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgYXVkaW9EYXRhLCBtX2Rlc2NyaXB0aW9u
LCBudW1iZXJPZkZyYW1lcyk7CisgICAgfQorCisgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEo
KSBmaW5hbCB7IG1fbWFuYWdlci5zdGFydFByb2R1Y2luZ0RhdGEobV9pZCk7IH0KKyAgICB2b2lk
IHN0b3BQcm9kdWNpbmdEYXRhKCkgZmluYWwgeyBtX21hbmFnZXIuc3RvcFByb2R1Y2luZ0RhdGEo
bV9pZCk7IH0KKworICAgIEF1ZGlvU291cmNlUHJvdmlkZXIqIGF1ZGlvU291cmNlUHJvdmlkZXIo
KSBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CisKK3ByaXZhdGU6CisgICAgLy8gUmVhbHRpbWVN
ZWRpYVNvdXJjZQorICAgIHZvaWQgYmVnaW5Db25maWd1cmF0aW9uKCkgZmluYWwgeyB9CisgICAg
dm9pZCBjb21taXRDb25maWd1cmF0aW9uKCkgZmluYWwgeyB9CisKKyAgICB1aW50NjRfdCBtX2lk
OworICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7CisgICAgUmVmUHRyPFJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOworICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX3NldHRpbmdzOworICAgIENBQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiBtX2Rlc2NyaXB0aW9uOworICAgIENBUmluZ0J1ZmZlciBtX3JpbmdCdWZmZXI7Cit9
OworCitVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIoV2Vi
UHJvY2VzcyogcHJvY2VzcykKKyAgICA6IG1fcHJvY2VzcygqcHJvY2VzcykKK3sKKyAgICBtX3By
b2Nlc3MuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7Cit9CisKK1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIoKQoreworICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnVuc2V0QXVkaW9GYWN0b3J5KCp0aGlzKTsKKyAgICBt
X3Byb2Nlc3MucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKK30KKworY29uc3QgY2hhciogVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICByZXR1cm4gIlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyIjsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
aW5pdGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
KQoreworICAgIGlmIChwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzKQor
ICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5zZXRBdWRpb0Zh
Y3RvcnkoKnRoaXMpOworfQorCitSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25z
dHJhaW50cyhjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cykKK3sKKyAgICBpZiAo
IWNvbnN0cmFpbnRzKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHVpbnQ2NF90IGlk
ID0gbmV4dFNlc3Npb25JRCgpOworICAgIE1lZGlhQ29uc3RyYWludHNEYXRhIGNvbnN0cmFpbnRz
RGF0YTsKKyAgICBjb25zdHJhaW50c0RhdGEubWFuZGF0b3J5Q29uc3RyYWludHMgPSBjb25zdHJh
aW50cy0+bWFuZGF0b3J5Q29uc3RyYWludHMoKTsKKyAgICBjb25zdHJhaW50c0RhdGEuYWR2YW5j
ZWRDb25zdHJhaW50cyA9IGNvbnN0cmFpbnRzLT5hZHZhbmNlZENvbnN0cmFpbnRzKCk7CisgICAg
Y29uc3RyYWludHNEYXRhLmlzVmFsaWQgPSBjb25zdHJhaW50cy0+aXNWYWxpZCgpOworICAgIGJv
b2wgc3VjY2VlZGVkOworCisgICAgbV9wcm9jZXNzLnNlbmRTeW5jKE1lc3NhZ2VzOjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VX
aXRoQ29uc3RyYWludHMoaWQsIGRldmljZSwgY29uc3RyYWludHNEYXRhKSwgTWVzc2FnZXM6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURl
dmljZVdpdGhDb25zdHJhaW50czo6UmVwbHkoc3VjY2VlZGVkLCBpbnZhbGlkQ29uc3RyYWludHMp
LCAwKTsKKworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYobmV3IFNvdXJjZShTdHJpbmc6Om51
bWJlcihpZCksIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBkZXZpY2UubGFiZWwo
KSwgaWQsICp0aGlzKSk7CisgICAgbV9zb3VyY2VzLnNldChpZCwgc291cmNlKTsKKyAgICByZXR1
cm4gc291cmNlOworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VTdG9w
cGVkKHVpbnQ2NF90IGlkKQoreworICAgIEFTU0VSVChtX3NvdXJjZXMuY29udGFpbnMoaWQpKTsK
KyAgICBtX3NvdXJjZXMuZ2V0KGlkKS0+c3RvcCgpOworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjpzb3VyY2VNdXRlZENoYW5nZWQodWludDY0X3QgaWQsIGJvb2wgbXV0ZWQpCit7
CisgICAgQVNTRVJUKG1fc291cmNlcy5jb250YWlucyhpZCkpOworICAgIG1fc291cmNlcy5nZXQo
aWQpLT5zZXRNdXRlZChtdXRlZCk7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OnNvdXJjZUVuYWJsZWRDaGFuZ2VkKHVpbnQ2NF90IGlkLCBib29sIGVuYWJsZWQpCit7CisgICAg
QVNTRVJUKG1fc291cmNlcy5jb250YWlucyhpZCkpOworICAgIG1fc291cmNlcy5nZXQoaWQpLT5z
ZXRFbmFibGVkKGVuYWJsZWQpOworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpz
b3VyY2VTZXR0aW5nc0NoYW5nZWQodWludDY0X3QgaWQsIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncyYgc2V0dGluZ3MpCit7CisgICAgQVNTRVJUKG1fc291cmNlcy5jb250YWlucyhp
ZCkpOworICAgIG1fc291cmNlcy5nZXQoaWQpLT5zZXRTZXR0aW5ncyhzZXR0aW5ncyk7Cit9CisK
K3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN0b3JhZ2VDaGFuZ2VkKHVpbnQ2NF90IGlk
LCBjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYgaGFuZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1l
cykKK3sKKyAgICBBU1NFUlQobV9zb3VyY2VzLmNvbnRhaW5zKGlkKSk7CisgICAgbV9zb3VyY2Vz
LmdldChpZCktPnNldFN0b3JhZ2UoaGFuZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMp
OworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpyaW5nQnVmZmVyRnJhbWVCb3Vu
ZHNDaGFuZ2VkKHVpbnQ2NF90IGlkLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRG
cmFtZSkKK3sKKyAgICBBU1NFUlQobV9zb3VyY2VzLmNvbnRhaW5zKGlkKSk7CisgICAgbV9zb3Vy
Y2VzLmdldChpZCktPnNldFJpbmdCdWZmZXJGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFt
ZSk7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmF1ZGlvU2FtcGxlc0F2YWls
YWJsZSh1aW50NjRfdCBpZCwgTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVz
LCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKK3sKKyAgICBBU1NFUlQo
bV9zb3VyY2VzLmNvbnRhaW5zKGlkKSk7CisgICAgYXV0byYgc291cmNlID0gKm1fc291cmNlcy5n
ZXQoaWQpOworICAgIHNvdXJjZS5zZXRSaW5nQnVmZmVyRnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwg
ZW5kRnJhbWUpOworICAgIHNvdXJjZS5hdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgbnVtYmVy
T2ZGcmFtZXMpOworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzdGFydFByb2R1
Y2luZ0RhdGEodWludDY0X3QgaWQpCit7CisgICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlN0YXJ0UHJvZHVjaW5nRGF0YShpZCksIDApOwor
fQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzdG9wUHJvZHVjaW5nRGF0YSh1aW50
NjRfdCBpZCkKK3sKKyAgICBtX3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6U3RvcFByb2R1Y2luZ0RhdGEoaWQpLCAwKTsKK30KKworfQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YTMyNjY2MmE2Mzk3Njg3Mjg5YjU1NTU0
MWNhM2RmYmRhNjA3ZmNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCkBAIC0wLDAgKzEsODIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAi
U2hhcmVkTWVtb3J5LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1N1cHBsZW1lbnQuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b247Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBDcm9zc1Byb2Nlc3NSZWFsdGlt
ZUF1ZGlvU291cmNlOworY2xhc3MgV2ViUHJvY2VzczsKKworY2xhc3MgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIgOiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQsIHB1YmxpYyBJUEM6Ok1lc3Nh
Z2VSZWNlaXZlciwgcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVG
YWN0b3J5IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcihX
ZWJQcm9jZXNzKik7CisgICAgflVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKCk7CisKKyAgICBzdGF0
aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsKKworcHJpdmF0ZToKKyAgICAvLyBXZWJQ
cm9jZXNzU3VwcGxlbWVudAorICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzJikgZmluYWw7CisKKyAgICAvLyBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlOjpGYWN0b3J5OgorICAgIFJlZlB0cjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
PiBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoY29uc3Qg
V2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMq
LCBTdHJpbmcmKSBmaW5hbDsKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5h
bDsKKworICAgIC8vIE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcgorICAgIHZvaWQg
c291cmNlU3RvcHBlZCh1aW50NjRfdCBpZCk7CisgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQo
dWludDY0X3QgaWQsIGJvb2wgbXV0ZWQpOworICAgIHZvaWQgc291cmNlRW5hYmxlZENoYW5nZWQo
dWludDY0X3QgaWQsIGJvb2wgZW5hYmxlZCk7CisgICAgdm9pZCBzb3VyY2VTZXR0aW5nc0NoYW5n
ZWQodWludDY0X3QgaWQsIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5n
cyYpOworICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQodWludDY0X3QgaWQsIGNvbnN0IFNoYXJlZE1l
bW9yeTo6SGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwg
dWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworICAgIHZvaWQgcmluZ0J1ZmZlckZyYW1lQm91bmRz
Q2hhbmdlZCh1aW50NjRfdCBpZCwgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJh
bWUpOworICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKHVpbnQ2NF90IGlkLCBNZWRpYVRp
bWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRf
dCBlbmRGcmFtZSk7CisKKyAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7Cisg
ICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CisKKyAgICBjbGFzcyBTb3VyY2U7
CisgICAgZnJpZW5kIGNsYXNzIFNvdXJjZTsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8
U291cmNlPj4gbV9zb3VyY2VzOworICAgIFdlYlByb2Nlc3MmIG1fcHJvY2VzczsKK307CisKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lZWMwNTY1YzY4NjRhNDZiMDBlOWY4ZmI5MTBjMThjODllOWU0YTEzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMxIEBACisjIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciB7Cisg
ICAgU291cmNlU3RvcHBlZCh1aW50NjRfdCBpZCkKKyAgICBTb3VyY2VNdXRlZENoYW5nZWQodWlu
dDY0X3QgaWQsIGJvb2wgbXV0ZWQpCisgICAgU291cmNlRW5hYmxlZENoYW5nZWQodWludDY0X3Qg
aWQsIGJvb2wgZW5hYmxlZCkKKyAgICBTb3VyY2VTZXR0aW5nc0NoYW5nZWQodWludDY0X3QgaWQs
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncykKKyAgICBTdG9y
YWdlQ2hhbmdlZCh1aW50NjRfdCBpZCwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZSBzdG9y
YWdlSGFuZGxlLCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gZGVzY3JpcHRpb24s
IHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQorICAgIEF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh1aW50
NjRfdCBpZCwgTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRf
dCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304506</attachid>
            <date>2017-03-15 09:27:40 -0700</date>
            <delta_ts>2017-03-15 10:31:30 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-169609-20170315092739.patch</filename>
            <type>text/plain</type>
            <size>72331</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzOTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDU4MmE2NzA4OGM4MmI3YjU3Y2UwNzc3
MGE5Y2Q1ZDVlM2FiNzFkMjIuLjY3OGQ5ZWVhNGJkYThiZTI2OGU1ZjQ4Zjk2M2VkYjVlM2FhZDM5
Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTctMDMtMTQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgT3B0aW9uYWxseSBjYXB0dXJlIGF1ZGlvIGluIHRoZSBV
SVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2OTYwOQorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAg
ICAgQWRkIGFuIGVuY29kZXIvZGVjb2RlciBtZXRob2QgZm9yICJ1bnNpZ25lZCBsb25nIiwgYSB0
eXBlIGZvdW5kIGluIHBsYXRmb3JtLWRlZmluZWQgc3RydWN0cy4KKworICAgICAgICAqIHd0Zi9w
ZXJzaXN0ZW5jZS9EZWNvZGVyLmNwcDoKKyAgICAgICAgKFdURjo6UGVyc2lzdGVuY2U6OkRlY29k
ZXI6OmRlY29kZSk6CisgICAgICAgICogd3RmL3BlcnNpc3RlbmNlL0RlY29kZXIuaDoKKyAgICAg
ICAgKiB3dGYvcGVyc2lzdGVuY2UvRW5jb2Rlci5jcHA6CisgICAgICAgIChXVEY6OlBlcnNpc3Rl
bmNlOjpFbmNvZGVyOjplbmNvZGUpOgorICAgICAgICAqIHd0Zi9wZXJzaXN0ZW5jZS9FbmNvZGVy
Lmg6CisKIDIwMTctMDMtMTUgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAg
ICAgIFNvcnQgWGNvZGUgcHJvamVjdCBmaWxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGViMGEwYTdhN2ZjMjNi
ZWZiMGJhYThiODEzMTRiMjdjOGJiMGMzNDEuLmNiOWI3ZDYyYTNhYjA2NjNiNWRmNDZiMGRlMGI0
MjRjMjA4NjljMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNy0wMy0xNCAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBPcHRpb25hbGx5IGNhcHR1
cmUgYXVkaW8gaW4gdGhlIFVJUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTY5NjA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJp
c3RlbnNlbi4KKworICAgICAgICBFeHBvcnQgc29tZSBwcmV2aW91c2x5IHVuLWV4cG9ydGVkIHN5
bWJvbHMgZnJvbSBXZWJDb3JlIGZvciB1c2UgaW4gV2ViS2l0Mi4KKworICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9X
ZWJBdWRpb0J1ZmZlckxpc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlLmg6CisKIDIwMTctMDMtMTUgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRz
QGFwcGxlLmNvbT4KIAogICAgICAgICBbTW9kZXJuIE1lZGlhIENvbnRyb2xzXSBBbHdheXMgdXNl
IHNpeCBkaWdpdHMgdG8gZGlzcGxheSB0aW1lIHdoZW4gb3ZlcmFsbCBtZWRpYSBkdXJhdGlvbiBp
cyBhbiBob3VyIG9yIG1vcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAxMjE1ODBhNzVjYmZhYmZmN2Y0NDYyMWU2
MzUxYjQ2NjcwNmVmODVlLi4xMzQwM2RiY2M1YzQ1OWEyNDUwYWRkMDEwMTBlNzY1NTE0MDg1OGYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTkgQEAKKzIwMTctMDMtMTQgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgT3B0aW9uYWxseSBjYXB0dXJlIGF1ZGlvIGlu
IHRoZSBVSVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2OTYwOQorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisK
KyAgICAgICAgQWRkIGEgbmV3IGNsYXNzIHBhaXIsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyL1By
b3h5LCB0byBhbGxvdyBhIFJlYWx0aW1lTWVkaWFTb3VyY2UKKyAgICAgICAgcmVxdWVzdGVkIGlu
IGEgV2ViUHJvY2VzcyB0byBiZSBjcmVhdGVkIGluIHRoZSBVSVByb2Nlc3MgYW5kIHB1c2ggaXRz
IGF1ZGlvIGRhdGEgYWNyb3NzIHRoZQorICAgICAgICBwcm9jZXNzIGJvdW5kYXJ5IHRvIGl0cyBj
bGllbnRzIGluIHRoZSBXZWJQcm9jZXNzLiBCZWNhdXNlIHRoZXNlIGNsYXNzZXMgYXJlIGNsaWVu
dHMgb2YgdGhlCisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigp
LCB0aGV5IG11c3QgYmUgYSBzaW5nbGV0b24gaW4gdGhlIFdlYlByb2Nlc3MgYXMgd2VsbCwKKyAg
ICAgICAgc28gdGhleSBhcmUgYXR0YWNoZWQgdG8gdGhlIFdlYlByb2Nlc3MgY2xhc3MgaW4gdGhl
IHdlYiBwcm9jZXNzIGFuZCB0byBXZWJQcm9jZXNzUHJveHkgaW4KKyAgICAgICAgdGhlIFVJUHJv
Y2Vzcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OlNvdXJjZVByb3h5OjpTb3VyY2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5Ojp+U291cmNlUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94
eTo6c291cmNlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6U291cmNlUHJveHk6OmRlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6Om51bWJlck9mRnJhbWVzKToKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6On5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJl
RGV2aWNlV2l0aENvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6c3RvcFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmg6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnByb2Nlc3MpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Om5leHRTZXNzaW9uSUQpOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpTb3VyY2UpOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjp+U291cmNl
KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6c2V0
Q2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OlNvdXJjZTo6c2V0U2V0dGluZ3MpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6U291cmNlOjpkZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnNldFN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpzZXRSaW5nQnVmZmVyRnJhbWVCb3VuZHMp
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjphdWRp
b1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6flVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmluaXRpYWxpemUpOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0
dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OnNvdXJjZVN0b3BwZWQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlcjo6c291cmNlTXV0ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZUVuYWJsZWRDaGFuZ2VkKToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZVNldHRpbmdzQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzdG9yYWdlQ2hhbmdlZCk6
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpyaW5nQnVmZmVyRnJh
bWVCb3VuZHNDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyOjpzdGFydFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViS2l0OjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6c3RvcFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICog
V2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbjogQWRk
ZWQuCisKKyAgICAgICAgSW5pdGlhbGl6ZSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci9Qcm94eToK
KworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vz
cyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6V2ViUHJvY2Vzcyk6CisKKyAgICAg
ICAgV2ViVXNlck1lZGlhQ2xpZW50TWFjIGlzIG5vIGxvbmdlciBuZWNlc3Nhcnkgbm93IHRoYXQg
dGhlIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIG92ZXJyaWRlcworICAgICAgICB0aGUgZmFjdG9y
aWVzOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFD
bGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnQ6OldlYlVzZXJN
ZWRpYUNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVudDo6aW5pdGlh
bGl6ZUZhY3Rvcmllcyk6IERlbGV0ZWQuCisKKyAgICAgICAgQWRkIGEgbmV3IHByZWZlcmVuY2Ug
YW5kIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgbWVtYmVyIHRvIGNvbnRyb2wgd2hldGhl
cgorICAgICAgICBjYXB0dXJpbmcgaXMgZG9uZSBpbiB0aGUgVUlQcm9jZXNzOgorCisgICAgICAg
ICogU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaDoKKyAgICAgICAgKiBTaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKworICAgICAgICBBZGQgYW4gZW5jb2RlL2RlY29k
ZSBtZXRob2QgZm9yICJ1bnNpZ25lZCBsb25nIiwgYSB0eXBlIGZvdW5kIGluIHBsYXRmb3JtLWRl
ZmluZWQgc3RydWN0cy4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9EZWNvZGVyLmNwcDoKKyAg
ICAgICAgKElQQzo6RGVjb2Rlcjo6ZGVjb2RlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvRGVj
b2Rlci5oOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9FbmNvZGVyLmNwcDoKKyAgICAgICAgKElQ
Qzo6RW5jb2Rlcjo6ZW5jb2RlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvRW5jb2Rlci5oOgor
CisgICAgICAgIEFkZCBuZXcgZmlsZXMgdG8gdGhlIHByb2plY3Q6CisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFdl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxNy0wMy0xNSAgRGVhbiBKYWNr
c29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgU29ydCBYY29kZSBwcm9qZWN0IGZpbGVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9wZXJzaXN0ZW5jZS9EZWNvZGVyLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL3BlcnNpc3RlbmNlL0RlY29kZXIuY3BwCmluZGV4IDM1NGZmMDYwNmIwMjgw
MTQ2YTJkMjQ4NjJkMmNhYTFjZThjMzYwY2EuLjBhZDlhZTU1ZDRmMjgwN2U3N2RhNTY3NjE5MzU3
OGE5ZDEyNTM4MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3BlcnNpc3RlbmNlL0RlY29k
ZXIuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3BlcnNpc3RlbmNlL0RlY29kZXIuY3BwCkBAIC0x
MDcsNiArMTA3LDExIEBAIGJvb2wgRGVjb2Rlcjo6ZGVjb2RlKGludDY0X3QmIHJlc3VsdCkKICAg
ICByZXR1cm4gZGVjb2RlTnVtYmVyKHJlc3VsdCk7CiB9CiAKK2Jvb2wgRGVjb2Rlcjo6ZGVjb2Rl
KHVuc2lnbmVkIGxvbmcmIHJlc3VsdCkKK3sKKyAgICByZXR1cm4gZGVjb2RlTnVtYmVyKHJlc3Vs
dCk7Cit9CisKIGJvb2wgRGVjb2Rlcjo6ZGVjb2RlKGZsb2F0JiByZXN1bHQpCiB7CiAgICAgcmV0
dXJuIGRlY29kZU51bWJlcihyZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvcGVy
c2lzdGVuY2UvRGVjb2Rlci5oIGIvU291cmNlL1dURi93dGYvcGVyc2lzdGVuY2UvRGVjb2Rlci5o
CmluZGV4IDQxNGVjODhmYzJmMDk0Zjg1ZmVhYWMzODY5ODAxNDVjOTg5OGY4ODcuLjA2OTVhNWFi
MWZkNGFlNjY5MDkyOWQ5ZjI2ZmI4NWMwZDk3OWIwZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL3BlcnNpc3RlbmNlL0RlY29kZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9wZXJzaXN0ZW5j
ZS9EZWNvZGVyLmgKQEAgLTUxLDYgKzUxLDcgQEAgcHVibGljOgogICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBib29sIGRlY29kZSh1aW50NjRfdCYpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29s
IGRlY29kZShpbnQzMl90Jik7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgZGVjb2RlKGlu
dDY0X3QmKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBkZWNvZGUodW5zaWduZWQgbG9u
ZyYpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGRlY29kZShmbG9hdCYpOwogICAgIFdU
Rl9FWFBPUlRfUFJJVkFURSBib29sIGRlY29kZShkb3VibGUmKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvcGVyc2lzdGVuY2UvRW5jb2Rlci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9wZXJz
aXN0ZW5jZS9FbmNvZGVyLmNwcAppbmRleCAwZjExZTM0ODFmZjMzMGYxMmI0YzlhMzk3NDJmNGZj
Y2ZiMWU5NDdlLi5hZmIxOWU0NzhmZmRlMDk2ZWVlOTIwM2RhMDVhOGQwNTA3MWY2ZWE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9wZXJzaXN0ZW5jZS9FbmNvZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9wZXJzaXN0ZW5jZS9FbmNvZGVyLmNwcApAQCAtMTA1LDYgKzEwNSwxMSBAQCB2
b2lkIEVuY29kZXI6OmVuY29kZShpbnQ2NF90IHZhbHVlKQogICAgIGVuY29kZU51bWJlcih2YWx1
ZSk7CiB9CiAKK3ZvaWQgRW5jb2Rlcjo6ZW5jb2RlKHVuc2lnbmVkIGxvbmcgdmFsdWUpCit7Cisg
ICAgZW5jb2RlTnVtYmVyKHZhbHVlKTsKK30KKwogdm9pZCBFbmNvZGVyOjplbmNvZGUoZmxvYXQg
dmFsdWUpCiB7CiAgICAgZW5jb2RlTnVtYmVyKHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3BlcnNpc3RlbmNlL0VuY29kZXIuaCBiL1NvdXJjZS9XVEYvd3RmL3BlcnNpc3RlbmNl
L0VuY29kZXIuaAppbmRleCA2MWM5NjU1MzBlN2YxZDMwZDJmMTA2OTExYmM1ZGFlNThkMGQ5NWFl
Li4xYjI3M2NkZjA0MzNhNGM2MzhmYWJiYTA5YzdkNTBjNGRkMTQxZWRkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9wZXJzaXN0ZW5jZS9FbmNvZGVyLmgKKysrIGIvU291cmNlL1dURi93dGYv
cGVyc2lzdGVuY2UvRW5jb2Rlci5oCkBAIC03OCw2ICs3OCw3IEBAIHByaXZhdGU6CiAgICAgV1RG
X0VYUE9SVF9QUklWQVRFIHZvaWQgZW5jb2RlKHVpbnQ2NF90KTsKICAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgdm9pZCBlbmNvZGUoaW50MzJfdCk7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQg
ZW5jb2RlKGludDY0X3QpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGVuY29kZSh1bnNp
Z25lZCBsb25nKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBlbmNvZGUoZmxvYXQpOwog
ICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGVuY29kZShkb3VibGUpOwogCkBAIC0xMDAsNiAr
MTAxLDcgQEAgdGVtcGxhdGUgPD4gc3RydWN0IEVuY29kZXI6OlNhbHQ8aW50MzJfdD4geyBzdGF0
aWMgY29uc3QgdW5zaWduZWQgdmFsdWUgPSAxNzsgfTsKIHRlbXBsYXRlIDw+IHN0cnVjdCBFbmNv
ZGVyOjpTYWx0PGludDY0X3Q+IHsgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHZhbHVlID0gMTk7IH07
CiB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW5jb2Rlcjo6U2FsdDxmbG9hdD4geyBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgdmFsdWUgPSAyMzsgfTsKIHRlbXBsYXRlIDw+IHN0cnVjdCBFbmNvZGVyOjpTYWx0
PGRvdWJsZT4geyBzdGF0aWMgY29uc3QgdW5zaWduZWQgdmFsdWUgPSAyOTsgfTsKK3RlbXBsYXRl
IDw+IHN0cnVjdCBFbmNvZGVyOjpTYWx0PHVuc2lnbmVkIGxvbmc+IHsgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIHZhbHVlID0gMzE7IH07CiB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW5jb2Rlcjo6U2FsdDx1
aW50OF90Kj4geyBzdGF0aWMgY29uc3QgdW5zaWduZWQgdmFsdWUgPSAxMDE7IH07CiAKIHRlbXBs
YXRlIDx0eXBlbmFtZSBUeXBlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGZlOTg5ZGQ2NmFkN2RjMjUzYWE1N2FhNGI3MzZiNTli
Zjg1ODFjM2MuLjNjYTQwZTc4NWFmYTllMGU0N2EwZmRhODFmM2RhODVlMGEzOWZkYmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTYxNjksNyArNjE2OSw3IEBACiAJCUNERTU5NTk3MUJGMjZFMjEwMEExQ0JFOCAvKiBDRE1TZXNz
aW9uTWVkaWFTb3VyY2VBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDREU1OTU5NjFCRjI2RTIxMDBBMUNCRTggLyogQ0RNU2Vzc2lvbk1lZGlh
U291cmNlQVZGT2JqQy5oICovOyB9OwogCQlDREU1OTU5RDFCRjI3NTcxMDBBMUNCRTggLyogQ0RN
U2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENERTU5NTlDMUJGMjc1NzEwMEExQ0JFOCAvKiBDRE1TZXNzaW9u
TWVkaWFTb3VyY2VBVkZPYmpDLm1tICovOyB9OwogCQlDREU2NjdBNDFFNEJCRjE1MDBFODE1NEEg
LyogV2ViQXVkaW9CdWZmZXJMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENERTY2N0EyMUU0QkJGMTUwMEU4MTU0QSAvKiBXZWJBdWRpb0J1ZmZl
ckxpc3QuY3BwICovOyB9OwotCQlDREU2NjdBNTFFNEJCRjE1MDBFODE1NEEgLyogV2ViQXVkaW9C
dWZmZXJMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDREU2NjdBMzFFNEJCRjE1MDBFODE1NEEgLyogV2ViQXVkaW9CdWZmZXJMaXN0LmggKi87IH07
CisJCUNERTY2N0E1MUU0QkJGMTUwMEU4MTU0QSAvKiBXZWJBdWRpb0J1ZmZlckxpc3QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTY2N0EzMUU0QkJG
MTUwMEU4MTU0QSAvKiBXZWJBdWRpb0J1ZmZlckxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDREU3RkM0NDE4MTkwNEIxMDAyQkJCNzcgLyog
T3JkZXJJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDREU3RkM0MjE4MTkwNEIxMDAyQkJCNzcgLyogT3JkZXJJdGVyYXRvci5jcHAgKi87
IH07CiAJCUNERTdGQzQ1MTgxOTA0QjEwMDJCQkI3NyAvKiBPcmRlckl0ZXJhdG9yLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREU3RkM0MzE4MTkwNEIx
MDAyQkJCNzcgLyogT3JkZXJJdGVyYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUNERTgzREIxMTgzQzQ0MDYwMDMxRUFBMyAvKiBWaWRlb1Bs
YXliYWNrUXVhbGl0eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDREU4M0RBRjE4M0M0NDA2MDAzMUVBQTMgLyogVmlkZW9QbGF5YmFja1F1YWxpdHku
Y3BwICovOyB9OwpAQCAtNjE4Niw2ICs2MTg2LDcgQEAKIAkJQ0RFQTdDODUxMjc2MjMwNDAwQjg0
NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0RFQTdDODMxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxT
Y3JlZW4uY3BwICovOyB9OwogCQlDREVFMzkzNzE3OTc0MjU5MDAxRDc1ODAgLyogUHVibGljVVJM
TWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDREVFMzkzNjE3OTc0MjU5MDAxRDc1ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgKi87IH07
CiAJCUNERUY0RkQ3MTdFODVDOEYwMEFFRTI0QiAvKiBHcmlkTGVuZ3RoLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVGNEZENjE3RTg1QzhGMDBBRUUy
NEIgLyogR3JpZExlbmd0aC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCUNERUZBMjI4MUU3NjY5RTgwMDBBRTk5QyAvKiBQbGF0Zm9ybUF1ZGlvRGF0
YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3
QTExRTRCQkE0RDAwRTgxNTRBIC8qIFBsYXRmb3JtQXVkaW9EYXRhLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RGMkIwMDQxODFGMDU5QzAwRjJC
NDI0IC8qIE1lZGlhRGVzY3JpcHRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENERjJCMDAzMTgxRjA1OUMwMEYyQjQyNCAvKiBNZWRpYURlc2NyaXB0
aW9uLmggKi87IH07CiAJCUNERjJCMDEwMTgyMDU0MDYwMEYyQjQyNCAvKiBNb2NrQm94LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjJCMDA2MTgy
MDU0MDYwMEYyQjQyNCAvKiBNb2NrQm94LmNwcCAqLzsgfTsKIAkJQ0RGMkIwMTExODIwNTQwNjAw
RjJCNDI0IC8qIE1vY2tCb3guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENERjJCMDA3MTgyMDU0MDYwMEYyQjQyNCAvKiBNb2NrQm94LmggKi87IH07CkBA
IC0yNjk4NCw2ICsyNjk4NSw3IEBACiAJCQkJRkQzMTYwOTkxMkIwMjZGNzAwQzFBMzU5IC8qIEhS
VEZEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwOUIxMkIwMjZGNzAwQzFBMzU5
IC8qIEhSVEZEYXRhYmFzZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwOUQxMkIw
MjZGNzAwQzFBMzU5IC8qIEhSVEZFbGV2YXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUNERUZB
MjI4MUU3NjY5RTgwMDBBRTk5QyAvKiBQbGF0Zm9ybUF1ZGlvRGF0YS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkQzMTYwOUYxMkIwMjZGNzAwQzFBMzU5IC8qIEhSVEZLZXJuZWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUZEMzE2MEExMTJCMDI2RjcwMEMxQTM1OSAvKiBIUlRGUGFubmVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzk3RTIzQTEwOTE0NDk1MDAxMEQzNjEgLyogSFRNTEFsbENvbGxlY3Rp
b24uaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vV2ViQXVkaW9CdWZmZXJMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9XZWJBdWRpb0J1ZmZlckxpc3QuaAppbmRleCBiYmYzYzEzOWI2MjVlN2I0Yzc5YWY4NDI0MTM4
YjUwNDA3MzE4NWE4Li5kYjY1ZDM1MzRlM2JhNWU3ODc5Y2YyZjRkOTY4NDA4MGMwNGY2MTcyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9XZWJBdWRpb0J1ZmZlckxp
c3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9XZWJBdWRpb0J1ZmZlckxp
c3QuaApAQCAtNDIsNyArNDIsNyBAQCBjbGFzcyBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CiBj
bGFzcyBXZWJBdWRpb0J1ZmZlckxpc3QgOiBwdWJsaWMgUGxhdGZvcm1BdWRpb0RhdGEgewogcHVi
bGljOgogICAgIFdlYkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24mKTsKLSAgICBXZWJBdWRpb0J1ZmZlckxpc3QoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiwgdWludDMyX3Qgc2FtcGxlQ291bnQpOworICAgIFdFQkNPUkVfRVhQT1JUIFdlYkF1ZGlv
QnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCB1aW50MzJfdCBzYW1w
bGVDb3VudCk7CiAgICAgV2ViQXVkaW9CdWZmZXJMaXN0KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiYsIENNU2FtcGxlQnVmZmVyUmVmKTsKIAogICAgIEF1ZGlvQnVmZmVyTGlzdCogbGlz
dCgpIGNvbnN0IHsgcmV0dXJuIG1fbGlzdC5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1ZmZlci5oCmluZGV4IDVhYWI0OTI3ZGUwYWQ5N2Y4
YjgxNTgxMjQyOWFmZTk2YjQ3YjUzMWIuLjQ1YzU1ZGMxMzAxODE4MjFkNjA4ZThiNzNhZDdmNzY0
NWZkZjgyMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9D
QVJpbmdCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FS
aW5nQnVmZmVyLmgKQEAgLTg1LDYgKzg1LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0Q3VycmVudEZyYW1lQm91bmRzKHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90
IGVuZEZyYW1lKTsKIAogICAgIHVpbnQzMl90IGNoYW5uZWxDb3VudCgpIGNvbnN0IHsgcmV0dXJu
IG1fY2hhbm5lbENvdW50OyB9CisgICAgQ0FSaW5nQnVmZmVyU3RvcmFnZSYgc3RvcmFnZSgpIHsg
cmV0dXJuIG1fYnVmZmVyczsgfQogCiBwcml2YXRlOgogICAgIHNpemVfdCBmcmFtZU9mZnNldCh1
aW50NjRfdCBmcmFtZU51bWJlcikgeyByZXR1cm4gKGZyYW1lTnVtYmVyICYgbV9mcmFtZUNvdW50
TWFzaykgKiBtX2J5dGVzUGVyRnJhbWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCA2OTQ2N2Jm
Y2Y4MjQwMWQ2MWU1N2RmNTM3ZTVkNWViMTE1YjUwMWYxLi5lOWM1ZjNjNTk4YThjYzE3NzcxNzQ0
MDgyNDNiMTRiNWU4NDJiMjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC02MSw3ICs2MSw3IEBA
IGNsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZTsKIGNsYXNzIFBsYXRmb3JtQXVkaW9EYXRhOwogY2xh
c3MgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOwogCi1jbGFzcyBSZWFsdGltZU1lZGlhU291
cmNlIDogcHVibGljIFJlZkNvdW50ZWQ8UmVhbHRpbWVNZWRpYVNvdXJjZT4geworY2xhc3MgV0VC
Q09SRV9FWFBPUlQgUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBSZWZDb3VudGVkPFJlYWx0
aW1lTWVkaWFTb3VyY2U+IHsKIHB1YmxpYzoKICAgICBjbGFzcyBPYnNlcnZlciB7CiAgICAgcHVi
bGljOgpAQCAtMjAwLDYgKzIwMCw4IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgYXBw
bHlDb25zdHJhaW50cyhjb25zdCBGbGF0dGVuZWRDb25zdHJhaW50Jik7CiAgICAgdmlydHVhbCB2
b2lkIGFwcGx5U2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6
b3B0aW9uYWw8aW50PiBoZWlnaHQsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPik7CiAKKyAgICBjb25z
dCBWZWN0b3I8T2JzZXJ2ZXIqPiBvYnNlcnZlcnMoKSBjb25zdCB7IHJldHVybiBtX29ic2VydmVy
czsgfQorCiAgICAgYm9vbCBtX211dGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fZW5hYmxlZCB7
IHRydWUgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAppbmRleCBjODE4NzIwMDM5M2MzN2MwMzNhZThm
YTNhMTc0OWVlMGRkMDg4OTU1Li4zMTY2OTQzMmEyYzM5NmQwZjFiZDA1YjZmOThlYTE5MjE4ODdi
YjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dApAQCAtNjI5LDYgKzYyOSw4IEBAIHNldChXZWJLaXQy
X01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBVSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0
aW9uU2Vzc2lvbi5tZXNzYWdlcy5pbgogCisgICAgVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKwogICAgIFVJUHJvY2Vzcy9EYXRhYmFzZXMv
RGF0YWJhc2VQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KIAogICAgIFVJUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWRQcm94eS5tZXNzYWdlcy5pbgpAQCAtNjU3LDYgKzY1OSw4IEBAIHNldChXZWJL
aXQyX01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBXZWJQcm9jZXNzL0ljb25EYXRhYmFzZS9XZWJJ
Y29uRGF0YWJhc2VQcm94eS5tZXNzYWdlcy5pbgogCisgICAgV2ViUHJvY2Vzcy9NZWRpYVN0cmVh
bS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbgorCiAgICAgV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9XZWJSVENNb25pdG9yLm1lc3NhZ2VzLmluCiAgICAgV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZlci5tZXNzYWdlcy5pbgogICAgIFdlYlByb2Nlc3Mv
TmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0Lm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNv
dXJjZXMubWFrZQppbmRleCA5OTQ5MmZmYWVhMTQ0ZWU0YzdmNGU1ZWU1ZDkxZTNmNjZiOGI1ZTUw
Li45ZGVmMzcwNGI3NGQ0NTg4YmFkYzBiNDJjMTIwNzA3Y2FmZDkxYzRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKQEAgLTQ1LDYgKzQ1LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJL
aXQyKS9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3Mv
SWNvbkRhdGFiYXNlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTWVkaWFDYWNoZSBcCisg
ICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL01lZGlhU3RyZWFtIFwKICAgICAkKFdlYktpdDIpL1dl
YlByb2Nlc3MvTmV0d29yayBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucyBcCkBAIC02NSw2
ICs2Niw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL0NvY29hIFwKICAg
ICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9EYXRhYmFzZXMgXAogICAgICQoV2ViS2l0MikvVUlQcm9j
ZXNzL0Rvd25sb2FkcyBcCisgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvTWVkaWFTdHJlYW0gXAog
ICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL05ldHdvcmsgXAogICAgICQoV2ViS2l0MikvVUlQcm9j
ZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9O
b3RpZmljYXRpb25zIFwKQEAgLTEyMSw2ICsxMjMsOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwK
ICAgICBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyIFwKICAgICBTdG9yYWdlQXJlYU1hcCBc
CiAgICAgU3RvcmFnZU1hbmFnZXIgXAorICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIFwKKyAg
ICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IFwKICAgICBWaWV3R2VzdHVyZUNvbnRyb2xs
ZXIgXAogICAgIFZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3IgXAogICAgIFZpZXdVcGRhdGVE
aXNwYXRjaGVyIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9EZWNv
ZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9EZWNvZGVyLmNwcAppbmRleCA3
NDBhMGNjZWQxNzhkNmI2YTc1ODQzYzBhNzkwNjljYTMyYzA5ZGMyLi4wMzQyYjFkOGQ2YjNkZjA1
MTBmNGQ2NjRmMzNhNjMxNjQzMmM0MWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9JUEMvRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Rl
Y29kZXIuY3BwCkBAIC0yNTEsNiArMjUxLDE1IEBAIGJvb2wgRGVjb2Rlcjo6ZGVjb2RlKGludDY0
X3QmIHJlc3VsdCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBEZWNvZGVyOjpkZWNvZGUo
dW5zaWduZWQgbG9uZyYgcmVzdWx0KQoreworICAgIGlmICghYWxpZ25CdWZmZXJQb3NpdGlvbihz
aXplb2YocmVzdWx0KSwgc2l6ZW9mKHJlc3VsdCkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBkZWNvZGVWYWx1ZUZyb21CdWZmZXIocmVzdWx0LCBtX2J1ZmZlclBvcyk7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKIGJvb2wgRGVjb2Rlcjo6ZGVjb2RlKGZsb2F0JiByZXN1bHQpCiB7CiAg
ICAgaWYgKCFhbGlnbkJ1ZmZlclBvc2l0aW9uKHNpemVvZihyZXN1bHQpLCBzaXplb2YocmVzdWx0
KSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvRGVjb2Rlci5oIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0RlY29kZXIuaAppbmRleCA1YTMwYzQyNTg3OWQ3
NzkxMjZhYjVmNGQ2OTVjZjg4YmNkNDY2NTdiLi43ZjA1OWJkMzk4YWQyNDg2ODY4NDg4Y2UxMjE1
ZWUxNDExODNjYzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvRGVj
b2Rlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9EZWNvZGVyLmgKQEAgLTg0
LDYgKzg0LDcgQEAgcHVibGljOgogICAgIGJvb2wgZGVjb2RlKHVpbnQ2NF90Jik7CiAgICAgYm9v
bCBkZWNvZGUoaW50MzJfdCYpOwogICAgIGJvb2wgZGVjb2RlKGludDY0X3QmKTsKKyAgICBib29s
IGRlY29kZSh1bnNpZ25lZCBsb25nJik7CiAgICAgYm9vbCBkZWNvZGUoZmxvYXQmKTsKICAgICBi
b29sIGRlY29kZShkb3VibGUmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vSVBDL0VuY29kZXIuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0VuY29kZXIu
Y3BwCmluZGV4IDZjZDc0NzFkMTJjY2YxNDA2MGNmMmU0YzI3MWIzZTUwZjg5ZjcyNzQuLmQ2NDAw
YzY5M2EyNjA1OWY0ODBmZWNkNDZjNDFlYzY1NTJiZjQxYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0lQQy9FbmNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9JUEMvRW5jb2Rlci5jcHAKQEAgLTIzNiw2ICsyMzYsMTIgQEAgdm9pZCBFbmNvZGVyOjpl
bmNvZGUoaW50NjRfdCBuKQogICAgIGNvcHlWYWx1ZVRvQnVmZmVyKG4sIGJ1ZmZlcik7CiB9CiAK
K3ZvaWQgRW5jb2Rlcjo6ZW5jb2RlKHVuc2lnbmVkIGxvbmcgbikKK3sKKyAgICB1aW50OF90KiBi
dWZmZXIgPSBncm93KHNpemVvZihuKSwgc2l6ZW9mKG4pKTsKKyAgICBjb3B5VmFsdWVUb0J1ZmZl
cihuLCBidWZmZXIpOworfQorCiB2b2lkIEVuY29kZXI6OmVuY29kZShmbG9hdCBuKQogewogICAg
IHVpbnQ4X3QqIGJ1ZmZlciA9IGdyb3coc2l6ZW9mKG4pLCBzaXplb2YobikpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0VuY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0lQQy9FbmNvZGVyLmgKaW5kZXggOTJmOWJhMjU2YzNiNGRlOWFjYjI3MjJjZWU5
MTU1N2FlZGU0ZGRlMC4uM2JhNzk4YjU3YTVjOGYwZWJkYTdjOWU0ZGQxMThiNDIxNWMzYjYzYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0VuY29kZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvRW5jb2Rlci5oCkBAIC05Niw2ICs5Niw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBlbmNvZGUodWludDY0X3QpOwogICAgIHZvaWQgZW5jb2RlKGludDMy
X3QpOwogICAgIHZvaWQgZW5jb2RlKGludDY0X3QpOworICAgIHZvaWQgZW5jb2RlKHVuc2lnbmVk
IGxvbmcpOwogICAgIHZvaWQgZW5jb2RlKGZsb2F0KTsKICAgICB2b2lkIGVuY29kZShkb3VibGUp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZp
bml0aW9ucy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlv
bnMuaAppbmRleCA3ZmY3NzAyOGJmYjVjMDU1ZDhlYjJkNmEwNTIxODg0OGZhZDZjNTlhLi5iOWMx
NTlkYjA4NmViMjU2NzFhNGViYzgzNjJiZjIwNDk3Mjk1ZDgzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKQEAgLTEwMyw2ICsxMDMs
MTIgQEAKICNkZWZpbmUgREVGQVVMVF9DQU5WQVNfVVNFU19BQ0NFTEVSQVRFRF9EUkFXSU5HIHRy
dWUKICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisjZGVmaW5lIERFRkFVTFRfU0hPVUxE
X0NBUFRVUkVfQVVESU9fSU5fVUlQUk9DRVNTIHRydWUKKyNlbHNlCisjZGVmaW5lIERFRkFVTFRf
U0hPVUxEX0NBUFRVUkVfQVVESU9fSU5fVUlQUk9DRVNTIGZhbHNlCisjZW5kaWYKKwogLy8gbWFj
cm8oS2V5VXBwZXIsIEtleUxvd2VyLCBUeXBlTmFtZVVwcGVyLCBUeXBlTmFtZSwgRGVmYXVsdFZh
bHVlLCBIdW1hblJlYWRhYmxlTmFtZSwgSHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uKQogCiAjZGVm
aW5lIEZPUl9FQUNIX1dFQktJVF9CT09MX1BSRUZFUkVOQ0UobWFjcm8pIFwKQEAgLTI1Miw2ICsy
NTgsNyBAQAogICAgIG1hY3JvKEdhbWVwYWRzRW5hYmxlZCwgZ2FtZXBhZHNFbmFibGVkLCBCb29s
LCBib29sLCB0cnVlLCAiR2FtZXBhZHMiLCAiV2ViIEdhbWVwYWQgQVBJIHN1cHBvcnQiKSBcCiAg
ICAgbWFjcm8oSW5wdXRFdmVudHNFbmFibGVkLCBpbnB1dEV2ZW50c0VuYWJsZWQsIEJvb2wsIGJv
b2wsIHRydWUsICJJbnB1dCBFdmVudHMiLCAiRW5hYmxlIElucHV0RXZlbnRzIHN1cHBvcnQiKSBc
CiAgICAgbWFjcm8oQ3JlZGVudGlhbE1hbmFnZW1lbnRFbmFibGVkLCBjcmVkZW50aWFsTWFuYWdl
bWVudEVuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlLCAiQ3JlZGVudGlhbCBNYW5hZ2VtZW50Iiwg
IkVuYWJsZSBDcmVkZW50aWFsIE1hbmFnZW1lbnQgc3VwcG9ydCIpIFwKKyAgICBtYWNybyhTaG91
bGRDYXB0dXJlQXVkaW9JblVJUHJvY2Vzcywgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3Ms
IEJvb2wsIGJvb2wsIERFRkFVTFRfU0hPVUxEX0NBUFRVUkVfQVVESU9fSU5fVUlQUk9DRVNTLCAi
Q2FwdHVyZSIsICJDYXB0dXJlIEF1ZGlvIGluIFVJUHJvY2VzcyIpIFwKICAgICBcCiAKICNkZWZp
bmUgRk9SX0VBQ0hfV0VCS0lUX0RPVUJMRV9QUkVGRVJFTkNFKG1hY3JvKSBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAK
aW5kZXggNTEyZDIxMmQ4NGEwMTE4MDhjMjlhOGI1MTg0MTllMjBhNTE3NmIxYy4uZjMzZWE2YzBh
ODNiNDliMDFlN2ExNmFjZDVhMTFlYmE5YzMxMTYzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNjgsNiAr
NjgsNyBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBtZWRpYUtleVN0b3JhZ2VEaXJl
Y3RvcnlFeHRlbnNpb25IYW5kbGU7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBlbmNv
ZGVyIDw8IGF1ZGlvQ2FwdHVyZUV4dGVuc2lvbkhhbmRsZTsKKyAgICBlbmNvZGVyIDw8IHNob3Vs
ZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzOwogI2VuZGlmCiAgICAgZW5jb2RlciA8PCBzaG91bGRV
c2VUZXN0aW5nTmV0d29ya1Nlc3Npb247CiAgICAgZW5jb2RlciA8PCB1cmxTY2hlbWVzUmVnaXN0
ZXJlZEFzRW1wdHlEb2N1bWVudDsKQEAgLTE4OSw2ICsxOTAsOCBAQCBib29sIFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYlByb2Nl
c3NDcmVhdAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwYXJhbWV0ZXJzLmF1ZGlvQ2FwdHVyZUV4dGVuc2lvbkhhbmRsZSkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuc2hvdWxkQ2FwdHVy
ZUF1ZGlvSW5VSVByb2Nlc3MpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuc2hvdWxkVXNlVGVzdGluZ05ldHdvcmtTZXNz
aW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggYTNlNjJjZjlkNDMxZjQw
YmRjYTdhNWM4MDBjYzU3MDU5NzFjOGU5NC4uZmQ4MDZiMjIwMjQ3OWUxNjA0ODYxZGY5OGUwOGNh
YjFhMWFhNjBkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC04OCw2ICs4OCw3IEBAIHN0cnVjdCBXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgbWVkaWFL
ZXlTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwogI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGF1ZGlvQ2FwdHVyZUV4dGVuc2lvbkhh
bmRsZTsKKyAgICBib29sIHNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzIHsgZmFsc2UgfTsK
ICNlbmRpZgogICAgIFN0cmluZyBtZWRpYUtleVN0b3JhZ2VEaXJlY3Rvcnk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MGFmYzdhMjBjYTlhMmY3ODY1NzMxYjhj
YjE5YTliNWMzOTBjNGRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC0wLDAgKzEsMTU0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNp
bmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29u
c3RyYWludHNJbXBsLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KKyNpbmNsdWRl
IDx3dGYvVW5pcXVlUmVmLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNl
UHJveHkgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIsIHB1YmxpYyBTaGFy
ZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50IHsKK3B1YmxpYzoKKyAgICBTb3VyY2VQcm94eSh1
aW50NjRfdCBpZCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSYgbWFuYWdlciwgUmVmPFJl
YWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQorICAgICAgICA6IG1faWQoaWQpCisgICAgICAg
ICwgbV9tYW5hZ2VyKG1hbmFnZXIpCisgICAgICAgICwgbV9zb3VyY2UoV1RGTW92ZShzb3VyY2Up
KQorICAgICAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJT
dG9yYWdlPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPih0aGlzKSkpCisg
ICAgeworICAgICAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworICAgIH0KKworICAg
IH5Tb3VyY2VQcm94eSgpCisgICAgeworICAgICAgICBzdG9yYWdlKCkuaW52YWxpZGF0ZSgpOwor
ICAgICAgICBtX3NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworICAgIH0KKworICAgIFJl
YWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSgpIHsgcmV0dXJuIG1fc291cmNlOyB9CisgICAgU2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxTaGFy
ZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci5zdG9yYWdlKCkpOyB9CisgICAgQ0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbigpIHsgcmV0dXJuIG1fZGVzY3JpcHRp
b247IH0KKyAgICBpbnQ2NF90IG51bWJlck9mRnJhbWVzKCkgeyByZXR1cm4gbV9udW1iZXJPZkZy
YW1lczsgfQorCisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWwgeworICAgICAgICBtX21h
bmFnZXIucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpT
b3VyY2VTdG9wcGVkKG1faWQpLCAwKTsKKyAgICB9CisKKyAgICB2b2lkIHNvdXJjZU11dGVkQ2hh
bmdlZCgpIGZpbmFsIHsKKyAgICAgICAgbV9tYW5hZ2VyLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2Vz
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlTXV0ZWRDaGFuZ2VkKG1faWQsIG1fc291
cmNlLT5tdXRlZCgpKSwgMCk7CisgICAgfQorCisgICAgdm9pZCBzb3VyY2VFbmFibGVkQ2hhbmdl
ZCgpIGZpbmFsIHsKKyAgICAgICAgbV9tYW5hZ2VyLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlRW5hYmxlZENoYW5nZWQobV9pZCwgbV9zb3Vy
Y2UtPmVuYWJsZWQoKSksIDApOworICAgIH0KKworICAgIHZvaWQgc291cmNlU2V0dGluZ3NDaGFu
Z2VkKCkgZmluYWwgeworICAgICAgICBtX21hbmFnZXIucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2VTZXR0aW5nc0NoYW5nZWQobV9pZCwgbV9z
b3VyY2UtPnNldHRpbmdzKCkpLCAwKTsKKyAgICB9CisKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2
YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBh
dWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXpl
X3QgbnVtYmVyT2ZGcmFtZXMpIGZpbmFsIHsKKyAgICAgICAgaWYgKG1fZGVzY3JpcHRpb24gIT0g
ZGVzY3JpcHRpb24pIHsKKyAgICAgICAgICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURl
c2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFz
aWNUeXBlKTsKKyAgICAgICAgICAgIG1fZGVzY3JpcHRpb24gPSAqV1RGOjpnZXQ8Y29uc3QgQXVk
aW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlv
bigpLmRlc2NyaXB0aW9uKTsKKworICAgICAgICAgICAgLy8gQWxsb2NhdGUgYSByaW5nIGJ1ZmZl
ciBsYXJnZSBlbm91Z2ggdG8gY29udGFpbiAyIHNlY29uZHMgb2YgYXVkaW8uCisgICAgICAgICAg
ICBtX251bWJlck9mRnJhbWVzID0gbV9kZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAyOworICAg
ICAgICAgICAgbV9yaW5nQnVmZmVyLmFsbG9jYXRlKG1fZGVzY3JpcHRpb24uc3RyZWFtRGVzY3Jp
cHRpb24oKSwgbV9udW1iZXJPZkZyYW1lcyk7CisgICAgICAgIH0KKworICAgICAgICBBU1NFUlQo
aXM8V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRpb0RhdGEpKTsKKyAgICAgICAgbV9yaW5nQnVmZmVy
LnN0b3JlKGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4oYXVkaW9EYXRhKS5saXN0KCksIG51
bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsKKyAgICAgICAgdWludDY0X3Qgc3RhcnRG
cmFtZTsKKyAgICAgICAgdWludDY0X3QgZW5kRnJhbWU7CisgICAgICAgIG1fcmluZ0J1ZmZlci5n
ZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOworICAgICAgICBtX21h
bmFnZXIucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpB
dWRpb1NhbXBsZXNBdmFpbGFibGUobV9pZCwgdGltZSwgbnVtYmVyT2ZGcmFtZXMsIHN0YXJ0RnJh
bWUsIGVuZEZyYW1lKSwgMCk7CisgICAgfQorCisgICAgdm9pZCBzdG9yYWdlQ2hhbmdlZChTaGFy
ZWRNZW1vcnkqIHN0b3JhZ2UpIGZpbmFsIHsKKyAgICAgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUg
aGFuZGxlOworICAgICAgICBpZiAoc3RvcmFnZSkKKyAgICAgICAgICAgIHN0b3JhZ2UtPmNyZWF0
ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworICAg
ICAgICBtX21hbmFnZXIucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjpTdG9yYWdlQ2hhbmdlZChtX2lkLCBoYW5kbGUsIG1fZGVzY3JpcHRpb24sIG1fbnVt
YmVyT2ZGcmFtZXMpLCAwKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICB1aW50NjRfdCBtX2lk
OworICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkmIG1fbWFuYWdlcjsKKyAgICBSZWY8
UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CisgICAgQ0FSaW5nQnVmZmVyIG1fcmluZ0J1
ZmZlcjsKKyAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbiB7IH07Cisg
ICAgaW50NjRfdCBtX251bWJlck9mRnJhbWVzIHsgMCB9OworfTsKKworVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eShXZWJQcm9jZXNzUHJv
eHkmIHByb2Nlc3MpCisgICAgOiBtX3Byb2Nlc3MocHJvY2VzcykKK3sKKyAgICBtX3Byb2Nlc3Mu
YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKK30KKworVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eTo6flVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoKQoreworICAgIG1fcHJv
Y2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENv
bnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHNEYXRhJiBjb25zdHJhaW50c0RhdGEsIGJvb2wmIHN1Y2NlZWRlZCwg
U3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMpCit7CisgICAgYXV0byBjb25zdHJhaW50cyA9IE1l
ZGlhQ29uc3RyYWludHNJbXBsOjpjcmVhdGUoY29uc3RyYWludHNEYXRhKTsKKyAgICBSZWZQdHI8
UmVhbHRpbWVNZWRpYVNvdXJjZT4gc291cmNlID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
c2luZ2xldG9uKCkuZGVmYXVsdEF1ZGlvRmFjdG9yeSgpLT5jcmVhdGVNZWRpYVNvdXJjZUZvckNh
cHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoZGV2aWNlLCBjb25zdHJhaW50cy5wdHIoKSwgaW52
YWxpZENvbnN0cmFpbnRzKTsKKyAgICBzdWNjZWVkZWQgPSAhIXNvdXJjZTsKKyAgICAKKyAgICBp
ZiAoc291cmNlKQorICAgICAgICBtX3Byb3hpZXMuc2V0KGlkLCBzdGQ6Om1ha2VfdW5pcXVlPFNv
dXJjZVByb3h5PihpZCwgKnRoaXMsIHNvdXJjZS5yZWxlYXNlTm9uTnVsbCgpKSk7Cit9CisKK3Zv
aWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6c3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2
NF90IGlkKQoreworICAgIGF1dG8gaXRlciA9IG1fcHJveGllcy5maW5kKGlkKTsKKyAgICBpZiAo
aXRlciAhPSBtX3Byb3hpZXMuZW5kKCkpCisgICAgICAgIGl0ZXItPnZhbHVlLT5zb3VyY2UoKS5z
dGFydFByb2R1Y2luZ0RhdGEoKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjpzdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKK3sKKyAgICBhdXRvIGl0ZXIgPSBt
X3Byb3hpZXMuZmluZChpZCk7CisgICAgaWYgKGl0ZXIgIT0gbV9wcm94aWVzLmVuZCgpKQorICAg
ICAgICBpdGVyLT52YWx1ZS0+c291cmNlKCkuc3RvcFByb2R1Y2luZ0RhdGEoKTsKK30KKworfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxMTMyMWRiYWNh
MDQ3NWVkNDc5ZjJiYmZiYjM1ZTU2NjRkOGY2ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCkBA
IC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JN
KENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5o
IgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRp
YVNvdXJjZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU2hhcmVkTWVtb3J5Owor
Y2xhc3MgV2ViUHJvY2Vzc1Byb3h5OworCitjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5IDogcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eShXZWJQcm9jZXNzUHJveHkmKTsKKyAgICB+VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eSgpOworCisgICAgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzKCkg
Y29uc3QgeyByZXR1cm4gbV9wcm9jZXNzOyB9CisKK3ByaXZhdGU6CisgICAgLy8gSVBDOjpNZXNz
YWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29k
ZXI+JikgZmluYWw7CisKKyAgICB2b2lkIGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmlj
ZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhJiwgYm9vbCYgc3VjY2VlZGVk
LCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cyk7CisgICAgdm9pZCBzdGFydFByb2R1Y2luZ0Rh
dGEodWludDY0X3QpOworICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEodWludDY0X3QpOworCisg
ICAgY2xhc3MgU291cmNlUHJveHk7CisgICAgZnJpZW5kIGNsYXNzIFNvdXJjZVByb3h5OworICAg
IEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxTb3VyY2VQcm94eT4+IG1fcHJveGll
czsKKyAgICBXZWJQcm9jZXNzUHJveHkmIG1fcHJvY2VzczsKK307CisKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0
YjhjYmI3YjhhNjliNzNiMzk3YTllOWQyYmNjMGU3MGIxMzExNWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI4IEBACisjIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
IHsKKyAgICBDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMo
dWludDY0X3QgaWQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2aWNlLCBzdHJ1Y3QgV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50c0RhdGEgY29uc3RyYWludHMpIC0+IChib29sIHN1Y2Nlc3MsIFN0
cmluZyBpbnZhbGlkQ29uc3RyYWludHMpCisgICAgU3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90
IGlkKQorICAgIFN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQorfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRl
eCA4NzM4ZjA3MDYzN2Y0OTBmMWYwODZjMDk5YjkzNzRlNzQwZWNjN2VlLi5mNDczYjVkODEyMThl
YmYyZjAyYTlhZmZmYmFhNWUxNDk5OWI4YWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpAQCAtMjU4LDYgKzI1OCw4
IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYKICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgYW5k
IHJlbGF0ZWQgcGFyYW1ldGVyIHdoZW4gPHJkYXI6Ly9wcm9ibGVtLzI5NDQ4MzY4PiBpcyBmaXhl
ZC4KICAgICBpZiAobWVkaWFTdHJlYW1FbmFibGVkIHx8IHdlYlJUQ0VuYWJsZWQpCiAgICAgICAg
IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvckdlbmVyaWNFeHRlbnNpb24oImNvbS5h
cHBsZS53ZWJraXQubWljcm9waG9uZSIsIHBhcmFtZXRlcnMuYXVkaW9DYXB0dXJlRXh0ZW5zaW9u
SGFuZGxlKTsKKworICAgIHBhcmFtZXRlcnMuc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3Mg
PSBtX2RlZmF1bHRQYWdlR3JvdXAtPnByZWZlcmVuY2VzKCkuc2hvdWxkQ2FwdHVyZUF1ZGlvSW5V
SVByb2Nlc3MoKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCmluZGV4IDVmZjY0ZDY0OGM0Yjc4NDI1ZmQ5MTI3MDYzNDdmMjg3OGY5
NGU1MDAuLmNkMWRjZDdkNTZlYzY3N2QyNGM5Nzk5NmY3OGQ0YmQxMDI1N2Q1OWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0zNyw2ICszNyw3
IEBACiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0YXRl
LmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIgogI2luY2x1
ZGUgIldlYkljb25EYXRhYmFzZS5oIgogI2luY2x1ZGUgIldlYkluc3BlY3RvclV0aWxpdGllcy5o
IgpAQCAtMTA0LDkgKzEwNSwxNCBAQCBXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eShX
ZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFdlYnNpdGVEYXRhU3RvcmUqCiAgICAgLCBtX2lz
UmVzcG9uc2l2ZShOb09yTWF5YmU6Ok1heWJlKQogICAgICwgbV92aXNpYmxlUGFnZUNvdW50ZXIo
W3RoaXNdKFJlZkNvdW50ZXJFdmVudCkgeyB1cGRhdGVCYWNrZ3JvdW5kUmVzcG9uc2l2ZW5lc3NU
aW1lcigpOyB9KQogICAgICwgbV93ZWJzaXRlRGF0YVN0b3JlKHdlYnNpdGVEYXRhU3RvcmUpCisj
aWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgLCBtX3VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoc3RkOjptYWtlX3VuaXF1ZTxVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5PigqdGhpcykpCisjZW5kaWYKIHsKICAgICBXZWJQYXN0ZWJvYXJkUHJveHk6
OnNpbmdsZXRvbigpLmFkZFdlYlByb2Nlc3NQcm94eSgqdGhpcyk7CiAKKworCiAgICAgY29ubmVj
dCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5k
ZXggZjVlNjFhYTAwMTgwNjc3NDgyYWYzNzA3ZGNiZGIxOTk1MTdmYWY2YS4uYjMyODgxNWNmMTY0
MjdmOGFjNmRkNjY2ZjNhOTU3MmRhYTcxYzkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuaApAQCAtNTYsNiArNTYsNyBAQCBzdHJ1Y3QgUGx1Z2luSW5mbzsK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5OworY2xhc3Mg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0
ZW07CiBjbGFzcyBXZWJQYWdlR3JvdXA7CiBjbGFzcyBXZWJQcm9jZXNzUG9vbDsKQEAgLTI3Myw2
ICsyNzQsMTAgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2Vic2l0ZURhdGFTdG9yZT4gbV93ZWJz
aXRlRGF0YVN0b3JlOwogCiAgICAgYm9vbCBtX2lzVW5kZXJNZW1vcnlQcmVzc3VyZSB7IGZhbHNl
IH07CisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eT4gbV91c2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA2MjY3N2Y4N2E1ZWQ2NTIwMTY4NzNmYTNlZjEyMDI1YTM1MWFlNGUwLi42ZGZjN2NmOTkx
MTc2NDBmNDZiNjdhYTQwZGRkYmEzZjJiNWQ5Yzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xODc5LDExICsxODc5LDE4IEBA
CiAJCUNEMDAzQTUzMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDAwM0E1
MTE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oICovOyB9Owog
CQlDRDE5QTI2RDFBMTNFODJBMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxOUEy
NjkxQTEzRTgyMDAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCAqLzsg
fTsKIAkJQ0QxOUEyNkUxQTEzRTgzNDAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5
QTI2QTFBMTNFODIxMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLzsg
fTsKKwkJQ0Q0OTFCMDcxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENDkx
QjA1MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgKi87IH07
CisJCUNENDkxQjA4MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0OTFCMDYx
RTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggKi87IH07CisJCUNE
NDkxQjBEMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDQ5MUIwQjFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQlDRDQ5MUIwRTFFNzMyRTREMDAwMDkwNjYgLyogVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0OTFCMEMxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKKwkJQ0Q0OTFCMTIxRTczNDgyMTAwMDA5
MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0OTFCMTAxRTczNDgyMTAwMDA5MDY2IC8q
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwICovOyB9OworCQlDRDQ5MUIxMzFFNzM0
ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0OTFCMTExRTczNDgyMTAwMDA5
MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCAqLzsgfTsKKwkJQ0Q0OTFCMTcx
RTczNTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q0OTFCMTUxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQlDRDQ5MUIxODFFNzM1MjU1MDAwMDkwNjYgLyog
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ5MUIxNjFFNzM1MjU1MDAwMDkwNjYgLyog
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi87IH07CiAJCUNENEI0RDlD
MUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDRCNEQ5QTFFNzY1RTAwMDBE
MjcwOTIgLyogU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuY3BwICovOyB9OwogCQlDRDRCNEQ5RDFF
NzY1RTAwMDBEMjcwOTIgLyogU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENEI0RDlCMUU3NjVFMDAwMEQyNzA5
MiAvKiBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oICovOyB9OwogCQlDRDVDNjZBMDEzNEI5RDM4
MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDVDNjY5RTEzNEI5RDM2
MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5jcHAgKi87IH07
CiAJCUNENUM2NkExMTM0QjlEMzgwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2Ny
ZWVuQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDVDNjY5RjEzNEI5RDM3MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVl
bkNsaWVudC5oICovOyB9OwotCQlDRDYxNzgxNDFFNkRFOUEwMDBGREE1N0QgLyogV2ViVXNlck1l
ZGlhQ2xpZW50TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0Q2MTc4MTIxRTZERTlBMDAwRkRBNTdEIC8qIFdlYlVzZXJNZWRpYUNsaWVudE1hYy5t
bSAqLzsgfTsKIAkJQ0Q2Rjc1RjQxMzFCNjZEMDAwRDZCMjFFIC8qIFdlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0Q3M0JBM0UxMzFBMkU4QTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHku
Y3BwICovOyB9OwogCQlDRDczQkE0NzEzMUFDQzlBMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1h
bmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDczQkE0NTEzMUFDQzg4MDBFRURFRDIgLyogV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCUNENzNCQTRFMTMx
QUNEQjcwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDczQkE0ODEz
MUFDRDhFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovOyB9OwpAQCAtNDE2OSwxMSArNDE3NiwyMCBAQAogCQlDRDAwM0E1MTE5RDQ5QjVEMDA1QUJD
RTAgLyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmg7IHBhdGggPSBNZWRpYUNhY2hl
L1dlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0QxOUEyNjkxQTEzRTgyMDAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkRpYWdub3N0aWNM
b2dnaW5nQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QxOUEyNkEx
QTEzRTgyMTAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENDkxQjA1MUU3MEQwNUYwMDAwOTA2NiAvKiBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNENDkxQjA2MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ5MUIwQTFFNzMyRDEy
MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUNENDkxQjBCMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUNENDkxQjBDMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0Q0OTFCMTAxRTczNDgyMTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA7IHBhdGggPSAuLi9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFC
MTExRTczNDgyMTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5oOyBwYXRoID0gLi4vQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ5MUIxNDFFNzM0OUYzMDAwMDkwNjYgLyogVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBwYXRoID0gLi4vQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQ0Q0OTFCMTUxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENDkxQjE2MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENEI0RDlBMUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFy
ZWRSaW5nQnVmZmVyU3RvcmFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNENEI0RDlCMUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFyZWRSaW5nQnVmZmVyU3RvcmFn
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFyZWRSaW5nQnVmZmVyU3Rv
cmFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDVDNjY5RTEzNEI5RDM2MDA0
RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVu
Q2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1QzY2OUYxMzRCOUQz
NzAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNs
aWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDRDYxNzgxMjFFNkRFOUEwMDBG
REE1N0QgLyogV2ViVXNlck1lZGlhQ2xpZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBuYW1lID0gV2ViVXNlck1lZGlhQ2xpZW50TWFjLm1tOyBwYXRoID0gY29jb2Ev
V2ViVXNlck1lZGlhQ2xpZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
RDczQkEzNzEzMUEyOUZFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3Bw
OyBwYXRoID0gRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNENzNCQTM4MTMxQTI5RkUwMEVFREVEMiAvKiBXZWJGdWxsU2Ny
ZWVuTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJGdWxsU2Ny
ZWVuTWFuYWdlci5oOyBwYXRoID0gRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDczQkEzOTEzMUEyOUZFMDBFRURFRDIgLyog
V2ViRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0g
V2ViRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW47IHBhdGggPSBGdWxsU2NyZWVuL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNjI4MSw2ICs2Mjk3LDkgQEAKIAkJN0M2RTcwRjgxOEIyRDQ3RTAwRjI0RTJFIC8qIGNvY29h
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlDRDQ5MUIw
NTFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwICovLAorCQkJ
CUNENDkxQjA2MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oICov
LAorCQkJCUNENDkxQjBBMUU3MzJEMTIwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ci5tZXNzYWdlcy5pbiAqLywKIAkJCQlDREEyOUExOTFDQkRCRjQxMDA5MDFDQ0YgLyogV2ViUGxh
eWJhY2tTZXNzaW9uTWFuYWdlci5oICovLAogCQkJCUNEQTI5QTFDMUNCREJGNUIwMDkwMUNDRiAv
KiBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJCUNEQTI5QTE4
MUNCREJGNDEwMDkwMUNDRiAvKiBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1tICovLApAQCAt
NzQ0OCw2ICs3NDY3LDkgQEAKIAkJCQkxQUE0MTdFRDEyQzAwRDg3MDAyQkU2N0IgLyogVGV4dENo
ZWNrZXJNYWMubW0gKi8sCiAJCQkJMUFGMDVEODUxNDY4ODM0ODAwOEIxRTgxIC8qIFRpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaCAqLywKIAkJCQkxQUYwNUQ4NDE0Njg4MzQ4MDA4
QjFFODEgLyogVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbSAqLywKKwkJCQlD
RDQ5MUIxMDFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5j
cHAgKi8sCisJCQkJQ0Q0OTFCMTExRTczNDgyMTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuaCAqLywKKwkJCQlDRDQ5MUIxNDFFNzM0OUYzMDAwMDkwNjYgLyogVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQkyRDEyNUM1RDE4NTdF
QTA1MDAzQkEzQ0IgLyogVmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tICovLAogCQkJCTJENkNE
MTE3MTg5MDU4QTUwMEU1QTRBMCAvKiBWaWV3U25hcHNob3RTdG9yZS5oICovLAogCQkJCTJENkNE
MTE4MTg5MDU4QTUwMEU1QTRBMCAvKiBWaWV3U25hcHNob3RTdG9yZS5tbSAqLywKQEAgLTc2OTMs
NiArNzcxNSwxMCBAQAogCQkJCTFBMzM0REVDMTZERThGODgwMDZBOEUzOCAvKiBTdG9yYWdlQXJl
YU1hcE1lc3NhZ2VzLmggKi8sCiAJCQkJMUFCMzFBOTQxNkJDNjg4MTAwRjZEQkM5IC8qIFN0b3Jh
Z2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQUIzMUE5NTE2QkM2ODgxMDBG
NkRCQzkgLyogU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCUNENDkxQjE1MUU3MzUy
NTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKKwkJCQlDRDQ5MUIxNjFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJQ0Q0OTFCMEIxRTczMkU0RDAwMDA5MDY2
IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQlD
RDQ5MUIwQzFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdl
cy5oICovLAogCQkJCTJEMUI1RDVCMTg1ODY5QzgwMDZDNjU5NiAvKiBWaWV3R2VzdHVyZUNvbnRy
b2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTJEMUI1RDVDMTg1ODY5QzgwMDZDNjU5
NiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdlcy5oICovLAogCQkJCTJEODE5QjlGMTg2
MjgwMEUwMDFGMDNEMSAvKiBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLywKQEAgLTc4MjQsNyArNzg1MCw2IEBACiAJCUNENjE3ODExMUU2REU5ODAwMEZE
QTU3RCAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
Ci0JCQkJQ0Q2MTc4MTIxRTZERTlBMDAwRkRBNTdEIC8qIFdlYlVzZXJNZWRpYUNsaWVudE1hYy5t
bSAqLywKIAkJCSk7CiAJCQluYW1lID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwpAQCAtODA0NSw2ICs4MDcwLDcgQEAKIAkJCQk3QzI0MTMwMzFBQUNGQTc1MDBBNThDMTUgLyog
X1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MyNDEz
MDUxQUFDRkE5QzAwQTU4QzE1IC8qIF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVJbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NBMzc5M0UxQUMzNzhCMzAwNzlEQzM3IC8qIF9XS1Vz
ZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVQcml2YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDQ5
MUIxMzFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJN0M4OUQyQkExQTZCMEYyQzAwM0E1RkRFIC8qIF9XS1VzZXJDb250
ZW50RmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Qzg5RDJCQzFBNkIwRjVCMDAzQTVGREUg
LyogX1dLVXNlckNvbnRlbnRGaWx0ZXJJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNE
Mjg2NTMxRTcyMzVBQTAwOTRGREM4IC8qIF9XS1VzZXJDb250ZW50RmlsdGVyUHJpdmF0ZS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC04MDUyLDYgKzgwNzgsNyBAQAogCQkJCTdDODgyREY5MUM3RTk5NkYw
MDZCRjczMSAvKiBfV0tVc2VyQ29udGVudFdvcmxkSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdDQjM2NUFBMUQzMURCNzAwMDcxNThDQSAvKiBfV0tVc2VySW5pdGlhdGVkQWN0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3Q0IzNjVBRDFEMzFEQzEwMDA3MTU4Q0EgLyogX1dLVXNlcklu
aXRpYXRlZEFjdGlvbkludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDQ5MUIwRTFFNzMy
RTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMkQ4Nzg2MUQxQkRCNTRCRjAwRDAyQUJCIC8qIF9XS1VzZXJTdHlsZVNoZWV0
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDg3ODYyMDFCREI1N0Y1MDBEMDJBQkIgLyogX1dLVXNl
clN0eWxlU2hlZXRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4MUIzODExOEJENjZB
RDAwMDdGREFDIC8qIF9XS1Zpc2l0ZWRMaW5rU3RvcmUuaCBpbiBIZWFkZXJzICovLApAQCAtODA5
Nyw2ICs4MTI0LDcgQEAKIAkJCQkxQTI0NjRGMzE4OTFFNDUxMDAyMzRDNUIgLyogQVBJTG9hZGVy
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0QzQTQ4MzFBNUQwMkZBMDA5NjIzQjggLyog
QVBJTmF2aWdhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRGOUVFRUMxQTc4MzZFRTAwQjZD
RkJFIC8qIEFQSU5hdmlnYXRpb25BY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUNENDkxQjA4
MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMkREOUVCMkQxQTZGMDEyNTAwQkIxMjY3IC8qIEFQSU5hdmlnYXRpb25DbGllbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDRjY5RkEyMTE3NkQwMTQwMDQ3MUE1MiAvKiBBUElOYXZp
Z2F0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRGOUVFRUUxQTc4NkVBRDAwQjZDRkJF
IC8qIEFQSU5hdmlnYXRpb25SZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCkBAIC04NDIyLDYgKzg0
NTAsNyBAQAogCQkJCUUxOEU2OTBDMTY5QjU2M0YwMDlCNjY3MCAvKiBTZWNJdGVtU2hpbVByb3h5
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMThFNjkxODE2OUI2NjdCMDA5QjY2NzAgLyogU2VjSXRl
bVNoaW1Qcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTREOUY1NzE5MTE5RDM1
MDAwMDYzQTcgLyogU2VydmljZXNDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDQ5
MUIxODFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3Nh
Z2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUZERTY1QTE5NTRBNDJCMDBDNDhGRkEgLyogU2Vz
c2lvblN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTAwMkQ0OTE5NkIzNDVEMDBCOUFENDQg
LyogU2Vzc2lvblN0YXRlQ29kaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTNFM0UwRTE4ODcz
OTg5MDAxODg0OTYgLyogU2Vzc2lvblRyYWNrZXIuaCBpbiBIZWFkZXJzICovLApAQCAtOTYwMSw2
ICs5NjMwLDcgQEAKIAkJCQkzNzNEMTIyMjE4QTQ3MzAxMDA2NkQ5Q0MgLyogX1dLRnJhbWVIYW5k
bGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk5M0E4OEIzOTFCQzcwRjNGMDBBQkE1QzIgLyogX1dL
SGl0VGVzdFJlc3VsdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxMEY1OTEyMURERTI5NzcwMDQx
MkZGNSAvKiBfV0tMaW5rSWNvblBhcmFtZXRlcnMubW0gaW4gU291cmNlcyAqLywKKwkJCQlDRDQ5
MUIwRDFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTExOEE5RjIxOTA4QjhFQTAwRjdDOTJCIC8q
IF9XS05TRmlsZU1hbmFnZXJFeHRyYXMubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTQzRTgyOTE4
OEYzQ0RDMDA5RTREMzAgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUE5RTMyOEUxODIxNjVBOTAwRjVEMDRDIC8qIF9XS1JlbW90ZU9iamVjdElu
dGVyZmFjZS5tbSBpbiBTb3VyY2VzICovLApAQCAtOTYzNyw2ICs5NjY3LDcgQEAKIAkJCQk1MUQx
MjQ5MTFFNzRCRjNDMDAyQjI4MjAgLyogQVBJSFRUUENvb2tpZVN0b3JlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTdDRDNBNDgyMUE1RDAyRkEwMDk2MjNCOCAvKiBBUElOYXZpZ2F0aW9uLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUJDRjY5RkEzMTE3NkQwMTQwMDQ3MUE1MiAvKiBBUElOYXZpZ2F0
aW9uRGF0YS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDQ5MUIxNzFFNzM1MjU1MDAwMDkwNjYg
LyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCNjM0MDNGOTE0OTEwRDU3MDAxMDcwQjUgLyogQVBJT2JqZWN0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTM3OEUxQTNEMTgxRUQ2RkYwMDMxMDA3QSAvKiBBUElPYmplY3Qu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzg1N0ZCNjEyQjgzMEU2MDBFREVCMkUgLyogQVBJT3Bl
blBhbmVsUGFyYW1ldGVycy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTk2NTksNiArOTY5MCw3IEBA
CiAJCQkJMUEzNjM1QTkxQTMxNDRBMzAwRUQ2MTk3IC8qIEFQSVdlYnNpdGVEYXRhU3RvcmUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUEzNjM1QUQxQTMxNDVFNTAwRUQ2MTk3IC8qIEFQSVdlYnNp
dGVEYXRhU3RvcmVDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVDQjIzNzkxMURGMEUyRTYw
MDExN0FBMyAvKiBBUElXZWJzaXRlUG9saWNpZXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q0
OTFCMTIxRTczNDgyMTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUE2NTYzRTQxQjdBOEM1MDAwOUNGNzg3IC8qIEFQSVdpbmRv
d0ZlYXR1cmVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBRDRDMTkyMUIzOUYzMzIwMEFCQzI4
RSAvKiBBcHBsaWNhdGlvblN0YXRlVHJhY2tlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBM0Q2
MTA1MTNBN0YwM0EwMEY5NUQ0RSAvKiBBcmd1bWVudENvZGVycy5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTEwMTg2LDYgKzEwMjE4LDcgQEAKIAkJCQk3QzQ2OTREMDFBNTFFMzY4MDBBRDU4NDUgLyog
V2ViUGFzdGVib2FyZFByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDNDY5NENDMUE0QjUx
MEEwMEFENTg0NSAvKiBXZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTdDNDY5NEM5MUE0QjRFQTEwMEFENTg0NSAvKiBXZWJQYXN0ZWJvYXJkUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q0OTFCMDcxRTcwRDA1RjAwMDA5MDY2
IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQjFG
Nzc0MUQxQjJGOEEwMDdDOUJEMSAvKiBXZWJQYXltZW50Q29vcmRpbmF0b3IuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUFCMUY3OTYxRDFCMzYxMzAwN0M5QkQxIC8qIFdlYlBheW1lbnRDb29yZGlu
YXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUIxRjc4QjFEMUIz
MzU1MDA3QzlCRDEgLyogV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuY3BwIGluIFNvdXJjZXMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKaW5kZXggYWFkZWQzNDRhNzZhZWE2YWI0
NzE2MmQ4OTY4Y2NiMmM1ZjA1MGM2Ny4uMzYyMjAyZTBlZDYwZTY1Nzc0ZmZjODcwNzBjZDUxNzNk
YjVjYjg2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcApAQCAtMzMsNyArMzMsNiBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKIFdlYlVzZXJNZWRpYUNsaWVudDo6V2ViVXNlck1lZGlhQ2xp
ZW50KFdlYlBhZ2UmIHBhZ2UpCiAgICAgOiBtX3BhZ2UocGFnZSkKIHsKLSAgICBpbml0aWFsaXpl
RmFjdG9yaWVzKCk7CiB9CiAKIHZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpwYWdlRGVzdHJveWVk
KCkKQEAgLTYxLDEzICs2MCw2IEBAIHZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpjYW5jZWxNZWRp
YURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QoTWVkaWFEZXZpY2VzRW51bWVyCiAgICAgbV9wYWdl
LnVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLmNhbmNlbE1lZGlhRGV2aWNlc0Vu
dW1lcmF0aW9uKHJlcXVlc3QpOwogfQogCi0jaWYgIVBMQVRGT1JNKENPQ09BKQotdm9pZCBXZWJV
c2VyTWVkaWFDbGllbnQ6OmluaXRpYWxpemVGYWN0b3JpZXMoKQotewotCi19Ci0jZW5kaWYKLQog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0OwogCiAjZW5kaWYgLy8gTUVESUFfU1RSRUFNCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2NvY29hL1dlYlVz
ZXJNZWRpYUNsaWVudE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvY29jb2EvV2ViVXNlck1lZGlhQ2xpZW50TWFjLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBhOGRmMmYxMDE5YmE4NmY2ZmE3YTM2MTYwNGEwZWEyNzZiZDc1YzFlLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvY29jb2EvV2ViVXNlck1lZGlhQ2xpZW50TWFjLm1t
CisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJXZWJVc2VyTWVkaWFDbGllbnQuaCIKLQotI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pICYmIFBMQVRGT1JNKENPQ09BKQotCi0jaW1wb3J0IDxXZWJDb3JlL1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KLSNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgot
Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNz
IFdlYlVzZXJNZWRpYUNsaWVudEF1ZGlvRmFjdG9yeSBmaW5hbCA6IHB1YmxpYyBSZWFsdGltZU1l
ZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFdlYlVzZXJN
ZWRpYUNsaWVudEF1ZGlvRmFjdG9yeSYgc2luZ2xldG9uKCkKLSAgICB7Ci0gICAgICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxXZWJVc2VyTWVkaWFDbGllbnRBdWRpb0ZhY3Rvcnk+IGZhY3Rvcnk7
Ci0gICAgICAgIHJldHVybiBmYWN0b3J5OwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBSZWZQdHI8
UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0
aENvbnN0cmFpbnRzKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnRzKSBmaW5hbCB7
Ci0gICAgICAgIGF1dG8qIGZhY3RvcnkgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5n
bGV0b24oKS5kZWZhdWx0QXVkaW9GYWN0b3J5KCk7Ci0gICAgICAgIHJldHVybiBmYWN0b3J5ID8g
ZmFjdG9yeS0+Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRz
KGRldmljZSwgY29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50cykgOiBudWxscHRyOwotICAg
IH0KLX07Ci0KLXZvaWQgV2ViVXNlck1lZGlhQ2xpZW50Ojppbml0aWFsaXplRmFjdG9yaWVzKCkK
LXsKLSAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKLSAgICBkaXNwYXRjaF9v
bmNlKCZvbmNlVG9rZW4sIF4gewotICAgICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpzaW5nbGV0b24oKS5zZXRBdWRpb0ZhY3RvcnkoV2ViVXNlck1lZGlhQ2xpZW50QXVk
aW9GYWN0b3J5OjpzaW5nbGV0b24oKSk7Ci0gICAgfSk7Ci19Ci0KLX0KLQotI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA2YTQxYjRjZjA3M2M4YjAy
MjE0MWFhYzVkM2Y1Mzk4YTk5OTUwNzg3Li5hMWVhOTZkNzljOGY5YWYyNTAyMzJlYzFmMGQ1OTBj
NmUxODYyMzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAg
LTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgogI2luY2x1ZGUgIlN0
YXRpc3RpY3NEYXRhLmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKKyNpbmNsdWRlICJVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHku
aCIKICNpbmNsdWRlICJXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJD
b29raWVNYW5hZ2VyLmgiCkBAIC0xOTEsNiArMTkyLDEwIEBAIFdlYlByb2Nlc3M6OldlYlByb2Nl
c3MoKQogICAgIGFkZFN1cHBsZW1lbnQ8V2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlcj4oKTsKICNl
bmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBhZGRTdXBwbGVtZW50PFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyPigpOworI2VuZGlmCisKICAgICBtX3BsdWdJbkF1dG9TdGFydE9y
aWdpbkhhc2hlcy5hZGQoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIEhhc2hNYXA8dW5z
aWduZWQsIGRvdWJsZT4oKSk7CiAKICAgICBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hhcmVkT2Jz
ZXJ2ZXIoKS5zZXRTdGF0aXN0aWNzU3RvcmUobV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUu
Y29weVJlZigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9j
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjYyMzdkMGViOWRj
MWZiNDE2NDM3ZjcxMjhiMjM0MTc5M2MxOGQyOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC0w
LDAgKzEsMjI2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgi
CisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUg
IlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJl
RGV2aWNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzSW1wbC5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIHVpbnQ2NF90IG5leHRTZXNzaW9uSUQoKQor
eworICAgIHN0YXRpYyB1aW50NjRfdCBuZXh0SUQgPSAwOworICAgIHJldHVybiArK25leHRJRDsK
K30KKworY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZSA6IHB1YmxpYyBSZWFs
dGltZU1lZGlhU291cmNlIHsKK3B1YmxpYzoKKyAgICBTb3VyY2UoY29uc3QgU3RyaW5nJiBzb3Vy
Y2VJRCwgVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIG5hbWUsIHVpbnQ2NF90IGlkLCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlcikKKyAgICAgICAgOiBSZWFsdGltZU1lZGlhU291cmNl
KHNvdXJjZUlELCB0eXBlLCBuYW1lKQorICAgICAgICAsIG1faWQoaWQpCisgICAgICAgICwgbV9t
YW5hZ2VyKG1hbmFnZXIpCisgICAgICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWVSZWY8U2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG51bGxwdHIpKQorICAgIHsKKyAgICB9CisKKyAgICB+U291
cmNlKCkKKyAgICB7CisgICAgICAgIHN0b3JhZ2UoKS5pbnZhbGlkYXRlKCk7CisgICAgfQorCisg
ICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKSB7IHJldHVybiBzdGF0aWNfY2Fz
dDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci5zdG9yYWdlKCkpOyB9Cisg
ICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOyB9CisgICAgdm9pZCBzZXRDYXBh
YmlsaXRpZXMoUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxp
dGllcykgeyBtX2NhcGFiaWxpdGllcyA9IGNhcGFiaWxpdGllczsgfQorCisgICAgY29uc3QgUmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fc2V0dGluZ3M7IH0KKyAgICB2b2lkIHNldFNldHRpbmdzKGNvbnN0IFJlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MpCisgICAgeworICAgICAgICBtX3NldHRpbmdzID0gc2V0
dGluZ3M7CisgICAgICAgIHNldHRpbmdzRGlkQ2hhbmdlKCk7CisgICAgfQorCisgICAgY29uc3Qg
Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1f
ZGVzY3JpcHRpb247IH0KKyAgICB2b2lkIHNldFN0b3JhZ2UoY29uc3QgU2hhcmVkTWVtb3J5OjpI
YW5kbGUmIGhhbmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBk
ZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisgICAgeworICAgICAgICBtX2Rl
c2NyaXB0aW9uID0gZGVzY3JpcHRpb247CisgICAgICAgIGlmIChoYW5kbGUuaXNOdWxsKCkpIHsK
KyAgICAgICAgICAgIG1fcmluZ0J1ZmZlci5kZWFsbG9jYXRlKCk7CisgICAgICAgICAgICBzdG9y
YWdlKCkuc2V0UmVhZE9ubHkoZmFsc2UpOworICAgICAgICAgICAgc3RvcmFnZSgpLnNldFN0b3Jh
Z2UobnVsbHB0cik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBS
ZWZQdHI8U2hhcmVkTWVtb3J5PiBtZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1hcChoYW5kbGUsIFNo
YXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworICAgICAgICBzdG9yYWdlKCkuc2V0
U3RvcmFnZShXVEZNb3ZlKG1lbW9yeSkpOworICAgICAgICBzdG9yYWdlKCkuc2V0UmVhZE9ubHko
dHJ1ZSk7CisKKyAgICAgICAgbV9yaW5nQnVmZmVyLmFsbG9jYXRlKGRlc2NyaXB0aW9uLCBudW1i
ZXJPZkZyYW1lcyk7CisgICAgfQorCisgICAgdm9pZCBzZXRSaW5nQnVmZmVyRnJhbWVCb3VuZHMo
dWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCisgICAgeworICAgICAgICBt
X3JpbmdCdWZmZXIuc2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsK
KyAgICB9CisKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUgdGltZSwg
dWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisgICAgeworICAgICAgICBXZWJBdWRpb0J1ZmZlckxp
c3QgYXVkaW9EYXRhKG1fZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAgICAgICAgbV9y
aW5nQnVmZmVyLmZldGNoKGF1ZGlvRGF0YS5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRp
bWVWYWx1ZSgpKTsKKworICAgICAgICBmb3IgKGF1dG8qIG9ic2VydmVyIDogb2JzZXJ2ZXJzKCkp
CisgICAgICAgICAgICBvYnNlcnZlci0+YXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIGF1ZGlv
RGF0YSwgbV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgIH0KKworICAgIHZvaWQg
c3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWwgeyBtX21hbmFnZXIuc3RhcnRQcm9kdWNpbmdEYXRh
KG1faWQpOyB9CisgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9tYW5hZ2Vy
LnN0b3BQcm9kdWNpbmdEYXRhKG1faWQpOyB9CisKKyAgICBBdWRpb1NvdXJjZVByb3ZpZGVyKiBh
dWRpb1NvdXJjZVByb3ZpZGVyKCkgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQorCitwcml2YXRl
OgorICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2UKKyAgICB2b2lkIGJlZ2luQ29uZmlndXJhdGlv
bigpIGZpbmFsIHsgfQorICAgIHZvaWQgY29tbWl0Q29uZmlndXJhdGlvbigpIGZpbmFsIHsgfQor
CisgICAgdWludDY0X3QgbV9pZDsKKyAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbV9tYW5h
Z2VyOworICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFi
aWxpdGllczsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKKyAg
ICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbjsKKyAgICBDQVJpbmdCdWZm
ZXIgbV9yaW5nQnVmZmVyOworfTsKKworVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyKFdlYlByb2Nlc3MqIHByb2Nlc3MpCisgICAgOiBtX3Byb2Nlc3MoKnBy
b2Nlc3MpCit7CisgICAgbV9wcm9jZXNzLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMpOworfQor
CitVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6flVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKCkKK3sK
KyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS51bnNldEF1ZGlvRmFj
dG9yeSgqdGhpcyk7CisgICAgbV9wcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Cit9CisK
K2NvbnN0IGNoYXIqIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzdXBwbGVtZW50TmFtZSgpCit7
CisgICAgcmV0dXJuICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciI7Cit9CisKK3ZvaWQgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OmluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyYgcGFyYW1ldGVycykKK3sKKyAgICBpZiAocGFyYW1ldGVycy5zaG91bGRDYXB0dXJl
QXVkaW9JblVJUHJvY2VzcykKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2lu
Z2xldG9uKCkuc2V0QXVkaW9GYWN0b3J5KCp0aGlzKTsKK30KKworUmVmUHRyPFJlYWx0aW1lTWVk
aWFTb3VyY2U+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVNZWRpYVNvdXJjZUZvckNh
cHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiBpbnZhbGlkQ29uc3Ry
YWludHMpCit7CisgICAgaWYgKCFjb25zdHJhaW50cykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisKKyAgICB1aW50NjRfdCBpZCA9IG5leHRTZXNzaW9uSUQoKTsKKyAgICBNZWRpYUNvbnN0cmFp
bnRzRGF0YSBjb25zdHJhaW50c0RhdGE7CisgICAgY29uc3RyYWludHNEYXRhLm1hbmRhdG9yeUNv
bnN0cmFpbnRzID0gY29uc3RyYWludHMtPm1hbmRhdG9yeUNvbnN0cmFpbnRzKCk7CisgICAgY29u
c3RyYWludHNEYXRhLmFkdmFuY2VkQ29uc3RyYWludHMgPSBjb25zdHJhaW50cy0+YWR2YW5jZWRD
b25zdHJhaW50cygpOworICAgIGNvbnN0cmFpbnRzRGF0YS5pc1ZhbGlkID0gY29uc3RyYWludHMt
PmlzVmFsaWQoKTsKKyAgICBib29sIHN1Y2NlZWRlZDsKKworICAgIG1fcHJvY2Vzcy5zZW5kU3lu
YyhNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3Vy
Y2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGlkLCBkZXZpY2UsIGNvbnN0cmFpbnRz
RGF0YSksIE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRp
YVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHM6OlJlcGx5KHN1Y2NlZWRlZCwg
aW52YWxpZENvbnN0cmFpbnRzKSwgMCk7CisKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKG5l
dyBTb3VyY2UoU3RyaW5nOjpudW1iZXIoaWQpLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpB
dWRpbywgZGV2aWNlLmxhYmVsKCksIGlkLCAqdGhpcykpOworICAgIG1fc291cmNlcy5zZXQoaWQs
IHNvdXJjZSk7CisgICAgcmV0dXJuIHNvdXJjZTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6c291cmNlU3RvcHBlZCh1aW50NjRfdCBpZCkKK3sKKyAgICBBU1NFUlQobV9zb3Vy
Y2VzLmNvbnRhaW5zKGlkKSk7CisgICAgbV9zb3VyY2VzLmdldChpZCktPnN0b3AoKTsKK30KKwor
dm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlTXV0ZWRDaGFuZ2VkKHVpbnQ2NF90
IGlkLCBib29sIG11dGVkKQoreworICAgIEFTU0VSVChtX3NvdXJjZXMuY29udGFpbnMoaWQpKTsK
KyAgICBtX3NvdXJjZXMuZ2V0KGlkKS0+c2V0TXV0ZWQobXV0ZWQpOworfQorCit2b2lkIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VFbmFibGVkQ2hhbmdlZCh1aW50NjRfdCBpZCwgYm9v
bCBlbmFibGVkKQoreworICAgIEFTU0VSVChtX3NvdXJjZXMuY29udGFpbnMoaWQpKTsKKyAgICBt
X3NvdXJjZXMuZ2V0KGlkKS0+c2V0RW5hYmxlZChlbmFibGVkKTsKK30KKwordm9pZCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6c291cmNlU2V0dGluZ3NDaGFuZ2VkKHVpbnQ2NF90IGlkLCBjb25z
dCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQoreworICAgIEFTU0VSVCht
X3NvdXJjZXMuY29udGFpbnMoaWQpKTsKKyAgICBtX3NvdXJjZXMuZ2V0KGlkKS0+c2V0U2V0dGlu
Z3Moc2V0dGluZ3MpOworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzdG9yYWdl
Q2hhbmdlZCh1aW50NjRfdCBpZCwgY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhhbmRsZSwg
Y29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgdWlu
dDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7CisgICAgQVNTRVJUKG1fc291cmNlcy5jb250YWlucyhp
ZCkpOworICAgIG1fc291cmNlcy5nZXQoaWQpLT5zZXRTdG9yYWdlKGhhbmRsZSwgZGVzY3JpcHRp
b24sIG51bWJlck9mRnJhbWVzKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
cmluZ0J1ZmZlckZyYW1lQm91bmRzQ2hhbmdlZCh1aW50NjRfdCBpZCwgdWludDY0X3Qgc3RhcnRG
cmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCit7CisgICAgQVNTRVJUKG1fc291cmNlcy5jb250YWlu
cyhpZCkpOworICAgIG1fc291cmNlcy5nZXQoaWQpLT5zZXRSaW5nQnVmZmVyRnJhbWVCb3VuZHMo
c3RhcnRGcmFtZSwgZW5kRnJhbWUpOworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjphdWRpb1NhbXBsZXNBdmFpbGFibGUodWludDY0X3QgaWQsIE1lZGlhVGltZSB0aW1lLCB1aW50
NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJh
bWUpCit7CisgICAgQVNTRVJUKG1fc291cmNlcy5jb250YWlucyhpZCkpOworICAgIGF1dG8mIHNv
dXJjZSA9ICptX3NvdXJjZXMuZ2V0KGlkKTsKKyAgICBzb3VyY2Uuc2V0UmluZ0J1ZmZlckZyYW1l
Qm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAgICBzb3VyY2UuYXVkaW9TYW1wbGVzQXZh
aWxhYmxlKHRpbWUsIG51bWJlck9mRnJhbWVzKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6c3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQoreworICAgIG1fcHJvY2Vz
cy5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTdGFydFByb2R1
Y2luZ0RhdGEoaWQpLCAwKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3Rv
cFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCit7CisgICAgbV9wcm9jZXNzLnNlbmQoTWVzc2Fn
ZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlN0b3BQcm9kdWNpbmdEYXRhKGlkKSwg
MCk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmEzMjY2
NjJhNjM5NzY4NzI4OWI1NTU1NDFjYTNkZmJkYTYwN2ZjYwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApA
QCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9S
TShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNl
aXZlci5oIgorI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NT
dXBwbGVtZW50LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+Cisj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
Q3Jvc3NQcm9jZXNzUmVhbHRpbWVBdWRpb1NvdXJjZTsKK2NsYXNzIFdlYlByb2Nlc3M7CisKK2Ns
YXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIDogcHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50
LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIoV2ViUHJvY2VzcyopOworICAgIH5Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcigpOworCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CisKK3By
aXZhdGU6CisgICAgLy8gV2ViUHJvY2Vzc1N1cHBsZW1lbnQKKyAgICB2b2lkIGluaXRpYWxpemUo
Y29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpIGZpbmFsOworCisgICAgLy8gV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6RmFjdG9yeToKKyAgICBSZWZQdHI8V2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0
aENvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3Jl
OjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJikgZmluYWw7CisKKyAgICAvLyBJUEM6Ok1lc3Nh
Z2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICAvLyBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIKKyAgICB2b2lkIHNvdXJjZVN0b3BwZWQodWludDY0X3QgaWQpOworICAgIHZvaWQg
c291cmNlTXV0ZWRDaGFuZ2VkKHVpbnQ2NF90IGlkLCBib29sIG11dGVkKTsKKyAgICB2b2lkIHNv
dXJjZUVuYWJsZWRDaGFuZ2VkKHVpbnQ2NF90IGlkLCBib29sIGVuYWJsZWQpOworICAgIHZvaWQg
c291cmNlU2V0dGluZ3NDaGFuZ2VkKHVpbnQ2NF90IGlkLCBjb25zdCBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3MmKTsKKyAgICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKHVpbnQ2NF90
IGlkLCBjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKyAgICB2b2lkIHJp
bmdCdWZmZXJGcmFtZUJvdW5kc0NoYW5nZWQodWludDY0X3QgaWQsIHVpbnQ2NF90IHN0YXJ0RnJh
bWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh1
aW50NjRfdCBpZCwgTWVkaWFUaW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qg
c3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworCisgICAgdm9pZCBzdGFydFByb2R1Y2lu
Z0RhdGEodWludDY0X3QpOworICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEodWludDY0X3QpOwor
CisgICAgY2xhc3MgU291cmNlOworICAgIGZyaWVuZCBjbGFzcyBTb3VyY2U7CisgICAgSGFzaE1h
cDx1aW50NjRfdCwgUmVmUHRyPFNvdXJjZT4+IG1fc291cmNlczsKKyAgICBXZWJQcm9jZXNzJiBt
X3Byb2Nlc3M7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZWVjMDU2NWM2ODY0YTQ2YjAwZTlmOGZiOTEwYzE4Yzg5ZTll
NGExMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMSBAQAorIyBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisj
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIgeworICAgIFNvdXJjZVN0b3BwZWQodWludDY0X3QgaWQpCisgICAgU291
cmNlTXV0ZWRDaGFuZ2VkKHVpbnQ2NF90IGlkLCBib29sIG11dGVkKQorICAgIFNvdXJjZUVuYWJs
ZWRDaGFuZ2VkKHVpbnQ2NF90IGlkLCBib29sIGVuYWJsZWQpCisgICAgU291cmNlU2V0dGluZ3ND
aGFuZ2VkKHVpbnQ2NF90IGlkLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mg
c2V0dGluZ3MpCisgICAgU3RvcmFnZUNoYW5nZWQodWludDY0X3QgaWQsIFdlYktpdDo6U2hhcmVk
TWVtb3J5OjpIYW5kbGUgc3RvcmFnZUhhbmRsZSwgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKKyAgICBBdWRpb1Nh
bXBsZXNBdmFpbGFibGUodWludDY0X3QgaWQsIE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1i
ZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304511</attachid>
            <date>2017-03-15 10:12:39 -0700</date>
            <delta_ts>2017-03-15 12:49:22 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-169609-20170315101238.patch</filename>
            <type>text/plain</type>
            <size>71420</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzOTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDU4MmE2NzA4OGM4MmI3YjU3Y2UwNzc3
MGE5Y2Q1ZDVlM2FiNzFkMjIuLjY3OGQ5ZWVhNGJkYThiZTI2OGU1ZjQ4Zjk2M2VkYjVlM2FhZDM5
Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTctMDMtMTQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgT3B0aW9uYWxseSBjYXB0dXJlIGF1ZGlvIGluIHRoZSBV
SVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2OTYwOQorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAg
ICAgQWRkIGFuIGVuY29kZXIvZGVjb2RlciBtZXRob2QgZm9yICJ1bnNpZ25lZCBsb25nIiwgYSB0
eXBlIGZvdW5kIGluIHBsYXRmb3JtLWRlZmluZWQgc3RydWN0cy4KKworICAgICAgICAqIHd0Zi9w
ZXJzaXN0ZW5jZS9EZWNvZGVyLmNwcDoKKyAgICAgICAgKFdURjo6UGVyc2lzdGVuY2U6OkRlY29k
ZXI6OmRlY29kZSk6CisgICAgICAgICogd3RmL3BlcnNpc3RlbmNlL0RlY29kZXIuaDoKKyAgICAg
ICAgKiB3dGYvcGVyc2lzdGVuY2UvRW5jb2Rlci5jcHA6CisgICAgICAgIChXVEY6OlBlcnNpc3Rl
bmNlOjpFbmNvZGVyOjplbmNvZGUpOgorICAgICAgICAqIHd0Zi9wZXJzaXN0ZW5jZS9FbmNvZGVy
Lmg6CisKIDIwMTctMDMtMTUgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAg
ICAgIFNvcnQgWGNvZGUgcHJvamVjdCBmaWxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGViMGEwYTdhN2ZjMjNi
ZWZiMGJhYThiODEzMTRiMjdjOGJiMGMzNDEuLmNiOWI3ZDYyYTNhYjA2NjNiNWRmNDZiMGRlMGI0
MjRjMjA4NjljMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNy0wMy0xNCAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBPcHRpb25hbGx5IGNhcHR1
cmUgYXVkaW8gaW4gdGhlIFVJUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTY5NjA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJp
c3RlbnNlbi4KKworICAgICAgICBFeHBvcnQgc29tZSBwcmV2aW91c2x5IHVuLWV4cG9ydGVkIHN5
bWJvbHMgZnJvbSBXZWJDb3JlIGZvciB1c2UgaW4gV2ViS2l0Mi4KKworICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9X
ZWJBdWRpb0J1ZmZlckxpc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlLmg6CisKIDIwMTctMDMtMTUgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRz
QGFwcGxlLmNvbT4KIAogICAgICAgICBbTW9kZXJuIE1lZGlhIENvbnRyb2xzXSBBbHdheXMgdXNl
IHNpeCBkaWdpdHMgdG8gZGlzcGxheSB0aW1lIHdoZW4gb3ZlcmFsbCBtZWRpYSBkdXJhdGlvbiBp
cyBhbiBob3VyIG9yIG1vcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAxMjE1ODBhNzVjYmZhYmZmN2Y0NDYyMWU2
MzUxYjQ2NjcwNmVmODVlLi40NzM1M2YzNTEyZGZlZjZjMGRiZjY4MjM0ZmQyNjY3NDI5MmViYjIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTggQEAKKzIwMTctMDMtMTQgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgT3B0aW9uYWxseSBjYXB0dXJlIGF1ZGlvIGlu
IHRoZSBVSVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2OTYwOQorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisK
KyAgICAgICAgQWRkIGEgbmV3IGNsYXNzIHBhaXIsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyL1By
b3h5LCB0byBhbGxvdyBhIFJlYWx0aW1lTWVkaWFTb3VyY2UKKyAgICAgICAgcmVxdWVzdGVkIGlu
IGEgV2ViUHJvY2VzcyB0byBiZSBjcmVhdGVkIGluIHRoZSBVSVByb2Nlc3MgYW5kIHB1c2ggaXRz
IGF1ZGlvIGRhdGEgYWNyb3NzIHRoZQorICAgICAgICBwcm9jZXNzIGJvdW5kYXJ5IHRvIGl0cyBj
bGllbnRzIGluIHRoZSBXZWJQcm9jZXNzLiBCZWNhdXNlIHRoZXNlIGNsYXNzZXMgYXJlIGNsaWVu
dHMgb2YgdGhlCisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigp
LCB0aGV5IG11c3QgYmUgYSBzaW5nbGV0b24gaW4gdGhlIFdlYlByb2Nlc3MgYXMgd2VsbCwKKyAg
ICAgICAgc28gdGhleSBhcmUgYXR0YWNoZWQgdG8gdGhlIFdlYlByb2Nlc3MgY2xhc3MgaW4gdGhl
IHdlYiBwcm9jZXNzIGFuZCB0byBXZWJQcm9jZXNzUHJveHkgaW4KKyAgICAgICAgdGhlIFVJUHJv
Y2Vzcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OlNvdXJjZVByb3h5OjpTb3VyY2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5Ojp+U291cmNlUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94
eTo6c291cmNlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6U291cmNlUHJveHk6OmRlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6Om51bWJlck9mRnJhbWVzKToKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6On5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJl
RGV2aWNlV2l0aENvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6c3RvcFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmg6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnByb2Nlc3MpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Om5leHRTZXNzaW9uSUQpOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpTb3VyY2UpOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjp+U291cmNl
KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6c2V0
Q2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OlNvdXJjZTo6c2V0U2V0dGluZ3MpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6U291cmNlOjpkZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnNldFN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpzZXRSaW5nQnVmZmVyRnJhbWVCb3VuZHMp
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjphdWRp
b1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6flVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmluaXRpYWxpemUpOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0
dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OnNvdXJjZVN0b3BwZWQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlcjo6c291cmNlTXV0ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZUVuYWJsZWRDaGFuZ2VkKToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZVNldHRpbmdzQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzdG9yYWdlQ2hhbmdlZCk6
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpyaW5nQnVmZmVyRnJh
bWVCb3VuZHNDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyOjpzdGFydFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViS2l0OjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6c3RvcFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICog
V2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbjogQWRk
ZWQuCisKKyAgICAgICAgSW5pdGlhbGl6ZSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci9Qcm94eToK
KworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vz
cyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6V2ViUHJvY2Vzcyk6CisKKyAgICAg
ICAgV2ViVXNlck1lZGlhQ2xpZW50TWFjIGlzIG5vIGxvbmdlciBuZWNlc3Nhcnkgbm93IHRoYXQg
dGhlIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIG92ZXJyaWRlcworICAgICAgICB0aGUgZmFjdG9y
aWVzOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFD
bGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnQ6OldlYlVzZXJN
ZWRpYUNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVudDo6aW5pdGlh
bGl6ZUZhY3Rvcmllcyk6IERlbGV0ZWQuCisKKyAgICAgICAgQWRkIGEgbmV3IHByZWZlcmVuY2Ug
YW5kIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgbWVtYmVyIHRvIGNvbnRyb2wgd2hldGhl
cgorICAgICAgICBjYXB0dXJpbmcgaXMgZG9uZSBpbiB0aGUgVUlQcm9jZXNzOgorCisgICAgICAg
ICogU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaDoKKyAgICAgICAgKiBTaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKworICAgICAgICBBZGQgYW4gZW5jb2RlL2RlY29k
ZSBtZXRob2QgZm9yICJ1bnNpZ25lZCBsb25nIiwgYSB0eXBlIGZvdW5kIGluIHBsYXRmb3JtLWRl
ZmluZWQgc3RydWN0cy4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9EZWNvZGVyLmNwcDoKKyAg
ICAgICAgKElQQzo6RGVjb2Rlcjo6ZGVjb2RlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvRGVj
b2Rlci5oOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9FbmNvZGVyLmNwcDoKKyAgICAgICAgKElQ
Qzo6RW5jb2Rlcjo6ZW5jb2RlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvRW5jb2Rlci5oOgor
CisgICAgICAgIEFkZCBuZXcgZmlsZXMgdG8gdGhlIHByb2plY3Q6CisKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKwogMjAxNy0wMy0xNSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAg
ICAgICAgU29ydCBYY29kZSBwcm9qZWN0IGZpbGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9wZXJzaXN0ZW5jZS9EZWNvZGVyLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3BlcnNpc3RlbmNlL0Rl
Y29kZXIuY3BwCmluZGV4IDM1NGZmMDYwNmIwMjgwMTQ2YTJkMjQ4NjJkMmNhYTFjZThjMzYwY2Eu
LjBhZDlhZTU1ZDRmMjgwN2U3N2RhNTY3NjE5MzU3OGE5ZDEyNTM4MjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL3BlcnNpc3RlbmNlL0RlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L3BlcnNpc3RlbmNlL0RlY29kZXIuY3BwCkBAIC0xMDcsNiArMTA3LDExIEBAIGJvb2wgRGVjb2Rl
cjo6ZGVjb2RlKGludDY0X3QmIHJlc3VsdCkKICAgICByZXR1cm4gZGVjb2RlTnVtYmVyKHJlc3Vs
dCk7CiB9CiAKK2Jvb2wgRGVjb2Rlcjo6ZGVjb2RlKHVuc2lnbmVkIGxvbmcmIHJlc3VsdCkKK3sK
KyAgICByZXR1cm4gZGVjb2RlTnVtYmVyKHJlc3VsdCk7Cit9CisKIGJvb2wgRGVjb2Rlcjo6ZGVj
b2RlKGZsb2F0JiByZXN1bHQpCiB7CiAgICAgcmV0dXJuIGRlY29kZU51bWJlcihyZXN1bHQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvcGVyc2lzdGVuY2UvRGVjb2Rlci5oIGIvU291cmNl
L1dURi93dGYvcGVyc2lzdGVuY2UvRGVjb2Rlci5oCmluZGV4IDQxNGVjODhmYzJmMDk0Zjg1ZmVh
YWMzODY5ODAxNDVjOTg5OGY4ODcuLjA2OTVhNWFiMWZkNGFlNjY5MDkyOWQ5ZjI2ZmI4NWMwZDk3
OWIwZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3BlcnNpc3RlbmNlL0RlY29kZXIuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9wZXJzaXN0ZW5jZS9EZWNvZGVyLmgKQEAgLTUxLDYgKzUxLDcg
QEAgcHVibGljOgogICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGRlY29kZSh1aW50NjRfdCYp
OwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGRlY29kZShpbnQzMl90Jik7CiAgICAgV1RG
X0VYUE9SVF9QUklWQVRFIGJvb2wgZGVjb2RlKGludDY0X3QmKTsKKyAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgYm9vbCBkZWNvZGUodW5zaWduZWQgbG9uZyYpOwogICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBib29sIGRlY29kZShmbG9hdCYpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGRlY29k
ZShkb3VibGUmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvcGVyc2lzdGVuY2UvRW5j
b2Rlci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9wZXJzaXN0ZW5jZS9FbmNvZGVyLmNwcAppbmRleCAw
ZjExZTM0ODFmZjMzMGYxMmI0YzlhMzk3NDJmNGZjY2ZiMWU5NDdlLi5hZmIxOWU0NzhmZmRlMDk2
ZWVlOTIwM2RhMDVhOGQwNTA3MWY2ZWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9wZXJz
aXN0ZW5jZS9FbmNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9wZXJzaXN0ZW5jZS9FbmNv
ZGVyLmNwcApAQCAtMTA1LDYgKzEwNSwxMSBAQCB2b2lkIEVuY29kZXI6OmVuY29kZShpbnQ2NF90
IHZhbHVlKQogICAgIGVuY29kZU51bWJlcih2YWx1ZSk7CiB9CiAKK3ZvaWQgRW5jb2Rlcjo6ZW5j
b2RlKHVuc2lnbmVkIGxvbmcgdmFsdWUpCit7CisgICAgZW5jb2RlTnVtYmVyKHZhbHVlKTsKK30K
Kwogdm9pZCBFbmNvZGVyOjplbmNvZGUoZmxvYXQgdmFsdWUpCiB7CiAgICAgZW5jb2RlTnVtYmVy
KHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3BlcnNpc3RlbmNlL0VuY29kZXIu
aCBiL1NvdXJjZS9XVEYvd3RmL3BlcnNpc3RlbmNlL0VuY29kZXIuaAppbmRleCA2MWM5NjU1MzBl
N2YxZDMwZDJmMTA2OTExYmM1ZGFlNThkMGQ5NWFlLi4xYjI3M2NkZjA0MzNhNGM2MzhmYWJiYTA5
YzdkNTBjNGRkMTQxZWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9wZXJzaXN0ZW5jZS9F
bmNvZGVyLmgKKysrIGIvU291cmNlL1dURi93dGYvcGVyc2lzdGVuY2UvRW5jb2Rlci5oCkBAIC03
OCw2ICs3OCw3IEBAIHByaXZhdGU6CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZW5jb2Rl
KHVpbnQ2NF90KTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBlbmNvZGUoaW50MzJfdCk7
CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZW5jb2RlKGludDY0X3QpOworICAgIFdURl9F
WFBPUlRfUFJJVkFURSB2b2lkIGVuY29kZSh1bnNpZ25lZCBsb25nKTsKICAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgdm9pZCBlbmNvZGUoZmxvYXQpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lk
IGVuY29kZShkb3VibGUpOwogCkBAIC0xMDAsNiArMTAxLDcgQEAgdGVtcGxhdGUgPD4gc3RydWN0
IEVuY29kZXI6OlNhbHQ8aW50MzJfdD4geyBzdGF0aWMgY29uc3QgdW5zaWduZWQgdmFsdWUgPSAx
NzsgfTsKIHRlbXBsYXRlIDw+IHN0cnVjdCBFbmNvZGVyOjpTYWx0PGludDY0X3Q+IHsgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIHZhbHVlID0gMTk7IH07CiB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW5jb2Rl
cjo6U2FsdDxmbG9hdD4geyBzdGF0aWMgY29uc3QgdW5zaWduZWQgdmFsdWUgPSAyMzsgfTsKIHRl
bXBsYXRlIDw+IHN0cnVjdCBFbmNvZGVyOjpTYWx0PGRvdWJsZT4geyBzdGF0aWMgY29uc3QgdW5z
aWduZWQgdmFsdWUgPSAyOTsgfTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBFbmNvZGVyOjpTYWx0PHVu
c2lnbmVkIGxvbmc+IHsgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHZhbHVlID0gMzE7IH07CiB0ZW1w
bGF0ZSA8PiBzdHJ1Y3QgRW5jb2Rlcjo6U2FsdDx1aW50OF90Kj4geyBzdGF0aWMgY29uc3QgdW5z
aWduZWQgdmFsdWUgPSAxMDE7IH07CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUeXBlPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGZl
OTg5ZGQ2NmFkN2RjMjUzYWE1N2FhNGI3MzZiNTliZjg1ODFjM2MuLjNjYTQwZTc4NWFmYTllMGU0
N2EwZmRhODFmM2RhODVlMGEzOWZkYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYxNjksNyArNjE2OSw3IEBACiAJCUNERTU5
NTk3MUJGMjZFMjEwMEExQ0JFOCAvKiBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREU1OTU5NjFCRjI2
RTIxMDBBMUNCRTggLyogQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oICovOyB9OwogCQlD
REU1OTU5RDFCRjI3NTcxMDBBMUNCRTggLyogQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTU5NTlD
MUJGMjc1NzEwMEExQ0JFOCAvKiBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tICovOyB9
OwogCQlDREU2NjdBNDFFNEJCRjE1MDBFODE1NEEgLyogV2ViQXVkaW9CdWZmZXJMaXN0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTY2N0EyMUU0
QkJGMTUwMEU4MTU0QSAvKiBXZWJBdWRpb0J1ZmZlckxpc3QuY3BwICovOyB9OwotCQlDREU2NjdB
NTFFNEJCRjE1MDBFODE1NEEgLyogV2ViQXVkaW9CdWZmZXJMaXN0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREU2NjdBMzFFNEJCRjE1MDBFODE1NEEg
LyogV2ViQXVkaW9CdWZmZXJMaXN0LmggKi87IH07CisJCUNERTY2N0E1MUU0QkJGMTUwMEU4MTU0
QSAvKiBXZWJBdWRpb0J1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENERTY2N0EzMUU0QkJGMTUwMEU4MTU0QSAvKiBXZWJBdWRpb0J1ZmZl
ckxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlDREU3RkM0NDE4MTkwNEIxMDAyQkJCNzcgLyogT3JkZXJJdGVyYXRvci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREU3RkM0MjE4MTkwNEIxMDAy
QkJCNzcgLyogT3JkZXJJdGVyYXRvci5jcHAgKi87IH07CiAJCUNERTdGQzQ1MTgxOTA0QjEwMDJC
QkI3NyAvKiBPcmRlckl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDREU3RkM0MzE4MTkwNEIxMDAyQkJCNzcgLyogT3JkZXJJdGVyYXRvci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERTgz
REIxMTgzQzQ0MDYwMDMxRUFBMyAvKiBWaWRlb1BsYXliYWNrUXVhbGl0eS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREU4M0RBRjE4M0M0NDA2MDAz
MUVBQTMgLyogVmlkZW9QbGF5YmFja1F1YWxpdHkuY3BwICovOyB9OwpAQCAtNjE4Niw2ICs2MTg2
LDcgQEAKIAkJQ0RFQTdDODUxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQTdDODMx
Mjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uY3BwICovOyB9OwogCQlDREVFMzkz
NzE3OTc0MjU5MDAxRDc1ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVFMzkzNjE3OTc0MjU5MDAxRDc1ODAg
LyogUHVibGljVVJMTWFuYWdlci5jcHAgKi87IH07CiAJCUNERUY0RkQ3MTdFODVDOEYwMEFFRTI0
QiAvKiBHcmlkTGVuZ3RoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyogR3JpZExlbmd0aC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERUZBMjI4MUU3NjY5
RTgwMDBBRTk5QyAvKiBQbGF0Zm9ybUF1ZGlvRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3QTExRTRCQkE0RDAwRTgxNTRBIC8qIFBsYXRm
b3JtQXVkaW9EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQ0RGMkIwMDQxODFGMDU5QzAwRjJCNDI0IC8qIE1lZGlhRGVzY3JpcHRpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjJCMDAzMTgx
RjA1OUMwMEYyQjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggKi87IH07CiAJCUNERjJCMDEwMTgy
MDU0MDYwMEYyQjQyNCAvKiBNb2NrQm94LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENERjJCMDA2MTgyMDU0MDYwMEYyQjQyNCAvKiBNb2NrQm94LmNw
cCAqLzsgfTsKIAkJQ0RGMkIwMTExODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tCb3guaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjJCMDA3MTgyMDU0MDYw
MEYyQjQyNCAvKiBNb2NrQm94LmggKi87IH07CkBAIC0yNjk4NCw2ICsyNjk4NSw3IEBACiAJCQkJ
RkQzMTYwOTkxMkIwMjZGNzAwQzFBMzU5IC8qIEhSVEZEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkQzMTYwOUIxMkIwMjZGNzAwQzFBMzU5IC8qIEhSVEZEYXRhYmFzZUxvYWRlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwOUQxMkIwMjZGNzAwQzFBMzU5IC8qIEhSVEZFbGV2YXRp
b24uaCBpbiBIZWFkZXJzICovLAorCQkJCUNERUZBMjI4MUU3NjY5RTgwMDBBRTk5QyAvKiBQbGF0
Zm9ybUF1ZGlvRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwOUYxMkIwMjZGNzAwQzFB
MzU5IC8qIEhSVEZLZXJuZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MEExMTJCMDI2Rjcw
MEMxQTM1OSAvKiBIUlRGUGFubmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk3RTIzQTEwOTE0
NDk1MDAxMEQzNjEgLyogSFRNTEFsbENvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vV2ViQXVkaW9CdWZmZXJMaXN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9XZWJBdWRpb0J1ZmZlckxpc3QuaAppbmRl
eCBiYmYzYzEzOWI2MjVlN2I0Yzc5YWY4NDI0MTM4YjUwNDA3MzE4NWE4Li5kYjY1ZDM1MzRlM2Jh
NWU3ODc5Y2YyZjRkOTY4NDA4MGMwNGY2MTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9XZWJBdWRpb0J1ZmZlckxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9XZWJBdWRpb0J1ZmZlckxpc3QuaApAQCAtNDIsNyArNDIsNyBAQCBjbGFz
cyBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CiBjbGFzcyBXZWJBdWRpb0J1ZmZlckxpc3QgOiBw
dWJsaWMgUGxhdGZvcm1BdWRpb0RhdGEgewogcHVibGljOgogICAgIFdlYkF1ZGlvQnVmZmVyTGlz
dChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mKTsKLSAgICBXZWJBdWRpb0J1ZmZlckxp
c3QoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDMyX3Qgc2FtcGxlQ291bnQp
OworICAgIFdFQkNPUkVfRVhQT1JUIFdlYkF1ZGlvQnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mLCB1aW50MzJfdCBzYW1wbGVDb3VudCk7CiAgICAgV2ViQXVkaW9CdWZm
ZXJMaXN0KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIENNU2FtcGxlQnVmZmVyUmVm
KTsKIAogICAgIEF1ZGlvQnVmZmVyTGlzdCogbGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fbGlzdC5n
ZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0NB
UmluZ0J1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1
ZmZlci5oCmluZGV4IDVhYWI0OTI3ZGUwYWQ5N2Y4YjgxNTgxMjQyOWFmZTk2YjQ3YjUzMWIuLjQ1
YzU1ZGMxMzAxODE4MjFkNjA4ZThiNzNhZDdmNzY0NWZkZjgyMTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9DQVJpbmdCdWZmZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmgKQEAgLTg1LDYgKzg1LDcg
QEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q3VycmVudEZyYW1lQm91bmRz
KHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKIAogICAgIHVpbnQzMl90
IGNoYW5uZWxDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hhbm5lbENvdW50OyB9CisgICAgQ0FS
aW5nQnVmZmVyU3RvcmFnZSYgc3RvcmFnZSgpIHsgcmV0dXJuIG1fYnVmZmVyczsgfQogCiBwcml2
YXRlOgogICAgIHNpemVfdCBmcmFtZU9mZnNldCh1aW50NjRfdCBmcmFtZU51bWJlcikgeyByZXR1
cm4gKGZyYW1lTnVtYmVyICYgbV9mcmFtZUNvdW50TWFzaykgKiBtX2J5dGVzUGVyRnJhbWU7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2UuaAppbmRleCA2OTQ2N2JmY2Y4MjQwMWQ2MWU1N2RmNTM3ZTVkNWViMTE1
YjUwMWYxLi5lOWM1ZjNjNTk4YThjYzE3NzcxNzQ0MDgyNDNiMTRiNWU4NDJiMjIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZS5oCkBAIC02MSw3ICs2MSw3IEBAIGNsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZTsK
IGNsYXNzIFBsYXRmb3JtQXVkaW9EYXRhOwogY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzOwogCi1jbGFzcyBSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFJlZkNvdW50ZWQ8UmVh
bHRpbWVNZWRpYVNvdXJjZT4geworY2xhc3MgV0VCQ09SRV9FWFBPUlQgUmVhbHRpbWVNZWRpYVNv
dXJjZSA6IHB1YmxpYyBSZWZDb3VudGVkPFJlYWx0aW1lTWVkaWFTb3VyY2U+IHsKIHB1YmxpYzoK
ICAgICBjbGFzcyBPYnNlcnZlciB7CiAgICAgcHVibGljOgpAQCAtMjAwLDYgKzIwMCw4IEBAIHBy
b3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgYXBwbHlDb25zdHJhaW50cyhjb25zdCBGbGF0dGVu
ZWRDb25zdHJhaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIGFwcGx5U2l6ZUFuZEZyYW1lUmF0ZShz
dGQ6Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0aW9uYWw8aW50PiBoZWlnaHQsIHN0ZDo6
b3B0aW9uYWw8ZG91YmxlPik7CiAKKyAgICBjb25zdCBWZWN0b3I8T2JzZXJ2ZXIqPiBvYnNlcnZl
cnMoKSBjb25zdCB7IHJldHVybiBtX29ic2VydmVyczsgfQorCiAgICAgYm9vbCBtX211dGVkIHsg
ZmFsc2UgfTsKICAgICBib29sIG1fZW5hYmxlZCB7IHRydWUgfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKaW5kZXggOTk0OTJmZmFlYTE0NGVlNGM3ZjRlNWVlNWQ5MWUzZjY2YjhiNWU1
MC4uOWRlZjM3MDRiNzRkNDU4OGJhZGMwYjQyYzEyMDcwN2NhZmQ5MWM0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9E
ZXJpdmVkU291cmNlcy5tYWtlCkBAIC00NSw2ICs0NSw3IEBAIFZQQVRIID0gXAogICAgICQoV2Vi
S2l0MikvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNz
L0ljb25EYXRhYmFzZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL01lZGlhQ2FjaGUgXAor
ICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbSBcCiAgICAgJChXZWJLaXQyKS9X
ZWJQcm9jZXNzL05ldHdvcmsgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0YyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMgXApAQCAtNjUs
NiArNjYsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9Db2NvYSBcCiAg
ICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvRGF0YWJhc2VzIFwKICAgICAkKFdlYktpdDIpL1VJUHJv
Y2Vzcy9Eb3dubG9hZHMgXAorICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL01lZGlhU3RyZWFtIFwK
ICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9OZXR3b3JrIFwKICAgICAkKFdlYktpdDIpL1VJUHJv
Y2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scyBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3Mv
Tm90aWZpY2F0aW9ucyBcCkBAIC0xMjEsNiArMTIzLDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBc
CiAgICAgU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlciBcCiAgICAgU3RvcmFnZUFyZWFNYXAg
XAogICAgIFN0b3JhZ2VNYW5hZ2VyIFwKKyAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciBcCisg
ICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSBcCiAgICAgVmlld0dlc3R1cmVDb250cm9s
bGVyIFwKICAgICBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yIFwKICAgICBWaWV3VXBkYXRl
RGlzcGF0Y2hlciBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvRGVj
b2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvRGVjb2Rlci5jcHAKaW5kZXgg
NzQwYTBjY2VkMTc4ZDZiNmE3NTg0M2MwYTc5MDY5Y2EzMmMwOWRjMi4uMDM0MmIxZDhkNmIzZGYw
NTEwZjRkNjY0ZjMzYTYzMTY0MzJjNDFhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vSVBDL0RlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9E
ZWNvZGVyLmNwcApAQCAtMjUxLDYgKzI1MSwxNSBAQCBib29sIERlY29kZXI6OmRlY29kZShpbnQ2
NF90JiByZXN1bHQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgRGVjb2Rlcjo6ZGVjb2Rl
KHVuc2lnbmVkIGxvbmcmIHJlc3VsdCkKK3sKKyAgICBpZiAoIWFsaWduQnVmZmVyUG9zaXRpb24o
c2l6ZW9mKHJlc3VsdCksIHNpemVvZihyZXN1bHQpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgZGVjb2RlVmFsdWVGcm9tQnVmZmVyKHJlc3VsdCwgbV9idWZmZXJQb3MpOworICAgIHJl
dHVybiB0cnVlOworfQorCiBib29sIERlY29kZXI6OmRlY29kZShmbG9hdCYgcmVzdWx0KQogewog
ICAgIGlmICghYWxpZ25CdWZmZXJQb3NpdGlvbihzaXplb2YocmVzdWx0KSwgc2l6ZW9mKHJlc3Vs
dCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0RlY29kZXIuaCBi
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9EZWNvZGVyLmgKaW5kZXggNWEzMGM0MjU4Nzlk
Nzc5MTI2YWI1ZjRkNjk1Y2Y4OGJjZDQ2NjU3Yi4uN2YwNTliZDM5OGFkMjQ4Njg2ODQ4OGNlMTIx
NWVlMTQxMTgzY2M2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Rl
Y29kZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvRGVjb2Rlci5oCkBAIC04
NCw2ICs4NCw3IEBAIHB1YmxpYzoKICAgICBib29sIGRlY29kZSh1aW50NjRfdCYpOwogICAgIGJv
b2wgZGVjb2RlKGludDMyX3QmKTsKICAgICBib29sIGRlY29kZShpbnQ2NF90Jik7CisgICAgYm9v
bCBkZWNvZGUodW5zaWduZWQgbG9uZyYpOwogICAgIGJvb2wgZGVjb2RlKGZsb2F0Jik7CiAgICAg
Ym9vbCBkZWNvZGUoZG91YmxlJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0lQQy9FbmNvZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9FbmNvZGVy
LmNwcAppbmRleCA2Y2Q3NDcxZDEyY2NmMTQwNjBjZjJlNGMyNzFiM2U1MGY4OWY3Mjc0Li5kNjQw
MGM2OTNhMjYwNTlmNDgwZmVjZDQ2YzQxZWM2NTUyYmY0MWE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9JUEMvRW5jb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vSVBDL0VuY29kZXIuY3BwCkBAIC0yMzYsNiArMjM2LDEyIEBAIHZvaWQgRW5jb2Rlcjo6
ZW5jb2RlKGludDY0X3QgbikKICAgICBjb3B5VmFsdWVUb0J1ZmZlcihuLCBidWZmZXIpOwogfQog
Cit2b2lkIEVuY29kZXI6OmVuY29kZSh1bnNpZ25lZCBsb25nIG4pCit7CisgICAgdWludDhfdCog
YnVmZmVyID0gZ3JvdyhzaXplb2YobiksIHNpemVvZihuKSk7CisgICAgY29weVZhbHVlVG9CdWZm
ZXIobiwgYnVmZmVyKTsKK30KKwogdm9pZCBFbmNvZGVyOjplbmNvZGUoZmxvYXQgbikKIHsKICAg
ICB1aW50OF90KiBidWZmZXIgPSBncm93KHNpemVvZihuKSwgc2l6ZW9mKG4pKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9FbmNvZGVyLmggYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9JUEMvRW5jb2Rlci5oCmluZGV4IDkyZjliYTI1NmMzYjRkZTlhY2IyNzIyY2Vl
OTE1NTdhZWRlNGRkZTAuLjNiYTc5OGI1N2E1YzhmMGViZGE3YzllNGRkMTE4YjQyMTVjM2I2M2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9FbmNvZGVyLmgKKysrIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0VuY29kZXIuaApAQCAtOTYsNiArOTYsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgZW5jb2RlKHVpbnQ2NF90KTsKICAgICB2b2lkIGVuY29kZShpbnQz
Ml90KTsKICAgICB2b2lkIGVuY29kZShpbnQ2NF90KTsKKyAgICB2b2lkIGVuY29kZSh1bnNpZ25l
ZCBsb25nKTsKICAgICB2b2lkIGVuY29kZShmbG9hdCk7CiAgICAgdm9pZCBlbmNvZGUoZG91Ymxl
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVm
aW5pdGlvbnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRp
b25zLmgKaW5kZXggN2ZmNzcwMjhiZmI1YzA1NWQ4ZWIyZDZhMDUyMTg4NDhmYWQ2YzU5YS4uYjlj
MTU5ZGIwODZlYjI1NjcxYTRlYmM4MzYyYmYyMDQ5NzI5NWQ4MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCkBAIC0xMDMsNiArMTAz
LDEyIEBACiAjZGVmaW5lIERFRkFVTFRfQ0FOVkFTX1VTRVNfQUNDRUxFUkFURURfRFJBV0lORyB0
cnVlCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBERUZBVUxUX1NIT1VM
RF9DQVBUVVJFX0FVRElPX0lOX1VJUFJPQ0VTUyB0cnVlCisjZWxzZQorI2RlZmluZSBERUZBVUxU
X1NIT1VMRF9DQVBUVVJFX0FVRElPX0lOX1VJUFJPQ0VTUyBmYWxzZQorI2VuZGlmCisKIC8vIG1h
Y3JvKEtleVVwcGVyLCBLZXlMb3dlciwgVHlwZU5hbWVVcHBlciwgVHlwZU5hbWUsIERlZmF1bHRW
YWx1ZSwgSHVtYW5SZWFkYWJsZU5hbWUsIEh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbikKIAogI2Rl
ZmluZSBGT1JfRUFDSF9XRUJLSVRfQk9PTF9QUkVGRVJFTkNFKG1hY3JvKSBcCkBAIC0yNTIsNiAr
MjU4LDcgQEAKICAgICBtYWNybyhHYW1lcGFkc0VuYWJsZWQsIGdhbWVwYWRzRW5hYmxlZCwgQm9v
bCwgYm9vbCwgdHJ1ZSwgIkdhbWVwYWRzIiwgIldlYiBHYW1lcGFkIEFQSSBzdXBwb3J0IikgXAog
ICAgIG1hY3JvKElucHV0RXZlbnRzRW5hYmxlZCwgaW5wdXRFdmVudHNFbmFibGVkLCBCb29sLCBi
b29sLCB0cnVlLCAiSW5wdXQgRXZlbnRzIiwgIkVuYWJsZSBJbnB1dEV2ZW50cyBzdXBwb3J0Iikg
XAogICAgIG1hY3JvKENyZWRlbnRpYWxNYW5hZ2VtZW50RW5hYmxlZCwgY3JlZGVudGlhbE1hbmFn
ZW1lbnRFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSwgIkNyZWRlbnRpYWwgTWFuYWdlbWVudCIs
ICJFbmFibGUgQ3JlZGVudGlhbCBNYW5hZ2VtZW50IHN1cHBvcnQiKSBcCisgICAgbWFjcm8oU2hv
dWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MsIHNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNz
LCBCb29sLCBib29sLCBERUZBVUxUX1NIT1VMRF9DQVBUVVJFX0FVRElPX0lOX1VJUFJPQ0VTUywg
IkNhcHR1cmUiLCAiQ2FwdHVyZSBBdWRpbyBpbiBVSVByb2Nlc3MiKSBcCiAgICAgXAogCiAjZGVm
aW5lIEZPUl9FQUNIX1dFQktJVF9ET1VCTEVfUFJFRkVSRU5DRShtYWNybykgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
CmluZGV4IDUxMmQyMTJkODRhMDExODA4YzI5YThiNTE4NDE5ZTIwYTUxNzZiMWMuLmYzM2VhNmMw
YTgzYjQ5YjAxZTdhMTZhY2Q1YTExZWJhOWMzMTE2MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTY4LDYg
KzY4LDcgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbWVkaWFLZXlTdG9yYWdlRGly
ZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgZW5j
b2RlciA8PCBhdWRpb0NhcHR1cmVFeHRlbnNpb25IYW5kbGU7CisgICAgZW5jb2RlciA8PCBzaG91
bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzczsKICNlbmRpZgogICAgIGVuY29kZXIgPDwgc2hvdWxk
VXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uOwogICAgIGVuY29kZXIgPDwgdXJsU2NoZW1lc1JlZ2lz
dGVyZWRBc0VtcHR5RG9jdW1lbnQ7CkBAIC0xODksNiArMTkwLDggQEAgYm9vbCBXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9j
ZXNzQ3JlYXQKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocGFyYW1ldGVycy5hdWRpb0NhcHR1cmVFeHRlbnNpb25IYW5kbGUpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnNob3VsZENhcHR1
cmVBdWRpb0luVUlQcm9jZXNzKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnNob3VsZFVzZVRlc3RpbmdOZXR3b3JrU2Vz
c2lvbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IGEzZTYyY2Y5ZDQzMWY0
MGJkY2E3YTVjODAwY2M1NzA1OTcxYzhlOTQuLmZkODA2YjIyMDI0NzllMTYwNDg2MWRmOThlMDhj
YWIxYTFhYTYwZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtODgsNiArODgsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIG1lZGlh
S2V5U3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBhdWRpb0NhcHR1cmVFeHRlbnNpb25I
YW5kbGU7CisgICAgYm9vbCBzaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyB7IGZhbHNlIH07
CiAjZW5kaWYKICAgICBTdHJpbmcgbWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzBhZmM3YTIwY2E5YTJmNzg2NTczMWI4
Y2IxOWE5YjVjMzkwYzRkYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtMCwwICsxLDE1
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisj
aW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldl
YkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNv
bnN0cmFpbnRzSW1wbC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CisjaW5jbHVk
ZSA8d3RmL1VuaXF1ZVJlZi5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJj
ZVByb3h5IDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyLCBwdWJsaWMgU2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2U6OkNsaWVudCB7CitwdWJsaWM6CisgICAgU291cmNlUHJveHko
dWludDY0X3QgaWQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIFJlZjxS
ZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKKyAgICAgICAgOiBtX2lkKGlkKQorICAgICAg
ICAsIG1fbWFuYWdlcihtYW5hZ2VyKQorICAgICAgICAsIG1fc291cmNlKFdURk1vdmUoc291cmNl
KSkKKyAgICAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVy
U3RvcmFnZT4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4odGhpcykpKQor
ICAgIHsKKyAgICAgICAgbV9zb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKKyAgICB9CisKKyAg
ICB+U291cmNlUHJveHkoKQorICAgIHsKKyAgICAgICAgc3RvcmFnZSgpLmludmFsaWRhdGUoKTsK
KyAgICAgICAgbV9zb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKKyAgICB9CisKKyAgICBS
ZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UoKSB7IHJldHVybiBtX3NvdXJjZTsgfQorICAgIFNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBzdG9yYWdlKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXIuc3RvcmFnZSgpKTsgfQorICAgIENB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24oKSB7IHJldHVybiBtX2Rlc2NyaXB0
aW9uOyB9CisgICAgaW50NjRfdCBudW1iZXJPZkZyYW1lcygpIHsgcmV0dXJuIG1fbnVtYmVyT2ZG
cmFtZXM7IH0KKworICAgIHZvaWQgc291cmNlU3RvcHBlZCgpIGZpbmFsIHsKKyAgICAgICAgbV9t
YW5hZ2VyLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
U291cmNlU3RvcHBlZChtX2lkKSwgMCk7CisgICAgfQorCisgICAgdm9pZCBzb3VyY2VNdXRlZENo
YW5nZWQoKSBmaW5hbCB7CisgICAgICAgIG1fbWFuYWdlci5wcm9jZXNzKCkuc2VuZChNZXNzYWdl
czo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZU11dGVkQ2hhbmdlZChtX2lkLCBtX3Nv
dXJjZS0+bXV0ZWQoKSksIDApOworICAgIH0KKworICAgIHZvaWQgc291cmNlRW5hYmxlZENoYW5n
ZWQoKSBmaW5hbCB7CisgICAgICAgIG1fbWFuYWdlci5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZUVuYWJsZWRDaGFuZ2VkKG1faWQsIG1fc291
cmNlLT5lbmFibGVkKCkpLCAwKTsKKyAgICB9CisKKyAgICB2b2lkIHNvdXJjZVNldHRpbmdzQ2hh
bmdlZCgpIGZpbmFsIHsKKyAgICAgICAgbV9tYW5hZ2VyLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2Vz
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlU2V0dGluZ3NDaGFuZ2VkKG1faWQsIG1f
c291cmNlLT5zZXR0aW5ncygpKSwgMCk7CisgICAgfQorCisgICAgdm9pZCBhdWRpb1NhbXBsZXNB
dmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYg
YXVkaW9EYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6
ZV90IG51bWJlck9mRnJhbWVzKSBmaW5hbCB7CisgICAgICAgIGlmIChtX2Rlc2NyaXB0aW9uICE9
IGRlc2NyaXB0aW9uKSB7CisgICAgICAgICAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxhdGZvcm1E
ZXNjcmlwdGlvbigpLnR5cGUgPT0gUGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0cmVhbUJh
c2ljVHlwZSk7CisgICAgICAgICAgICBtX2Rlc2NyaXB0aW9uID0gKldURjo6Z2V0PGNvbnN0IEF1
ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRp
b24oKS5kZXNjcmlwdGlvbik7CisKKyAgICAgICAgICAgIC8vIEFsbG9jYXRlIGEgcmluZyBidWZm
ZXIgbGFyZ2UgZW5vdWdoIHRvIGNvbnRhaW4gMiBzZWNvbmRzIG9mIGF1ZGlvLgorICAgICAgICAg
ICAgbV9udW1iZXJPZkZyYW1lcyA9IG1fZGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgpICogMjsKKyAg
ICAgICAgICAgIG1fcmluZ0J1ZmZlci5hbGxvY2F0ZShtX2Rlc2NyaXB0aW9uLnN0cmVhbURlc2Ny
aXB0aW9uKCksIG1fbnVtYmVyT2ZGcmFtZXMpOworICAgICAgICB9CisKKyAgICAgICAgQVNTRVJU
KGlzPFdlYkF1ZGlvQnVmZmVyTGlzdD4oYXVkaW9EYXRhKSk7CisgICAgICAgIG1fcmluZ0J1ZmZl
ci5zdG9yZShkb3duY2FzdDxXZWJBdWRpb0J1ZmZlckxpc3Q+KGF1ZGlvRGF0YSkubGlzdCgpLCBu
dW1iZXJPZkZyYW1lcywgdGltZS50aW1lVmFsdWUoKSk7CisgICAgICAgIHVpbnQ2NF90IHN0YXJ0
RnJhbWU7CisgICAgICAgIHVpbnQ2NF90IGVuZEZyYW1lOworICAgICAgICBtX3JpbmdCdWZmZXIu
Z2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAgICAgICAgbV9t
YW5hZ2VyLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
QXVkaW9TYW1wbGVzQXZhaWxhYmxlKG1faWQsIHRpbWUsIG51bWJlck9mRnJhbWVzLCBzdGFydEZy
YW1lLCBlbmRGcmFtZSksIDApOworICAgIH0KKworICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQoU2hh
cmVkTWVtb3J5KiBzdG9yYWdlKSBmaW5hbCB7CisgICAgICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxl
IGhhbmRsZTsKKyAgICAgICAgaWYgKHN0b3JhZ2UpCisgICAgICAgICAgICBzdG9yYWdlLT5jcmVh
dGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAg
ICAgICAgbV9tYW5hZ2VyLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6U3RvcmFnZUNoYW5nZWQobV9pZCwgaGFuZGxlLCBtX2Rlc2NyaXB0aW9uLCBtX251
bWJlck9mRnJhbWVzKSwgMCk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgdWludDY0X3QgbV9p
ZDsKKyAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5JiBtX21hbmFnZXI7CisgICAgUmVm
PFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fc291cmNlOworICAgIENBUmluZ0J1ZmZlciBtX3JpbmdC
dWZmZXI7CisgICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb24geyB9Owor
ICAgIGludDY0X3QgbV9udW1iZXJPZkZyYW1lcyB7IDAgfTsKK307CisKK1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoV2ViUHJvY2Vzc1By
b3h5JiBwcm9jZXNzKQorICAgIDogbV9wcm9jZXNzKHByb2Nlc3MpCit7CisgICAgbV9wcm9jZXNz
LmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7Cit9CisKK1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6On5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCkKK3sKKyAgICBtX3By
b2Nlc3MucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOworfQorCit2b2lkIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhD
b25zdHJhaW50cyh1aW50NjRfdCBpZCwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzRGF0YSYgY29uc3RyYWludHNEYXRhLCBib29sJiBzdWNjZWVkZWQs
IFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnRzKQoreworICAgIGF1dG8gY29uc3RyYWludHMgPSBN
ZWRpYUNvbnN0cmFpbnRzSW1wbDo6Y3JlYXRlKGNvbnN0cmFpbnRzRGF0YSk7CisgICAgUmVmUHRy
PFJlYWx0aW1lTWVkaWFTb3VyY2U+IHNvdXJjZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OnNpbmdsZXRvbigpLmRlZmF1bHRBdWRpb0ZhY3RvcnkoKS0+Y3JlYXRlTWVkaWFTb3VyY2VGb3JD
YXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGRldmljZSwgY29uc3RyYWludHMucHRyKCksIGlu
dmFsaWRDb25zdHJhaW50cyk7CisgICAgc3VjY2VlZGVkID0gISFzb3VyY2U7CisgICAgCisgICAg
aWYgKHNvdXJjZSkKKyAgICAgICAgbV9wcm94aWVzLnNldChpZCwgc3RkOjptYWtlX3VuaXF1ZTxT
b3VyY2VQcm94eT4oaWQsICp0aGlzLCBzb3VyY2UucmVsZWFzZU5vbk51bGwoKSkpOworfQorCit2
b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50
NjRfdCBpZCkKK3sKKyAgICBhdXRvIGl0ZXIgPSBtX3Byb3hpZXMuZmluZChpZCk7CisgICAgaWYg
KGl0ZXIgIT0gbV9wcm94aWVzLmVuZCgpKQorICAgICAgICBpdGVyLT52YWx1ZS0+c291cmNlKCku
c3RhcnRQcm9kdWNpbmdEYXRhKCk7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6c3RvcFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCit7CisgICAgYXV0byBpdGVyID0g
bV9wcm94aWVzLmZpbmQoaWQpOworICAgIGlmIChpdGVyICE9IG1fcHJveGllcy5lbmQoKSkKKyAg
ICAgICAgaXRlci0+dmFsdWUtPnNvdXJjZSgpLnN0b3BQcm9kdWNpbmdEYXRhKCk7Cit9CisKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MTEzMjFkYmFj
YTA0NzVlZDQ3OWYyYmJmYmIzNWU1NjY0ZDhmNmQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApA
QCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9S
TShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24u
aCIKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVk
aWFTb3VyY2UuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFNoYXJlZE1lbW9yeTsK
K2NsYXNzIFdlYlByb2Nlc3NQcm94eTsKKworY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eSA6IHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoV2ViUHJvY2Vzc1Byb3h5Jik7CisgICAgflVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkoKTsKKworICAgIFdlYlByb2Nlc3NQcm94eSYgcHJvY2Vzcygp
IGNvbnN0IHsgcmV0dXJuIG1fcHJvY2VzczsgfQorCitwcml2YXRlOgorICAgIC8vIElQQzo6TWVz
c2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNv
ZGVyPiYpIGZpbmFsOworCisgICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZp
Y2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSYsIGJvb2wmIHN1Y2NlZWRl
ZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMpOworICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdE
YXRhKHVpbnQ2NF90KTsKKyAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsKKwor
ICAgIGNsYXNzIFNvdXJjZVByb3h5OworICAgIGZyaWVuZCBjbGFzcyBTb3VyY2VQcm94eTsKKyAg
ICBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8U291cmNlUHJveHk+PiBtX3Byb3hp
ZXM7CisgICAgV2ViUHJvY2Vzc1Byb3h5JiBtX3Byb2Nlc3M7Cit9OworCit9CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
NGI4Y2JiN2I4YTY5YjczYjM5N2E5ZTlkMmJjYzBlNzBiMTMxMTVmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eSB7CisgICAgQ3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRz
KHVpbnQ2NF90IGlkLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRldmljZSwgc3RydWN0IFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhIGNvbnN0cmFpbnRzKSAtPiAoYm9vbCBzdWNjZXNzLCBT
dHJpbmcgaW52YWxpZENvbnN0cmFpbnRzKQorICAgIFN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRf
dCBpZCkKKyAgICBTdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5k
ZXggODczOGYwNzA2MzdmNDkwZjFmMDg2YzA5OWI5Mzc0ZTc0MGVjYzdlZS4uZjQ3M2I1ZDgxMjE4
ZWJmMmYwMmE5YWZmZmJhYTVlMTQ5OTliOGFmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAgLTI1OCw2ICsyNTgs
OCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmCiAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIGFu
ZCByZWxhdGVkIHBhcmFtZXRlciB3aGVuIDxyZGFyOi8vcHJvYmxlbS8yOTQ0ODM2OD4gaXMgZml4
ZWQuCiAgICAgaWYgKG1lZGlhU3RyZWFtRW5hYmxlZCB8fCB3ZWJSVENFbmFibGVkKQogICAgICAg
ICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9uKCJjb20u
YXBwbGUud2Via2l0Lm1pY3JvcGhvbmUiLCBwYXJhbWV0ZXJzLmF1ZGlvQ2FwdHVyZUV4dGVuc2lv
bkhhbmRsZSk7CisKKyAgICBwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNz
ID0gbV9kZWZhdWx0UGFnZUdyb3VwLT5wcmVmZXJlbmNlcygpLnNob3VsZENhcHR1cmVBdWRpb0lu
VUlQcm9jZXNzKCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcAppbmRleCA1ZmY2NGQ2NDhjNGI3ODQyNWZkOTEyNzA2MzQ3ZjI4Nzhm
OTRlNTAwLi5jZDFkY2Q3ZDU2ZWM2NzdkMjRjOTc5OTZmNzhkNGJkMTAyNTdkNTlhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzcsNiArMzcs
NyBAQAogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXJTdGF0
ZS5oIgogI2luY2x1ZGUgIlVzZXJEYXRhLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uaCIKICNpbmNs
dWRlICJXZWJJY29uRGF0YWJhc2UuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JVdGlsaXRpZXMu
aCIKQEAgLTEwNCw5ICsxMDUsMTQgQEAgV2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHko
V2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBXZWJzaXRlRGF0YVN0b3JlKgogICAgICwgbV9p
c1Jlc3BvbnNpdmUoTm9Pck1heWJlOjpNYXliZSkKICAgICAsIG1fdmlzaWJsZVBhZ2VDb3VudGVy
KFt0aGlzXShSZWZDb3VudGVyRXZlbnQpIHsgdXBkYXRlQmFja2dyb3VuZFJlc3BvbnNpdmVuZXNz
VGltZXIoKTsgfSkKICAgICAsIG1fd2Vic2l0ZURhdGFTdG9yZSh3ZWJzaXRlRGF0YVN0b3JlKQor
I2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgICwgbV91c2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KHN0ZDo6bWFrZV91bmlxdWU8VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eT4oKnRoaXMpKQorI2VuZGlmCiB7CiAgICAgV2ViUGFzdGVib2FyZFByb3h5
OjpzaW5nbGV0b24oKS5hZGRXZWJQcm9jZXNzUHJveHkoKnRoaXMpOwogCisKKwogICAgIGNvbm5l
Y3QoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmlu
ZGV4IGY1ZTYxYWEwMDE4MDY3NzQ4MmFmMzcwN2RjYmRiMTk5NTE3ZmFmNmEuLmIzMjg4MTVjZjE2
NDI3ZjhhYzZkZDY2NmYzYTk1NzJkYWE3MWM5M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTU2LDYgKzU2LDcgQEAgc3RydWN0IFBsdWdpbkluZm87
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmV0d29ya1Byb2Nlc3NQcm94eTsKK2NsYXNz
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtOwogY2xhc3MgV2ViUGFnZUdyb3VwOwogY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CkBAIC0yNzMs
NiArMjc0LDEwIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYnNpdGVEYXRhU3RvcmU+IG1fd2Vi
c2l0ZURhdGFTdG9yZTsKIAogICAgIGJvb2wgbV9pc1VuZGVyTWVtb3J5UHJlc3N1cmUgeyBmYWxz
ZSB9OworCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAg
c3RkOjp1bmlxdWVfcHRyPFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk+IG1fdXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggNjI2NzdmODdhNWVkNjUyMDE2ODczZmEzZWYxMjAyNWEzNTFhZTRlMC4uNmRmYzdjZjk5
MTE3NjQwZjQ2YjY3YWE0MGRkZGJhM2YyYjVkOWM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTg3OSwxMSArMTg3OSwxOCBA
QAogCQlDRDAwM0E1MzE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QwMDNB
NTExOUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaCAqLzsgfTsK
IAkJQ0QxOUEyNkQxQTEzRTgyQTAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTlB
MjY5MUExM0U4MjAwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgKi87
IH07CiAJCUNEMTlBMjZFMUExM0U4MzQwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Qx
OUEyNkExQTEzRTgyMTAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggKi87
IH07CisJCUNENDkxQjA3MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ5
MUIwNTFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwICovOyB9
OworCQlDRDQ5MUIwODFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENDkxQjA2
MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oICovOyB9OworCQlD
RDQ5MUIwRDFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0Q0OTFCMEIxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJQ0Q0OTFCMEUxRTczMkU0RDAwMDA5MDY2IC8qIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENDkxQjBDMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CisJCUNENDkxQjEyMUU3MzQ4MjEwMDAw
OTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENDkxQjEwMUU3MzQ4MjEwMDAwOTA2NiAv
KiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCAqLzsgfTsKKwkJQ0Q0OTFCMTMxRTcz
NDgyMTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENDkxQjExMUU3MzQ4MjEwMDAw
OTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggKi87IH07CisJCUNENDkxQjE3
MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENENDkxQjE1MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJQ0Q0OTFCMTgxRTczNTI1NTAwMDA5MDY2IC8q
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0OTFCMTYxRTczNTI1NTAwMDA5MDY2IC8q
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovOyB9OwogCQlDRDRCNEQ5
QzFFNzY1RTAwMDBEMjcwOTIgLyogU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0QjREOUExRTc2NUUwMDAw
RDI3MDkyIC8qIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmNwcCAqLzsgfTsKIAkJQ0Q0QjREOUQx
RTc2NUUwMDAwRDI3MDkyIC8qIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDRCNEQ5QjFFNzY1RTAwMDBEMjcw
OTIgLyogU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCAqLzsgfTsKIAkJQ0Q1QzY2QTAxMzRCOUQz
ODAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1QzY2OUUxMzRCOUQz
NjAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwICovOyB9
OwogCQlDRDVDNjZBMTEzNEI5RDM4MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNj
cmVlbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0Q1QzY2OUYxMzRCOUQzNzAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3Jl
ZW5DbGllbnQuaCAqLzsgfTsKLQkJQ0Q2MTc4MTQxRTZERTlBMDAwRkRBNTdEIC8qIFdlYlVzZXJN
ZWRpYUNsaWVudE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENENjE3ODEyMUU2REU5QTAwMEZEQTU3RCAvKiBXZWJVc2VyTWVkaWFDbGllbnRNYWMu
bW0gKi87IH07CiAJCUNENkY3NUY0MTMxQjY2RDAwMEQ2QjIxRSAvKiBXZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENENzNCQTNFMTMxQTJFOEEwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
LmNwcCAqLzsgfTsKIAkJQ0Q3M0JBNDcxMzFBQ0M5QTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3M0JBNDUxMzFBQ0M4ODAwRUVERUQyIC8qIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQlDRDczQkE0RTEz
MUFDREI3MDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3M0JBNDgx
MzFBQ0Q4RTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLzsgfTsKQEAgLTQxNjksMTEgKzQxNzYsMjAgQEAKIAkJQ0QwMDNBNTExOUQ0OUI1RDAwNUFC
Q0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oOyBwYXRoID0gTWVkaWFDYWNo
ZS9XZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNEMTlBMjY5MUExM0U4MjAwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMTlBMjZB
MUExM0U4MjEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ5MUIwNTFFNzBEMDVGMDAwMDkwNjYgLyog
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDRDQ5MUIwNjFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFCMEExRTczMkQx
MjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDRDQ5MUIwQjFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDRDQ5MUIwQzFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNENDkxQjEwMUU3MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOyBwYXRoID0gLi4vQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENDkx
QjExMUU3MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkuaDsgcGF0aCA9IC4uL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFCMTQxRTczNDlGMzAwMDA5MDY2IC8qIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjsgcGF0aCA9IC4uL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNENDkxQjE1MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ5MUIxNjFFNzM1MjU1MDAwMDkwNjYgLyogVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDRCNEQ5QTFFNzY1RTAwMDBEMjcwOTIgLyogU2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDRDRCNEQ5QjFFNzY1RTAwMDBEMjcwOTIgLyogU2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVkUmluZ0J1ZmZlclN0
b3JhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1QzY2OUUxMzRCOUQzNjAw
NEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVl
bkNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENUM2NjlGMTM0QjlE
MzcwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5D
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQ0Q2MTc4MTIxRTZERTlBMDAw
RkRBNTdEIC8qIFdlYlVzZXJNZWRpYUNsaWVudE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgbmFtZSA9IFdlYlVzZXJNZWRpYUNsaWVudE1hYy5tbTsgcGF0aCA9IGNvY29h
L1dlYlVzZXJNZWRpYUNsaWVudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0Q3M0JBMzcxMzFBMjlGRTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNw
cDsgcGF0aCA9IEZ1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDRDczQkEzODEzMUEyOUZFMDBFRURFRDIgLyogV2ViRnVsbFNj
cmVlbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViRnVsbFNj
cmVlbk1hbmFnZXIuaDsgcGF0aCA9IEZ1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q3M0JBMzkxMzFBMjlGRTAwRUVERUQyIC8q
IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9
IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOyBwYXRoID0gRnVsbFNjcmVlbi9XZWJG
dWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTYyODEsNiArNjI5Nyw5IEBACiAJCTdDNkU3MEY4MThCMkQ0N0UwMEYyNEUyRSAvKiBjb2Nv
YSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQ0Q0OTFC
MDUxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCAqLywKKwkJ
CQlDRDQ5MUIwNjFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCAq
LywKKwkJCQlDRDQ5MUIwQTFFNzMyRDEyMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJQ0RBMjlBMTkxQ0JEQkY0MTAwOTAxQ0NGIC8qIFdlYlBs
YXliYWNrU2Vzc2lvbk1hbmFnZXIuaCAqLywKIAkJCQlDREEyOUExQzFDQkRCRjVCMDA5MDFDQ0Yg
LyogV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCQlDREEyOUEx
ODFDQkRCRjQxMDA5MDFDQ0YgLyogV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbSAqLywKQEAg
LTc0NDgsNiArNzQ2Nyw5IEBACiAJCQkJMUFBNDE3RUQxMkMwMEQ4NzAwMkJFNjdCIC8qIFRleHRD
aGVja2VyTWFjLm1tICovLAogCQkJCTFBRjA1RDg1MTQ2ODgzNDgwMDhCMUU4MSAvKiBUaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5LmggKi8sCiAJCQkJMUFGMDVEODQxNDY4ODM0ODAw
OEIxRTgxIC8qIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0gKi8sCisJCQkJ
Q0Q0OTFCMTAxRTczNDgyMTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
Y3BwICovLAorCQkJCUNENDkxQjExMUU3MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5LmggKi8sCisJCQkJQ0Q0OTFCMTQxRTczNDlGMzAwMDA5MDY2IC8qIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJMkQxMjVDNUQxODU3
RUEwNTAwM0JBM0NCIC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbSAqLywKIAkJCQkyRDZD
RDExNzE4OTA1OEE1MDBFNUE0QTAgLyogVmlld1NuYXBzaG90U3RvcmUuaCAqLywKIAkJCQkyRDZD
RDExODE4OTA1OEE1MDBFNUE0QTAgLyogVmlld1NuYXBzaG90U3RvcmUubW0gKi8sCkBAIC03Njkz
LDYgKzc3MTUsMTAgQEAKIAkJCQkxQTMzNERFQzE2REU4Rjg4MDA2QThFMzggLyogU3RvcmFnZUFy
ZWFNYXBNZXNzYWdlcy5oICovLAogCQkJCTFBQjMxQTk0MTZCQzY4ODEwMEY2REJDOSAvKiBTdG9y
YWdlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUFCMzFBOTUxNkJDNjg4MTAw
RjZEQkM5IC8qIFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQlDRDQ5MUIxNTFFNzM1
MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8sCisJCQkJQ0Q0OTFCMTYxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovLAorCQkJCUNENDkxQjBCMUU3MzJFNEQwMDAwOTA2
NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJ
Q0Q0OTFCMEMxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2Fn
ZXMuaCAqLywKIAkJCQkyRDFCNUQ1QjE4NTg2OUM4MDA2QzY1OTYgLyogVmlld0dlc3R1cmVDb250
cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkyRDFCNUQ1QzE4NTg2OUM4MDA2QzY1
OTYgLyogVmlld0dlc3R1cmVDb250cm9sbGVyTWVzc2FnZXMuaCAqLywKIAkJCQkyRDgxOUI5RjE4
NjI4MDBFMDAxRjAzRDEgLyogVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvck1lc3NhZ2VSZWNl
aXZlci5jcHAgKi8sCkBAIC03ODI0LDcgKzc4NTAsNiBAQAogCQlDRDYxNzgxMTFFNkRFOTgwMDBG
REE1N0QgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAotCQkJCUNENjE3ODEyMUU2REU5QTAwMEZEQTU3RCAvKiBXZWJVc2VyTWVkaWFDbGllbnRNYWMu
bW0gKi8sCiAJCQkpOwogCQkJbmFtZSA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKQEAgLTgwNDUsNiArODA3MCw3IEBACiAJCQkJN0MyNDEzMDMxQUFDRkE3NTAwQTU4QzE1IC8q
IF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDMjQx
MzA1MUFBQ0ZBOUMwMEE1OEMxNSAvKiBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlSW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDQTM3OTNFMUFDMzc4QjMwMDc5REMzNyAvKiBfV0tV
c2VyQ29udGVudEV4dGVuc2lvblN0b3JlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q0
OTFCMTMxRTczNDgyMTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBp
biBIZWFkZXJzICovLAogCQkJCTdDODlEMkJBMUE2QjBGMkMwMDNBNUZERSAvKiBfV0tVc2VyQ29u
dGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M4OUQyQkMxQTZCMEY1QjAwM0E1RkRF
IC8qIF9XS1VzZXJDb250ZW50RmlsdGVySW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTVD
RDI4NjUzMUU3MjM1QUEwMDk0RkRDOCAvKiBfV0tVc2VyQ29udGVudEZpbHRlclByaXZhdGUuaCBp
biBIZWFkZXJzICovLApAQCAtODA1Miw2ICs4MDc4LDcgQEAKIAkJCQk3Qzg4MkRGOTFDN0U5OTZG
MDA2QkY3MzEgLyogX1dLVXNlckNvbnRlbnRXb3JsZEludGVybmFsLmggaW4gSGVhZGVycyAqLywK
IAkJCQk3Q0IzNjVBQTFEMzFEQjcwMDA3MTU4Q0EgLyogX1dLVXNlckluaXRpYXRlZEFjdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0NCMzY1QUQxRDMxREMxMDAwNzE1OENBIC8qIF9XS1VzZXJJ
bml0aWF0ZWRBY3Rpb25JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q0OTFCMEUxRTcz
MkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTJEODc4NjFEMUJEQjU0QkYwMEQwMkFCQiAvKiBfV0tVc2VyU3R5bGVTaGVl
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ4Nzg2MjAxQkRCNTdGNTAwRDAyQUJCIC8qIF9XS1Vz
ZXJTdHlsZVNoZWV0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBODFCMzgxMThCRDY2
QUQwMDA3RkRBQyAvKiBfV0tWaXNpdGVkTGlua1N0b3JlLmggaW4gSGVhZGVycyAqLywKQEAgLTgw
OTcsNiArODEyNCw3IEBACiAJCQkJMUEyNDY0RjMxODkxRTQ1MTAwMjM0QzVCIC8qIEFQSUxvYWRl
ckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NEM0E0ODMxQTVEMDJGQTAwOTYyM0I4IC8q
IEFQSU5hdmlnYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTJERjlFRUVDMUE3ODM2RUUwMEI2
Q0ZCRSAvKiBBUElOYXZpZ2F0aW9uQWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDQ5MUIw
ODFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTJERDlFQjJEMUE2RjAxMjUwMEJCMTI2NyAvKiBBUElOYXZpZ2F0aW9uQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0Y2OUZBMjExNzZEMDE0MDA0NzFBNTIgLyogQVBJTmF2
aWdhdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTJERjlFRUVFMUE3ODZFQUQwMEI2Q0ZC
RSAvKiBBUElOYXZpZ2F0aW9uUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLApAQCAtODQyMiw2ICs4
NDUwLDcgQEAKIAkJCQlFMThFNjkwQzE2OUI1NjNGMDA5QjY2NzAgLyogU2VjSXRlbVNoaW1Qcm94
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE4RTY5MTgxNjlCNjY3QjAwOUI2NjcwIC8qIFNlY0l0
ZW1TaGltUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0RDlGNTcxOTExOUQz
NTAwMDA2M0E3IC8qIFNlcnZpY2VzQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q0
OTFCMTgxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNz
YWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGREU2NUExOTU0QTQyQjAwQzQ4RkZBIC8qIFNl
c3Npb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEwMDJENDkxOTZCMzQ1RDAwQjlBRDQ0
IC8qIFNlc3Npb25TdGF0ZUNvZGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzUzRTNFMEUxODg3
Mzk4OTAwMTg4NDk2IC8qIFNlc3Npb25UcmFja2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTk2MDEs
NiArOTYzMCw3IEBACiAJCQkJMzczRDEyMjIxOEE0NzMwMTAwNjZEOUNDIC8qIF9XS0ZyYW1lSGFu
ZGxlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNBODhCMzkxQkM3MEYzRjAwQUJBNUMyIC8qIF9X
S0hpdFRlc3RSZXN1bHQubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTBGNTkxMjFEREUyOTc3MDA0
MTJGRjUgLyogX1dLTGlua0ljb25QYXJhbWV0ZXJzLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q0
OTFCMEQxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExMThBOUYyMTkwOEI4RUEwMEY3QzkyQiAv
KiBfV0tOU0ZpbGVNYW5hZ2VyRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE0M0U4Mjkx
ODhGM0NEQzAwOUU0RDMwIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTFBOUUzMjhFMTgyMTY1QTkwMEY1RDA0QyAvKiBfV0tSZW1vdGVPYmplY3RJ
bnRlcmZhY2UubW0gaW4gU291cmNlcyAqLywKQEAgLTk2MzcsNiArOTY2Nyw3IEBACiAJCQkJNTFE
MTI0OTExRTc0QkYzQzAwMkIyODIwIC8qIEFQSUhUVFBDb29raWVTdG9yZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3Q0QzQTQ4MjFBNUQwMkZBMDA5NjIzQjggLyogQVBJTmF2aWdhdGlvbi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQ0Y2OUZBMzExNzZEMDE0MDA0NzFBNTIgLyogQVBJTmF2aWdh
dGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q0OTFCMTcxRTczNTI1NTAwMDA5MDY2
IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQjYzNDAzRjkxNDkxMEQ1NzAwMTA3MEI1IC8qIEFQSU9iamVjdC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkzNzhFMUEzRDE4MUVENkZGMDAzMTAwN0EgLyogQVBJT2JqZWN0
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM4NTdGQjYxMkI4MzBFNjAwRURFQjJFIC8qIEFQSU9w
ZW5QYW5lbFBhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC05NjU5LDYgKzk2OTAsNyBA
QAogCQkJCTFBMzYzNUE5MUEzMTQ0QTMwMEVENjE5NyAvKiBBUElXZWJzaXRlRGF0YVN0b3JlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFBMzYzNUFEMUEzMTQ1RTUwMEVENjE5NyAvKiBBUElXZWJz
aXRlRGF0YVN0b3JlQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQk1Q0IyMzc5MTFERjBFMkU2
MDAxMTdBQTMgLyogQVBJV2Vic2l0ZVBvbGljaWVzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNE
NDkxQjEyMUU3MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFBNjU2M0U0MUI3QThDNTAwMDlDRjc4NyAvKiBBUElXaW5k
b3dGZWF0dXJlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUQ0QzE5MjFCMzlGMzMyMDBBQkMy
OEUgLyogQXBwbGljYXRpb25TdGF0ZVRyYWNrZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTNE
NjEwNTEzQTdGMDNBMDBGOTVENEUgLyogQXJndW1lbnRDb2RlcnMuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0xMDE4Niw2ICsxMDIxOCw3IEBACiAJCQkJN0M0Njk0RDAxQTUxRTM2ODAwQUQ1ODQ1IC8q
IFdlYlBhc3RlYm9hcmRQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzQ2OTRDQzFBNEI1
MTBBMDBBRDU4NDUgLyogV2ViUGFzdGVib2FyZFByb3h5Q29jb2EubW0gaW4gU291cmNlcyAqLywK
IAkJCQk3QzQ2OTRDOTFBNEI0RUExMDBBRDU4NDUgLyogV2ViUGFzdGVib2FyZFByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNENDkxQjA3MUU3MEQwNUYwMDAwOTA2
NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUIx
Rjc3NDFEMUIyRjhBMDA3QzlCRDEgLyogV2ViUGF5bWVudENvb3JkaW5hdG9yLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTFBQjFGNzk2MUQxQjM2MTMwMDdDOUJEMSAvKiBXZWJQYXltZW50Q29vcmRp
bmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFCMUY3OEIxRDFC
MzM1NTAwN0M5QkQxIC8qIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCmluZGV4IGFhZGVkMzQ0YTc2YWVhNmFi
NDcxNjJkODk2OGNjYjJjNWYwNTBjNjcuLjM2MjIwMmUwZWQ2MGU2NTc3NGZmYzg3MDcwY2Q1MTcz
ZGI1Y2I4NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKQEAgLTMzLDcgKzMzLDYg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiBXZWJVc2VyTWVkaWFDbGllbnQ6OldlYlVzZXJNZWRpYUNs
aWVudChXZWJQYWdlJiBwYWdlKQogICAgIDogbV9wYWdlKHBhZ2UpCiB7Ci0gICAgaW5pdGlhbGl6
ZUZhY3RvcmllcygpOwogfQogCiB2b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6cGFnZURlc3Ryb3ll
ZCgpCkBAIC02MSwxMyArNjAsNiBAQCB2b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6Y2FuY2VsTWVk
aWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0KE1lZGlhRGV2aWNlc0VudW1lcgogICAgIG1fcGFn
ZS51c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5jYW5jZWxNZWRpYURldmljZXNF
bnVtZXJhdGlvbihyZXF1ZXN0KTsKIH0KIAotI2lmICFQTEFURk9STShDT0NPQSkKLXZvaWQgV2Vi
VXNlck1lZGlhQ2xpZW50Ojppbml0aWFsaXplRmFjdG9yaWVzKCkKLXsKLQotfQotI2VuZGlmCi0K
IH0gLy8gbmFtZXNwYWNlIFdlYktpdDsKIAogI2VuZGlmIC8vIE1FRElBX1NUUkVBTQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9jb2NvYS9XZWJV
c2VyTWVkaWFDbGllbnRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L2NvY29hL1dlYlVzZXJNZWRpYUNsaWVudE1hYy5tbQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYThkZjJmMTAxOWJhODZmNmZhN2EzNjE2MDRhMGVhMjc2YmQ3NWMxZS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2NvY29hL1dlYlVzZXJNZWRpYUNsaWVudE1hYy5t
bQorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViVXNlck1lZGlhQ2xpZW50LmgiCi0KLSNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShDT0NPQSkKLQotI2ltcG9ydCA8V2ViQ29yZS9SZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyLmg+Ci0jaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
LQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFz
cyBXZWJVc2VyTWVkaWFDbGllbnRBdWRpb0ZhY3RvcnkgZmluYWwgOiBwdWJsaWMgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkgewotcHVibGljOgotICAgIHN0YXRpYyBXZWJVc2Vy
TWVkaWFDbGllbnRBdWRpb0ZhY3RvcnkmIHNpbmdsZXRvbigpCi0gICAgewotICAgICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8V2ViVXNlck1lZGlhQ2xpZW50QXVkaW9GYWN0b3J5PiBmYWN0b3J5
OwotICAgICAgICByZXR1cm4gZmFjdG9yeTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgUmVmUHRy
PFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdp
dGhDb25zdHJhaW50cyhjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cykgZmluYWwg
ewotICAgICAgICBhdXRvKiBmYWN0b3J5ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2lu
Z2xldG9uKCkuZGVmYXVsdEF1ZGlvRmFjdG9yeSgpOwotICAgICAgICByZXR1cm4gZmFjdG9yeSA/
IGZhY3RvcnktPmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50
cyhkZXZpY2UsIGNvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludHMpIDogbnVsbHB0cjsKLSAg
ICB9Ci19OwotCi12b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6aW5pdGlhbGl6ZUZhY3Rvcmllcygp
Ci17Ci0gICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47Ci0gICAgZGlzcGF0Y2hf
b25jZSgmb25jZVRva2VuLCBeIHsKLSAgICAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0QXVkaW9GYWN0b3J5KFdlYlVzZXJNZWRpYUNsaWVudEF1
ZGlvRmFjdG9yeTo6c2luZ2xldG9uKCkpOwotICAgIH0pOwotfQotCi19Ci0KLSNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNmE0MWI0Y2YwNzNjOGIw
MjIxNDFhYWM1ZDNmNTM5OGE5OTk1MDc4Ny4uYTFlYTk2ZDc5YzhmOWFmMjUwMjMyZWMxZjBkNTkw
YzZlMTg2MjM0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBA
IC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNsdWRlICJT
dGF0aXN0aWNzRGF0YS5oIgogI2luY2x1ZGUgIlVzZXJEYXRhLmgiCisjaW5jbHVkZSAiVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5
LmgiCiAjaW5jbHVkZSAiV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2Vi
Q29va2llTWFuYWdlci5oIgpAQCAtMTkxLDYgKzE5MiwxMCBAQCBXZWJQcm9jZXNzOjpXZWJQcm9j
ZXNzKCkKICAgICBhZGRTdXBwbGVtZW50PFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXI+KCk7CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgYWRkU3VwcGxlbWVudDxVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcj4oKTsKKyNlbmRpZgorCiAgICAgbV9wbHVnSW5BdXRvU3RhcnRP
cmlnaW5IYXNoZXMuYWRkKFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBIYXNoTWFwPHVu
c2lnbmVkLCBkb3VibGU+KCkpOwogCiAgICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZE9i
c2VydmVyKCkuc2V0U3RhdGlzdGljc1N0b3JlKG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmNvcHlSZWYoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
Y29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2MjM3ZDBlYjlk
YzFmYjQxNjQzN2Y3MTI4YjIzNDE3OTNjMThkMjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAt
MCwwICsxLDIyNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5o
IgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRl
ICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAi
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVy
ZURldmljZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDb25zdHJhaW50c0ltcGwuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyB1aW50NjRfdCBuZXh0U2Vzc2lvbklEKCkK
K3sKKyAgICBzdGF0aWMgdWludDY0X3QgbmV4dElEID0gMDsKKyAgICByZXR1cm4gKytuZXh0SUQ7
Cit9CisKK2NsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2UgOiBwdWJsaWMgUmVh
bHRpbWVNZWRpYVNvdXJjZSB7CitwdWJsaWM6CisgICAgU291cmNlKGNvbnN0IFN0cmluZyYgc291
cmNlSUQsIFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCB1aW50NjRfdCBpZCwgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIpCisgICAgICAgIDogUmVhbHRpbWVNZWRpYVNvdXJj
ZShzb3VyY2VJRCwgdHlwZSwgbmFtZSkKKyAgICAgICAgLCBtX2lkKGlkKQorICAgICAgICAsIG1f
bWFuYWdlcihtYW5hZ2VyKQorICAgICAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlUmVmPFNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlPihudWxscHRyKSkKKyAgICB7CisgICAgfQorCisgICAgflNv
dXJjZSgpCisgICAgeworICAgICAgICBzdG9yYWdlKCkuaW52YWxpZGF0ZSgpOworICAgIH0KKwor
ICAgIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBzdG9yYWdlKCkgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXIuc3RvcmFnZSgpKTsgfQor
ICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQorICAgIHZvaWQgc2V0Q2Fw
YWJpbGl0aWVzKFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmls
aXRpZXMpIHsgbV9jYXBhYmlsaXRpZXMgPSBjYXBhYmlsaXRpZXM7IH0KKworICAgIGNvbnN0IFJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX3NldHRpbmdzOyB9CisgICAgdm9pZCBzZXRTZXR0aW5ncyhjb25zdCBSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQorICAgIHsKKyAgICAgICAgbV9zZXR0aW5ncyA9IHNl
dHRpbmdzOworICAgICAgICBzZXR0aW5nc0RpZENoYW5nZSgpOworICAgIH0KKworICAgIGNvbnN0
IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVybiBt
X2Rlc2NyaXB0aW9uOyB9CisgICAgdm9pZCBzZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6
SGFuZGxlJiBoYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYg
ZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQorICAgIHsKKyAgICAgICAgbV9k
ZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOworICAgICAgICBpZiAoaGFuZGxlLmlzTnVsbCgpKSB7
CisgICAgICAgICAgICBtX3JpbmdCdWZmZXIuZGVhbGxvY2F0ZSgpOworICAgICAgICAgICAgc3Rv
cmFnZSgpLnNldFJlYWRPbmx5KGZhbHNlKTsKKyAgICAgICAgICAgIHN0b3JhZ2UoKS5zZXRTdG9y
YWdlKG51bGxwdHIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAg
UmVmUHRyPFNoYXJlZE1lbW9yeT4gbWVtb3J5ID0gU2hhcmVkTWVtb3J5OjptYXAoaGFuZGxlLCBT
aGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICAgICAgc3RvcmFnZSgpLnNl
dFN0b3JhZ2UoV1RGTW92ZShtZW1vcnkpKTsKKyAgICAgICAgc3RvcmFnZSgpLnNldFJlYWRPbmx5
KHRydWUpOworCisgICAgICAgIG1fcmluZ0J1ZmZlci5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgbnVt
YmVyT2ZGcmFtZXMpOworICAgIH0KKworICAgIHZvaWQgc2V0UmluZ0J1ZmZlckZyYW1lQm91bmRz
KHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQorICAgIHsKKyAgICAgICAg
bV9yaW5nQnVmZmVyLnNldEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7
CisgICAgfQorCisgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lIHRpbWUs
IHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQorICAgIHsKKyAgICAgICAgV2ViQXVkaW9CdWZmZXJM
aXN0IGF1ZGlvRGF0YShtX2Rlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisgICAgICAgIG1f
cmluZ0J1ZmZlci5mZXRjaChhdWRpb0RhdGEubGlzdCgpLCBudW1iZXJPZkZyYW1lcywgdGltZS50
aW1lVmFsdWUoKSk7CisKKyAgICAgICAgZm9yIChhdXRvKiBvYnNlcnZlciA6IG9ic2VydmVycygp
KQorICAgICAgICAgICAgb2JzZXJ2ZXItPmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCBhdWRp
b0RhdGEsIG1fZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAgICB9CisKKyAgICB2b2lk
IHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9tYW5hZ2VyLnN0YXJ0UHJvZHVjaW5nRGF0
YShtX2lkKTsgfQorICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSBmaW5hbCB7IG1fbWFuYWdl
ci5zdG9wUHJvZHVjaW5nRGF0YShtX2lkKTsgfQorCisgICAgQXVkaW9Tb3VyY2VQcm92aWRlciog
YXVkaW9Tb3VyY2VQcm92aWRlcigpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KKworcHJpdmF0
ZToKKyAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlCisgICAgdm9pZCBiZWdpbkNvbmZpZ3VyYXRp
b24oKSBmaW5hbCB7IH0KKyAgICB2b2lkIGNvbW1pdENvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0K
KworICAgIHVpbnQ2NF90IG1faWQ7CisgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFu
YWdlcjsKKyAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBh
YmlsaXRpZXM7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0dGluZ3M7Cisg
ICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb247CisgICAgQ0FSaW5nQnVm
ZmVyIG1fcmluZ0J1ZmZlcjsKK307CisKK1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcihXZWJQcm9jZXNzKiBwcm9jZXNzKQorICAgIDogbV9wcm9jZXNzKCpw
cm9jZXNzKQoreworICAgIG1fcHJvY2Vzcy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKK30K
KworVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6On5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlcigpCit7
CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudW5zZXRBdWRpb0Zh
Y3RvcnkoKnRoaXMpOworICAgIG1fcHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOworfQor
Citjb25zdCBjaGFyKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUoKQor
eworICAgIHJldHVybiAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIiOworfQorCit2b2lkIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjppbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMpCit7CisgICAgaWYgKHBhcmFtZXRlcnMuc2hvdWxkQ2FwdHVy
ZUF1ZGlvSW5VSVByb2Nlc3MpCisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNp
bmdsZXRvbigpLnNldEF1ZGlvRmFjdG9yeSgqdGhpcyk7Cit9CisKK1JlZlB0cjxSZWFsdGltZU1l
ZGlhU291cmNlPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JD
YXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYgaW52YWxpZENvbnN0
cmFpbnRzKQoreworICAgIGlmICghY29uc3RyYWludHMpCisgICAgICAgIHJldHVybiBudWxscHRy
OworCisgICAgdWludDY0X3QgaWQgPSBuZXh0U2Vzc2lvbklEKCk7CisgICAgTWVkaWFDb25zdHJh
aW50c0RhdGEgY29uc3RyYWludHNEYXRhOworICAgIGNvbnN0cmFpbnRzRGF0YS5tYW5kYXRvcnlD
b25zdHJhaW50cyA9IGNvbnN0cmFpbnRzLT5tYW5kYXRvcnlDb25zdHJhaW50cygpOworICAgIGNv
bnN0cmFpbnRzRGF0YS5hZHZhbmNlZENvbnN0cmFpbnRzID0gY29uc3RyYWludHMtPmFkdmFuY2Vk
Q29uc3RyYWludHMoKTsKKyAgICBjb25zdHJhaW50c0RhdGEuaXNWYWxpZCA9IGNvbnN0cmFpbnRz
LT5pc1ZhbGlkKCk7CisgICAgYm9vbCBzdWNjZWVkZWQ7CisKKyAgICBtX3Byb2Nlc3Muc2VuZFN5
bmMoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291
cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhpZCwgZGV2aWNlLCBjb25zdHJhaW50
c0RhdGEpLCBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVk
aWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzOjpSZXBseShzdWNjZWVkZWQs
IGludmFsaWRDb25zdHJhaW50cyksIDApOworCisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZihu
ZXcgU291cmNlKFN0cmluZzo6bnVtYmVyKGlkKSwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6
QXVkaW8sIGRldmljZS5sYWJlbCgpLCBpZCwgKnRoaXMpKTsKKyAgICBtX3NvdXJjZXMuc2V0KGlk
LCBzb3VyY2UpOworICAgIHJldHVybiBzb3VyY2U7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OnNvdXJjZVN0b3BwZWQodWludDY0X3QgaWQpCit7CisgICAgQVNTRVJUKG1fc291
cmNlcy5jb250YWlucyhpZCkpOworICAgIG1fc291cmNlcy5nZXQoaWQpLT5zdG9wKCk7Cit9CisK
K3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZU11dGVkQ2hhbmdlZCh1aW50NjRf
dCBpZCwgYm9vbCBtdXRlZCkKK3sKKyAgICBBU1NFUlQobV9zb3VyY2VzLmNvbnRhaW5zKGlkKSk7
CisgICAgbV9zb3VyY2VzLmdldChpZCktPnNldE11dGVkKG11dGVkKTsKK30KKwordm9pZCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlRW5hYmxlZENoYW5nZWQodWludDY0X3QgaWQsIGJv
b2wgZW5hYmxlZCkKK3sKKyAgICBBU1NFUlQobV9zb3VyY2VzLmNvbnRhaW5zKGlkKSk7CisgICAg
bV9zb3VyY2VzLmdldChpZCktPnNldEVuYWJsZWQoZW5hYmxlZCk7Cit9CisKK3ZvaWQgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZVNldHRpbmdzQ2hhbmdlZCh1aW50NjRfdCBpZCwgY29u
c3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncykKK3sKKyAgICBBU1NFUlQo
bV9zb3VyY2VzLmNvbnRhaW5zKGlkKSk7CisgICAgbV9zb3VyY2VzLmdldChpZCktPnNldFNldHRp
bmdzKHNldHRpbmdzKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3RvcmFn
ZUNoYW5nZWQodWludDY0X3QgaWQsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBoYW5kbGUs
IGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVp
bnQ2NF90IG51bWJlck9mRnJhbWVzKQoreworICAgIEFTU0VSVChtX3NvdXJjZXMuY29udGFpbnMo
aWQpKTsKKyAgICBtX3NvdXJjZXMuZ2V0KGlkKS0+c2V0U3RvcmFnZShoYW5kbGUsIGRlc2NyaXB0
aW9uLCBudW1iZXJPZkZyYW1lcyk7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OnJpbmdCdWZmZXJGcmFtZUJvdW5kc0NoYW5nZWQodWludDY0X3QgaWQsIHVpbnQ2NF90IHN0YXJ0
RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQoreworICAgIEFTU0VSVChtX3NvdXJjZXMuY29udGFp
bnMoaWQpKTsKKyAgICBtX3NvdXJjZXMuZ2V0KGlkKS0+c2V0UmluZ0J1ZmZlckZyYW1lQm91bmRz
KHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKHVpbnQ2NF90IGlkLCBNZWRpYVRpbWUgdGltZSwgdWlu
dDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZy
YW1lKQoreworICAgIEFTU0VSVChtX3NvdXJjZXMuY29udGFpbnMoaWQpKTsKKyAgICBhdXRvJiBz
b3VyY2UgPSAqbV9zb3VyY2VzLmdldChpZCk7CisgICAgc291cmNlLnNldFJpbmdCdWZmZXJGcmFt
ZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7CisgICAgc291cmNlLmF1ZGlvU2FtcGxlc0F2
YWlsYWJsZSh0aW1lLCBudW1iZXJPZkZyYW1lcyk7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OnN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKK3sKKyAgICBtX3Byb2Nl
c3Muc2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RhcnRQcm9k
dWNpbmdEYXRhKGlkKSwgMCk7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN0
b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQoreworICAgIG1fcHJvY2Vzcy5zZW5kKE1lc3Nh
Z2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTdG9wUHJvZHVjaW5nRGF0YShpZCks
IDApOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhMzI2
NjYyYTYzOTc2ODcyODliNTU1NTQxY2EzZGZiZGE2MDdmY2MKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgK
QEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZP
Uk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZXNzYWdlUmVj
ZWl2ZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNz
U3VwcGxlbWVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgor
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IENyb3NzUHJvY2Vzc1JlYWx0aW1lQXVkaW9Tb3VyY2U7CitjbGFzcyBXZWJQcm9jZXNzOworCitj
bGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciA6IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVu
dCwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkgeworcHVibGljOgorICAgIGV4cGxpY2l0IFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyKFdlYlByb2Nlc3MqKTsKKyAgICB+VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIoKTsKKworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOworCitw
cml2YXRlOgorICAgIC8vIFdlYlByb2Nlc3NTdXBwbGVtZW50CisgICAgdm9pZCBpbml0aWFsaXpl
KGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKSBmaW5hbDsKKworICAgIC8vIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OkZhY3Rvcnk6CisgICAgUmVmUHRyPFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdp
dGhDb25zdHJhaW50cyhjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYpIGZpbmFsOworCisgICAgLy8gSVBDOjpNZXNz
YWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgLy8gTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyCisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKHVpbnQ2NF90IGlkKTsKKyAgICB2b2lk
IHNvdXJjZU11dGVkQ2hhbmdlZCh1aW50NjRfdCBpZCwgYm9vbCBtdXRlZCk7CisgICAgdm9pZCBz
b3VyY2VFbmFibGVkQ2hhbmdlZCh1aW50NjRfdCBpZCwgYm9vbCBlbmFibGVkKTsKKyAgICB2b2lk
IHNvdXJjZVNldHRpbmdzQ2hhbmdlZCh1aW50NjRfdCBpZCwgY29uc3QgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZVNldHRpbmdzJik7CisgICAgdm9pZCBzdG9yYWdlQ2hhbmdlZCh1aW50NjRf
dCBpZCwgY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisgICAgdm9pZCBy
aW5nQnVmZmVyRnJhbWVCb3VuZHNDaGFuZ2VkKHVpbnQ2NF90IGlkLCB1aW50NjRfdCBzdGFydEZy
YW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7CisgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUo
dWludDY0X3QgaWQsIE1lZGlhVGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90
IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKKworICAgIHZvaWQgc3RhcnRQcm9kdWNp
bmdEYXRhKHVpbnQ2NF90KTsKKyAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsK
KworICAgIGNsYXNzIFNvdXJjZTsKKyAgICBmcmllbmQgY2xhc3MgU291cmNlOworICAgIEhhc2hN
YXA8dWludDY0X3QsIFJlZlB0cjxTb3VyY2U+PiBtX3NvdXJjZXM7CisgICAgV2ViUHJvY2VzcyYg
bV9wcm9jZXNzOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1l
c3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlYzA1NjVjNjg2NGE0NmIwMGU5ZjhmYjkxMGMxOGM4OWU5
ZTRhMTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKyMg
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
IyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+IFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyIHsKKyAgICBTb3VyY2VTdG9wcGVkKHVpbnQ2NF90IGlkKQorICAgIFNv
dXJjZU11dGVkQ2hhbmdlZCh1aW50NjRfdCBpZCwgYm9vbCBtdXRlZCkKKyAgICBTb3VyY2VFbmFi
bGVkQ2hhbmdlZCh1aW50NjRfdCBpZCwgYm9vbCBlbmFibGVkKQorICAgIFNvdXJjZVNldHRpbmdz
Q2hhbmdlZCh1aW50NjRfdCBpZCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdz
IHNldHRpbmdzKQorICAgIFN0b3JhZ2VDaGFuZ2VkKHVpbnQ2NF90IGlkLCBXZWJLaXQ6OlNoYXJl
ZE1lbW9yeTo6SGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisgICAgQXVkaW9T
YW1wbGVzQXZhaWxhYmxlKHVpbnQ2NF90IGlkLCBNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVt
YmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQorfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304531</attachid>
            <date>2017-03-15 12:49:24 -0700</date>
            <delta_ts>2017-03-15 13:33:23 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-169609-20170315124924.patch</filename>
            <type>text/plain</type>
            <size>68604</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzOTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWIwYTBhN2E3ZmMyM2Jl
ZmIwYmFhOGI4MTMxNGIyN2M4YmIwYzM0MS4uY2I5YjdkNjJhM2FiMDY2M2I1ZGY0NmIwZGUwYjQy
NGMyMDg2OWMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTAzLTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIE9wdGlvbmFsbHkgY2FwdHVy
ZSBhdWRpbyBpbiB0aGUgVUlQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjk2MDkKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlz
dGVuc2VuLgorCisgICAgICAgIEV4cG9ydCBzb21lIHByZXZpb3VzbHkgdW4tZXhwb3J0ZWQgc3lt
Ym9scyBmcm9tIFdlYkNvcmUgZm9yIHVzZSBpbiBXZWJLaXQyLgorCisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1dl
YkF1ZGlvQnVmZmVyTGlzdC5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2UuaDoKKwogMjAxNy0wMy0xNSAgQW50b2luZSBRdWludCAgPGdyYW91dHNA
YXBwbGUuY29tPgogCiAgICAgICAgIFtNb2Rlcm4gTWVkaWEgQ29udHJvbHNdIEFsd2F5cyB1c2Ug
c2l4IGRpZ2l0cyB0byBkaXNwbGF5IHRpbWUgd2hlbiBvdmVyYWxsIG1lZGlhIGR1cmF0aW9uIGlz
IGFuIGhvdXIgb3IgbW9yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDEyMTU4MGE3NWNiZmFiZmY3ZjQ0NjIxZTYz
NTFiNDY2NzA2ZWY4NWUuLjEyNGEzZDUxOWI2NTVkZDE2ZGI5YWRmYTRlNGM4NTBhOWFkOWMyZWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4OSBAQAorMjAxNy0wMy0xNCAgSmVyIE5vYmxlICA8amVy
Lm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBPcHRpb25hbGx5IGNhcHR1cmUgYXVkaW8gaW4g
dGhlIFVJUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTY5NjA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKwor
ICAgICAgICBBZGQgYSBuZXcgY2xhc3MgcGFpciwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIvUHJv
eHksIHRvIGFsbG93IGEgUmVhbHRpbWVNZWRpYVNvdXJjZQorICAgICAgICByZXF1ZXN0ZWQgaW4g
YSBXZWJQcm9jZXNzIHRvIGJlIGNyZWF0ZWQgaW4gdGhlIFVJUHJvY2VzcyBhbmQgcHVzaCBpdHMg
YXVkaW8gZGF0YSBhY3Jvc3MgdGhlCisgICAgICAgIHByb2Nlc3MgYm91bmRhcnkgdG8gaXRzIGNs
aWVudHMgaW4gdGhlIFdlYlByb2Nlc3MuIEJlY2F1c2UgdGhlc2UgY2xhc3NlcyBhcmUgY2xpZW50
cyBvZiB0aGUKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCks
IHRoZXkgbXVzdCBiZSBhIHNpbmdsZXRvbiBpbiB0aGUgV2ViUHJvY2VzcyBhcyB3ZWxsLAorICAg
ICAgICBzbyB0aGV5IGFyZSBhdHRhY2hlZCB0byB0aGUgV2ViUHJvY2VzcyBjbGFzcyBpbiB0aGUg
d2ViIHByb2Nlc3MgYW5kIHRvIFdlYlByb2Nlc3NQcm94eSBpbgorICAgICAgICB0aGUgVUlQcm9j
ZXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6U291cmNlUHJveHk6OlNvdXJjZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6On5Tb3VyY2VQcm94eSk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5
Ojpzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjpTb3VyY2VQcm94eTo6ZGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94eTo6bnVtYmVyT2ZGcmFtZXMpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6flVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVE
ZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5OjpzdGFydFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViS2l0OjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzdG9wUHJvZHVjaW5nRGF0YSk6CisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6cHJvY2Vzcyk6CisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW46IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6bmV4dFNlc3Npb25JRCk6CisgICAg
ICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OlNvdXJjZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6On5Tb3VyY2Up
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpzZXRD
YXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
U291cmNlOjpzZXRTZXR0aW5ncyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjpTb3VyY2U6OmRlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6c2V0U3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnNldFJpbmdCdWZmZXJGcmFtZUJvdW5kcyk6
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OmF1ZGlv
U2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIpOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1
cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6c291cmNlU3RvcHBlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyOjpzb3VyY2VNdXRlZENoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlRW5hYmxlZENoYW5nZWQpOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlU2V0dGluZ3NDaGFuZ2VkKToKKyAg
ICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN0b3JhZ2VDaGFuZ2VkKToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnJpbmdCdWZmZXJGcmFt
ZUJvdW5kc0NoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OnN0YXJ0UHJvZHVjaW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpzdG9wUHJvZHVjaW5nRGF0YSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRl
ZC4KKworICAgICAgICBJbml0aWFsaXplIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyL1Byb3h5Ogor
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNz
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHkpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKToKKworICAgICAg
ICBXZWJVc2VyTWVkaWFDbGllbnRNYWMgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeSBub3cgdGhhdCB0
aGUgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgb3ZlcnJpZGVzCisgICAgICAgIHRoZSBmYWN0b3Jp
ZXM6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNs
aWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVudDo6V2ViVXNlck1l
ZGlhQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50Ojppbml0aWFs
aXplRmFjdG9yaWVzKTogRGVsZXRlZC4KKworICAgICAgICBBZGQgYSBuZXcgcHJlZmVyZW5jZSBh
bmQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBtZW1iZXIgdG8gY29udHJvbCB3aGV0aGVy
CisgICAgICAgIGNhcHR1cmluZyBpcyBkb25lIGluIHRoZSBVSVByb2Nlc3M6CisKKyAgICAgICAg
KiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oOgorICAgICAgICAqIFNoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorCisgICAgICAgIEFkZCBuZXcgZmlsZXMgdG8gdGhl
IHByb2plY3Q6CisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFdl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxNy0wMy0xNSAgRGVhbiBKYWNr
c29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgU29ydCBYY29kZSBwcm9qZWN0IGZpbGVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggZmU5ODlkZDY2YWQ3ZGMyNTNhYTU3YWE0YjczNmI1OWJmODU4MWMzYy4uM2NhNDBlNzg1
YWZhOWUwZTQ3YTBmZGE4MWYzZGE4NWUwYTM5ZmRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjE2OSw3ICs2MTY5LDcgQEAK
IAkJQ0RFNTk1OTcxQkYyNkUyMTAwQTFDQkU4IC8qIENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9i
akMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTU5
NTk2MUJGMjZFMjEwMEExQ0JFOCAvKiBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmggKi87
IH07CiAJCUNERTU5NTlEMUJGMjc1NzEwMEExQ0JFOCAvKiBDRE1TZXNzaW9uTWVkaWFTb3VyY2VB
VkZPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0RFNTk1OUMxQkYyNzU3MTAwQTFDQkU4IC8qIENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMu
bW0gKi87IH07CiAJCUNERTY2N0E0MUU0QkJGMTUwMEU4MTU0QSAvKiBXZWJBdWRpb0J1ZmZlckxp
c3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RF
NjY3QTIxRTRCQkYxNTAwRTgxNTRBIC8qIFdlYkF1ZGlvQnVmZmVyTGlzdC5jcHAgKi87IH07Ci0J
CUNERTY2N0E1MUU0QkJGMTUwMEU4MTU0QSAvKiBXZWJBdWRpb0J1ZmZlckxpc3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTY2N0EzMUU0QkJGMTUw
MEU4MTU0QSAvKiBXZWJBdWRpb0J1ZmZlckxpc3QuaCAqLzsgfTsKKwkJQ0RFNjY3QTUxRTRCQkYx
NTAwRTgxNTRBIC8qIFdlYkF1ZGlvQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3QTMxRTRCQkYxNTAwRTgxNTRBIC8qIFdlYkF1
ZGlvQnVmZmVyTGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUNERTdGQzQ0MTgxOTA0QjEwMDJCQkI3NyAvKiBPcmRlckl0ZXJhdG9yLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTdGQzQyMTgx
OTA0QjEwMDJCQkI3NyAvKiBPcmRlckl0ZXJhdG9yLmNwcCAqLzsgfTsKIAkJQ0RFN0ZDNDUxODE5
MDRCMTAwMkJCQjc3IC8qIE9yZGVySXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTdGQzQzMTgxOTA0QjEwMDJCQkI3NyAvKiBPcmRlckl0
ZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQ0RFODNEQjExODNDNDQwNjAwMzFFQUEzIC8qIFZpZGVvUGxheWJhY2tRdWFsaXR5LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTgzREFGMTgz
QzQ0MDYwMDMxRUFBMyAvKiBWaWRlb1BsYXliYWNrUXVhbGl0eS5jcHAgKi87IH07CkBAIC02MTg2
LDYgKzYxODYsNyBAQAogCQlDREVBN0M4NTEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNj
cmVlbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
REVBN0M4MzEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNjcmVlbi5jcHAgKi87IH07CiAJ
CUNERUUzOTM3MTc5NzQyNTkwMDFENzU4MCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERUUzOTM2MTc5NzQyNTkw
MDFENzU4MCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmNwcCAqLzsgfTsKIAkJQ0RFRjRGRDcxN0U4NUM4
RjAwQUVFMjRCIC8qIEdyaWRMZW5ndGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENERUY0RkQ2MTdFODVDOEYwMEFFRTI0QiAvKiBHcmlkTGVuZ3RoLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RFRkEy
MjgxRTc2NjlFODAwMEFFOTlDIC8qIFBsYXRmb3JtQXVkaW9EYXRhLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREU2NjdBMTFFNEJCQTREMDBFODE1NEEg
LyogUGxhdGZvcm1BdWRpb0RhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlDREYyQjAwNDE4MUYwNTlDMDBGMkI0MjQgLyogTWVkaWFEZXNjcmlw
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RG
MkIwMDMxODFGMDU5QzAwRjJCNDI0IC8qIE1lZGlhRGVzY3JpcHRpb24uaCAqLzsgfTsKIAkJQ0RG
MkIwMTAxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tCb3guY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGMkIwMDYxODIwNTQwNjAwRjJCNDI0IC8qIE1v
Y2tCb3guY3BwICovOyB9OwogCQlDREYyQjAxMTE4MjA1NDA2MDBGMkI0MjQgLyogTW9ja0JveC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGMkIwMDcx
ODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tCb3guaCAqLzsgfTsKQEAgLTI2OTg0LDYgKzI2OTg1LDcg
QEAKIAkJCQlGRDMxNjA5OTEyQjAyNkY3MDBDMUEzNTkgLyogSFJURkRhdGFiYXNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGRDMxNjA5QjEyQjAyNkY3MDBDMUEzNTkgLyogSFJURkRhdGFiYXNlTG9h
ZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA5RDEyQjAyNkY3MDBDMUEzNTkgLyogSFJU
RkVsZXZhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0RFRkEyMjgxRTc2NjlFODAwMEFFOTlD
IC8qIFBsYXRmb3JtQXVkaW9EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA5RjEyQjAy
NkY3MDBDMUEzNTkgLyogSFJURktlcm5lbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwQTEx
MkIwMjZGNzAwQzFBMzU5IC8qIEhSVEZQYW5uZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTdF
MjNBMTA5MTQ0OTUwMDEwRDM2MSAvKiBIVE1MQWxsQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9XZWJBdWRpb0J1ZmZl
ckxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1dlYkF1ZGlvQnVmZmVyTGlz
dC5oCmluZGV4IGJiZjNjMTM5YjYyNWU3YjRjNzlhZjg0MjQxMzhiNTA0MDczMTg1YTguLmRiNjVk
MzUzNGUzYmE1ZTc4NzljZjJmNGQ5Njg0MDgwYzA0ZjYxNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1dlYkF1ZGlvQnVmZmVyTGlzdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1dlYkF1ZGlvQnVmZmVyTGlzdC5oCkBAIC00Miw3ICs0Miw3
IEBAIGNsYXNzIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKIGNsYXNzIFdlYkF1ZGlvQnVmZmVy
TGlzdCA6IHB1YmxpYyBQbGF0Zm9ybUF1ZGlvRGF0YSB7CiBwdWJsaWM6CiAgICAgV2ViQXVkaW9C
dWZmZXJMaXN0KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYpOwotICAgIFdlYkF1ZGlv
QnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCB1aW50MzJfdCBzYW1w
bGVDb3VudCk7CisgICAgV0VCQ09SRV9FWFBPUlQgV2ViQXVkaW9CdWZmZXJMaXN0KGNvbnN0IENB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQzMl90IHNhbXBsZUNvdW50KTsKICAgICBXZWJB
dWRpb0J1ZmZlckxpc3QoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgQ01TYW1wbGVC
dWZmZXJSZWYpOwogCiAgICAgQXVkaW9CdWZmZXJMaXN0KiBsaXN0KCkgY29uc3QgeyByZXR1cm4g
bV9saXN0LmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9tYWMvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9tYWMvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgKaW5kZXggZjdjNWU4MGQwODFk
OTJhYzY1Mjc3MmJiNTc1ODliMWFjMmIyN2ZlMS4uODE3MjQ2ZDQwZWJjYTZjOWJkOGRjZWI1NjRl
NThiNDBlZGIyMWMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
bWFjL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL21hYy9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaApAQCAtOTAsMzEgKzkwLDEz
IEBAIHByaXZhdGU6CiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb246OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29k
ZXIgPDwgbV9zdHJlYW1EZXNjcmlwdGlvbi5tU2FtcGxlUmF0ZQotICAgICAgICA8PCBtX3N0cmVh
bURlc2NyaXB0aW9uLm1Gb3JtYXRJRAotICAgICAgICA8PCBtX3N0cmVhbURlc2NyaXB0aW9uLm1G
b3JtYXRGbGFncwotICAgICAgICA8PCBtX3N0cmVhbURlc2NyaXB0aW9uLm1CeXRlc1BlclBhY2tl
dAotICAgICAgICA8PCBtX3N0cmVhbURlc2NyaXB0aW9uLm1GcmFtZXNQZXJQYWNrZXQKLSAgICAg
ICAgPDwgbV9zdHJlYW1EZXNjcmlwdGlvbi5tQnl0ZXNQZXJGcmFtZQotICAgICAgICA8PCBtX3N0
cmVhbURlc2NyaXB0aW9uLm1DaGFubmVsc1BlckZyYW1lCi0gICAgICAgIDw8IG1fc3RyZWFtRGVz
Y3JpcHRpb24ubUJpdHNQZXJDaGFubmVsCi0gICAgICAgIDw8IG1fc3RyZWFtRGVzY3JpcHRpb24u
bVJlc2VydmVkOwotICAgIGVuY29kZXIuZW5jb2RlRW51bShtX2Zvcm1hdCk7CisgICAgZW5jb2Rl
ci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4o
Jm1fc3RyZWFtRGVzY3JpcHRpb24pLCBzaXplb2YobV9zdHJlYW1EZXNjcmlwdGlvbiksIDEpOwog
fQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgogYm9vbCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b246OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRl
c2NyaXB0aW9uKQogewotICAgIHJldHVybiBkZWNvZGVyLmRlY29kZShkZXNjcmlwdGlvbi5tX3N0
cmVhbURlc2NyaXB0aW9uLm1TYW1wbGVSYXRlKQotICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShk
ZXNjcmlwdGlvbi5tX3N0cmVhbURlc2NyaXB0aW9uLm1Gb3JtYXRJRCkKLSAgICAgICAgJiYgZGVj
b2Rlci5kZWNvZGUoZGVzY3JpcHRpb24ubV9zdHJlYW1EZXNjcmlwdGlvbi5tRm9ybWF0RmxhZ3Mp
Ci0gICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGRlc2NyaXB0aW9uLm1fc3RyZWFtRGVzY3JpcHRp
b24ubUJ5dGVzUGVyUGFja2V0KQotICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShkZXNjcmlwdGlv
bi5tX3N0cmVhbURlc2NyaXB0aW9uLm1GcmFtZXNQZXJQYWNrZXQpCi0gICAgICAgICYmIGRlY29k
ZXIuZGVjb2RlKGRlc2NyaXB0aW9uLm1fc3RyZWFtRGVzY3JpcHRpb24ubUJ5dGVzUGVyRnJhbWUp
Ci0gICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGRlc2NyaXB0aW9uLm1fc3RyZWFtRGVzY3JpcHRp
b24ubUNoYW5uZWxzUGVyRnJhbWUpCi0gICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGRlc2NyaXB0
aW9uLm1fc3RyZWFtRGVzY3JpcHRpb24ubUJpdHNQZXJDaGFubmVsKQotICAgICAgICAmJiBkZWNv
ZGVyLmRlY29kZShkZXNjcmlwdGlvbi5tX3N0cmVhbURlc2NyaXB0aW9uLm1SZXNlcnZlZCkKLSAg
ICAgICAgJiYgZGVjb2Rlci5kZWNvZGVFbnVtKGRlc2NyaXB0aW9uLm1fZm9ybWF0KTsKKyAgICBy
ZXR1cm4gZGVjb2Rlci5kZWNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDx1aW50
OF90Kj4oJmRlc2NyaXB0aW9uLm1fc3RyZWFtRGVzY3JpcHRpb24pLCBzaXplb2YoZGVzY3JpcHRp
b24ubV9zdHJlYW1EZXNjcmlwdGlvbiksIDEpOwogfQogCiBpbmxpbmUgQ0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uIHRvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mIGRlc2NyaXB0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vbWFjL0NBUmluZ0J1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vbWFjL0NBUmluZ0J1ZmZlci5oCmluZGV4IDVhYWI0OTI3ZGUwYWQ5N2Y4YjgxNTgxMjQyOWFm
ZTk2YjQ3YjUzMWIuLjQ1YzU1ZGMxMzAxODE4MjFkNjA4ZThiNzNhZDdmNzY0NWZkZjgyMTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9DQVJpbmdCdWZmZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmgK
QEAgLTg1LDYgKzg1LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q3Vy
cmVudEZyYW1lQm91bmRzKHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsK
IAogICAgIHVpbnQzMl90IGNoYW5uZWxDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hhbm5lbENv
dW50OyB9CisgICAgQ0FSaW5nQnVmZmVyU3RvcmFnZSYgc3RvcmFnZSgpIHsgcmV0dXJuIG1fYnVm
ZmVyczsgfQogCiBwcml2YXRlOgogICAgIHNpemVfdCBmcmFtZU9mZnNldCh1aW50NjRfdCBmcmFt
ZU51bWJlcikgeyByZXR1cm4gKGZyYW1lTnVtYmVyICYgbV9mcmFtZUNvdW50TWFzaykgKiBtX2J5
dGVzUGVyRnJhbWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCA2OTQ2N2JmY2Y4MjQwMWQ2MWU1
N2RmNTM3ZTVkNWViMTE1YjUwMWYxLi5lOWM1ZjNjNTk4YThjYzE3NzcxNzQ0MDgyNDNiMTRiNWU4
NDJiMjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC02MSw3ICs2MSw3IEBAIGNsYXNzIE1lZGlh
U3RyZWFtUHJpdmF0ZTsKIGNsYXNzIFBsYXRmb3JtQXVkaW9EYXRhOwogY2xhc3MgUmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzOwogCi1jbGFzcyBSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGlj
IFJlZkNvdW50ZWQ8UmVhbHRpbWVNZWRpYVNvdXJjZT4geworY2xhc3MgV0VCQ09SRV9FWFBPUlQg
UmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBSZWZDb3VudGVkPFJlYWx0aW1lTWVkaWFTb3Vy
Y2U+IHsKIHB1YmxpYzoKICAgICBjbGFzcyBPYnNlcnZlciB7CiAgICAgcHVibGljOgpAQCAtMjAw
LDYgKzIwMCw4IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgYXBwbHlDb25zdHJhaW50
cyhjb25zdCBGbGF0dGVuZWRDb25zdHJhaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIGFwcGx5U2l6
ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0aW9uYWw8aW50
PiBoZWlnaHQsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPik7CiAKKyAgICBjb25zdCBWZWN0b3I8T2Jz
ZXJ2ZXIqPiBvYnNlcnZlcnMoKSBjb25zdCB7IHJldHVybiBtX29ic2VydmVyczsgfQorCiAgICAg
Ym9vbCBtX211dGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fZW5hYmxlZCB7IHRydWUgfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9X
ZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggOTk0OTJmZmFlYTE0NGVlNGM3ZjRlNWVl
NWQ5MWUzZjY2YjhiNWU1MC4uOWRlZjM3MDRiNzRkNDU4OGJhZGMwYjQyYzEyMDcwN2NhZmQ5MWM0
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC00NSw2ICs0NSw3IEBAIFZQQVRI
ID0gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBcCiAgICAgJChXZWJL
aXQyKS9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNz
L01lZGlhQ2FjaGUgXAorICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbSBcCiAg
ICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL05ldHdvcmsgXAogICAgICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0YyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMgXApAQCAtNjUsNiArNjYsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIpL1VJUHJv
Y2Vzcy9Db2NvYSBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvRGF0YWJhc2VzIFwKICAgICAk
KFdlYktpdDIpL1VJUHJvY2Vzcy9Eb3dubG9hZHMgXAorICAgICQoV2ViS2l0MikvVUlQcm9jZXNz
L01lZGlhU3RyZWFtIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9OZXR3b3JrIFwKICAgICAk
KFdlYktpdDIpL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scyBcCiAgICAgJChXZWJL
aXQyKS9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucyBcCkBAIC0xMjEsNiArMTIzLDggQEAgTUVTU0FH
RV9SRUNFSVZFUlMgPSBcCiAgICAgU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlciBcCiAgICAg
U3RvcmFnZUFyZWFNYXAgXAogICAgIFN0b3JhZ2VNYW5hZ2VyIFwKKyAgICBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlciBcCisgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSBcCiAgICAgVmll
d0dlc3R1cmVDb250cm9sbGVyIFwKICAgICBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yIFwK
ICAgICBWaWV3VXBkYXRlRGlzcGF0Y2hlciBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9JUEMvRGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvRGVj
b2Rlci5jcHAKaW5kZXggNzQwYTBjY2VkMTc4ZDZiNmE3NTg0M2MwYTc5MDY5Y2EzMmMwOWRjMi4u
MDM0MmIxZDhkNmIzZGYwNTEwZjRkNjY0ZjMzYTYzMTY0MzJjNDFhNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0RlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0lQQy9EZWNvZGVyLmNwcApAQCAtMjUxLDYgKzI1MSwxNSBAQCBib29sIERlY29k
ZXI6OmRlY29kZShpbnQ2NF90JiByZXN1bHQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wg
RGVjb2Rlcjo6ZGVjb2RlKHVuc2lnbmVkIGxvbmcmIHJlc3VsdCkKK3sKKyAgICBpZiAoIWFsaWdu
QnVmZmVyUG9zaXRpb24oc2l6ZW9mKHJlc3VsdCksIHNpemVvZihyZXN1bHQpKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgZGVjb2RlVmFsdWVGcm9tQnVmZmVyKHJlc3VsdCwgbV9idWZm
ZXJQb3MpOworICAgIHJldHVybiB0cnVlOworfQorCiBib29sIERlY29kZXI6OmRlY29kZShmbG9h
dCYgcmVzdWx0KQogewogICAgIGlmICghYWxpZ25CdWZmZXJQb3NpdGlvbihzaXplb2YocmVzdWx0
KSwgc2l6ZW9mKHJlc3VsdCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL0RlY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9EZWNvZGVyLmgKaW5k
ZXggNWEzMGM0MjU4NzlkNzc5MTI2YWI1ZjRkNjk1Y2Y4OGJjZDQ2NjU3Yi4uN2YwNTliZDM5OGFk
MjQ4Njg2ODQ4OGNlMTIxNWVlMTQxMTgzY2M2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vSVBDL0RlY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
RGVjb2Rlci5oCkBAIC04NCw2ICs4NCw3IEBAIHB1YmxpYzoKICAgICBib29sIGRlY29kZSh1aW50
NjRfdCYpOwogICAgIGJvb2wgZGVjb2RlKGludDMyX3QmKTsKICAgICBib29sIGRlY29kZShpbnQ2
NF90Jik7CisgICAgYm9vbCBkZWNvZGUodW5zaWduZWQgbG9uZyYpOwogICAgIGJvb2wgZGVjb2Rl
KGZsb2F0Jik7CiAgICAgYm9vbCBkZWNvZGUoZG91YmxlJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCmluZGV4IDdmZjc3MDI4YmZi
NWMwNTVkOGViMmQ2YTA1MjE4ODQ4ZmFkNmM1OWEuLmI5YzE1OWRiMDg2ZWIyNTY3MWE0ZWJjODM2
MmJmMjA0OTcyOTVkODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVm
ZXJlbmNlc0RlZmluaXRpb25zLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZl
cmVuY2VzRGVmaW5pdGlvbnMuaApAQCAtMTAzLDYgKzEwMywxMiBAQAogI2RlZmluZSBERUZBVUxU
X0NBTlZBU19VU0VTX0FDQ0VMRVJBVEVEX0RSQVdJTkcgdHJ1ZQogI2VuZGlmCiAKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyNkZWZpbmUgREVGQVVMVF9TSE9VTERfQ0FQVFVSRV9BVURJT19JTl9VSVBS
T0NFU1MgdHJ1ZQorI2Vsc2UKKyNkZWZpbmUgREVGQVVMVF9TSE9VTERfQ0FQVFVSRV9BVURJT19J
Tl9VSVBST0NFU1MgZmFsc2UKKyNlbmRpZgorCiAvLyBtYWNybyhLZXlVcHBlciwgS2V5TG93ZXIs
IFR5cGVOYW1lVXBwZXIsIFR5cGVOYW1lLCBEZWZhdWx0VmFsdWUsIEh1bWFuUmVhZGFibGVOYW1l
LCBIdW1hblJlYWRhYmxlRGVzY3JpcHRpb24pCiAKICNkZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX0JP
T0xfUFJFRkVSRU5DRShtYWNybykgXApAQCAtMjUyLDYgKzI1OCw3IEBACiAgICAgbWFjcm8oR2Ft
ZXBhZHNFbmFibGVkLCBnYW1lcGFkc0VuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUsICJHYW1lcGFk
cyIsICJXZWIgR2FtZXBhZCBBUEkgc3VwcG9ydCIpIFwKICAgICBtYWNybyhJbnB1dEV2ZW50c0Vu
YWJsZWQsIGlucHV0RXZlbnRzRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSwgIklucHV0IEV2ZW50
cyIsICJFbmFibGUgSW5wdXRFdmVudHMgc3VwcG9ydCIpIFwKICAgICBtYWNybyhDcmVkZW50aWFs
TWFuYWdlbWVudEVuYWJsZWQsIGNyZWRlbnRpYWxNYW5hZ2VtZW50RW5hYmxlZCwgQm9vbCwgYm9v
bCwgZmFsc2UsICJDcmVkZW50aWFsIE1hbmFnZW1lbnQiLCAiRW5hYmxlIENyZWRlbnRpYWwgTWFu
YWdlbWVudCBzdXBwb3J0IikgXAorICAgIG1hY3JvKFNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9j
ZXNzLCBzaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcywgQm9vbCwgYm9vbCwgREVGQVVMVF9T
SE9VTERfQ0FQVFVSRV9BVURJT19JTl9VSVBST0NFU1MsICJDYXB0dXJlIiwgIkNhcHR1cmUgQXVk
aW8gaW4gVUlQcm9jZXNzIikgXAogICAgIFwKIAogI2RlZmluZSBGT1JfRUFDSF9XRUJLSVRfRE9V
QkxFX1BSRUZFUkVOQ0UobWFjcm8pIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCA1MTJkMjEyZDg0YTAxMTgw
OGMyOWE4YjUxODQxOWUyMGE1MTc2YjFjLi5mMzNlYTZjMGE4M2I0OWIwMWU3YTE2YWNkNWExMWVi
YTljMzExNjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC02OCw2ICs2OCw3IEBAIHZvaWQgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
ICAgICBlbmNvZGVyIDw8IG1lZGlhS2V5U3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsK
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIGVuY29kZXIgPDwgYXVkaW9DYXB0dXJlRXh0
ZW5zaW9uSGFuZGxlOworICAgIGVuY29kZXIgPDwgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nl
c3M7CiAjZW5kaWYKICAgICBlbmNvZGVyIDw8IHNob3VsZFVzZVRlc3RpbmdOZXR3b3JrU2Vzc2lv
bjsKICAgICBlbmNvZGVyIDw8IHVybFNjaGVtZXNSZWdpc3RlcmVkQXNFbXB0eURvY3VtZW50OwpA
QCAtMTg5LDYgKzE5MCw4IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVj
b2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUHJvY2Vzc0NyZWF0CiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuYXVkaW9DYXB0
dXJlRXh0ZW5zaW9uSGFuZGxlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocGFyYW1ldGVycy5zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcykpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFy
YW1ldGVycy5zaG91bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb24pKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaAppbmRleCBhM2U2MmNmOWQ0MzFmNDBiZGNhN2E1YzgwMGNjNTcwNTk3MWM4
ZTk0Li5mZDgwNmIyMjAyNDc5ZTE2MDQ4NjFkZjk4ZTA4Y2FiMWExYWE2MGQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
QEAgLTg4LDYgKzg4LDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewog
ICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBtZWRpYUtleVN0b3JhZ2VEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGU7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGUgYXVkaW9DYXB0dXJlRXh0ZW5zaW9uSGFuZGxlOworICAgIGJvb2wgc2hvdWxk
Q2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MgeyBmYWxzZSB9OwogI2VuZGlmCiAgICAgU3RyaW5nIG1l
ZGlhS2V5U3RvcmFnZURpcmVjdG9yeTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjcwYWZjN2EyMGNhOWEyZjc4NjU3MzFiOGNiMTlhOWI1YzM5MGM0ZGEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSwxNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5o
IgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNs
dWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIK
KyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1
ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDb25zdHJhaW50c0ltcGwuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KKwor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94eSA6IHB1YmxpYyBSZWFsdGlt
ZU1lZGlhU291cmNlOjpPYnNlcnZlciwgcHVibGljIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpD
bGllbnQgeworcHVibGljOgorICAgIFNvdXJjZVByb3h5KHVpbnQ2NF90IGlkLCBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5JiBtYW5hZ2VyLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBz
b3VyY2UpCisgICAgICAgIDogbV9pZChpZCkKKyAgICAgICAgLCBtX21hbmFnZXIobWFuYWdlcikK
KyAgICAgICAgLCBtX3NvdXJjZShXVEZNb3ZlKHNvdXJjZSkpCisgICAgICAgICwgbV9yaW5nQnVm
ZmVyKG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG1ha2VVbmlxdWVSZWY8
U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KHRoaXMpKSkKKyAgICB7CisgICAgICAgIG1fc291cmNl
LT5hZGRPYnNlcnZlcigqdGhpcyk7CisgICAgfQorCisgICAgflNvdXJjZVByb3h5KCkKKyAgICB7
CisgICAgICAgIHN0b3JhZ2UoKS5pbnZhbGlkYXRlKCk7CisgICAgICAgIG1fc291cmNlLT5yZW1v
dmVPYnNlcnZlcigqdGhpcyk7CisgICAgfQorCisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291
cmNlKCkgeyByZXR1cm4gbV9zb3VyY2U7IH0KKyAgICBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSYg
c3RvcmFnZSgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4o
bV9yaW5nQnVmZmVyLnN0b3JhZ2UoKSk7IH0KKyAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24m
IGRlc2NyaXB0aW9uKCkgeyByZXR1cm4gbV9kZXNjcmlwdGlvbjsgfQorICAgIGludDY0X3QgbnVt
YmVyT2ZGcmFtZXMoKSB7IHJldHVybiBtX251bWJlck9mRnJhbWVzOyB9CisKKyAgICB2b2lkIHNv
dXJjZVN0b3BwZWQoKSBmaW5hbCB7CisgICAgICAgIG1fbWFuYWdlci5wcm9jZXNzKCkuc2VuZChN
ZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZVN0b3BwZWQobV9pZCksIDAp
OworICAgIH0KKworICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKCkgZmluYWwgeworICAgICAg
ICBtX21hbmFnZXIucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpTb3VyY2VNdXRlZENoYW5nZWQobV9pZCwgbV9zb3VyY2UtPm11dGVkKCkpLCAwKTsKKyAg
ICB9CisKKyAgICB2b2lkIHNvdXJjZUVuYWJsZWRDaGFuZ2VkKCkgZmluYWwgeworICAgICAgICBt
X21hbmFnZXIucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjpTb3VyY2VFbmFibGVkQ2hhbmdlZChtX2lkLCBtX3NvdXJjZS0+ZW5hYmxlZCgpKSwgMCk7Cisg
ICAgfQorCisgICAgdm9pZCBzb3VyY2VTZXR0aW5nc0NoYW5nZWQoKSBmaW5hbCB7CisgICAgICAg
IG1fbWFuYWdlci5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OlNvdXJjZVNldHRpbmdzQ2hhbmdlZChtX2lkLCBtX3NvdXJjZS0+c2V0dGluZ3MoKSksIDAp
OworICAgIH0KKworICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGlt
ZSYgdGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBudW1iZXJPZkZyYW1lcykgZmlu
YWwgeworICAgICAgICBpZiAobV9kZXNjcmlwdGlvbiAhPSBkZXNjcmlwdGlvbikgeworICAgICAg
ICAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS50eXBlID09IFBs
YXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUpOworICAgICAgICAgICAg
bV9kZXNjcmlwdGlvbiA9ICpXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRp
b24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOworCisg
ICAgICAgICAgICAvLyBBbGxvY2F0ZSBhIHJpbmcgYnVmZmVyIGxhcmdlIGVub3VnaCB0byBjb250
YWluIDIgc2Vjb25kcyBvZiBhdWRpby4KKyAgICAgICAgICAgIG1fbnVtYmVyT2ZGcmFtZXMgPSBt
X2Rlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSAqIDI7CisgICAgICAgICAgICBtX3JpbmdCdWZmZXIu
YWxsb2NhdGUobV9kZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpLCBtX251bWJlck9mRnJh
bWVzKTsKKyAgICAgICAgfQorCisgICAgICAgIEFTU0VSVChpczxXZWJBdWRpb0J1ZmZlckxpc3Q+
KGF1ZGlvRGF0YSkpOworICAgICAgICBtX3JpbmdCdWZmZXIuc3RvcmUoZG93bmNhc3Q8V2ViQXVk
aW9CdWZmZXJMaXN0PihhdWRpb0RhdGEpLmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUudGlt
ZVZhbHVlKCkpOworICAgICAgICB1aW50NjRfdCBzdGFydEZyYW1lOworICAgICAgICB1aW50NjRf
dCBlbmRGcmFtZTsKKyAgICAgICAgbV9yaW5nQnVmZmVyLmdldEN1cnJlbnRGcmFtZUJvdW5kcyhz
dGFydEZyYW1lLCBlbmRGcmFtZSk7CisgICAgICAgIG1fbWFuYWdlci5wcm9jZXNzKCkuc2VuZChN
ZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlvU2FtcGxlc0F2YWlsYWJsZSht
X2lkLCB0aW1lLCBudW1iZXJPZkZyYW1lcywgc3RhcnRGcmFtZSwgZW5kRnJhbWUpLCAwKTsKKyAg
ICB9CisKKyAgICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSogc3RvcmFnZSkgZmlu
YWwgeworICAgICAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7CisgICAgICAgIGlmIChz
dG9yYWdlKQorICAgICAgICAgICAgc3RvcmFnZS0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVk
TWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CisgICAgICAgIG1fbWFuYWdlci5wcm9jZXNz
KCkuc2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlN0b3JhZ2VDaGFuZ2Vk
KG1faWQsIGhhbmRsZSwgbV9kZXNjcmlwdGlvbiwgbV9udW1iZXJPZkZyYW1lcyksIDApOworICAg
IH0KKworcHJvdGVjdGVkOgorICAgIHVpbnQ2NF90IG1faWQ7CisgICAgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eSYgbV9tYW5hZ2VyOworICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBt
X3NvdXJjZTsKKyAgICBDQVJpbmdCdWZmZXIgbV9yaW5nQnVmZmVyOworICAgIENBQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uIHsgfTsKKyAgICBpbnQ2NF90IG1fbnVtYmVyT2ZG
cmFtZXMgeyAwIH07Cit9OworCitVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5KFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcykKKyAgICA6IG1f
cHJvY2Vzcyhwcm9jZXNzKQoreworICAgIG1fcHJvY2Vzcy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVz
c2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgKnRoaXMpOworfQorCitVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Ojp+VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eSgpCit7CisgICAgbV9wcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVh
dGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQs
IGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50c0RhdGEm
IGNvbnN0cmFpbnRzRGF0YSwgYm9vbCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJh
aW50cykKK3sKKyAgICBhdXRvIGNvbnN0cmFpbnRzID0gTWVkaWFDb25zdHJhaW50c0ltcGw6OmNy
ZWF0ZShjb25zdHJhaW50c0RhdGEpOworICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBz
b3VyY2UgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5kZWZhdWx0QXVk
aW9GYWN0b3J5KCktPmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJh
aW50cyhkZXZpY2UsIGNvbnN0cmFpbnRzLnB0cigpLCBpbnZhbGlkQ29uc3RyYWludHMpOworICAg
IHN1Y2NlZWRlZCA9ICEhc291cmNlOworICAgIAorICAgIGlmIChzb3VyY2UpCisgICAgICAgIG1f
cHJveGllcy5zZXQoaWQsIHN0ZDo6bWFrZV91bmlxdWU8U291cmNlUHJveHk+KGlkLCAqdGhpcywg
c291cmNlLnJlbGVhc2VOb25OdWxsKCkpKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjpzdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCit7CisgICAgYXV0byBp
dGVyID0gbV9wcm94aWVzLmZpbmQoaWQpOworICAgIGlmIChpdGVyICE9IG1fcHJveGllcy5lbmQo
KSkKKyAgICAgICAgaXRlci0+dmFsdWUtPnNvdXJjZSgpLnN0YXJ0UHJvZHVjaW5nRGF0YSgpOwor
fQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnN0b3BQcm9kdWNpbmdEYXRh
KHVpbnQ2NF90IGlkKQoreworICAgIGF1dG8gaXRlciA9IG1fcHJveGllcy5maW5kKGlkKTsKKyAg
ICBpZiAoaXRlciAhPSBtX3Byb3hpZXMuZW5kKCkpCisgICAgICAgIGl0ZXItPnZhbHVlLT5zb3Vy
Y2UoKS5zdG9wUHJvZHVjaW5nRGF0YSgpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODExMzIxZGJhY2EwNDc1ZWQ0NzlmMmJiZmJiMzVlNTY2
NGQ4ZjZkMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJl
Y2VpdmVyLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2Vz
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBTaGFyZWRNZW1vcnk7CitjbGFzcyBXZWJQcm9jZXNzUHJveHk7
CisKK2NsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkgOiBwcml2YXRlIElQQzo6TWVz
c2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
KFdlYlByb2Nlc3NQcm94eSYpOworICAgIH5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCk7
CisKKyAgICBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX3Byb2Nl
c3M7IH0KKworcHJpdmF0ZToKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7
CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpE
ZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBmaW5hbDsKKworICAgIHZv
aWQgY3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2
NF90IGlkLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVk
aWFDb25zdHJhaW50c0RhdGEmLCBib29sJiBzdWNjZWVkZWQsIFN0cmluZyYgaW52YWxpZENvbnN0
cmFpbnRzKTsKKyAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CisgICAgdm9p
ZCBzdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CisKKyAgICBjbGFzcyBTb3VyY2VQcm94eTsK
KyAgICBmcmllbmQgY2xhc3MgU291cmNlUHJveHk7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgc3Rk
Ojp1bmlxdWVfcHRyPFNvdXJjZVByb3h5Pj4gbV9wcm94aWVzOworICAgIFdlYlByb2Nlc3NQcm94
eSYgbV9wcm9jZXNzOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzRiOGNiYjdiOGE2OWI3M2IzOTdhOWU5
ZDJiY2MwZTcwYjEzMTE1ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0w
LDAgKzEsMjggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
IyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21lc3Nh
Z2VzIC0+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkgeworICAgIENyZWF0ZU1lZGlhU291
cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgV2ViQ29yZTo6
Q2FwdHVyZURldmljZSBkZXZpY2UsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0
YSBjb25zdHJhaW50cykgLT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50
cykKKyAgICBTdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCisgICAgU3RvcFByb2R1Y2lu
Z0RhdGEodWludDY0X3QgaWQpCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCmluZGV4IDg3MzhmMDcwNjM3ZjQ5MGYxZjA4
NmMwOTliOTM3NGU3NDBlY2M3ZWUuLmY0NzNiNWQ4MTIxOGViZjJmMDJhOWFmZmZiYWE1ZTE0OTk5
YjhhZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9j
ZXNzUG9vbENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUG9vbENvY29hLm1tCkBAIC0yNTgsNiArMjU4LDggQEAgdm9pZCBXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzJgogICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBhbmQgcmVsYXRlZCBwYXJhbWV0ZXIgd2hl
biA8cmRhcjovL3Byb2JsZW0vMjk0NDgzNjg+IGlzIGZpeGVkLgogICAgIGlmIChtZWRpYVN0cmVh
bUVuYWJsZWQgfHwgd2ViUlRDRW5hYmxlZCkKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlSGFuZGxlRm9yR2VuZXJpY0V4dGVuc2lvbigiY29tLmFwcGxlLndlYmtpdC5taWNyb3Bob25l
IiwgcGFyYW1ldGVycy5hdWRpb0NhcHR1cmVFeHRlbnNpb25IYW5kbGUpOworCisgICAgcGFyYW1l
dGVycy5zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyA9IG1fZGVmYXVsdFBhZ2VHcm91cC0+
cHJlZmVyZW5jZXMoKS5zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcygpOwogI2VuZGlmCiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXgg
NWZmNjRkNjQ4YzRiNzg0MjVmZDkxMjcwNjM0N2YyODc4Zjk0ZTUwMC4uY2QxZGNkN2Q1NmVjNjc3
ZDI0Yzk3OTk2Zjc4ZDRiZDEwMjU3ZDU5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJUZXh0Q2hl
Y2tlci5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKICNpbmNsdWRlICJVc2VyRGF0
YS5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRl
ICJXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmgiCiAjaW5jbHVkZSAiV2ViSWNvbkRhdGFiYXNlLmgi
CiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yVXRpbGl0aWVzLmgiCkBAIC0xMDQsOSArMTA1LDE0IEBA
IFdlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNz
UG9vbCwgV2Vic2l0ZURhdGFTdG9yZSoKICAgICAsIG1faXNSZXNwb25zaXZlKE5vT3JNYXliZTo6
TWF5YmUpCiAgICAgLCBtX3Zpc2libGVQYWdlQ291bnRlcihbdGhpc10oUmVmQ291bnRlckV2ZW50
KSB7IHVwZGF0ZUJhY2tncm91bmRSZXNwb25zaXZlbmVzc1RpbWVyKCk7IH0pCiAgICAgLCBtX3dl
YnNpdGVEYXRhU3RvcmUod2Vic2l0ZURhdGFTdG9yZSkKKyNpZiBQTEFURk9STShDT0NPQSkgJiYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICAsIG1fdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eShzdGQ6Om1ha2VfdW5pcXVlPFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk+KCp0aGlzKSkK
KyNlbmRpZgogewogICAgIFdlYlBhc3RlYm9hcmRQcm94eTo6c2luZ2xldG9uKCkuYWRkV2ViUHJv
Y2Vzc1Byb3h5KCp0aGlzKTsKIAorCisKICAgICBjb25uZWN0KCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBmNWU2MWFhMDAxODA2Nzc0ODJh
ZjM3MDdkY2JkYjE5OTUxN2ZhZjZhLi5iMzI4ODE1Y2YxNjQyN2Y4YWM2ZGQ2NjZmM2E5NTcyZGFh
NzFjOTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBA
IC01Niw2ICs1Niw3IEBAIHN0cnVjdCBQbHVnaW5JbmZvOwogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IGNsYXNzIE5ldHdvcmtQcm9jZXNzUHJveHk7CitjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0SXRlbTsKIGNsYXNzIFdlYlBhZ2VHcm91
cDsKIGNsYXNzIFdlYlByb2Nlc3NQb29sOwpAQCAtMjczLDYgKzI3NCwxMCBAQCBwcml2YXRlOgog
ICAgIFJlZlB0cjxXZWJzaXRlRGF0YVN0b3JlPiBtX3dlYnNpdGVEYXRhU3RvcmU7CiAKICAgICBi
b29sIG1faXNVbmRlck1lbW9yeVByZXNzdXJlIHsgZmFsc2UgfTsKKworI2lmIFBMQVRGT1JNKENP
Q09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5PiBtX3VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7Cisj
ZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDYyNjc3Zjg3YTVlZDY1MjAx
Njg3M2ZhM2VmMTIwMjVhMzUxYWU0ZTAuLjZkZmM3Y2Y5OTExNzY0MGY0NmI2N2FhNDBkZGRiYTNm
MmI1ZDljNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTE4NzksMTEgKzE4NzksMTggQEAKIAkJQ0QwMDNBNTMxOUQ0OUI1RDAw
NUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMDAzQTUxMTlENDlCNUQwMDVBQkNFMCAvKiBX
ZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmggKi87IH07CiAJCUNEMTlBMjZEMUExM0U4MkEwMDhE
NjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5QTI2OTFBMTNFODIwMDA4RDY1MEUgLyog
V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwICovOyB9OwogCQlDRDE5QTI2RTFBMTNFODM0
MDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTlBMjZBMUExM0U4MjEwMDhENjUwRSAv
KiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovOyB9OworCQlDRDQ5MUIwNzFFNzBEMDVG
MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0OTFCMDUxRTcwRDA1RjAwMDA5MDY2IC8q
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJQ0Q0OTFCMDgxRTcwRDA1RjAw
MDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ5MUIwNjFFNzBEMDVGMDAwMDkwNjYgLyogVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCAqLzsgfTsKKwkJQ0Q0OTFCMEQxRTczMkU0RDAwMDA5MDY2
IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENDkxQjBCMUU3MzJFNEQwMDAw
OTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07
CisJCUNENDkxQjBFMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RDQ5MUIwQzFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdl
cy5oICovOyB9OworCQlDRDQ5MUIxMjFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDQ5MUIxMDFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5jcHAgKi87IH07CisJCUNENDkxQjEzMUU3MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDQ5MUIxMTFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5oICovOyB9OworCQlDRDQ5MUIxNzFFNzM1MjU1MDAwMDkwNjYgLyogVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ5MUIxNTFFNzM1MjU1MDAwMDkw
NjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87
IH07CisJCUNENDkxQjE4MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENENDkxQjE2MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5TWVzc2FnZXMuaCAqLzsgfTsKIAkJQ0Q0QjREOUMxRTc2NUUwMDAwRDI3MDkyIC8qIFNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENENEI0RDlBMUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZS5jcHAgKi87IH07CiAJCUNENEI0RDlEMUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFy
ZWRSaW5nQnVmZmVyU3RvcmFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0Q0QjREOUIxRTc2NUUwMDAwRDI3MDkyIC8qIFNoYXJlZFJpbmdCdWZmZXJT
dG9yYWdlLmggKi87IH07CiAJCUNENUM2NkEwMTM0QjlEMzgwMDRGRTJBOCAvKiBJbmplY3RlZEJ1
bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENENUM2NjlFMTM0QjlEMzYwMDRGRTJBOCAvKiBJbmplY3RlZEJ1
bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcCAqLzsgfTsKIAkJQ0Q1QzY2QTExMzRCOUQzODAw
NEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENUM2NjlGMTM0QjlEMzcwMDRG
RTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmggKi87IH07Ci0JCUNE
NjE3ODE0MUU2REU5QTAwMEZEQTU3RCAvKiBXZWJVc2VyTWVkaWFDbGllbnRNYWMubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDYxNzgxMjFFNkRFOUEw
MDBGREE1N0QgLyogV2ViVXNlck1lZGlhQ2xpZW50TWFjLm1tICovOyB9OwogCQlDRDZGNzVGNDEz
MUI2NkQwMDBENkIyMUUgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDczQkEzRTEzMUEyRThBMDBF
RURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAgKi87IH07CiAJCUNENzNCQTQ3
MTMxQUNDOUEwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
NzNCQTQ1MTMxQUNDODgwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJQ0Q3M0JBNEUxMzFBQ0RCNzAwRUVERUQyIC8qIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENzNCQTQ4MTMxQUNEOEUwMEVFREVEMiAvKiBXZWJG
dWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CkBAIC00MTY5LDExICs0
MTc2LDIwIEBACiAJCUNEMDAzQTUxMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3Jh
Z2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYk1lZGlhS2V5
U3RvcmFnZU1hbmFnZXIuaDsgcGF0aCA9IE1lZGlhQ2FjaGUvV2ViTWVkaWFLZXlTdG9yYWdlTWFu
YWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDE5QTI2OTFBMTNFODIwMDA4
RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDE5QTI2QTFBMTNFODIxMDA4RDY1MEUgLyogV2Vi
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0Q0OTFCMDUxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFCMDYxRTcw
RDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUNENDkxQjBBMUU3MzJEMTIwMDAwOTA2NiAvKiBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFCMEIxRTczMkU0
RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0
OTFCMEMxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ5MUIxMDFFNzM0
ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmNwcDsgcGF0aCA9IC4uL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ5MUIxMTFFNzM0ODIxMDAwMDkwNjYgLyog
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmg7IHBhdGggPSAuLi9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNENDkxQjE0MUU3MzQ5RjMwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgbmFtZSA9IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW47IHBhdGggPSAuLi9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ5MUIxNTFFNzM1MjU1MDAw
MDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQ0Q0OTFCMTYxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0Q0QjREOUExRTc2NUUwMDAwRDI3MDkyIC8qIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJlZFJpbmdCdWZmZXJT
dG9yYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q0QjREOUIxRTc2NUUw
MDAwRDI3MDkyIC8qIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNENUM2NjlFMTM0QjlEMzYwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRs
ZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDRDVDNjY5RjEzNEI5RDM3MDA0RkUyQTggLyogSW5qZWN0ZWRC
dW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUNENjE3ODEyMUU2REU5QTAwMEZEQTU3RCAvKiBXZWJVc2VyTWVkaWFD
bGllbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJV
c2VyTWVkaWFDbGllbnRNYWMubW07IHBhdGggPSBjb2NvYS9XZWJVc2VyTWVkaWFDbGllbnRNYWMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENzNCQTM3MTMxQTI5RkUwMEVFREVE
MiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBXZWJGdWxsU2NyZWVuTWFuYWdlci5jcHA7IHBhdGggPSBGdWxsU2NyZWVuL1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q3
M0JBMzgxMzFBMjlGRTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmg7IHBhdGggPSBG
dWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNENzNCQTM5MTMxQTI5RkUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5t
ZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJGdWxsU2NyZWVuTWFuYWdlci5t
ZXNzYWdlcy5pbjsgcGF0aCA9IEZ1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIubWVzc2Fn
ZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MjgxLDYgKzYyOTcsOSBAQAog
CQk3QzZFNzBGODE4QjJENDdFMDBGMjRFMkUgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUNENDkxQjA1MUU3MEQwNUYwMDAwOTA2NiAvKiBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgKi8sCisJCQkJQ0Q0OTFCMDYxRTcwRDA1RjAwMDA5
MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggKi8sCisJCQkJQ0Q0OTFCMEExRTczMkQx
MjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJ
CUNEQTI5QTE5MUNCREJGNDEwMDkwMUNDRiAvKiBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLmgg
Ki8sCiAJCQkJQ0RBMjlBMUMxQ0JEQkY1QjAwOTAxQ0NGIC8qIFdlYlBsYXliYWNrU2Vzc2lvbk1h
bmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJQ0RBMjlBMTgxQ0JEQkY0MTAwOTAxQ0NGIC8qIFdl
YlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIubW0gKi8sCkBAIC03NDQ4LDYgKzc0NjcsOSBAQAogCQkJ
CTFBQTQxN0VEMTJDMDBEODcwMDJCRTY3QiAvKiBUZXh0Q2hlY2tlck1hYy5tbSAqLywKIAkJCQkx
QUYwNUQ4NTE0Njg4MzQ4MDA4QjFFODEgLyogVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQ
cm94eS5oICovLAogCQkJCTFBRjA1RDg0MTQ2ODgzNDgwMDhCMUU4MSAvKiBUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYVByb3h5Lm1tICovLAorCQkJCUNENDkxQjEwMUU3MzQ4MjEwMDAwOTA2
NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCAqLywKKwkJCQlDRDQ5MUIxMTFF
NzM0ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oICovLAorCQkJ
CUNENDkxQjE0MUU3MzQ5RjMwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluICovLAogCQkJCTJEMTI1QzVEMTg1N0VBMDUwMDNCQTNDQiAvKiBWaWV3R2Vz
dHVyZUNvbnRyb2xsZXJNYWMubW0gKi8sCiAJCQkJMkQ2Q0QxMTcxODkwNThBNTAwRTVBNEEwIC8q
IFZpZXdTbmFwc2hvdFN0b3JlLmggKi8sCiAJCQkJMkQ2Q0QxMTgxODkwNThBNTAwRTVBNEEwIC8q
IFZpZXdTbmFwc2hvdFN0b3JlLm1tICovLApAQCAtNzY5Myw2ICs3NzE1LDEwIEBACiAJCQkJMUEz
MzRERUMxNkRFOEY4ODAwNkE4RTM4IC8qIFN0b3JhZ2VBcmVhTWFwTWVzc2FnZXMuaCAqLywKIAkJ
CQkxQUIzMUE5NDE2QkM2ODgxMDBGNkRCQzkgLyogU3RvcmFnZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwICovLAogCQkJCTFBQjMxQTk1MTZCQzY4ODEwMEY2REJDOSAvKiBTdG9yYWdlTWFuYWdl
ck1lc3NhZ2VzLmggKi8sCisJCQkJQ0Q0OTFCMTUxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUNENDkxQjE2
MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMu
aCAqLywKKwkJCQlDRDQ5MUIwQjFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUNENDkxQjBDMUU3MzJFNEQwMDAwOTA2
NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmggKi8sCiAJCQkJMkQxQjVENUIx
ODU4NjlDODAwNkM2NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8sCiAJCQkJMkQxQjVENUMxODU4NjlDODAwNkM2NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJv
bGxlck1lc3NhZ2VzLmggKi8sCiAJCQkJMkQ4MTlCOUYxODYyODAwRTAwMUYwM0QxIC8qIFZpZXdH
ZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtNzgyNCw3
ICs3ODUwLDYgQEAKIAkJQ0Q2MTc4MTExRTZERTk4MDAwRkRBNTdEIC8qIGNvY29hICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQlDRDYxNzgxMjFFNkRFOUEw
MDBGREE1N0QgLyogV2ViVXNlck1lZGlhQ2xpZW50TWFjLm1tICovLAogCQkJKTsKIAkJCW5hbWUg
PSBjb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC04MDQ1LDYgKzgwNzAsNyBA
QAogCQkJCTdDMjQxMzAzMUFBQ0ZBNzUwMEE1OEMxNSAvKiBfV0tVc2VyQ29udGVudEV4dGVuc2lv
blN0b3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzI0MTMwNTFBQUNGQTlDMDBBNThDMTUgLyog
X1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk3Q0EzNzkzRTFBQzM3OEIzMDA3OURDMzcgLyogX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9y
ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUNENDkxQjEzMUU3MzQ4MjEwMDAwOTA2NiAv
KiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQk3Qzg5
RDJCQTFBNkIwRjJDMDAzQTVGREUgLyogX1dLVXNlckNvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTdDODlEMkJDMUE2QjBGNUIwMDNBNUZERSAvKiBfV0tVc2VyQ29udGVudEZpbHRl
ckludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODY1MzFFNzIzNUFBMDA5NEZEQzgg
LyogX1dLVXNlckNvbnRlbnRGaWx0ZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTgwNTIs
NiArODA3OCw3IEBACiAJCQkJN0M4ODJERjkxQzdFOTk2RjAwNkJGNzMxIC8qIF9XS1VzZXJDb250
ZW50V29ybGRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NCMzY1QUExRDMxREI3MDAw
NzE1OENBIC8qIF9XS1VzZXJJbml0aWF0ZWRBY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTdD
QjM2NUFEMUQzMURDMTAwMDcxNThDQSAvKiBfV0tVc2VySW5pdGlhdGVkQWN0aW9uSW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovLAorCQkJCUNENDkxQjBFMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDg3ODYxRDFC
REI1NEJGMDBEMDJBQkIgLyogX1dLVXNlclN0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTJEODc4NjIwMUJEQjU3RjUwMEQwMkFCQiAvKiBfV0tVc2VyU3R5bGVTaGVldEludGVybmFsLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTgxQjM4MTE4QkQ2NkFEMDAwN0ZEQUMgLyogX1dLVmlzaXRl
ZExpbmtTdG9yZS5oIGluIEhlYWRlcnMgKi8sCkBAIC04MDk3LDYgKzgxMjQsNyBAQAogCQkJCTFB
MjQ2NEYzMTg5MUU0NTEwMDIzNEM1QiAvKiBBUElMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTdDRDNBNDgzMUE1RDAyRkEwMDk2MjNCOCAvKiBBUElOYXZpZ2F0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyREY5RUVFQzFBNzgzNkVFMDBCNkNGQkUgLyogQVBJTmF2aWdhdGlvbkFj
dGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q0OTFCMDgxRTcwRDA1RjAwMDA5MDY2IC8qIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREQ5RUIyRDFBNkYw
MTI1MDBCQjEyNjcgLyogQVBJTmF2aWdhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNGNjlGQTIxMTc2RDAxNDAwNDcxQTUyIC8qIEFQSU5hdmlnYXRpb25EYXRhLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkyREY5RUVFRTFBNzg2RUFEMDBCNkNGQkUgLyogQVBJTmF2aWdhdGlvblJlc3Bv
bnNlLmggaW4gSGVhZGVycyAqLywKQEAgLTg0MjIsNiArODQ1MCw3IEBACiAJCQkJRTE4RTY5MEMx
NjlCNTYzRjAwOUI2NjcwIC8qIFNlY0l0ZW1TaGltUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUUxOEU2OTE4MTY5QjY2N0IwMDlCNjY3MCAvKiBTZWNJdGVtU2hpbVByb3h5TWVzc2FnZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCTUxNEQ5RjU3MTkxMTlEMzUwMDAwNjNBNyAvKiBTZXJ2aWNlc0Nv
bnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUNENDkxQjE4MUU3MzUyNTUwMDAwOTA2NiAv
KiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBRkRFNjVBMTk1NEE0MkIwMEM0OEZGQSAvKiBTZXNzaW9uU3RhdGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBMDAyRDQ5MTk2QjM0NUQwMEI5QUQ0NCAvKiBTZXNzaW9uU3RhdGVDb2Rpbmcu
aCBpbiBIZWFkZXJzICovLAogCQkJCTc1M0UzRTBFMTg4NzM5ODkwMDE4ODQ5NiAvKiBTZXNzaW9u
VHJhY2tlci5oIGluIEhlYWRlcnMgKi8sCkBAIC05NjAxLDYgKzk2MzAsNyBAQAogCQkJCTM3M0Qx
MjIyMThBNDczMDEwMDY2RDlDQyAvKiBfV0tGcmFtZUhhbmRsZS5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTkzQTg4QjM5MUJDNzBGM0YwMEFCQTVDMiAvKiBfV0tIaXRUZXN0UmVzdWx0Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTEwRjU5MTIxRERFMjk3NzAwNDEyRkY1IC8qIF9XS0xpbmtJY29uUGFy
YW1ldGVycy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNENDkxQjBEMUU3MzJFNEQwMDAwOTA2NiAv
KiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBMTE4QTlGMjE5MDhCOEVBMDBGN0M5MkIgLyogX1dLTlNGaWxlTWFuYWdlckV4dHJh
cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBNDNFODI5MTg4RjNDREMwMDlFNEQzMCAvKiBfV0tQ
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTlFMzI4RTE4
MjE2NUE5MDBGNUQwNEMgLyogX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlLm1tIGluIFNvdXJjZXMg
Ki8sCkBAIC05NjM3LDYgKzk2NjcsNyBAQAogCQkJCTUxRDEyNDkxMUU3NEJGM0MwMDJCMjgyMCAv
KiBBUElIVFRQQ29va2llU3RvcmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NEM0E0ODIxQTVE
MDJGQTAwOTYyM0I4IC8qIEFQSU5hdmlnYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNG
NjlGQTMxMTc2RDAxNDAwNDcxQTUyIC8qIEFQSU5hdmlnYXRpb25EYXRhLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUNENDkxQjE3MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI2MzQwM0Y5
MTQ5MTBENTcwMDEwNzBCNSAvKiBBUElPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc4
RTFBM0QxODFFRDZGRjAwMzEwMDdBIC8qIEFQSU9iamVjdC5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUJDODU3RkI2MTJCODMwRTYwMEVERUIyRSAvKiBBUElPcGVuUGFuZWxQYXJhbWV0ZXJzLmNwcCBp
biBTb3VyY2VzICovLApAQCAtOTY1OSw2ICs5NjkwLDcgQEAKIAkJCQkxQTM2MzVBOTFBMzE0NEEz
MDBFRDYxOTcgLyogQVBJV2Vic2l0ZURhdGFTdG9yZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
QTM2MzVBRDFBMzE0NUU1MDBFRDYxOTcgLyogQVBJV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNUNCMjM3OTExREYwRTJFNjAwMTE3QUEzIC8qIEFQSVdlYnNpdGVQ
b2xpY2llcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDQ5MUIxMjFFNzM0ODIxMDAwMDkwNjYg
LyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
QTY1NjNFNDFCN0E4QzUwMDA5Q0Y3ODcgLyogQVBJV2luZG93RmVhdHVyZXMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUFENEMxOTIxQjM5RjMzMjAwQUJDMjhFIC8qIEFwcGxpY2F0aW9uU3RhdGVU
cmFja2VyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEzRDYxMDUxM0E3RjAzQTAwRjk1RDRFIC8q
IEFyZ3VtZW50Q29kZXJzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTAxODYsNiArMTAyMTgsNyBA
QAogCQkJCTdDNDY5NEQwMUE1MUUzNjgwMEFENTg0NSAvKiBXZWJQYXN0ZWJvYXJkUHJveHkuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJN0M0Njk0Q0MxQTRCNTEwQTAwQUQ1ODQ1IC8qIFdlYlBhc3Rl
Ym9hcmRQcm94eUNvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M0Njk0QzkxQTRCNEVBMTAw
QUQ1ODQ1IC8qIFdlYlBhc3RlYm9hcmRQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlDRDQ5MUIwNzFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFCMUY3NzQxRDFCMkY4QTAwN0M5QkQxIC8q
IFdlYlBheW1lbnRDb29yZGluYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUIxRjc5NjFE
MUIzNjEzMDA3QzlCRDEgLyogV2ViUGF5bWVudENvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFBQjFGNzhCMUQxQjMzNTUwMDdDOUJEMSAvKiBXZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlh
Q2xpZW50LmNwcAppbmRleCBhYWRlZDM0NGE3NmFlYTZhYjQ3MTYyZDg5NjhjY2IyYzVmMDUwYzY3
Li4zNjIyMDJlMGVkNjBlNjU3NzRmZmM4NzA3MGNkNTE3M2RiNWNiODZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJV
c2VyTWVkaWFDbGllbnQuY3BwCkBAIC0zMyw3ICszMyw2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
V2ViVXNlck1lZGlhQ2xpZW50OjpXZWJVc2VyTWVkaWFDbGllbnQoV2ViUGFnZSYgcGFnZSkKICAg
ICA6IG1fcGFnZShwYWdlKQogewotICAgIGluaXRpYWxpemVGYWN0b3JpZXMoKTsKIH0KIAogdm9p
ZCBXZWJVc2VyTWVkaWFDbGllbnQ6OnBhZ2VEZXN0cm95ZWQoKQpAQCAtNjEsMTMgKzYwLDYgQEAg
dm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OmNhbmNlbE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVx
dWVzdChNZWRpYURldmljZXNFbnVtZXIKICAgICBtX3BhZ2UudXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyKCkuY2FuY2VsTWVkaWFEZXZpY2VzRW51bWVyYXRpb24ocmVxdWVzdCk7CiB9
CiAKLSNpZiAhUExBVEZPUk0oQ09DT0EpCi12b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6aW5pdGlh
bGl6ZUZhY3RvcmllcygpCi17Ci0KLX0KLSNlbmRpZgotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ7
CiAKICNlbmRpZiAvLyBNRURJQV9TVFJFQU0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvY29jb2EvV2ViVXNlck1lZGlhQ2xpZW50TWFjLm1tIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9jb2NvYS9XZWJVc2VyTWVk
aWFDbGllbnRNYWMubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE4ZGYyZjEwMTli
YTg2ZjZmYTdhMzYxNjA0YTBlYTI3NmJkNzVjMWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9jb2NvYS9XZWJVc2VyTWVkaWFDbGllbnRNYWMubW0KKysrIC9kZXYvbnVsbApAQCAtMSw2
MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldl
YlVzZXJNZWRpYUNsaWVudC5oIgotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgUExBVEZP
Uk0oQ09DT0EpCi0KLSNpbXBvcnQgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5o
PgotI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViVXNlck1lZGlhQ2xpZW50QXVk
aW9GYWN0b3J5IGZpbmFsIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0
b3J5IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgV2ViVXNlck1lZGlhQ2xpZW50QXVkaW9GYWN0b3J5
JiBzaW5nbGV0b24oKQotICAgIHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFdlYlVz
ZXJNZWRpYUNsaWVudEF1ZGlvRmFjdG9yeT4gZmFjdG9yeTsKLSAgICAgICAgcmV0dXJuIGZhY3Rv
cnk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBj
cmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoY29uc3QgQ2Fw
dHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywg
U3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMpIGZpbmFsIHsKLSAgICAgICAgYXV0byogZmFjdG9y
eSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmRlZmF1bHRBdWRpb0Zh
Y3RvcnkoKTsKLSAgICAgICAgcmV0dXJuIGZhY3RvcnkgPyBmYWN0b3J5LT5jcmVhdGVNZWRpYVNv
dXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoZGV2aWNlLCBjb25zdHJhaW50cywg
aW52YWxpZENvbnN0cmFpbnRzKSA6IG51bGxwdHI7Ci0gICAgfQotfTsKLQotdm9pZCBXZWJVc2Vy
TWVkaWFDbGllbnQ6OmluaXRpYWxpemVGYWN0b3JpZXMoKQotewotICAgIHN0YXRpYyBkaXNwYXRj
aF9vbmNlX3Qgb25jZVRva2VuOwotICAgIGRpc3BhdGNoX29uY2UoJm9uY2VUb2tlbiwgXiB7Ci0g
ICAgICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnNl
dEF1ZGlvRmFjdG9yeShXZWJVc2VyTWVkaWFDbGllbnRBdWRpb0ZhY3Rvcnk6OnNpbmdsZXRvbigp
KTsKLSAgICB9KTsKLX0KLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCmluZGV4IDZhNDFiNGNmMDczYzhiMDIyMTQxYWFjNWQzZjUzOThhOTk5NTA3
ODcuLmExZWE5NmQ3OWM4ZjlhZjI1MDIzMmVjMWYwZDU5MGM2ZTE4NjIzNDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1
ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc0RhdGEuaCIKICNpbmNs
dWRlICJVc2VyRGF0YS5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgiCiAj
aW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oIgogI2luY2x1ZGUgIldlYkNvbm5l
Y3Rpb25Ub1VJUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXIuaCIKQEAgLTE5
MSw2ICsxOTIsMTAgQEAgV2ViUHJvY2Vzczo6V2ViUHJvY2VzcygpCiAgICAgYWRkU3VwcGxlbWVu
dDxXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyPigpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorICAgIGFkZFN1cHBsZW1lbnQ8VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI+KCk7
CisjZW5kaWYKKwogICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmFkZChTZXNzaW9u
SUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPigpKTsKIAog
ICAgIFJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWRPYnNlcnZlcigpLnNldFN0YXRpc3RpY3NT
dG9yZShtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jb3B5UmVmKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NjIzN2QwZWI5ZGMxZmI0MTY0MzdmNzEyOGIyMzQxNzkz
YzE4ZDI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTAsMCArMSwyMjYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisj
aW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisj
aW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NhcHR1cmVEZXZpY2UuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL01lZGlhQ29uc3RyYWludHNJbXBsLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxp
c3QuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitzdGF0aWMgdWludDY0X3QgbmV4dFNlc3Npb25JRCgpCit7CisgICAgc3RhdGljIHVpbnQ2NF90
IG5leHRJRCA9IDA7CisgICAgcmV0dXJuICsrbmV4dElEOworfQorCitjbGFzcyBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlcjo6U291cmNlIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2UgeworcHVi
bGljOgorICAgIFNvdXJjZShjb25zdCBTdHJpbmcmIHNvdXJjZUlELCBUeXBlIHR5cGUsIGNvbnN0
IFN0cmluZyYgbmFtZSwgdWludDY0X3QgaWQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5h
Z2VyKQorICAgICAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2Uoc291cmNlSUQsIHR5cGUsIG5hbWUp
CisgICAgICAgICwgbV9pZChpZCkKKyAgICAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKKyAgICAg
ICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4o
bnVsbHB0cikpCisgICAgeworICAgIH0KKworICAgIH5Tb3VyY2UoKQorICAgIHsKKyAgICAgICAg
c3RvcmFnZSgpLmludmFsaWRhdGUoKTsKKyAgICB9CisKKyAgICBTaGFyZWRSaW5nQnVmZmVyU3Rv
cmFnZSYgc3RvcmFnZSgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFNoYXJlZFJpbmdCdWZmZXJTdG9y
YWdlJj4obV9yaW5nQnVmZmVyLnN0b3JhZ2UoKSk7IH0KKyAgICBSZWZQdHI8UmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9jYXBhYmlsaXRpZXM7IH0KKyAgICB2b2lkIHNldENhcGFiaWxpdGllcyhSZWZQdHI8UmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKSB7IG1fY2FwYWJpbGl0aWVz
ID0gY2FwYWJpbGl0aWVzOyB9CisKKyAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MmIHNldHRpbmdzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zZXR0aW5nczsgfQorICAgIHZv
aWQgc2V0U2V0dGluZ3MoY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5n
cykKKyAgICB7CisgICAgICAgIG1fc2V0dGluZ3MgPSBzZXR0aW5nczsKKyAgICAgICAgc2V0dGlu
Z3NEaWRDaGFuZ2UoKTsKKyAgICB9CisKKyAgICBjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24mIGRlc2NyaXB0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZXNjcmlwdGlvbjsgfQorICAgIHZv
aWQgc2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYgaGFuZGxlLCBjb25zdCBX
ZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBu
dW1iZXJPZkZyYW1lcykKKyAgICB7CisgICAgICAgIG1fZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlv
bjsKKyAgICAgICAgaWYgKGhhbmRsZS5pc051bGwoKSkgeworICAgICAgICAgICAgbV9yaW5nQnVm
ZmVyLmRlYWxsb2NhdGUoKTsKKyAgICAgICAgICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25seShmYWxz
ZSk7CisgICAgICAgICAgICBzdG9yYWdlKCkuc2V0U3RvcmFnZShudWxscHRyKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1l
bW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9u
OjpSZWFkT25seSk7CisgICAgICAgIHN0b3JhZ2UoKS5zZXRTdG9yYWdlKFdURk1vdmUobWVtb3J5
KSk7CisgICAgICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25seSh0cnVlKTsKKworICAgICAgICBtX3Jp
bmdCdWZmZXIuYWxsb2NhdGUoZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAgICB9CisK
KyAgICB2b2lkIHNldFJpbmdCdWZmZXJGcmFtZUJvdW5kcyh1aW50NjRfdCBzdGFydEZyYW1lLCB1
aW50NjRfdCBlbmRGcmFtZSkKKyAgICB7CisgICAgICAgIG1fcmluZ0J1ZmZlci5zZXRDdXJyZW50
RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOworICAgIH0KKworICAgIHZvaWQgYXVk
aW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1l
cykKKyAgICB7CisgICAgICAgIFdlYkF1ZGlvQnVmZmVyTGlzdCBhdWRpb0RhdGEobV9kZXNjcmlw
dGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgICAgICBtX3JpbmdCdWZmZXIuZmV0Y2goYXVkaW9E
YXRhLmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOworCisgICAgICAg
IGZvciAoYXV0byogb2JzZXJ2ZXIgOiBvYnNlcnZlcnMoKSkKKyAgICAgICAgICAgIG9ic2VydmVy
LT5hdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgYXVkaW9EYXRhLCBtX2Rlc2NyaXB0aW9uLCBu
dW1iZXJPZkZyYW1lcyk7CisgICAgfQorCisgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBm
aW5hbCB7IG1fbWFuYWdlci5zdGFydFByb2R1Y2luZ0RhdGEobV9pZCk7IH0KKyAgICB2b2lkIHN0
b3BQcm9kdWNpbmdEYXRhKCkgZmluYWwgeyBtX21hbmFnZXIuc3RvcFByb2R1Y2luZ0RhdGEobV9p
ZCk7IH0KKworICAgIEF1ZGlvU291cmNlUHJvdmlkZXIqIGF1ZGlvU291cmNlUHJvdmlkZXIoKSBm
aW5hbCB7IHJldHVybiBudWxscHRyOyB9CisKK3ByaXZhdGU6CisgICAgLy8gUmVhbHRpbWVNZWRp
YVNvdXJjZQorICAgIHZvaWQgYmVnaW5Db25maWd1cmF0aW9uKCkgZmluYWwgeyB9CisgICAgdm9p
ZCBjb21taXRDb25maWd1cmF0aW9uKCkgZmluYWwgeyB9CisKKyAgICB1aW50NjRfdCBtX2lkOwor
ICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7CisgICAgUmVmUHRyPFJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOworICAgIFJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5ncyBtX3NldHRpbmdzOworICAgIENBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiBtX2Rlc2NyaXB0aW9uOworICAgIENBUmluZ0J1ZmZlciBtX3JpbmdCdWZmZXI7Cit9Owor
CitVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIoV2ViUHJv
Y2VzcyogcHJvY2VzcykKKyAgICA6IG1fcHJvY2VzcygqcHJvY2VzcykKK3sKKyAgICBtX3Byb2Nl
c3MuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7Cit9CisKK1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIoKQoreworICAgIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OnNpbmdsZXRvbigpLnVuc2V0QXVkaW9GYWN0b3J5KCp0aGlzKTsKKyAgICBtX3By
b2Nlc3MucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKK30KKworY29uc3QgY2hhciogVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICByZXR1cm4gIlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyIjsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6aW5p
dGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQor
eworICAgIGlmIChwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzKQorICAg
ICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5zZXRBdWRpb0ZhY3Rv
cnkoKnRoaXMpOworfQorCitSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJh
aW50cyhjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cykKK3sKKyAgICBpZiAoIWNv
bnN0cmFpbnRzKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHVpbnQ2NF90IGlkID0g
bmV4dFNlc3Npb25JRCgpOworICAgIE1lZGlhQ29uc3RyYWludHNEYXRhIGNvbnN0cmFpbnRzRGF0
YTsKKyAgICBjb25zdHJhaW50c0RhdGEubWFuZGF0b3J5Q29uc3RyYWludHMgPSBjb25zdHJhaW50
cy0+bWFuZGF0b3J5Q29uc3RyYWludHMoKTsKKyAgICBjb25zdHJhaW50c0RhdGEuYWR2YW5jZWRD
b25zdHJhaW50cyA9IGNvbnN0cmFpbnRzLT5hZHZhbmNlZENvbnN0cmFpbnRzKCk7CisgICAgY29u
c3RyYWludHNEYXRhLmlzVmFsaWQgPSBjb25zdHJhaW50cy0+aXNWYWxpZCgpOworICAgIGJvb2wg
c3VjY2VlZGVkOworCisgICAgbV9wcm9jZXNzLnNlbmRTeW5jKE1lc3NhZ2VzOjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRo
Q29uc3RyYWludHMoaWQsIGRldmljZSwgY29uc3RyYWludHNEYXRhKSwgTWVzc2FnZXM6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmlj
ZVdpdGhDb25zdHJhaW50czo6UmVwbHkoc3VjY2VlZGVkLCBpbnZhbGlkQ29uc3RyYWludHMpLCAw
KTsKKworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYobmV3IFNvdXJjZShTdHJpbmc6Om51bWJl
cihpZCksIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBkZXZpY2UubGFiZWwoKSwg
aWQsICp0aGlzKSk7CisgICAgbV9zb3VyY2VzLnNldChpZCwgc291cmNlKTsKKyAgICByZXR1cm4g
c291cmNlOworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VTdG9wcGVk
KHVpbnQ2NF90IGlkKQoreworICAgIEFTU0VSVChtX3NvdXJjZXMuY29udGFpbnMoaWQpKTsKKyAg
ICBtX3NvdXJjZXMuZ2V0KGlkKS0+c3RvcCgpOworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjpzb3VyY2VNdXRlZENoYW5nZWQodWludDY0X3QgaWQsIGJvb2wgbXV0ZWQpCit7Cisg
ICAgQVNTRVJUKG1fc291cmNlcy5jb250YWlucyhpZCkpOworICAgIG1fc291cmNlcy5nZXQoaWQp
LT5zZXRNdXRlZChtdXRlZCk7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNv
dXJjZUVuYWJsZWRDaGFuZ2VkKHVpbnQ2NF90IGlkLCBib29sIGVuYWJsZWQpCit7CisgICAgQVNT
RVJUKG1fc291cmNlcy5jb250YWlucyhpZCkpOworICAgIG1fc291cmNlcy5nZXQoaWQpLT5zZXRF
bmFibGVkKGVuYWJsZWQpOworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3Vy
Y2VTZXR0aW5nc0NoYW5nZWQodWludDY0X3QgaWQsIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VT
ZXR0aW5ncyYgc2V0dGluZ3MpCit7CisgICAgQVNTRVJUKG1fc291cmNlcy5jb250YWlucyhpZCkp
OworICAgIG1fc291cmNlcy5nZXQoaWQpLT5zZXRTZXR0aW5ncyhzZXR0aW5ncyk7Cit9CisKK3Zv
aWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN0b3JhZ2VDaGFuZ2VkKHVpbnQ2NF90IGlkLCBj
b25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYgaGFuZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykK
K3sKKyAgICBBU1NFUlQobV9zb3VyY2VzLmNvbnRhaW5zKGlkKSk7CisgICAgbV9zb3VyY2VzLmdl
dChpZCktPnNldFN0b3JhZ2UoaGFuZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOwor
fQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpyaW5nQnVmZmVyRnJhbWVCb3VuZHND
aGFuZ2VkKHVpbnQ2NF90IGlkLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFt
ZSkKK3sKKyAgICBBU1NFUlQobV9zb3VyY2VzLmNvbnRhaW5zKGlkKSk7CisgICAgbV9zb3VyY2Vz
LmdldChpZCktPnNldFJpbmdCdWZmZXJGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7
Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJs
ZSh1aW50NjRfdCBpZCwgTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1
aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKK3sKKyAgICBBU1NFUlQobV9z
b3VyY2VzLmNvbnRhaW5zKGlkKSk7CisgICAgYXV0byYgc291cmNlID0gKm1fc291cmNlcy5nZXQo
aWQpOworICAgIHNvdXJjZS5zZXRSaW5nQnVmZmVyRnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5k
RnJhbWUpOworICAgIHNvdXJjZS5hdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgbnVtYmVyT2ZG
cmFtZXMpOworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzdGFydFByb2R1Y2lu
Z0RhdGEodWludDY0X3QgaWQpCit7CisgICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlN0YXJ0UHJvZHVjaW5nRGF0YShpZCksIDApOworfQor
Cit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRf
dCBpZCkKK3sKKyAgICBtX3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eTo6U3RvcFByb2R1Y2luZ0RhdGEoaWQpLCAwKTsKK30KKworfQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YTMyNjY2MmE2Mzk3Njg3Mjg5YjU1NTU0MWNh
M2RmYmRhNjA3ZmNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCkBAIC0wLDAgKzEsODIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiU2hh
cmVkTWVtb3J5LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1N1cHBsZW1lbnQuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb247
Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBDcm9zc1Byb2Nlc3NSZWFsdGltZUF1
ZGlvU291cmNlOworY2xhc3MgV2ViUHJvY2VzczsKKworY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIgOiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VS
ZWNlaXZlciwgcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0
b3J5IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcihXZWJQ
cm9jZXNzKik7CisgICAgflVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKCk7CisKKyAgICBzdGF0aWMg
Y29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsKKworcHJpdmF0ZToKKyAgICAvLyBXZWJQcm9j
ZXNzU3VwcGxlbWVudAorICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzJikgZmluYWw7CisKKyAgICAvLyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlOjpGYWN0b3J5OgorICAgIFJlZlB0cjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBj
cmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoY29uc3QgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBT
dHJpbmcmKSBmaW5hbDsKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsK
KworICAgIC8vIE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcgorICAgIHZvaWQgc291
cmNlU3RvcHBlZCh1aW50NjRfdCBpZCk7CisgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQodWlu
dDY0X3QgaWQsIGJvb2wgbXV0ZWQpOworICAgIHZvaWQgc291cmNlRW5hYmxlZENoYW5nZWQodWlu
dDY0X3QgaWQsIGJvb2wgZW5hYmxlZCk7CisgICAgdm9pZCBzb3VyY2VTZXR0aW5nc0NoYW5nZWQo
dWludDY0X3QgaWQsIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYp
OworICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQodWludDY0X3QgaWQsIGNvbnN0IFNoYXJlZE1lbW9y
eTo6SGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWlu
dDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworICAgIHZvaWQgcmluZ0J1ZmZlckZyYW1lQm91bmRzQ2hh
bmdlZCh1aW50NjRfdCBpZCwgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUp
OworICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKHVpbnQ2NF90IGlkLCBNZWRpYVRpbWUs
IHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBl
bmRGcmFtZSk7CisKKyAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CisgICAg
dm9pZCBzdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CisKKyAgICBjbGFzcyBTb3VyY2U7Cisg
ICAgZnJpZW5kIGNsYXNzIFNvdXJjZTsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8U291
cmNlPj4gbV9zb3VyY2VzOworICAgIFdlYlByb2Nlc3MmIG1fcHJvY2VzczsKK307CisKK30KKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
ZWMwNTY1YzY4NjRhNDZiMDBlOWY4ZmI5MTBjMThjODllOWU0YTEzCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMxIEBACisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisj
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciB7CisgICAg
U291cmNlU3RvcHBlZCh1aW50NjRfdCBpZCkKKyAgICBTb3VyY2VNdXRlZENoYW5nZWQodWludDY0
X3QgaWQsIGJvb2wgbXV0ZWQpCisgICAgU291cmNlRW5hYmxlZENoYW5nZWQodWludDY0X3QgaWQs
IGJvb2wgZW5hYmxlZCkKKyAgICBTb3VyY2VTZXR0aW5nc0NoYW5nZWQodWludDY0X3QgaWQsIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncykKKyAgICBTdG9yYWdl
Q2hhbmdlZCh1aW50NjRfdCBpZCwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZSBzdG9yYWdl
SGFuZGxlLCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gZGVzY3JpcHRpb24sIHVp
bnQ2NF90IG51bWJlck9mRnJhbWVzKQorICAgIEF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh1aW50NjRf
dCBpZCwgTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBz
dGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304537</attachid>
            <date>2017-03-15 13:32:13 -0700</date>
            <delta_ts>2017-03-15 13:43:04 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-169609-20170315133213.patch</filename>
            <type>text/plain</type>
            <size>67453</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzOTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWIwYTBhN2E3ZmMyM2Jl
ZmIwYmFhOGI4MTMxNGIyN2M4YmIwYzM0MS4uY2I5YjdkNjJhM2FiMDY2M2I1ZGY0NmIwZGUwYjQy
NGMyMDg2OWMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTAzLTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIE9wdGlvbmFsbHkgY2FwdHVy
ZSBhdWRpbyBpbiB0aGUgVUlQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjk2MDkKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlz
dGVuc2VuLgorCisgICAgICAgIEV4cG9ydCBzb21lIHByZXZpb3VzbHkgdW4tZXhwb3J0ZWQgc3lt
Ym9scyBmcm9tIFdlYkNvcmUgZm9yIHVzZSBpbiBXZWJLaXQyLgorCisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1dl
YkF1ZGlvQnVmZmVyTGlzdC5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2UuaDoKKwogMjAxNy0wMy0xNSAgQW50b2luZSBRdWludCAgPGdyYW91dHNA
YXBwbGUuY29tPgogCiAgICAgICAgIFtNb2Rlcm4gTWVkaWEgQ29udHJvbHNdIEFsd2F5cyB1c2Ug
c2l4IGRpZ2l0cyB0byBkaXNwbGF5IHRpbWUgd2hlbiBvdmVyYWxsIG1lZGlhIGR1cmF0aW9uIGlz
IGFuIGhvdXIgb3IgbW9yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDEyMTU4MGE3NWNiZmFiZmY3ZjQ0NjIxZTYz
NTFiNDY2NzA2ZWY4NWUuLjEyNGEzZDUxOWI2NTVkZDE2ZGI5YWRmYTRlNGM4NTBhOWFkOWMyZWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4OSBAQAorMjAxNy0wMy0xNCAgSmVyIE5vYmxlICA8amVy
Lm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBPcHRpb25hbGx5IGNhcHR1cmUgYXVkaW8gaW4g
dGhlIFVJUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTY5NjA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKwor
ICAgICAgICBBZGQgYSBuZXcgY2xhc3MgcGFpciwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIvUHJv
eHksIHRvIGFsbG93IGEgUmVhbHRpbWVNZWRpYVNvdXJjZQorICAgICAgICByZXF1ZXN0ZWQgaW4g
YSBXZWJQcm9jZXNzIHRvIGJlIGNyZWF0ZWQgaW4gdGhlIFVJUHJvY2VzcyBhbmQgcHVzaCBpdHMg
YXVkaW8gZGF0YSBhY3Jvc3MgdGhlCisgICAgICAgIHByb2Nlc3MgYm91bmRhcnkgdG8gaXRzIGNs
aWVudHMgaW4gdGhlIFdlYlByb2Nlc3MuIEJlY2F1c2UgdGhlc2UgY2xhc3NlcyBhcmUgY2xpZW50
cyBvZiB0aGUKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCks
IHRoZXkgbXVzdCBiZSBhIHNpbmdsZXRvbiBpbiB0aGUgV2ViUHJvY2VzcyBhcyB3ZWxsLAorICAg
ICAgICBzbyB0aGV5IGFyZSBhdHRhY2hlZCB0byB0aGUgV2ViUHJvY2VzcyBjbGFzcyBpbiB0aGUg
d2ViIHByb2Nlc3MgYW5kIHRvIFdlYlByb2Nlc3NQcm94eSBpbgorICAgICAgICB0aGUgVUlQcm9j
ZXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6U291cmNlUHJveHk6OlNvdXJjZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6On5Tb3VyY2VQcm94eSk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5
Ojpzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjpTb3VyY2VQcm94eTo6ZGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94eTo6bnVtYmVyT2ZGcmFtZXMpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6flVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVE
ZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5OjpzdGFydFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViS2l0OjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzdG9wUHJvZHVjaW5nRGF0YSk6CisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6cHJvY2Vzcyk6CisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW46IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6bmV4dFNlc3Npb25JRCk6CisgICAg
ICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OlNvdXJjZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6On5Tb3VyY2Up
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpzZXRD
YXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
U291cmNlOjpzZXRTZXR0aW5ncyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjpTb3VyY2U6OmRlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6c2V0U3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnNldFJpbmdCdWZmZXJGcmFtZUJvdW5kcyk6
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OmF1ZGlv
U2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIpOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1
cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6c291cmNlU3RvcHBlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyOjpzb3VyY2VNdXRlZENoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlRW5hYmxlZENoYW5nZWQpOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlU2V0dGluZ3NDaGFuZ2VkKToKKyAg
ICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN0b3JhZ2VDaGFuZ2VkKToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnJpbmdCdWZmZXJGcmFt
ZUJvdW5kc0NoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OnN0YXJ0UHJvZHVjaW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpzdG9wUHJvZHVjaW5nRGF0YSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRl
ZC4KKworICAgICAgICBJbml0aWFsaXplIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyL1Byb3h5Ogor
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNz
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHkpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKToKKworICAgICAg
ICBXZWJVc2VyTWVkaWFDbGllbnRNYWMgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeSBub3cgdGhhdCB0
aGUgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgb3ZlcnJpZGVzCisgICAgICAgIHRoZSBmYWN0b3Jp
ZXM6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNs
aWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVudDo6V2ViVXNlck1l
ZGlhQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50Ojppbml0aWFs
aXplRmFjdG9yaWVzKTogRGVsZXRlZC4KKworICAgICAgICBBZGQgYSBuZXcgcHJlZmVyZW5jZSBh
bmQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBtZW1iZXIgdG8gY29udHJvbCB3aGV0aGVy
CisgICAgICAgIGNhcHR1cmluZyBpcyBkb25lIGluIHRoZSBVSVByb2Nlc3M6CisKKyAgICAgICAg
KiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oOgorICAgICAgICAqIFNoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorCisgICAgICAgIEFkZCBuZXcgZmlsZXMgdG8gdGhl
IHByb2plY3Q6CisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFdl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxNy0wMy0xNSAgRGVhbiBKYWNr
c29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgU29ydCBYY29kZSBwcm9qZWN0IGZpbGVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggZmU5ODlkZDY2YWQ3ZGMyNTNhYTU3YWE0YjczNmI1OWJmODU4MWMzYy4uM2NhNDBlNzg1
YWZhOWUwZTQ3YTBmZGE4MWYzZGE4NWUwYTM5ZmRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjE2OSw3ICs2MTY5LDcgQEAK
IAkJQ0RFNTk1OTcxQkYyNkUyMTAwQTFDQkU4IC8qIENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9i
akMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTU5
NTk2MUJGMjZFMjEwMEExQ0JFOCAvKiBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmggKi87
IH07CiAJCUNERTU5NTlEMUJGMjc1NzEwMEExQ0JFOCAvKiBDRE1TZXNzaW9uTWVkaWFTb3VyY2VB
VkZPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0RFNTk1OUMxQkYyNzU3MTAwQTFDQkU4IC8qIENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMu
bW0gKi87IH07CiAJCUNERTY2N0E0MUU0QkJGMTUwMEU4MTU0QSAvKiBXZWJBdWRpb0J1ZmZlckxp
c3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RF
NjY3QTIxRTRCQkYxNTAwRTgxNTRBIC8qIFdlYkF1ZGlvQnVmZmVyTGlzdC5jcHAgKi87IH07Ci0J
CUNERTY2N0E1MUU0QkJGMTUwMEU4MTU0QSAvKiBXZWJBdWRpb0J1ZmZlckxpc3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTY2N0EzMUU0QkJGMTUw
MEU4MTU0QSAvKiBXZWJBdWRpb0J1ZmZlckxpc3QuaCAqLzsgfTsKKwkJQ0RFNjY3QTUxRTRCQkYx
NTAwRTgxNTRBIC8qIFdlYkF1ZGlvQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3QTMxRTRCQkYxNTAwRTgxNTRBIC8qIFdlYkF1
ZGlvQnVmZmVyTGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUNERTdGQzQ0MTgxOTA0QjEwMDJCQkI3NyAvKiBPcmRlckl0ZXJhdG9yLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTdGQzQyMTgx
OTA0QjEwMDJCQkI3NyAvKiBPcmRlckl0ZXJhdG9yLmNwcCAqLzsgfTsKIAkJQ0RFN0ZDNDUxODE5
MDRCMTAwMkJCQjc3IC8qIE9yZGVySXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTdGQzQzMTgxOTA0QjEwMDJCQkI3NyAvKiBPcmRlckl0
ZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQ0RFODNEQjExODNDNDQwNjAwMzFFQUEzIC8qIFZpZGVvUGxheWJhY2tRdWFsaXR5LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTgzREFGMTgz
QzQ0MDYwMDMxRUFBMyAvKiBWaWRlb1BsYXliYWNrUXVhbGl0eS5jcHAgKi87IH07CkBAIC02MTg2
LDYgKzYxODYsNyBAQAogCQlDREVBN0M4NTEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNj
cmVlbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
REVBN0M4MzEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNjcmVlbi5jcHAgKi87IH07CiAJ
CUNERUUzOTM3MTc5NzQyNTkwMDFENzU4MCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERUUzOTM2MTc5NzQyNTkw
MDFENzU4MCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmNwcCAqLzsgfTsKIAkJQ0RFRjRGRDcxN0U4NUM4
RjAwQUVFMjRCIC8qIEdyaWRMZW5ndGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENERUY0RkQ2MTdFODVDOEYwMEFFRTI0QiAvKiBHcmlkTGVuZ3RoLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RFRkEy
MjgxRTc2NjlFODAwMEFFOTlDIC8qIFBsYXRmb3JtQXVkaW9EYXRhLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREU2NjdBMTFFNEJCQTREMDBFODE1NEEg
LyogUGxhdGZvcm1BdWRpb0RhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlDREYyQjAwNDE4MUYwNTlDMDBGMkI0MjQgLyogTWVkaWFEZXNjcmlw
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RG
MkIwMDMxODFGMDU5QzAwRjJCNDI0IC8qIE1lZGlhRGVzY3JpcHRpb24uaCAqLzsgfTsKIAkJQ0RG
MkIwMTAxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tCb3guY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGMkIwMDYxODIwNTQwNjAwRjJCNDI0IC8qIE1v
Y2tCb3guY3BwICovOyB9OwogCQlDREYyQjAxMTE4MjA1NDA2MDBGMkI0MjQgLyogTW9ja0JveC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGMkIwMDcx
ODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tCb3guaCAqLzsgfTsKQEAgLTI2OTg0LDYgKzI2OTg1LDcg
QEAKIAkJCQlGRDMxNjA5OTEyQjAyNkY3MDBDMUEzNTkgLyogSFJURkRhdGFiYXNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGRDMxNjA5QjEyQjAyNkY3MDBDMUEzNTkgLyogSFJURkRhdGFiYXNlTG9h
ZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA5RDEyQjAyNkY3MDBDMUEzNTkgLyogSFJU
RkVsZXZhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0RFRkEyMjgxRTc2NjlFODAwMEFFOTlD
IC8qIFBsYXRmb3JtQXVkaW9EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA5RjEyQjAy
NkY3MDBDMUEzNTkgLyogSFJURktlcm5lbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwQTEx
MkIwMjZGNzAwQzFBMzU5IC8qIEhSVEZQYW5uZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTdF
MjNBMTA5MTQ0OTUwMDEwRDM2MSAvKiBIVE1MQWxsQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9XZWJBdWRpb0J1ZmZl
ckxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1dlYkF1ZGlvQnVmZmVyTGlz
dC5oCmluZGV4IGJiZjNjMTM5YjYyNWU3YjRjNzlhZjg0MjQxMzhiNTA0MDczMTg1YTguLmRiNjVk
MzUzNGUzYmE1ZTc4NzljZjJmNGQ5Njg0MDgwYzA0ZjYxNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1dlYkF1ZGlvQnVmZmVyTGlzdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1dlYkF1ZGlvQnVmZmVyTGlzdC5oCkBAIC00Miw3ICs0Miw3
IEBAIGNsYXNzIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKIGNsYXNzIFdlYkF1ZGlvQnVmZmVy
TGlzdCA6IHB1YmxpYyBQbGF0Zm9ybUF1ZGlvRGF0YSB7CiBwdWJsaWM6CiAgICAgV2ViQXVkaW9C
dWZmZXJMaXN0KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYpOwotICAgIFdlYkF1ZGlv
QnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCB1aW50MzJfdCBzYW1w
bGVDb3VudCk7CisgICAgV0VCQ09SRV9FWFBPUlQgV2ViQXVkaW9CdWZmZXJMaXN0KGNvbnN0IENB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQzMl90IHNhbXBsZUNvdW50KTsKICAgICBXZWJB
dWRpb0J1ZmZlckxpc3QoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgQ01TYW1wbGVC
dWZmZXJSZWYpOwogCiAgICAgQXVkaW9CdWZmZXJMaXN0KiBsaXN0KCkgY29uc3QgeyByZXR1cm4g
bV9saXN0LmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9tYWMvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9tYWMvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgKaW5kZXggZjdjNWU4MGQwODFk
OTJhYzY1Mjc3MmJiNTc1ODliMWFjMmIyN2ZlMS4uODE3MjQ2ZDQwZWJjYTZjOWJkOGRjZWI1NjRl
NThiNDBlZGIyMWMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
bWFjL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL21hYy9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaApAQCAtOTAsMzEgKzkwLDEz
IEBAIHByaXZhdGU6CiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb246OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29k
ZXIgPDwgbV9zdHJlYW1EZXNjcmlwdGlvbi5tU2FtcGxlUmF0ZQotICAgICAgICA8PCBtX3N0cmVh
bURlc2NyaXB0aW9uLm1Gb3JtYXRJRAotICAgICAgICA8PCBtX3N0cmVhbURlc2NyaXB0aW9uLm1G
b3JtYXRGbGFncwotICAgICAgICA8PCBtX3N0cmVhbURlc2NyaXB0aW9uLm1CeXRlc1BlclBhY2tl
dAotICAgICAgICA8PCBtX3N0cmVhbURlc2NyaXB0aW9uLm1GcmFtZXNQZXJQYWNrZXQKLSAgICAg
ICAgPDwgbV9zdHJlYW1EZXNjcmlwdGlvbi5tQnl0ZXNQZXJGcmFtZQotICAgICAgICA8PCBtX3N0
cmVhbURlc2NyaXB0aW9uLm1DaGFubmVsc1BlckZyYW1lCi0gICAgICAgIDw8IG1fc3RyZWFtRGVz
Y3JpcHRpb24ubUJpdHNQZXJDaGFubmVsCi0gICAgICAgIDw8IG1fc3RyZWFtRGVzY3JpcHRpb24u
bVJlc2VydmVkOwotICAgIGVuY29kZXIuZW5jb2RlRW51bShtX2Zvcm1hdCk7CisgICAgZW5jb2Rl
ci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4o
Jm1fc3RyZWFtRGVzY3JpcHRpb24pLCBzaXplb2YobV9zdHJlYW1EZXNjcmlwdGlvbiksIDEpOwog
fQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgogYm9vbCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b246OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRl
c2NyaXB0aW9uKQogewotICAgIHJldHVybiBkZWNvZGVyLmRlY29kZShkZXNjcmlwdGlvbi5tX3N0
cmVhbURlc2NyaXB0aW9uLm1TYW1wbGVSYXRlKQotICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShk
ZXNjcmlwdGlvbi5tX3N0cmVhbURlc2NyaXB0aW9uLm1Gb3JtYXRJRCkKLSAgICAgICAgJiYgZGVj
b2Rlci5kZWNvZGUoZGVzY3JpcHRpb24ubV9zdHJlYW1EZXNjcmlwdGlvbi5tRm9ybWF0RmxhZ3Mp
Ci0gICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGRlc2NyaXB0aW9uLm1fc3RyZWFtRGVzY3JpcHRp
b24ubUJ5dGVzUGVyUGFja2V0KQotICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShkZXNjcmlwdGlv
bi5tX3N0cmVhbURlc2NyaXB0aW9uLm1GcmFtZXNQZXJQYWNrZXQpCi0gICAgICAgICYmIGRlY29k
ZXIuZGVjb2RlKGRlc2NyaXB0aW9uLm1fc3RyZWFtRGVzY3JpcHRpb24ubUJ5dGVzUGVyRnJhbWUp
Ci0gICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGRlc2NyaXB0aW9uLm1fc3RyZWFtRGVzY3JpcHRp
b24ubUNoYW5uZWxzUGVyRnJhbWUpCi0gICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGRlc2NyaXB0
aW9uLm1fc3RyZWFtRGVzY3JpcHRpb24ubUJpdHNQZXJDaGFubmVsKQotICAgICAgICAmJiBkZWNv
ZGVyLmRlY29kZShkZXNjcmlwdGlvbi5tX3N0cmVhbURlc2NyaXB0aW9uLm1SZXNlcnZlZCkKLSAg
ICAgICAgJiYgZGVjb2Rlci5kZWNvZGVFbnVtKGRlc2NyaXB0aW9uLm1fZm9ybWF0KTsKKyAgICBy
ZXR1cm4gZGVjb2Rlci5kZWNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDx1aW50
OF90Kj4oJmRlc2NyaXB0aW9uLm1fc3RyZWFtRGVzY3JpcHRpb24pLCBzaXplb2YoZGVzY3JpcHRp
b24ubV9zdHJlYW1EZXNjcmlwdGlvbiksIDEpOwogfQogCiBpbmxpbmUgQ0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uIHRvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mIGRlc2NyaXB0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vbWFjL0NBUmluZ0J1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vbWFjL0NBUmluZ0J1ZmZlci5oCmluZGV4IDVhYWI0OTI3ZGUwYWQ5N2Y4YjgxNTgxMjQyOWFm
ZTk2YjQ3YjUzMWIuLjQ1YzU1ZGMxMzAxODE4MjFkNjA4ZThiNzNhZDdmNzY0NWZkZjgyMTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9DQVJpbmdCdWZmZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmgK
QEAgLTg1LDYgKzg1LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q3Vy
cmVudEZyYW1lQm91bmRzKHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsK
IAogICAgIHVpbnQzMl90IGNoYW5uZWxDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hhbm5lbENv
dW50OyB9CisgICAgQ0FSaW5nQnVmZmVyU3RvcmFnZSYgc3RvcmFnZSgpIHsgcmV0dXJuIG1fYnVm
ZmVyczsgfQogCiBwcml2YXRlOgogICAgIHNpemVfdCBmcmFtZU9mZnNldCh1aW50NjRfdCBmcmFt
ZU51bWJlcikgeyByZXR1cm4gKGZyYW1lTnVtYmVyICYgbV9mcmFtZUNvdW50TWFzaykgKiBtX2J5
dGVzUGVyRnJhbWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCA2OTQ2N2JmY2Y4MjQwMWQ2MWU1
N2RmNTM3ZTVkNWViMTE1YjUwMWYxLi5lOWM1ZjNjNTk4YThjYzE3NzcxNzQ0MDgyNDNiMTRiNWU4
NDJiMjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC02MSw3ICs2MSw3IEBAIGNsYXNzIE1lZGlh
U3RyZWFtUHJpdmF0ZTsKIGNsYXNzIFBsYXRmb3JtQXVkaW9EYXRhOwogY2xhc3MgUmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzOwogCi1jbGFzcyBSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGlj
IFJlZkNvdW50ZWQ8UmVhbHRpbWVNZWRpYVNvdXJjZT4geworY2xhc3MgV0VCQ09SRV9FWFBPUlQg
UmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBSZWZDb3VudGVkPFJlYWx0aW1lTWVkaWFTb3Vy
Y2U+IHsKIHB1YmxpYzoKICAgICBjbGFzcyBPYnNlcnZlciB7CiAgICAgcHVibGljOgpAQCAtMjAw
LDYgKzIwMCw4IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgYXBwbHlDb25zdHJhaW50
cyhjb25zdCBGbGF0dGVuZWRDb25zdHJhaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIGFwcGx5U2l6
ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0aW9uYWw8aW50
PiBoZWlnaHQsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPik7CiAKKyAgICBjb25zdCBWZWN0b3I8T2Jz
ZXJ2ZXIqPiBvYnNlcnZlcnMoKSBjb25zdCB7IHJldHVybiBtX29ic2VydmVyczsgfQorCiAgICAg
Ym9vbCBtX211dGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fZW5hYmxlZCB7IHRydWUgfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9X
ZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggOTk0OTJmZmFlYTE0NGVlNGM3ZjRlNWVl
NWQ5MWUzZjY2YjhiNWU1MC4uOWRlZjM3MDRiNzRkNDU4OGJhZGMwYjQyYzEyMDcwN2NhZmQ5MWM0
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC00NSw2ICs0NSw3IEBAIFZQQVRI
ID0gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBcCiAgICAgJChXZWJL
aXQyKS9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNz
L01lZGlhQ2FjaGUgXAorICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbSBcCiAg
ICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL05ldHdvcmsgXAogICAgICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0YyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMgXApAQCAtNjUsNiArNjYsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIpL1VJUHJv
Y2Vzcy9Db2NvYSBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvRGF0YWJhc2VzIFwKICAgICAk
KFdlYktpdDIpL1VJUHJvY2Vzcy9Eb3dubG9hZHMgXAorICAgICQoV2ViS2l0MikvVUlQcm9jZXNz
L01lZGlhU3RyZWFtIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9OZXR3b3JrIFwKICAgICAk
KFdlYktpdDIpL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scyBcCiAgICAgJChXZWJL
aXQyKS9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucyBcCkBAIC0xMjEsNiArMTIzLDggQEAgTUVTU0FH
RV9SRUNFSVZFUlMgPSBcCiAgICAgU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlciBcCiAgICAg
U3RvcmFnZUFyZWFNYXAgXAogICAgIFN0b3JhZ2VNYW5hZ2VyIFwKKyAgICBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlciBcCisgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSBcCiAgICAgVmll
d0dlc3R1cmVDb250cm9sbGVyIFwKICAgICBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yIFwK
ICAgICBWaWV3VXBkYXRlRGlzcGF0Y2hlciBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAppbmRleCA3ZmY3NzAyOGJmYjVjMDU1ZDhlYjJk
NmEwNTIxODg0OGZhZDZjNTlhLi5iOWMxNTlkYjA4NmViMjU2NzFhNGViYzgzNjJiZjIwNDk3Mjk1
ZDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZp
bml0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmlu
aXRpb25zLmgKQEAgLTEwMyw2ICsxMDMsMTIgQEAKICNkZWZpbmUgREVGQVVMVF9DQU5WQVNfVVNF
U19BQ0NFTEVSQVRFRF9EUkFXSU5HIHRydWUKICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0Ep
CisjZGVmaW5lIERFRkFVTFRfU0hPVUxEX0NBUFRVUkVfQVVESU9fSU5fVUlQUk9DRVNTIHRydWUK
KyNlbHNlCisjZGVmaW5lIERFRkFVTFRfU0hPVUxEX0NBUFRVUkVfQVVESU9fSU5fVUlQUk9DRVNT
IGZhbHNlCisjZW5kaWYKKwogLy8gbWFjcm8oS2V5VXBwZXIsIEtleUxvd2VyLCBUeXBlTmFtZVVw
cGVyLCBUeXBlTmFtZSwgRGVmYXVsdFZhbHVlLCBIdW1hblJlYWRhYmxlTmFtZSwgSHVtYW5SZWFk
YWJsZURlc2NyaXB0aW9uKQogCiAjZGVmaW5lIEZPUl9FQUNIX1dFQktJVF9CT09MX1BSRUZFUkVO
Q0UobWFjcm8pIFwKQEAgLTI1Miw2ICsyNTgsNyBAQAogICAgIG1hY3JvKEdhbWVwYWRzRW5hYmxl
ZCwgZ2FtZXBhZHNFbmFibGVkLCBCb29sLCBib29sLCB0cnVlLCAiR2FtZXBhZHMiLCAiV2ViIEdh
bWVwYWQgQVBJIHN1cHBvcnQiKSBcCiAgICAgbWFjcm8oSW5wdXRFdmVudHNFbmFibGVkLCBpbnB1
dEV2ZW50c0VuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUsICJJbnB1dCBFdmVudHMiLCAiRW5hYmxl
IElucHV0RXZlbnRzIHN1cHBvcnQiKSBcCiAgICAgbWFjcm8oQ3JlZGVudGlhbE1hbmFnZW1lbnRF
bmFibGVkLCBjcmVkZW50aWFsTWFuYWdlbWVudEVuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlLCAi
Q3JlZGVudGlhbCBNYW5hZ2VtZW50IiwgIkVuYWJsZSBDcmVkZW50aWFsIE1hbmFnZW1lbnQgc3Vw
cG9ydCIpIFwKKyAgICBtYWNybyhTaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2Vzcywgc2hvdWxk
Q2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MsIEJvb2wsIGJvb2wsIERFRkFVTFRfU0hPVUxEX0NBUFRV
UkVfQVVESU9fSU5fVUlQUk9DRVNTLCAiQ2FwdHVyZSIsICJDYXB0dXJlIEF1ZGlvIGluIFVJUHJv
Y2VzcyIpIFwKICAgICBcCiAKICNkZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX0RPVUJMRV9QUkVGRVJF
TkNFKG1hY3JvKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggNTEyZDIxMmQ4NGEwMTE4MDhjMjlhOGI1MTg0
MTllMjBhNTE3NmIxYy4uZjMzZWE2YzBhODNiNDliMDFlN2ExNmFjZDVhMTFlYmE5YzMxMTYzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcApAQCAtNjgsNiArNjgsNyBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2Rl
ciA8PCBtZWRpYUtleVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKICAgICBlbmNvZGVyIDw8IGF1ZGlvQ2FwdHVyZUV4dGVuc2lvbkhhbmRs
ZTsKKyAgICBlbmNvZGVyIDw8IHNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzOwogI2VuZGlm
CiAgICAgZW5jb2RlciA8PCBzaG91bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb247CiAgICAgZW5j
b2RlciA8PCB1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzRW1wdHlEb2N1bWVudDsKQEAgLTE4OSw2ICsx
OTAsOCBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRl
Y29kZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVhdAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmF1ZGlvQ2FwdHVyZUV4dGVuc2lv
bkhhbmRsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHBhcmFtZXRlcnMuc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CiAjZW5kaWYKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuc2hv
dWxkVXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgKaW5kZXggYTNlNjJjZjlkNDMxZjQwYmRjYTdhNWM4MDBjYzU3MDU5NzFjOGU5NC4uZmQ4MDZi
MjIwMjQ3OWUxNjA0ODYxZGY5OGUwOGNhYjFhMWFhNjBkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC04OCw2ICs4
OCw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGUgbWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
OwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
IGF1ZGlvQ2FwdHVyZUV4dGVuc2lvbkhhbmRsZTsKKyAgICBib29sIHNob3VsZENhcHR1cmVBdWRp
b0luVUlQcm9jZXNzIHsgZmFsc2UgfTsKICNlbmRpZgogICAgIFN0cmluZyBtZWRpYUtleVN0b3Jh
Z2VEaXJlY3Rvcnk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
MGFmYzdhMjBjYTlhMmY3ODY1NzMxYjhjYjE5YTliNWMzOTBjNGRhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuY3BwCkBAIC0wLDAgKzEsMTU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCIKKworI2lmIFBM
QVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiU2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAi
V2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHNJbXBsLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRp
b0J1ZmZlckxpc3QuaD4KKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHkgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6T2JzZXJ2ZXIsIHB1YmxpYyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50IHsKK3B1
YmxpYzoKKyAgICBTb3VyY2VQcm94eSh1aW50NjRfdCBpZCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eSYgbWFuYWdlciwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQorICAg
ICAgICA6IG1faWQoaWQpCisgICAgICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCisgICAgICAgICwg
bV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQorICAgICAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5p
cXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlPih0aGlzKSkpCisgICAgeworICAgICAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2
ZXIoKnRoaXMpOworICAgIH0KKworICAgIH5Tb3VyY2VQcm94eSgpCisgICAgeworICAgICAgICBz
dG9yYWdlKCkuaW52YWxpZGF0ZSgpOworICAgICAgICBtX3NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIo
KnRoaXMpOworICAgIH0KKworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSgpIHsgcmV0
dXJuIG1fc291cmNlOyB9CisgICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKSB7
IHJldHVybiBzdGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZl
ci5zdG9yYWdlKCkpOyB9CisgICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlv
bigpIHsgcmV0dXJuIG1fZGVzY3JpcHRpb247IH0KKyAgICBpbnQ2NF90IG51bWJlck9mRnJhbWVz
KCkgeyByZXR1cm4gbV9udW1iZXJPZkZyYW1lczsgfQorCisgICAgdm9pZCBzb3VyY2VTdG9wcGVk
KCkgZmluYWwgeworICAgICAgICBtX21hbmFnZXIucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2VTdG9wcGVkKG1faWQpLCAwKTsKKyAgICB9CisK
KyAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZCgpIGZpbmFsIHsKKyAgICAgICAgbV9tYW5hZ2Vy
LnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNl
TXV0ZWRDaGFuZ2VkKG1faWQsIG1fc291cmNlLT5tdXRlZCgpKSwgMCk7CisgICAgfQorCisgICAg
dm9pZCBzb3VyY2VFbmFibGVkQ2hhbmdlZCgpIGZpbmFsIHsKKyAgICAgICAgbV9tYW5hZ2VyLnBy
b2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlRW5h
YmxlZENoYW5nZWQobV9pZCwgbV9zb3VyY2UtPmVuYWJsZWQoKSksIDApOworICAgIH0KKworICAg
IHZvaWQgc291cmNlU2V0dGluZ3NDaGFuZ2VkKCkgZmluYWwgeworICAgICAgICBtX21hbmFnZXIu
cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2VT
ZXR0aW5nc0NoYW5nZWQobV9pZCwgbV9zb3VyY2UtPnNldHRpbmdzKCkpLCAwKTsKKyAgICB9CisK
KyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNv
bnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpIGZpbmFsIHsKKyAgICAg
ICAgaWYgKG1fZGVzY3JpcHRpb24gIT0gZGVzY3JpcHRpb24pIHsKKyAgICAgICAgICAgIEFTU0VS
VChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURlc2Ny
aXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKKyAgICAgICAgICAgIG1fZGVzY3JpcHRp
b24gPSAqV1RGOjpnZXQ8Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3Jp
cHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKKworICAgICAgICAgICAg
Ly8gQWxsb2NhdGUgYSByaW5nIGJ1ZmZlciBsYXJnZSBlbm91Z2ggdG8gY29udGFpbiAyIHNlY29u
ZHMgb2YgYXVkaW8uCisgICAgICAgICAgICBtX251bWJlck9mRnJhbWVzID0gbV9kZXNjcmlwdGlv
bi5zYW1wbGVSYXRlKCkgKiAyOworICAgICAgICAgICAgbV9yaW5nQnVmZmVyLmFsbG9jYXRlKG1f
ZGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgbV9udW1iZXJPZkZyYW1lcyk7CisgICAg
ICAgIH0KKworICAgICAgICBBU1NFUlQoaXM8V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRpb0RhdGEp
KTsKKyAgICAgICAgbV9yaW5nQnVmZmVyLnN0b3JlKGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlz
dD4oYXVkaW9EYXRhKS5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsK
KyAgICAgICAgdWludDY0X3Qgc3RhcnRGcmFtZTsKKyAgICAgICAgdWludDY0X3QgZW5kRnJhbWU7
CisgICAgICAgIG1fcmluZ0J1ZmZlci5nZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwg
ZW5kRnJhbWUpOworICAgICAgICBtX21hbmFnZXIucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb1NhbXBsZXNBdmFpbGFibGUobV9pZCwgdGltZSwg
bnVtYmVyT2ZGcmFtZXMsIHN0YXJ0RnJhbWUsIGVuZEZyYW1lKSwgMCk7CisgICAgfQorCisgICAg
dm9pZCBzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2UpIGZpbmFsIHsKKyAgICAg
ICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOworICAgICAgICBpZiAoc3RvcmFnZSkKKyAg
ICAgICAgICAgIHN0b3JhZ2UtPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJv
dGVjdGlvbjo6UmVhZE9ubHkpOworICAgICAgICBtX21hbmFnZXIucHJvY2VzcygpLnNlbmQoTWVz
c2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTdG9yYWdlQ2hhbmdlZChtX2lkLCBoYW5k
bGUsIG1fZGVzY3JpcHRpb24sIG1fbnVtYmVyT2ZGcmFtZXMpLCAwKTsKKyAgICB9CisKK3Byb3Rl
Y3RlZDoKKyAgICB1aW50NjRfdCBtX2lkOworICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkmIG1fbWFuYWdlcjsKKyAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7Cisg
ICAgQ0FSaW5nQnVmZmVyIG1fcmluZ0J1ZmZlcjsKKyAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24gbV9kZXNjcmlwdGlvbiB7IH07CisgICAgaW50NjRfdCBtX251bWJlck9mRnJhbWVzIHsgMCB9
OworfTsKKworVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eShXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCisgICAgOiBtX3Byb2Nlc3MocHJv
Y2VzcykKK3sKKyAgICBtX3Byb2Nlc3MuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsK
K30KKworVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6flVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkoKQoreworICAgIG1fcHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7
Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3Vy
Y2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBDYXB0
dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHNEYXRhJiBjb25zdHJhaW50
c0RhdGEsIGJvb2wmIHN1Y2NlZWRlZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMpCit7Cisg
ICAgYXV0byBjb25zdHJhaW50cyA9IE1lZGlhQ29uc3RyYWludHNJbXBsOjpjcmVhdGUoY29uc3Ry
YWludHNEYXRhKTsKKyAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gc291cmNlID0gUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuZGVmYXVsdEF1ZGlvRmFjdG9yeSgp
LT5jcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoZGV2aWNl
LCBjb25zdHJhaW50cy5wdHIoKSwgaW52YWxpZENvbnN0cmFpbnRzKTsKKyAgICBzdWNjZWVkZWQg
PSAhIXNvdXJjZTsKKyAgICAKKyAgICBpZiAoc291cmNlKQorICAgICAgICBtX3Byb3hpZXMuc2V0
KGlkLCBzdGQ6Om1ha2VfdW5pcXVlPFNvdXJjZVByb3h5PihpZCwgKnRoaXMsIHNvdXJjZS5yZWxl
YXNlTm9uTnVsbCgpKSk7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
c3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQoreworICAgIGF1dG8gaXRlciA9IG1fcHJv
eGllcy5maW5kKGlkKTsKKyAgICBpZiAoaXRlciAhPSBtX3Byb3hpZXMuZW5kKCkpCisgICAgICAg
IGl0ZXItPnZhbHVlLT5zb3VyY2UoKS5zdGFydFByb2R1Y2luZ0RhdGEoKTsKK30KKwordm9pZCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCBp
ZCkKK3sKKyAgICBhdXRvIGl0ZXIgPSBtX3Byb3hpZXMuZmluZChpZCk7CisgICAgaWYgKGl0ZXIg
IT0gbV9wcm94aWVzLmVuZCgpKQorICAgICAgICBpdGVyLT52YWx1ZS0+c291cmNlKCkuc3RvcFBy
b2R1Y2luZ0RhdGEoKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjgxMTMyMWRiYWNhMDQ3NWVkNDc5ZjJiYmZiYjM1ZTU2NjRkOGY2ZDIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
CisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgor
I2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgU2hhcmVkTWVtb3J5OworY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OworCitjbGFzcyBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IDogcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZl
ciB7CitwdWJsaWM6CisgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eShXZWJQcm9jZXNz
UHJveHkmKTsKKyAgICB+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpOworCisgICAgV2Vi
UHJvY2Vzc1Byb3h5JiBwcm9jZXNzKCkgY29uc3QgeyByZXR1cm4gbV9wcm9jZXNzOyB9CisKK3By
aXZhdGU6CisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0
ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JikgZmluYWw7CisKKyAgICB2b2lkIGNyZWF0ZU1l
ZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgY29u
c3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHNEYXRhJiwgYm9vbCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cyk7Cisg
ICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QpOworICAgIHZvaWQgc3RvcFByb2R1
Y2luZ0RhdGEodWludDY0X3QpOworCisgICAgY2xhc3MgU291cmNlUHJveHk7CisgICAgZnJpZW5k
IGNsYXNzIFNvdXJjZVByb3h5OworICAgIEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0
cjxTb3VyY2VQcm94eT4+IG1fcHJveGllczsKKyAgICBXZWJQcm9jZXNzUHJveHkmIG1fcHJvY2Vz
czsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0YjhjYmI3YjhhNjliNzNiMzk3YTllOWQyYmNjMGU3MGIx
MzExNWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI4IEBA
CisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IHsKKyAgICBDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1
cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UgZGV2aWNlLCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEgY29uc3RyYWlu
dHMpIC0+IChib29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMpCisgICAgU3Rh
cnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQorICAgIFN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2
NF90IGlkKQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dl
YlByb2Nlc3NQb29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2Vi
UHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCA4NzM4ZjA3MDYzN2Y0OTBmMWYwODZjMDk5YjkzNzRl
NzQwZWNjN2VlLi5mNDczYjVkODEyMThlYmYyZjAyYTlhZmZmYmFhNWUxNDk5OWI4YWY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xD
b2NvYS5tbQpAQCAtMjU4LDYgKzI1OCw4IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3Jt
SW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYKICAgICAv
LyBGSVhNRTogUmVtb3ZlIHRoaXMgYW5kIHJlbGF0ZWQgcGFyYW1ldGVyIHdoZW4gPHJkYXI6Ly9w
cm9ibGVtLzI5NDQ4MzY4PiBpcyBmaXhlZC4KICAgICBpZiAobWVkaWFTdHJlYW1FbmFibGVkIHx8
IHdlYlJUQ0VuYWJsZWQpCiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZv
ckdlbmVyaWNFeHRlbnNpb24oImNvbS5hcHBsZS53ZWJraXQubWljcm9waG9uZSIsIHBhcmFtZXRl
cnMuYXVkaW9DYXB0dXJlRXh0ZW5zaW9uSGFuZGxlKTsKKworICAgIHBhcmFtZXRlcnMuc2hvdWxk
Q2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MgPSBtX2RlZmF1bHRQYWdlR3JvdXAtPnByZWZlcmVuY2Vz
KCkuc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MoKTsKICNlbmRpZgogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDVmZjY0ZDY0OGM0
Yjc4NDI1ZmQ5MTI3MDYzNDdmMjg3OGY5NGU1MDAuLmNkMWRjZDdkNTZlYzY3N2QyNGM5Nzk5NmY3
OGQ0YmQxMDI1N2Q1OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNp
bmNsdWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKKyNpbmNs
dWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViQmFja0Zv
cndhcmRMaXN0SXRlbS5oIgogI2luY2x1ZGUgIldlYkljb25EYXRhYmFzZS5oIgogI2luY2x1ZGUg
IldlYkluc3BlY3RvclV0aWxpdGllcy5oIgpAQCAtMTA0LDkgKzEwNSwxNCBAQCBXZWJQcm9jZXNz
UHJveHk6OldlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFdlYnNp
dGVEYXRhU3RvcmUqCiAgICAgLCBtX2lzUmVzcG9uc2l2ZShOb09yTWF5YmU6Ok1heWJlKQogICAg
ICwgbV92aXNpYmxlUGFnZUNvdW50ZXIoW3RoaXNdKFJlZkNvdW50ZXJFdmVudCkgeyB1cGRhdGVC
YWNrZ3JvdW5kUmVzcG9uc2l2ZW5lc3NUaW1lcigpOyB9KQogICAgICwgbV93ZWJzaXRlRGF0YVN0
b3JlKHdlYnNpdGVEYXRhU3RvcmUpCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisgICAgLCBtX3VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoc3RkOjptYWtl
X3VuaXF1ZTxVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5PigqdGhpcykpCisjZW5kaWYKIHsK
ICAgICBXZWJQYXN0ZWJvYXJkUHJveHk6OnNpbmdsZXRvbigpLmFkZFdlYlByb2Nlc3NQcm94eSgq
dGhpcyk7CiAKKworCiAgICAgY29ubmVjdCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggZjVlNjFhYTAwMTgwNjc3NDgyYWYzNzA3ZGNiZGIx
OTk1MTdmYWY2YS4uYjMyODgxNWNmMTY0MjdmOGFjNmRkNjY2ZjNhOTU3MmRhYTcxYzkzYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtNTYsNiArNTYs
NyBAQCBzdHJ1Y3QgUGx1Z2luSW5mbzsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZXR3
b3JrUHJvY2Vzc1Byb3h5OworY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKIGNs
YXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07CiBjbGFzcyBXZWJQYWdlR3JvdXA7CiBjbGFzcyBX
ZWJQcm9jZXNzUG9vbDsKQEAgLTI3Myw2ICsyNzQsMTAgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8
V2Vic2l0ZURhdGFTdG9yZT4gbV93ZWJzaXRlRGF0YVN0b3JlOwogCiAgICAgYm9vbCBtX2lzVW5k
ZXJNZW1vcnlQcmVzc3VyZSB7IGZhbHNlIH07CisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eT4gbV91c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OworI2VuZGlmCiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2MjY3N2Y4N2E1ZWQ2NTIwMTY4NzNmYTNlZjEy
MDI1YTM1MWFlNGUwLi42ZGZjN2NmOTkxMTc2NDBmNDZiNjdhYTQwZGRkYmEzZjJiNWQ5Yzc4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xODc5LDExICsxODc5LDE4IEBACiAJCUNEMDAzQTUzMTlENDlCNUQwMDVBQkNFMCAvKiBX
ZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRDAwM0E1MTE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlT
dG9yYWdlTWFuYWdlci5oICovOyB9OwogCQlDRDE5QTI2RDFBMTNFODJBMDA4RDY1MEUgLyogV2Vi
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0QxOUEyNjkxQTEzRTgyMDAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LmNwcCAqLzsgfTsKIAkJQ0QxOUEyNkUxQTEzRTgzNDAwOEQ2NTBFIC8q
IFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5QTI2QTFBMTNFODIxMDA4RDY1MEUgLyogV2ViRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuaCAqLzsgfTsKKwkJQ0Q0OTFCMDcxRTcwRDA1RjAwMDA5MDY2IC8q
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENENDkxQjA1MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlci5jcHAgKi87IH07CisJCUNENDkxQjA4MUU3MEQwNUYwMDAwOTA2NiAvKiBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0Q0OTFCMDYxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmggKi87IH07CisJCUNENDkxQjBEMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ5MUIwQjFFNzMyRTREMDAwMDkwNjYgLyogVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQlDRDQ5MUIw
RTFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0OTFCMEMxRTcz
MkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsK
KwkJQ0Q0OTFCMTIxRTczNDgyMTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0
OTFCMTAxRTczNDgyMTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3Bw
ICovOyB9OworCQlDRDQ5MUIxMzFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0Q0OTFCMTExRTczNDgyMTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkuaCAqLzsgfTsKKwkJQ0Q0OTFCMTcxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0OTFCMTUxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQlDRDQ5
MUIxODFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3Nh
Z2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ5
MUIxNjFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3Nh
Z2VzLmggKi87IH07CiAJCUNENEI0RDlDMUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDRCNEQ5QTFFNzY1RTAwMDBEMjcwOTIgLyogU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2Uu
Y3BwICovOyB9OwogCQlDRDRCNEQ5RDFFNzY1RTAwMDBEMjcwOTIgLyogU2hhcmVkUmluZ0J1ZmZl
clN0b3JhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENENEI0RDlCMUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oICov
OyB9OwogCQlDRDVDNjZBMDEzNEI5RDM4MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVs
bFNjcmVlbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDVDNjY5RTEzNEI5RDM2MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVs
bFNjcmVlbkNsaWVudC5jcHAgKi87IH07CiAJCUNENUM2NkExMTM0QjlEMzgwMDRGRTJBOCAvKiBJ
bmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDVDNjY5RjEzNEI5RDM3MDA0RkUyQTggLyogSW5q
ZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oICovOyB9OwotCQlDRDYxNzgxNDFFNkRF
OUEwMDBGREE1N0QgLyogV2ViVXNlck1lZGlhQ2xpZW50TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2MTc4MTIxRTZERTlBMDAwRkRBNTdEIC8q
IFdlYlVzZXJNZWRpYUNsaWVudE1hYy5tbSAqLzsgfTsKIAkJQ0Q2Rjc1RjQxMzFCNjZEMDAwRDZC
MjFFIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3M0JBM0UxMzFBMkU4QTAwRUVERUQyIC8qIFdl
YkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwICovOyB9OwogCQlDRDczQkE0NzEzMUFDQzlBMDBF
RURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDczQkE0NTEzMUFD
Qzg4MDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgKi87IH07CiAJCUNENzNCQTRFMTMxQUNEQjcwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDczQkE0ODEzMUFDRDhFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwpAQCAtNDE2OSwxMSArNDE3NiwyMCBAQAog
CQlDRDAwM0E1MTE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJNZWRpYUtleVN0b3JhZ2VNYW5h
Z2VyLmg7IHBhdGggPSBNZWRpYUNhY2hlL1dlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QxOUEyNjkxQTEzRTgyMDAwOEQ2NTBFIC8qIFdl
YkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0QxOUEyNkExQTEzRTgyMTAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNM
b2dnaW5nQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENDkx
QjA1MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENDkxQjA2MUU3MEQwNUYwMDAwOTA2
NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDRDQ5MUIwQTFFNzMyRDEyMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW47
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENDkxQjBCMUU3MzJFNEQwMDAwOTA2NiAv
KiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENDkxQjBDMUU3MzJF
NEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFCMTAxRTczNDgyMTAwMDA5MDY2
IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA7IHBhdGgg
PSAuLi9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFCMTExRTczNDgyMTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oOyBwYXRoID0gLi4vQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ5MUIx
NDFFNzM0OUYzMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IG5hbWUgPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBwYXRo
ID0gLi4vQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFCMTUxRTczNTI1NTAwMDA5MDY2IC8qIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENDkxQjE2
MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENEI0RDlB
MUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENEI0RDlCMUU3NjVFMDAwMEQyNzA5MiAv
KiBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRDVDNjY5RTEzNEI5RDM2MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNj
cmVlbkNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmpl
Y3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0Q1QzY2OUYxMzRCOUQzNzAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1
bGxTY3JlZW5DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0
ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlDRDYxNzgxMjFFNkRFOUEwMDBGREE1N0QgLyogV2ViVXNlck1lZGlhQ2xpZW50TWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV2ViVXNlck1lZGlhQ2xp
ZW50TWFjLm1tOyBwYXRoID0gY29jb2EvV2ViVXNlck1lZGlhQ2xpZW50TWFjLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDRDczQkEzNzEzMUEyOUZFMDBFRURFRDIgLyogV2ViRnVs
bFNjcmVlbk1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
V2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwOyBwYXRoID0gRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVu
TWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENzNCQTM4MTMxQTI5
RkUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBXZWJGdWxsU2NyZWVuTWFuYWdlci5oOyBwYXRoID0gRnVsbFNjcmVlbi9X
ZWJGdWxsU2NyZWVuTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDcz
QkEzOTEzMUEyOUZFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gV2ViRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW47
IHBhdGggPSBGdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjI4MSw2ICs2Mjk3LDkgQEAKIAkJN0M2RTcwRjgx
OEIyRDQ3RTAwRjI0RTJFIC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKKwkJCQlDRDQ5MUIwNTFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuY3BwICovLAorCQkJCUNENDkxQjA2MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlci5oICovLAorCQkJCUNENDkxQjBBMUU3MzJEMTIwMDAwOTA2NiAv
KiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCQlDREEyOUExOTFD
QkRCRjQxMDA5MDFDQ0YgLyogV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5oICovLAogCQkJCUNE
QTI5QTFDMUNCREJGNUIwMDkwMUNDRiAvKiBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1lc3Nh
Z2VzLmluICovLAogCQkJCUNEQTI5QTE4MUNCREJGNDEwMDkwMUNDRiAvKiBXZWJQbGF5YmFja1Nl
c3Npb25NYW5hZ2VyLm1tICovLApAQCAtNzQ0OCw2ICs3NDY3LDkgQEAKIAkJCQkxQUE0MTdFRDEy
QzAwRDg3MDAyQkU2N0IgLyogVGV4dENoZWNrZXJNYWMubW0gKi8sCiAJCQkJMUFGMDVEODUxNDY4
ODM0ODAwOEIxRTgxIC8qIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaCAqLywK
IAkJCQkxQUYwNUQ4NDE0Njg4MzQ4MDA4QjFFODEgLyogVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWFQcm94eS5tbSAqLywKKwkJCQlDRDQ5MUIxMDFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgKi8sCisJCQkJQ0Q0OTFCMTExRTczNDgyMTAwMDA5
MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCAqLywKKwkJCQlDRDQ5MUIxNDFF
NzM0OUYzMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
biAqLywKIAkJCQkyRDEyNUM1RDE4NTdFQTA1MDAzQkEzQ0IgLyogVmlld0dlc3R1cmVDb250cm9s
bGVyTWFjLm1tICovLAogCQkJCTJENkNEMTE3MTg5MDU4QTUwMEU1QTRBMCAvKiBWaWV3U25hcHNo
b3RTdG9yZS5oICovLAogCQkJCTJENkNEMTE4MTg5MDU4QTUwMEU1QTRBMCAvKiBWaWV3U25hcHNo
b3RTdG9yZS5tbSAqLywKQEAgLTc2OTMsNiArNzcxNSwxMCBAQAogCQkJCTFBMzM0REVDMTZERThG
ODgwMDZBOEUzOCAvKiBTdG9yYWdlQXJlYU1hcE1lc3NhZ2VzLmggKi8sCiAJCQkJMUFCMzFBOTQx
NkJDNjg4MTAwRjZEQkM5IC8qIFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywK
IAkJCQkxQUIzMUE5NTE2QkM2ODgxMDBGNkRCQzkgLyogU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5o
ICovLAorCQkJCUNENDkxQjE1MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQlDRDQ5MUIxNjFFNzM1MjU1MDAw
MDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJ
Q0Q0OTFCMEIxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLywKKwkJCQlDRDQ5MUIwQzFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oICovLAogCQkJCTJEMUI1RDVCMTg1ODY5QzgwMDZD
NjU5NiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJ
CTJEMUI1RDVDMTg1ODY5QzgwMDZDNjU5NiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdl
cy5oICovLAogCQkJCTJEODE5QjlGMTg2MjgwMEUwMDFGMDNEMSAvKiBWaWV3R2VzdHVyZUdlb21l
dHJ5Q29sbGVjdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTc4MjQsNyArNzg1MCw2IEBA
CiAJCUNENjE3ODExMUU2REU5ODAwMEZEQTU3RCAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJQ0Q2MTc4MTIxRTZERTlBMDAwRkRBNTdEIC8q
IFdlYlVzZXJNZWRpYUNsaWVudE1hYy5tbSAqLywKIAkJCSk7CiAJCQluYW1lID0gY29jb2E7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtODA0NSw2ICs4MDcwLDcgQEAKIAkJCQk3QzI0
MTMwMzFBQUNGQTc1MDBBNThDMTUgLyogX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJN0MyNDEzMDUxQUFDRkE5QzAwQTU4QzE1IC8qIF9XS1VzZXJDb250
ZW50RXh0ZW5zaW9uU3RvcmVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NBMzc5M0Ux
QUMzNzhCMzAwNzlEQzM3IC8qIF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVQcml2YXRlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlDRDQ5MUIxMzFFNzM0ODIxMDAwMDkwNjYgLyogVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M4OUQyQkExQTZCMEYy
QzAwM0E1RkRFIC8qIF9XS1VzZXJDb250ZW50RmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3
Qzg5RDJCQzFBNkIwRjVCMDAzQTVGREUgLyogX1dLVXNlckNvbnRlbnRGaWx0ZXJJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg2NTMxRTcyMzVBQTAwOTRGREM4IC8qIF9XS1VzZXJD
b250ZW50RmlsdGVyUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC04MDUyLDYgKzgwNzgsNyBA
QAogCQkJCTdDODgyREY5MUM3RTk5NkYwMDZCRjczMSAvKiBfV0tVc2VyQ29udGVudFdvcmxkSW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDQjM2NUFBMUQzMURCNzAwMDcxNThDQSAvKiBf
V0tVc2VySW5pdGlhdGVkQWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0IzNjVBRDFEMzFE
QzEwMDA3MTU4Q0EgLyogX1dLVXNlckluaXRpYXRlZEFjdGlvbkludGVybmFsLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlDRDQ5MUIwRTFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ4Nzg2MUQxQkRCNTRCRjAwRDAy
QUJCIC8qIF9XS1VzZXJTdHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDg3ODYyMDFC
REI1N0Y1MDBEMDJBQkIgLyogX1dLVXNlclN0eWxlU2hlZXRJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUE4MUIzODExOEJENjZBRDAwMDdGREFDIC8qIF9XS1Zpc2l0ZWRMaW5rU3RvcmUu
aCBpbiBIZWFkZXJzICovLApAQCAtODA5Nyw2ICs4MTI0LDcgQEAKIAkJCQkxQTI0NjRGMzE4OTFF
NDUxMDAyMzRDNUIgLyogQVBJTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0Qz
QTQ4MzFBNUQwMkZBMDA5NjIzQjggLyogQVBJTmF2aWdhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkRGOUVFRUMxQTc4MzZFRTAwQjZDRkJFIC8qIEFQSU5hdmlnYXRpb25BY3Rpb24uaCBpbiBI
ZWFkZXJzICovLAorCQkJCUNENDkxQjA4MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkREOUVCMkQxQTZGMDEyNTAwQkIxMjY3
IC8qIEFQSU5hdmlnYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRjY5RkEyMTE3
NkQwMTQwMDQ3MUE1MiAvKiBBUElOYXZpZ2F0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MkRGOUVFRUUxQTc4NkVBRDAwQjZDRkJFIC8qIEFQSU5hdmlnYXRpb25SZXNwb25zZS5oIGluIEhl
YWRlcnMgKi8sCkBAIC04NDIyLDYgKzg0NTAsNyBAQAogCQkJCUUxOEU2OTBDMTY5QjU2M0YwMDlC
NjY3MCAvKiBTZWNJdGVtU2hpbVByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMThFNjkxODE2
OUI2NjdCMDA5QjY2NzAgLyogU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MTREOUY1NzE5MTE5RDM1MDAwMDYzQTcgLyogU2VydmljZXNDb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlDRDQ5MUIxODFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUZERTY1
QTE5NTRBNDJCMDBDNDhGRkEgLyogU2Vzc2lvblN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QTAwMkQ0OTE5NkIzNDVEMDBCOUFENDQgLyogU2Vzc2lvblN0YXRlQ29kaW5nLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3NTNFM0UwRTE4ODczOTg5MDAxODg0OTYgLyogU2Vzc2lvblRyYWNrZXIuaCBp
biBIZWFkZXJzICovLApAQCAtOTYwMSw2ICs5NjMwLDcgQEAKIAkJCQkzNzNEMTIyMjE4QTQ3MzAx
MDA2NkQ5Q0MgLyogX1dLRnJhbWVIYW5kbGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk5M0E4OEIz
OTFCQzcwRjNGMDBBQkE1QzIgLyogX1dLSGl0VGVzdFJlc3VsdC5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTUxMEY1OTEyMURERTI5NzcwMDQxMkZGNSAvKiBfV0tMaW5rSWNvblBhcmFtZXRlcnMubW0g
aW4gU291cmNlcyAqLywKKwkJCQlDRDQ5MUIwRDFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTEx
OEE5RjIxOTA4QjhFQTAwRjdDOTJCIC8qIF9XS05TRmlsZU1hbmFnZXJFeHRyYXMubW0gaW4gU291
cmNlcyAqLywKIAkJCQkxQTQzRTgyOTE4OEYzQ0RDMDA5RTREMzAgLyogX1dLUHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE5RTMyOEUxODIxNjVBOTAwRjVE
MDRDIC8qIF9XS1JlbW90ZU9iamVjdEludGVyZmFjZS5tbSBpbiBTb3VyY2VzICovLApAQCAtOTYz
Nyw2ICs5NjY3LDcgQEAKIAkJCQk1MUQxMjQ5MTFFNzRCRjNDMDAyQjI4MjAgLyogQVBJSFRUUENv
b2tpZVN0b3JlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDRDNBNDgyMUE1RDAyRkEwMDk2MjNC
OCAvKiBBUElOYXZpZ2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRjY5RkEzMTE3NkQw
MTQwMDQ3MUE1MiAvKiBBUElOYXZpZ2F0aW9uRGF0YS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlD
RDQ5MUIxNzFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNjM0MDNGOTE0OTEwRDU3MDAx
MDcwQjUgLyogQVBJT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3OEUxQTNEMTgxRUQ2
RkYwMDMxMDA3QSAvKiBBUElPYmplY3QubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzg1N0ZCNjEy
QjgzMEU2MDBFREVCMkUgLyogQVBJT3BlblBhbmVsUGFyYW1ldGVycy5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTk2NTksNiArOTY5MCw3IEBACiAJCQkJMUEzNjM1QTkxQTMxNDRBMzAwRUQ2MTk3IC8q
IEFQSVdlYnNpdGVEYXRhU3RvcmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEzNjM1QUQxQTMx
NDVFNTAwRUQ2MTk3IC8qIEFQSVdlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTVDQjIzNzkxMURGMEUyRTYwMDExN0FBMyAvKiBBUElXZWJzaXRlUG9saWNpZXMuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q0OTFCMTIxRTczNDgyMTAwMDA5MDY2IC8qIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE2NTYzRTQxQjdB
OEM1MDAwOUNGNzg3IC8qIEFQSVdpbmRvd0ZlYXR1cmVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFBRDRDMTkyMUIzOUYzMzIwMEFCQzI4RSAvKiBBcHBsaWNhdGlvblN0YXRlVHJhY2tlci5tbSBp
biBTb3VyY2VzICovLAogCQkJCTFBM0Q2MTA1MTNBN0YwM0EwMEY5NUQ0RSAvKiBBcmd1bWVudENv
ZGVycy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTEwMTg2LDYgKzEwMjE4LDcgQEAKIAkJCQk3QzQ2
OTREMDFBNTFFMzY4MDBBRDU4NDUgLyogV2ViUGFzdGVib2FyZFByb3h5LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTdDNDY5NENDMUE0QjUxMEEwMEFENTg0NSAvKiBXZWJQYXN0ZWJvYXJkUHJveHlD
b2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDNDY5NEM5MUE0QjRFQTEwMEFENTg0NSAvKiBX
ZWJQYXN0ZWJvYXJkUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
Q0Q0OTFCMDcxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTFBQjFGNzc0MUQxQjJGOEEwMDdDOUJEMSAvKiBXZWJQYXltZW50
Q29vcmRpbmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFCMUY3OTYxRDFCMzYxMzAwN0M5
QkQxIC8qIFdlYlBheW1lbnRDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxQUIxRjc4QjFEMUIzMzU1MDA3QzlCRDEgLyogV2ViUGF5bWVudENvb3JkaW5h
dG9yUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAK
aW5kZXggYWFkZWQzNDRhNzZhZWE2YWI0NzE2MmQ4OTY4Y2NiMmM1ZjA1MGM2Ny4uMzYyMjAyZTBl
ZDYwZTY1Nzc0ZmZjODcwNzBjZDUxNzNkYjVjYjg2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xp
ZW50LmNwcApAQCAtMzMsNyArMzMsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFdlYlVzZXJNZWRp
YUNsaWVudDo6V2ViVXNlck1lZGlhQ2xpZW50KFdlYlBhZ2UmIHBhZ2UpCiAgICAgOiBtX3BhZ2Uo
cGFnZSkKIHsKLSAgICBpbml0aWFsaXplRmFjdG9yaWVzKCk7CiB9CiAKIHZvaWQgV2ViVXNlck1l
ZGlhQ2xpZW50OjpwYWdlRGVzdHJveWVkKCkKQEAgLTYxLDEzICs2MCw2IEBAIHZvaWQgV2ViVXNl
ck1lZGlhQ2xpZW50OjpjYW5jZWxNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3QoTWVkaWFE
ZXZpY2VzRW51bWVyCiAgICAgbV9wYWdlLnVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cigpLmNhbmNlbE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uKHJlcXVlc3QpOwogfQogCi0jaWYgIVBM
QVRGT1JNKENPQ09BKQotdm9pZCBXZWJVc2VyTWVkaWFDbGllbnQ6OmluaXRpYWxpemVGYWN0b3Jp
ZXMoKQotewotCi19Ci0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0OwogCiAjZW5kaWYg
Ly8gTUVESUFfU1RSRUFNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L2NvY29hL1dlYlVzZXJNZWRpYUNsaWVudE1hYy5tbSBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvY29jb2EvV2ViVXNlck1lZGlhQ2xpZW50TWFj
Lm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOGRmMmYxMDE5YmE4NmY2ZmE3YTM2
MTYwNGEwZWEyNzZiZDc1YzFlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvY29jb2Ev
V2ViVXNlck1lZGlhQ2xpZW50TWFjLm1tCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJVc2VyTWVkaWFD
bGllbnQuaCIKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFBMQVRGT1JNKENPQ09BKQot
Ci0jaW1wb3J0IDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KLSNpbXBvcnQg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotbmFt
ZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYlVzZXJNZWRpYUNsaWVudEF1ZGlvRmFjdG9yeSBm
aW5hbCA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSB7Ci1wdWJs
aWM6Ci0gICAgc3RhdGljIFdlYlVzZXJNZWRpYUNsaWVudEF1ZGlvRmFjdG9yeSYgc2luZ2xldG9u
KCkKLSAgICB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxXZWJVc2VyTWVkaWFDbGll
bnRBdWRpb0ZhY3Rvcnk+IGZhY3Rvcnk7Ci0gICAgICAgIHJldHVybiBmYWN0b3J5OwotICAgIH0K
LQotcHJpdmF0ZToKLSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlTWVkaWFT
b3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGNvbnN0IENhcHR1cmVEZXZpY2Um
IGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYgaW52
YWxpZENvbnN0cmFpbnRzKSBmaW5hbCB7Ci0gICAgICAgIGF1dG8qIGZhY3RvcnkgPSBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5kZWZhdWx0QXVkaW9GYWN0b3J5KCk7Ci0g
ICAgICAgIHJldHVybiBmYWN0b3J5ID8gZmFjdG9yeS0+Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0
dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGRldmljZSwgY29uc3RyYWludHMsIGludmFsaWRDb25z
dHJhaW50cykgOiBudWxscHRyOwotICAgIH0KLX07Ci0KLXZvaWQgV2ViVXNlck1lZGlhQ2xpZW50
Ojppbml0aWFsaXplRmFjdG9yaWVzKCkKLXsKLSAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9u
Y2VUb2tlbjsKLSAgICBkaXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4sIF4gewotICAgICAgICBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5zZXRBdWRpb0ZhY3Rv
cnkoV2ViVXNlck1lZGlhQ2xpZW50QXVkaW9GYWN0b3J5OjpzaW5nbGV0b24oKSk7Ci0gICAgfSk7
Ci19Ci0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cAppbmRleCA2YTQxYjRjZjA3M2M4YjAyMjE0MWFhYzVkM2Y1Mzk4YTk5OTUwNzg3Li5hMWVhOTZk
NzljOGY5YWYyNTAyMzJlYzFmMGQ1OTBjNmUxODYyMzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJTZXNzaW9u
VHJhY2tlci5oIgogI2luY2x1ZGUgIlN0YXRpc3RpY3NEYXRhLmgiCiAjaW5jbHVkZSAiVXNlckRh
dGEuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIgogI2luY2x1ZGUgIldl
YkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaCIKICNpbmNsdWRlICJXZWJDb25uZWN0aW9uVG9VSVBy
b2Nlc3MuaCIKICNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyLmgiCkBAIC0xOTEsNiArMTkyLDEw
IEBAIFdlYlByb2Nlc3M6OldlYlByb2Nlc3MoKQogICAgIGFkZFN1cHBsZW1lbnQ8V2ViTWVkaWFL
ZXlTdG9yYWdlTWFuYWdlcj4oKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KyAgICBhZGRTdXBwbGVtZW50PFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyPigpOworI2VuZGlmCisK
ICAgICBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5hZGQoU2Vzc2lvbklEOjpkZWZhdWx0
U2Vzc2lvbklEKCksIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4oKSk7CiAKICAgICBSZXNvdXJj
ZUxvYWRPYnNlcnZlcjo6c2hhcmVkT2JzZXJ2ZXIoKS5zZXRTdGF0aXN0aWNzU3RvcmUobV9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY29weVJlZigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjYyMzdkMGViOWRjMWZiNDE2NDM3ZjcxMjhiMjM0MTc5M2MxOGQyOQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMjI2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgiCisKKyNp
ZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNz
YWdlcy5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldl
YlByb2Nlc3MuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2aWNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRp
YUNvbnN0cmFpbnRzSW1wbC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIHVp
bnQ2NF90IG5leHRTZXNzaW9uSUQoKQoreworICAgIHN0YXRpYyB1aW50NjRfdCBuZXh0SUQgPSAw
OworICAgIHJldHVybiArK25leHRJRDsKK30KKworY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OlNvdXJjZSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlIHsKK3B1YmxpYzoKKyAgICBT
b3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyY2VJRCwgVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIG5h
bWUsIHVpbnQ2NF90IGlkLCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlcikKKyAgICAg
ICAgOiBSZWFsdGltZU1lZGlhU291cmNlKHNvdXJjZUlELCB0eXBlLCBuYW1lKQorICAgICAgICAs
IG1faWQoaWQpCisgICAgICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCisgICAgICAgICwgbV9yaW5n
QnVmZmVyKG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG51bGxwdHIpKQor
ICAgIHsKKyAgICB9CisKKyAgICB+U291cmNlKCkKKyAgICB7CisgICAgICAgIHN0b3JhZ2UoKS5p
bnZhbGlkYXRlKCk7CisgICAgfQorCisgICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3Jh
Z2UoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmlu
Z0J1ZmZlci5zdG9yYWdlKCkpOyB9CisgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY2FwYWJpbGl0
aWVzOyB9CisgICAgdm9pZCBzZXRDYXBhYmlsaXRpZXMoUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcykgeyBtX2NhcGFiaWxpdGllcyA9IGNhcGFiaWxp
dGllczsgfQorCisgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5n
cygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0KKyAgICB2b2lkIHNldFNldHRp
bmdzKGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MpCisgICAgewor
ICAgICAgICBtX3NldHRpbmdzID0gc2V0dGluZ3M7CisgICAgICAgIHNldHRpbmdzRGlkQ2hhbmdl
KCk7CisgICAgfQorCisgICAgY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlw
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGVzY3JpcHRpb247IH0KKyAgICB2b2lkIHNldFN0b3Jh
Z2UoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhhbmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFt
ZXMpCisgICAgeworICAgICAgICBtX2Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CisgICAgICAg
IGlmIChoYW5kbGUuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgIG1fcmluZ0J1ZmZlci5kZWFsbG9j
YXRlKCk7CisgICAgICAgICAgICBzdG9yYWdlKCkuc2V0UmVhZE9ubHkoZmFsc2UpOworICAgICAg
ICAgICAgc3RvcmFnZSgpLnNldFN0b3JhZ2UobnVsbHB0cik7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtZW1vcnkgPSBTaGFy
ZWRNZW1vcnk6Om1hcChoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkp
OworICAgICAgICBzdG9yYWdlKCkuc2V0U3RvcmFnZShXVEZNb3ZlKG1lbW9yeSkpOworICAgICAg
ICBzdG9yYWdlKCkuc2V0UmVhZE9ubHkodHJ1ZSk7CisKKyAgICAgICAgbV9yaW5nQnVmZmVyLmFs
bG9jYXRlKGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisgICAgfQorCisgICAgdm9pZCBz
ZXRSaW5nQnVmZmVyRnJhbWVCb3VuZHModWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5k
RnJhbWUpCisgICAgeworICAgICAgICBtX3JpbmdCdWZmZXIuc2V0Q3VycmVudEZyYW1lQm91bmRz
KHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAgICB9CisKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2
YWlsYWJsZShNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisgICAgewor
ICAgICAgICBXZWJBdWRpb0J1ZmZlckxpc3QgYXVkaW9EYXRhKG1fZGVzY3JpcHRpb24sIG51bWJl
ck9mRnJhbWVzKTsKKyAgICAgICAgbV9yaW5nQnVmZmVyLmZldGNoKGF1ZGlvRGF0YS5saXN0KCks
IG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsKKworICAgICAgICBmb3IgKGF1dG8q
IG9ic2VydmVyIDogb2JzZXJ2ZXJzKCkpCisgICAgICAgICAgICBvYnNlcnZlci0+YXVkaW9TYW1w
bGVzQXZhaWxhYmxlKHRpbWUsIGF1ZGlvRGF0YSwgbV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFt
ZXMpOworICAgIH0KKworICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWwgeyBtX21h
bmFnZXIuc3RhcnRQcm9kdWNpbmdEYXRhKG1faWQpOyB9CisgICAgdm9pZCBzdG9wUHJvZHVjaW5n
RGF0YSgpIGZpbmFsIHsgbV9tYW5hZ2VyLnN0b3BQcm9kdWNpbmdEYXRhKG1faWQpOyB9CisKKyAg
ICBBdWRpb1NvdXJjZVByb3ZpZGVyKiBhdWRpb1NvdXJjZVByb3ZpZGVyKCkgZmluYWwgeyByZXR1
cm4gbnVsbHB0cjsgfQorCitwcml2YXRlOgorICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2UKKyAg
ICB2b2lkIGJlZ2luQ29uZmlndXJhdGlvbigpIGZpbmFsIHsgfQorICAgIHZvaWQgY29tbWl0Q29u
ZmlndXJhdGlvbigpIGZpbmFsIHsgfQorCisgICAgdWludDY0X3QgbV9pZDsKKyAgICBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlciYgbV9tYW5hZ2VyOworICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKKyAgICBSZWFsdGltZU1lZGlhU291cmNl
U2V0dGluZ3MgbV9zZXR0aW5nczsKKyAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNj
cmlwdGlvbjsKKyAgICBDQVJpbmdCdWZmZXIgbV9yaW5nQnVmZmVyOworfTsKKworVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKFdlYlByb2Nlc3MqIHByb2Nl
c3MpCisgICAgOiBtX3Byb2Nlc3MoKnByb2Nlc3MpCit7CisgICAgbV9wcm9jZXNzLmFkZE1lc3Nh
Z2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSwgKnRoaXMpOworfQorCitVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6flVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyKCkKK3sKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
aW5nbGV0b24oKS51bnNldEF1ZGlvRmFjdG9yeSgqdGhpcyk7CisgICAgbV9wcm9jZXNzLnJlbW92
ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSk7Cit9CisKK2NvbnN0IGNoYXIqIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpzdXBwbGVtZW50TmFtZSgpCit7CisgICAgcmV0dXJuICJVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlciI7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmluaXRpYWxpemUoY29u
c3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKK3sKKyAgICBpZiAo
cGFyYW1ldGVycy5zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcykKKyAgICAgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0QXVkaW9GYWN0b3J5KCp0aGlzKTsK
K30KKworUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoY29uc3Qg
Q2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cywgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMpCit7CisgICAgaWYgKCFjb25zdHJhaW50cykK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICB1aW50NjRfdCBpZCA9IG5leHRTZXNzaW9u
SUQoKTsKKyAgICBNZWRpYUNvbnN0cmFpbnRzRGF0YSBjb25zdHJhaW50c0RhdGE7CisgICAgY29u
c3RyYWludHNEYXRhLm1hbmRhdG9yeUNvbnN0cmFpbnRzID0gY29uc3RyYWludHMtPm1hbmRhdG9y
eUNvbnN0cmFpbnRzKCk7CisgICAgY29uc3RyYWludHNEYXRhLmFkdmFuY2VkQ29uc3RyYWludHMg
PSBjb25zdHJhaW50cy0+YWR2YW5jZWRDb25zdHJhaW50cygpOworICAgIGNvbnN0cmFpbnRzRGF0
YS5pc1ZhbGlkID0gY29uc3RyYWludHMtPmlzVmFsaWQoKTsKKyAgICBib29sIHN1Y2NlZWRlZDsK
KworICAgIG1fcHJvY2Vzcy5zZW5kU3luYyhNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRz
KGlkLCBkZXZpY2UsIGNvbnN0cmFpbnRzRGF0YSksIE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3Ry
YWludHM6OlJlcGx5KHN1Y2NlZWRlZCwgaW52YWxpZENvbnN0cmFpbnRzKSwgMCk7CisKKyAgICBh
dXRvIHNvdXJjZSA9IGFkb3B0UmVmKG5ldyBTb3VyY2UoU3RyaW5nOjpudW1iZXIoaWQpLCBSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgZGV2aWNlLmxhYmVsKCksIGlkLCAqdGhpcykp
OworICAgIG1fc291cmNlcy5zZXQoaWQsIHNvdXJjZSk7CisgICAgcmV0dXJuIHNvdXJjZTsKK30K
Kwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlU3RvcHBlZCh1aW50NjRfdCBp
ZCkKK3sKKyAgICBBU1NFUlQobV9zb3VyY2VzLmNvbnRhaW5zKGlkKSk7CisgICAgbV9zb3VyY2Vz
LmdldChpZCktPnN0b3AoKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291
cmNlTXV0ZWRDaGFuZ2VkKHVpbnQ2NF90IGlkLCBib29sIG11dGVkKQoreworICAgIEFTU0VSVCht
X3NvdXJjZXMuY29udGFpbnMoaWQpKTsKKyAgICBtX3NvdXJjZXMuZ2V0KGlkKS0+c2V0TXV0ZWQo
bXV0ZWQpOworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VFbmFibGVk
Q2hhbmdlZCh1aW50NjRfdCBpZCwgYm9vbCBlbmFibGVkKQoreworICAgIEFTU0VSVChtX3NvdXJj
ZXMuY29udGFpbnMoaWQpKTsKKyAgICBtX3NvdXJjZXMuZ2V0KGlkKS0+c2V0RW5hYmxlZChlbmFi
bGVkKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlU2V0dGluZ3ND
aGFuZ2VkKHVpbnQ2NF90IGlkLCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNl
dHRpbmdzKQoreworICAgIEFTU0VSVChtX3NvdXJjZXMuY29udGFpbnMoaWQpKTsKKyAgICBtX3Nv
dXJjZXMuZ2V0KGlkKS0+c2V0U2V0dGluZ3Moc2V0dGluZ3MpOworfQorCit2b2lkIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpzdG9yYWdlQ2hhbmdlZCh1aW50NjRfdCBpZCwgY29uc3QgU2hhcmVk
TWVtb3J5OjpIYW5kbGUmIGhhbmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uJiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7CisgICAgQVNT
RVJUKG1fc291cmNlcy5jb250YWlucyhpZCkpOworICAgIG1fc291cmNlcy5nZXQoaWQpLT5zZXRT
dG9yYWdlKGhhbmRsZSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKK30KKwordm9pZCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6cmluZ0J1ZmZlckZyYW1lQm91bmRzQ2hhbmdlZCh1aW50
NjRfdCBpZCwgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCit7CisgICAg
QVNTRVJUKG1fc291cmNlcy5jb250YWlucyhpZCkpOworICAgIG1fc291cmNlcy5nZXQoaWQpLT5z
ZXRSaW5nQnVmZmVyRnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOworfQorCit2b2lk
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjphdWRpb1NhbXBsZXNBdmFpbGFibGUodWludDY0X3Qg
aWQsIE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3Rh
cnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCit7CisgICAgQVNTRVJUKG1fc291cmNlcy5jb250
YWlucyhpZCkpOworICAgIGF1dG8mIHNvdXJjZSA9ICptX3NvdXJjZXMuZ2V0KGlkKTsKKyAgICBz
b3VyY2Uuc2V0UmluZ0J1ZmZlckZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAg
ICBzb3VyY2UuYXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIG51bWJlck9mRnJhbWVzKTsKK30K
Kwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2
NF90IGlkKQoreworICAgIG1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5OjpTdGFydFByb2R1Y2luZ0RhdGEoaWQpLCAwKTsKK30KKwordm9pZCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6c3RvcFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCit7Cisg
ICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OlN0b3BQcm9kdWNpbmdEYXRhKGlkKSwgMCk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNmEzMjY2NjJhNjM5NzY4NzI4OWI1NTU1NDFjYTNkZmJkYTYwN2Zj
YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5o
IgorI2luY2x1ZGUgIldlYlByb2Nlc3NTdXBwbGVtZW50LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9S
ZWFsdGltZU1lZGlhU291cmNlLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworY2xhc3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uOworfQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgQ3Jvc3NQcm9jZXNzUmVhbHRpbWVBdWRpb1NvdXJjZTsK
K2NsYXNzIFdlYlByb2Nlc3M7CisKK2NsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIDogcHVi
bGljIFdlYlByb2Nlc3NTdXBwbGVtZW50LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1
YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSB7CitwdWJs
aWM6CisgICAgZXhwbGljaXQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIoV2ViUHJvY2VzcyopOwor
ICAgIH5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlcigpOworCisgICAgc3RhdGljIGNvbnN0IGNoYXIq
IHN1cHBsZW1lbnROYW1lKCk7CisKK3ByaXZhdGU6CisgICAgLy8gV2ViUHJvY2Vzc1N1cHBsZW1l
bnQKKyAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cyYpIGZpbmFsOworCisgICAgLy8gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6RmFjdG9y
eToKKyAgICBSZWZQdHI8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlTWVkaWFT
b3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJikgZmlu
YWw7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICAvLyBN
ZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIKKyAgICB2b2lkIHNvdXJjZVN0b3BwZWQo
dWludDY0X3QgaWQpOworICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKHVpbnQ2NF90IGlkLCBi
b29sIG11dGVkKTsKKyAgICB2b2lkIHNvdXJjZUVuYWJsZWRDaGFuZ2VkKHVpbnQ2NF90IGlkLCBi
b29sIGVuYWJsZWQpOworICAgIHZvaWQgc291cmNlU2V0dGluZ3NDaGFuZ2VkKHVpbnQ2NF90IGlk
LCBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmKTsKKyAgICB2b2lk
IHN0b3JhZ2VDaGFuZ2VkKHVpbnQ2NF90IGlkLCBjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYs
IGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQ2NF90IG51bWJl
ck9mRnJhbWVzKTsKKyAgICB2b2lkIHJpbmdCdWZmZXJGcmFtZUJvdW5kc0NoYW5nZWQodWludDY0
X3QgaWQsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKKyAgICB2b2lk
IGF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh1aW50NjRfdCBpZCwgTWVkaWFUaW1lLCB1aW50NjRfdCBu
dW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOwor
CisgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QpOworICAgIHZvaWQgc3RvcFBy
b2R1Y2luZ0RhdGEodWludDY0X3QpOworCisgICAgY2xhc3MgU291cmNlOworICAgIGZyaWVuZCBj
bGFzcyBTb3VyY2U7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFNvdXJjZT4+IG1fc291
cmNlczsKKyAgICBXZWJQcm9jZXNzJiBtX3Byb2Nlc3M7Cit9OworCit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWVjMDU2NWM2ODY0
YTQ2YjAwZTlmOGZiOTEwYzE4Yzg5ZTllNGExMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMu
aW4KQEAgLTAsMCArMSwzMSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6
CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
IyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KworbWVzc2FnZXMgLT4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgeworICAgIFNvdXJjZVN0b3Bw
ZWQodWludDY0X3QgaWQpCisgICAgU291cmNlTXV0ZWRDaGFuZ2VkKHVpbnQ2NF90IGlkLCBib29s
IG11dGVkKQorICAgIFNvdXJjZUVuYWJsZWRDaGFuZ2VkKHVpbnQ2NF90IGlkLCBib29sIGVuYWJs
ZWQpCisgICAgU291cmNlU2V0dGluZ3NDaGFuZ2VkKHVpbnQ2NF90IGlkLCBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MpCisgICAgU3RvcmFnZUNoYW5nZWQodWlu
dDY0X3QgaWQsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUgc3RvcmFnZUhhbmRsZSwgV2Vi
Q29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1i
ZXJPZkZyYW1lcykKKyAgICBBdWRpb1NhbXBsZXNBdmFpbGFibGUodWludDY0X3QgaWQsIE1lZGlh
VGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwg
dWludDY0X3QgZW5kRnJhbWUpCit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304539</attachid>
            <date>2017-03-15 13:42:38 -0700</date>
            <delta_ts>2017-03-15 20:20:01 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-169609-20170315134238.patch</filename>
            <type>text/plain</type>
            <size>67411</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzOTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWIwYTBhN2E3ZmMyM2Jl
ZmIwYmFhOGI4MTMxNGIyN2M4YmIwYzM0MS4uY2I5YjdkNjJhM2FiMDY2M2I1ZGY0NmIwZGUwYjQy
NGMyMDg2OWMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTAzLTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIE9wdGlvbmFsbHkgY2FwdHVy
ZSBhdWRpbyBpbiB0aGUgVUlQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjk2MDkKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlz
dGVuc2VuLgorCisgICAgICAgIEV4cG9ydCBzb21lIHByZXZpb3VzbHkgdW4tZXhwb3J0ZWQgc3lt
Ym9scyBmcm9tIFdlYkNvcmUgZm9yIHVzZSBpbiBXZWJLaXQyLgorCisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1dl
YkF1ZGlvQnVmZmVyTGlzdC5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2UuaDoKKwogMjAxNy0wMy0xNSAgQW50b2luZSBRdWludCAgPGdyYW91dHNA
YXBwbGUuY29tPgogCiAgICAgICAgIFtNb2Rlcm4gTWVkaWEgQ29udHJvbHNdIEFsd2F5cyB1c2Ug
c2l4IGRpZ2l0cyB0byBkaXNwbGF5IHRpbWUgd2hlbiBvdmVyYWxsIG1lZGlhIGR1cmF0aW9uIGlz
IGFuIGhvdXIgb3IgbW9yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDEyMTU4MGE3NWNiZmFiZmY3ZjQ0NjIxZTYz
NTFiNDY2NzA2ZWY4NWUuLjEyNGEzZDUxOWI2NTVkZDE2ZGI5YWRmYTRlNGM4NTBhOWFkOWMyZWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4OSBAQAorMjAxNy0wMy0xNCAgSmVyIE5vYmxlICA8amVy
Lm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBPcHRpb25hbGx5IGNhcHR1cmUgYXVkaW8gaW4g
dGhlIFVJUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTY5NjA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKwor
ICAgICAgICBBZGQgYSBuZXcgY2xhc3MgcGFpciwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIvUHJv
eHksIHRvIGFsbG93IGEgUmVhbHRpbWVNZWRpYVNvdXJjZQorICAgICAgICByZXF1ZXN0ZWQgaW4g
YSBXZWJQcm9jZXNzIHRvIGJlIGNyZWF0ZWQgaW4gdGhlIFVJUHJvY2VzcyBhbmQgcHVzaCBpdHMg
YXVkaW8gZGF0YSBhY3Jvc3MgdGhlCisgICAgICAgIHByb2Nlc3MgYm91bmRhcnkgdG8gaXRzIGNs
aWVudHMgaW4gdGhlIFdlYlByb2Nlc3MuIEJlY2F1c2UgdGhlc2UgY2xhc3NlcyBhcmUgY2xpZW50
cyBvZiB0aGUKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCks
IHRoZXkgbXVzdCBiZSBhIHNpbmdsZXRvbiBpbiB0aGUgV2ViUHJvY2VzcyBhcyB3ZWxsLAorICAg
ICAgICBzbyB0aGV5IGFyZSBhdHRhY2hlZCB0byB0aGUgV2ViUHJvY2VzcyBjbGFzcyBpbiB0aGUg
d2ViIHByb2Nlc3MgYW5kIHRvIFdlYlByb2Nlc3NQcm94eSBpbgorICAgICAgICB0aGUgVUlQcm9j
ZXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6U291cmNlUHJveHk6OlNvdXJjZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6On5Tb3VyY2VQcm94eSk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5
Ojpzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjpTb3VyY2VQcm94eTo6ZGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94eTo6bnVtYmVyT2ZGcmFtZXMpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6flVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVE
ZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5OjpzdGFydFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViS2l0OjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzdG9wUHJvZHVjaW5nRGF0YSk6CisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6cHJvY2Vzcyk6CisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW46IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6bmV4dFNlc3Npb25JRCk6CisgICAg
ICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OlNvdXJjZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6On5Tb3VyY2Up
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpzZXRD
YXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
U291cmNlOjpzZXRTZXR0aW5ncyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjpTb3VyY2U6OmRlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6c2V0U3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnNldFJpbmdCdWZmZXJGcmFtZUJvdW5kcyk6
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OmF1ZGlv
U2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIpOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1
cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6c291cmNlU3RvcHBlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyOjpzb3VyY2VNdXRlZENoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlRW5hYmxlZENoYW5nZWQpOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlU2V0dGluZ3NDaGFuZ2VkKToKKyAg
ICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN0b3JhZ2VDaGFuZ2VkKToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnJpbmdCdWZmZXJGcmFt
ZUJvdW5kc0NoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OnN0YXJ0UHJvZHVjaW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpzdG9wUHJvZHVjaW5nRGF0YSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRl
ZC4KKworICAgICAgICBJbml0aWFsaXplIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyL1Byb3h5Ogor
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNz
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHkpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKToKKworICAgICAg
ICBXZWJVc2VyTWVkaWFDbGllbnRNYWMgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeSBub3cgdGhhdCB0
aGUgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgb3ZlcnJpZGVzCisgICAgICAgIHRoZSBmYWN0b3Jp
ZXM6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNs
aWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVudDo6V2ViVXNlck1l
ZGlhQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50Ojppbml0aWFs
aXplRmFjdG9yaWVzKTogRGVsZXRlZC4KKworICAgICAgICBBZGQgYSBuZXcgcHJlZmVyZW5jZSBh
bmQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBtZW1iZXIgdG8gY29udHJvbCB3aGV0aGVy
CisgICAgICAgIGNhcHR1cmluZyBpcyBkb25lIGluIHRoZSBVSVByb2Nlc3M6CisKKyAgICAgICAg
KiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oOgorICAgICAgICAqIFNoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorCisgICAgICAgIEFkZCBuZXcgZmlsZXMgdG8gdGhl
IHByb2plY3Q6CisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFdl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxNy0wMy0xNSAgRGVhbiBKYWNr
c29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgU29ydCBYY29kZSBwcm9qZWN0IGZpbGVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggZmU5ODlkZDY2YWQ3ZGMyNTNhYTU3YWE0YjczNmI1OWJmODU4MWMzYy4uM2NhNDBlNzg1
YWZhOWUwZTQ3YTBmZGE4MWYzZGE4NWUwYTM5ZmRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjE2OSw3ICs2MTY5LDcgQEAK
IAkJQ0RFNTk1OTcxQkYyNkUyMTAwQTFDQkU4IC8qIENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9i
akMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTU5
NTk2MUJGMjZFMjEwMEExQ0JFOCAvKiBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmggKi87
IH07CiAJCUNERTU5NTlEMUJGMjc1NzEwMEExQ0JFOCAvKiBDRE1TZXNzaW9uTWVkaWFTb3VyY2VB
VkZPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0RFNTk1OUMxQkYyNzU3MTAwQTFDQkU4IC8qIENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMu
bW0gKi87IH07CiAJCUNERTY2N0E0MUU0QkJGMTUwMEU4MTU0QSAvKiBXZWJBdWRpb0J1ZmZlckxp
c3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RF
NjY3QTIxRTRCQkYxNTAwRTgxNTRBIC8qIFdlYkF1ZGlvQnVmZmVyTGlzdC5jcHAgKi87IH07Ci0J
CUNERTY2N0E1MUU0QkJGMTUwMEU4MTU0QSAvKiBXZWJBdWRpb0J1ZmZlckxpc3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTY2N0EzMUU0QkJGMTUw
MEU4MTU0QSAvKiBXZWJBdWRpb0J1ZmZlckxpc3QuaCAqLzsgfTsKKwkJQ0RFNjY3QTUxRTRCQkYx
NTAwRTgxNTRBIC8qIFdlYkF1ZGlvQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3QTMxRTRCQkYxNTAwRTgxNTRBIC8qIFdlYkF1
ZGlvQnVmZmVyTGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUNERTdGQzQ0MTgxOTA0QjEwMDJCQkI3NyAvKiBPcmRlckl0ZXJhdG9yLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTdGQzQyMTgx
OTA0QjEwMDJCQkI3NyAvKiBPcmRlckl0ZXJhdG9yLmNwcCAqLzsgfTsKIAkJQ0RFN0ZDNDUxODE5
MDRCMTAwMkJCQjc3IC8qIE9yZGVySXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTdGQzQzMTgxOTA0QjEwMDJCQkI3NyAvKiBPcmRlckl0
ZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQ0RFODNEQjExODNDNDQwNjAwMzFFQUEzIC8qIFZpZGVvUGxheWJhY2tRdWFsaXR5LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTgzREFGMTgz
QzQ0MDYwMDMxRUFBMyAvKiBWaWRlb1BsYXliYWNrUXVhbGl0eS5jcHAgKi87IH07CkBAIC02MTg2
LDYgKzYxODYsNyBAQAogCQlDREVBN0M4NTEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNj
cmVlbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
REVBN0M4MzEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNjcmVlbi5jcHAgKi87IH07CiAJ
CUNERUUzOTM3MTc5NzQyNTkwMDFENzU4MCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERUUzOTM2MTc5NzQyNTkw
MDFENzU4MCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmNwcCAqLzsgfTsKIAkJQ0RFRjRGRDcxN0U4NUM4
RjAwQUVFMjRCIC8qIEdyaWRMZW5ndGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENERUY0RkQ2MTdFODVDOEYwMEFFRTI0QiAvKiBHcmlkTGVuZ3RoLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RFRkEy
MjgxRTc2NjlFODAwMEFFOTlDIC8qIFBsYXRmb3JtQXVkaW9EYXRhLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREU2NjdBMTFFNEJCQTREMDBFODE1NEEg
LyogUGxhdGZvcm1BdWRpb0RhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlDREYyQjAwNDE4MUYwNTlDMDBGMkI0MjQgLyogTWVkaWFEZXNjcmlw
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RG
MkIwMDMxODFGMDU5QzAwRjJCNDI0IC8qIE1lZGlhRGVzY3JpcHRpb24uaCAqLzsgfTsKIAkJQ0RG
MkIwMTAxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tCb3guY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGMkIwMDYxODIwNTQwNjAwRjJCNDI0IC8qIE1v
Y2tCb3guY3BwICovOyB9OwogCQlDREYyQjAxMTE4MjA1NDA2MDBGMkI0MjQgLyogTW9ja0JveC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGMkIwMDcx
ODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tCb3guaCAqLzsgfTsKQEAgLTI2OTg0LDYgKzI2OTg1LDcg
QEAKIAkJCQlGRDMxNjA5OTEyQjAyNkY3MDBDMUEzNTkgLyogSFJURkRhdGFiYXNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGRDMxNjA5QjEyQjAyNkY3MDBDMUEzNTkgLyogSFJURkRhdGFiYXNlTG9h
ZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA5RDEyQjAyNkY3MDBDMUEzNTkgLyogSFJU
RkVsZXZhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0RFRkEyMjgxRTc2NjlFODAwMEFFOTlD
IC8qIFBsYXRmb3JtQXVkaW9EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA5RjEyQjAy
NkY3MDBDMUEzNTkgLyogSFJURktlcm5lbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwQTEx
MkIwMjZGNzAwQzFBMzU5IC8qIEhSVEZQYW5uZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTdF
MjNBMTA5MTQ0OTUwMDEwRDM2MSAvKiBIVE1MQWxsQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9XZWJBdWRpb0J1ZmZl
ckxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1dlYkF1ZGlvQnVmZmVyTGlz
dC5oCmluZGV4IGJiZjNjMTM5YjYyNWU3YjRjNzlhZjg0MjQxMzhiNTA0MDczMTg1YTguLmRiNjVk
MzUzNGUzYmE1ZTc4NzljZjJmNGQ5Njg0MDgwYzA0ZjYxNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1dlYkF1ZGlvQnVmZmVyTGlzdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1dlYkF1ZGlvQnVmZmVyTGlzdC5oCkBAIC00Miw3ICs0Miw3
IEBAIGNsYXNzIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKIGNsYXNzIFdlYkF1ZGlvQnVmZmVy
TGlzdCA6IHB1YmxpYyBQbGF0Zm9ybUF1ZGlvRGF0YSB7CiBwdWJsaWM6CiAgICAgV2ViQXVkaW9C
dWZmZXJMaXN0KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYpOwotICAgIFdlYkF1ZGlv
QnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCB1aW50MzJfdCBzYW1w
bGVDb3VudCk7CisgICAgV0VCQ09SRV9FWFBPUlQgV2ViQXVkaW9CdWZmZXJMaXN0KGNvbnN0IENB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQzMl90IHNhbXBsZUNvdW50KTsKICAgICBXZWJB
dWRpb0J1ZmZlckxpc3QoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgQ01TYW1wbGVC
dWZmZXJSZWYpOwogCiAgICAgQXVkaW9CdWZmZXJMaXN0KiBsaXN0KCkgY29uc3QgeyByZXR1cm4g
bV9saXN0LmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9tYWMvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9tYWMvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgKaW5kZXggZjdjNWU4MGQwODFk
OTJhYzY1Mjc3MmJiNTc1ODliMWFjMmIyN2ZlMS4uODE3MjQ2ZDQwZWJjYTZjOWJkOGRjZWI1NjRl
NThiNDBlZGIyMWMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
bWFjL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL21hYy9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaApAQCAtOTAsMzEgKzkwLDEz
IEBAIHByaXZhdGU6CiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb246OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29k
ZXIgPDwgbV9zdHJlYW1EZXNjcmlwdGlvbi5tU2FtcGxlUmF0ZQotICAgICAgICA8PCBtX3N0cmVh
bURlc2NyaXB0aW9uLm1Gb3JtYXRJRAotICAgICAgICA8PCBtX3N0cmVhbURlc2NyaXB0aW9uLm1G
b3JtYXRGbGFncwotICAgICAgICA8PCBtX3N0cmVhbURlc2NyaXB0aW9uLm1CeXRlc1BlclBhY2tl
dAotICAgICAgICA8PCBtX3N0cmVhbURlc2NyaXB0aW9uLm1GcmFtZXNQZXJQYWNrZXQKLSAgICAg
ICAgPDwgbV9zdHJlYW1EZXNjcmlwdGlvbi5tQnl0ZXNQZXJGcmFtZQotICAgICAgICA8PCBtX3N0
cmVhbURlc2NyaXB0aW9uLm1DaGFubmVsc1BlckZyYW1lCi0gICAgICAgIDw8IG1fc3RyZWFtRGVz
Y3JpcHRpb24ubUJpdHNQZXJDaGFubmVsCi0gICAgICAgIDw8IG1fc3RyZWFtRGVzY3JpcHRpb24u
bVJlc2VydmVkOwotICAgIGVuY29kZXIuZW5jb2RlRW51bShtX2Zvcm1hdCk7CisgICAgZW5jb2Rl
ci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4o
Jm1fc3RyZWFtRGVzY3JpcHRpb24pLCBzaXplb2YobV9zdHJlYW1EZXNjcmlwdGlvbiksIDEpOwog
fQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgogYm9vbCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b246OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRl
c2NyaXB0aW9uKQogewotICAgIHJldHVybiBkZWNvZGVyLmRlY29kZShkZXNjcmlwdGlvbi5tX3N0
cmVhbURlc2NyaXB0aW9uLm1TYW1wbGVSYXRlKQotICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShk
ZXNjcmlwdGlvbi5tX3N0cmVhbURlc2NyaXB0aW9uLm1Gb3JtYXRJRCkKLSAgICAgICAgJiYgZGVj
b2Rlci5kZWNvZGUoZGVzY3JpcHRpb24ubV9zdHJlYW1EZXNjcmlwdGlvbi5tRm9ybWF0RmxhZ3Mp
Ci0gICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGRlc2NyaXB0aW9uLm1fc3RyZWFtRGVzY3JpcHRp
b24ubUJ5dGVzUGVyUGFja2V0KQotICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShkZXNjcmlwdGlv
bi5tX3N0cmVhbURlc2NyaXB0aW9uLm1GcmFtZXNQZXJQYWNrZXQpCi0gICAgICAgICYmIGRlY29k
ZXIuZGVjb2RlKGRlc2NyaXB0aW9uLm1fc3RyZWFtRGVzY3JpcHRpb24ubUJ5dGVzUGVyRnJhbWUp
Ci0gICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGRlc2NyaXB0aW9uLm1fc3RyZWFtRGVzY3JpcHRp
b24ubUNoYW5uZWxzUGVyRnJhbWUpCi0gICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGRlc2NyaXB0
aW9uLm1fc3RyZWFtRGVzY3JpcHRpb24ubUJpdHNQZXJDaGFubmVsKQotICAgICAgICAmJiBkZWNv
ZGVyLmRlY29kZShkZXNjcmlwdGlvbi5tX3N0cmVhbURlc2NyaXB0aW9uLm1SZXNlcnZlZCkKLSAg
ICAgICAgJiYgZGVjb2Rlci5kZWNvZGVFbnVtKGRlc2NyaXB0aW9uLm1fZm9ybWF0KTsKKyAgICBy
ZXR1cm4gZGVjb2Rlci5kZWNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDx1aW50
OF90Kj4oJmRlc2NyaXB0aW9uLm1fc3RyZWFtRGVzY3JpcHRpb24pLCBzaXplb2YoZGVzY3JpcHRp
b24ubV9zdHJlYW1EZXNjcmlwdGlvbiksIDEpOwogfQogCiBpbmxpbmUgQ0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uIHRvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mIGRlc2NyaXB0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vbWFjL0NBUmluZ0J1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vbWFjL0NBUmluZ0J1ZmZlci5oCmluZGV4IDVhYWI0OTI3ZGUwYWQ5N2Y4YjgxNTgxMjQyOWFm
ZTk2YjQ3YjUzMWIuLjQ1YzU1ZGMxMzAxODE4MjFkNjA4ZThiNzNhZDdmNzY0NWZkZjgyMTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9DQVJpbmdCdWZmZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmgK
QEAgLTg1LDYgKzg1LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q3Vy
cmVudEZyYW1lQm91bmRzKHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsK
IAogICAgIHVpbnQzMl90IGNoYW5uZWxDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hhbm5lbENv
dW50OyB9CisgICAgQ0FSaW5nQnVmZmVyU3RvcmFnZSYgc3RvcmFnZSgpIHsgcmV0dXJuIG1fYnVm
ZmVyczsgfQogCiBwcml2YXRlOgogICAgIHNpemVfdCBmcmFtZU9mZnNldCh1aW50NjRfdCBmcmFt
ZU51bWJlcikgeyByZXR1cm4gKGZyYW1lTnVtYmVyICYgbV9mcmFtZUNvdW50TWFzaykgKiBtX2J5
dGVzUGVyRnJhbWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCA2OTQ2N2JmY2Y4MjQwMWQ2MWU1
N2RmNTM3ZTVkNWViMTE1YjUwMWYxLi5lOWM1ZjNjNTk4YThjYzE3NzcxNzQ0MDgyNDNiMTRiNWU4
NDJiMjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC02MSw3ICs2MSw3IEBAIGNsYXNzIE1lZGlh
U3RyZWFtUHJpdmF0ZTsKIGNsYXNzIFBsYXRmb3JtQXVkaW9EYXRhOwogY2xhc3MgUmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzOwogCi1jbGFzcyBSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGlj
IFJlZkNvdW50ZWQ8UmVhbHRpbWVNZWRpYVNvdXJjZT4geworY2xhc3MgV0VCQ09SRV9FWFBPUlQg
UmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBSZWZDb3VudGVkPFJlYWx0aW1lTWVkaWFTb3Vy
Y2U+IHsKIHB1YmxpYzoKICAgICBjbGFzcyBPYnNlcnZlciB7CiAgICAgcHVibGljOgpAQCAtMjAw
LDYgKzIwMCw4IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgYXBwbHlDb25zdHJhaW50
cyhjb25zdCBGbGF0dGVuZWRDb25zdHJhaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIGFwcGx5U2l6
ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0aW9uYWw8aW50
PiBoZWlnaHQsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPik7CiAKKyAgICBjb25zdCBWZWN0b3I8T2Jz
ZXJ2ZXIqPiBvYnNlcnZlcnMoKSBjb25zdCB7IHJldHVybiBtX29ic2VydmVyczsgfQorCiAgICAg
Ym9vbCBtX211dGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fZW5hYmxlZCB7IHRydWUgfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9X
ZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggOTk0OTJmZmFlYTE0NGVlNGM3ZjRlNWVl
NWQ5MWUzZjY2YjhiNWU1MC4uOWRlZjM3MDRiNzRkNDU4OGJhZGMwYjQyYzEyMDcwN2NhZmQ5MWM0
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC00NSw2ICs0NSw3IEBAIFZQQVRI
ID0gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBcCiAgICAgJChXZWJL
aXQyKS9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNz
L01lZGlhQ2FjaGUgXAorICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbSBcCiAg
ICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL05ldHdvcmsgXAogICAgICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0YyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMgXApAQCAtNjUsNiArNjYsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIpL1VJUHJv
Y2Vzcy9Db2NvYSBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvRGF0YWJhc2VzIFwKICAgICAk
KFdlYktpdDIpL1VJUHJvY2Vzcy9Eb3dubG9hZHMgXAorICAgICQoV2ViS2l0MikvVUlQcm9jZXNz
L01lZGlhU3RyZWFtIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9OZXR3b3JrIFwKICAgICAk
KFdlYktpdDIpL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scyBcCiAgICAgJChXZWJL
aXQyKS9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucyBcCkBAIC0xMjEsNiArMTIzLDggQEAgTUVTU0FH
RV9SRUNFSVZFUlMgPSBcCiAgICAgU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlciBcCiAgICAg
U3RvcmFnZUFyZWFNYXAgXAogICAgIFN0b3JhZ2VNYW5hZ2VyIFwKKyAgICBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlciBcCisgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSBcCiAgICAgVmll
d0dlc3R1cmVDb250cm9sbGVyIFwKICAgICBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yIFwK
ICAgICBWaWV3VXBkYXRlRGlzcGF0Y2hlciBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAppbmRleCA3ZmY3NzAyOGJmYjVjMDU1ZDhlYjJk
NmEwNTIxODg0OGZhZDZjNTlhLi5iOWMxNTlkYjA4NmViMjU2NzFhNGViYzgzNjJiZjIwNDk3Mjk1
ZDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZp
bml0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmlu
aXRpb25zLmgKQEAgLTEwMyw2ICsxMDMsMTIgQEAKICNkZWZpbmUgREVGQVVMVF9DQU5WQVNfVVNF
U19BQ0NFTEVSQVRFRF9EUkFXSU5HIHRydWUKICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0Ep
CisjZGVmaW5lIERFRkFVTFRfU0hPVUxEX0NBUFRVUkVfQVVESU9fSU5fVUlQUk9DRVNTIHRydWUK
KyNlbHNlCisjZGVmaW5lIERFRkFVTFRfU0hPVUxEX0NBUFRVUkVfQVVESU9fSU5fVUlQUk9DRVNT
IGZhbHNlCisjZW5kaWYKKwogLy8gbWFjcm8oS2V5VXBwZXIsIEtleUxvd2VyLCBUeXBlTmFtZVVw
cGVyLCBUeXBlTmFtZSwgRGVmYXVsdFZhbHVlLCBIdW1hblJlYWRhYmxlTmFtZSwgSHVtYW5SZWFk
YWJsZURlc2NyaXB0aW9uKQogCiAjZGVmaW5lIEZPUl9FQUNIX1dFQktJVF9CT09MX1BSRUZFUkVO
Q0UobWFjcm8pIFwKQEAgLTI1Miw2ICsyNTgsNyBAQAogICAgIG1hY3JvKEdhbWVwYWRzRW5hYmxl
ZCwgZ2FtZXBhZHNFbmFibGVkLCBCb29sLCBib29sLCB0cnVlLCAiR2FtZXBhZHMiLCAiV2ViIEdh
bWVwYWQgQVBJIHN1cHBvcnQiKSBcCiAgICAgbWFjcm8oSW5wdXRFdmVudHNFbmFibGVkLCBpbnB1
dEV2ZW50c0VuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUsICJJbnB1dCBFdmVudHMiLCAiRW5hYmxl
IElucHV0RXZlbnRzIHN1cHBvcnQiKSBcCiAgICAgbWFjcm8oQ3JlZGVudGlhbE1hbmFnZW1lbnRF
bmFibGVkLCBjcmVkZW50aWFsTWFuYWdlbWVudEVuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlLCAi
Q3JlZGVudGlhbCBNYW5hZ2VtZW50IiwgIkVuYWJsZSBDcmVkZW50aWFsIE1hbmFnZW1lbnQgc3Vw
cG9ydCIpIFwKKyAgICBtYWNybyhTaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2Vzcywgc2hvdWxk
Q2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MsIEJvb2wsIGJvb2wsIERFRkFVTFRfU0hPVUxEX0NBUFRV
UkVfQVVESU9fSU5fVUlQUk9DRVNTLCAiQ2FwdHVyZSIsICJDYXB0dXJlIEF1ZGlvIGluIFVJUHJv
Y2VzcyIpIFwKICAgICBcCiAKICNkZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX0RPVUJMRV9QUkVGRVJF
TkNFKG1hY3JvKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggNTEyZDIxMmQ4NGEwMTE4MDhjMjlhOGI1MTg0
MTllMjBhNTE3NmIxYy4uZjMzZWE2YzBhODNiNDliMDFlN2ExNmFjZDVhMTFlYmE5YzMxMTYzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcApAQCAtNjgsNiArNjgsNyBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2Rl
ciA8PCBtZWRpYUtleVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKICAgICBlbmNvZGVyIDw8IGF1ZGlvQ2FwdHVyZUV4dGVuc2lvbkhhbmRs
ZTsKKyAgICBlbmNvZGVyIDw8IHNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzOwogI2VuZGlm
CiAgICAgZW5jb2RlciA8PCBzaG91bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb247CiAgICAgZW5j
b2RlciA8PCB1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzRW1wdHlEb2N1bWVudDsKQEAgLTE4OSw2ICsx
OTAsOCBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRl
Y29kZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVhdAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmF1ZGlvQ2FwdHVyZUV4dGVuc2lv
bkhhbmRsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHBhcmFtZXRlcnMuc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CiAjZW5kaWYKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuc2hv
dWxkVXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgKaW5kZXggYTNlNjJjZjlkNDMxZjQwYmRjYTdhNWM4MDBjYzU3MDU5NzFjOGU5NC4uZmQ4MDZi
MjIwMjQ3OWUxNjA0ODYxZGY5OGUwOGNhYjFhMWFhNjBkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC04OCw2ICs4
OCw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGUgbWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
OwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
IGF1ZGlvQ2FwdHVyZUV4dGVuc2lvbkhhbmRsZTsKKyAgICBib29sIHNob3VsZENhcHR1cmVBdWRp
b0luVUlQcm9jZXNzIHsgZmFsc2UgfTsKICNlbmRpZgogICAgIFN0cmluZyBtZWRpYUtleVN0b3Jh
Z2VEaXJlY3Rvcnk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
MGFmYzdhMjBjYTlhMmY3ODY1NzMxYjhjYjE5YTliNWMzOTBjNGRhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuY3BwCkBAIC0wLDAgKzEsMTU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCIKKworI2lmIFBM
QVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiU2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAi
V2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHNJbXBsLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRp
b0J1ZmZlckxpc3QuaD4KKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHkgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6T2JzZXJ2ZXIsIHB1YmxpYyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50IHsKK3B1
YmxpYzoKKyAgICBTb3VyY2VQcm94eSh1aW50NjRfdCBpZCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eSYgbWFuYWdlciwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQorICAg
ICAgICA6IG1faWQoaWQpCisgICAgICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCisgICAgICAgICwg
bV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQorICAgICAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5p
cXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlPih0aGlzKSkpCisgICAgeworICAgICAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2
ZXIoKnRoaXMpOworICAgIH0KKworICAgIH5Tb3VyY2VQcm94eSgpCisgICAgeworICAgICAgICBz
dG9yYWdlKCkuaW52YWxpZGF0ZSgpOworICAgICAgICBtX3NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIo
KnRoaXMpOworICAgIH0KKworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSgpIHsgcmV0
dXJuIG1fc291cmNlOyB9CisgICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKSB7
IHJldHVybiBzdGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZl
ci5zdG9yYWdlKCkpOyB9CisgICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlv
bigpIHsgcmV0dXJuIG1fZGVzY3JpcHRpb247IH0KKyAgICBpbnQ2NF90IG51bWJlck9mRnJhbWVz
KCkgeyByZXR1cm4gbV9udW1iZXJPZkZyYW1lczsgfQorCisgICAgdm9pZCBzb3VyY2VTdG9wcGVk
KCkgZmluYWwgeworICAgICAgICBtX21hbmFnZXIucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2VTdG9wcGVkKG1faWQpLCAwKTsKKyAgICB9CisK
KyAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZCgpIGZpbmFsIHsKKyAgICAgICAgbV9tYW5hZ2Vy
LnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNl
TXV0ZWRDaGFuZ2VkKG1faWQsIG1fc291cmNlLT5tdXRlZCgpKSwgMCk7CisgICAgfQorCisgICAg
dm9pZCBzb3VyY2VFbmFibGVkQ2hhbmdlZCgpIGZpbmFsIHsKKyAgICAgICAgbV9tYW5hZ2VyLnBy
b2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlRW5h
YmxlZENoYW5nZWQobV9pZCwgbV9zb3VyY2UtPmVuYWJsZWQoKSksIDApOworICAgIH0KKworICAg
IHZvaWQgc291cmNlU2V0dGluZ3NDaGFuZ2VkKCkgZmluYWwgeworICAgICAgICBtX21hbmFnZXIu
cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2VT
ZXR0aW5nc0NoYW5nZWQobV9pZCwgbV9zb3VyY2UtPnNldHRpbmdzKCkpLCAwKTsKKyAgICB9CisK
KyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNv
bnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpIGZpbmFsIHsKKyAgICAg
ICAgaWYgKG1fZGVzY3JpcHRpb24gIT0gZGVzY3JpcHRpb24pIHsKKyAgICAgICAgICAgIEFTU0VS
VChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURlc2Ny
aXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKKyAgICAgICAgICAgIG1fZGVzY3JpcHRp
b24gPSAqV1RGOjpnZXQ8Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3Jp
cHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKKworICAgICAgICAgICAg
Ly8gQWxsb2NhdGUgYSByaW5nIGJ1ZmZlciBsYXJnZSBlbm91Z2ggdG8gY29udGFpbiAyIHNlY29u
ZHMgb2YgYXVkaW8uCisgICAgICAgICAgICBtX251bWJlck9mRnJhbWVzID0gbV9kZXNjcmlwdGlv
bi5zYW1wbGVSYXRlKCkgKiAyOworICAgICAgICAgICAgbV9yaW5nQnVmZmVyLmFsbG9jYXRlKG1f
ZGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgbV9udW1iZXJPZkZyYW1lcyk7CisgICAg
ICAgIH0KKworICAgICAgICBBU1NFUlQoaXM8V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRpb0RhdGEp
KTsKKyAgICAgICAgbV9yaW5nQnVmZmVyLnN0b3JlKGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlz
dD4oYXVkaW9EYXRhKS5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsK
KyAgICAgICAgdWludDY0X3Qgc3RhcnRGcmFtZTsKKyAgICAgICAgdWludDY0X3QgZW5kRnJhbWU7
CisgICAgICAgIG1fcmluZ0J1ZmZlci5nZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwg
ZW5kRnJhbWUpOworICAgICAgICBtX21hbmFnZXIucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb1NhbXBsZXNBdmFpbGFibGUobV9pZCwgdGltZSwg
bnVtYmVyT2ZGcmFtZXMsIHN0YXJ0RnJhbWUsIGVuZEZyYW1lKSwgMCk7CisgICAgfQorCisgICAg
dm9pZCBzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2UpIGZpbmFsIHsKKyAgICAg
ICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOworICAgICAgICBpZiAoc3RvcmFnZSkKKyAg
ICAgICAgICAgIHN0b3JhZ2UtPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJv
dGVjdGlvbjo6UmVhZE9ubHkpOworICAgICAgICBtX21hbmFnZXIucHJvY2VzcygpLnNlbmQoTWVz
c2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTdG9yYWdlQ2hhbmdlZChtX2lkLCBoYW5k
bGUsIG1fZGVzY3JpcHRpb24sIG1fbnVtYmVyT2ZGcmFtZXMpLCAwKTsKKyAgICB9CisKK3Byb3Rl
Y3RlZDoKKyAgICB1aW50NjRfdCBtX2lkOworICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkmIG1fbWFuYWdlcjsKKyAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7Cisg
ICAgQ0FSaW5nQnVmZmVyIG1fcmluZ0J1ZmZlcjsKKyAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24gbV9kZXNjcmlwdGlvbiB7IH07CisgICAgaW50NjRfdCBtX251bWJlck9mRnJhbWVzIHsgMCB9
OworfTsKKworVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eShXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCisgICAgOiBtX3Byb2Nlc3MocHJv
Y2VzcykKK3sKKyAgICBtX3Byb2Nlc3MuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsK
K30KKworVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6flVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkoKQoreworICAgIG1fcHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7
Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3Vy
Y2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBDYXB0
dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHNEYXRhJiBjb25zdHJhaW50
c0RhdGEsIGJvb2wmIHN1Y2NlZWRlZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMpCit7Cisg
ICAgYXV0byBjb25zdHJhaW50cyA9IE1lZGlhQ29uc3RyYWludHNJbXBsOjpjcmVhdGUoY29uc3Ry
YWludHNEYXRhKTsKKyAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gc291cmNlID0gUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuZGVmYXVsdEF1ZGlvRmFjdG9yeSgp
LT5jcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoZGV2aWNl
LCBjb25zdHJhaW50cy5wdHIoKSwgaW52YWxpZENvbnN0cmFpbnRzKTsKKyAgICBzdWNjZWVkZWQg
PSAhIXNvdXJjZTsKKyAgICAKKyAgICBpZiAoc291cmNlKQorICAgICAgICBtX3Byb3hpZXMuc2V0
KGlkLCBzdGQ6Om1ha2VfdW5pcXVlPFNvdXJjZVByb3h5PihpZCwgKnRoaXMsIHNvdXJjZS5yZWxl
YXNlTm9uTnVsbCgpKSk7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
c3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQoreworICAgIGF1dG8gaXRlciA9IG1fcHJv
eGllcy5maW5kKGlkKTsKKyAgICBpZiAoaXRlciAhPSBtX3Byb3hpZXMuZW5kKCkpCisgICAgICAg
IGl0ZXItPnZhbHVlLT5zb3VyY2UoKS5zdGFydFByb2R1Y2luZ0RhdGEoKTsKK30KKwordm9pZCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCBp
ZCkKK3sKKyAgICBhdXRvIGl0ZXIgPSBtX3Byb3hpZXMuZmluZChpZCk7CisgICAgaWYgKGl0ZXIg
IT0gbV9wcm94aWVzLmVuZCgpKQorICAgICAgICBpdGVyLT52YWx1ZS0+c291cmNlKCkuc3RvcFBy
b2R1Y2luZ0RhdGEoKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjgxMTMyMWRiYWNhMDQ3NWVkNDc5ZjJiYmZiYjM1ZTU2NjRkOGY2ZDIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
CisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgor
I2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgU2hhcmVkTWVtb3J5OworY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OworCitjbGFzcyBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IDogcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZl
ciB7CitwdWJsaWM6CisgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eShXZWJQcm9jZXNz
UHJveHkmKTsKKyAgICB+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpOworCisgICAgV2Vi
UHJvY2Vzc1Byb3h5JiBwcm9jZXNzKCkgY29uc3QgeyByZXR1cm4gbV9wcm9jZXNzOyB9CisKK3By
aXZhdGU6CisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0
ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JikgZmluYWw7CisKKyAgICB2b2lkIGNyZWF0ZU1l
ZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgY29u
c3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHNEYXRhJiwgYm9vbCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cyk7Cisg
ICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QpOworICAgIHZvaWQgc3RvcFByb2R1
Y2luZ0RhdGEodWludDY0X3QpOworCisgICAgY2xhc3MgU291cmNlUHJveHk7CisgICAgZnJpZW5k
IGNsYXNzIFNvdXJjZVByb3h5OworICAgIEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0
cjxTb3VyY2VQcm94eT4+IG1fcHJveGllczsKKyAgICBXZWJQcm9jZXNzUHJveHkmIG1fcHJvY2Vz
czsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0YjhjYmI3YjhhNjliNzNiMzk3YTllOWQyYmNjMGU3MGIx
MzExNWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI4IEBA
CisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IHsKKyAgICBDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1
cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UgZGV2aWNlLCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEgY29uc3RyYWlu
dHMpIC0+IChib29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMpCisgICAgU3Rh
cnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQorICAgIFN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2
NF90IGlkKQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dl
YlByb2Nlc3NQb29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2Vi
UHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCA4NzM4ZjA3MDYzN2Y0OTBmMWYwODZjMDk5YjkzNzRl
NzQwZWNjN2VlLi5mNDczYjVkODEyMThlYmYyZjAyYTlhZmZmYmFhNWUxNDk5OWI4YWY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xD
b2NvYS5tbQpAQCAtMjU4LDYgKzI1OCw4IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3Jt
SW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYKICAgICAv
LyBGSVhNRTogUmVtb3ZlIHRoaXMgYW5kIHJlbGF0ZWQgcGFyYW1ldGVyIHdoZW4gPHJkYXI6Ly9w
cm9ibGVtLzI5NDQ4MzY4PiBpcyBmaXhlZC4KICAgICBpZiAobWVkaWFTdHJlYW1FbmFibGVkIHx8
IHdlYlJUQ0VuYWJsZWQpCiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZv
ckdlbmVyaWNFeHRlbnNpb24oImNvbS5hcHBsZS53ZWJraXQubWljcm9waG9uZSIsIHBhcmFtZXRl
cnMuYXVkaW9DYXB0dXJlRXh0ZW5zaW9uSGFuZGxlKTsKKworICAgIHBhcmFtZXRlcnMuc2hvdWxk
Q2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MgPSBtX2RlZmF1bHRQYWdlR3JvdXAtPnByZWZlcmVuY2Vz
KCkuc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MoKTsKICNlbmRpZgogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDVmZjY0ZDY0OGM0
Yjc4NDI1ZmQ5MTI3MDYzNDdmMjg3OGY5NGU1MDAuLjM4YzcxMDFiYmQ0MzY4OGVlNmI3YzY4NTQ0
NjI3NjJhZmJjNWExNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCkBAIC02Miw2ICs2Miw3IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVk
ZSAiT2JqQ09iamVjdEdyYXBoLmgiCiAjaW5jbHVkZSAiUERGUGx1Z2luLmgiCisjaW5jbHVkZSAi
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIgogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VD
X0lURU1fU0hJTSkKQEAgLTEwNCw5ICsxMDUsMTQgQEAgV2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9j
ZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBXZWJzaXRlRGF0YVN0b3JlKgog
ICAgICwgbV9pc1Jlc3BvbnNpdmUoTm9Pck1heWJlOjpNYXliZSkKICAgICAsIG1fdmlzaWJsZVBh
Z2VDb3VudGVyKFt0aGlzXShSZWZDb3VudGVyRXZlbnQpIHsgdXBkYXRlQmFja2dyb3VuZFJlc3Bv
bnNpdmVuZXNzVGltZXIoKTsgfSkKICAgICAsIG1fd2Vic2l0ZURhdGFTdG9yZSh3ZWJzaXRlRGF0
YVN0b3JlKQorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
ICwgbV91c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KHN0ZDo6bWFrZV91bmlxdWU8VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eT4oKnRoaXMpKQorI2VuZGlmCiB7CiAgICAgV2ViUGFzdGVi
b2FyZFByb3h5OjpzaW5nbGV0b24oKS5hZGRXZWJQcm9jZXNzUHJveHkoKnRoaXMpOwogCisKKwog
ICAgIGNvbm5lY3QoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oCmluZGV4IGY1ZTYxYWEwMDE4MDY3NzQ4MmFmMzcwN2RjYmRiMTk5NTE3ZmFmNmEuLmIz
Mjg4MTVjZjE2NDI3ZjhhYzZkZDY2NmYzYTk1NzJkYWE3MWM5M2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTU2LDYgKzU2LDcgQEAgc3RydWN0IFBs
dWdpbkluZm87CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmV0d29ya1Byb2Nlc3NQcm94
eTsKK2NsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJCYWNrRm9y
d2FyZExpc3RJdGVtOwogY2xhc3MgV2ViUGFnZUdyb3VwOwogY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7
CkBAIC0yNzMsNiArMjc0LDEwIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYnNpdGVEYXRhU3Rv
cmU+IG1fd2Vic2l0ZURhdGFTdG9yZTsKIAogICAgIGJvb2wgbV9pc1VuZGVyTWVtb3J5UHJlc3N1
cmUgeyBmYWxzZSB9OworCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisgICAgc3RkOjp1bmlxdWVfcHRyPFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk+IG1f
dXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggNjI2NzdmODdhNWVkNjUyMDE2ODczZmEzZWYxMjAyNWEzNTFhZTRlMC4u
NmRmYzdjZjk5MTE3NjQwZjQ2YjY3YWE0MGRkZGJhM2YyYjVkOWM3OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTg3OSwxMSAr
MTg3OSwxOCBAQAogCQlDRDAwM0E1MzE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9y
YWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0QwMDNBNTExOUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIu
aCAqLzsgfTsKIAkJQ0QxOUEyNkQxQTEzRTgyQTAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENEMTlBMjY5MUExM0U4MjAwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5jcHAgKi87IH07CiAJCUNEMTlBMjZFMUExM0U4MzQwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0QxOUEyNkExQTEzRTgyMTAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LmggKi87IH07CisJCUNENDkxQjA3MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDQ5MUIwNTFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
Y3BwICovOyB9OworCQlDRDQ5MUIwODFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENENDkxQjA2MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oICov
OyB9OworCQlDRDQ5MUIwRDFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0Q0OTFCMEIxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJQ0Q0OTFCMEUxRTczMkU0RDAwMDA5
MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENDkxQjBDMUU3MzJFNEQwMDAwOTA2NiAv
KiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CisJCUNENDkxQjEyMUU3
MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENDkxQjEwMUU3MzQ4MjEw
MDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCAqLzsgfTsKKwkJQ0Q0
OTFCMTMxRTczNDgyMTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENDkxQjExMUU3
MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggKi87IH07CisJ
CUNENDkxQjE3MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENENDkxQjE1MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJQ0Q0OTFCMTgxRTczNTI1NTAw
MDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0OTFCMTYxRTczNTI1NTAw
MDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovOyB9Owog
CQlDRDRCNEQ5QzFFNzY1RTAwMDBEMjcwOTIgLyogU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0QjREOUEx
RTc2NUUwMDAwRDI3MDkyIC8qIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmNwcCAqLzsgfTsKIAkJ
Q0Q0QjREOUQxRTc2NUUwMDAwRDI3MDkyIC8qIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDRCNEQ5QjFFNzY1
RTAwMDBEMjcwOTIgLyogU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCAqLzsgfTsKIAkJQ0Q1QzY2
QTAxMzRCOUQzODAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1QzY2
OUUxMzRCOUQzNjAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQu
Y3BwICovOyB9OwogCQlDRDVDNjZBMTEzNEI5RDM4MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQ
YWdlRnVsbFNjcmVlbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0Q1QzY2OUYxMzRCOUQzNzAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFn
ZUZ1bGxTY3JlZW5DbGllbnQuaCAqLzsgfTsKLQkJQ0Q2MTc4MTQxRTZERTlBMDAwRkRBNTdEIC8q
IFdlYlVzZXJNZWRpYUNsaWVudE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENENjE3ODEyMUU2REU5QTAwMEZEQTU3RCAvKiBXZWJVc2VyTWVkaWFD
bGllbnRNYWMubW0gKi87IH07CiAJCUNENkY3NUY0MTMxQjY2RDAwMEQ2QjIxRSAvKiBXZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENENzNCQTNFMTMxQTJFOEEwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5LmNwcCAqLzsgfTsKIAkJQ0Q3M0JBNDcxMzFBQ0M5QTAwRUVERUQyIC8qIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3M0JBNDUxMzFBQ0M4ODAwRUVERUQyIC8q
IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQlD
RDczQkE0RTEzMUFDREI3MDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q3M0JBNDgxMzFBQ0Q4RTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLzsgfTsKQEAgLTQxNjksMTEgKzQxNzYsMjAgQEAKIAkJQ0QwMDNBNTExOUQ0
OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oOyBwYXRoID0g
TWVkaWFDYWNoZS9XZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEMTlBMjY5MUExM0U4MjAwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNEMTlBMjZBMUExM0U4MjEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ5MUIwNTFFNzBEMDVGMDAw
MDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDRDQ5MUIwNjFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFC
MEExRTczMkQxMjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDRDQ5MUIwQjFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ5MUIwQzFFNzMyRTREMDAwMDkwNjYgLyog
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUNENDkxQjEwMUU3MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOyBwYXRoID0gLi4vQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNENDkxQjExMUU3MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuaDsgcGF0aCA9IC4uL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFCMTQxRTczNDlGMzAwMDA5
MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjsgcGF0aCA9IC4uL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNENDkxQjE1MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ5MUIxNjFFNzM1MjU1MDAwMDkw
NjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDRCNEQ5QTFFNzY1RTAwMDBEMjcw
OTIgLyogU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRDRCNEQ5QjFFNzY1RTAwMDBEMjcwOTIgLyogU2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVkUmlu
Z0J1ZmZlclN0b3JhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1QzY2OUUx
MzRCOUQzNjAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdl
RnVsbFNjcmVlbkNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENUM2
NjlGMTM0QjlEMzcwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUZ1
bGxTY3JlZW5DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQ0Q2MTc4MTIx
RTZERTlBMDAwRkRBNTdEIC8qIFdlYlVzZXJNZWRpYUNsaWVudE1hYy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdlYlVzZXJNZWRpYUNsaWVudE1hYy5tbTsgcGF0
aCA9IGNvY29hL1dlYlVzZXJNZWRpYUNsaWVudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0Q3M0JBMzcxMzFBMjlGRTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyLmNwcDsgcGF0aCA9IEZ1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDczQkEzODEzMUEyOUZFMDBFRURFRDIgLyog
V2ViRnVsbFNjcmVlbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
V2ViRnVsbFNjcmVlbk1hbmFnZXIuaDsgcGF0aCA9IEZ1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1h
bmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q3M0JBMzkxMzFBMjlGRTAw
RUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgbmFtZSA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOyBwYXRoID0gRnVsbFNj
cmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTYyODEsNiArNjI5Nyw5IEBACiAJCTdDNkU3MEY4MThCMkQ0N0UwMEYyNEUy
RSAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJ
CQkJQ0Q0OTFCMDUxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNw
cCAqLywKKwkJCQlDRDQ5MUIwNjFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuaCAqLywKKwkJCQlDRDQ5MUIwQTFFNzMyRDEyMDAwMDkwNjYgLyogVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJQ0RBMjlBMTkxQ0JEQkY0MTAwOTAxQ0NG
IC8qIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaCAqLywKIAkJCQlDREEyOUExQzFDQkRCRjVC
MDA5MDFDQ0YgLyogV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJ
CQlDREEyOUExODFDQkRCRjQxMDA5MDFDQ0YgLyogV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5t
bSAqLywKQEAgLTc0NDgsNiArNzQ2Nyw5IEBACiAJCQkJMUFBNDE3RUQxMkMwMEQ4NzAwMkJFNjdC
IC8qIFRleHRDaGVja2VyTWFjLm1tICovLAogCQkJCTFBRjA1RDg1MTQ2ODgzNDgwMDhCMUU4MSAv
KiBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5LmggKi8sCiAJCQkJMUFGMDVEODQx
NDY4ODM0ODAwOEIxRTgxIC8qIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0g
Ki8sCisJCQkJQ0Q0OTFCMTAxRTczNDgyMTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuY3BwICovLAorCQkJCUNENDkxQjExMUU3MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmggKi8sCisJCQkJQ0Q0OTFCMTQxRTczNDlGMzAwMDA5MDY2
IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJMkQx
MjVDNUQxODU3RUEwNTAwM0JBM0NCIC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbSAqLywK
IAkJCQkyRDZDRDExNzE4OTA1OEE1MDBFNUE0QTAgLyogVmlld1NuYXBzaG90U3RvcmUuaCAqLywK
IAkJCQkyRDZDRDExODE4OTA1OEE1MDBFNUE0QTAgLyogVmlld1NuYXBzaG90U3RvcmUubW0gKi8s
CkBAIC03NjkzLDYgKzc3MTUsMTAgQEAKIAkJCQkxQTMzNERFQzE2REU4Rjg4MDA2QThFMzggLyog
U3RvcmFnZUFyZWFNYXBNZXNzYWdlcy5oICovLAogCQkJCTFBQjMxQTk0MTZCQzY4ODEwMEY2REJD
OSAvKiBTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUFCMzFBOTUx
NkJDNjg4MTAwRjZEQkM5IC8qIFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQlDRDQ5
MUIxNTFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8sCisJCQkJQ0Q0OTFCMTYxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovLAorCQkJCUNENDkxQjBCMUU3MzJF
NEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8sCisJCQkJQ0Q0OTFCMEMxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyTWVzc2FnZXMuaCAqLywKIAkJCQkyRDFCNUQ1QjE4NTg2OUM4MDA2QzY1OTYgLyogVmlld0dl
c3R1cmVDb250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkyRDFCNUQ1QzE4NTg2
OUM4MDA2QzY1OTYgLyogVmlld0dlc3R1cmVDb250cm9sbGVyTWVzc2FnZXMuaCAqLywKIAkJCQky
RDgxOUI5RjE4NjI4MDBFMDAxRjAzRDEgLyogVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvck1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC03ODI0LDcgKzc4NTAsNiBAQAogCQlDRDYxNzgxMTFF
NkRFOTgwMDBGREE1N0QgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAotCQkJCUNENjE3ODEyMUU2REU5QTAwMEZEQTU3RCAvKiBXZWJVc2VyTWVkaWFD
bGllbnRNYWMubW0gKi8sCiAJCQkpOwogCQkJbmFtZSA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTgwNDUsNiArODA3MCw3IEBACiAJCQkJN0MyNDEzMDMxQUFDRkE3NTAw
QTU4QzE1IC8qIF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdDMjQxMzA1MUFBQ0ZBOUMwMEE1OEMxNSAvKiBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0
b3JlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDQTM3OTNFMUFDMzc4QjMwMDc5REMz
NyAvKiBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQ0Q0OTFCMTMxRTczNDgyMTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDODlEMkJBMUE2QjBGMkMwMDNBNUZERSAvKiBf
V0tVc2VyQ29udGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M4OUQyQkMxQTZCMEY1
QjAwM0E1RkRFIC8qIF9XS1VzZXJDb250ZW50RmlsdGVySW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVDRDI4NjUzMUU3MjM1QUEwMDk0RkRDOCAvKiBfV0tVc2VyQ29udGVudEZpbHRlclBy
aXZhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtODA1Miw2ICs4MDc4LDcgQEAKIAkJCQk3Qzg4MkRG
OTFDN0U5OTZGMDA2QkY3MzEgLyogX1dLVXNlckNvbnRlbnRXb3JsZEludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk3Q0IzNjVBQTFEMzFEQjcwMDA3MTU4Q0EgLyogX1dLVXNlckluaXRpYXRl
ZEFjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NCMzY1QUQxRDMxREMxMDAwNzE1OENBIC8q
IF9XS1VzZXJJbml0aWF0ZWRBY3Rpb25JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q0
OTFCMEUxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTJEODc4NjFEMUJEQjU0QkYwMEQwMkFCQiAvKiBfV0tVc2Vy
U3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ4Nzg2MjAxQkRCNTdGNTAwRDAyQUJC
IC8qIF9XS1VzZXJTdHlsZVNoZWV0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBODFC
MzgxMThCRDY2QUQwMDA3RkRBQyAvKiBfV0tWaXNpdGVkTGlua1N0b3JlLmggaW4gSGVhZGVycyAq
LywKQEAgLTgwOTcsNiArODEyNCw3IEBACiAJCQkJMUEyNDY0RjMxODkxRTQ1MTAwMjM0QzVCIC8q
IEFQSUxvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NEM0E0ODMxQTVEMDJGQTAw
OTYyM0I4IC8qIEFQSU5hdmlnYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTJERjlFRUVDMUE3
ODM2RUUwMEI2Q0ZCRSAvKiBBUElOYXZpZ2F0aW9uQWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlDRDQ5MUIwODFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTJERDlFQjJEMUE2RjAxMjUwMEJCMTI2NyAvKiBBUElOYXZpZ2F0
aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0Y2OUZBMjExNzZEMDE0MDA0NzFBNTIg
LyogQVBJTmF2aWdhdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTJERjlFRUVFMUE3ODZF
QUQwMEI2Q0ZCRSAvKiBBUElOYXZpZ2F0aW9uUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLApAQCAt
ODQyMiw2ICs4NDUwLDcgQEAKIAkJCQlFMThFNjkwQzE2OUI1NjNGMDA5QjY2NzAgLyogU2VjSXRl
bVNoaW1Qcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE4RTY5MTgxNjlCNjY3QjAwOUI2Njcw
IC8qIFNlY0l0ZW1TaGltUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0RDlG
NTcxOTExOUQzNTAwMDA2M0E3IC8qIFNlcnZpY2VzQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQ0Q0OTFCMTgxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGREU2NUExOTU0QTQyQjAwQzQ4
RkZBIC8qIFNlc3Npb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEwMDJENDkxOTZCMzQ1
RDAwQjlBRDQ0IC8qIFNlc3Npb25TdGF0ZUNvZGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzUz
RTNFMEUxODg3Mzk4OTAwMTg4NDk2IC8qIFNlc3Npb25UcmFja2VyLmggaW4gSGVhZGVycyAqLywK
QEAgLTk2MDEsNiArOTYzMCw3IEBACiAJCQkJMzczRDEyMjIxOEE0NzMwMTAwNjZEOUNDIC8qIF9X
S0ZyYW1lSGFuZGxlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNBODhCMzkxQkM3MEYzRjAwQUJB
NUMyIC8qIF9XS0hpdFRlc3RSZXN1bHQubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTBGNTkxMjFE
REUyOTc3MDA0MTJGRjUgLyogX1dLTGlua0ljb25QYXJhbWV0ZXJzLm1tIGluIFNvdXJjZXMgKi8s
CisJCQkJQ0Q0OTFCMEQxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExMThBOUYyMTkwOEI4RUEw
MEY3QzkyQiAvKiBfV0tOU0ZpbGVNYW5hZ2VyRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MUE0M0U4MjkxODhGM0NEQzAwOUU0RDMwIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTFBOUUzMjhFMTgyMTY1QTkwMEY1RDA0QyAvKiBfV0tSZW1v
dGVPYmplY3RJbnRlcmZhY2UubW0gaW4gU291cmNlcyAqLywKQEAgLTk2MzcsNiArOTY2Nyw3IEBA
CiAJCQkJNTFEMTI0OTExRTc0QkYzQzAwMkIyODIwIC8qIEFQSUhUVFBDb29raWVTdG9yZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3Q0QzQTQ4MjFBNUQwMkZBMDA5NjIzQjggLyogQVBJTmF2aWdh
dGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0Y2OUZBMzExNzZEMDE0MDA0NzFBNTIgLyog
QVBJTmF2aWdhdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q0OTFCMTcxRTczNTI1
NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjYzNDAzRjkxNDkxMEQ1NzAwMTA3MEI1IC8qIEFQSU9i
amVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzhFMUEzRDE4MUVENkZGMDAzMTAwN0EgLyog
QVBJT2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM4NTdGQjYxMkI4MzBFNjAwRURFQjJF
IC8qIEFQSU9wZW5QYW5lbFBhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC05NjU5LDYg
Kzk2OTAsNyBAQAogCQkJCTFBMzYzNUE5MUEzMTQ0QTMwMEVENjE5NyAvKiBBUElXZWJzaXRlRGF0
YVN0b3JlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMzYzNUFEMUEzMTQ1RTUwMEVENjE5NyAv
KiBBUElXZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQk1Q0IyMzc5
MTFERjBFMkU2MDAxMTdBQTMgLyogQVBJV2Vic2l0ZVBvbGljaWVzLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUNENDkxQjEyMUU3MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNjU2M0U0MUI3QThDNTAwMDlDRjc4NyAv
KiBBUElXaW5kb3dGZWF0dXJlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUQ0QzE5MjFCMzlG
MzMyMDBBQkMyOEUgLyogQXBwbGljYXRpb25TdGF0ZVRyYWNrZXIubW0gaW4gU291cmNlcyAqLywK
IAkJCQkxQTNENjEwNTEzQTdGMDNBMDBGOTVENEUgLyogQXJndW1lbnRDb2RlcnMuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC0xMDE4Niw2ICsxMDIxOCw3IEBACiAJCQkJN0M0Njk0RDAxQTUxRTM2ODAw
QUQ1ODQ1IC8qIFdlYlBhc3RlYm9hcmRQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzQ2
OTRDQzFBNEI1MTBBMDBBRDU4NDUgLyogV2ViUGFzdGVib2FyZFByb3h5Q29jb2EubW0gaW4gU291
cmNlcyAqLywKIAkJCQk3QzQ2OTRDOTFBNEI0RUExMDBBRDU4NDUgLyogV2ViUGFzdGVib2FyZFBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNENDkxQjA3MUU3MEQw
NUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxQUIxRjc3NDFEMUIyRjhBMDA3QzlCRDEgLyogV2ViUGF5bWVudENvb3JkaW5hdG9yLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFBQjFGNzk2MUQxQjM2MTMwMDdDOUJEMSAvKiBXZWJQYXlt
ZW50Q29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFC
MUY3OEIxRDFCMzM1NTAwN0M5QkQxIC8qIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCmluZGV4IGFhZGVkMzQ0
YTc2YWVhNmFiNDcxNjJkODk2OGNjYjJjNWYwNTBjNjcuLjM2MjIwMmUwZWQ2MGU2NTc3NGZmYzg3
MDcwY2Q1MTczZGI1Y2I4NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKQEAgLTMz
LDcgKzMzLDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBXZWJVc2VyTWVkaWFDbGllbnQ6OldlYlVz
ZXJNZWRpYUNsaWVudChXZWJQYWdlJiBwYWdlKQogICAgIDogbV9wYWdlKHBhZ2UpCiB7Ci0gICAg
aW5pdGlhbGl6ZUZhY3RvcmllcygpOwogfQogCiB2b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6cGFn
ZURlc3Ryb3llZCgpCkBAIC02MSwxMyArNjAsNiBAQCB2b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6
Y2FuY2VsTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0KE1lZGlhRGV2aWNlc0VudW1lcgog
ICAgIG1fcGFnZS51c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5jYW5jZWxNZWRp
YURldmljZXNFbnVtZXJhdGlvbihyZXF1ZXN0KTsKIH0KIAotI2lmICFQTEFURk9STShDT0NPQSkK
LXZvaWQgV2ViVXNlck1lZGlhQ2xpZW50Ojppbml0aWFsaXplRmFjdG9yaWVzKCkKLXsKLQotfQot
I2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdDsKIAogI2VuZGlmIC8vIE1FRElBX1NUUkVB
TQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9j
b2NvYS9XZWJVc2VyTWVkaWFDbGllbnRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L2NvY29hL1dlYlVzZXJNZWRpYUNsaWVudE1hYy5tbQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYThkZjJmMTAxOWJhODZmNmZhN2EzNjE2MDRhMGVhMjc2YmQ3
NWMxZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2NvY29hL1dlYlVzZXJNZWRpYUNs
aWVudE1hYy5tbQorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViVXNlck1lZGlhQ2xpZW50LmgiCi0KLSNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShDT0NPQSkKLQotI2ltcG9ydCA8V2Vi
Q29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+Ci0jaW1wb3J0IDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQg
ewotCi1jbGFzcyBXZWJVc2VyTWVkaWFDbGllbnRBdWRpb0ZhY3RvcnkgZmluYWwgOiBwdWJsaWMg
UmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkgewotcHVibGljOgotICAgIHN0YXRp
YyBXZWJVc2VyTWVkaWFDbGllbnRBdWRpb0ZhY3RvcnkmIHNpbmdsZXRvbigpCi0gICAgewotICAg
ICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V2ViVXNlck1lZGlhQ2xpZW50QXVkaW9GYWN0b3J5
PiBmYWN0b3J5OwotICAgICAgICByZXR1cm4gZmFjdG9yeTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0g
ICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVy
ZURldmljZVdpdGhDb25zdHJhaW50cyhjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50
cykgZmluYWwgewotICAgICAgICBhdXRvKiBmYWN0b3J5ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6c2luZ2xldG9uKCkuZGVmYXVsdEF1ZGlvRmFjdG9yeSgpOwotICAgICAgICByZXR1cm4g
ZmFjdG9yeSA/IGZhY3RvcnktPmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhD
b25zdHJhaW50cyhkZXZpY2UsIGNvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludHMpIDogbnVs
bHB0cjsKLSAgICB9Ci19OwotCi12b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6aW5pdGlhbGl6ZUZh
Y3RvcmllcygpCi17Ci0gICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47Ci0gICAg
ZGlzcGF0Y2hfb25jZSgmb25jZVRva2VuLCBeIHsKLSAgICAgICAgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0QXVkaW9GYWN0b3J5KFdlYlVzZXJNZWRp
YUNsaWVudEF1ZGlvRmFjdG9yeTo6c2luZ2xldG9uKCkpOwotICAgIH0pOwotfQotCi19Ci0KLSNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNmE0MWI0
Y2YwNzNjOGIwMjIxNDFhYWM1ZDNmNTM5OGE5OTk1MDc4Ny4uYWE1MWY2YzNjZTM2MjZmNzQ2MWYx
ZjQ2OTgxZTA1ODJhNWZhYTcyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCkBAIC0xMTQsMTEgKzExNCw5IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFz
aC5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0jaW5jbHVkZSAiT2JqQ09iamVjdEdyYXBoLmgi
Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgIkNvb2tpZVN0b3JhZ2VT
aGltLmgiCisjaW5jbHVkZSAiT2JqQ09iamVjdEdyYXBoLmgiCisjaW5jbHVkZSAiVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuaCIKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNFQ19JVEVNX1NISU0pCkBA
IC0xOTEsNiArMTg5LDEwIEBAIFdlYlByb2Nlc3M6OldlYlByb2Nlc3MoKQogICAgIGFkZFN1cHBs
ZW1lbnQ8V2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlcj4oKTsKICNlbmRpZgogCisjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKyAgICBhZGRTdXBwbGVtZW50PFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
PigpOworI2VuZGlmCisKICAgICBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5hZGQoU2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4oKSk7
CiAKICAgICBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hhcmVkT2JzZXJ2ZXIoKS5zZXRTdGF0aXN0
aWNzU3RvcmUobV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY29weVJlZigpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjYyMzdkMGViOWRjMWZiNDE2NDM3ZjcxMjhiMjM0
MTc5M2MxOGQyOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
Y29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMjI2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjaW5jbHVkZSAiVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5o
IgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2aWNlLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzSW1wbC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZm
ZXJMaXN0Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0
IHsKKworc3RhdGljIHVpbnQ2NF90IG5leHRTZXNzaW9uSUQoKQoreworICAgIHN0YXRpYyB1aW50
NjRfdCBuZXh0SUQgPSAwOworICAgIHJldHVybiArK25leHRJRDsKK30KKworY2xhc3MgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlIHsK
K3B1YmxpYzoKKyAgICBTb3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyY2VJRCwgVHlwZSB0eXBlLCBj
b25zdCBTdHJpbmcmIG5hbWUsIHVpbnQ2NF90IGlkLCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYg
bWFuYWdlcikKKyAgICAgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKHNvdXJjZUlELCB0eXBlLCBu
YW1lKQorICAgICAgICAsIG1faWQoaWQpCisgICAgICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCisg
ICAgICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2U+KG51bGxwdHIpKQorICAgIHsKKyAgICB9CisKKyAgICB+U291cmNlKCkKKyAgICB7CisgICAg
ICAgIHN0b3JhZ2UoKS5pbnZhbGlkYXRlKCk7CisgICAgfQorCisgICAgU2hhcmVkUmluZ0J1ZmZl
clN0b3JhZ2UmIHN0b3JhZ2UoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVy
U3RvcmFnZSY+KG1fcmluZ0J1ZmZlci5zdG9yYWdlKCkpOyB9CisgICAgUmVmUHRyPFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fY2FwYWJpbGl0aWVzOyB9CisgICAgdm9pZCBzZXRDYXBhYmlsaXRpZXMoUmVmUHRyPFJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcykgeyBtX2NhcGFiaWxp
dGllcyA9IGNhcGFiaWxpdGllczsgfQorCisgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0KKyAg
ICB2b2lkIHNldFNldHRpbmdzKGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0
dGluZ3MpCisgICAgeworICAgICAgICBtX3NldHRpbmdzID0gc2V0dGluZ3M7CisgICAgICAgIHNl
dHRpbmdzRGlkQ2hhbmdlKCk7CisgICAgfQorCisgICAgY29uc3QgQ0FBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uJiBkZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGVzY3JpcHRpb247IH0KKyAg
ICB2b2lkIHNldFN0b3JhZ2UoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhhbmRsZSwgY29u
c3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgdWludDY0
X3QgbnVtYmVyT2ZGcmFtZXMpCisgICAgeworICAgICAgICBtX2Rlc2NyaXB0aW9uID0gZGVzY3Jp
cHRpb247CisgICAgICAgIGlmIChoYW5kbGUuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgIG1fcmlu
Z0J1ZmZlci5kZWFsbG9jYXRlKCk7CisgICAgICAgICAgICBzdG9yYWdlKCkuc2V0UmVhZE9ubHko
ZmFsc2UpOworICAgICAgICAgICAgc3RvcmFnZSgpLnNldFN0b3JhZ2UobnVsbHB0cik7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5
PiBtZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1hcChoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVj
dGlvbjo6UmVhZE9ubHkpOworICAgICAgICBzdG9yYWdlKCkuc2V0U3RvcmFnZShXVEZNb3ZlKG1l
bW9yeSkpOworICAgICAgICBzdG9yYWdlKCkuc2V0UmVhZE9ubHkodHJ1ZSk7CisKKyAgICAgICAg
bV9yaW5nQnVmZmVyLmFsbG9jYXRlKGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisgICAg
fQorCisgICAgdm9pZCBzZXRSaW5nQnVmZmVyRnJhbWVCb3VuZHModWludDY0X3Qgc3RhcnRGcmFt
ZSwgdWludDY0X3QgZW5kRnJhbWUpCisgICAgeworICAgICAgICBtX3JpbmdCdWZmZXIuc2V0Q3Vy
cmVudEZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAgICB9CisKKyAgICB2b2lk
IGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZG
cmFtZXMpCisgICAgeworICAgICAgICBXZWJBdWRpb0J1ZmZlckxpc3QgYXVkaW9EYXRhKG1fZGVz
Y3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAgICAgICAgbV9yaW5nQnVmZmVyLmZldGNoKGF1
ZGlvRGF0YS5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsKKworICAg
ICAgICBmb3IgKGF1dG8qIG9ic2VydmVyIDogb2JzZXJ2ZXJzKCkpCisgICAgICAgICAgICBvYnNl
cnZlci0+YXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIGF1ZGlvRGF0YSwgbV9kZXNjcmlwdGlv
biwgbnVtYmVyT2ZGcmFtZXMpOworICAgIH0KKworICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRh
KCkgZmluYWwgeyBtX21hbmFnZXIuc3RhcnRQcm9kdWNpbmdEYXRhKG1faWQpOyB9CisgICAgdm9p
ZCBzdG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9tYW5hZ2VyLnN0b3BQcm9kdWNpbmdEYXRh
KG1faWQpOyB9CisKKyAgICBBdWRpb1NvdXJjZVByb3ZpZGVyKiBhdWRpb1NvdXJjZVByb3ZpZGVy
KCkgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQorCitwcml2YXRlOgorICAgIC8vIFJlYWx0aW1l
TWVkaWFTb3VyY2UKKyAgICB2b2lkIGJlZ2luQ29uZmlndXJhdGlvbigpIGZpbmFsIHsgfQorICAg
IHZvaWQgY29tbWl0Q29uZmlndXJhdGlvbigpIGZpbmFsIHsgfQorCisgICAgdWludDY0X3QgbV9p
ZDsKKyAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbV9tYW5hZ2VyOworICAgIFJlZlB0cjxS
ZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKKyAgICBSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKKyAgICBDQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24gbV9kZXNjcmlwdGlvbjsKKyAgICBDQVJpbmdCdWZmZXIgbV9yaW5nQnVmZmVyOwor
fTsKKworVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKFdl
YlByb2Nlc3MqIHByb2Nlc3MpCisgICAgOiBtX3Byb2Nlc3MoKnByb2Nlc3MpCit7CisgICAgbV9w
cm9jZXNzLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMpOworfQorCitVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6flVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKCkKK3sKKyAgICBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS51bnNldEF1ZGlvRmFjdG9yeSgqdGhpcyk7CisgICAg
bV9wcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Cit9CisKK2NvbnN0IGNoYXIqIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpzdXBwbGVtZW50TmFtZSgpCit7CisgICAgcmV0dXJuICJVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlciI7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OmluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVy
cykKK3sKKyAgICBpZiAocGFyYW1ldGVycy5zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcykK
KyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0QXVkaW9G
YWN0b3J5KCp0aGlzKTsKK30KKworUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29u
c3RyYWludHMoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMpCit7CisgICAgaWYg
KCFjb25zdHJhaW50cykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICB1aW50NjRfdCBp
ZCA9IG5leHRTZXNzaW9uSUQoKTsKKyAgICBNZWRpYUNvbnN0cmFpbnRzRGF0YSBjb25zdHJhaW50
c0RhdGE7CisgICAgY29uc3RyYWludHNEYXRhLm1hbmRhdG9yeUNvbnN0cmFpbnRzID0gY29uc3Ry
YWludHMtPm1hbmRhdG9yeUNvbnN0cmFpbnRzKCk7CisgICAgY29uc3RyYWludHNEYXRhLmFkdmFu
Y2VkQ29uc3RyYWludHMgPSBjb25zdHJhaW50cy0+YWR2YW5jZWRDb25zdHJhaW50cygpOworICAg
IGNvbnN0cmFpbnRzRGF0YS5pc1ZhbGlkID0gY29uc3RyYWludHMtPmlzVmFsaWQoKTsKKyAgICBi
b29sIHN1Y2NlZWRlZDsKKworICAgIG1fcHJvY2Vzcy5zZW5kU3luYyhNZXNzYWdlczo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNl
V2l0aENvbnN0cmFpbnRzKGlkLCBkZXZpY2UsIGNvbnN0cmFpbnRzRGF0YSksIE1lc3NhZ2VzOjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVE
ZXZpY2VXaXRoQ29uc3RyYWludHM6OlJlcGx5KHN1Y2NlZWRlZCwgaW52YWxpZENvbnN0cmFpbnRz
KSwgMCk7CisKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKG5ldyBTb3VyY2UoU3RyaW5nOjpu
dW1iZXIoaWQpLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgZGV2aWNlLmxhYmVs
KCksIGlkLCAqdGhpcykpOworICAgIG1fc291cmNlcy5zZXQoaWQsIHNvdXJjZSk7CisgICAgcmV0
dXJuIHNvdXJjZTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlU3Rv
cHBlZCh1aW50NjRfdCBpZCkKK3sKKyAgICBBU1NFUlQobV9zb3VyY2VzLmNvbnRhaW5zKGlkKSk7
CisgICAgbV9zb3VyY2VzLmdldChpZCktPnN0b3AoKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6c291cmNlTXV0ZWRDaGFuZ2VkKHVpbnQ2NF90IGlkLCBib29sIG11dGVkKQor
eworICAgIEFTU0VSVChtX3NvdXJjZXMuY29udGFpbnMoaWQpKTsKKyAgICBtX3NvdXJjZXMuZ2V0
KGlkKS0+c2V0TXV0ZWQobXV0ZWQpOworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
Ojpzb3VyY2VFbmFibGVkQ2hhbmdlZCh1aW50NjRfdCBpZCwgYm9vbCBlbmFibGVkKQoreworICAg
IEFTU0VSVChtX3NvdXJjZXMuY29udGFpbnMoaWQpKTsKKyAgICBtX3NvdXJjZXMuZ2V0KGlkKS0+
c2V0RW5hYmxlZChlbmFibGVkKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
c291cmNlU2V0dGluZ3NDaGFuZ2VkKHVpbnQ2NF90IGlkLCBjb25zdCBSZWFsdGltZU1lZGlhU291
cmNlU2V0dGluZ3MmIHNldHRpbmdzKQoreworICAgIEFTU0VSVChtX3NvdXJjZXMuY29udGFpbnMo
aWQpKTsKKyAgICBtX3NvdXJjZXMuZ2V0KGlkKS0+c2V0U2V0dGluZ3Moc2V0dGluZ3MpOworfQor
Cit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzdG9yYWdlQ2hhbmdlZCh1aW50NjRfdCBp
ZCwgY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhhbmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFt
ZXMpCit7CisgICAgQVNTRVJUKG1fc291cmNlcy5jb250YWlucyhpZCkpOworICAgIG1fc291cmNl
cy5nZXQoaWQpLT5zZXRTdG9yYWdlKGhhbmRsZSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVz
KTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6cmluZ0J1ZmZlckZyYW1lQm91
bmRzQ2hhbmdlZCh1aW50NjRfdCBpZCwgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5k
RnJhbWUpCit7CisgICAgQVNTRVJUKG1fc291cmNlcy5jb250YWlucyhpZCkpOworICAgIG1fc291
cmNlcy5nZXQoaWQpLT5zZXRSaW5nQnVmZmVyRnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJh
bWUpOworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjphdWRpb1NhbXBsZXNBdmFp
bGFibGUodWludDY0X3QgaWQsIE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1l
cywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCit7CisgICAgQVNTRVJU
KG1fc291cmNlcy5jb250YWlucyhpZCkpOworICAgIGF1dG8mIHNvdXJjZSA9ICptX3NvdXJjZXMu
Z2V0KGlkKTsKKyAgICBzb3VyY2Uuc2V0UmluZ0J1ZmZlckZyYW1lQm91bmRzKHN0YXJ0RnJhbWUs
IGVuZEZyYW1lKTsKKyAgICBzb3VyY2UuYXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIG51bWJl
ck9mRnJhbWVzKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3RhcnRQcm9k
dWNpbmdEYXRhKHVpbnQ2NF90IGlkKQoreworICAgIG1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTdGFydFByb2R1Y2luZ0RhdGEoaWQpLCAwKTsK
K30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3RvcFByb2R1Y2luZ0RhdGEodWlu
dDY0X3QgaWQpCit7CisgICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OlN0b3BQcm9kdWNpbmdEYXRhKGlkKSwgMCk7Cit9CisKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmEzMjY2NjJhNjM5NzY4NzI4OWI1NTU1
NDFjYTNkZmJkYTYwN2ZjYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApAQCAtMCwwICsxLDgyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUg
IlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NTdXBwbGVtZW50LmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgQ3Jvc3NQcm9jZXNzUmVhbHRp
bWVBdWRpb1NvdXJjZTsKK2NsYXNzIFdlYlByb2Nlc3M7CisKK2NsYXNzIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyIDogcHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50LCBwdWJsaWMgSVBDOjpNZXNz
YWdlUmVjZWl2ZXIsIHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJl
RmFjdG9yeSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIo
V2ViUHJvY2VzcyopOworICAgIH5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlcigpOworCisgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CisKK3ByaXZhdGU6CisgICAgLy8gV2Vi
UHJvY2Vzc1N1cHBsZW1lbnQKKyAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyYpIGZpbmFsOworCisgICAgLy8gV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZTo6RmFjdG9yeToKKyAgICBSZWZQdHI8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZT4gY3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGNvbnN0
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
KiwgU3RyaW5nJikgZmluYWw7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmlu
YWw7CisKKyAgICAvLyBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIKKyAgICB2b2lk
IHNvdXJjZVN0b3BwZWQodWludDY0X3QgaWQpOworICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2Vk
KHVpbnQ2NF90IGlkLCBib29sIG11dGVkKTsKKyAgICB2b2lkIHNvdXJjZUVuYWJsZWRDaGFuZ2Vk
KHVpbnQ2NF90IGlkLCBib29sIGVuYWJsZWQpOworICAgIHZvaWQgc291cmNlU2V0dGluZ3NDaGFu
Z2VkKHVpbnQ2NF90IGlkLCBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MmKTsKKyAgICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKHVpbnQ2NF90IGlkLCBjb25zdCBTaGFyZWRN
ZW1vcnk6OkhhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYs
IHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKyAgICB2b2lkIHJpbmdCdWZmZXJGcmFtZUJvdW5k
c0NoYW5nZWQodWludDY0X3QgaWQsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZy
YW1lKTsKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh1aW50NjRfdCBpZCwgTWVkaWFU
aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0
X3QgZW5kRnJhbWUpOworCisgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QpOwor
ICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEodWludDY0X3QpOworCisgICAgY2xhc3MgU291cmNl
OworICAgIGZyaWVuZCBjbGFzcyBTb3VyY2U7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRy
PFNvdXJjZT4+IG1fc291cmNlczsKKyAgICBXZWJQcm9jZXNzJiBtX3Byb2Nlc3M7Cit9OworCit9
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZWVjMDU2NWM2ODY0YTQ2YjAwZTlmOGZiOTEwYzE4Yzg5ZTllNGExMwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgewor
ICAgIFNvdXJjZVN0b3BwZWQodWludDY0X3QgaWQpCisgICAgU291cmNlTXV0ZWRDaGFuZ2VkKHVp
bnQ2NF90IGlkLCBib29sIG11dGVkKQorICAgIFNvdXJjZUVuYWJsZWRDaGFuZ2VkKHVpbnQ2NF90
IGlkLCBib29sIGVuYWJsZWQpCisgICAgU291cmNlU2V0dGluZ3NDaGFuZ2VkKHVpbnQ2NF90IGlk
LCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MpCisgICAgU3Rv
cmFnZUNoYW5nZWQodWludDY0X3QgaWQsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUgc3Rv
cmFnZUhhbmRsZSwgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIGRlc2NyaXB0aW9u
LCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKKyAgICBBdWRpb1NhbXBsZXNBdmFpbGFibGUodWlu
dDY0X3QgaWQsIE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0
X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304578</attachid>
            <date>2017-03-15 16:36:56 -0700</date>
            <delta_ts>2017-03-15 21:10:58 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-169609-20170315163655.patch</filename>
            <type>text/plain</type>
            <size>67430</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzOTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWIwYTBhN2E3ZmMyM2Jl
ZmIwYmFhOGI4MTMxNGIyN2M4YmIwYzM0MS4uY2I5YjdkNjJhM2FiMDY2M2I1ZGY0NmIwZGUwYjQy
NGMyMDg2OWMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTAzLTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIE9wdGlvbmFsbHkgY2FwdHVy
ZSBhdWRpbyBpbiB0aGUgVUlQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjk2MDkKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlz
dGVuc2VuLgorCisgICAgICAgIEV4cG9ydCBzb21lIHByZXZpb3VzbHkgdW4tZXhwb3J0ZWQgc3lt
Ym9scyBmcm9tIFdlYkNvcmUgZm9yIHVzZSBpbiBXZWJLaXQyLgorCisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1dl
YkF1ZGlvQnVmZmVyTGlzdC5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2UuaDoKKwogMjAxNy0wMy0xNSAgQW50b2luZSBRdWludCAgPGdyYW91dHNA
YXBwbGUuY29tPgogCiAgICAgICAgIFtNb2Rlcm4gTWVkaWEgQ29udHJvbHNdIEFsd2F5cyB1c2Ug
c2l4IGRpZ2l0cyB0byBkaXNwbGF5IHRpbWUgd2hlbiBvdmVyYWxsIG1lZGlhIGR1cmF0aW9uIGlz
IGFuIGhvdXIgb3IgbW9yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDEyMTU4MGE3NWNiZmFiZmY3ZjQ0NjIxZTYz
NTFiNDY2NzA2ZWY4NWUuLjEyNGEzZDUxOWI2NTVkZDE2ZGI5YWRmYTRlNGM4NTBhOWFkOWMyZWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4OSBAQAorMjAxNy0wMy0xNCAgSmVyIE5vYmxlICA8amVy
Lm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBPcHRpb25hbGx5IGNhcHR1cmUgYXVkaW8gaW4g
dGhlIFVJUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTY5NjA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKwor
ICAgICAgICBBZGQgYSBuZXcgY2xhc3MgcGFpciwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIvUHJv
eHksIHRvIGFsbG93IGEgUmVhbHRpbWVNZWRpYVNvdXJjZQorICAgICAgICByZXF1ZXN0ZWQgaW4g
YSBXZWJQcm9jZXNzIHRvIGJlIGNyZWF0ZWQgaW4gdGhlIFVJUHJvY2VzcyBhbmQgcHVzaCBpdHMg
YXVkaW8gZGF0YSBhY3Jvc3MgdGhlCisgICAgICAgIHByb2Nlc3MgYm91bmRhcnkgdG8gaXRzIGNs
aWVudHMgaW4gdGhlIFdlYlByb2Nlc3MuIEJlY2F1c2UgdGhlc2UgY2xhc3NlcyBhcmUgY2xpZW50
cyBvZiB0aGUKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCks
IHRoZXkgbXVzdCBiZSBhIHNpbmdsZXRvbiBpbiB0aGUgV2ViUHJvY2VzcyBhcyB3ZWxsLAorICAg
ICAgICBzbyB0aGV5IGFyZSBhdHRhY2hlZCB0byB0aGUgV2ViUHJvY2VzcyBjbGFzcyBpbiB0aGUg
d2ViIHByb2Nlc3MgYW5kIHRvIFdlYlByb2Nlc3NQcm94eSBpbgorICAgICAgICB0aGUgVUlQcm9j
ZXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6U291cmNlUHJveHk6OlNvdXJjZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6On5Tb3VyY2VQcm94eSk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5
Ojpzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjpTb3VyY2VQcm94eTo6ZGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94eTo6bnVtYmVyT2ZGcmFtZXMpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6flVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVE
ZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5OjpzdGFydFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViS2l0OjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzdG9wUHJvZHVjaW5nRGF0YSk6CisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6cHJvY2Vzcyk6CisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW46IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6bmV4dFNlc3Npb25JRCk6CisgICAg
ICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OlNvdXJjZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6On5Tb3VyY2Up
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpzZXRD
YXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
U291cmNlOjpzZXRTZXR0aW5ncyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjpTb3VyY2U6OmRlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6c2V0U3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnNldFJpbmdCdWZmZXJGcmFtZUJvdW5kcyk6
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OmF1ZGlv
U2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIpOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1
cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6c291cmNlU3RvcHBlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyOjpzb3VyY2VNdXRlZENoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlRW5hYmxlZENoYW5nZWQpOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlU2V0dGluZ3NDaGFuZ2VkKToKKyAg
ICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN0b3JhZ2VDaGFuZ2VkKToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnJpbmdCdWZmZXJGcmFt
ZUJvdW5kc0NoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OnN0YXJ0UHJvZHVjaW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpzdG9wUHJvZHVjaW5nRGF0YSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRl
ZC4KKworICAgICAgICBJbml0aWFsaXplIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyL1Byb3h5Ogor
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNz
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHkpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKToKKworICAgICAg
ICBXZWJVc2VyTWVkaWFDbGllbnRNYWMgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeSBub3cgdGhhdCB0
aGUgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgb3ZlcnJpZGVzCisgICAgICAgIHRoZSBmYWN0b3Jp
ZXM6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNs
aWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVudDo6V2ViVXNlck1l
ZGlhQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50Ojppbml0aWFs
aXplRmFjdG9yaWVzKTogRGVsZXRlZC4KKworICAgICAgICBBZGQgYSBuZXcgcHJlZmVyZW5jZSBh
bmQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBtZW1iZXIgdG8gY29udHJvbCB3aGV0aGVy
CisgICAgICAgIGNhcHR1cmluZyBpcyBkb25lIGluIHRoZSBVSVByb2Nlc3M6CisKKyAgICAgICAg
KiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oOgorICAgICAgICAqIFNoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorCisgICAgICAgIEFkZCBuZXcgZmlsZXMgdG8gdGhl
IHByb2plY3Q6CisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFdl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxNy0wMy0xNSAgRGVhbiBKYWNr
c29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgU29ydCBYY29kZSBwcm9qZWN0IGZpbGVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggZmU5ODlkZDY2YWQ3ZGMyNTNhYTU3YWE0YjczNmI1OWJmODU4MWMzYy4uM2NhNDBlNzg1
YWZhOWUwZTQ3YTBmZGE4MWYzZGE4NWUwYTM5ZmRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjE2OSw3ICs2MTY5LDcgQEAK
IAkJQ0RFNTk1OTcxQkYyNkUyMTAwQTFDQkU4IC8qIENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9i
akMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTU5
NTk2MUJGMjZFMjEwMEExQ0JFOCAvKiBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmggKi87
IH07CiAJCUNERTU5NTlEMUJGMjc1NzEwMEExQ0JFOCAvKiBDRE1TZXNzaW9uTWVkaWFTb3VyY2VB
VkZPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0RFNTk1OUMxQkYyNzU3MTAwQTFDQkU4IC8qIENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMu
bW0gKi87IH07CiAJCUNERTY2N0E0MUU0QkJGMTUwMEU4MTU0QSAvKiBXZWJBdWRpb0J1ZmZlckxp
c3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RF
NjY3QTIxRTRCQkYxNTAwRTgxNTRBIC8qIFdlYkF1ZGlvQnVmZmVyTGlzdC5jcHAgKi87IH07Ci0J
CUNERTY2N0E1MUU0QkJGMTUwMEU4MTU0QSAvKiBXZWJBdWRpb0J1ZmZlckxpc3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTY2N0EzMUU0QkJGMTUw
MEU4MTU0QSAvKiBXZWJBdWRpb0J1ZmZlckxpc3QuaCAqLzsgfTsKKwkJQ0RFNjY3QTUxRTRCQkYx
NTAwRTgxNTRBIC8qIFdlYkF1ZGlvQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3QTMxRTRCQkYxNTAwRTgxNTRBIC8qIFdlYkF1
ZGlvQnVmZmVyTGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUNERTdGQzQ0MTgxOTA0QjEwMDJCQkI3NyAvKiBPcmRlckl0ZXJhdG9yLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTdGQzQyMTgx
OTA0QjEwMDJCQkI3NyAvKiBPcmRlckl0ZXJhdG9yLmNwcCAqLzsgfTsKIAkJQ0RFN0ZDNDUxODE5
MDRCMTAwMkJCQjc3IC8qIE9yZGVySXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTdGQzQzMTgxOTA0QjEwMDJCQkI3NyAvKiBPcmRlckl0
ZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQ0RFODNEQjExODNDNDQwNjAwMzFFQUEzIC8qIFZpZGVvUGxheWJhY2tRdWFsaXR5LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTgzREFGMTgz
QzQ0MDYwMDMxRUFBMyAvKiBWaWRlb1BsYXliYWNrUXVhbGl0eS5jcHAgKi87IH07CkBAIC02MTg2
LDYgKzYxODYsNyBAQAogCQlDREVBN0M4NTEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNj
cmVlbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
REVBN0M4MzEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNjcmVlbi5jcHAgKi87IH07CiAJ
CUNERUUzOTM3MTc5NzQyNTkwMDFENzU4MCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERUUzOTM2MTc5NzQyNTkw
MDFENzU4MCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmNwcCAqLzsgfTsKIAkJQ0RFRjRGRDcxN0U4NUM4
RjAwQUVFMjRCIC8qIEdyaWRMZW5ndGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENERUY0RkQ2MTdFODVDOEYwMEFFRTI0QiAvKiBHcmlkTGVuZ3RoLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RFRkEy
MjgxRTc2NjlFODAwMEFFOTlDIC8qIFBsYXRmb3JtQXVkaW9EYXRhLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREU2NjdBMTFFNEJCQTREMDBFODE1NEEg
LyogUGxhdGZvcm1BdWRpb0RhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlDREYyQjAwNDE4MUYwNTlDMDBGMkI0MjQgLyogTWVkaWFEZXNjcmlw
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RG
MkIwMDMxODFGMDU5QzAwRjJCNDI0IC8qIE1lZGlhRGVzY3JpcHRpb24uaCAqLzsgfTsKIAkJQ0RG
MkIwMTAxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tCb3guY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGMkIwMDYxODIwNTQwNjAwRjJCNDI0IC8qIE1v
Y2tCb3guY3BwICovOyB9OwogCQlDREYyQjAxMTE4MjA1NDA2MDBGMkI0MjQgLyogTW9ja0JveC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGMkIwMDcx
ODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tCb3guaCAqLzsgfTsKQEAgLTI2OTg0LDYgKzI2OTg1LDcg
QEAKIAkJCQlGRDMxNjA5OTEyQjAyNkY3MDBDMUEzNTkgLyogSFJURkRhdGFiYXNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGRDMxNjA5QjEyQjAyNkY3MDBDMUEzNTkgLyogSFJURkRhdGFiYXNlTG9h
ZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA5RDEyQjAyNkY3MDBDMUEzNTkgLyogSFJU
RkVsZXZhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0RFRkEyMjgxRTc2NjlFODAwMEFFOTlD
IC8qIFBsYXRmb3JtQXVkaW9EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA5RjEyQjAy
NkY3MDBDMUEzNTkgLyogSFJURktlcm5lbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwQTEx
MkIwMjZGNzAwQzFBMzU5IC8qIEhSVEZQYW5uZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTdF
MjNBMTA5MTQ0OTUwMDEwRDM2MSAvKiBIVE1MQWxsQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9XZWJBdWRpb0J1ZmZl
ckxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1dlYkF1ZGlvQnVmZmVyTGlz
dC5oCmluZGV4IGJiZjNjMTM5YjYyNWU3YjRjNzlhZjg0MjQxMzhiNTA0MDczMTg1YTguLmRiNjVk
MzUzNGUzYmE1ZTc4NzljZjJmNGQ5Njg0MDgwYzA0ZjYxNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1dlYkF1ZGlvQnVmZmVyTGlzdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1dlYkF1ZGlvQnVmZmVyTGlzdC5oCkBAIC00Miw3ICs0Miw3
IEBAIGNsYXNzIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKIGNsYXNzIFdlYkF1ZGlvQnVmZmVy
TGlzdCA6IHB1YmxpYyBQbGF0Zm9ybUF1ZGlvRGF0YSB7CiBwdWJsaWM6CiAgICAgV2ViQXVkaW9C
dWZmZXJMaXN0KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYpOwotICAgIFdlYkF1ZGlv
QnVmZmVyTGlzdChjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCB1aW50MzJfdCBzYW1w
bGVDb3VudCk7CisgICAgV0VCQ09SRV9FWFBPUlQgV2ViQXVkaW9CdWZmZXJMaXN0KGNvbnN0IENB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQzMl90IHNhbXBsZUNvdW50KTsKICAgICBXZWJB
dWRpb0J1ZmZlckxpc3QoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgQ01TYW1wbGVC
dWZmZXJSZWYpOwogCiAgICAgQXVkaW9CdWZmZXJMaXN0KiBsaXN0KCkgY29uc3QgeyByZXR1cm4g
bV9saXN0LmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9tYWMvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9tYWMvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgKaW5kZXggZjdjNWU4MGQwODFk
OTJhYzY1Mjc3MmJiNTc1ODliMWFjMmIyN2ZlMS4uODE3MjQ2ZDQwZWJjYTZjOWJkOGRjZWI1NjRl
NThiNDBlZGIyMWMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
bWFjL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL21hYy9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaApAQCAtOTAsMzEgKzkwLDEz
IEBAIHByaXZhdGU6CiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb246OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29k
ZXIgPDwgbV9zdHJlYW1EZXNjcmlwdGlvbi5tU2FtcGxlUmF0ZQotICAgICAgICA8PCBtX3N0cmVh
bURlc2NyaXB0aW9uLm1Gb3JtYXRJRAotICAgICAgICA8PCBtX3N0cmVhbURlc2NyaXB0aW9uLm1G
b3JtYXRGbGFncwotICAgICAgICA8PCBtX3N0cmVhbURlc2NyaXB0aW9uLm1CeXRlc1BlclBhY2tl
dAotICAgICAgICA8PCBtX3N0cmVhbURlc2NyaXB0aW9uLm1GcmFtZXNQZXJQYWNrZXQKLSAgICAg
ICAgPDwgbV9zdHJlYW1EZXNjcmlwdGlvbi5tQnl0ZXNQZXJGcmFtZQotICAgICAgICA8PCBtX3N0
cmVhbURlc2NyaXB0aW9uLm1DaGFubmVsc1BlckZyYW1lCi0gICAgICAgIDw8IG1fc3RyZWFtRGVz
Y3JpcHRpb24ubUJpdHNQZXJDaGFubmVsCi0gICAgICAgIDw8IG1fc3RyZWFtRGVzY3JpcHRpb24u
bVJlc2VydmVkOwotICAgIGVuY29kZXIuZW5jb2RlRW51bShtX2Zvcm1hdCk7CisgICAgZW5jb2Rl
ci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4o
Jm1fc3RyZWFtRGVzY3JpcHRpb24pLCBzaXplb2YobV9zdHJlYW1EZXNjcmlwdGlvbiksIDEpOwog
fQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgogYm9vbCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b246OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRl
c2NyaXB0aW9uKQogewotICAgIHJldHVybiBkZWNvZGVyLmRlY29kZShkZXNjcmlwdGlvbi5tX3N0
cmVhbURlc2NyaXB0aW9uLm1TYW1wbGVSYXRlKQotICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShk
ZXNjcmlwdGlvbi5tX3N0cmVhbURlc2NyaXB0aW9uLm1Gb3JtYXRJRCkKLSAgICAgICAgJiYgZGVj
b2Rlci5kZWNvZGUoZGVzY3JpcHRpb24ubV9zdHJlYW1EZXNjcmlwdGlvbi5tRm9ybWF0RmxhZ3Mp
Ci0gICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGRlc2NyaXB0aW9uLm1fc3RyZWFtRGVzY3JpcHRp
b24ubUJ5dGVzUGVyUGFja2V0KQotICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShkZXNjcmlwdGlv
bi5tX3N0cmVhbURlc2NyaXB0aW9uLm1GcmFtZXNQZXJQYWNrZXQpCi0gICAgICAgICYmIGRlY29k
ZXIuZGVjb2RlKGRlc2NyaXB0aW9uLm1fc3RyZWFtRGVzY3JpcHRpb24ubUJ5dGVzUGVyRnJhbWUp
Ci0gICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGRlc2NyaXB0aW9uLm1fc3RyZWFtRGVzY3JpcHRp
b24ubUNoYW5uZWxzUGVyRnJhbWUpCi0gICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGRlc2NyaXB0
aW9uLm1fc3RyZWFtRGVzY3JpcHRpb24ubUJpdHNQZXJDaGFubmVsKQotICAgICAgICAmJiBkZWNv
ZGVyLmRlY29kZShkZXNjcmlwdGlvbi5tX3N0cmVhbURlc2NyaXB0aW9uLm1SZXNlcnZlZCkKLSAg
ICAgICAgJiYgZGVjb2Rlci5kZWNvZGVFbnVtKGRlc2NyaXB0aW9uLm1fZm9ybWF0KTsKKyAgICBy
ZXR1cm4gZGVjb2Rlci5kZWNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDx1aW50
OF90Kj4oJmRlc2NyaXB0aW9uLm1fc3RyZWFtRGVzY3JpcHRpb24pLCBzaXplb2YoZGVzY3JpcHRp
b24ubV9zdHJlYW1EZXNjcmlwdGlvbiksIDEpOwogfQogCiBpbmxpbmUgQ0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uIHRvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mIGRlc2NyaXB0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vbWFjL0NBUmluZ0J1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vbWFjL0NBUmluZ0J1ZmZlci5oCmluZGV4IDVhYWI0OTI3ZGUwYWQ5N2Y4YjgxNTgxMjQyOWFm
ZTk2YjQ3YjUzMWIuLjQ1YzU1ZGMxMzAxODE4MjFkNjA4ZThiNzNhZDdmNzY0NWZkZjgyMTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9DQVJpbmdCdWZmZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmgK
QEAgLTg1LDYgKzg1LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q3Vy
cmVudEZyYW1lQm91bmRzKHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsK
IAogICAgIHVpbnQzMl90IGNoYW5uZWxDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hhbm5lbENv
dW50OyB9CisgICAgQ0FSaW5nQnVmZmVyU3RvcmFnZSYgc3RvcmFnZSgpIHsgcmV0dXJuIG1fYnVm
ZmVyczsgfQogCiBwcml2YXRlOgogICAgIHNpemVfdCBmcmFtZU9mZnNldCh1aW50NjRfdCBmcmFt
ZU51bWJlcikgeyByZXR1cm4gKGZyYW1lTnVtYmVyICYgbV9mcmFtZUNvdW50TWFzaykgKiBtX2J5
dGVzUGVyRnJhbWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCA2OTQ2N2JmY2Y4MjQwMWQ2MWU1
N2RmNTM3ZTVkNWViMTE1YjUwMWYxLi5lOWM1ZjNjNTk4YThjYzE3NzcxNzQ0MDgyNDNiMTRiNWU4
NDJiMjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC02MSw3ICs2MSw3IEBAIGNsYXNzIE1lZGlh
U3RyZWFtUHJpdmF0ZTsKIGNsYXNzIFBsYXRmb3JtQXVkaW9EYXRhOwogY2xhc3MgUmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzOwogCi1jbGFzcyBSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGlj
IFJlZkNvdW50ZWQ8UmVhbHRpbWVNZWRpYVNvdXJjZT4geworY2xhc3MgV0VCQ09SRV9FWFBPUlQg
UmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBSZWZDb3VudGVkPFJlYWx0aW1lTWVkaWFTb3Vy
Y2U+IHsKIHB1YmxpYzoKICAgICBjbGFzcyBPYnNlcnZlciB7CiAgICAgcHVibGljOgpAQCAtMjAw
LDYgKzIwMCw4IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgYXBwbHlDb25zdHJhaW50
cyhjb25zdCBGbGF0dGVuZWRDb25zdHJhaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIGFwcGx5U2l6
ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0aW9uYWw8aW50
PiBoZWlnaHQsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPik7CiAKKyAgICBjb25zdCBWZWN0b3I8T2Jz
ZXJ2ZXIqPiBvYnNlcnZlcnMoKSBjb25zdCB7IHJldHVybiBtX29ic2VydmVyczsgfQorCiAgICAg
Ym9vbCBtX211dGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fZW5hYmxlZCB7IHRydWUgfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9X
ZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggOTk0OTJmZmFlYTE0NGVlNGM3ZjRlNWVl
NWQ5MWUzZjY2YjhiNWU1MC4uOWRlZjM3MDRiNzRkNDU4OGJhZGMwYjQyYzEyMDcwN2NhZmQ5MWM0
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC00NSw2ICs0NSw3IEBAIFZQQVRI
ID0gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBcCiAgICAgJChXZWJL
aXQyKS9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNz
L01lZGlhQ2FjaGUgXAorICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbSBcCiAg
ICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL05ldHdvcmsgXAogICAgICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0YyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMgXApAQCAtNjUsNiArNjYsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIpL1VJUHJv
Y2Vzcy9Db2NvYSBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvRGF0YWJhc2VzIFwKICAgICAk
KFdlYktpdDIpL1VJUHJvY2Vzcy9Eb3dubG9hZHMgXAorICAgICQoV2ViS2l0MikvVUlQcm9jZXNz
L01lZGlhU3RyZWFtIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9OZXR3b3JrIFwKICAgICAk
KFdlYktpdDIpL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scyBcCiAgICAgJChXZWJL
aXQyKS9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucyBcCkBAIC0xMjEsNiArMTIzLDggQEAgTUVTU0FH
RV9SRUNFSVZFUlMgPSBcCiAgICAgU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlciBcCiAgICAg
U3RvcmFnZUFyZWFNYXAgXAogICAgIFN0b3JhZ2VNYW5hZ2VyIFwKKyAgICBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlciBcCisgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSBcCiAgICAgVmll
d0dlc3R1cmVDb250cm9sbGVyIFwKICAgICBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yIFwK
ICAgICBWaWV3VXBkYXRlRGlzcGF0Y2hlciBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAppbmRleCA3ZmY3NzAyOGJmYjVjMDU1ZDhlYjJk
NmEwNTIxODg0OGZhZDZjNTlhLi5iOWMxNTlkYjA4NmViMjU2NzFhNGViYzgzNjJiZjIwNDk3Mjk1
ZDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZp
bml0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmlu
aXRpb25zLmgKQEAgLTEwMyw2ICsxMDMsMTIgQEAKICNkZWZpbmUgREVGQVVMVF9DQU5WQVNfVVNF
U19BQ0NFTEVSQVRFRF9EUkFXSU5HIHRydWUKICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0Ep
CisjZGVmaW5lIERFRkFVTFRfU0hPVUxEX0NBUFRVUkVfQVVESU9fSU5fVUlQUk9DRVNTIHRydWUK
KyNlbHNlCisjZGVmaW5lIERFRkFVTFRfU0hPVUxEX0NBUFRVUkVfQVVESU9fSU5fVUlQUk9DRVNT
IGZhbHNlCisjZW5kaWYKKwogLy8gbWFjcm8oS2V5VXBwZXIsIEtleUxvd2VyLCBUeXBlTmFtZVVw
cGVyLCBUeXBlTmFtZSwgRGVmYXVsdFZhbHVlLCBIdW1hblJlYWRhYmxlTmFtZSwgSHVtYW5SZWFk
YWJsZURlc2NyaXB0aW9uKQogCiAjZGVmaW5lIEZPUl9FQUNIX1dFQktJVF9CT09MX1BSRUZFUkVO
Q0UobWFjcm8pIFwKQEAgLTI1Miw2ICsyNTgsNyBAQAogICAgIG1hY3JvKEdhbWVwYWRzRW5hYmxl
ZCwgZ2FtZXBhZHNFbmFibGVkLCBCb29sLCBib29sLCB0cnVlLCAiR2FtZXBhZHMiLCAiV2ViIEdh
bWVwYWQgQVBJIHN1cHBvcnQiKSBcCiAgICAgbWFjcm8oSW5wdXRFdmVudHNFbmFibGVkLCBpbnB1
dEV2ZW50c0VuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUsICJJbnB1dCBFdmVudHMiLCAiRW5hYmxl
IElucHV0RXZlbnRzIHN1cHBvcnQiKSBcCiAgICAgbWFjcm8oQ3JlZGVudGlhbE1hbmFnZW1lbnRF
bmFibGVkLCBjcmVkZW50aWFsTWFuYWdlbWVudEVuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlLCAi
Q3JlZGVudGlhbCBNYW5hZ2VtZW50IiwgIkVuYWJsZSBDcmVkZW50aWFsIE1hbmFnZW1lbnQgc3Vw
cG9ydCIpIFwKKyAgICBtYWNybyhTaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2Vzcywgc2hvdWxk
Q2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MsIEJvb2wsIGJvb2wsIERFRkFVTFRfU0hPVUxEX0NBUFRV
UkVfQVVESU9fSU5fVUlQUk9DRVNTLCAiQ2FwdHVyZSIsICJDYXB0dXJlIEF1ZGlvIGluIFVJUHJv
Y2VzcyIpIFwKICAgICBcCiAKICNkZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX0RPVUJMRV9QUkVGRVJF
TkNFKG1hY3JvKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggNTEyZDIxMmQ4NGEwMTE4MDhjMjlhOGI1MTg0
MTllMjBhNTE3NmIxYy4uZjMzZWE2YzBhODNiNDliMDFlN2ExNmFjZDVhMTFlYmE5YzMxMTYzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcApAQCAtNjgsNiArNjgsNyBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2Rl
ciA8PCBtZWRpYUtleVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKICAgICBlbmNvZGVyIDw8IGF1ZGlvQ2FwdHVyZUV4dGVuc2lvbkhhbmRs
ZTsKKyAgICBlbmNvZGVyIDw8IHNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzOwogI2VuZGlm
CiAgICAgZW5jb2RlciA8PCBzaG91bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb247CiAgICAgZW5j
b2RlciA8PCB1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzRW1wdHlEb2N1bWVudDsKQEAgLTE4OSw2ICsx
OTAsOCBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRl
Y29kZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVhdAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmF1ZGlvQ2FwdHVyZUV4dGVuc2lv
bkhhbmRsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHBhcmFtZXRlcnMuc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CiAjZW5kaWYKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuc2hv
dWxkVXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgKaW5kZXggYTNlNjJjZjlkNDMxZjQwYmRjYTdhNWM4MDBjYzU3MDU5NzFjOGU5NC4uZmQ4MDZi
MjIwMjQ3OWUxNjA0ODYxZGY5OGUwOGNhYjFhMWFhNjBkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC04OCw2ICs4
OCw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGUgbWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
OwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
IGF1ZGlvQ2FwdHVyZUV4dGVuc2lvbkhhbmRsZTsKKyAgICBib29sIHNob3VsZENhcHR1cmVBdWRp
b0luVUlQcm9jZXNzIHsgZmFsc2UgfTsKICNlbmRpZgogICAgIFN0cmluZyBtZWRpYUtleVN0b3Jh
Z2VEaXJlY3Rvcnk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
MGFmYzdhMjBjYTlhMmY3ODY1NzMxYjhjYjE5YTliNWMzOTBjNGRhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuY3BwCkBAIC0wLDAgKzEsMTU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCIKKworI2lmIFBM
QVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiU2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAi
V2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHNJbXBsLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRp
b0J1ZmZlckxpc3QuaD4KKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHkgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6T2JzZXJ2ZXIsIHB1YmxpYyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50IHsKK3B1
YmxpYzoKKyAgICBTb3VyY2VQcm94eSh1aW50NjRfdCBpZCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eSYgbWFuYWdlciwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQorICAg
ICAgICA6IG1faWQoaWQpCisgICAgICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCisgICAgICAgICwg
bV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQorICAgICAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5p
cXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlPih0aGlzKSkpCisgICAgeworICAgICAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2
ZXIoKnRoaXMpOworICAgIH0KKworICAgIH5Tb3VyY2VQcm94eSgpCisgICAgeworICAgICAgICBz
dG9yYWdlKCkuaW52YWxpZGF0ZSgpOworICAgICAgICBtX3NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIo
KnRoaXMpOworICAgIH0KKworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSgpIHsgcmV0
dXJuIG1fc291cmNlOyB9CisgICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKSB7
IHJldHVybiBzdGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZl
ci5zdG9yYWdlKCkpOyB9CisgICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlv
bigpIHsgcmV0dXJuIG1fZGVzY3JpcHRpb247IH0KKyAgICBpbnQ2NF90IG51bWJlck9mRnJhbWVz
KCkgeyByZXR1cm4gbV9udW1iZXJPZkZyYW1lczsgfQorCisgICAgdm9pZCBzb3VyY2VTdG9wcGVk
KCkgZmluYWwgeworICAgICAgICBtX21hbmFnZXIucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2VTdG9wcGVkKG1faWQpLCAwKTsKKyAgICB9CisK
KyAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZCgpIGZpbmFsIHsKKyAgICAgICAgbV9tYW5hZ2Vy
LnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNl
TXV0ZWRDaGFuZ2VkKG1faWQsIG1fc291cmNlLT5tdXRlZCgpKSwgMCk7CisgICAgfQorCisgICAg
dm9pZCBzb3VyY2VFbmFibGVkQ2hhbmdlZCgpIGZpbmFsIHsKKyAgICAgICAgbV9tYW5hZ2VyLnBy
b2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlRW5h
YmxlZENoYW5nZWQobV9pZCwgbV9zb3VyY2UtPmVuYWJsZWQoKSksIDApOworICAgIH0KKworICAg
IHZvaWQgc291cmNlU2V0dGluZ3NDaGFuZ2VkKCkgZmluYWwgeworICAgICAgICBtX21hbmFnZXIu
cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2VT
ZXR0aW5nc0NoYW5nZWQobV9pZCwgbV9zb3VyY2UtPnNldHRpbmdzKCkpLCAwKTsKKyAgICB9CisK
KyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNv
bnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpIGZpbmFsIHsKKyAgICAg
ICAgaWYgKG1fZGVzY3JpcHRpb24gIT0gZGVzY3JpcHRpb24pIHsKKyAgICAgICAgICAgIEFTU0VS
VChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURlc2Ny
aXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKKyAgICAgICAgICAgIG1fZGVzY3JpcHRp
b24gPSAqV1RGOjpnZXQ8Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3Jp
cHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKKworICAgICAgICAgICAg
Ly8gQWxsb2NhdGUgYSByaW5nIGJ1ZmZlciBsYXJnZSBlbm91Z2ggdG8gY29udGFpbiAyIHNlY29u
ZHMgb2YgYXVkaW8uCisgICAgICAgICAgICBtX251bWJlck9mRnJhbWVzID0gbV9kZXNjcmlwdGlv
bi5zYW1wbGVSYXRlKCkgKiAyOworICAgICAgICAgICAgbV9yaW5nQnVmZmVyLmFsbG9jYXRlKG1f
ZGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgbV9udW1iZXJPZkZyYW1lcyk7CisgICAg
ICAgIH0KKworICAgICAgICBBU1NFUlQoaXM8V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRpb0RhdGEp
KTsKKyAgICAgICAgbV9yaW5nQnVmZmVyLnN0b3JlKGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlz
dD4oYXVkaW9EYXRhKS5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsK
KyAgICAgICAgdWludDY0X3Qgc3RhcnRGcmFtZTsKKyAgICAgICAgdWludDY0X3QgZW5kRnJhbWU7
CisgICAgICAgIG1fcmluZ0J1ZmZlci5nZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwg
ZW5kRnJhbWUpOworICAgICAgICBtX21hbmFnZXIucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb1NhbXBsZXNBdmFpbGFibGUobV9pZCwgdGltZSwg
bnVtYmVyT2ZGcmFtZXMsIHN0YXJ0RnJhbWUsIGVuZEZyYW1lKSwgMCk7CisgICAgfQorCisgICAg
dm9pZCBzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2UpIGZpbmFsIHsKKyAgICAg
ICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOworICAgICAgICBpZiAoc3RvcmFnZSkKKyAg
ICAgICAgICAgIHN0b3JhZ2UtPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJv
dGVjdGlvbjo6UmVhZE9ubHkpOworICAgICAgICBtX21hbmFnZXIucHJvY2VzcygpLnNlbmQoTWVz
c2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTdG9yYWdlQ2hhbmdlZChtX2lkLCBoYW5k
bGUsIG1fZGVzY3JpcHRpb24sIG1fbnVtYmVyT2ZGcmFtZXMpLCAwKTsKKyAgICB9CisKK3Byb3Rl
Y3RlZDoKKyAgICB1aW50NjRfdCBtX2lkOworICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkmIG1fbWFuYWdlcjsKKyAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7Cisg
ICAgQ0FSaW5nQnVmZmVyIG1fcmluZ0J1ZmZlcjsKKyAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24gbV9kZXNjcmlwdGlvbiB7IH07CisgICAgaW50NjRfdCBtX251bWJlck9mRnJhbWVzIHsgMCB9
OworfTsKKworVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eShXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCisgICAgOiBtX3Byb2Nlc3MocHJv
Y2VzcykKK3sKKyAgICBtX3Byb2Nlc3MuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsK
K30KKworVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6flVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkoKQoreworICAgIG1fcHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7
Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3Vy
Y2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBDYXB0
dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHNEYXRhJiBjb25zdHJhaW50
c0RhdGEsIGJvb2wmIHN1Y2NlZWRlZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMpCit7Cisg
ICAgYXV0byBjb25zdHJhaW50cyA9IE1lZGlhQ29uc3RyYWludHNJbXBsOjpjcmVhdGUoY29uc3Ry
YWludHNEYXRhKTsKKyAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gc291cmNlID0gUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuZGVmYXVsdEF1ZGlvRmFjdG9yeSgp
LT5jcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoZGV2aWNl
LCBjb25zdHJhaW50cy5wdHIoKSwgaW52YWxpZENvbnN0cmFpbnRzKTsKKyAgICBzdWNjZWVkZWQg
PSAhIXNvdXJjZTsKKyAgICAKKyAgICBpZiAoc291cmNlKQorICAgICAgICBtX3Byb3hpZXMuc2V0
KGlkLCBzdGQ6Om1ha2VfdW5pcXVlPFNvdXJjZVByb3h5PihpZCwgKnRoaXMsIHNvdXJjZS5yZWxl
YXNlTm9uTnVsbCgpKSk7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
c3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQoreworICAgIGF1dG8gaXRlciA9IG1fcHJv
eGllcy5maW5kKGlkKTsKKyAgICBpZiAoaXRlciAhPSBtX3Byb3hpZXMuZW5kKCkpCisgICAgICAg
IGl0ZXItPnZhbHVlLT5zb3VyY2UoKS5zdGFydFByb2R1Y2luZ0RhdGEoKTsKK30KKwordm9pZCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCBp
ZCkKK3sKKyAgICBhdXRvIGl0ZXIgPSBtX3Byb3hpZXMuZmluZChpZCk7CisgICAgaWYgKGl0ZXIg
IT0gbV9wcm94aWVzLmVuZCgpKQorICAgICAgICBpdGVyLT52YWx1ZS0+c291cmNlKCkuc3RvcFBy
b2R1Y2luZ0RhdGEoKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjgxMTMyMWRiYWNhMDQ3NWVkNDc5ZjJiYmZiYjM1ZTU2NjRkOGY2ZDIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
CisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgor
I2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgU2hhcmVkTWVtb3J5OworY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OworCitjbGFzcyBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IDogcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZl
ciB7CitwdWJsaWM6CisgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eShXZWJQcm9jZXNz
UHJveHkmKTsKKyAgICB+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpOworCisgICAgV2Vi
UHJvY2Vzc1Byb3h5JiBwcm9jZXNzKCkgY29uc3QgeyByZXR1cm4gbV9wcm9jZXNzOyB9CisKK3By
aXZhdGU6CisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0
ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JikgZmluYWw7CisKKyAgICB2b2lkIGNyZWF0ZU1l
ZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgY29u
c3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHNEYXRhJiwgYm9vbCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cyk7Cisg
ICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QpOworICAgIHZvaWQgc3RvcFByb2R1
Y2luZ0RhdGEodWludDY0X3QpOworCisgICAgY2xhc3MgU291cmNlUHJveHk7CisgICAgZnJpZW5k
IGNsYXNzIFNvdXJjZVByb3h5OworICAgIEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0
cjxTb3VyY2VQcm94eT4+IG1fcHJveGllczsKKyAgICBXZWJQcm9jZXNzUHJveHkmIG1fcHJvY2Vz
czsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0YjhjYmI3YjhhNjliNzNiMzk3YTllOWQyYmNjMGU3MGIx
MzExNWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI4IEBA
CisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IHsKKyAgICBDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1
cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UgZGV2aWNlLCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEgY29uc3RyYWlu
dHMpIC0+IChib29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMpCisgICAgU3Rh
cnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQorICAgIFN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2
NF90IGlkKQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dl
YlByb2Nlc3NQb29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2Vi
UHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCA4NzM4ZjA3MDYzN2Y0OTBmMWYwODZjMDk5YjkzNzRl
NzQwZWNjN2VlLi5mNDczYjVkODEyMThlYmYyZjAyYTlhZmZmYmFhNWUxNDk5OWI4YWY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xD
b2NvYS5tbQpAQCAtMjU4LDYgKzI1OCw4IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3Jt
SW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYKICAgICAv
LyBGSVhNRTogUmVtb3ZlIHRoaXMgYW5kIHJlbGF0ZWQgcGFyYW1ldGVyIHdoZW4gPHJkYXI6Ly9w
cm9ibGVtLzI5NDQ4MzY4PiBpcyBmaXhlZC4KICAgICBpZiAobWVkaWFTdHJlYW1FbmFibGVkIHx8
IHdlYlJUQ0VuYWJsZWQpCiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZv
ckdlbmVyaWNFeHRlbnNpb24oImNvbS5hcHBsZS53ZWJraXQubWljcm9waG9uZSIsIHBhcmFtZXRl
cnMuYXVkaW9DYXB0dXJlRXh0ZW5zaW9uSGFuZGxlKTsKKworICAgIHBhcmFtZXRlcnMuc2hvdWxk
Q2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MgPSBtX2RlZmF1bHRQYWdlR3JvdXAtPnByZWZlcmVuY2Vz
KCkuc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MoKTsKICNlbmRpZgogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDVmZjY0ZDY0OGM0
Yjc4NDI1ZmQ5MTI3MDYzNDdmMjg3OGY5NGU1MDAuLjM4YzcxMDFiYmQ0MzY4OGVlNmI3YzY4NTQ0
NjI3NjJhZmJjNWExNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCkBAIC02Miw2ICs2Miw3IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVk
ZSAiT2JqQ09iamVjdEdyYXBoLmgiCiAjaW5jbHVkZSAiUERGUGx1Z2luLmgiCisjaW5jbHVkZSAi
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIgogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VD
X0lURU1fU0hJTSkKQEAgLTEwNCw5ICsxMDUsMTQgQEAgV2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9j
ZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBXZWJzaXRlRGF0YVN0b3JlKgog
ICAgICwgbV9pc1Jlc3BvbnNpdmUoTm9Pck1heWJlOjpNYXliZSkKICAgICAsIG1fdmlzaWJsZVBh
Z2VDb3VudGVyKFt0aGlzXShSZWZDb3VudGVyRXZlbnQpIHsgdXBkYXRlQmFja2dyb3VuZFJlc3Bv
bnNpdmVuZXNzVGltZXIoKTsgfSkKICAgICAsIG1fd2Vic2l0ZURhdGFTdG9yZSh3ZWJzaXRlRGF0
YVN0b3JlKQorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
ICwgbV91c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KHN0ZDo6bWFrZV91bmlxdWU8VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eT4oKnRoaXMpKQorI2VuZGlmCiB7CiAgICAgV2ViUGFzdGVi
b2FyZFByb3h5OjpzaW5nbGV0b24oKS5hZGRXZWJQcm9jZXNzUHJveHkoKnRoaXMpOwogCisKKwog
ICAgIGNvbm5lY3QoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oCmluZGV4IGY1ZTYxYWEwMDE4MDY3NzQ4MmFmMzcwN2RjYmRiMTk5NTE3ZmFmNmEuLmIz
Mjg4MTVjZjE2NDI3ZjhhYzZkZDY2NmYzYTk1NzJkYWE3MWM5M2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTU2LDYgKzU2LDcgQEAgc3RydWN0IFBs
dWdpbkluZm87CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmV0d29ya1Byb2Nlc3NQcm94
eTsKK2NsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJCYWNrRm9y
d2FyZExpc3RJdGVtOwogY2xhc3MgV2ViUGFnZUdyb3VwOwogY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7
CkBAIC0yNzMsNiArMjc0LDEwIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYnNpdGVEYXRhU3Rv
cmU+IG1fd2Vic2l0ZURhdGFTdG9yZTsKIAogICAgIGJvb2wgbV9pc1VuZGVyTWVtb3J5UHJlc3N1
cmUgeyBmYWxzZSB9OworCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisgICAgc3RkOjp1bmlxdWVfcHRyPFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk+IG1f
dXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggNjI2NzdmODdhNWVkNjUyMDE2ODczZmEzZWYxMjAyNWEzNTFhZTRlMC4u
NmRmYzdjZjk5MTE3NjQwZjQ2YjY3YWE0MGRkZGJhM2YyYjVkOWM3OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTg3OSwxMSAr
MTg3OSwxOCBAQAogCQlDRDAwM0E1MzE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9y
YWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0QwMDNBNTExOUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIu
aCAqLzsgfTsKIAkJQ0QxOUEyNkQxQTEzRTgyQTAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENEMTlBMjY5MUExM0U4MjAwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5jcHAgKi87IH07CiAJCUNEMTlBMjZFMUExM0U4MzQwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0QxOUEyNkExQTEzRTgyMTAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LmggKi87IH07CisJCUNENDkxQjA3MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDQ5MUIwNTFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
Y3BwICovOyB9OworCQlDRDQ5MUIwODFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENENDkxQjA2MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oICov
OyB9OworCQlDRDQ5MUIwRDFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0Q0OTFCMEIxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJQ0Q0OTFCMEUxRTczMkU0RDAwMDA5
MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENDkxQjBDMUU3MzJFNEQwMDAwOTA2NiAv
KiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CisJCUNENDkxQjEyMUU3
MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENDkxQjEwMUU3MzQ4MjEw
MDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCAqLzsgfTsKKwkJQ0Q0
OTFCMTMxRTczNDgyMTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENDkxQjExMUU3
MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggKi87IH07CisJ
CUNENDkxQjE3MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENENDkxQjE1MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJQ0Q0OTFCMTgxRTczNTI1NTAw
MDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0OTFCMTYxRTczNTI1NTAw
MDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovOyB9Owog
CQlDRDRCNEQ5QzFFNzY1RTAwMDBEMjcwOTIgLyogU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0QjREOUEx
RTc2NUUwMDAwRDI3MDkyIC8qIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmNwcCAqLzsgfTsKIAkJ
Q0Q0QjREOUQxRTc2NUUwMDAwRDI3MDkyIC8qIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDRCNEQ5QjFFNzY1
RTAwMDBEMjcwOTIgLyogU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCAqLzsgfTsKIAkJQ0Q1QzY2
QTAxMzRCOUQzODAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1QzY2
OUUxMzRCOUQzNjAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQu
Y3BwICovOyB9OwogCQlDRDVDNjZBMTEzNEI5RDM4MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQ
YWdlRnVsbFNjcmVlbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0Q1QzY2OUYxMzRCOUQzNzAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFn
ZUZ1bGxTY3JlZW5DbGllbnQuaCAqLzsgfTsKLQkJQ0Q2MTc4MTQxRTZERTlBMDAwRkRBNTdEIC8q
IFdlYlVzZXJNZWRpYUNsaWVudE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENENjE3ODEyMUU2REU5QTAwMEZEQTU3RCAvKiBXZWJVc2VyTWVkaWFD
bGllbnRNYWMubW0gKi87IH07CiAJCUNENkY3NUY0MTMxQjY2RDAwMEQ2QjIxRSAvKiBXZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENENzNCQTNFMTMxQTJFOEEwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5LmNwcCAqLzsgfTsKIAkJQ0Q3M0JBNDcxMzFBQ0M5QTAwRUVERUQyIC8qIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3M0JBNDUxMzFBQ0M4ODAwRUVERUQyIC8q
IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQlD
RDczQkE0RTEzMUFDREI3MDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q3M0JBNDgxMzFBQ0Q4RTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLzsgfTsKQEAgLTQxNjksMTEgKzQxNzYsMjAgQEAKIAkJQ0QwMDNBNTExOUQ0
OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oOyBwYXRoID0g
TWVkaWFDYWNoZS9XZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEMTlBMjY5MUExM0U4MjAwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNEMTlBMjZBMUExM0U4MjEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ5MUIwNTFFNzBEMDVGMDAw
MDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDRDQ5MUIwNjFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFC
MEExRTczMkQxMjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDRDQ5MUIwQjFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ5MUIwQzFFNzMyRTREMDAwMDkwNjYgLyog
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUNENDkxQjEwMUU3MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOyBwYXRoID0gLi4vQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNENDkxQjExMUU3MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuaDsgcGF0aCA9IC4uL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0OTFCMTQxRTczNDlGMzAwMDA5
MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjsgcGF0aCA9IC4uL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNENDkxQjE1MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ5MUIxNjFFNzM1MjU1MDAwMDkw
NjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDRCNEQ5QTFFNzY1RTAwMDBEMjcw
OTIgLyogU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRDRCNEQ5QjFFNzY1RTAwMDBEMjcwOTIgLyogU2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVkUmlu
Z0J1ZmZlclN0b3JhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1QzY2OUUx
MzRCOUQzNjAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdl
RnVsbFNjcmVlbkNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENUM2
NjlGMTM0QjlEMzcwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUZ1
bGxTY3JlZW5DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQ0Q2MTc4MTIx
RTZERTlBMDAwRkRBNTdEIC8qIFdlYlVzZXJNZWRpYUNsaWVudE1hYy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdlYlVzZXJNZWRpYUNsaWVudE1hYy5tbTsgcGF0
aCA9IGNvY29hL1dlYlVzZXJNZWRpYUNsaWVudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0Q3M0JBMzcxMzFBMjlGRTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyLmNwcDsgcGF0aCA9IEZ1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDczQkEzODEzMUEyOUZFMDBFRURFRDIgLyog
V2ViRnVsbFNjcmVlbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
V2ViRnVsbFNjcmVlbk1hbmFnZXIuaDsgcGF0aCA9IEZ1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1h
bmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q3M0JBMzkxMzFBMjlGRTAw
RUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgbmFtZSA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOyBwYXRoID0gRnVsbFNj
cmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTYyODEsNiArNjI5Nyw5IEBACiAJCTdDNkU3MEY4MThCMkQ0N0UwMEYyNEUy
RSAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJ
CQkJQ0Q0OTFCMDUxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNw
cCAqLywKKwkJCQlDRDQ5MUIwNjFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuaCAqLywKKwkJCQlDRDQ5MUIwQTFFNzMyRDEyMDAwMDkwNjYgLyogVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJQ0RBMjlBMTkxQ0JEQkY0MTAwOTAxQ0NG
IC8qIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaCAqLywKIAkJCQlDREEyOUExQzFDQkRCRjVC
MDA5MDFDQ0YgLyogV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJ
CQlDREEyOUExODFDQkRCRjQxMDA5MDFDQ0YgLyogV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5t
bSAqLywKQEAgLTc0NDgsNiArNzQ2Nyw5IEBACiAJCQkJMUFBNDE3RUQxMkMwMEQ4NzAwMkJFNjdC
IC8qIFRleHRDaGVja2VyTWFjLm1tICovLAogCQkJCTFBRjA1RDg1MTQ2ODgzNDgwMDhCMUU4MSAv
KiBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5LmggKi8sCiAJCQkJMUFGMDVEODQx
NDY4ODM0ODAwOEIxRTgxIC8qIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0g
Ki8sCisJCQkJQ0Q0OTFCMTAxRTczNDgyMTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuY3BwICovLAorCQkJCUNENDkxQjExMUU3MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmggKi8sCisJCQkJQ0Q0OTFCMTQxRTczNDlGMzAwMDA5MDY2
IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJMkQx
MjVDNUQxODU3RUEwNTAwM0JBM0NCIC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbSAqLywK
IAkJCQkyRDZDRDExNzE4OTA1OEE1MDBFNUE0QTAgLyogVmlld1NuYXBzaG90U3RvcmUuaCAqLywK
IAkJCQkyRDZDRDExODE4OTA1OEE1MDBFNUE0QTAgLyogVmlld1NuYXBzaG90U3RvcmUubW0gKi8s
CkBAIC03NjkzLDYgKzc3MTUsMTAgQEAKIAkJCQkxQTMzNERFQzE2REU4Rjg4MDA2QThFMzggLyog
U3RvcmFnZUFyZWFNYXBNZXNzYWdlcy5oICovLAogCQkJCTFBQjMxQTk0MTZCQzY4ODEwMEY2REJD
OSAvKiBTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUFCMzFBOTUx
NkJDNjg4MTAwRjZEQkM5IC8qIFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQlDRDQ5
MUIxNTFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8sCisJCQkJQ0Q0OTFCMTYxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovLAorCQkJCUNENDkxQjBCMUU3MzJF
NEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8sCisJCQkJQ0Q0OTFCMEMxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyTWVzc2FnZXMuaCAqLywKIAkJCQkyRDFCNUQ1QjE4NTg2OUM4MDA2QzY1OTYgLyogVmlld0dl
c3R1cmVDb250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkyRDFCNUQ1QzE4NTg2
OUM4MDA2QzY1OTYgLyogVmlld0dlc3R1cmVDb250cm9sbGVyTWVzc2FnZXMuaCAqLywKIAkJCQky
RDgxOUI5RjE4NjI4MDBFMDAxRjAzRDEgLyogVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvck1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC03ODI0LDcgKzc4NTAsNiBAQAogCQlDRDYxNzgxMTFF
NkRFOTgwMDBGREE1N0QgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAotCQkJCUNENjE3ODEyMUU2REU5QTAwMEZEQTU3RCAvKiBXZWJVc2VyTWVkaWFD
bGllbnRNYWMubW0gKi8sCiAJCQkpOwogCQkJbmFtZSA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTgwNDUsNiArODA3MCw3IEBACiAJCQkJN0MyNDEzMDMxQUFDRkE3NTAw
QTU4QzE1IC8qIF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdDMjQxMzA1MUFBQ0ZBOUMwMEE1OEMxNSAvKiBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0
b3JlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDQTM3OTNFMUFDMzc4QjMwMDc5REMz
NyAvKiBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQ0Q0OTFCMTMxRTczNDgyMTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDODlEMkJBMUE2QjBGMkMwMDNBNUZERSAvKiBf
V0tVc2VyQ29udGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M4OUQyQkMxQTZCMEY1
QjAwM0E1RkRFIC8qIF9XS1VzZXJDb250ZW50RmlsdGVySW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVDRDI4NjUzMUU3MjM1QUEwMDk0RkRDOCAvKiBfV0tVc2VyQ29udGVudEZpbHRlclBy
aXZhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtODA1Miw2ICs4MDc4LDcgQEAKIAkJCQk3Qzg4MkRG
OTFDN0U5OTZGMDA2QkY3MzEgLyogX1dLVXNlckNvbnRlbnRXb3JsZEludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk3Q0IzNjVBQTFEMzFEQjcwMDA3MTU4Q0EgLyogX1dLVXNlckluaXRpYXRl
ZEFjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NCMzY1QUQxRDMxREMxMDAwNzE1OENBIC8q
IF9XS1VzZXJJbml0aWF0ZWRBY3Rpb25JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q0
OTFCMEUxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTJEODc4NjFEMUJEQjU0QkYwMEQwMkFCQiAvKiBfV0tVc2Vy
U3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ4Nzg2MjAxQkRCNTdGNTAwRDAyQUJC
IC8qIF9XS1VzZXJTdHlsZVNoZWV0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBODFC
MzgxMThCRDY2QUQwMDA3RkRBQyAvKiBfV0tWaXNpdGVkTGlua1N0b3JlLmggaW4gSGVhZGVycyAq
LywKQEAgLTgwOTcsNiArODEyNCw3IEBACiAJCQkJMUEyNDY0RjMxODkxRTQ1MTAwMjM0QzVCIC8q
IEFQSUxvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NEM0E0ODMxQTVEMDJGQTAw
OTYyM0I4IC8qIEFQSU5hdmlnYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTJERjlFRUVDMUE3
ODM2RUUwMEI2Q0ZCRSAvKiBBUElOYXZpZ2F0aW9uQWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlDRDQ5MUIwODFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTJERDlFQjJEMUE2RjAxMjUwMEJCMTI2NyAvKiBBUElOYXZpZ2F0
aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0Y2OUZBMjExNzZEMDE0MDA0NzFBNTIg
LyogQVBJTmF2aWdhdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTJERjlFRUVFMUE3ODZF
QUQwMEI2Q0ZCRSAvKiBBUElOYXZpZ2F0aW9uUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLApAQCAt
ODQyMiw2ICs4NDUwLDcgQEAKIAkJCQlFMThFNjkwQzE2OUI1NjNGMDA5QjY2NzAgLyogU2VjSXRl
bVNoaW1Qcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE4RTY5MTgxNjlCNjY3QjAwOUI2Njcw
IC8qIFNlY0l0ZW1TaGltUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0RDlG
NTcxOTExOUQzNTAwMDA2M0E3IC8qIFNlcnZpY2VzQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQ0Q0OTFCMTgxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGREU2NUExOTU0QTQyQjAwQzQ4
RkZBIC8qIFNlc3Npb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEwMDJENDkxOTZCMzQ1
RDAwQjlBRDQ0IC8qIFNlc3Npb25TdGF0ZUNvZGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzUz
RTNFMEUxODg3Mzk4OTAwMTg4NDk2IC8qIFNlc3Npb25UcmFja2VyLmggaW4gSGVhZGVycyAqLywK
QEAgLTk2MDEsNiArOTYzMCw3IEBACiAJCQkJMzczRDEyMjIxOEE0NzMwMTAwNjZEOUNDIC8qIF9X
S0ZyYW1lSGFuZGxlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNBODhCMzkxQkM3MEYzRjAwQUJB
NUMyIC8qIF9XS0hpdFRlc3RSZXN1bHQubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTBGNTkxMjFE
REUyOTc3MDA0MTJGRjUgLyogX1dLTGlua0ljb25QYXJhbWV0ZXJzLm1tIGluIFNvdXJjZXMgKi8s
CisJCQkJQ0Q0OTFCMEQxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExMThBOUYyMTkwOEI4RUEw
MEY3QzkyQiAvKiBfV0tOU0ZpbGVNYW5hZ2VyRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MUE0M0U4MjkxODhGM0NEQzAwOUU0RDMwIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTFBOUUzMjhFMTgyMTY1QTkwMEY1RDA0QyAvKiBfV0tSZW1v
dGVPYmplY3RJbnRlcmZhY2UubW0gaW4gU291cmNlcyAqLywKQEAgLTk2MzcsNiArOTY2Nyw3IEBA
CiAJCQkJNTFEMTI0OTExRTc0QkYzQzAwMkIyODIwIC8qIEFQSUhUVFBDb29raWVTdG9yZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3Q0QzQTQ4MjFBNUQwMkZBMDA5NjIzQjggLyogQVBJTmF2aWdh
dGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0Y2OUZBMzExNzZEMDE0MDA0NzFBNTIgLyog
QVBJTmF2aWdhdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q0OTFCMTcxRTczNTI1
NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjYzNDAzRjkxNDkxMEQ1NzAwMTA3MEI1IC8qIEFQSU9i
amVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzhFMUEzRDE4MUVENkZGMDAzMTAwN0EgLyog
QVBJT2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM4NTdGQjYxMkI4MzBFNjAwRURFQjJF
IC8qIEFQSU9wZW5QYW5lbFBhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC05NjU5LDYg
Kzk2OTAsNyBAQAogCQkJCTFBMzYzNUE5MUEzMTQ0QTMwMEVENjE5NyAvKiBBUElXZWJzaXRlRGF0
YVN0b3JlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMzYzNUFEMUEzMTQ1RTUwMEVENjE5NyAv
KiBBUElXZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQk1Q0IyMzc5
MTFERjBFMkU2MDAxMTdBQTMgLyogQVBJV2Vic2l0ZVBvbGljaWVzLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUNENDkxQjEyMUU3MzQ4MjEwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNjU2M0U0MUI3QThDNTAwMDlDRjc4NyAv
KiBBUElXaW5kb3dGZWF0dXJlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUQ0QzE5MjFCMzlG
MzMyMDBBQkMyOEUgLyogQXBwbGljYXRpb25TdGF0ZVRyYWNrZXIubW0gaW4gU291cmNlcyAqLywK
IAkJCQkxQTNENjEwNTEzQTdGMDNBMDBGOTVENEUgLyogQXJndW1lbnRDb2RlcnMuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC0xMDE4Niw2ICsxMDIxOCw3IEBACiAJCQkJN0M0Njk0RDAxQTUxRTM2ODAw
QUQ1ODQ1IC8qIFdlYlBhc3RlYm9hcmRQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzQ2
OTRDQzFBNEI1MTBBMDBBRDU4NDUgLyogV2ViUGFzdGVib2FyZFByb3h5Q29jb2EubW0gaW4gU291
cmNlcyAqLywKIAkJCQk3QzQ2OTRDOTFBNEI0RUExMDBBRDU4NDUgLyogV2ViUGFzdGVib2FyZFBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNENDkxQjA3MUU3MEQw
NUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxQUIxRjc3NDFEMUIyRjhBMDA3QzlCRDEgLyogV2ViUGF5bWVudENvb3JkaW5hdG9yLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFBQjFGNzk2MUQxQjM2MTMwMDdDOUJEMSAvKiBXZWJQYXlt
ZW50Q29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFC
MUY3OEIxRDFCMzM1NTAwN0M5QkQxIC8qIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCmluZGV4IGFhZGVkMzQ0
YTc2YWVhNmFiNDcxNjJkODk2OGNjYjJjNWYwNTBjNjcuLjM2MjIwMmUwZWQ2MGU2NTc3NGZmYzg3
MDcwY2Q1MTczZGI1Y2I4NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKQEAgLTMz
LDcgKzMzLDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBXZWJVc2VyTWVkaWFDbGllbnQ6OldlYlVz
ZXJNZWRpYUNsaWVudChXZWJQYWdlJiBwYWdlKQogICAgIDogbV9wYWdlKHBhZ2UpCiB7Ci0gICAg
aW5pdGlhbGl6ZUZhY3RvcmllcygpOwogfQogCiB2b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6cGFn
ZURlc3Ryb3llZCgpCkBAIC02MSwxMyArNjAsNiBAQCB2b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6
Y2FuY2VsTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0KE1lZGlhRGV2aWNlc0VudW1lcgog
ICAgIG1fcGFnZS51c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5jYW5jZWxNZWRp
YURldmljZXNFbnVtZXJhdGlvbihyZXF1ZXN0KTsKIH0KIAotI2lmICFQTEFURk9STShDT0NPQSkK
LXZvaWQgV2ViVXNlck1lZGlhQ2xpZW50Ojppbml0aWFsaXplRmFjdG9yaWVzKCkKLXsKLQotfQot
I2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdDsKIAogI2VuZGlmIC8vIE1FRElBX1NUUkVB
TQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9j
b2NvYS9XZWJVc2VyTWVkaWFDbGllbnRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L2NvY29hL1dlYlVzZXJNZWRpYUNsaWVudE1hYy5tbQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYThkZjJmMTAxOWJhODZmNmZhN2EzNjE2MDRhMGVhMjc2YmQ3
NWMxZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2NvY29hL1dlYlVzZXJNZWRpYUNs
aWVudE1hYy5tbQorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViVXNlck1lZGlhQ2xpZW50LmgiCi0KLSNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShDT0NPQSkKLQotI2ltcG9ydCA8V2Vi
Q29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+Ci0jaW1wb3J0IDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQg
ewotCi1jbGFzcyBXZWJVc2VyTWVkaWFDbGllbnRBdWRpb0ZhY3RvcnkgZmluYWwgOiBwdWJsaWMg
UmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkgewotcHVibGljOgotICAgIHN0YXRp
YyBXZWJVc2VyTWVkaWFDbGllbnRBdWRpb0ZhY3RvcnkmIHNpbmdsZXRvbigpCi0gICAgewotICAg
ICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V2ViVXNlck1lZGlhQ2xpZW50QXVkaW9GYWN0b3J5
PiBmYWN0b3J5OwotICAgICAgICByZXR1cm4gZmFjdG9yeTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0g
ICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVy
ZURldmljZVdpdGhDb25zdHJhaW50cyhjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50
cykgZmluYWwgewotICAgICAgICBhdXRvKiBmYWN0b3J5ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6c2luZ2xldG9uKCkuZGVmYXVsdEF1ZGlvRmFjdG9yeSgpOwotICAgICAgICByZXR1cm4g
ZmFjdG9yeSA/IGZhY3RvcnktPmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhD
b25zdHJhaW50cyhkZXZpY2UsIGNvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludHMpIDogbnVs
bHB0cjsKLSAgICB9Ci19OwotCi12b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6aW5pdGlhbGl6ZUZh
Y3RvcmllcygpCi17Ci0gICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47Ci0gICAg
ZGlzcGF0Y2hfb25jZSgmb25jZVRva2VuLCBeIHsKLSAgICAgICAgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0QXVkaW9GYWN0b3J5KFdlYlVzZXJNZWRp
YUNsaWVudEF1ZGlvRmFjdG9yeTo6c2luZ2xldG9uKCkpOwotICAgIH0pOwotfQotCi19Ci0KLSNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNmE0MWI0
Y2YwNzNjOGIwMjIxNDFhYWM1ZDNmNTM5OGE5OTk1MDc4Ny4uYjJjZDZlY2MwYTJjMmQ1MTg0ODU1
M2ViYTg2YmYyNDc4ZDE3YTViMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCkBAIC0xMTQsMTEgKzExNCw5IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFz
aC5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0jaW5jbHVkZSAiT2JqQ09iamVjdEdyYXBoLmgi
Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgIkNvb2tpZVN0b3JhZ2VT
aGltLmgiCisjaW5jbHVkZSAiT2JqQ09iamVjdEdyYXBoLmgiCisjaW5jbHVkZSAiVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuaCIKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNFQ19JVEVNX1NISU0pCkBA
IC0xOTEsNiArMTg5LDEwIEBAIFdlYlByb2Nlc3M6OldlYlByb2Nlc3MoKQogICAgIGFkZFN1cHBs
ZW1lbnQ8V2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlcj4oKTsKICNlbmRpZgogCisjaWYgUExBVEZP
Uk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgYWRkU3VwcGxlbWVudDxVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcj4oKTsKKyNlbmRpZgorCiAgICAgbV9wbHVnSW5BdXRvU3RhcnRP
cmlnaW5IYXNoZXMuYWRkKFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBIYXNoTWFwPHVu
c2lnbmVkLCBkb3VibGU+KCkpOwogCiAgICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZE9i
c2VydmVyKCkuc2V0U3RhdGlzdGljc1N0b3JlKG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmNvcHlSZWYoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
Y29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2MjM3ZDBlYjlk
YzFmYjQxNjQzN2Y3MTI4YjIzNDE3OTNjMThkMjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAt
MCwwICsxLDIyNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5o
IgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRl
ICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAi
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVy
ZURldmljZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDb25zdHJhaW50c0ltcGwuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyB1aW50NjRfdCBuZXh0U2Vzc2lvbklEKCkK
K3sKKyAgICBzdGF0aWMgdWludDY0X3QgbmV4dElEID0gMDsKKyAgICByZXR1cm4gKytuZXh0SUQ7
Cit9CisKK2NsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2UgOiBwdWJsaWMgUmVh
bHRpbWVNZWRpYVNvdXJjZSB7CitwdWJsaWM6CisgICAgU291cmNlKGNvbnN0IFN0cmluZyYgc291
cmNlSUQsIFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCB1aW50NjRfdCBpZCwgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIpCisgICAgICAgIDogUmVhbHRpbWVNZWRpYVNvdXJj
ZShzb3VyY2VJRCwgdHlwZSwgbmFtZSkKKyAgICAgICAgLCBtX2lkKGlkKQorICAgICAgICAsIG1f
bWFuYWdlcihtYW5hZ2VyKQorICAgICAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlUmVmPFNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlPihudWxscHRyKSkKKyAgICB7CisgICAgfQorCisgICAgflNv
dXJjZSgpCisgICAgeworICAgICAgICBzdG9yYWdlKCkuaW52YWxpZGF0ZSgpOworICAgIH0KKwor
ICAgIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBzdG9yYWdlKCkgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXIuc3RvcmFnZSgpKTsgfQor
ICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQorICAgIHZvaWQgc2V0Q2Fw
YWJpbGl0aWVzKFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmls
aXRpZXMpIHsgbV9jYXBhYmlsaXRpZXMgPSBjYXBhYmlsaXRpZXM7IH0KKworICAgIGNvbnN0IFJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX3NldHRpbmdzOyB9CisgICAgdm9pZCBzZXRTZXR0aW5ncyhjb25zdCBSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQorICAgIHsKKyAgICAgICAgbV9zZXR0aW5ncyA9IHNl
dHRpbmdzOworICAgICAgICBzZXR0aW5nc0RpZENoYW5nZSgpOworICAgIH0KKworICAgIGNvbnN0
IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVybiBt
X2Rlc2NyaXB0aW9uOyB9CisgICAgdm9pZCBzZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6
SGFuZGxlJiBoYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYg
ZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQorICAgIHsKKyAgICAgICAgbV9k
ZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOworICAgICAgICBpZiAoaGFuZGxlLmlzTnVsbCgpKSB7
CisgICAgICAgICAgICBtX3JpbmdCdWZmZXIuZGVhbGxvY2F0ZSgpOworICAgICAgICAgICAgc3Rv
cmFnZSgpLnNldFJlYWRPbmx5KGZhbHNlKTsKKyAgICAgICAgICAgIHN0b3JhZ2UoKS5zZXRTdG9y
YWdlKG51bGxwdHIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAg
UmVmUHRyPFNoYXJlZE1lbW9yeT4gbWVtb3J5ID0gU2hhcmVkTWVtb3J5OjptYXAoaGFuZGxlLCBT
aGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICAgICAgc3RvcmFnZSgpLnNl
dFN0b3JhZ2UoV1RGTW92ZShtZW1vcnkpKTsKKyAgICAgICAgc3RvcmFnZSgpLnNldFJlYWRPbmx5
KHRydWUpOworCisgICAgICAgIG1fcmluZ0J1ZmZlci5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgbnVt
YmVyT2ZGcmFtZXMpOworICAgIH0KKworICAgIHZvaWQgc2V0UmluZ0J1ZmZlckZyYW1lQm91bmRz
KHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQorICAgIHsKKyAgICAgICAg
bV9yaW5nQnVmZmVyLnNldEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7
CisgICAgfQorCisgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lIHRpbWUs
IHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQorICAgIHsKKyAgICAgICAgV2ViQXVkaW9CdWZmZXJM
aXN0IGF1ZGlvRGF0YShtX2Rlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisgICAgICAgIG1f
cmluZ0J1ZmZlci5mZXRjaChhdWRpb0RhdGEubGlzdCgpLCBudW1iZXJPZkZyYW1lcywgdGltZS50
aW1lVmFsdWUoKSk7CisKKyAgICAgICAgZm9yIChhdXRvKiBvYnNlcnZlciA6IG9ic2VydmVycygp
KQorICAgICAgICAgICAgb2JzZXJ2ZXItPmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCBhdWRp
b0RhdGEsIG1fZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAgICB9CisKKyAgICB2b2lk
IHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9tYW5hZ2VyLnN0YXJ0UHJvZHVjaW5nRGF0
YShtX2lkKTsgfQorICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSBmaW5hbCB7IG1fbWFuYWdl
ci5zdG9wUHJvZHVjaW5nRGF0YShtX2lkKTsgfQorCisgICAgQXVkaW9Tb3VyY2VQcm92aWRlciog
YXVkaW9Tb3VyY2VQcm92aWRlcigpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KKworcHJpdmF0
ZToKKyAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlCisgICAgdm9pZCBiZWdpbkNvbmZpZ3VyYXRp
b24oKSBmaW5hbCB7IH0KKyAgICB2b2lkIGNvbW1pdENvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0K
KworICAgIHVpbnQ2NF90IG1faWQ7CisgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFu
YWdlcjsKKyAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBh
YmlsaXRpZXM7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0dGluZ3M7Cisg
ICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb247CisgICAgQ0FSaW5nQnVm
ZmVyIG1fcmluZ0J1ZmZlcjsKK307CisKK1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcihXZWJQcm9jZXNzKiBwcm9jZXNzKQorICAgIDogbV9wcm9jZXNzKCpw
cm9jZXNzKQoreworICAgIG1fcHJvY2Vzcy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKK30K
KworVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6On5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlcigpCit7
CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudW5zZXRBdWRpb0Zh
Y3RvcnkoKnRoaXMpOworICAgIG1fcHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOworfQor
Citjb25zdCBjaGFyKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUoKQor
eworICAgIHJldHVybiAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIiOworfQorCit2b2lkIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjppbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMpCit7CisgICAgaWYgKHBhcmFtZXRlcnMuc2hvdWxkQ2FwdHVy
ZUF1ZGlvSW5VSVByb2Nlc3MpCisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNp
bmdsZXRvbigpLnNldEF1ZGlvRmFjdG9yeSgqdGhpcyk7Cit9CisKK1JlZlB0cjxSZWFsdGltZU1l
ZGlhU291cmNlPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JD
YXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYgaW52YWxpZENvbnN0
cmFpbnRzKQoreworICAgIGlmICghY29uc3RyYWludHMpCisgICAgICAgIHJldHVybiBudWxscHRy
OworCisgICAgdWludDY0X3QgaWQgPSBuZXh0U2Vzc2lvbklEKCk7CisgICAgTWVkaWFDb25zdHJh
aW50c0RhdGEgY29uc3RyYWludHNEYXRhOworICAgIGNvbnN0cmFpbnRzRGF0YS5tYW5kYXRvcnlD
b25zdHJhaW50cyA9IGNvbnN0cmFpbnRzLT5tYW5kYXRvcnlDb25zdHJhaW50cygpOworICAgIGNv
bnN0cmFpbnRzRGF0YS5hZHZhbmNlZENvbnN0cmFpbnRzID0gY29uc3RyYWludHMtPmFkdmFuY2Vk
Q29uc3RyYWludHMoKTsKKyAgICBjb25zdHJhaW50c0RhdGEuaXNWYWxpZCA9IGNvbnN0cmFpbnRz
LT5pc1ZhbGlkKCk7CisgICAgYm9vbCBzdWNjZWVkZWQ7CisKKyAgICBtX3Byb2Nlc3Muc2VuZFN5
bmMoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291
cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhpZCwgZGV2aWNlLCBjb25zdHJhaW50
c0RhdGEpLCBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVk
aWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzOjpSZXBseShzdWNjZWVkZWQs
IGludmFsaWRDb25zdHJhaW50cyksIDApOworCisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZihu
ZXcgU291cmNlKFN0cmluZzo6bnVtYmVyKGlkKSwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6
QXVkaW8sIGRldmljZS5sYWJlbCgpLCBpZCwgKnRoaXMpKTsKKyAgICBtX3NvdXJjZXMuc2V0KGlk
LCBzb3VyY2UpOworICAgIHJldHVybiBzb3VyY2U7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OnNvdXJjZVN0b3BwZWQodWludDY0X3QgaWQpCit7CisgICAgQVNTRVJUKG1fc291
cmNlcy5jb250YWlucyhpZCkpOworICAgIG1fc291cmNlcy5nZXQoaWQpLT5zdG9wKCk7Cit9CisK
K3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZU11dGVkQ2hhbmdlZCh1aW50NjRf
dCBpZCwgYm9vbCBtdXRlZCkKK3sKKyAgICBBU1NFUlQobV9zb3VyY2VzLmNvbnRhaW5zKGlkKSk7
CisgICAgbV9zb3VyY2VzLmdldChpZCktPnNldE11dGVkKG11dGVkKTsKK30KKwordm9pZCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlRW5hYmxlZENoYW5nZWQodWludDY0X3QgaWQsIGJv
b2wgZW5hYmxlZCkKK3sKKyAgICBBU1NFUlQobV9zb3VyY2VzLmNvbnRhaW5zKGlkKSk7CisgICAg
bV9zb3VyY2VzLmdldChpZCktPnNldEVuYWJsZWQoZW5hYmxlZCk7Cit9CisKK3ZvaWQgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZVNldHRpbmdzQ2hhbmdlZCh1aW50NjRfdCBpZCwgY29u
c3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncykKK3sKKyAgICBBU1NFUlQo
bV9zb3VyY2VzLmNvbnRhaW5zKGlkKSk7CisgICAgbV9zb3VyY2VzLmdldChpZCktPnNldFNldHRp
bmdzKHNldHRpbmdzKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3RvcmFn
ZUNoYW5nZWQodWludDY0X3QgaWQsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBoYW5kbGUs
IGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVp
bnQ2NF90IG51bWJlck9mRnJhbWVzKQoreworICAgIEFTU0VSVChtX3NvdXJjZXMuY29udGFpbnMo
aWQpKTsKKyAgICBtX3NvdXJjZXMuZ2V0KGlkKS0+c2V0U3RvcmFnZShoYW5kbGUsIGRlc2NyaXB0
aW9uLCBudW1iZXJPZkZyYW1lcyk7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OnJpbmdCdWZmZXJGcmFtZUJvdW5kc0NoYW5nZWQodWludDY0X3QgaWQsIHVpbnQ2NF90IHN0YXJ0
RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQoreworICAgIEFTU0VSVChtX3NvdXJjZXMuY29udGFp
bnMoaWQpKTsKKyAgICBtX3NvdXJjZXMuZ2V0KGlkKS0+c2V0UmluZ0J1ZmZlckZyYW1lQm91bmRz
KHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKHVpbnQ2NF90IGlkLCBNZWRpYVRpbWUgdGltZSwgdWlu
dDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZy
YW1lKQoreworICAgIEFTU0VSVChtX3NvdXJjZXMuY29udGFpbnMoaWQpKTsKKyAgICBhdXRvJiBz
b3VyY2UgPSAqbV9zb3VyY2VzLmdldChpZCk7CisgICAgc291cmNlLnNldFJpbmdCdWZmZXJGcmFt
ZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7CisgICAgc291cmNlLmF1ZGlvU2FtcGxlc0F2
YWlsYWJsZSh0aW1lLCBudW1iZXJPZkZyYW1lcyk7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OnN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKK3sKKyAgICBtX3Byb2Nl
c3Muc2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RhcnRQcm9k
dWNpbmdEYXRhKGlkKSwgMCk7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN0
b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQoreworICAgIG1fcHJvY2Vzcy5zZW5kKE1lc3Nh
Z2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTdG9wUHJvZHVjaW5nRGF0YShpZCks
IDApOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhMzI2
NjYyYTYzOTc2ODcyODliNTU1NTQxY2EzZGZiZGE2MDdmY2MKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgK
QEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZP
Uk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZXNzYWdlUmVj
ZWl2ZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNz
U3VwcGxlbWVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgor
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IENyb3NzUHJvY2Vzc1JlYWx0aW1lQXVkaW9Tb3VyY2U7CitjbGFzcyBXZWJQcm9jZXNzOworCitj
bGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciA6IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVu
dCwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkgeworcHVibGljOgorICAgIGV4cGxpY2l0IFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyKFdlYlByb2Nlc3MqKTsKKyAgICB+VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIoKTsKKworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOworCitw
cml2YXRlOgorICAgIC8vIFdlYlByb2Nlc3NTdXBwbGVtZW50CisgICAgdm9pZCBpbml0aWFsaXpl
KGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKSBmaW5hbDsKKworICAgIC8vIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OkZhY3Rvcnk6CisgICAgUmVmUHRyPFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdp
dGhDb25zdHJhaW50cyhjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYpIGZpbmFsOworCisgICAgLy8gSVBDOjpNZXNz
YWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgLy8gTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyCisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKHVpbnQ2NF90IGlkKTsKKyAgICB2b2lk
IHNvdXJjZU11dGVkQ2hhbmdlZCh1aW50NjRfdCBpZCwgYm9vbCBtdXRlZCk7CisgICAgdm9pZCBz
b3VyY2VFbmFibGVkQ2hhbmdlZCh1aW50NjRfdCBpZCwgYm9vbCBlbmFibGVkKTsKKyAgICB2b2lk
IHNvdXJjZVNldHRpbmdzQ2hhbmdlZCh1aW50NjRfdCBpZCwgY29uc3QgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZVNldHRpbmdzJik7CisgICAgdm9pZCBzdG9yYWdlQ2hhbmdlZCh1aW50NjRf
dCBpZCwgY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisgICAgdm9pZCBy
aW5nQnVmZmVyRnJhbWVCb3VuZHNDaGFuZ2VkKHVpbnQ2NF90IGlkLCB1aW50NjRfdCBzdGFydEZy
YW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7CisgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUo
dWludDY0X3QgaWQsIE1lZGlhVGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90
IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKKworICAgIHZvaWQgc3RhcnRQcm9kdWNp
bmdEYXRhKHVpbnQ2NF90KTsKKyAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsK
KworICAgIGNsYXNzIFNvdXJjZTsKKyAgICBmcmllbmQgY2xhc3MgU291cmNlOworICAgIEhhc2hN
YXA8dWludDY0X3QsIFJlZlB0cjxTb3VyY2U+PiBtX3NvdXJjZXM7CisgICAgV2ViUHJvY2VzcyYg
bV9wcm9jZXNzOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1l
c3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlYzA1NjVjNjg2NGE0NmIwMGU5ZjhmYjkxMGMxOGM4OWU5
ZTRhMTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKyMg
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
IyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+IFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyIHsKKyAgICBTb3VyY2VTdG9wcGVkKHVpbnQ2NF90IGlkKQorICAgIFNv
dXJjZU11dGVkQ2hhbmdlZCh1aW50NjRfdCBpZCwgYm9vbCBtdXRlZCkKKyAgICBTb3VyY2VFbmFi
bGVkQ2hhbmdlZCh1aW50NjRfdCBpZCwgYm9vbCBlbmFibGVkKQorICAgIFNvdXJjZVNldHRpbmdz
Q2hhbmdlZCh1aW50NjRfdCBpZCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdz
IHNldHRpbmdzKQorICAgIFN0b3JhZ2VDaGFuZ2VkKHVpbnQ2NF90IGlkLCBXZWJLaXQ6OlNoYXJl
ZE1lbW9yeTo6SGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisgICAgQXVkaW9T
YW1wbGVzQXZhaWxhYmxlKHVpbnQ2NF90IGlkLCBNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVt
YmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQorfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>