<?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>208179</bug_id>
          
          <creation_ts>2020-02-24 22:54:57 -0800</creation_ts>
          <short_desc>Create AudioDestination in the GPU process</short_desc>
          <delta_ts>2020-02-26 19:51:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>208044</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jonlee</cc>
    
    <cc>koivisto</cc>
    
    <cc>mkwst</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1622509</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-02-24 22:54:57 -0800</bug_when>
    <thetext>This bug adds the support for having AudioDestination in GPU process instead of WebContent process when enabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622541</commentid>
    <comment_count>1</comment_count>
      <attachid>391637</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-02-25 01:33:24 -0800</bug_when>
    <thetext>Created attachment 391637
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622542</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-25 01:34:30 -0800</bug_when>
    <thetext>&lt;rdar://problem/59758451&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622658</commentid>
    <comment_count>3</comment_count>
      <attachid>391637</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-25 10:06:28 -0800</bug_when>
    <thetext>Comment on attachment 391637
Patch

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

&gt; Source/WebKit/GPUProcess/media/RemoteAudioDestinationManager.cpp:28
&gt; +

#if ENABLE(GPU_PROCESS)?

&gt; Source/WebKit/GPUProcess/media/RemoteAudioDestinationManager.cpp:84
&gt; +        auto protectedThis = makeRef(*this);

The protectedThis is not used?

&gt; Source/WebKit/GPUProcess/media/RemoteAudioDestinationManager.cpp:87
&gt; +        Vector&lt;Ref&lt;SharedMemory&gt;&gt; buffers;

Can we make the &quot;buffers&quot; as an instance variable to avoid creating it in every render()?

&gt; Source/WebKit/GPUProcess/media/RemoteAudioDestinationManager.cpp:104
&gt; +        auto audioBus = AudioBus::create(buffers.size(), framesToProcess, false);

Is it possible to move this code section into the block of sendWithAsyncReply()?

&gt; Source/WebKit/GPUProcess/media/RemoteAudioDestinationManager.cpp:108
&gt; +

An extra blank line.

&gt; Source/WebKit/WebProcess/GPU/media/RemoteAudioBusData.h:27
&gt; +

#if ENABLE(GPU_PROCESS)?

&gt; Source/WebKit/WebProcess/GPU/media/WebMediaStrategy.cpp:35
&gt; +#if ENABLE(GPU_PROCESS)

Removed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622878</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-02-25 18:11:45 -0800</bug_when>
    <thetext>(In reply to Peng Liu from comment #3)
&gt; Comment on attachment 391637 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=391637&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/GPUProcess/media/RemoteAudioDestinationManager.cpp:28
&gt; &gt; +
&gt; 
&gt; #if ENABLE(GPU_PROCESS)?

Fixed.

&gt; &gt; Source/WebKit/GPUProcess/media/RemoteAudioDestinationManager.cpp:84
&gt; &gt; +        auto protectedThis = makeRef(*this);
&gt; 
&gt; The protectedThis is not used?

That&apos;s how protectedThis works:
https://webkit.org/code-style-guidelines/#names-protectors-this

&gt; &gt; Source/WebKit/GPUProcess/media/RemoteAudioDestinationManager.cpp:87
&gt; &gt; +        Vector&lt;Ref&lt;SharedMemory&gt;&gt; buffers;
&gt; 
&gt; Can we make the &quot;buffers&quot; as an instance variable to avoid creating it in
&gt; every render()?

We can but we&apos;re not gonna do that since we&apos;re going to use a ring buffer instead. There is no point in making this patch more complicated.

&gt; &gt; Source/WebKit/GPUProcess/media/RemoteAudioDestinationManager.cpp:104
&gt; &gt; +        auto audioBus = AudioBus::create(buffers.size(), framesToProcess, false);
&gt; 
&gt; Is it possible to move this code section into the block of
&gt; sendWithAsyncReply()?

Why do we want to do that? I&apos;d rather make it clear that we&apos;re coming back to the original audio thread after the semaphore.

&gt; &gt; Source/WebKit/GPUProcess/media/RemoteAudioDestinationManager.cpp:108
&gt; &gt; +
&gt; 
&gt; An extra blank line.

Removed.

&gt; &gt; Source/WebKit/WebProcess/GPU/media/RemoteAudioBusData.h:27
&gt; &gt; +
&gt; 
&gt; #if ENABLE(GPU_PROCESS)?

Added.

&gt; &gt; Source/WebKit/WebProcess/GPU/media/WebMediaStrategy.cpp:35
&gt; &gt; +#if ENABLE(GPU_PROCESS)
&gt; 
&gt; Removed?

Oops, removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622880</commentid>
    <comment_count>5</comment_count>
      <attachid>391710</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-02-25 18:15:17 -0800</bug_when>
    <thetext>Created attachment 391710
GTK+ build fix attempt 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622884</commentid>
    <comment_count>6</comment_count>
      <attachid>391714</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-02-25 18:37:32 -0800</bug_when>
    <thetext>Created attachment 391714
GTK+ build fix attempt 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622885</commentid>
    <comment_count>7</comment_count>
      <attachid>391715</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-02-25 18:45:44 -0800</bug_when>
    <thetext>Created attachment 391715
GTK+ build fix attempt 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622886</commentid>
    <comment_count>8</comment_count>
      <attachid>391716</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-02-25 19:01:31 -0800</bug_when>
    <thetext>Created attachment 391716
Windows build fix attempt 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622899</commentid>
    <comment_count>9</comment_count>
      <attachid>391721</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-02-25 20:56:51 -0800</bug_when>
    <thetext>Created attachment 391721
Windows build fix attempt 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622932</commentid>
    <comment_count>10</comment_count>
      <attachid>391728</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-02-26 00:59:44 -0800</bug_when>
    <thetext>Created attachment 391728
Windows build fix attempt 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623105</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-02-26 12:28:48 -0800</bug_when>
    <thetext>Ping reviewers. All EWS are green (I don’t think GTK+ API test failure is related to this patch).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623300</commentid>
    <comment_count>12</comment_count>
      <attachid>391728</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-02-26 17:25:09 -0800</bug_when>
    <thetext>Comment on attachment 391728
Windows build fix attempt 3

r=me. I&apos;m really happy with the MediaStrategy changes and the addition of a receiverMap to the GPUProcessConnection class. I wonder whether the PlatformStrategies should all have default implementations inside WebCore, so subclasses can just return PlatformStrategy::create...() rather than have WebKit and WebKitLegacy both have to hard code the default behavior, but since that&apos;s a decision that would affect all the other strategies and isn&apos;t specific to media, we could table that discussion for a future patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623320</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-02-26 18:06:57 -0800</bug_when>
    <thetext>(In reply to Jer Noble from comment #12)
&gt; Comment on attachment 391728 [details]
&gt; Windows build fix attempt 3
&gt; 
&gt; r=me. I&apos;m really happy with the MediaStrategy changes and the addition of a
&gt; receiverMap to the GPUProcessConnection class. I wonder whether the
&gt; PlatformStrategies should all have default implementations inside WebCore,
&gt; so subclasses can just return PlatformStrategy::create...() rather than have
&gt; WebKit and WebKitLegacy both have to hard code the default behavior, but
&gt; since that&apos;s a decision that would affect all the other strategies and isn&apos;t
&gt; specific to media, we could table that discussion for a future patch.

Yeah, I think it&apos;s best to stick with the existing convention for now. We can have a wider discussion about having a default implementation separately though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623326</commentid>
    <comment_count>14</comment_count>
      <attachid>391826</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-02-26 18:22:10 -0800</bug_when>
    <thetext>Created attachment 391826
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623327</commentid>
    <comment_count>15</comment_count>
      <attachid>391826</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-02-26 18:23:55 -0800</bug_when>
    <thetext>Comment on attachment 391826
Patch for landing

Wait for EWS...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623335</commentid>
    <comment_count>16</comment_count>
      <attachid>391829</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-02-26 18:37:36 -0800</bug_when>
    <thetext>Created attachment 391829
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623341</commentid>
    <comment_count>17</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-02-26 18:57:46 -0800</bug_when>
    <thetext>Ugh... unified builds strikes again :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623343</commentid>
    <comment_count>18</comment_count>
      <attachid>391832</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-02-26 19:05:24 -0800</bug_when>
    <thetext>Created attachment 391832
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623346</commentid>
    <comment_count>19</comment_count>
      <attachid>391832</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-02-26 19:51:19 -0800</bug_when>
    <thetext>Comment on attachment 391832
Patch for landing

Clearing flags on attachment: 391832

Committed r257551: &lt;https://trac.webkit.org/changeset/257551&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623347</commentid>
    <comment_count>20</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-02-26 19:51:21 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391637</attachid>
            <date>2020-02-25 01:33:24 -0800</date>
            <delta_ts>2020-02-25 18:15:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208179-20200225013324.patch</filename>
            <type>text/plain</type>
            <size>98215</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDIwLTAyLTI0ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIENyZWF0ZSBBdWRpb0Rlc3RpbmF0
aW9uIGluIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA4MTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIGFuIGFic3RyYWN0aW9uIGFyb3VuZCB0aGUgY3JlYXRpb24gb2Yg
QXVkaW9EZXN0aW5hdGlvbiB1c2luZyBuZXdseSBpbnRyb2R1Y2VkIG1lZGlhU3RyYXRlZ3kuCisK
KyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vRGVm
YXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZmF1bHRB
dWRpb0Rlc3RpbmF0aW9uTm9kZTo6Y3JlYXRlRGVzdGluYXRpb24pOiBVc2UgTWVkaWFTdHJhdGVn
eTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5Lmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJhdGVneSk6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1T
dHJhdGVnaWVzOjptZWRpYVN0cmF0ZWd5KTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vQXVkaW9CdXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9u
Lmg6CisKIDIwMjAtMDItMjQgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggZm9yIFdpbkNhaXJvIHBvcnQKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQkocmV2aXNpb24gMjU3Mjk3KQorKysgU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTAyMyw2ICsxMDIzLDcgQEAgc2V0KFdl
YkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2FuaW1hdGlvbi9U
aW1pbmdGdW5jdGlvbi5oCiAKICAgICBwbGF0Zm9ybS9hdWRpby9BdWRpb0hhcmR3YXJlTGlzdGVu
ZXIuaAorICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvSU9DYWxsYmFjay5oCiAgICAgcGxhdGZvcm0v
YXVkaW8vQXVkaW9TZXNzaW9uLmgKICAgICBwbGF0Zm9ybS9hdWRpby9BdWRpb1NvdXJjZVByb3Zp
ZGVyLmgKICAgICBwbGF0Zm9ybS9hdWRpby9BdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25O
b2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Rl
ZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsOCBAQAogI2luY2x1ZGUgIkF1ZGlvQ29udGV4
dC5oIgogI2luY2x1ZGUgIkF1ZGlvRGVzdGluYXRpb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
CisjaW5jbHVkZSAiTWVkaWFTdHJhdGVneS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2ll
cy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlIDx3dGYv
SXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC04NCw4
ICs4Niw4IEBAIHZvaWQgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpjcmVhdGUKIHsKICAg
ICBmbG9hdCBoYXJkd2FyZVNhbXBsZVJhdGUgPSBBdWRpb0Rlc3RpbmF0aW9uOjpoYXJkd2FyZVNh
bXBsZVJhdGUoKTsKICAgICBMT0coV2ViQXVkaW8sICI+Pj4+IGhhcmR3YXJlU2FtcGxlUmF0ZSA9
ICVmXG4iLCBoYXJkd2FyZVNhbXBsZVJhdGUpOwotICAgIAotICAgIG1fZGVzdGluYXRpb24gPSBB
dWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoKnRoaXMsIG1faW5wdXREZXZpY2VJZCwgbV9udW1iZXJP
ZklucHV0Q2hhbm5lbHMsIGNoYW5uZWxDb3VudCgpLCBoYXJkd2FyZVNhbXBsZVJhdGUpOworCisg
ICAgbV9kZXN0aW5hdGlvbiA9IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5tZWRpYVN0cmF0ZWd5KCku
Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbigqdGhpcywgbV9pbnB1dERldmljZUlkLCBtX251bWJlck9m
SW5wdXRDaGFubmVscywgY2hhbm5lbENvdW50KCksIGhhcmR3YXJlU2FtcGxlUmF0ZSk7CiB9CiAK
IHZvaWQgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjplbmFibGVJbnB1dChjb25zdCBTdHJp
bmcmIGlucHV0RGV2aWNlSWQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAg
LTI4ODksNiArMjg4OSw4IEBACiAJCTlBQjFGMzgwMThFMjQ4OUEwMDUzNDc0MyAvKiBDU1NUb0xl
bmd0aENvbnZlcnNpb25EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5QUIxRjM3RTE4RTI0ODlBMDA1MzQ3NDMgLyogQ1NTVG9MZW5ndGhDb252ZXJz
aW9uRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTlCMDJFMEM4MjM1RUFEMkEwMDQwNDRCMiAvKiBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwMkUw
QzMyMzVFNzZBQTAwNDA0NEIyIC8qIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIwQUJDQUUyMzZC
QjQzMTAwQjQ1MDg1IC8qIFRhc2tTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDlCMEFCQ0FDMjM2QkI0MEEwMEI0NTA4NSAvKiBUYXNrU291cmNl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOUIx
MjI5QzQyM0ZFNEJEMjAwOENBNzUxIC8qIEF1ZGlvRGVzdGluYXRpb25Db2NvYS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzMTUxODYyMzU3NzQ1RTAw
MTE1RTZFIC8qIEF1ZGlvRGVzdGluYXRpb25Db2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTlCMTIyOUM3MjNGRTRENkEwMDhDQTc1MSAvKiBN
ZWRpYVN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5QjEyMjlDNjIzRkU0RDVGMDA4Q0E3NTEgLyogTWVkaWFTdHJhdGVneS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMjRERThFMTUxOTRC
OTUwMEM1OUMyNyAvKiBIVE1MQkRJRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOUIyNERFOEMxNTE5NEI5NTAwQzU5QzI3IC8qIEhUTUxCRElF
bGVtZW50LmggKi87IH07CiAJCTlCMjdGQzYwMjM0RDlBREIwMDM5NEE0NiAvKiBXaW5kb3dFdmVu
dExvb3AuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlC
MjdGQzVFMjM0RDlBREEwMDM5NEE0NiAvKiBXaW5kb3dFdmVudExvb3AuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjJEOEE3OTE0OTk3Q0NGMDBF
Q0VGM0UgLyogVW5kb1N0ZXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDlCMkQ4QTc4MTQ5OTdDQ0YwMEVDRUYzRSAvKiBVbmRvU3RlcC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01MDY4LDEwICs1MDcw
LDEwIEBACiAJCUZEMzE2MDM2MTJCMDI2NzYwMEMxQTM1OSAvKiBTY3JpcHRQcm9jZXNzb3JOb2Rl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNUZF
QzEyQjAyNjc2MDBDMUEzNTkgLyogU2NyaXB0UHJvY2Vzc29yTm9kZS5oICovOyB9OwogCQlGRDMx
NjAzQzEyQjAyNjc2MDBDMUEzNTkgLyogUmVhbHRpbWVBbmFseXNlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTVGRjIxMkIwMjY3NjAwQzFBMzU5
IC8qIFJlYWx0aW1lQW5hbHlzZXIuaCAqLzsgfTsKIAkJRkQzMTYwM0UxMkIwMjY3NjAwQzFBMzU5
IC8qIEFuYWx5c2VyTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkQzMTVGRjQxMkIwMjY3NjAwQzFBMzU5IC8qIEFuYWx5c2VyTm9kZS5oICovOyB9
OwotCQlGRDMxNjA3QTEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9BcnJheS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNDQxMkIwMjZGNzAwQzFB
MzU5IC8qIEF1ZGlvQXJyYXkuaCAqLzsgfTsKLQkJRkQzMTYwN0MxMkIwMjZGNzAwQzFBMzU5IC8q
IEF1ZGlvQnVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGRDMxNjA0NjEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9CdXMuaCAqLzsgfTsKLQkJRkQzMTYw
N0UxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvQ2hhbm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNDgxMkIwMjZGNzAwQzFBMzU5IC8qIEF1
ZGlvQ2hhbm5lbC5oICovOyB9OwotCQlGRDMxNjA3RjEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9E
ZXN0aW5hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRkQzMTYwNDkxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb24uaCAqLzsgfTsK
KwkJRkQzMTYwN0ExMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvQXJyYXkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDQ0MTJCMDI2RjcwMEMxQTM1
OSAvKiBBdWRpb0FycmF5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJRkQzMTYwN0MxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvQnVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA0NjEyQjAyNkY3
MDBDMUEzNTkgLyogQXVkaW9CdXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQlGRDMxNjA3RTEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9DaGFubmVs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA0
ODEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9DaGFubmVsLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRkQzMTYwN0YxMkIwMjZGNzAwQzFBMzU5IC8q
IEF1ZGlvRGVzdGluYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEZEMzE2MDQ5MTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0Rlc3RpbmF0aW9uLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkQzMTYw
ODAxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRFNQS2VybmVsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA0QTEyQjAyNkY3MDBDMUEzNTkgLyog
QXVkaW9EU1BLZXJuZWwuaCAqLzsgfTsKIAkJRkQzMTYwODIxMkIwMjZGNzAwQzFBMzU5IC8qIEF1
ZGlvRFNQS2VybmVsUHJvY2Vzc29yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGRDMxNjA0QzEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9EU1BLZXJuZWxQ
cm9jZXNzb3IuaCAqLzsgfTsKIAkJRkQzMTYwODMxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRmls
ZVJlYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkQzMTYwNEQxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRmlsZVJlYWRlci5oICovOyB9OwpAQCAt
NTE0OSw3ICs1MTUxLDcgQEAKIAkJRkRCMTcwMDYxNEEyQkFCMjAwQTJCNUQ5IC8qIE11bHRpQ2hh
bm5lbFJlc2FtcGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRkRCMTcwMDQxNEEyQkFCMjAwQTJCNUQ5IC8qIE11bHRpQ2hhbm5lbFJlc2FtcGxlci5o
ICovOyB9OwogCQlGREJENDgwRDE1OUJDNjg3MDA5M0VCNEYgLyogSlNNZWRpYVN0cmVhbUF1ZGlv
U291cmNlTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRkRCRDQ4MEIxNTlCQzY4NzAwOTNFQjRGIC8qIEpTTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5v
ZGUuaCAqLzsgfTsKIAkJRkRDNTRGMDUxMzk5QjBEQTAwOEQ5MTE3IC8qIEJpcXVhZEZpbHRlck5v
ZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEQzU0
RjAyMTM5OUIwREEwMDhEOTExNyAvKiBCaXF1YWRGaWx0ZXJOb2RlLmggKi87IH07Ci0JCUZERTJE
NTVCMTU5RTY2RUIwMERDQ0NGOCAvKiBBdWRpb0lPQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZERTJENTVBMTU5RTY2RUIwMERDQ0NGOCAv
KiBBdWRpb0lPQ2FsbGJhY2suaCAqLzsgfTsKKwkJRkRFMkQ1NUIxNTlFNjZFQjAwRENDQ0Y4IC8q
IEF1ZGlvSU9DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkRFMkQ1NUExNTlFNjZFQjAwRENDQ0Y4IC8qIEF1ZGlvSU9DYWxsYmFjay5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZERUE2MjQz
MTUyMTAyRTIwMDQ3OURGMCAvKiBKU09zY2lsbGF0b3JOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGREVBNjI0MTE1MjEwMkUyMDA0NzlERjAgLyog
SlNPc2NpbGxhdG9yTm9kZS5oICovOyB9OwogCQlGREVBNjI0NzE1MjEwMkZDMDA0NzlERjAgLyog
SlNQZXJpb2RpY1dhdmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEZERUE2MjQ1MTUyMTAyRkMwMDQ3OURGMCAvKiBKU1BlcmlvZGljV2F2ZS5oICovOyB9
OwogCQlGREYwOURDOTEzOTlCNjIyMDA2ODhFNUIgLyogSlNCaXF1YWRGaWx0ZXJOb2RlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGREYwOURDNzEzOTlC
NjIyMDA2ODhFNUIgLyogSlNCaXF1YWRGaWx0ZXJOb2RlLmggKi87IH07CkBAIC0xMTIwMyw2ICsx
MTIwNSw3IEBACiAJCTlCMEFCQ0E0MjM2NzlBQ0YwMEI0NTA4NSAvKiBXb3JrZXJFdmVudExvb3Au
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29ya2VyRXZlbnRMb29wLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMEFCQ0FDMjM2QkI0MEEwMEI0NTA4NSAvKiBU
YXNrU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRhc2tTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOUIwRkU4NzMxRDlFMDJERjAwNEE4QUNCIC8qIERvY3VtZW50T3JTaGFk
b3dSb290LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEb2N1bWVudE9yU2hhZG93Um9vdC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCMTIyOUM2MjNGRTRENUYwMDhDQTc1
MSAvKiBNZWRpYVN0cmF0ZWd5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU3RyYXRlZ3kuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIxMzI1N0IxRjNEMkFCQTAwREFBQjY5IC8qIERh
dGFUcmFuc2Zlckl0ZW1MaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IERhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOUIxOUI2N0UxQjk2NEU1MjAwMzQ4NzQ1IC8qIFNoYWRvd1Jvb3QuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFNoYWRvd1Jvb3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5QjFBQjA3OTE2NDhDNjlEMDA1MUYzRjIgLyogSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24u
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTI1OTMyLDYgKzI1OTM1LDcgQEAKIAkJCQlDREYyQjAwMzE4MUYwNTlD
MDBGMkI0MjQgLyogTWVkaWFEZXNjcmlwdGlvbi5oICovLAogCQkJCUNENjQxRUM3MTgxRUQ2MDEw
MEVFNEM0MSAvKiBNZWRpYVNhbXBsZS5oICovLAogCQkJCUExN0QyNzVEMUVBQzU3OTgwMEJGMDFF
NyAvKiBNZWRpYVNlbGVjdGlvbk9wdGlvbi5oICovLAorCQkJCTlCMTIyOUM2MjNGRTRENUYwMDhD
QTc1MSAvKiBNZWRpYVN0cmF0ZWd5LmggKi8sCiAJCQkJQkM3NzJDNEMwQzRFQjMwNDAwODMyODVG
IC8qIE1JTUVUeXBlUmVnaXN0cnkuY3BwICovLAogCQkJCUJDNzcyQzREMEM0RUIzMDQwMDgzMjg1
RiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmggKi8sCiAJCQkJRTE1MTNENTAxNjc3RjA4ODAwMTQ5RkNC
IC8qIE5vdEltcGxlbWVudGVkLmNwcCAqLywKQEAgLTI5MDU3LDYgKzI5MDYxLDcgQEAKIAkJCQlG
RDMxNjA3RTEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9DaGFubmVsLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGRDMxNjAwNTEyQjAyNjc2MDBDMUEzNTkgLyogQXVkaW9Db250ZXh0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGRDMxNjA3RjEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9EZXN0aW5hdGlvbi5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOUIxMjI5QzQyM0ZFNEJEMjAwOENBNzUxIC8qIEF1ZGlvRGVz
dGluYXRpb25Db2NvYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwQkQxMkIwMjcyQTAwQzFB
MzU5IC8qIEF1ZGlvRGVzdGluYXRpb25NYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDA4
MTJCMDI2NzYwMEMxQTM1OSAvKiBBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkQzMTYwODAxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRFNQS2VybmVsLmggaW4gSGVh
ZGVycyAqLywKQEAgLTMxNDkwLDYgKzMxNDk1LDcgQEAKIAkJCQlDRDY0MUVCMzE4MThGNUVEMDBF
RTRDNDEgLyogTWVkaWFTb3VyY2VQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM4QjVB
NzE4MDQ3NEY3MDAxNkU2ODUgLyogTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0REQzFFN0ExOEE5NTJGMzAwMjdBOUQ0IC8qIE1lZGlhU291cmNlUHJpdmF0
ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUIxMjI5QzcyM0ZFNEQ2QTAwOENBNzUxIC8q
IE1lZGlhU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTE1MTdEMTREMUMwMDQy
MEFBMSAvKiBNZWRpYVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5NEMxN0QxNzA5
NjAwNDIwQUExIC8qIE1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA3ODMyMjg1MTgwMTNFRDgwMDk5OUUwQyAvKiBNZWRpYVN0cmVhbUF1ZGlvU291
cmNlLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlh
U3RyYXRlZ3kuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0
cmF0ZWd5LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFT
dHJhdGVneS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgQXVkaW9EZXN0aW5hdGlvbjsKK2NsYXNzIEF1ZGlvSU9DYWxsYmFjazsK
KworY2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFTdHJhdGVneSB7CitwdWJsaWM6CisgICAgdmly
dHVhbCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5h
dGlvbigKKyAgICAgICAgQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmlj
ZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0
cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpID0gMDsKK3Byb3RlY3RlZDoKKyAgICB2aXJ0
dWFsIH5NZWRpYVN0cmF0ZWd5KCkgPSBkZWZhdWx0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVz
LmgJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3Jt
U3RyYXRlZ2llcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgQmxvYlJlZ2lzdHJ5OwogY2xhc3MgTG9hZGVyU3RyYXRlZ3k7Citj
bGFzcyBNZWRpYVN0cmF0ZWd5OwogY2xhc3MgUGFzdGVib2FyZFN0cmF0ZWd5OwogCiBjbGFzcyBQ
bGF0Zm9ybVN0cmF0ZWdpZXMgewpAQCAtMzksNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgICAgICAg
ICBtX2xvYWRlclN0cmF0ZWd5ID0gY3JlYXRlTG9hZGVyU3RyYXRlZ3koKTsKICAgICAgICAgcmV0
dXJuIG1fbG9hZGVyU3RyYXRlZ3k7CiAgICAgfQotICAgIAorCiAgICAgUGFzdGVib2FyZFN0cmF0
ZWd5KiBwYXN0ZWJvYXJkU3RyYXRlZ3koKQogICAgIHsKICAgICAgICAgaWYgKCFtX3Bhc3RlYm9h
cmRTdHJhdGVneSkKQEAgLTQ3LDYgKzQ4LDEzIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1f
cGFzdGVib2FyZFN0cmF0ZWd5OwogICAgIH0KIAorICAgIE1lZGlhU3RyYXRlZ3kmIG1lZGlhU3Ry
YXRlZ3koKQorICAgIHsKKyAgICAgICAgaWYgKCFtX21lZGlhU3RyYXRlZ3kpCisgICAgICAgICAg
ICBtX21lZGlhU3RyYXRlZ3kgPSBjcmVhdGVNZWRpYVN0cmF0ZWd5KCk7CisgICAgICAgIHJldHVy
biAqbV9tZWRpYVN0cmF0ZWd5OworICAgIH0KKwogICAgIEJsb2JSZWdpc3RyeSogYmxvYlJlZ2lz
dHJ5KCkKICAgICB7CiAgICAgICAgIGlmICghbV9ibG9iUmVnaXN0cnkpCkBAIC02NCwxMCArNzIs
MTIgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIExvYWRlclN0cmF0ZWd5KiBj
cmVhdGVMb2FkZXJTdHJhdGVneSgpID0gMDsKICAgICB2aXJ0dWFsIFBhc3RlYm9hcmRTdHJhdGVn
eSogY3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkgPSAwOworICAgIHZpcnR1YWwgTWVkaWFTdHJh
dGVneSogY3JlYXRlTWVkaWFTdHJhdGVneSgpID0gMDsKICAgICB2aXJ0dWFsIEJsb2JSZWdpc3Ry
eSogY3JlYXRlQmxvYlJlZ2lzdHJ5KCkgPSAwOwogCiAgICAgTG9hZGVyU3RyYXRlZ3kqIG1fbG9h
ZGVyU3RyYXRlZ3kgeyB9OwogICAgIFBhc3RlYm9hcmRTdHJhdGVneSogbV9wYXN0ZWJvYXJkU3Ry
YXRlZ3kgeyB9OworICAgIE1lZGlhU3RyYXRlZ3kqIG1fbWVkaWFTdHJhdGVneSB7IH07CiAgICAg
QmxvYlJlZ2lzdHJ5KiBtX2Jsb2JSZWdpc3RyeSB7IH07CiB9OwogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmgJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTY2
LDEwICs2NiwxMCBAQCBwdWJsaWM6CiAgICAgLy8gYWxsb2NhdGUgaW5kaWNhdGVzIHdoZXRoZXIg
b3Igbm90IHRvIGluaXRpYWxseSBoYXZlIHRoZSBBdWRpb0NoYW5uZWxzIGNyZWF0ZWQgd2l0aCBt
YW5hZ2VkIHN0b3JhZ2UuCiAgICAgLy8gTm9ybWFsIHVzYWdlIGlzIHRvIHBhc3MgdHJ1ZSBoZXJl
LCBpbiB3aGljaCBjYXNlIHRoZSBBdWRpb0NoYW5uZWxzIHdpbGwgbWVtb3J5LW1hbmFnZSB0aGVp
ciBvd24gc3RvcmFnZS4KICAgICAvLyBJZiBhbGxvY2F0ZSBpcyBmYWxzZSB0aGVuIHNldENoYW5u
ZWxNZW1vcnkoKSBoYXMgdG8gYmUgY2FsbGVkIGxhdGVyIG9uIGZvciBlYWNoIGNoYW5uZWwgYmVm
b3JlIHRoZSBBdWRpb0J1cyBpcyB1c2VhYmxlLi4uCi0gICAgc3RhdGljIFJlZlB0cjxBdWRpb0J1
cz4gY3JlYXRlKHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBsZW5ndGgsIGJvb2wg
YWxsb2NhdGUgPSB0cnVlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmUHRyPEF1ZGlv
QnVzPiBjcmVhdGUodW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IGxlbmd0aCwgYm9v
bCBhbGxvY2F0ZSA9IHRydWUpOwogCiAgICAgLy8gVGVsbHMgdGhlIGdpdmVuIGNoYW5uZWwgdG8g
dXNlIGFuIGV4dGVybmFsbHkgYWxsb2NhdGVkIGJ1ZmZlci4KLSAgICB2b2lkIHNldENoYW5uZWxN
ZW1vcnkodW5zaWduZWQgY2hhbm5lbEluZGV4LCBmbG9hdCogc3RvcmFnZSwgc2l6ZV90IGxlbmd0
aCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDaGFubmVsTWVtb3J5KHVuc2lnbmVkIGNo
YW5uZWxJbmRleCwgZmxvYXQqIHN0b3JhZ2UsIHNpemVfdCBsZW5ndGgpOwogCiAgICAgLy8gQ2hh
bm5lbHMKICAgICB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzKCkgY29uc3QgeyByZXR1cm4gbV9j
aGFubmVscy5zaXplKCk7IH0KQEAgLTEyNiw3ICsxMjYsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBD
b3BpZXMgdGhlIHNhbXBsZXMgZnJvbSB0aGUgc291cmNlIGJ1cyB0byB0aGlzIG9uZS4KICAgICAv
LyBUaGlzIGlzIGp1c3QgYSBzaW1wbGUgcGVyLWNoYW5uZWwgY29weSBpZiB0aGUgbnVtYmVyIG9m
IGNoYW5uZWxzIG1hdGNoLCBvdGhlcndpc2UgYW4gdXAtbWl4IG9yIGRvd24tbWl4IGlzIGRvbmUu
Ci0gICAgdm9pZCBjb3B5RnJvbShjb25zdCBBdWRpb0J1cyYgc291cmNlQnVzLCBDaGFubmVsSW50
ZXJwcmV0YXRpb24gPSBTcGVha2Vycyk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb3B5RnJv
bShjb25zdCBBdWRpb0J1cyYgc291cmNlQnVzLCBDaGFubmVsSW50ZXJwcmV0YXRpb24gPSBTcGVh
a2Vycyk7CiAKICAgICAvLyBTdW1zIHRoZSBzYW1wbGVzIGZyb20gdGhlIHNvdXJjZSBidXMgdG8g
dGhpcyBvbmUuCiAgICAgLy8gVGhpcyBpcyBqdXN0IGEgc2ltcGxlIHBlci1jaGFubmVsIHN1bW1p
bmcgaWYgdGhlIG51bWJlciBvZiBjaGFubmVscyBtYXRjaCwgb3RoZXJ3aXNlIGFuIHVwLW1peCBv
ciBkb3duLW1peCBpcyBkb25lLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
QXVkaW9EZXN0aW5hdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaAkocmV2aXNpb24gMjU3Mjk3KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBA
IC00NSw3ICs0NSw3IEBAIGNsYXNzIEF1ZGlvRGVzdGluYXRpb24gewogcHVibGljOgogICAgIC8v
IFBhc3MgaW4gKG51bWJlck9mSW5wdXRDaGFubmVscyA+IDApIGlmIGxpdmUvbG9jYWwgYXVkaW8g
aW5wdXQgaXMgZGVzaXJlZC4KICAgICAvLyBQb3J0LXNwZWNpZmljIGRldmljZSBpZGVudGlmaWNh
dGlvbiBpbmZvcm1hdGlvbiBmb3IgbGl2ZS9sb2NhbCBpbnB1dCBzdHJlYW1zIGNhbiBiZSBwYXNz
ZWQgaW4gdGhlIGlucHV0RGV2aWNlSWQuCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBdWRp
b0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1
dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJl
ck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpOworICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9D
YWxsYmFjayYsIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJ
bnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1w
bGVSYXRlKTsKIAogICAgIHZpcnR1YWwgfkF1ZGlvRGVzdGluYXRpb24oKSA9IGRlZmF1bHQ7CiAK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDExOSBAQAorMjAyMC0wMi0yNCAgUnlvc3VrZSBO
aXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBDcmVhdGUgQXVkaW9EZXN0aW5hdGlv
biBpbiB0aGUgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwODE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIENyZWF0ZSBBdWRpb0Rlc3RpbmF0aW9uIGluIHRoZSBHUFUgcHJvY2VzcyBp
bnN0ZWFkIG9mIHRoZSBXZWJDb250ZW50IHByb2Nlc3MgZm9yIFdlYkF1ZGlvIEFQSSB3aGVuCisg
ICAgICAgIHRoZSBNZWRpYS1pbi1HUFUtcHJvY2VzcyBmZWF0dXJlIGlzIGVuYWJsZWQuCisKKyAg
ICAgICAgVG8gZG8gdGhpcywgV2ViTWVkaWFTdHJhdGVneSwgYSBjb25jcmV0ZSBpbXBsZW1lbnRh
dGlvbiBvZiBNZWRpYVN0cmF0ZWd5LCBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGdldHMKKyAg
ICAgICAgYSBib29sZWFuIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBHUFUgcHJvY2VzcyBz
aG91bGQgYmUgdXNlZCBmb3IgQXVkaW9EZXN0aW5hdGlvbiBvciBub3QuIFdoZW4gdGhlIGZsYWcK
KyAgICAgICAgaXMgc2V0LCB3ZSBjcmVhdGUgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IGlu
c3RlYWQgb2YgQXVkaW9EZXN0aW5hdGlvbiBpbiBXZWJDb250ZW50IHByb2Nlc3MuCisKKyAgICAg
ICAgRWFjaCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgdGFsa3MgdG8gUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbk1hbmFnZXIgaW4gdGhlIEdQVSBwcm9jZXNzIGFuZCBjcmVhdGVzCisgICAgICAg
IGEgY29ycmVzcG9uZGluZyBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uIHdoaWNoIGluIHR1cm4gY3Jl
YXRlcyBXZWJDb3JlJ3MgQXVkaW9EZXN0aW5hdGlvbiBpbiB0aGUgR1BVIHByb2Nlc3MuCisKKyAg
ICAgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbiBpcyBpdHNlbGYgYW4gQXVkaW9JT0NhbGxiYWNr
IGZvciBBdWRpb0Rlc3RpbmF0aW9uIGl0IGNyZWF0ZXMsIGFuZCBkZWxlZ2F0ZXMKKyAgICAgICAg
aXRzIGNhbGxiYWNrIHRvIFdlYkNvbnRlbnQgcHJvY2VzcycgUmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5IGFzIG5lZWRlZC4KKworICAgICAgICBJbiB0aGlzIGluaXRpYWwgcGF0Y2gsIHdlIHNl
bmQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpSZW5kZXJCdWZmZXIgSVBDIGNhbGwgdG8g
dGhlIFdlYkNvbnRlbnQgcHJvY2VzcworICAgICAgICBmb3IgZWFjaCByZW5kZXIgY2FsbCB3ZSBn
ZXQgZnJvbSBDb3JlQXVkaW8gZm9yIHNpbXBsaWNpdHkgdXNpbmcgbmV3bHkgaW50cm9kdWNlZCBS
ZW1vdGVBdWRpb0J1c0RhdGEsCisgICAgICAgIHdoaWNoIGhvbGRzIGEgU2hhcmVkTWVtb3J5IGZv
ciBlYWNoIGNoYW5uZWwgaW4gdGhlIGF1ZGlvIGJ1cy4KKworICAgICAgICBXZSB3aWxsIGVsaW1p
bmF0ZSB0aGlzIElQQyBvdmVyaGVhZCBpbiBhIGZvbGxvdyB1cCBwYXRjaCB1c2luZyBDQVJpbmdC
dWZmZXIuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
cmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOiBBZGRlZCB0aGUg
Y29kZSB0byBkaXNwYXRjaCBtZXNzYWdlcyB0bworICAgICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uTWFuYWdlci4KKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKTogRGl0dG8uCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uKTogQWRkZWQuIFRoaXMgY2xhc3MgaXMgdGhlIGJhY2tpbmcg
b2JqZWN0IHdoaWNoIGNyZWF0ZXMgV2ViQ29yZSdzCisgICAgICAgIEF1ZGlvRGVzdGluYXRpb24g
YW5kIGFjdHVhbGx5IHRhbGtzIHRvIENvcmVBdWRpbyBpbiBHUFUgcHJvY2Vzcy4KKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKTogQWRkZWQuCisKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6flJlbW90ZUF1ZGlvRGVzdGluYXRp
b24pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6c2No
ZWR1bGVHcmFjZWZ1bFNodXRkb3duSWZOZWVkZWQpOiBEZWxheXMgdGhlIGRlbGV0aW9uIG9mIHRo
aXMgb2JqZWN0CisgICAgICAgIHVudGlsIHRoZSBhdWRpbyB0aHJlYWRzIHN0b3BzIHJ1bm5pbmcu
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OnN0YXJ0KTogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OnN0b3ApOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6aXNQbGF5aW5nKTogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OlJlbW90ZUF1ZGlv
RGVzdGluYXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5h
dGlvbjo6cmVuZGVyKTogU2VuZHMgYSBzeW5jIElQQyB0byB0aGUgV2ViQ29udGVudCBwcm9jZXNz
JworICAgICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgdG8gZmlsbCB0aGUgYXVkaW8g
YnVmZmVyLiBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBnZXRzIGNhbGxlZCBpbiBhdWRpbyB0aHJl
YWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OmlzUGxheWluZ0Rp
ZENoYW5nZSk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
TWFuYWdlcik6IEFkZGVkLiBUaGlzIGNsYXNzIG1hbmFnZXMgYWxsIFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb24gb2JqZWN0cyBvd25lZAorICAgICAgICBieSBhIHNpbmdsZSBXZWJDb250ZW50IHByb2Nl
c3MuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcik6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6flJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2Vy
KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2Vy
OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpkZWxldGVBdWRpb0Rlc3RpbmF0aW9uKTogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpzdGFydEF1
ZGlvRGVzdGluYXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXI6OnN0b3BBdWRpb0Rlc3RpbmF0aW9uKTogQWRkZWQuCisgICAgICAgICog
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIpOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OmRpZFJlY2Vp
dmVTeW5jTWVzc2FnZUZyb21XZWJQcm9jZXNzKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9j
ZXNzKTogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uTWFuYWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFTdHJhdGVneSk6
IEFkZGVkLiBSZXR1cm5zIG51bGxwdHIgc2luY2UgTmV0d29ya2luZworICAgICAgICBwcm9jZXNz
IGhhcyBubyBidXNpbmVzcyBydW5uaW5nIEF1ZGlvRGVzdGluYXRpb24uCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMpOgorICAgICAgICAqIFBs
YXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5Ogor
ICAgICAgICAqIFNoYXJlZC9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXJUeXBl
KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlm
aWVyKTogQWRkZWQuIFRoZSBpZGVudGlmaWVyIGZvciBlYWNoIFJlbW90ZUF1ZGlvRGVzdGluYXRp
b24KKyAgICAgICAgYW5kIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSAoY29ycmVzcG9uZGlu
ZyBvYmplY3RzIG9mIGVhY2ggY2xhc3MgdXNlIHRoZSBzYW1lIElEIHRvIGNvbW11bmljYXRlKS4K
KyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAg
ICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BV
UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKTogQWRkZWQgYSBkaXNwYXRjaCBv
biBtX3JlY2VpdmVyTWFwLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25u
ZWN0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uOjptX3JlY2Vp
dmVyTWFwKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uOjph
ZGRNZXNzYWdlUmVjZWl2ZXIpOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzQ29ubmVjdGlv
bjo6cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb0J1c0RhdGEuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1
ZGlvQnVzRGF0YSk6IEFkZGVkLiBFbmNvZGVzIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBlYWNoIHJl
bmRlciBjYWxsLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0J1c0RhdGE6OmVuY29kZSBj
b25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0J1c0RhdGE6OmRlY29k
ZSk6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHkpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9EZXN0aW5hdGlvblByb3h5OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkpOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Ojp+UmVtb3RlQXVk
aW9EZXN0aW5hdGlvblByb3h5KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eTo6c3RhcnQpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5OjpzdG9wKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6cmVuZGVyQnVmZmVyKTogQWRkZWQuIENhbGxzIFdl
YkNvcmUncyBBdWRpb0lPQ2FsbGJhY2sgdG8gZmlsbAorICAgICAgICB0aGUgYXVkaW8gYnVmZmVy
IGdpdmVuIGJ5IHRoZSBHUFUgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5OjpkaWRDaGFuZ2VJc1BsYXlpbmcpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpkaWRSZWNlaXZlTWVzc2Fn
ZUZyb21HUFVQcm9jZXNzKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eTo6aXNQbGF5aW5nKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c2FtcGxlUmF0ZSk6IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5tZXNzYWdlcy5p
bjogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0
ZVJlbW90ZS5jcHA6IEZpeGVkIHRoZSB1bmlmaWVkIGJ1aWxkcy4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmg6IERpdHRvLgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbik6IEFk
ZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaDog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyYXRlZ3kpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVneTo6c2V0VXNlR1BVUHJvY2Vzcyk6IEFkZGVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyLmNwcDogRml4ZWQgdGhlIHVuaWZpZWQgYnVpbGRzLgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVNZWRpYVN0cmF0ZWd5KTogQWRkZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKTogU2V0cyBXZWJNZWRpYVN0cmF0
ZWd5J3MgZmxhZyB0byB1c2UgR1BVIHByb2Nlc3MuCisKIDIwMjAtMDItMjQgIEppZXdlbiBUYW4g
IDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViQXV0aG5dIEltcGxlbWVudCBT
UEkgZm9yIHRoZSBwbGF0Zm9ybSBhdXRoZW50aWNhdG9yCkluZGV4OiBTb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CShyZXZpc2lvbiAyNTcyOTcpCisrKyBT
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QJKHdvcmtpbmcgY29w
eSkKQEAgLTE2LDYgKzE2LDcgQEAgJChKQVZBU0NSSVBUQ09SRV9QUklWQVRFX0hFQURFUlNfRElS
KS94eAogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2Fn
ZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuR1BV
UHJvY2Vzcy5zYi5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2Vz
LmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0xMDgsNiArMTA5LDcgQEAgJChQUk9KRUNUX0RJUikvV2Vi
UHJvY2Vzcy9EYXRhYmFzZXMvSW5kZQogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9GdWxsU2Ny
ZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2Vz
LmluCiskKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgog
JChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5tZXNz
YWdlcy5pbgpJbmRleDogU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0CShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0xMjMsNiArMTIzLDEwIEBA
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWIKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1BsdWdpblByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUGx1Z2lu
UHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9QbHVnaW5Qcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3Nh
Z2VzLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVt
b3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHlNZXNz
YWdlcy5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFu
YWdlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VzUmVw
bGllcy5oCkluZGV4OiBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAyNTcyOTcp
CisrKyBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAg
LTE0Myw2ICsxNDMsOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBQbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbk1hbmFnZXIgXAogICAgIFBsdWdpblByb2Nlc3NQcm94eSBcCiAgICAgUGx1Z2lu
UHJveHkgXAorICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyIFwKKyAgICBSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uUHJveHkgXAogICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyTWFuYWdlciBcCiAgICAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIg
XAogICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkgXApJbmRleDogU291cmNlL1dl
YktpdC9QbGF0Zm9ybU1hYy5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1BsYXRm
b3JtTWFjLmNtYWtlCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
TWFjLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xNjAsNiArMTYwLDExIEBAIGxpc3QoQVBQRU5E
IFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgogICAgIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdl
cy5pbgogCisgICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
ci5tZXNzYWdlcy5pbgorICAgIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4KKyAgICBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHkubWVzc2FnZXMuaW4KKyAgICBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCisKICAgICBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3NQcm94eS5tZXNzYWdlcy5pbgogICAgIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIubWVzc2FnZXMuaW4KICAgICBHUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIubWVzc2Fn
ZXMuaW4KQEAgLTE3MCwxMCArMTc1LDYgQEAgbGlzdChBUFBFTkQgV2ViS2l0X01FU1NBR0VTX0lO
X0ZJTEVTCiAgICAgR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXIubWVzc2FnZXMuaW4KICAgICBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCiAKLSAgICBHUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KLSAgICBHUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCi0gICAgR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgotICAgIAog
ICAgIE5ldHdvcmtQcm9jZXNzL0N1c3RvbVByb3RvY29scy9MZWdhY3lDdXN0b21Qcm90b2NvbE1h
bmFnZXIubWVzc2FnZXMuaW4KIAogICAgIFNoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRp
bmF0b3JQcm94eS5tZXNzYWdlcy5pbgpJbmRleDogU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CShyZXZpc2lvbiAyNTcyOTcp
CisrKyBTb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01MzQsMTEg
KzUzNCwxMyBAQCBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3NpCiBXZWJQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlh
L0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5LmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNSU1F
VHlwZUNhY2hlLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UmVzb3VyY2VQcm94eS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVS
ZW1vdGUuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5j
cHAKK1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwCiBXZWJQcm9jZXNz
L0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01l
ZGlhUmVjb3JkZXJQcml2YXRlLmNwcAogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3Jk
ZXJQcm92aWRlci5jcHAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQJKHJldmlzaW9uIDI1NzI5
NykKKysrIFNvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
NjQ3LDYgKzY0Nyw4IEBAIEdQVVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIEdQVVBy
b2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwCiBMaWJXZWJSVENDb2RlY3NQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAKIExpYldlYlJUQ0NvZGVjc01lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVNZWRpYVJlY29yZGVyTWVz
c2FnZVJlY2VpdmVyLmNwcApJbmRleDogU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMjU3Mjk3KQorKysg
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNz
UHJveHkuaCIKICNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2Vy
LmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXJNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oIgog
I2luY2x1ZGUgIlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlck1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNZXNz
YWdlcy5oIgpAQCAtMTI3LDYgKzEyOSwxNCBAQCB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OmRpZFJlY2VpCiAgICAgQ1JBU0goKTsKIH0KIAorUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXImIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW90ZUF1ZGlvRGVzdGluYXRpb25N
YW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fcmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIpCisg
ICAgICAgIG1fcmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIgPSBtYWtlVW5pcXVlPFJlbW90
ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyPigqdGhpcyk7CisKKyAgICByZXR1cm4gKm1fcmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI7Cit9CisKIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
JiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcigp
CiB7CiAgICAgaWYgKCFtX3JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKQpAQCAtMTkxLDEzICsy
MDEsMTkgQEAgTGliV2ViUlRDQ29kZWNzUHJveHkmIEdQVUNvbm5lY3Rpb25Ub1dlYgogCiB2b2lk
IEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogeworICAgIGlmIChkZWNv
ZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICByZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlcigpLmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29u
bmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgaWYgKGRlY29k
ZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIHJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5KCkuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vzcyhjb25u
ZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0gZWxzZSBpZiAoZGVjb2Rl
ci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgIH0KKyAgICBpZiAoZGVjb2Rlci5tZXNz
YWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSkgewogICAgICAgICByZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eSgpLmRpZFJlY2VpdmVQbGF5ZXJNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogICAg
ICAgICByZXR1cm47Ci0gICAgfSBlbHNlIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUo
KSA9PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSkgeworICAgIH0KKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkg
PT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCkpIHsKICAgICAgICAgcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIoKS5kaWRSZWNlaXZl
TWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAg
LTI0Myw2ICsyNTksMTEgQEAgdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNl
aQogCiB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3Rk
Ojp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKKyAgICBpZiAoZGVj
b2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25NYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgcmVtb3RlQXVk
aW9EZXN0aW5hdGlvbk1hbmFnZXIoKS5kaWRSZWNlaXZlU3luY01lc3NhZ2VGcm9tV2ViUHJvY2Vz
cyhjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2Vz
OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7
CiAgICAgICAgIHJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCkuZGlkUmVjZWl2ZVN5bmNN
ZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsK
ICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC00NCw2ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBHUFVQ
cm9jZXNzOwogY2xhc3MgTGliV2ViUlRDQ29kZWNzUHJveHk7CitjbGFzcyBSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlcjsKIGNsYXNzIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyTWFuYWdlcjsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OwogY2xhc3Mg
UmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI7CkBAIC03OSw2ICs4MCw3IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhHUFVQcm9jZXNzJiwgV2ViQ29y
ZTo6UHJvY2Vzc0lkZW50aWZpZXIsIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciwgUEFMOjpT
ZXNzaW9uSUQpOwogCisgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXImIHJlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyKCk7CiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHkmIHJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCk7CiAjaWYgUExBVEZPUk0oQ09DT0Ep
ICYmIFVTRShMSUJXRUJSVEMpCiAgICAgTGliV2ViUlRDQ29kZWNzUHJveHkmIGxpYldlYlJUQ0Nv
ZGVjc1Byb3h5KCk7CkBAIC0xMDMsNiArMTA1LDcgQEAgcHJpdmF0ZToKICAgICBSZWY8SVBDOjpD
b25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAgICAgUmVmPEdQVVByb2Nlc3M+IG1fZ3B1UHJvY2Vz
czsKICAgICBjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBtX3dlYlByb2Nlc3NJZGVu
dGlmaWVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
cj4gbV9yZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI+IG1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI7
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5PiBtX3Jl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OwogICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lv
bklEOwpJbmRleDogU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwCShub25leGlzdGVudCkK
KysrIFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
TWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNzUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXIuaCIKKworI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNs
dWRlICJSZW1vdGVBdWRpb0J1c0RhdGEuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvQXVkaW9CdXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24u
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvSU9DYWxsYmFjay5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvU2hhcmVkQnVmZmVyLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+
CisjaW5jbHVkZSA8d3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPFJlbW90ZUF1ZGlvRGVzdGluYXRpb24+LCBwdWJsaWMgV2ViQ29yZTo6QXVk
aW9JT0NhbGxiYWNrIHsKK3B1YmxpYzoKKyAgICB1c2luZyBBdWRpb0J1cyA9IFdlYkNvcmU6OkF1
ZGlvQnVzOworICAgIHVzaW5nIEF1ZGlvRGVzdGluYXRpb24gPSBXZWJDb3JlOjpBdWRpb0Rlc3Rp
bmF0aW9uOworICAgIHVzaW5nIFNoYXJlZEJ1ZmZlciA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjsK
KworICAgIHN0YXRpYyBSZWY8UmVtb3RlQXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVu
dGlmaWVyIGlkLAorICAgICAgICBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVpbnQzMl90
IG51bWJlck9mSW5wdXRDaGFubmVscywgdWludDMyX3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywg
ZmxvYXQgc2FtcGxlUmF0ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJl
bW90ZUF1ZGlvRGVzdGluYXRpb24oY29ubmVjdGlvbiwgaWQsIGlucHV0RGV2aWNlSWQsIG51bWJl
ck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSkpOwor
ICAgIH0KKworICAgIHZpcnR1YWwgflJlbW90ZUF1ZGlvRGVzdGluYXRpb24oKQorICAgIHsKKyAg
ICAgICAgUkVMRUFTRV9BU1NFUlQoIW1fZGVzdGluYXRpb24tPmlzUGxheWluZygpKTsKKyAgICB9
CisKKyAgICB2b2lkIHNjaGVkdWxlR3JhY2VmdWxTaHV0ZG93bklmTmVlZGVkKCkKKyAgICB7Cisg
ICAgICAgIGlmICghaXNQbGF5aW5nKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1f
cHJvdGVjdFRoaXNEdXJpbmdHcmFjZWZ1bFNodXRkb3duID0gdGhpczsKKyAgICAgICAgc3RvcCgp
OworICAgIH0KKworICAgIHZvaWQgc3RhcnQoKSB7IG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7IH0K
KyAgICB2b2lkIHN0b3AoKSB7IG1fZGVzdGluYXRpb24tPnN0b3AoKTsgfQorICAgIGJvb2wgaXNQ
bGF5aW5nKCkgeyByZXR1cm4gbV9kZXN0aW5hdGlvbi0+aXNQbGF5aW5nKCk7IH0KKworcHJpdmF0
ZToKKyAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
IGNvbm5lY3Rpb24sIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIGlkLCBjb25zdCBT
dHJpbmcmIGlucHV0RGV2aWNlSWQsIHVpbnQzMl90IG51bWJlck9mSW5wdXRDaGFubmVscywgdWlu
dDMyX3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKKyAgICAgICAg
OiBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKKyAgICAgICAgLCBtX2lkKGlkKQorICAgICAgICAs
IG1fZGVzdGluYXRpb24oQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKCp0aGlzLCBpbnB1dERldmlj
ZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBs
ZVJhdGUpKQorICAgIHsKKyAgICB9CisKKyAgICB2b2lkIHJlbmRlcihBdWRpb0J1cyogc291cmNl
QnVzLCBBdWRpb0J1cyogZGVzdGluYXRpb25CdXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIG92
ZXJyaWRlCisgICAgeworICAgICAgICBpZiAobV9wcm90ZWN0VGhpc0R1cmluZ0dyYWNlZnVsU2h1
dGRvd24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYXV0byBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyk7CisgICAgICAgIEJpbmFyeVNlbWFwaG9yZSByZW5kZXJTZW1hcGhv
cmU7CisKKyAgICAgICAgVmVjdG9yPFJlZjxTaGFyZWRNZW1vcnk+PiBidWZmZXJzOworICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZGVzdGluYXRpb25CdXMtPm51bWJlck9mQ2hhbm5l
bHMoKTsgKytpKSB7CisgICAgICAgICAgICBhdXRvIG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6YWxs
b2NhdGUoc2l6ZW9mKGZsb2F0KSAqIGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAgICAgICBidWZm
ZXJzLmFwcGVuZCgqbWVtb3J5KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZJWE1FOiBSZXBs
YWNlIHRoaXMgY29kZSB3aXRoIGEgcmluZyBidWZmZXIuIEF0IGxlYXN0IHRoaXMgaGFwcGVucyBp
biBhdWRpbyB0aHJlYWQuCisgICAgICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgICAg
ICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBmcmFtZXNUb1Byb2Nlc3MsICZidWZmZXJzLCAmcmVu
ZGVyU2VtYXBob3JlXSB7CisgICAgICAgICAgICBSZW1vdGVBdWRpb0J1c0RhdGEgYnVzRGF0YSB7
IGZyYW1lc1RvUHJvY2VzcywgYnVmZmVycy5tYXAoW10oYXV0byYgbWVtb3J5KSB7IHJldHVybiBt
ZW1vcnkuY29weVJlZigpOyB9KSB9OworICAgICAgICAgICAgQVNTRVJUKGZyYW1lc1RvUHJvY2Vz
cyk7CisgICAgICAgICAgICBtX2Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpSZW5kZXJCdWZmZXIo
YnVzRGF0YSksIFsmXSgpIHsKKyAgICAgICAgICAgICAgICByZW5kZXJTZW1hcGhvcmUuc2lnbmFs
KCk7CisgICAgICAgICAgICB9LCBtX2lkLnRvVUludDY0KCkpOworICAgICAgICB9KTsKKyAgICAg
ICAgcmVuZGVyU2VtYXBob3JlLndhaXQoKTsKKworICAgICAgICBhdXRvIGF1ZGlvQnVzID0gQXVk
aW9CdXM6OmNyZWF0ZShidWZmZXJzLnNpemUoKSwgZnJhbWVzVG9Qcm9jZXNzLCBmYWxzZSk7Cisg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBidWZmZXJzLnNpemUoKTsgKytpKQorICAg
ICAgICAgICAgYXVkaW9CdXMtPnNldENoYW5uZWxNZW1vcnkoaSwgKGZsb2F0KilidWZmZXJzW2ld
LT5kYXRhKCksIGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAgIGRlc3RpbmF0aW9uQnVzLT5jb3B5
RnJvbSgqYXVkaW9CdXMpOworCisgICAgfQorCisgICAgdm9pZCBpc1BsYXlpbmdEaWRDaGFuZ2Uo
KSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgaWYgKG1fcHJvdGVjdFRoaXNEdXJpbmdHcmFjZWZ1
bFNodXRkb3duKSB7CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVCghbV9kZXN0aW5hdGlvbi0+
aXNQbGF5aW5nKCkpOworICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQocmVmQ291bnQoKSA9PSAx
KTsKKyAgICAgICAgICAgIG1fcHJvdGVjdFRoaXNEdXJpbmdHcmFjZWZ1bFNodXRkb3duID0gbnVs
bHB0cjsgLy8gRGVsZXRlcyAidGhpcyIuCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpLCBpc1BsYXlpbmcgPSBtX2Rlc3RpbmF0aW9uLT5pc1BsYXlpbmcoKSwgaWQgPSBtX2lk
LnRvVUludDY0KCldIHsKKyAgICAgICAgICAgIG1fY29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2Vu
ZChNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpEaWRDaGFuZ2VJc1BsYXlp
bmcoaXNQbGF5aW5nKSwgaWQpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzJiBtX2Nvbm5lY3Rpb247CisgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlv
bklkZW50aWZpZXIgbV9pZDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4g
bV9kZXN0aW5hdGlvbjsKKyAgICBSZWZQdHI8UmVtb3RlQXVkaW9EZXN0aW5hdGlvbj4gbV9wcm90
ZWN0VGhpc0R1cmluZ0dyYWNlZnVsU2h1dGRvd247Cit9OworCitSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uTWFuYWdlcjo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIoR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyYgY29ubmVjdGlvbikKKyAgICA6IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vz
cyhjb25uZWN0aW9uKQoreworfQorCitSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6flJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKCkgPSBkZWZhdWx0OworCit2b2lkIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKGNvbnN0IFN0cmlu
ZyYgaW5wdXREZXZpY2VJZCwgdWludDMyX3QgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1aW50MzJf
dCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlLAorICAgIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gbmV3SUQgPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
SWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCk7CisgICAgYXV0byBjYWxsYmFjayA9IFJl
bW90ZUF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Ms
IG5ld0lELCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0
cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOworICAgIG1fYXVkaW9EZXN0aW5hdGlvbnMuYWRkKG5l
d0lELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgY29tcGxldGlvbkhhbmRsZXIobmV3SUQpOwor
fQorCit2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpkZWxldGVBdWRpb0Rlc3Rp
bmF0aW9uKFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIGlkLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byBkZXN0aW5hdGlv
biA9IG1fYXVkaW9EZXN0aW5hdGlvbnMudGFrZShpZCk7CisgICAgaWYgKGRlc3RpbmF0aW9uKQor
ICAgICAgICBkZXN0aW5hdGlvbi52YWx1ZSgpLT5zY2hlZHVsZUdyYWNlZnVsU2h1dGRvd25JZk5l
ZWRlZCgpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbk1hbmFnZXI6OnN0YXJ0QXVkaW9EZXN0aW5hdGlvbihSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uSWRlbnRpZmllciBpZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICBib29sIGlzUGxheWluZyA9IGZhbHNlOworICAgIGlmIChh
dXRvKiBpdGVtID0gbV9hdWRpb0Rlc3RpbmF0aW9ucy5nZXQoaWQpKSB7CisgICAgICAgIGl0ZW0t
PnN0YXJ0KCk7CisgICAgICAgIGlzUGxheWluZyA9IGl0ZW0tPmlzUGxheWluZygpOworICAgIH0K
KyAgICBjb21wbGV0aW9uSGFuZGxlcihpc1BsYXlpbmcpOworfQorCit2b2lkIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyOjpzdG9wQXVkaW9EZXN0aW5hdGlvbihSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uSWRlbnRpZmllciBpZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICBib29sIGlzUGxheWluZyA9IGZhbHNlOworICAgIGlmIChh
dXRvKiBpdGVtID0gbV9hdWRpb0Rlc3RpbmF0aW9ucy5nZXQoaWQpKSB7CisgICAgICAgIGl0ZW0t
PnN0b3AoKTsKKyAgICAgICAgaXNQbGF5aW5nID0gaXRlbS0+aXNQbGF5aW5nKCk7CisgICAgfQor
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGlzUGxheWluZyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCkluZGV4OiBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbk1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaAkobm9uZXhpc3RlbnQpCisr
KyBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVk
aW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKKyNp
bmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CitjbGFzcyBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uOworCitjbGFzcyBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlciA6IHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyKTsKK3B1YmxpYzoKKyAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcihH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7CisgICAgflJlbW90ZUF1ZGlvRGVzdGluYXRpb25N
YW5hZ2VyKCk7CisKKyAgICB2b2lkIGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oY29uc3QgU3RyaW5n
JiBpbnB1dERldmljZUlkLCB1aW50MzJfdCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVpbnQzMl90
IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIpPiYmKTsKKyAgICB2b2lk
IGRlbGV0ZUF1ZGlvRGVzdGluYXRpb24oUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzdGFydEF1ZGlvRGVzdGlu
YXRpb24oUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgc3RvcEF1ZGlvRGVzdGluYXRpb24oUmVtb3RlQXVk
aW9EZXN0aW5hdGlvbklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OworCisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2VGcm9tV2ViUHJvY2VzcyhJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVf
cHRyPElQQzo6RW5jb2Rlcj4mIGVuY29kZXIpCisgICAgeworICAgICAgICBkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlciwgZW5jb2Rlcik7CisgICAgfQorICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9u
LCBkZWNvZGVyKTsgfQorCitwcml2YXRlOgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQ
Qzo6RW5jb2Rlcj4mKTsKKworICAgIEhhc2hNYXA8UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50
aWZpZXIsIFJlZjxSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uPj4gbV9hdWRpb0Rlc3RpbmF0aW9uczsK
KyAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlOworCisjZW5kaWYKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5t
ZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4JKG5vbmV4aXN0ZW50KQor
KysgU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25N
YW5hZ2VyLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzcgQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CisKK21lc3NhZ2VzIC0+IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyIE5vdFJlZkNvdW50
ZWQgeworCisgICAgQ3JlYXRlQXVkaW9EZXN0aW5hdGlvbihTdHJpbmcgaW5wdXREZXZpY2VJZCwg
dWludDMyX3QgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1aW50MzJfdCBudW1iZXJPZk91dHB1dENo
YW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKSAtPiAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uSWRlbnRpZmllciBpZCkgU3luY2hyb25vdXMKKworICAgIERlbGV0ZUF1ZGlvRGVzdGluYXRp
b24oV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBpZCkgLT4gKCkgQXN5
bmMKKworICAgIFN0YXJ0QXVkaW9EZXN0aW5hdGlvbihXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25JZGVudGlmaWVyIGlkKSAtPiAoYm9vbCBpc1BsYXlpbmcpIFN5bmNocm9ub3VzCisgICAg
U3RvcEF1ZGlvRGVzdGluYXRpb24oV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRp
ZmllciBpZCkgLT4gKGJvb2wgaXNQbGF5aW5nKSBTeW5jaHJvbm91cworCit9CisKKyNlbmRpZgpJ
bmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3Jt
U3RyYXRlZ2llcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAJKHJldmlzaW9uIDI1NzI5NykK
KysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0OCwxMSBAQCBQYXN0ZWJvYXJk
U3RyYXRlZ3kqIE5ldHdvcmtQcm9jZXNzUGxhdGZvCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAK
K01lZGlhU3RyYXRlZ3kqIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVN
ZWRpYVN0cmF0ZWd5KCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogQmxvYlJlZ2lzdHJ5
KiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkK
IHsKICAgICB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1T
dHJhdGVnaWVzLmgJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkod29ya2luZyBjb3B5KQpA
QCAtMzgsNiArMzgsNyBAQCBwcml2YXRlOgogICAgIC8vIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRl
Z2llcwogICAgIFdlYkNvcmU6OkxvYWRlclN0cmF0ZWd5KiBjcmVhdGVMb2FkZXJTdHJhdGVneSgp
IG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVneSogY3JlYXRlUGFzdGVi
b2FyZFN0cmF0ZWd5KCkgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6TWVkaWFTdHJhdGVneSogY3Jl
YXRlTWVkaWFTdHJhdGVneSgpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkJsb2JSZWdpc3RyeSog
Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkgb3ZlcnJpZGU7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkJKHdvcmtpbmcgY29weSkKQEAgLTIyNyw2
ICsyMjcsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlCiAgICAg
ICAgICdXZWJLaXQ6Ok1ETlNSZWdpc3RlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6TWVk
aWFSZWNvcmRlcklkZW50aWZpZXInLAorICAgICAgICAnV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJ
ZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6UlRDRGVjb2RlcklkZW50aWZpZXInLAogICAg
ICAgICAnV2ViS2l0OjpSVENFbmNvZGVySWRlbnRpZmllcicsCkluZGV4OiBTb3VyY2UvV2ViS2l0
L1NoYXJlZC9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmgJ
KG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbklkZW50aWZpZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRl
IDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgUmVtb3RlQXVk
aW9EZXN0aW5hdGlvbklkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFJlbW90ZUF1ZGlvRGVz
dGluYXRpb25JZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkocmV2aXNpb24gMjU3Mjk3KQorKysgU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTQwNSw4ICsxNDA1LDE0IEBACiAJ
CTlCMDJFMENCMjM1RUI5NTMwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDJFMEM5
MjM1RUI2MkQwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjAyRTBDQzIzNUVC
OTU3MDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDJFMENBMjM1RUI4ODQwMDQwNDRCMiAv
KiBfV0tUZXh0TWFuaXB1bGF0aW9uSXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTlCMDJFMEQ3MjM1RkM5NEYwMDQwNDRCMiAvKiBfV0tUZXh0
TWFuaXB1bGF0aW9uVG9rZW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDlCMDJFMENEMjM1RUI5NjcwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9u
VG9rZW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk5QjEyMjlDRDIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMTIy
OUNCMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oICov
OyB9OworCQk5QjEyMjlDRTIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlv
bk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOUIxMjI5Q0MyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyLmNwcCAqLzsgfTsKKwkJOUIxMjI5RDIyM0ZGMkJDQzAwOENBNzUxIC8qIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25JZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5QjEyMjlEMDIzRkYyQTVFMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbklkZW50aWZpZXIuaCAqLzsgfTsKIAkJOUI1NDk5QUQyMzYyQTZGOTAwREY4QkE1IC8q
IF9XS1RleHRNYW5pcHVsYXRpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjU0OTlBQzIzNjJBNkY2MDBERjhCQTUgLyogX1dL
VGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjU0OTlCMjIzNjJBN0VDMDBERjhCQTUgLyogX1dL
VGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCNTQ5OUIwMjM2MkE3RUMwMERGOEJBNSAvKiBfV0tUZXh0
TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTlCNUJFQzI2MjQwMEY0QTkwMDcwQzZFRiAvKiBXZWJNZWRp
YVN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5QjVCRUMyNDI0MDBGNEE5MDA3MEM2RUYgLyogV2ViTWVkaWFTdHJhdGVneS5oICovOyB9Owor
CQk5QjVCRUMyQTI0MDEwMTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjVCRUMy
ODI0MDEwMTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmggKi87IH07
CisJCTlCNUJFQzMxMjQwMTAyMjIwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0J1c0RhdGEuaCBpbiBD
b3B5RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI1QkVDMzAyNDAx
MDIyMjAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvQnVzRGF0YS5oICovOyB9OwogCQk5RkI1RjM5NTE2
OUU2QTgwMDAyQzI1QkYgLyogV0tDb250ZXh0UHJpdmF0ZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUZCNUYzOTMxNjlFNkE4MDAwMkMyNUJGIC8q
IFdLQ29udGV4dFByaXZhdGVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlBMTAyQTcwODFFQzBFRUU5MDBEODFEODIgLyogY29tLm1hY3JvbWVk
aWEuRmxhc2ggUGxheWVyIEVTUi5wbHVnaW4uc2IgaW4gQ29weSBQbHVnLWluIFNhbmRib3ggUHJv
ZmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E1RTM5NDkxRDVCRDhB
NzAwQjRCN0NFIC8qIGNvbS5tYWNyb21lZGlhLkZsYXNoIFBsYXllciBFU1IucGx1Z2luLnNiICov
OyB9OwogCQlBMTA0NkVBMTIwNzkyNjMxMDBGMEM1RDggLyogV0tQREZWaWV3LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTA0NkU5RjIwNzkyNjMxMDBG
MEM1RDggLyogV0tQREZWaWV3LmggKi87IH07CkBAIC0yMDYxLDYgKzIwNjcsNyBAQAogCQkJCTJE
Qjk2MDUzMjM5ODg2QzEwMDEwMjc5MSAvKiBjb20uYXBwbGUuV2ViS2l0LkdQVS5zYiBpbiBDb3B5
RmlsZXMgKi8sCiAJCQkJQTc4Q0NEREIxOTNBQzlGODAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJL
aXQuTmV0d29ya2luZy5zYiBpbiBDb3B5RmlsZXMgKi8sCiAJCQkJQTc4Q0NEREMxOTNBQzlGQjAw
NUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYiBpbiBDb3B5RmlsZXMgKi8s
CisJCQkJOUI1QkVDMzEyNDAxMDIyMjAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvQnVzRGF0YS5oIGlu
IENvcHlGaWxlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKQEAgLTQzODMsMTAgKzQzOTAsMjAgQEAKIAkJOUIwMkUwQ0QyMzVFQjk2
NzAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBf
V0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OUIwMkUwQ0UyMzVFQkIxNDAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwMkUwRDAyMzVFQkNDQTAwNDA0NEIyIC8qIF9XS1Rl
eHRNYW5pcHVsYXRpb25JdGVtLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLVGV4dE1hbmlw
dWxhdGlvbkl0ZW0ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCMTIyOUNCMjNG
RjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5QjEyMjlDQzIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjEyMjlDRjIz
RkYyODE0MDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMu
aW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCMTIyOUQwMjNGRjJBNUUwMDhDQTc1MSAvKiBSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
QjU0OTlBQzIzNjJBNkY2MDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI1NDk5QUUyMzYyQTdBNzAwREY4QkE1IC8q
IF9XS1RleHRNYW5pcHVsYXRpb25Db25maWd1cmF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTlCNTQ5OUIwMjM2MkE3RUMwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1bGF0
aW9uRXhjbHVzaW9uUnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uRXhj
bHVzaW9uUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjU0OTlCMTIzNjJB
N0VDMDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUI1QkVDMjQyNDAwRjRBOTAwNzBDNkVGIC8qIFdl
Yk1lZGlhU3RyYXRlZ3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTWVkaWFTdHJhdGVneS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjVCRUMyNTI0MDBGNEE5MDA3MEM2RUYgLyogV2Vi
TWVkaWFTdHJhdGVneS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJNZWRpYVN0cmF0ZWd5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUI1QkVDMjgyNDAxMDE1ODAwNzBDNkVG
IC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUI1
QkVDMjkyNDAxMDE1ODAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjVCRUMyRTI0MDEwMThDMDA3MEM2RUYgLyogUmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OUI1QkVDMzAyNDAxMDIyMjAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvQnVzRGF0YS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVBdWRpb0J1c0RhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOUJDNTlENkMxRUZDQ0NCNjAwMUU4RDA5IC8qIENhbGxiYWNrSUQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FsbGJhY2tJRC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5QkM1OUQ2RDFFRkNEQzZEMDAxRThEMDkgLyogT3B0aW9uYWxDYWxsYmFja0lELmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9wdGlvbmFsQ2FsbGJhY2tJRC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5RjU0Rjg4RTE2NDg4RTg3MDA3REY4MUEgLyog
QXV4aWxpYXJ5UHJvY2Vzc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IEF1eGlsaWFyeVByb2Nlc3NNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC01MjY4LDYgKzUyODUsMTAgQEAKIAkJCQkwNzkyMzEzMjIzOUIzQjBDMDA5NTk4RTIgLyog
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggKi8sCiAJCQkJMDdCMUQwNEIyM0QzOEZDRTAwMzk5
QTZFIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbiAqLywKIAkJCQkwNzky
MzE0RTIzOUQ1RjUzMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmll
ci5oICovLAorCQkJCTlCNUJFQzMwMjQwMTAyMjIwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0J1c0Rh
dGEuaCAqLywKKwkJCQk5QjVCRUMyOTI0MDEwMTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5LmNwcCAqLywKKwkJCQk5QjVCRUMyODI0MDEwMTU4MDA3MEM2RUYgLyogUmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmggKi8sCisJCQkJOUI1QkVDMkUyNDAxMDE4QzAwNzBD
NkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQkw
N0I5M0ZGNTIzQUYwQ0I4MDAzNkY4RUEgLyogUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9u
LmggKi8sCiAJCQkJMDc5MjMxMzAyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlci5jcHAgKi8sCiAJCQkJMDc5MjMxMzQyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlci5oICovLApAQCAtNTI4Myw2ICs1MzA0LDggQEAKIAkJCQkxREZERDBF
MjIzRjYxMEYwMDBFOUI0OTAgLyogVmlkZW9MYXllclJlbW90ZS5oICovLAogCQkJCTA3MUJDNTgz
MjNDQzJCRDUwMDY4MEQ3QyAvKiBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCiAJCQkJ
MDcxQkM1ODIyM0NDMkJEMzAwNjgwRDdDIC8qIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmggKi8s
CisJCQkJOUI1QkVDMjUyNDAwRjRBOTAwNzBDNkVGIC8qIFdlYk1lZGlhU3RyYXRlZ3kuY3BwICov
LAorCQkJCTlCNUJFQzI0MjQwMEY0QTkwMDcwQzZFRiAvKiBXZWJNZWRpYVN0cmF0ZWd5LmggKi8s
CiAJCQkpOwogCQkJcGF0aCA9IG1lZGlhOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAg
LTUyOTEsNiArNTMxNCw5IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAog
CQkJCTFEMEVDRUE5MjNGQzg0QkIwMEQxNzJGNiAvKiBjb2NvYSAqLywKKwkJCQk5QjEyMjlDQzIz
RkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwICovLAor
CQkJCTlCMTIyOUNCMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlci5oICovLAorCQkJCTlCMTIyOUNGMjNGRjI4MTQwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCQkwNzFCQzU3RTIzQ0E1REIxMDA2
ODBEN0MgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcCAqLywKIAkJCQkwNzFCQzU3RjIzQ0E1
REIxMDA2ODBEN0MgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5LmggKi8sCiAJCQkJMDcyNUVGQUQy
MzlCMDI0NTAwQTUzOEE5IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcCAqLywK
QEAgLTU3NTEsNiArNTc3Nyw3IEBACiAJCQkJRTE4QzkyRjMxMkRCOUU3MTAwQ0YyQUVCIC8qIFBy
aW50SW5mby5jcHAgKi8sCiAJCQkJRTFDQzFCOEUxMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5m
by5oICovLAogCQkJCTQ2M0ZENDgxMUVCOTRFQUQwMEEyOTgyQyAvKiBQcm9jZXNzVGVybWluYXRp
b25SZWFzb24uaCAqLywKKwkJCQk5QjEyMjlEMDIzRkYyQTVFMDA4Q0E3NTEgLyogUmVtb3RlQXVk
aW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaCAqLywKIAkJCQlGNkEwQzEzRjEzMjgxRTZFMDA3MDQz
MEYgLyogUmVzb3VyY2VDYWNoZXNUb0NsZWFyLmggKi8sCiAJCQkJNUNCN0FGRTYyM0M2ODFCMDAw
RTQ5Q0YzIC8qIFJlc291cmNlTG9hZEluZm8uaCAqLywKIAkJCQk0MTA0ODJDQjFEREQyRkI1MDBG
MDA2RDAgLyogUlRDTmV0d29yay5jcHAgKi8sCkBAIC0xMDUyOCw2ICsxMDU1NSw5IEBACiAJCQkJ
ODMwNDhBRTYxQUNBNDVEQzAwODJDODMyIC8qIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUExRTY4ODcwMUY2RTJCQUIwMDcwMDZBNiAvKiBRdWFyYW50aW5lU1BJ
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0ZEMzE4MjIyQjM1MTVFMDA4RDBFOEIgLyogUmVkaXJl
Y3RTT0F1dGhvcml6YXRpb25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5QjEyMjlEMjIz
RkYyQkNDMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTlCMTIyOUNEMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUI1QkVDMkEyNDAxMDE1ODAw
NzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkQ0N0I1NkQxODEwNzE0RTAwM0EzQUVFIC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyRERGNzMxNTE4RTk1MDYwMDA0RjVBNjYgLyogUmVtb3RlTGF5
ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUIxNkFFQTE2
NEIzQTg4MDAyOTBENjIgLyogUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0xMDc4MCw2ICsxMDgxMCw3IEBACiAJCQkJQzk4QzQ4QTYxQjZGRDRDMzAwMTQ1MTAzIC8q
IFdlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzlDMTgz
M0MxQjc0MDI2RDAwNzAzNkE3IC8qIFdlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlckNsaWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQzlDRDQzOTgxQjRCMDAxRDAwMjM5RTMzIC8qIFdlYk1lZGlh
U2Vzc2lvbk1ldGFkYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQk5QjVCRUMyNjI0MDBGNEE5MDA3
MEM2RUYgLyogV2ViTWVkaWFTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQzRUY0NDMx
OTE3NjQ2MzAwMDM0MTg0IC8qIFdlYk1lbW9yeVByZXNzdXJlSGFuZGxlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTA5ODU0RUQxMkJDNEUxODAwMEFEMDgwIC8qIFdlYk1lbW9yeVNhbXBsZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTUxM0ZGQjkxMjAxNDU5QzYwMDI1OTZFQSAvKiBXZWJNZXNzYWdl
UG9ydENoYW5uZWxQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjIyNCw2ICsxMjI1NSw3
IEBACiAJCQkJQzE1Q0JCMzcyM0YzN0VDQjAwMzAwQ0M3IC8qIFByZWZlcmVuY2VPYnNlcnZlci5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTJENTRDMzFCMjEyRjREQTYwMDQ5QzE3NCAvKiBQcm9jZXNz
TGF1bmNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QyODY1RUYyMjU1NTYyMDAwNjA2QUM3
IC8qIFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5tbSBpbiBTb3VyY2VzICovLAorCQkJCTlCMTIy
OUNFMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkyRDcyQTFGQTIxMkJGNDZFMDA1MTdBMjAgLyogUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWEubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRkYyNEEyRDE4NzlFNEJD
MDAzQUJGMEMgLyogUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREMxOEZCNDIxOEE2RTlFMDAyNUE4OEQgLyogUmVt
b3RlTGF5ZXJUcmVlVmlld3MubW0gaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCShyZXZp
c2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3ND
b25uZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsOCBAQAogI2luY2x1ZGUg
IkxpYldlYlJUQ0NvZGVjcy5oIgogI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjc01lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIKKyNpbmNsdWRl
ICJSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlci5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlck1lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZXMuaCIKQEAgLTc3LDYgKzc5
LDkgQEAgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciYgR1BVUHJvYwogCiB2b2lkIEdQ
VVByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKIHsKKyAgICBpZiAobV9yZWNlaXZlck1h
cC5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlcikpCisgICAgICAgIHJldHVybjsK
KwogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6TWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc3VwcGxlbWVudDxSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXI+KCktPmRpZFJlY2VpdmVQbGF5ZXJNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogICAg
ICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nl
c3NDb25uZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgJKHdvcmtpbmcgY29weSkK
QEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKICNpbmNsdWRlICJD
b25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyTWFwLmgiCiAjaW5jbHVkZSAi
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC01Niw2ICs1NywxNiBA
QCBwdWJsaWM6CiAgICAgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciYgc2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlcigpOwogI2VuZGlmCiAKKyAgICB2b2lkIGFkZE1lc3NhZ2VS
ZWNlaXZlcihJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCB1aW50NjRf
dCBkZXN0aW5hdGlvbklELCBJUEM6Ok1lc3NhZ2VSZWNlaXZlciYgcmVjZWl2ZXIpCisgICAgewor
ICAgICAgICBtX3JlY2VpdmVyTWFwLmFkZE1lc3NhZ2VSZWNlaXZlcihtZXNzYWdlUmVjZWl2ZXJO
YW1lLCBkZXN0aW5hdGlvbklELCByZWNlaXZlcik7CisgICAgfQorCisgICAgdm9pZCByZW1vdmVN
ZXNzYWdlUmVjZWl2ZXIoSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwg
dWludDY0X3QgZGVzdGluYXRpb25JRCkKKyAgICB7CisgICAgICAgIG1fcmVjZWl2ZXJNYXAucmVt
b3ZlTWVzc2FnZVJlY2VpdmVyKG1lc3NhZ2VSZWNlaXZlck5hbWUsIGRlc3RpbmF0aW9uSUQpOwor
ICAgIH0KKwogcHJpdmF0ZToKICAgICBHUFVQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rp
b246OklkZW50aWZpZXIpOwogCkBAIC02Niw2ICs3Nyw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBU
aGUgY29ubmVjdGlvbiBmcm9tIHRoZSB3ZWIgcHJvY2VzcyB0byB0aGUgR1BVIHByb2Nlc3MuCiAg
ICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIElQQzo6TWVzc2FnZVJl
Y2VpdmVyTWFwIG1fcmVjZWl2ZXJNYXA7CiAKICNpZiBIQVZFKEFVRElUX1RPS0VOKQogICAgIE9w
dGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IG1fYXVkaXRUb2tlbjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9CdXNEYXRhLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0J1c0RhdGEuaAko
bm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvQnVzRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRl
ICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiU2hhcmVkTWVtb3J5Lmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK3N0cnVjdCBSZW1vdGVBdWRpb0J1c0RhdGEgeworICAgIHVpbnQ2NF90IGZyYW1lc1RvUHJv
Y2VzcyB7IDAgfTsKKyAgICBWZWN0b3I8UmVmPFNoYXJlZE1lbW9yeT4+IGNoYW5uZWxCdWZmZXJz
OworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KKyAgICB2b2lkIGVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBmcmFtZXNUb1By
b2Nlc3M7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGNoYW5uZWxC
dWZmZXJzLnNpemUoKSk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY2hhbm5lbEJ1
ZmZlcnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhh
bmRsZTsKKyAgICAgICAgICAgIGNoYW5uZWxCdWZmZXJzW2ldLT5jcmVhdGVIYW5kbGUoaGFuZGxl
LCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRXcml0ZSk7CisgICAgICAgICAgICBlbmNv
ZGVyIDw8IGhhbmRsZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1l
IERlY29kZXI+CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFJlbW90
ZUF1ZGlvQnVzRGF0YSYgcmVzdWx0KQorICAgIHsKKyAgICAgICAgdWludDY0X3QgZnJhbWVzVG9Q
cm9jZXNzOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGZyYW1lc1RvUHJvY2VzcykpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJlc3VsdC5mcmFtZXNUb1Byb2Nlc3Mg
PSBmcmFtZXNUb1Byb2Nlc3M7CisKKyAgICAgICAgdWludDY0X3Qgc2l6ZSA9IDA7CisgICAgICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgICAg
IFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoaGFuZGxlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAg
ICBhdXRvIG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQ
cm90ZWN0aW9uOjpSZWFkV3JpdGUpOworICAgICAgICAgICAgaWYgKG1lbW9yeSkKKyAgICAgICAg
ICAgICAgICByZXN1bHQuY2hhbm5lbEJ1ZmZlcnMuYXBwZW5kKCptZW1vcnkpOworICAgICAgICB9
CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCShub25leGlzdGVu
dCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwOSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHkuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIkdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
TWFuYWdlci5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyTWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb0J1
cy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9EZXN0aW5hdGlvbi5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKwordXNpbmcgQXVkaW9CdXMgPSBXZWJDb3JlOjpBdWRpb0J1czsKK3VzaW5nIEF1
ZGlvRGVzdGluYXRpb24gPSBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uOwordXNpbmcgQXVkaW9J
T0NhbGxiYWNrID0gV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrOworCitzdGQ6OnVuaXF1ZV9wdHI8
QXVkaW9EZXN0aW5hdGlvbj4gUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpjcmVhdGUoQXVk
aW9JT0NhbGxiYWNrJiBjYWxsYmFjaywKKyAgICBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQs
IHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRD
aGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKK3sKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk+KGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJP
ZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOworfQor
CitSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQs
IHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRD
aGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKKyAgICA6IG1fY2FsbGJhY2soY2FsbGJhY2spCisg
ICAgLCBtX3NhbXBsZVJhdGUoc2FtcGxlUmF0ZSkKK3sKKyAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uSWRlbnRpZmllciBkZXN0aW5hdGlvbklEOworCisgICAgYXV0byYgY29ubmVjdGlvbiA9IFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCk7CisgICAg
Y29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZFN5bmMoCisgICAgICAgIE1lc3NhZ2VzOjpSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6Q3JlYXRlQXVkaW9EZXN0aW5hdGlvbihpbnB1dERl
dmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNh
bXBsZVJhdGUpLAorICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXI6OkNyZWF0ZUF1ZGlvRGVzdGluYXRpb246OlJlcGx5KGRlc3RpbmF0aW9uSUQpLCAwKTsKKyAg
ICBjb25uZWN0aW9uLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGRlc3RpbmF0aW9uSUQudG9VSW50
NjQoKSwgKnRoaXMpOworCisgICAgbV9kZXN0aW5hdGlvbklEID0gZGVzdGluYXRpb25JRDsKK30K
KworUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Ojp+UmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5KCkKK3sKKyAgICBhdXRvJiBjb25uZWN0aW9uID0gIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCk7CisgICAgY29ubmVjdGlvbi5yZW1vdmVNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLCBtX2Rlc3RpbmF0aW9uSUQudG9VSW50NjQoKSk7CisKKyAgICBjb25u
ZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoCisgICAgICAgIE1lc3NhZ2Vz
OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6RGVsZXRlQXVkaW9EZXN0aW5hdGlvbiht
X2Rlc3RpbmF0aW9uSUQpLCBbXSB7CisgICAgICAgIC8vIENhbid0IHJlbW92ZSB0aGlzIGZyb20g
cHJveHlNYXAoKSBoZXJlIGJlY2F1c2UgdGhlIG9iamVjdCB3b3VsZCBoYXZlIGJlZW4gYWxyZWFk
eSBkZWxldGVkLgorICAgIH0pOworfQorCit2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eTo6c3RhcnQoKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nl
c3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKAorICAgICAgICBNZXNzYWdlczo6
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OlN0YXJ0QXVkaW9EZXN0aW5hdGlvbihtX2Rl
c3RpbmF0aW9uSUQpLAorICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXI6OlN0YXJ0QXVkaW9EZXN0aW5hdGlvbjo6UmVwbHkobV9pc1BsYXlpbmcpLCAwKTsKK30K
Kwordm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0b3AoKQoreworICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlv
bigpLnNlbmRTeW5jKAorICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXI6OlN0b3BBdWRpb0Rlc3RpbmF0aW9uKG1fZGVzdGluYXRpb25JRCksCisgICAgICAgIE1l
c3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6U3RvcEF1ZGlvRGVzdGluYXRp
b246OlJlcGx5KG1faXNQbGF5aW5nKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5OjpyZW5kZXJCdWZmZXIoY29uc3QgV2ViS2l0OjpSZW1vdGVBdWRpb0J1c0RhdGEm
IGF1ZGlvQnVzRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIEFTU0VSVChhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICBB
U1NFUlQoYXVkaW9CdXNEYXRhLmNoYW5uZWxCdWZmZXJzLnNpemUoKSk7CisgICAgYXV0byBhdWRp
b0J1cyA9IEF1ZGlvQnVzOjpjcmVhdGUoYXVkaW9CdXNEYXRhLmNoYW5uZWxCdWZmZXJzLnNpemUo
KSwgYXVkaW9CdXNEYXRhLmZyYW1lc1RvUHJvY2VzcywgZmFsc2UpOworICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBhdWRpb0J1c0RhdGEuY2hhbm5lbEJ1ZmZlcnMuc2l6ZSgpOyArK2kpCisg
ICAgICAgIGF1ZGlvQnVzLT5zZXRDaGFubmVsTWVtb3J5KGksIChmbG9hdCopYXVkaW9CdXNEYXRh
LmNoYW5uZWxCdWZmZXJzW2ldLT5kYXRhKCksIGF1ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3Mp
OworCisgICAgbV9jYWxsYmFjay5yZW5kZXIoMCwgYXVkaW9CdXMuZ2V0KCksIGF1ZGlvQnVzRGF0
YS5mcmFtZXNUb1Byb2Nlc3MpOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKK30KKwordm9p
ZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OmRpZENoYW5nZUlzUGxheWluZyhib29sIGlz
UGxheWluZykKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpJbmRleDog
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgor
I2luY2x1ZGUgIlJlbW90ZUF1ZGlvQnVzRGF0YS5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvRGVz
dGluYXRpb25JZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1N1cHBsZW1lbnQuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0F1ZGlvSU9DYWxsYmFjay5oPgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8V2Vi
Q29yZS9DQVJpbmdCdWZmZXIuaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IDogcHVibGljIFdlYkNvcmU6OkF1ZGlvRGVz
dGluYXRpb24sIHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eSk7CitwdWJsaWM6CisgICAgdXNpbmcgQXVkaW9CdXMgPSBXZWJDb3JlOjpBdWRp
b0J1czsKKyAgICB1c2luZyBBdWRpb0lPQ2FsbGJhY2sgPSBXZWJDb3JlOjpBdWRpb0lPQ2FsbGJh
Y2s7CisKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0
ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVk
IG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywg
ZmxvYXQgc2FtcGxlUmF0ZSk7CisKKyAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkoQXVk
aW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1i
ZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0
IHNhbXBsZVJhdGUpOworICAgIH5SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkoKTsKKworICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25u
ZWN0aW9uLCBkZWNvZGVyKTsgfQorCisgICAgdm9pZCByZW5kZXJCdWZmZXIoY29uc3QgV2ViS2l0
OjpSZW1vdGVBdWRpb0J1c0RhdGEmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAg
IHZvaWQgZGlkQ2hhbmdlSXNQbGF5aW5nKGJvb2wgaXNQbGF5aW5nKTsKKworcHJpdmF0ZToKKyAg
ICAvLyBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uCisgICAgdm9pZCBzdGFydCgpIG92ZXJyaWRl
OworICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworICAgIGJvb2wgaXNQbGF5aW5nKCkgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9pc1BsYXlpbmc7IH0KKyAgICBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9zYW1wbGVSYXRlOyB9CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VS
ZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJikgZmluYWw7CisKKyAgICBBdWRpb0lPQ2FsbGJhY2smIG1fY2FsbGJhY2s7Cisg
ICAgZmxvYXQgbV9zYW1wbGVSYXRlOworICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlm
aWVyIG1fZGVzdGluYXRpb25JRDsKKyAgICBib29sIG1faXNQbGF5aW5nIHsgZmFsc2UgfTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Lm1lc3NhZ2Vz
LmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Lm1lc3NhZ2VzLmluCShub25leGlzdGVudCkKKysrIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzMgQEAKKyMgQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisK
K21lc3NhZ2VzIC0+IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSBOb3RSZWZDb3VudGVkIHsK
KworICAgIFJlbmRlckJ1ZmZlcihzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVBdWRpb0J1c0RhdGEgZGF0
YSkgLT4gKCkgQXN5bmMKKyAgICBEaWRDaGFuZ2VJc1BsYXlpbmcoYm9vbCBpc1BsYXlpbmcpCisK
K30KKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Rl
eHRUcmFja1ByaXZhdGVSZW1vdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHAJKHJldmlzaW9uIDI1
NzI5NykKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNywyMSArMTM3LDIxIEBAIHZvaWQg
VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZVcKIHsKICAgICBBU1NFUlQoY2xpZW50
KCkpOwogICAgIGlmIChhdXRvKiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkKLSAgICAgICAgY2xp
ZW50LT5hZGREYXRhQ3VlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFNlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWU6OmNyZWF0ZShXVEZNb3ZlKGRhdGFWYWx1ZSkpLCB0eXBlKTsKKyAgICAg
ICAgY2xpZW50LT5hZGREYXRhQ3VlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFdlYkNv
cmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmNyZWF0ZShXVEZNb3ZlKGRhdGFWYWx1ZSkp
LCB0eXBlKTsKIH0KIAogdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjp1cGRhdGVEYXRhQ3Vl
KE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWVWYWx1ZSYmIGRhdGFWYWx1ZSkKIHsKICAgICBBU1NFUlQoY2xpZW50KCkpOwogICAgIGlm
IChhdXRvKiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkKLSAgICAgICAgY2xpZW50LT51cGRhdGVE
YXRhQ3VlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWU6OmNyZWF0ZShXVEZNb3ZlKGRhdGFWYWx1ZSkpKTsKKyAgICAgICAgY2xpZW50LT51cGRh
dGVEYXRhQ3VlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFdlYkNvcmU6OlNlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWU6OmNyZWF0ZShXVEZNb3ZlKGRhdGFWYWx1ZSkpKTsKIH0KIAogdm9p
ZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpyZW1vdmVEYXRhQ3VlKE1lZGlhVGltZSYmIHN0YXJ0
LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSYmIGRhdGFW
YWx1ZSkKIHsKICAgICBBU1NFUlQoY2xpZW50KCkpOwogICAgIGlmIChhdXRvKiBjbGllbnQgPSB0
aGlzLT5jbGllbnQoKSkKLSAgICAgICAgY2xpZW50LT5yZW1vdmVEYXRhQ3VlKFdURk1vdmUoc3Rh
cnQpLCBXVEZNb3ZlKGVuZCksIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmNyZWF0ZShXVEZN
b3ZlKGRhdGFWYWx1ZSkpKTsKKyAgICAgICAgY2xpZW50LT5yZW1vdmVEYXRhQ3VlKFdURk1vdmUo
c3RhcnQpLCBXVEZNb3ZlKGVuZCksIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6
OmNyZWF0ZShXVEZNb3ZlKGRhdGFWYWx1ZSkpKTsKIH0KICNlbmRpZgogCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1By
aXZhdGVSZW1vdGUuaAkocmV2aXNpb24gMjU3Mjk3KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkRh
dGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbi5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0luYmFuZFRleHRUcmFja1ByaXZhdGUuaD4KQEAgLTQ0LDYgKzQ1LDEwIEBA
IGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKIGNsYXNzIFRleHRUcmFja1ByaXZhdGVS
ZW1vdGUgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSB7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZSkKIHB1YmxpYzoK
KyAgICB1c2luZyBHZW5lcmljQ3VlRGF0YSA9IFdlYkNvcmU6OkdlbmVyaWNDdWVEYXRhOworICAg
IHVzaW5nIElTT1dlYlZUVEN1ZSA9IFdlYkNvcmU6OklTT1dlYlZUVEN1ZTsKKyAgICB1c2luZyBT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUgPSBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlVmFsdWU7CisKICAgICBzdGF0aWMgUmVmPFRleHRUcmFja1ByaXZhdGVSZW1vdGU+
IGNyZWF0ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGUmIHBsYXllciwgVHJhY2tQcml2YXRlUmVt
b3RlSWRlbnRpZmllciBpZGVuZGlmaWVyLCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbiYmIGNvbmZpZ3VyYXRpb24pCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBUZXh0VHJhY2tQcml2YXRlUmVtb3RlKHBsYXllciwgaWRlbmRpZmllciwgV1RGTW92ZShjb25m
aWd1cmF0aW9uKSkpOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9X
ZWJNZWRpYVN0cmF0ZWd5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXZWJNZWRpYVN0cmF0ZWd5LmgiCisKKyNpbmNsdWRlICJHUFVQcm9jZXNz
Q29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9JT0NhbGxiYWNrLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjZW5kaWYKKworV2ViTWVkaWFTdHJhdGVn
eTo6fldlYk1lZGlhU3RyYXRlZ3koKSA9IGRlZmF1bHQ7CisKK3N0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpBdWRpb0Rlc3RpbmF0aW9uPiBXZWJNZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRpb0Rlc3Rp
bmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYg
aW5wdXREZXZpY2VJZCwKKyAgICB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2ln
bmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCit7CisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorICAgIGlmIChtX3VzZUdQVVByb2Nlc3MpCisgICAgICAgIHJldHVy
biBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OmNyZWF0ZShjYWxsYmFjaywgaW5wdXREZXZp
Y2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1w
bGVSYXRlKTsKKyNlbmRpZgorICAgIHJldHVybiBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uOjpj
cmVhdGUoY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVt
YmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0
cmF0ZWd5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9XZWJNZWRpYVN0cmF0ZWd5LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8V2ViQ29y
ZS9NZWRpYVN0cmF0ZWd5Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJNZWRp
YVN0cmF0ZWd5IDogcHVibGljIFdlYkNvcmU6Ok1lZGlhU3RyYXRlZ3kgeworcHVibGljOgorICAg
IHZpcnR1YWwgfldlYk1lZGlhU3RyYXRlZ3koKTsKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KyAgICB2b2lkIHNldFVzZUdQVVByb2Nlc3MoYm9vbCB1c2VHUFVQcm9jZXNzKSB7IG1fdXNlR1BV
UHJvY2VzcyA9IHVzZUdQVVByb2Nlc3M7IH0KKyNlbmRpZgorCitwcml2YXRlOgorICAgIHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0
aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjayYsCisgICAgICAgIGNvbnN0IFN0cmluZyYgaW5w
dXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1i
ZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKSBvdmVycmlkZTsKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKyAgICBib29sIG1fdXNlR1BVUHJvY2VzcyB7IGZhbHNlIH07Cisj
ZW5kaWYKKworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKwpJbmRleDogU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAJKHJldmlzaW9uIDI1NzI5NykKKysr
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw5IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5o
IgogCisjaW5jbHVkZSAiRGVjb2Rlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSW50U2l6ZS5oPgor
CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJ
REVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCShyZXZpc2lvbiAy
NTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksMTYgKzM5LDE5IEBACiAj
aW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJGcmFtZUxvYWRlckNsaWVudC5oIgog
I2luY2x1ZGUgIldlYkxvYWRlclN0cmF0ZWd5LmgiCisjaW5jbHVkZSAiV2ViTWVkaWFTdHJhdGVn
eS5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQYXN0ZWJvYXJkT3ZlcnJp
ZGVzLmgiCiAjaW5jbHVkZSAiV2ViUGFzdGVib2FyZFByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nv
bG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
RG9jdW1lbnRMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Mb2FkZXJTdHJhdGVneS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTdHJhdGVn
eS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlR3JvdXAuaD4KQEAgLTcz
LDYgKzc2LDggQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKK2NsYXNzIFJlbW90ZUF1ZGlvRGVzdGluYXRpb247CisKIHZvaWQgV2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjppbml0aWFsaXplKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V2ViUGxh
dGZvcm1TdHJhdGVnaWVzPiBwbGF0Zm9ybVN0cmF0ZWdpZXM7CkBAIC05Myw2ICs5OCwxMSBAQCBQ
YXN0ZWJvYXJkU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2llCiAgICAgcmV0dXJuIHRoaXM7
CiB9CiAKK01lZGlhU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFT
dHJhdGVneSgpCit7CisgICAgcmV0dXJuIG5ldyBXZWJNZWRpYVN0cmF0ZWd5OworfQorCiBCbG9i
UmVnaXN0cnkqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKIHsK
ICAgICByZXR1cm4gbmV3IEJsb2JSZWdpc3RyeVByb3h5OwpJbmRleDogU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuaAkocmV2aXNpb24gMjU3Mjk3KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCSh3b3JraW5nIGNvcHkp
CkBAIC00Miw2ICs0Miw3IEBAIHByaXZhdGU6CiAgICAgLy8gV2ViQ29yZTo6UGxhdGZvcm1TdHJh
dGVnaWVzCiAgICAgV2ViQ29yZTo6TG9hZGVyU3RyYXRlZ3kqIGNyZWF0ZUxvYWRlclN0cmF0ZWd5
KCkgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0
ZWJvYXJkU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpNZWRpYVN0cmF0ZWd5KiBj
cmVhdGVNZWRpYVN0cmF0ZWd5KCkgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5
KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSBvdmVycmlkZTsKIAogICAgIC8vIFdlYkNvcmU6OlBhc3Rl
Ym9hcmRTdHJhdGVneQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNiArMTAxLDcgQEAK
ICNpbmNsdWRlICJXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViTG9hZGVy
U3RyYXRlZ3kuaCIKICNpbmNsdWRlICJXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmgiCisjaW5j
bHVkZSAiV2ViTWVkaWFTdHJhdGVneS5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbkNsaWVu
dC5oIgogI2luY2x1ZGUgIldlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmgiCiAjaW5jbHVkZSAi
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIgpAQCAtMTk5LDYgKzIwMCw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9QaW5nTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJv
YXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TdHJhdGVnaWVzLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QbHVnaW5Eb2N1bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUG9pbnRlckNhcHR1
cmVDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QcmludENvbnRleHQuaD4KQEAgLTM2
ODUsNiArMzY4Nyw4IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2UK
ICAgICAgICAgbV9kcmF3aW5nQXJlYS0+dXBkYXRlUHJlZmVyZW5jZXMoc3RvcmUpOwogCiAjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIC8vIEZJWE1FOiB1c2VHUFVQcm9jZXNzRm9yTWVkaWEg
c2hvdWxkIGJlIGEgUnVudGltZUVuYWJsZWRGZWF0dXJlIHNpbmNlIGl0J3MgZ2xvYmFsLgorICAg
IHN0YXRpY19jYXN0PFdlYk1lZGlhU3RyYXRlZ3kmPihwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bWVk
aWFTdHJhdGVneSgpKS5zZXRVc2VHUFVQcm9jZXNzKHNldHRpbmdzLnVzZUdQVVByb2Nlc3NGb3JN
ZWRpYSgpKTsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zdXBwbGVtZW50PFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlcj4oKS0+dXBkYXRlUHJlZmVyZW5jZXMoc2V0dGluZ3MpOwogI2VuZGlm
CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTcyOTcpCisr
KyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxNyBAQAorMjAyMC0wMi0yNCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
KworICAgICAgICBDcmVhdGUgQXVkaW9EZXN0aW5hdGlvbiBpbiB0aGUgR1BVIHByb2Nlc3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODE3OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIFdlYk1l
ZGlhU3RyYXRlZ3kgd2hpY2ggaXMgYSB3cmFwcGVyIGFyb3VuZCBBdWRpb0Rlc3RpbmF0aW9uOjpj
cmVhdGUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
aDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW06Cisg
ICAgICAgIChXZWJNZWRpYVN0cmF0ZWd5KTogQWRkZWQuCisgICAgICAgIChXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3kpOgorCiAyMDIwLTAyLTI0ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSB0aGUgY2xhc2hp
bmcgV2ViT3ZlcmxheUxheWVyIGNsYXNzZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5oCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiAr
NDMsNyBAQCBwcml2YXRlOgogICAgIC8vIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcwogICAg
IFdlYkNvcmU6OkxvYWRlclN0cmF0ZWd5KiBjcmVhdGVMb2FkZXJTdHJhdGVneSgpIG92ZXJyaWRl
OwogICAgIFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVneSogY3JlYXRlUGFzdGVib2FyZFN0cmF0
ZWd5KCkgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6TWVkaWFTdHJhdGVneSogY3JlYXRlTWVkaWFT
dHJhdGVneSgpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkJsb2JSZWdpc3RyeSogY3JlYXRlQmxv
YlJlZ2lzdHJ5KCkgb3ZlcnJpZGU7CiAKICAgICAvLyBXZWJDb3JlOjpQYXN0ZWJvYXJkU3RyYXRl
Z3kKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0JKHJldmlzaW9uIDI1NzI5NykK
KysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsOSArMjgsMTEgQEAKICNpbXBvcnQgIldl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbXBvcnQgIldlYlBsdWdpblBhY2thZ2UuaCIK
ICNpbXBvcnQgIldlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oIgorI2ltcG9ydCA8V2ViQ29yZS9B
dWRpb0Rlc3RpbmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Jsb2JSZWdpc3RyeUltcGwuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvQ29sb3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWUuaD4KKyNp
bXBvcnQgPFdlYkNvcmUvTWVkaWFTdHJhdGVneS5oPgogI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3Jr
U3RvcmFnZVNlc3Npb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFzdGVib2FyZEl0ZW1JbmZvLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtUGFzdGVib2FyZC5oPgpAQCAtNjIsNiArNjQsMjEg
QEAgUGFzdGVib2FyZFN0cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZQogICAgIHJldHVybiB0
aGlzOwogfQogCitjbGFzcyBXZWJNZWRpYVN0cmF0ZWd5IGZpbmFsIDogcHVibGljIE1lZGlhU3Ry
YXRlZ3kgeworcHJpdmF0ZToKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9u
PiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0
IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKKyAgICAgICAgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENo
YW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRl
KSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgcmV0dXJuIEF1ZGlvRGVzdGluYXRpb246OmNyZWF0
ZShjYWxsYmFjaywgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJP
Zk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKKyAgICB9Cit9OworCitNZWRpYVN0cmF0ZWd5
KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3koKQoreworICAgIHJl
dHVybiBuZXcgV2ViTWVkaWFTdHJhdGVneTsKK30KKwogY2xhc3MgV2ViQmxvYlJlZ2lzdHJ5IGZp
bmFsIDogcHVibGljIEJsb2JSZWdpc3RyeSB7CiBwcml2YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJG
aWxlQmxvYlVSTChjb25zdCBVUkwmIHVybCwgUmVmPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4mJiBy
ZWZlcmVuY2UsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFsIHsgbV9ibG9iUmVnaXN0
cnkucmVnaXN0ZXJGaWxlQmxvYlVSTCh1cmwsIFdURk1vdmUocmVmZXJlbmNlKSwgY29udGVudFR5
cGUpOyB9CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTcyOTcp
CisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNyBAQAorMjAyMC0wMi0yNCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9y
Zz4KKworICAgICAgICBDcmVhdGUgQXVkaW9EZXN0aW5hdGlvbiBpbiB0aGUgR1BVIHByb2Nlc3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODE3OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIFdl
Yk1lZGlhU3RyYXRlZ3kgd2hpY2ggaXMgYSB3cmFwcGVyIGFyb3VuZCBBdWRpb0Rlc3RpbmF0aW9u
OjpjcmVhdGUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwOgorICAgICAgICAoV2ViTWVkaWFTdHJhdGVneSk6IEFkZGVkLgorICAgICAgICAoV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVNZWRpYVN0cmF0ZWd5KToKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKwogMjAyMC0wMi0xMyAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xs
aW5nIG91dCByMjU1MTU4LCAyNTU0MDUgYW5kIHIyNTU0ODYKSW5kZXg6IFNvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLmNwcAkocmV2aXNpb24gMjU3Mjk3KQorKysgU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQmxvYlJlZ2lzdHJ5Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9CbG9iUmVnaXN0cnlJbXBsLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9GcmFtZUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTdHJhdGVneS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlR3JvdXAuaD4KQEAgLTYwLDYgKzYxLDIx
IEBAIFBhc3RlYm9hcmRTdHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVnaWUKICAgICByZXR1cm4g
bnVsbHB0cjsKIH0KIAorY2xhc3MgV2ViTWVkaWFTdHJhdGVneSBmaW5hbCA6IHB1YmxpYyBNZWRp
YVN0cmF0ZWd5IHsKK3ByaXZhdGU6CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5h
dGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBj
b25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCisgICAgICAgIHVuc2lnbmVkIG51bWJlck9mSW5w
dXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxl
UmF0ZSkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIHJldHVybiBBdWRpb0Rlc3RpbmF0aW9uOjpj
cmVhdGUoY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVt
YmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7CisgICAgfQorfTsKKworTWVkaWFTdHJh
dGVneSogV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVNZWRpYVN0cmF0ZWd5KCkKK3sKKyAg
ICByZXR1cm4gbmV3IFdlYk1lZGlhU3RyYXRlZ3k7Cit9CisKIGNsYXNzIFdlYkJsb2JSZWdpc3Ry
eSBmaW5hbCA6IHB1YmxpYyBCbG9iUmVnaXN0cnkgewogcHJpdmF0ZToKICAgICB2b2lkIHJlZ2lz
dGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIFJlZjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+
JiYgcmVmZXJlbmNlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbCB7IG1fYmxvYlJl
Z2lzdHJ5LnJlZ2lzdGVyRmlsZUJsb2JVUkwodXJsLCBXVEZNb3ZlKHJlZmVyZW5jZSksIGNvbnRl
bnRUeXBlKTsgfQpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHJldmlzaW9uIDI1
NzI5NykKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw4IEBAIHByaXZhdGU6
CiAgICAgV2ViUGxhdGZvcm1TdHJhdGVnaWVzKCk7CiAKICAgICAvLyBXZWJDb3JlOjpQbGF0Zm9y
bVN0cmF0ZWdpZXMKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkxvYWRlclN0cmF0ZWd5KiBjcmVhdGVM
b2FkZXJTdHJhdGVneSgpOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5
KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkJsb2JS
ZWdpc3RyeSogY3JlYXRlQmxvYlJlZ2lzdHJ5KCk7CisgICAgV2ViQ29yZTo6TG9hZGVyU3RyYXRl
Z3kqIGNyZWF0ZUxvYWRlclN0cmF0ZWd5KCkgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6UGFzdGVi
b2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAgICBX
ZWJDb3JlOjpNZWRpYVN0cmF0ZWd5KiBjcmVhdGVNZWRpYVN0cmF0ZWd5KCkgb3ZlcnJpZGU7Cisg
ICAgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSBvdmVycmlkZTsK
IH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391710</attachid>
            <date>2020-02-25 18:15:17 -0800</date>
            <delta_ts>2020-02-25 18:37:30 -0800</delta_ts>
            <desc>GTK+ build fix attempt 1</desc>
            <filename>bug-208179-20200225181516.patch</filename>
            <type>text/plain</type>
            <size>98529</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDIwLTAyLTI0ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIENyZWF0ZSBBdWRpb0Rlc3RpbmF0
aW9uIGluIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA4MTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIGFuIGFic3RyYWN0aW9uIGFyb3VuZCB0aGUgY3JlYXRpb24gb2Yg
QXVkaW9EZXN0aW5hdGlvbiB1c2luZyBuZXdseSBpbnRyb2R1Y2VkIG1lZGlhU3RyYXRlZ3kuCisK
KyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vRGVm
YXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZmF1bHRB
dWRpb0Rlc3RpbmF0aW9uTm9kZTo6Y3JlYXRlRGVzdGluYXRpb24pOiBVc2UgTWVkaWFTdHJhdGVn
eTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5Lmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJhdGVneSk6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1T
dHJhdGVnaWVzOjptZWRpYVN0cmF0ZWd5KTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vQXVkaW9CdXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9u
Lmg6CisKIDIwMjAtMDItMjQgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggZm9yIFdpbkNhaXJvIHBvcnQKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQkocmV2aXNpb24gMjU3Mjk3KQorKysgU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAtOTUxLDYgKzk1MSw3IEBAIHNldChXZWJD
b3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lz
dHJ5LmgKICAgICBwbGF0Zm9ybS9NZWRpYVNhbXBsZS5oCiAgICAgcGxhdGZvcm0vTWVkaWFTZWxl
Y3Rpb25PcHRpb24uaAorICAgIHBsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaAogICAgIHBsYXRmb3Jt
L05vdEltcGxlbWVudGVkLmgKICAgICBwbGF0Zm9ybS9PcmllbnRhdGlvbk5vdGlmaWVyLmgKICAg
ICBwbGF0Zm9ybS9QT0RJbnRlcnZhbC5oCkBAIC0xMDIzLDYgKzEwMjQsNyBAQCBzZXQoV2ViQ29y
ZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWlu
Z0Z1bmN0aW9uLmgKIAogICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lci5o
CisgICAgcGxhdGZvcm0vYXVkaW8vQXVkaW9JT0NhbGxiYWNrLmgKICAgICBwbGF0Zm9ybS9hdWRp
by9BdWRpb1Nlc3Npb24uaAogICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU291cmNlUHJvdmlkZXIu
aAogICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaApJbmRleDogU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVs
dEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAkocmV2aXNpb24gMjU3Mjk3KQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw4IEBACiAjaW5jbHVkZSAiQXVkaW9Db250ZXh0Lmgi
CiAjaW5jbHVkZSAiQXVkaW9EZXN0aW5hdGlvbi5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNp
bmNsdWRlICJNZWRpYVN0cmF0ZWd5LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgi
CiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KQEAgLTg0LDggKzg2
LDggQEAgdm9pZCBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OmNyZWF0ZQogewogICAgIGZs
b2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSA9IEF1ZGlvRGVzdGluYXRpb246OmhhcmR3YXJlU2FtcGxl
UmF0ZSgpOwogICAgIExPRyhXZWJBdWRpbywgIj4+Pj4gaGFyZHdhcmVTYW1wbGVSYXRlID0gJWZc
biIsIGhhcmR3YXJlU2FtcGxlUmF0ZSk7Ci0gICAgCi0gICAgbV9kZXN0aW5hdGlvbiA9IEF1ZGlv
RGVzdGluYXRpb246OmNyZWF0ZSgqdGhpcywgbV9pbnB1dERldmljZUlkLCBtX251bWJlck9mSW5w
dXRDaGFubmVscywgY2hhbm5lbENvdW50KCksIGhhcmR3YXJlU2FtcGxlUmF0ZSk7CisKKyAgICBt
X2Rlc3RpbmF0aW9uID0gcGxhdGZvcm1TdHJhdGVnaWVzKCktPm1lZGlhU3RyYXRlZ3koKS5jcmVh
dGVBdWRpb0Rlc3RpbmF0aW9uKCp0aGlzLCBtX2lucHV0RGV2aWNlSWQsIG1fbnVtYmVyT2ZJbnB1
dENoYW5uZWxzLCBjaGFubmVsQ291bnQoKSwgaGFyZHdhcmVTYW1wbGVSYXRlKTsKIH0KIAogdm9p
ZCBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OmVuYWJsZUlucHV0KGNvbnN0IFN0cmluZyYg
aW5wdXREZXZpY2VJZCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjg4
OSw2ICsyODg5LDggQEAKIAkJOUFCMUYzODAxOEUyNDg5QTAwNTM0NzQzIC8qIENTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDlBQjFGMzdFMThFMjQ4OUEwMDUzNDc0MyAvKiBDU1NUb0xlbmd0aENvbnZlcnNpb25E
YXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OUIwMkUwQzgyMzVFQUQyQTAwNDA0NEIyIC8qIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjAyRTBDMzIz
NUU3NkFBMDA0MDQ0QjIgLyogVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjBBQkNBRTIzNkJCNDMx
MDBCNDUwODUgLyogVGFza1NvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOUIwQUJDQUMyMzZCQjQwQTAwQjQ1MDg1IC8qIFRhc2tTb3VyY2UuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5QjEyMjlD
NDIzRkU0QkQyMDA4Q0E3NTEgLyogQXVkaW9EZXN0aW5hdGlvbkNvY29hLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTMxNTE4NjIzNTc3NDVFMDAxMTVF
NkUgLyogQXVkaW9EZXN0aW5hdGlvbkNvY29hLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOUIxMjI5QzcyM0ZFNEQ2QTAwOENBNzUxIC8qIE1lZGlh
U3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDlCMTIyOUM2MjNGRTRENUYwMDhDQTc1MSAvKiBNZWRpYVN0cmF0ZWd5LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIyNERFOEUxNTE5NEI5NTAw
QzU5QzI3IC8qIEhUTUxCRElFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5QjI0REU4QzE1MTk0Qjk1MDBDNTlDMjcgLyogSFRNTEJESUVsZW1l
bnQuaCAqLzsgfTsKIAkJOUIyN0ZDNjAyMzREOUFEQjAwMzk0QTQ2IC8qIFdpbmRvd0V2ZW50TG9v
cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIyN0ZD
NUUyMzREOUFEQTAwMzk0QTQ2IC8qIFdpbmRvd0V2ZW50TG9vcC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMkQ4QTc5MTQ5OTdDQ0YwMEVDRUYz
RSAvKiBVbmRvU3RlcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOUIyRDhBNzgxNDk5N0NDRjAwRUNFRjNFIC8qIFVuZG9TdGVwLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTUwNjgsMTAgKzUwNzAsMTAg
QEAKIAkJRkQzMTYwMzYxMkIwMjY3NjAwQzFBMzU5IC8qIFNjcmlwdFByb2Nlc3Nvck5vZGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE1RkVDMTJC
MDI2NzYwMEMxQTM1OSAvKiBTY3JpcHRQcm9jZXNzb3JOb2RlLmggKi87IH07CiAJCUZEMzE2MDND
MTJCMDI2NzYwMEMxQTM1OSAvKiBSZWFsdGltZUFuYWx5c2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNUZGMjEyQjAyNjc2MDBDMUEzNTkgLyog
UmVhbHRpbWVBbmFseXNlci5oICovOyB9OwogCQlGRDMxNjAzRTEyQjAyNjc2MDBDMUEzNTkgLyog
QW5hbHlzZXJOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGRDMxNUZGNDEyQjAyNjc2MDBDMUEzNTkgLyogQW5hbHlzZXJOb2RlLmggKi87IH07Ci0J
CUZEMzE2MDdBMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0FycmF5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA0NDEyQjAyNkY3MDBDMUEzNTkg
LyogQXVkaW9BcnJheS5oICovOyB9OwotCQlGRDMxNjA3QzEyQjAyNkY3MDBDMUEzNTkgLyogQXVk
aW9CdXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZE
MzE2MDQ2MTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0J1cy5oICovOyB9OwotCQlGRDMxNjA3RTEy
QjAyNkY3MDBDMUEzNTkgLyogQXVkaW9DaGFubmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA0ODEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9D
aGFubmVsLmggKi87IH07Ci0JCUZEMzE2MDdGMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0Rlc3Rp
bmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
RDMxNjA0OTEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9EZXN0aW5hdGlvbi5oICovOyB9OworCQlG
RDMxNjA3QTEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9BcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNDQxMkIwMjZGNzAwQzFBMzU5IC8q
IEF1ZGlvQXJyYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQlGRDMxNjA3QzEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9CdXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDQ2MTJCMDI2RjcwMEMx
QTM1OSAvKiBBdWRpb0J1cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCUZEMzE2MDdFMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0NoYW5uZWwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDQ4MTJC
MDI2RjcwMEMxQTM1OSAvKiBBdWRpb0NoYW5uZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQlGRDMxNjA3RjEyQjAyNkY3MDBDMUEzNTkgLyogQXVk
aW9EZXN0aW5hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRkQzMTYwNDkxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb24uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRDMxNjA4MDEy
QjAyNkY3MDBDMUEzNTkgLyogQXVkaW9EU1BLZXJuZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDRBMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRp
b0RTUEtlcm5lbC5oICovOyB9OwogCQlGRDMxNjA4MjEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9E
U1BLZXJuZWxQcm9jZXNzb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEZEMzE2MDRDMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0RTUEtlcm5lbFByb2Nl
c3Nvci5oICovOyB9OwogCQlGRDMxNjA4MzEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9GaWxlUmVh
ZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMx
NjA0RDEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9GaWxlUmVhZGVyLmggKi87IH07CkBAIC01MTQ5
LDcgKzUxNTEsNyBAQAogCQlGREIxNzAwNjE0QTJCQUIyMDBBMkI1RDkgLyogTXVsdGlDaGFubmVs
UmVzYW1wbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGREIxNzAwNDE0QTJCQUIyMDBBMkI1RDkgLyogTXVsdGlDaGFubmVsUmVzYW1wbGVyLmggKi87
IH07CiAJCUZEQkQ0ODBEMTU5QkM2ODcwMDkzRUI0RiAvKiBKU01lZGlhU3RyZWFtQXVkaW9Tb3Vy
Y2VOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
REJENDgwQjE1OUJDNjg3MDA5M0VCNEYgLyogSlNNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5o
ICovOyB9OwogCQlGREM1NEYwNTEzOTlCMERBMDA4RDkxMTcgLyogQmlxdWFkRmlsdGVyTm9kZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRDNTRGMDIx
Mzk5QjBEQTAwOEQ5MTE3IC8qIEJpcXVhZEZpbHRlck5vZGUuaCAqLzsgfTsKLQkJRkRFMkQ1NUIx
NTlFNjZFQjAwRENDQ0Y4IC8qIEF1ZGlvSU9DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRFMkQ1NUExNTlFNjZFQjAwRENDQ0Y4IC8qIEF1
ZGlvSU9DYWxsYmFjay5oICovOyB9OworCQlGREUyRDU1QjE1OUU2NkVCMDBEQ0NDRjggLyogQXVk
aW9JT0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGREUyRDU1QTE1OUU2NkVCMDBEQ0NDRjggLyogQXVkaW9JT0NhbGxiYWNrLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkRFQTYyNDMxNTIx
MDJFMjAwNDc5REYwIC8qIEpTT3NjaWxsYXRvck5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZERUE2MjQxMTUyMTAyRTIwMDQ3OURGMCAvKiBKU09z
Y2lsbGF0b3JOb2RlLmggKi87IH07CiAJCUZERUE2MjQ3MTUyMTAyRkMwMDQ3OURGMCAvKiBKU1Bl
cmlvZGljV2F2ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRkRFQTYyNDUxNTIxMDJGQzAwNDc5REYwIC8qIEpTUGVyaW9kaWNXYXZlLmggKi87IH07CiAJ
CUZERjA5REM5MTM5OUI2MjIwMDY4OEU1QiAvKiBKU0JpcXVhZEZpbHRlck5vZGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZERjA5REM3MTM5OUI2MjIw
MDY4OEU1QiAvKiBKU0JpcXVhZEZpbHRlck5vZGUuaCAqLzsgfTsKQEAgLTExMjAzLDYgKzExMjA1
LDcgQEAKIAkJOUIwQUJDQTQyMzY3OUFDRjAwQjQ1MDg1IC8qIFdvcmtlckV2ZW50TG9vcC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrZXJFdmVudExvb3AuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwQUJDQUMyMzZCQjQwQTAwQjQ1MDg1IC8qIFRhc2tT
b3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFza1NvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5QjBGRTg3MzFEOUUwMkRGMDA0QThBQ0IgLyogRG9jdW1lbnRPclNoYWRvd1Jv
b3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERvY3VtZW50T3JTaGFkb3dSb290LmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUIxMjI5QzYyM0ZFNEQ1RjAwOENBNzUxIC8q
IE1lZGlhU3RyYXRlZ3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJhdGVneS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5QjEzMjU3QjFGM0QyQUJBMDBEQUFCNjkgLyogRGF0YVRy
YW5zZmVySXRlbUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
QjE5QjY3RTFCOTY0RTUyMDAzNDg3NDUgLyogU2hhZG93Um9vdC5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gU2hhZG93Um9vdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlC
MUFCMDc5MTY0OEM2OUQwMDUxRjNGMiAvKiBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMjU5MzIsNiArMjU5MzUsNyBAQAogCQkJCUNERjJCMDAzMTgxRjA1OUMwMEYy
QjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggKi8sCiAJCQkJQ0Q2NDFFQzcxODFFRDYwMTAwRUU0
QzQxIC8qIE1lZGlhU2FtcGxlLmggKi8sCiAJCQkJQTE3RDI3NUQxRUFDNTc5ODAwQkYwMUU3IC8q
IE1lZGlhU2VsZWN0aW9uT3B0aW9uLmggKi8sCisJCQkJOUIxMjI5QzYyM0ZFNEQ1RjAwOENBNzUx
IC8qIE1lZGlhU3RyYXRlZ3kuaCAqLywKIAkJCQlCQzc3MkM0QzBDNEVCMzA0MDA4MzI4NUYgLyog
TUlNRVR5cGVSZWdpc3RyeS5jcHAgKi8sCiAJCQkJQkM3NzJDNEQwQzRFQjMwNDAwODMyODVGIC8q
IE1JTUVUeXBlUmVnaXN0cnkuaCAqLywKIAkJCQlFMTUxM0Q1MDE2NzdGMDg4MDAxNDlGQ0IgLyog
Tm90SW1wbGVtZW50ZWQuY3BwICovLApAQCAtMjkwNTcsNiArMjkwNjEsNyBAQAogCQkJCUZEMzE2
MDdFMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0NoYW5uZWwuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZEMzE2MDA1MTJCMDI2NzYwMEMxQTM1OSAvKiBBdWRpb0NvbnRleHQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUZEMzE2MDdGMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0Rlc3RpbmF0aW9uLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5QjEyMjlDNDIzRkU0QkQyMDA4Q0E3NTEgLyogQXVkaW9EZXN0aW5h
dGlvbkNvY29hLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjBCRDEyQjAyNzJBMDBDMUEzNTkg
LyogQXVkaW9EZXN0aW5hdGlvbk1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwMDgxMkIw
MjY3NjAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGRDMxNjA4MDEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9EU1BLZXJuZWwuaCBpbiBIZWFkZXJz
ICovLApAQCAtMzE0OTAsNiArMzE0OTUsNyBAQAogCQkJCUNENjQxRUIzMTgxOEY1RUQwMEVFNEM0
MSAvKiBNZWRpYVNvdXJjZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzhCNUE3MTgw
NDc0RjcwMDE2RTY4NSAvKiBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDRERDMUU3QTE4QTk1MkYzMDAyN0E5RDQgLyogTWVkaWFTb3VyY2VQcml2YXRlQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5QjEyMjlDNzIzRkU0RDZBMDA4Q0E3NTEgLyogTWVk
aWFTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MTUxN0QxNEQxQzAwNDIwQUEx
IC8qIE1lZGlhU3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDk0QzE3RDE3MDk2MDA0
MjBBQTEgLyogTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDc4MzIyODUxODAxM0VEODAwOTk5RTBDIC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2Uu
aCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJh
dGVneS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRl
Z3kuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0
ZWd5LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBBdWRpb0Rlc3RpbmF0aW9uOworY2xhc3MgQXVkaW9JT0NhbGxiYWNrOworCitj
bGFzcyBXRUJDT1JFX0VYUE9SVCBNZWRpYVN0cmF0ZWd5IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFs
IHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9u
KAorICAgICAgICBBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQs
IHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRD
aGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkgPSAwOworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwg
fk1lZGlhU3RyYXRlZ3koKSA9IGRlZmF1bHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuaAko
cmV2aXNpb24gMjU3Mjk3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TdHJh
dGVnaWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBCbG9iUmVnaXN0cnk7CiBjbGFzcyBMb2FkZXJTdHJhdGVneTsKK2NsYXNz
IE1lZGlhU3RyYXRlZ3k7CiBjbGFzcyBQYXN0ZWJvYXJkU3RyYXRlZ3k7CiAKIGNsYXNzIFBsYXRm
b3JtU3RyYXRlZ2llcyB7CkBAIC0zOSw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1f
bG9hZGVyU3RyYXRlZ3kgPSBjcmVhdGVMb2FkZXJTdHJhdGVneSgpOwogICAgICAgICByZXR1cm4g
bV9sb2FkZXJTdHJhdGVneTsKICAgICB9Ci0gICAgCisKICAgICBQYXN0ZWJvYXJkU3RyYXRlZ3kq
IHBhc3RlYm9hcmRTdHJhdGVneSgpCiAgICAgewogICAgICAgICBpZiAoIW1fcGFzdGVib2FyZFN0
cmF0ZWd5KQpAQCAtNDcsNiArNDgsMTMgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9wYXN0
ZWJvYXJkU3RyYXRlZ3k7CiAgICAgfQogCisgICAgTWVkaWFTdHJhdGVneSYgbWVkaWFTdHJhdGVn
eSgpCisgICAgeworICAgICAgICBpZiAoIW1fbWVkaWFTdHJhdGVneSkKKyAgICAgICAgICAgIG1f
bWVkaWFTdHJhdGVneSA9IGNyZWF0ZU1lZGlhU3RyYXRlZ3koKTsKKyAgICAgICAgcmV0dXJuICpt
X21lZGlhU3RyYXRlZ3k7CisgICAgfQorCiAgICAgQmxvYlJlZ2lzdHJ5KiBibG9iUmVnaXN0cnko
KQogICAgIHsKICAgICAgICAgaWYgKCFtX2Jsb2JSZWdpc3RyeSkKQEAgLTY0LDEwICs3MiwxMiBA
QCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgTG9hZGVyU3RyYXRlZ3kqIGNyZWF0
ZUxvYWRlclN0cmF0ZWd5KCkgPSAwOwogICAgIHZpcnR1YWwgUGFzdGVib2FyZFN0cmF0ZWd5KiBj
cmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKSA9IDA7CisgICAgdmlydHVhbCBNZWRpYVN0cmF0ZWd5
KiBjcmVhdGVNZWRpYVN0cmF0ZWd5KCkgPSAwOwogICAgIHZpcnR1YWwgQmxvYlJlZ2lzdHJ5KiBj
cmVhdGVCbG9iUmVnaXN0cnkoKSA9IDA7CiAKICAgICBMb2FkZXJTdHJhdGVneSogbV9sb2FkZXJT
dHJhdGVneSB7IH07CiAgICAgUGFzdGVib2FyZFN0cmF0ZWd5KiBtX3Bhc3RlYm9hcmRTdHJhdGVn
eSB7IH07CisgICAgTWVkaWFTdHJhdGVneSogbV9tZWRpYVN0cmF0ZWd5IHsgfTsKICAgICBCbG9i
UmVnaXN0cnkqIG1fYmxvYlJlZ2lzdHJ5IHsgfTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuaAkocmV2aXNpb24gMjU3Mjk3KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuaAkod29ya2luZyBjb3B5KQpAQCAtNjYsMTAg
KzY2LDEwIEBAIHB1YmxpYzoKICAgICAvLyBhbGxvY2F0ZSBpbmRpY2F0ZXMgd2hldGhlciBvciBu
b3QgdG8gaW5pdGlhbGx5IGhhdmUgdGhlIEF1ZGlvQ2hhbm5lbHMgY3JlYXRlZCB3aXRoIG1hbmFn
ZWQgc3RvcmFnZS4KICAgICAvLyBOb3JtYWwgdXNhZ2UgaXMgdG8gcGFzcyB0cnVlIGhlcmUsIGlu
IHdoaWNoIGNhc2UgdGhlIEF1ZGlvQ2hhbm5lbHMgd2lsbCBtZW1vcnktbWFuYWdlIHRoZWlyIG93
biBzdG9yYWdlLgogICAgIC8vIElmIGFsbG9jYXRlIGlzIGZhbHNlIHRoZW4gc2V0Q2hhbm5lbE1l
bW9yeSgpIGhhcyB0byBiZSBjYWxsZWQgbGF0ZXIgb24gZm9yIGVhY2ggY2hhbm5lbCBiZWZvcmUg
dGhlIEF1ZGlvQnVzIGlzIHVzZWFibGUuLi4KLSAgICBzdGF0aWMgUmVmUHRyPEF1ZGlvQnVzPiBj
cmVhdGUodW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IGxlbmd0aCwgYm9vbCBhbGxv
Y2F0ZSA9IHRydWUpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8QXVkaW9CdXM+
IGNyZWF0ZSh1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbGVuZ3RoLCBib29sIGFs
bG9jYXRlID0gdHJ1ZSk7CiAKICAgICAvLyBUZWxscyB0aGUgZ2l2ZW4gY2hhbm5lbCB0byB1c2Ug
YW4gZXh0ZXJuYWxseSBhbGxvY2F0ZWQgYnVmZmVyLgotICAgIHZvaWQgc2V0Q2hhbm5lbE1lbW9y
eSh1bnNpZ25lZCBjaGFubmVsSW5kZXgsIGZsb2F0KiBzdG9yYWdlLCBzaXplX3QgbGVuZ3RoKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENoYW5uZWxNZW1vcnkodW5zaWduZWQgY2hhbm5l
bEluZGV4LCBmbG9hdCogc3RvcmFnZSwgc2l6ZV90IGxlbmd0aCk7CiAKICAgICAvLyBDaGFubmVs
cwogICAgIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMoKSBjb25zdCB7IHJldHVybiBtX2NoYW5u
ZWxzLnNpemUoKTsgfQpAQCAtMTI2LDcgKzEyNiw3IEBAIHB1YmxpYzoKIAogICAgIC8vIENvcGll
cyB0aGUgc2FtcGxlcyBmcm9tIHRoZSBzb3VyY2UgYnVzIHRvIHRoaXMgb25lLgogICAgIC8vIFRo
aXMgaXMganVzdCBhIHNpbXBsZSBwZXItY2hhbm5lbCBjb3B5IGlmIHRoZSBudW1iZXIgb2YgY2hh
bm5lbHMgbWF0Y2gsIG90aGVyd2lzZSBhbiB1cC1taXggb3IgZG93bi1taXggaXMgZG9uZS4KLSAg
ICB2b2lkIGNvcHlGcm9tKGNvbnN0IEF1ZGlvQnVzJiBzb3VyY2VCdXMsIENoYW5uZWxJbnRlcnBy
ZXRhdGlvbiA9IFNwZWFrZXJzKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvcHlGcm9tKGNv
bnN0IEF1ZGlvQnVzJiBzb3VyY2VCdXMsIENoYW5uZWxJbnRlcnByZXRhdGlvbiA9IFNwZWFrZXJz
KTsKIAogICAgIC8vIFN1bXMgdGhlIHNhbXBsZXMgZnJvbSB0aGUgc291cmNlIGJ1cyB0byB0aGlz
IG9uZS4KICAgICAvLyBUaGlzIGlzIGp1c3QgYSBzaW1wbGUgcGVyLWNoYW5uZWwgc3VtbWluZyBp
ZiB0aGUgbnVtYmVyIG9mIGNoYW5uZWxzIG1hdGNoLCBvdGhlcndpc2UgYW4gdXAtbWl4IG9yIGRv
d24tbWl4IGlzIGRvbmUuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRp
b0Rlc3RpbmF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vQXVkaW9EZXN0aW5hdGlvbi5oCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1
LDcgKzQ1LDcgQEAgY2xhc3MgQXVkaW9EZXN0aW5hdGlvbiB7CiBwdWJsaWM6CiAgICAgLy8gUGFz
cyBpbiAobnVtYmVyT2ZJbnB1dENoYW5uZWxzID4gMCkgaWYgbGl2ZS9sb2NhbCBhdWRpbyBpbnB1
dCBpcyBkZXNpcmVkLgogICAgIC8vIFBvcnQtc3BlY2lmaWMgZGV2aWNlIGlkZW50aWZpY2F0aW9u
IGluZm9ybWF0aW9uIGZvciBsaXZlL2xvY2FsIGlucHV0IHN0cmVhbXMgY2FuIGJlIHBhc3NlZCBp
biB0aGUgaW5wdXREZXZpY2VJZC4KLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVz
dGluYXRpb24+IGNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2
aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZP
dXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxi
YWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0
Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJh
dGUpOwogCiAgICAgdmlydHVhbCB+QXVkaW9EZXN0aW5hdGlvbigpID0gZGVmYXVsdDsKIApJbmRl
eDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTE5IEBACisyMDIwLTAyLTI0ICBSeW9zdWtlIE5pd2Eg
IDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIENyZWF0ZSBBdWRpb0Rlc3RpbmF0aW9uIGlu
IHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA4MTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ3JlYXRlIEF1ZGlvRGVzdGluYXRpb24gaW4gdGhlIEdQVSBwcm9jZXNzIGluc3Rl
YWQgb2YgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBmb3IgV2ViQXVkaW8gQVBJIHdoZW4KKyAgICAg
ICAgdGhlIE1lZGlhLWluLUdQVS1wcm9jZXNzIGZlYXR1cmUgaXMgZW5hYmxlZC4KKworICAgICAg
ICBUbyBkbyB0aGlzLCBXZWJNZWRpYVN0cmF0ZWd5LCBhIGNvbmNyZXRlIGltcGxlbWVudGF0aW9u
IG9mIE1lZGlhU3RyYXRlZ3ksIGluIHRoZSBXZWJDb250ZW50IHByb2Nlc3MgZ2V0cworICAgICAg
ICBhIGJvb2xlYW4gZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIEdQVSBwcm9jZXNzIHNob3Vs
ZCBiZSB1c2VkIGZvciBBdWRpb0Rlc3RpbmF0aW9uIG9yIG5vdC4gV2hlbiB0aGUgZmxhZworICAg
ICAgICBpcyBzZXQsIHdlIGNyZWF0ZSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgaW5zdGVh
ZCBvZiBBdWRpb0Rlc3RpbmF0aW9uIGluIFdlYkNvbnRlbnQgcHJvY2Vzcy4KKworICAgICAgICBF
YWNoIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSB0YWxrcyB0byBSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uTWFuYWdlciBpbiB0aGUgR1BVIHByb2Nlc3MgYW5kIGNyZWF0ZXMKKyAgICAgICAgYSBj
b3JyZXNwb25kaW5nIFJlbW90ZUF1ZGlvRGVzdGluYXRpb24gd2hpY2ggaW4gdHVybiBjcmVhdGVz
IFdlYkNvcmUncyBBdWRpb0Rlc3RpbmF0aW9uIGluIHRoZSBHUFUgcHJvY2Vzcy4KKworICAgICAg
ICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uIGlzIGl0c2VsZiBhbiBBdWRpb0lPQ2FsbGJhY2sgZm9y
IEF1ZGlvRGVzdGluYXRpb24gaXQgY3JlYXRlcywgYW5kIGRlbGVnYXRlcworICAgICAgICBpdHMg
Y2FsbGJhY2sgdG8gV2ViQ29udGVudCBwcm9jZXNzJyBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJv
eHkgYXMgbmVlZGVkLgorCisgICAgICAgIEluIHRoaXMgaW5pdGlhbCBwYXRjaCwgd2Ugc2VuZCBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OlJlbmRlckJ1ZmZlciBJUEMgY2FsbCB0byB0aGUg
V2ViQ29udGVudCBwcm9jZXNzCisgICAgICAgIGZvciBlYWNoIHJlbmRlciBjYWxsIHdlIGdldCBm
cm9tIENvcmVBdWRpbyBmb3Igc2ltcGxpY2l0eSB1c2luZyBuZXdseSBpbnRyb2R1Y2VkIFJlbW90
ZUF1ZGlvQnVzRGF0YSwKKyAgICAgICAgd2hpY2ggaG9sZHMgYSBTaGFyZWRNZW1vcnkgZm9yIGVh
Y2ggY2hhbm5lbCBpbiB0aGUgYXVkaW8gYnVzLgorCisgICAgICAgIFdlIHdpbGwgZWxpbWluYXRl
IHRoaXMgSVBDIG92ZXJoZWFkIGluIGEgZm9sbG93IHVwIHBhdGNoIHVzaW5nIENBUmluZ0J1ZmZl
ci4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMubWFrZToKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcik6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6IEFkZGVkIHRoZSBjb2Rl
IHRvIGRpc3BhdGNoIG1lc3NhZ2VzIHRvCisgICAgICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25N
YW5hZ2VyLgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRS
ZWNlaXZlU3luY01lc3NhZ2UpOiBEaXR0by4KKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvRGVzdGluYXRpb24pOiBBZGRlZC4gVGhpcyBjbGFzcyBpcyB0aGUgYmFja2luZyBvYmpl
Y3Qgd2hpY2ggY3JlYXRlcyBXZWJDb3JlJ3MKKyAgICAgICAgQXVkaW9EZXN0aW5hdGlvbiBhbmQg
YWN0dWFsbHkgdGFsa3MgdG8gQ29yZUF1ZGlvIGluIEdQVSBwcm9jZXNzLgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUpOiBBZGRlZC4KKworICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uOjp+UmVtb3RlQXVkaW9EZXN0aW5hdGlvbik6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uOjpzY2hlZHVs
ZUdyYWNlZnVsU2h1dGRvd25JZk5lZWRlZCk6IERlbGF5cyB0aGUgZGVsZXRpb24gb2YgdGhpcyBv
YmplY3QKKyAgICAgICAgdW50aWwgdGhlIGF1ZGlvIHRocmVhZHMgc3RvcHMgcnVubmluZy4KKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6c3RhcnQpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6c3RvcCk6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uOjppc1BsYXlpbmcpOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6UmVtb3RlQXVkaW9EZXN0
aW5hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
OjpyZW5kZXIpOiBTZW5kcyBhIHN5bmMgSVBDIHRvIHRoZSBXZWJDb250ZW50IHByb2Nlc3MnCisg
ICAgICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSB0byBmaWxsIHRoZSBhdWRpbyBidWZm
ZXIuIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIGdldHMgY2FsbGVkIGluIGF1ZGlvIHRocmVhZC4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6aXNQbGF5aW5nRGlkQ2hh
bmdlKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyKTogQWRkZWQuIFRoaXMgY2xhc3MgbWFuYWdlcyBhbGwgUmVtb3RlQXVkaW9EZXN0aW5hdGlv
biBvYmplY3RzIG93bmVkCisgICAgICAgIGJ5IGEgc2luZ2xlIFdlYkNvbnRlbnQgcHJvY2Vzcy4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OlJlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjp+UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OmNy
ZWF0ZUF1ZGlvRGVzdGluYXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9EZXN0aW5hdGlvbk1hbmFnZXI6OmRlbGV0ZUF1ZGlvRGVzdGluYXRpb24pOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OnN0YXJ0QXVkaW9E
ZXN0aW5hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uTWFuYWdlcjo6c3RvcEF1ZGlvRGVzdGluYXRpb24pOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcik6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZVN5
bmNNZXNzYWdlRnJvbVdlYlByb2Nlc3MpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3Mp
OiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVNZWRpYVN0cmF0ZWd5KTogQWRk
ZWQuIFJldHVybnMgbnVsbHB0ciBzaW5jZSBOZXR3b3JraW5nCisgICAgICAgIHByb2Nlc3MgaGFz
IG5vIGJ1c2luZXNzIHJ1bm5pbmcgQXVkaW9EZXN0aW5hdGlvbi4KKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcyk6CisgICAgICAgICogUGxhdGZv
cm1NYWMuY21ha2U6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAg
ICAgICogU2hhcmVkL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllclR5cGUpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIp
OiBBZGRlZC4gVGhlIGlkZW50aWZpZXIgZm9yIGVhY2ggUmVtb3RlQXVkaW9EZXN0aW5hdGlvbgor
ICAgICAgICBhbmQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IChjb3JyZXNwb25kaW5nIG9i
amVjdHMgb2YgZWFjaCBjbGFzcyB1c2UgdGhlIHNhbWUgSUQgdG8gY29tbXVuaWNhdGUpLgorICAg
ICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAg
ICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9j
ZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOiBBZGRlZCBhIGRpc3BhdGNoIG9uIG1f
cmVjZWl2ZXJNYXAuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24uaDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb246Om1fcmVjZWl2ZXJN
YXApOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmFkZE1l
c3NhZ2VSZWNlaXZlcik6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uOjpy
ZW1vdmVNZXNzYWdlUmVjZWl2ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUF1ZGlvQnVzRGF0YS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9C
dXNEYXRhKTogQWRkZWQuIEVuY29kZXMgdGhlIGluZm9ybWF0aW9uIGFib3V0IGVhY2ggcmVuZGVy
IGNhbGwuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvQnVzRGF0YTo6ZW5jb2RlIGNvbnN0
KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvQnVzRGF0YTo6ZGVjb2RlKTog
QWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eSk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHk6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHk6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSk6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6On5SZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHkpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5OjpzdGFydCk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHk6OnN0b3ApOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5OjpyZW5kZXJCdWZmZXIpOiBBZGRlZC4gQ2FsbHMgV2ViQ29y
ZSdzIEF1ZGlvSU9DYWxsYmFjayB0byBmaWxsCisgICAgICAgIHRoZSBhdWRpbyBidWZmZXIgZ2l2
ZW4gYnkgdGhlIEdQVSBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHk6OmRpZENoYW5nZUlzUGxheWluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Lmg6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlRnJv
bUdQVVByb2Nlc3MpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5Ojppc1BsYXlpbmcpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9EZXN0aW5hdGlvblByb3h5OjpzYW1wbGVSYXRlKTogQWRkZWQuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Lm1lc3NhZ2VzLmluOiBB
ZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVt
b3RlLmNwcDogRml4ZWQgdGhlIHVuaWZpZWQgYnVpbGRzLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuaDogRGl0dG8uCisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJNZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKTogQWRkZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVneSk6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJNZWRpYVN0cmF0ZWd5OjpzZXRVc2VHUFVQcm9jZXNzKTogQWRkZWQuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXIuY3BwOiBGaXhlZCB0aGUgdW5pZmllZCBidWlsZHMuCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3kpOiBBZGRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOiBTZXRzIFdlYk1lZGlhU3RyYXRlZ3kn
cyBmbGFnIHRvIHVzZSBHUFUgcHJvY2Vzcy4KKwogMjAyMC0wMi0yNCAgSmlld2VuIFRhbiAgPGpp
ZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJBdXRobl0gSW1wbGVtZW50IFNQSSBm
b3IgdGhlIHBsYXRmb3JtIGF1dGhlbnRpY2F0b3IKSW5kZXg6IFNvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAkod29ya2luZyBjb3B5KQpA
QCAtMTYsNiArMTYsNyBAQCAkKEpBVkFTQ1JJUFRDT1JFX1BSSVZBVEVfSEVBREVSU19ESVIpL3h4
CiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9j
ZXNzLnNiLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIubWVzc2FnZXMuaW4KQEAgLTEwOCw2ICsxMDksNyBAQCAkKFBST0pFQ1RfRElSKS9XZWJQcm9j
ZXNzL0RhdGFiYXNlcy9JbmRlCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4v
V2ViRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nl
c3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4K
KyQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2Vz
LmluCkluZGV4OiBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3QJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QJKHdvcmtpbmcgY29weSkKQEAgLTEyMyw2ICsxMjMsMTAgQEAgJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYgogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUGx1Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm94
eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1BsdWdpblByb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyTWVzc2FnZXMu
Y3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eU1lc3NhZ2Vz
LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2Vy
TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyTWVzc2FnZXNSZXBsaWVz
LmgKSW5kZXg6IFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDI1NzI5NykKKysr
IFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTQz
LDYgKzE0Myw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFBsdWdpblByb2Nlc3NDb25u
ZWN0aW9uTWFuYWdlciBcCiAgICAgUGx1Z2luUHJvY2Vzc1Byb3h5IFwKICAgICBQbHVnaW5Qcm94
eSBcCisgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIgXAorICAgIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eSBcCiAgICAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJNYW5hZ2VyIFwKICAgICBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlciBcCiAg
ICAgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eSBcCkluZGV4OiBTb3VyY2UvV2ViS2l0
L1BsYXRmb3JtTWFjLmNtYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm1N
YWMuY21ha2UJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm1NYWMu
Y21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTE2MCw2ICsxNjAsMTEgQEAgbGlzdChBUFBFTkQgV2Vi
S2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluCiAgICAgR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmlu
CiAKKyAgICBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1l
c3NhZ2VzLmluCisgICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbgorICAgIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eS5tZXNzYWdlcy5pbgorICAgIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXIubWVzc2FnZXMuaW4KKwogICAgIEdQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0Nv
ZGVjc1Byb3h5Lm1lc3NhZ2VzLmluCiAgICAgR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgogICAgIEdQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5tZXNzYWdlcy5p
bgpAQCAtMTcwLDEwICsxNzUsNiBAQCBsaXN0KEFQUEVORCBXZWJLaXRfTUVTU0FHRVNfSU5fRklM
RVMKICAgICBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlci5tZXNzYWdlcy5pbgogICAgIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXIubWVzc2FnZXMuaW4KIAotICAgIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgotICAgIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KLSAgICBHUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCi0gICAgCiAgICAg
TmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdl
ci5tZXNzYWdlcy5pbgogCiAgICAgU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRv
clByb3h5Lm1lc3NhZ2VzLmluCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU291cmNlcy50eHQJKHJldmlzaW9uIDI1NzI5NykKKysr
IFNvdXJjZS9XZWJLaXQvU291cmNlcy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTUzNCwxMSArNTM0
LDEzIEBAIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2kKIFdlYlByb2Nl
c3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVk
aW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuY3BwCitXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHkuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1h
bmFnZXIuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1JTUVUeXBl
Q2FjaGUuY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNv
dXJjZVByb3h5LmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90
ZS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAor
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAKIFdlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFS
ZWNvcmRlclByaXZhdGUuY3BwCiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclBy
b3ZpZGVyLmNwcApJbmRleDogU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAkocmV2aXNpb24gMjU3Mjk3KQor
KysgU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02NDcs
NiArNjQ3LDggQEAgR1BVUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogR1BVUHJvY2Vz
c01lc3NhZ2VSZWNlaXZlci5jcHAKIExpYldlYlJUQ0NvZGVjc1Byb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcAogTGliV2ViUlRDQ29kZWNzTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwCkluZGV4OiBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3NQcm94
eS5oIgogI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCIK
KyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmgiCiAjaW5j
bHVkZSAiUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1lc3NhZ2Vz
LmgiCkBAIC0xMjcsNiArMTI5LDE0IEBAIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
ZGlkUmVjZWkKICAgICBDUkFTSCgpOwogfQogCitSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
ciYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXIoKQoreworICAgIGlmICghbV9yZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcikKKyAgICAg
ICAgbV9yZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlciA9IG1ha2VVbmlxdWU8UmVtb3RlQXVk
aW9EZXN0aW5hdGlvbk1hbmFnZXI+KCp0aGlzKTsKKworICAgIHJldHVybiAqbV9yZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlcjsKK30KKwogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImIEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKCkKIHsK
ICAgICBpZiAoIW1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIpCkBAIC0xOTEsMTMgKzIwMSwx
OSBAQCBMaWJXZWJSVENDb2RlY3NQcm94eSYgR1BVQ29ubmVjdGlvblRvV2ViCiAKIHZvaWQgR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCiB7CisgICAgaWYgKGRlY29kZXIu
bWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
TWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIHJlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyKCkuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vzcyhjb25uZWN0
aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBpZiAoZGVjb2Rlci5t
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAgcmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHkoKS5kaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNvbm5lY3Rp
b24sIGRlY29kZXIpOwogICAgICAgICByZXR1cm47Ci0gICAgfSBlbHNlIGlmIChkZWNvZGVyLm1l
c3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgfQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIHJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
KCkuZGlkUmVjZWl2ZVBsYXllck1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAg
IHJldHVybjsKLSAgICB9IGVsc2UgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09
IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpKSB7CisgICAgfQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBN
ZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSkgewogICAgICAgICByZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcigpLmRpZFJlY2VpdmVNZXNz
YWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjQz
LDYgKzI1OSwxMSBAQCB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpCiAK
IHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVu
aXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogeworICAgIGlmIChkZWNvZGVy
Lm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlv
bk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICByZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlcigpLmRpZFJlY2VpdmVTeW5jTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNv
bm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAg
ICAgICAgcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKS5kaWRSZWNlaXZlU3luY01lc3Nh
Z2VGcm9tV2ViUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogICAg
ICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQ0LDYgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVVByb2Nl
c3M7CiBjbGFzcyBMaWJXZWJSVENDb2RlY3NQcm94eTsKK2NsYXNzIFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25NYW5hZ2VyOwogY2xhc3MgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJN
YW5hZ2VyOwogY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk7CiBjbGFzcyBSZW1v
dGVNZWRpYVJlY29yZGVyTWFuYWdlcjsKQEAgLTc5LDYgKzgwLDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKEdQVVByb2Nlc3MmLCBXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpZmllciwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBQQUw6OlNlc3Np
b25JRCk7CiAKKyAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlciYgcmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbk1hbmFnZXIoKTsKICAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYg
cmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKTsKICNpZiBQTEFURk9STShDT0NPQSkgJiYg
VVNFKExJQldFQlJUQykKICAgICBMaWJXZWJSVENDb2RlY3NQcm94eSYgbGliV2ViUlRDQ29kZWNz
UHJveHkoKTsKQEAgLTEwMyw2ICsxMDUsNyBAQCBwcml2YXRlOgogICAgIFJlZjxJUEM6OkNvbm5l
Y3Rpb24+IG1fY29ubmVjdGlvbjsKICAgICBSZWY8R1BVUHJvY2Vzcz4gbV9ncHVQcm9jZXNzOwog
ICAgIGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIG1fd2ViUHJvY2Vzc0lkZW50aWZp
ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyPiBt
X3JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlcj4gbV9yZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjsKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk+IG1fcmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk7CiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7
CkluZGV4OiBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAJKG5vbmV4aXN0ZW50KQorKysg
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE3NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
ci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvQnVzRGF0YS5oIgorI2luY2x1
ZGUgIlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU2hh
cmVkTWVtb3J5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb0J1cy5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvQXVkaW9EZXN0aW5hdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9JT0NhbGxi
YWNrLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKyNpbmNsdWRlIDx3dGYv
VGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGhyZWFkcy9CaW5hcnlTZW1h
cGhvcmUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVtb3RlQXVkaW9EZXN0aW5hdGlv
bj4sIHB1YmxpYyBXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2sgeworcHVibGljOgorICAgIHVzaW5n
IEF1ZGlvQnVzID0gV2ViQ29yZTo6QXVkaW9CdXM7CisgICAgdXNpbmcgQXVkaW9EZXN0aW5hdGlv
biA9IFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb247CisgICAgdXNpbmcgU2hhcmVkQnVmZmVyID0g
V2ViQ29yZTo6U2hhcmVkQnVmZmVyOworCisgICAgc3RhdGljIFJlZjxSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uPiBjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgUmVt
b3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgaWQsCisgICAgICAgIGNvbnN0IFN0cmluZyYg
aW5wdXREZXZpY2VJZCwgdWludDMyX3QgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1aW50MzJfdCBu
dW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbihjb25uZWN0aW9uLCBp
ZCwgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENo
YW5uZWxzLCBzYW1wbGVSYXRlKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+UmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbigpCisgICAgeworICAgICAgICBSRUxFQVNFX0FTU0VSVCghbV9kZXN0aW5hdGlv
bi0+aXNQbGF5aW5nKCkpOworICAgIH0KKworICAgIHZvaWQgc2NoZWR1bGVHcmFjZWZ1bFNodXRk
b3duSWZOZWVkZWQoKQorICAgIHsKKyAgICAgICAgaWYgKCFpc1BsYXlpbmcoKSkKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgbV9wcm90ZWN0VGhpc0R1cmluZ0dyYWNlZnVsU2h1dGRvd24g
PSB0aGlzOworICAgICAgICBzdG9wKCk7CisgICAgfQorCisgICAgdm9pZCBzdGFydCgpIHsgbV9k
ZXN0aW5hdGlvbi0+c3RhcnQoKTsgfQorICAgIHZvaWQgc3RvcCgpIHsgbV9kZXN0aW5hdGlvbi0+
c3RvcCgpOyB9CisgICAgYm9vbCBpc1BsYXlpbmcoKSB7IHJldHVybiBtX2Rlc3RpbmF0aW9uLT5p
c1BsYXlpbmcoKTsgfQorCitwcml2YXRlOgorICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb24oR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgUmVtb3RlQXVkaW9EZXN0aW5hdGlv
bklkZW50aWZpZXIgaWQsIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdWludDMyX3QgbnVt
YmVyT2ZJbnB1dENoYW5uZWxzLCB1aW50MzJfdCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9h
dCBzYW1wbGVSYXRlKQorICAgICAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQorICAgICAg
ICAsIG1faWQoaWQpCisgICAgICAgICwgbV9kZXN0aW5hdGlvbihBdWRpb0Rlc3RpbmF0aW9uOjpj
cmVhdGUoKnRoaXMsIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVy
T2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSkpCisgICAgeworICAgIH0KKworICAgIHZvaWQg
cmVuZGVyKEF1ZGlvQnVzKiBzb3VyY2VCdXMsIEF1ZGlvQnVzKiBkZXN0aW5hdGlvbkJ1cywgc2l6
ZV90IGZyYW1lc1RvUHJvY2Vzcykgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIGlmIChtX3Byb3Rl
Y3RUaGlzRHVyaW5nR3JhY2VmdWxTaHV0ZG93bikKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKTsKKyAgICAgICAgQmluYXJ5
U2VtYXBob3JlIHJlbmRlclNlbWFwaG9yZTsKKworICAgICAgICBWZWN0b3I8UmVmPFNoYXJlZE1l
bW9yeT4+IGJ1ZmZlcnM7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkZXN0aW5h
dGlvbkJ1cy0+bnVtYmVyT2ZDaGFubmVscygpOyArK2kpIHsKKyAgICAgICAgICAgIGF1dG8gbWVt
b3J5ID0gU2hhcmVkTWVtb3J5OjphbGxvY2F0ZShzaXplb2YoZmxvYXQpICogZnJhbWVzVG9Qcm9j
ZXNzKTsKKyAgICAgICAgICAgIGJ1ZmZlcnMuYXBwZW5kKCptZW1vcnkpOworICAgICAgICB9CisK
KyAgICAgICAgLy8gRklYTUU6IFJlcGxhY2UgdGhpcyBjb2RlIHdpdGggYSByaW5nIGJ1ZmZlci4g
QXQgbGVhc3QgdGhpcyBoYXBwZW5zIGluIGF1ZGlvIHRocmVhZC4KKyAgICAgICAgQVNTRVJUKCFp
c01haW5UaHJlYWQoKSk7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIGZyYW1lc1Rv
UHJvY2VzcywgJmJ1ZmZlcnMsICZyZW5kZXJTZW1hcGhvcmVdIHsKKyAgICAgICAgICAgIFJlbW90
ZUF1ZGlvQnVzRGF0YSBidXNEYXRhIHsgZnJhbWVzVG9Qcm9jZXNzLCBidWZmZXJzLm1hcChbXShh
dXRvJiBtZW1vcnkpIHsgcmV0dXJuIG1lbW9yeS5jb3B5UmVmKCk7IH0pIH07CisgICAgICAgICAg
ICBBU1NFUlQoZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICAgICAgICAgIG1fY29ubmVjdGlvbi5jb25u
ZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHk6OlJlbmRlckJ1ZmZlcihidXNEYXRhKSwgWyZdKCkgeworICAgICAgICAgICAgICAg
IHJlbmRlclNlbWFwaG9yZS5zaWduYWwoKTsKKyAgICAgICAgICAgIH0sIG1faWQudG9VSW50NjQo
KSk7CisgICAgICAgIH0pOworICAgICAgICByZW5kZXJTZW1hcGhvcmUud2FpdCgpOworCisgICAg
ICAgIGF1dG8gYXVkaW9CdXMgPSBBdWRpb0J1czo6Y3JlYXRlKGJ1ZmZlcnMuc2l6ZSgpLCBmcmFt
ZXNUb1Byb2Nlc3MsIGZhbHNlKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJ1
ZmZlcnMuc2l6ZSgpOyArK2kpCisgICAgICAgICAgICBhdWRpb0J1cy0+c2V0Q2hhbm5lbE1lbW9y
eShpLCAoZmxvYXQqKWJ1ZmZlcnNbaV0tPmRhdGEoKSwgZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICAg
ICAgZGVzdGluYXRpb25CdXMtPmNvcHlGcm9tKCphdWRpb0J1cyk7CisgICAgfQorCisgICAgdm9p
ZCBpc1BsYXlpbmdEaWRDaGFuZ2UoKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgaWYgKG1fcHJv
dGVjdFRoaXNEdXJpbmdHcmFjZWZ1bFNodXRkb3duKSB7CisgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVCghbV9kZXN0aW5hdGlvbi0+aXNQbGF5aW5nKCkpOworICAgICAgICAgICAgUkVMRUFTRV9B
U1NFUlQocmVmQ291bnQoKSA9PSAxKTsKKyAgICAgICAgICAgIG1fcHJvdGVjdFRoaXNEdXJpbmdH
cmFjZWZ1bFNodXRkb3duID0gbnVsbHB0cjsgLy8gRGVsZXRlcyAidGhpcyIuCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBpc1BsYXlpbmcgPSBtX2Rlc3RpbmF0aW9uLT5p
c1BsYXlpbmcoKSwgaWQgPSBtX2lkLnRvVUludDY0KCldIHsKKyAgICAgICAgICAgIG1fY29ubmVj
dGlvbi5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5OjpEaWRDaGFuZ2VJc1BsYXlpbmcoaXNQbGF5aW5nKSwgaWQpOworICAgICAgICB9KTsKKyAg
ICB9CisKKyAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2Nvbm5lY3Rpb247CisgICAg
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgbV9pZDsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8QXVkaW9EZXN0aW5hdGlvbj4gbV9kZXN0aW5hdGlvbjsKKyAgICBSZWZQdHI8UmVtb3RlQXVk
aW9EZXN0aW5hdGlvbj4gbV9wcm90ZWN0VGhpc0R1cmluZ0dyYWNlZnVsU2h1dGRvd247Cit9Owor
CitSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXIoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbikKKyAgICA6IG1fZ3B1
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25uZWN0aW9uKQoreworfQorCitSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlcjo6flJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKCkgPSBkZWZh
dWx0OworCit2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpjcmVhdGVBdWRpb0Rl
c3RpbmF0aW9uKGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdWludDMyX3QgbnVtYmVyT2ZJ
bnB1dENoYW5uZWxzLCB1aW50MzJfdCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1w
bGVSYXRlLAorICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVtb3RlQXVkaW9EZXN0aW5hdGlv
bklkZW50aWZpZXIpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gbmV3SUQgPSBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCk7Cisg
ICAgYXV0byBjYWxsYmFjayA9IFJlbW90ZUF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShtX2dwdUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MsIG5ld0lELCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0
Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOworICAgIG1fYXVk
aW9EZXN0aW5hdGlvbnMuYWRkKG5ld0lELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgY29tcGxl
dGlvbkhhbmRsZXIobmV3SUQpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyOjpkZWxldGVBdWRpb0Rlc3RpbmF0aW9uKFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlm
aWVyIGlkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7
CisgICAgYXV0byBkZXN0aW5hdGlvbiA9IG1fYXVkaW9EZXN0aW5hdGlvbnMudGFrZShpZCk7Cisg
ICAgaWYgKGRlc3RpbmF0aW9uKQorICAgICAgICBkZXN0aW5hdGlvbi52YWx1ZSgpLT5zY2hlZHVs
ZUdyYWNlZnVsU2h1dGRvd25JZk5lZWRlZCgpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9
CisKK3ZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OnN0YXJ0QXVkaW9EZXN0aW5h
dGlvbihSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBpZCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBib29sIGlzUGxheWlu
ZyA9IGZhbHNlOworICAgIGlmIChhdXRvKiBpdGVtID0gbV9hdWRpb0Rlc3RpbmF0aW9ucy5nZXQo
aWQpKSB7CisgICAgICAgIGl0ZW0tPnN0YXJ0KCk7CisgICAgICAgIGlzUGxheWluZyA9IGl0ZW0t
PmlzUGxheWluZygpOworICAgIH0KKyAgICBjb21wbGV0aW9uSGFuZGxlcihpc1BsYXlpbmcpOwor
fQorCit2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpzdG9wQXVkaW9EZXN0aW5h
dGlvbihSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBpZCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBib29sIGlzUGxheWlu
ZyA9IGZhbHNlOworICAgIGlmIChhdXRvKiBpdGVtID0gbV9hdWRpb0Rlc3RpbmF0aW9ucy5nZXQo
aWQpKSB7CisgICAgICAgIGl0ZW0tPnN0b3AoKTsKKyAgICAgICAgaXNQbGF5aW5nID0gaXRlbS0+
aXNQbGF5aW5nKCk7CisgICAgfQorICAgIGNvbXBsZXRpb25IYW5kbGVyKGlzUGxheWluZyk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uTWFuYWdlci5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgorI2lu
Y2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2VzczsKK2NsYXNzIFJlbW90ZUF1ZGlvRGVzdGluYXRpb247CisKK2Ns
YXNzIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyIDogcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VS
ZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIpOworcHVibGljOgorICAgIFJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsK
KyAgICB+UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIoKTsKKworICAgIHZvaWQgY3JlYXRl
QXVkaW9EZXN0aW5hdGlvbihjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVpbnQzMl90IG51
bWJlck9mSW5wdXRDaGFubmVscywgdWludDMyX3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxv
YXQgc2FtcGxlUmF0ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uSWRlbnRpZmllcik+JiYpOworICAgIHZvaWQgZGVsZXRlQXVkaW9EZXN0aW5hdGlvbihSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKKyAgICB2b2lkIHN0YXJ0QXVkaW9EZXN0aW5hdGlvbihSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBz
dG9wQXVkaW9EZXN0aW5hdGlvbihSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5j
TWVzc2FnZUZyb21XZWJQcm9jZXNzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgZW5jb2RlcikK
KyAgICB7CisgICAgICAgIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVy
LCBlbmNvZGVyKTsKKyAgICB9CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9j
ZXNzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKSB7
IGRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOyB9CisKK3ByaXZhdGU6Cisg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOworCisgICAgSGFzaE1h
cDxSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciwgUmVmPFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb24+PiBtX2F1ZGlvRGVzdGluYXRpb25zOworICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MmIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmU7CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
ci5tZXNzYWdlcy5pbgkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4JKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwzNyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt
ZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
IyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbk1hbmFnZXIgTm90UmVmQ291bnRlZCB7CisKKyAgICBDcmVhdGVBdWRpb0Rlc3Rp
bmF0aW9uKFN0cmluZyBpbnB1dERldmljZUlkLCB1aW50MzJfdCBudW1iZXJPZklucHV0Q2hhbm5l
bHMsIHVpbnQzMl90IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpIC0+
IChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIGlkKSBTeW5jaHJvbm91
cworCisgICAgRGVsZXRlQXVkaW9EZXN0aW5hdGlvbihXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25JZGVudGlmaWVyIGlkKSAtPiAoKSBBc3luYworCisgICAgU3RhcnRBdWRpb0Rlc3RpbmF0
aW9uKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgaWQpIC0+IChib29s
IGlzUGxheWluZykgU3luY2hyb25vdXMKKyAgICBTdG9wQXVkaW9EZXN0aW5hdGlvbihXZWJLaXQ6
OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIGlkKSAtPiAoYm9vbCBpc1BsYXlpbmcp
IFN5bmNocm9ub3VzCisKK30KKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcAkocmV2aXNpb24gMjU3Mjk3KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQ4LDYgKzQ4LDExIEBAIFBhc3RlYm9hcmRTdHJhdGVneSogTmV0d29ya1Byb2Nlc3NQbGF0
Zm8KICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAorTWVkaWFTdHJhdGVneSogTmV0d29ya1Byb2Nl
c3NQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3koKQoreworICAgIHJldHVy
biBudWxscHRyOworfQorCiBCbG9iUmVnaXN0cnkqIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJh
dGVnaWVzOjpjcmVhdGVCbG9iUmVnaXN0cnkoKQogewogICAgIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1Bs
YXRmb3JtU3RyYXRlZ2llcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkocmV2aXNpb24gMjU3Mjk3
KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3Jt
U3RyYXRlZ2llcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw3IEBAIHByaXZhdGU6CiAg
ICAgLy8gV2ViQ29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzCiAgICAgV2ViQ29yZTo6TG9hZGVyU3Ry
YXRlZ3kqIGNyZWF0ZUxvYWRlclN0cmF0ZWd5KCkgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6UGFz
dGVib2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAg
ICBXZWJDb3JlOjpNZWRpYVN0cmF0ZWd5KiBjcmVhdGVNZWRpYVN0cmF0ZWd5KCkgb3ZlcnJpZGU7
CiAgICAgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSBvdmVycmlk
ZTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQko
cmV2aXNpb24gMjU3Mjk3KQorKysgU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weQkod29ya2luZyBjb3B5KQpAQCAtMjI3LDYgKzIyNyw3IEBAIGRlZiB0eXBlc190aGF0X2Nh
bm5vdF9iZV9mb3J3YXJkX2RlY2xhcmUKICAgICAgICAgJ1dlYktpdDo6TUROU1JlZ2lzdGVySWRl
bnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpNZWRpYVJlY29yZGVySWRlbnRpZmllcicsCisgICAg
ICAgICdXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyJywKICAgICAgICAg
J1dlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0
OjpSVENEZWNvZGVySWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJUQ0VuY29kZXJJZGVu
dGlmaWVyJywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25JZGVudGlmaWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlm
aWVyVHlwZSB7IH07Cit1c2luZyBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciA9IE9i
amVjdElkZW50aWZpZXI8UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXJUeXBlPjsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTcyOTcpCisrKyBT
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0xNDA1LDggKzE0MDUsMTQgQEAKIAkJOUIwMkUwQ0IyMzVFQjk1MzAwNDA0NEIyIC8q
IF9XS1RleHRNYW5pcHVsYXRpb25EZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwMkUwQzkyMzVFQjYyRDAwNDA0NEIyIC8qIF9XS1RleHRN
YW5pcHVsYXRpb25EZWxlZ2F0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTlCMDJFMENDMjM1RUI5NTcwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1
bGF0aW9uSXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOUIwMkUwQ0EyMzVFQjg4NDAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25JdGVtLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIwMkUw
RDcyMzVGQzk0RjAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwMkUwQ0QyMzVFQjk2NzAw
NDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTlCMTIyOUNEMjNGRjI1RjIwMDhDQTc1MSAv
KiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIxMjI5Q0IyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90
ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmggKi87IH07CisJCTlCMTIyOUNFMjNGRjI1RjIwMDhD
QTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjEyMjlDQzIzRkYyNUYyMDA4Q0E3NTEg
LyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwICovOyB9OworCQk5QjEyMjlEMjIz
RkYyQkNDMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMTIyOUQwMjNGRjJB
NUUwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oICovOyB9Owog
CQk5QjU0OTlBRDIzNjJBNkY5MDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3Vy
YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlC
NTQ5OUFDMjM2MkE2RjYwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlv
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlC
NTQ5OUIyMjM2MkE3RUMwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVs
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI1NDk5
QjAyMzYyQTdFQzAwREY4QkE1IC8qIF9XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOUI1QkVD
MjYyNDAwRjRBOTAwNzBDNkVGIC8qIFdlYk1lZGlhU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCNUJFQzI0MjQwMEY0QTkwMDcwQzZFRiAv
KiBXZWJNZWRpYVN0cmF0ZWd5LmggKi87IH07CisJCTlCNUJFQzJBMjQwMTAxNTgwMDcwQzZFRiAv
KiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCNUJFQzI4MjQwMTAxNTgwMDcwQzZFRiAvKiBSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uUHJveHkuaCAqLzsgfTsKKwkJOUI1QkVDMzEyNDAxMDIyMjAwNzBDNkVG
IC8qIFJlbW90ZUF1ZGlvQnVzRGF0YS5oIGluIENvcHlGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5QjVCRUMzMDI0MDEwMjIyMDA3MEM2RUYgLyogUmVtb3RlQXVkaW9C
dXNEYXRhLmggKi87IH07CiAJCTlGQjVGMzk1MTY5RTZBODAwMDJDMjVCRiAvKiBXS0NvbnRleHRQ
cml2YXRlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5RkI1RjM5MzE2OUU2QTgwMDAyQzI1QkYgLyogV0tDb250ZXh0UHJpdmF0ZU1hYy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUExMDJBNzA4MUVD
MEVFRTkwMEQ4MUQ4MiAvKiBjb20ubWFjcm9tZWRpYS5GbGFzaCBQbGF5ZXIgRVNSLnBsdWdpbi5z
YiBpbiBDb3B5IFBsdWctaW4gU2FuZGJveCBQcm9maWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3QTVFMzk0OTFENUJEOEE3MDBCNEI3Q0UgLyogY29tLm1hY3JvbWVkaWEu
Rmxhc2ggUGxheWVyIEVTUi5wbHVnaW4uc2IgKi87IH07CiAJCUExMDQ2RUExMjA3OTI2MzEwMEYw
QzVEOCAvKiBXS1BERlZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEExMDQ2RTlGMjA3OTI2MzEwMEYwQzVEOCAvKiBXS1BERlZpZXcuaCAqLzsgfTsK
QEAgLTIwNjEsNiArMjA2Nyw3IEBACiAJCQkJMkRCOTYwNTMyMzk4ODZDMTAwMTAyNzkxIC8qIGNv
bS5hcHBsZS5XZWJLaXQuR1BVLnNiIGluIENvcHlGaWxlcyAqLywKIAkJCQlBNzhDQ0REQjE5M0FD
OUY4MDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnNiIGluIENvcHlGaWxl
cyAqLywKIAkJCQlBNzhDQ0REQzE5M0FDOUZCMDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5X
ZWJDb250ZW50LnNiIGluIENvcHlGaWxlcyAqLywKKwkJCQk5QjVCRUMzMTI0MDEwMjIyMDA3MEM2
RUYgLyogUmVtb3RlQXVkaW9CdXNEYXRhLmggaW4gQ29weUZpbGVzICovLAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNDM4MywxMCAr
NDM5MCwyMCBAQAogCQk5QjAyRTBDRDIzNUVCOTY3MDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxh
dGlvblRva2VuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAyRTBDRTIzNUVCQjE0MDA0MDQ0QjIgLyog
X1dLVGV4dE1hbmlwdWxhdGlvblRva2VuLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLVGV4
dE1hbmlwdWxhdGlvblRva2VuLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAy
RTBEMDIzNUVCQ0NBMDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0ubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uSXRlbS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOUIxMjI5Q0IyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCMTIyOUNDMjNGRjI1
RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTlCMTIyOUNGMjNGRjI4MTQwMDhDQTc1MSAvKiBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUIx
MjI5RDAyM0ZGMkE1RTAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCNTQ5OUFDMjM2MkE2RjYwMERGOEJBNSAvKiBf
V0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUZXh0
TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5QjU0OTlBRTIzNjJBN0E3MDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3Vy
YXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmln
dXJhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI1NDk5QjAyMzYyQTdF
QzAwREY4QkE1IC8qIF9XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTlCNTQ5OUIxMjM2MkE3RUMwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1
bGF0aW9uRXhjbHVzaW9uUnVsZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS1RleHRNYW5p
cHVsYXRpb25FeGNsdXNpb25SdWxlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
QjVCRUMyNDI0MDBGNEE5MDA3MEM2RUYgLyogV2ViTWVkaWFTdHJhdGVneS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJNZWRpYVN0cmF0ZWd5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlC
NUJFQzI1MjQwMEY0QTkwMDcwQzZFRiAvKiBXZWJNZWRpYVN0cmF0ZWd5LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYk1lZGlhU3RyYXRlZ3kuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5QjVCRUMyODI0MDEwMTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjVCRUMyOTI0MDEwMTU4MDA3MEM2RUYgLyogUmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlC
NUJFQzJFMjQwMTAxOEMwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkubWVz
c2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Lm1lc3NhZ2VzLmluOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjVCRUMzMDI0MDEwMjIyMDA3MEM2RUYgLyog
UmVtb3RlQXVkaW9CdXNEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvQnVzRGF0YS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QkM1OUQ2QzFFRkNDQ0I2MDAxRThEMDkg
LyogQ2FsbGJhY2tJRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWxsYmFj
a0lELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCQzU5RDZEMUVGQ0RDNkQwMDFF
OEQwOSAvKiBPcHRpb25hbENhbGxiYWNrSUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gT3B0aW9uYWxDYWxsYmFja0lELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTlGNTRGODhFMTY0ODhFODcwMDdERjgxQSAvKiBBdXhpbGlhcnlQcm9jZXNzTWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXV4aWxpYXJ5UHJvY2Vzc01hYy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUyNjgsNiArNTI4NSwxMCBAQAogCQkJ
CTA3OTIzMTMyMjM5QjNCMEMwMDk1OThFMiAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCAq
LywKIAkJCQkwN0IxRDA0QjIzRDM4RkNFMDAzOTlBNkUgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlLm1lc3NhZ2VzLmluICovLAogCQkJCTA3OTIzMTRFMjM5RDVGNTMwMDk1OThFMiAvKiBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmggKi8sCisJCQkJOUI1QkVDMzAyNDAxMDIy
MjAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvQnVzRGF0YS5oICovLAorCQkJCTlCNUJFQzI5MjQwMTAx
NTgwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwICovLAorCQkJCTlC
NUJFQzI4MjQwMTAxNTgwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaCAq
LywKKwkJCQk5QjVCRUMyRTI0MDEwMThDMDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCTA3QjkzRkY1MjNBRjBDQjgwMDM2RjhFQSAvKiBS
ZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24uaCAqLywKIAkJCQkwNzkyMzEzMDIzOUIzQjBD
MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcCAqLywKIAkJCQkwNzkyMzEz
NDIzOUIzQjBDMDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmggKi8sCkBAIC01
MjgzLDYgKzUzMDQsOCBAQAogCQkJCTFERkREMEUyMjNGNjEwRjAwMEU5QjQ5MCAvKiBWaWRlb0xh
eWVyUmVtb3RlLmggKi8sCiAJCQkJMDcxQkM1ODMyM0NDMkJENTAwNjgwRDdDIC8qIFZpZGVvVHJh
Y2tQcml2YXRlUmVtb3RlLmNwcCAqLywKIAkJCQkwNzFCQzU4MjIzQ0MyQkQzMDA2ODBEN0MgLyog
VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaCAqLywKKwkJCQk5QjVCRUMyNTI0MDBGNEE5MDA3MEM2
RUYgLyogV2ViTWVkaWFTdHJhdGVneS5jcHAgKi8sCisJCQkJOUI1QkVDMjQyNDAwRjRBOTAwNzBD
NkVGIC8qIFdlYk1lZGlhU3RyYXRlZ3kuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWVkaWE7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNTI5MSw2ICs1MzE0LDkgQEAKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMUQwRUNFQTkyM0ZDODRCQjAwRDE3MkY2
IC8qIGNvY29hICovLAorCQkJCTlCMTIyOUNDMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgKi8sCisJCQkJOUIxMjI5Q0IyM0ZGMjVGMjAwOENBNzUx
IC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmggKi8sCisJCQkJOUIxMjI5Q0YyM0ZG
MjgxNDAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmlu
ICovLAogCQkJCTA3MUJDNTdFMjNDQTVEQjEwMDY4MEQ3QyAvKiBSZW1vdGVBdWRpb1RyYWNrUHJv
eHkuY3BwICovLAogCQkJCTA3MUJDNTdGMjNDQTVEQjEwMDY4MEQ3QyAvKiBSZW1vdGVBdWRpb1Ry
YWNrUHJveHkuaCAqLywKIAkJCQkwNzI1RUZBRDIzOUIwMjQ1MDBBNTM4QTkgLyogUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwICovLApAQCAtNTc1MSw2ICs1Nzc3LDcgQEAKIAkJCQlF
MThDOTJGMzEyREI5RTcxMDBDRjJBRUIgLyogUHJpbnRJbmZvLmNwcCAqLywKIAkJCQlFMUNDMUI4
RTEyRDdFQURGMDA2MjU4MzggLyogUHJpbnRJbmZvLmggKi8sCiAJCQkJNDYzRkQ0ODExRUI5NEVB
RDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oICovLAorCQkJCTlCMTIyOUQw
MjNGRjJBNUUwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oICov
LAogCQkJCUY2QTBDMTNGMTMyODFFNkUwMDcwNDMwRiAvKiBSZXNvdXJjZUNhY2hlc1RvQ2xlYXIu
aCAqLywKIAkJCQk1Q0I3QUZFNjIzQzY4MUIwMDBFNDlDRjMgLyogUmVzb3VyY2VMb2FkSW5mby5o
ICovLAogCQkJCTQxMDQ4MkNCMURERDJGQjUwMEYwMDZEMCAvKiBSVENOZXR3b3JrLmNwcCAqLywK
QEAgLTEwNTI4LDYgKzEwNTU1LDkgQEAKIAkJCQk4MzA0OEFFNjFBQ0E0NURDMDA4MkM4MzIgLyog
UHJvY2Vzc1Rocm90dGxlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFFNjg4NzAxRjZF
MkJBQjAwNzAwNkE2IC8qIFF1YXJhbnRpbmVTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RkQz
MTgyMjJCMzUxNUUwMDhEMEU4QiAvKiBSZWRpcmVjdFNPQXV0aG9yaXphdGlvblNlc3Npb24uaCBp
biBIZWFkZXJzICovLAorCQkJCTlCMTIyOUQyMjNGRjJCQ0MwMDhDQTc1MSAvKiBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUIxMjI5Q0QyM0ZG
MjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5QjVCRUMyQTI0MDEwMTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDQ3QjU2RDE4MTA3MTRFMDAzQTNBRUUg
LyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEREY3MzE1
MThFOTUwNjAwMDRGNUE2NiAvKiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTFBQjE2QUVBMTY0QjNBODgwMDI5MEQ2MiAvKiBSZW1vdGVMYXll
clRyZWVDb250ZXh0LmggaW4gSGVhZGVycyAqLywKQEAgLTEwNzgwLDYgKzEwODEwLDcgQEAKIAkJ
CQlDOThDNDhBNjFCNkZENEMzMDAxNDUxMDMgLyogV2ViTWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDOUMxODMzQzFCNzQwMjZEMDA3MDM2QTcgLyogV2ViTWVk
aWFTZXNzaW9uRm9jdXNNYW5hZ2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDOUNENDM5
ODFCNEIwMDFEMDAyMzlFMzMgLyogV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTlCNUJFQzI2MjQwMEY0QTkwMDcwQzZFRiAvKiBXZWJNZWRpYVN0cmF0ZWd5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyRDNFRjQ0MzE5MTc2NDYzMDAwMzQxODQgLyogV2ViTWVtb3J5
UHJlc3N1cmVIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MDk4NTRFRDEyQkM0RTE4MDAw
QUQwODAgLyogV2ViTWVtb3J5U2FtcGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEzRkZCOTEy
MDE0NTlDNjAwMjU5NkVBIC8qIFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmggaW4gSGVh
ZGVycyAqLywKQEAgLTEyMjI0LDYgKzEyMjU1LDcgQEAKIAkJCQlDMTVDQkIzNzIzRjM3RUNCMDAz
MDBDQzcgLyogUHJlZmVyZW5jZU9ic2VydmVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ1NEMz
MUIyMTJGNERBNjAwNDlDMTc0IC8qIFByb2Nlc3NMYXVuY2hlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlDRDI4NjVFRjIyNTU1NjIwMDA2MDZBQzcgLyogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVy
Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJOUIxMjI5Q0UyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90
ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJENzJBMUZB
MjEyQkY0NkUwMDUxN0EyMCAvKiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGRjI0QTJEMTg3OUU0QkMwMDNBQkYwQyAvKiBSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJE
QzE4RkI0MjE4QTZFOUUwMDI1QTg4RCAvKiBSZW1vdGVMYXllclRyZWVWaWV3cy5tbSBpbiBTb3Vy
Y2VzICovLApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29u
bmVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9H
UFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMyw2ICszMyw4IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNzLmgiCiAjaW5jbHVk
ZSAiTGliV2ViUlRDQ29kZWNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eS5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eU1lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNZXNzYWdlcy5oIgpAQCAtNzcsNiArNzksOSBAQCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyJiBHUFVQcm9jCiAKIHZvaWQgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNv
ZGVyKQogeworICAgIGlmIChtX3JlY2VpdmVyTWFwLmRpc3BhdGNoTWVzc2FnZShjb25uZWN0aW9u
LCBkZWNvZGVyKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJl
Y2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSkgewogICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zdXBw
bGVtZW50PFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcj4oKS0+ZGlkUmVjZWl2ZVBsYXllck1lc3Nh
Z2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgJKHJl
dmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZXNz
YWdlUmVjZWl2ZXJNYXAuaCIKICNpbmNsdWRlICJTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KQEAgLTU2LDYgKzU3LDE2IEBAIHB1YmxpYzoKICAgICBTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyJiBzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCk7CiAj
ZW5kaWYKIAorICAgIHZvaWQgYWRkTWVzc2FnZVJlY2VpdmVyKElQQzo6U3RyaW5nUmVmZXJlbmNl
IG1lc3NhZ2VSZWNlaXZlck5hbWUsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIElQQzo6TWVzc2Fn
ZVJlY2VpdmVyJiByZWNlaXZlcikKKyAgICB7CisgICAgICAgIG1fcmVjZWl2ZXJNYXAuYWRkTWVz
c2FnZVJlY2VpdmVyKG1lc3NhZ2VSZWNlaXZlck5hbWUsIGRlc3RpbmF0aW9uSUQsIHJlY2VpdmVy
KTsKKyAgICB9CisKKyAgICB2b2lkIHJlbW92ZU1lc3NhZ2VSZWNlaXZlcihJUEM6OlN0cmluZ1Jl
ZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklEKQorICAg
IHsKKyAgICAgICAgbV9yZWNlaXZlck1hcC5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIobWVzc2FnZVJl
Y2VpdmVyTmFtZSwgZGVzdGluYXRpb25JRCk7CisgICAgfQorCiBwcml2YXRlOgogICAgIEdQVVBy
b2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CiAKQEAgLTY2LDYg
Kzc3LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIFRoZSBjb25uZWN0aW9uIGZyb20gdGhlIHdlYiBw
cm9jZXNzIHRvIHRoZSBHUFUgcHJvY2Vzcy4KICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nv
bm5lY3Rpb247CisgICAgSVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXAgbV9yZWNlaXZlck1hcDsKIAog
I2lmIEhBVkUoQVVESVRfVE9LRU4pCiAgICAgT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4gbV9hdWRp
dFRva2VuOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVB
dWRpb0J1c0RhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZUF1ZGlvQnVzRGF0YS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9CdXNEYXRhLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUg
IlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
Kworc3RydWN0IFJlbW90ZUF1ZGlvQnVzRGF0YSB7CisgICAgdWludDY0X3QgZnJhbWVzVG9Qcm9j
ZXNzIHsgMCB9OworICAgIFZlY3RvcjxSZWY8U2hhcmVkTWVtb3J5Pj4gY2hhbm5lbEJ1ZmZlcnM7
CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgorICAgIHZvaWQgZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGZyYW1lc1RvUHJv
Y2VzczsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oY2hhbm5lbEJ1
ZmZlcnMuc2l6ZSgpKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjaGFubmVsQnVm
ZmVycy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFu
ZGxlOworICAgICAgICAgICAgY2hhbm5lbEJ1ZmZlcnNbaV0tPmNyZWF0ZUhhbmRsZShoYW5kbGUs
IFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZFdyaXRlKTsKKyAgICAgICAgICAgIGVuY29k
ZXIgPDwgaGFuZGxlOworICAgICAgICB9CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
RGVjb2Rlcj4KKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUmVtb3Rl
QXVkaW9CdXNEYXRhJiByZXN1bHQpCisgICAgeworICAgICAgICB1aW50NjRfdCBmcmFtZXNUb1By
b2Nlc3M7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZnJhbWVzVG9Qcm9jZXNzKSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmVzdWx0LmZyYW1lc1RvUHJvY2VzcyA9
IGZyYW1lc1RvUHJvY2VzczsKKworICAgICAgICB1aW50NjRfdCBzaXplID0gMDsKKyAgICAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShzaXplKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICAgICAg
U2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOworICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShoYW5kbGUpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAg
IGF1dG8gbWVtb3J5ID0gU2hhcmVkTWVtb3J5OjptYXAoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlBy
b3RlY3Rpb246OlJlYWRXcml0ZSk7CisgICAgICAgICAgICBpZiAobWVtb3J5KQorICAgICAgICAg
ICAgICAgIHJlc3VsdC5jaGFubmVsQnVmZmVycy5hcHBlbmQoKm1lbW9yeSk7CisgICAgICAgIH0K
KworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwOSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1
ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlci5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9BdWRpb0J1cy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9EZXN0aW5hdGlvbi5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKwordXNpbmcgQXVkaW9CdXMgPSBXZWJDb3JlOjpBdWRpb0J1czsK
K3VzaW5nIEF1ZGlvRGVzdGluYXRpb24gPSBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uOwordXNp
bmcgQXVkaW9JT0NhbGxiYWNrID0gV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrOworCitzdGQ6OnVu
aXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Ojpj
cmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywKKyAgICBjb25zdCBTdHJpbmcmIGlucHV0
RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVy
T2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKK3sKKyAgICByZXR1cm4gbWFrZVVu
aXF1ZTxSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk+KGNhbGxiYWNrLCBpbnB1dERldmljZUlk
LCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJh
dGUpOworfQorCitSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0
RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVy
T2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKKyAgICA6IG1fY2FsbGJhY2soY2Fs
bGJhY2spCisgICAgLCBtX3NhbXBsZVJhdGUoc2FtcGxlUmF0ZSkKK3sKKyAgICBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uSWRlbnRpZmllciBkZXN0aW5hdGlvbklEOworCisgICAgYXV0byYgY29ubmVj
dGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9u
KCk7CisgICAgY29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZFN5bmMoCisgICAgICAgIE1lc3Nh
Z2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6Q3JlYXRlQXVkaW9EZXN0aW5hdGlv
bihpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hh
bm5lbHMsIHNhbXBsZVJhdGUpLAorICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXI6OkNyZWF0ZUF1ZGlvRGVzdGluYXRpb246OlJlcGx5KGRlc3RpbmF0aW9uSUQp
LCAwKTsKKyAgICBjb25uZWN0aW9uLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGRlc3RpbmF0aW9u
SUQudG9VSW50NjQoKSwgKnRoaXMpOworCisgICAgbV9kZXN0aW5hdGlvbklEID0gZGVzdGluYXRp
b25JRDsKK30KKworUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Ojp+UmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5KCkKK3sKKyAgICBhdXRvJiBjb25uZWN0aW9uID0gIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCk7CisgICAgY29ubmVjdGlvbi5y
ZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2Rlc3RpbmF0aW9uSUQudG9VSW50NjQoKSk7CisK
KyAgICBjb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoCisgICAgICAg
IE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6RGVsZXRlQXVkaW9EZXN0
aW5hdGlvbihtX2Rlc3RpbmF0aW9uSUQpLCBbXSB7CisgICAgICAgIC8vIENhbid0IHJlbW92ZSB0
aGlzIGZyb20gcHJveHlNYXAoKSBoZXJlIGJlY2F1c2UgdGhlIG9iamVjdCB3b3VsZCBoYXZlIGJl
ZW4gYWxyZWFkeSBkZWxldGVkLgorICAgIH0pOworfQorCit2b2lkIFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eTo6c3RhcnQoKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3Vy
ZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKAorICAgICAgICBN
ZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OlN0YXJ0QXVkaW9EZXN0aW5h
dGlvbihtX2Rlc3RpbmF0aW9uSUQpLAorICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXI6OlN0YXJ0QXVkaW9EZXN0aW5hdGlvbjo6UmVwbHkobV9pc1BsYXlpbmcp
LCAwKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0b3AoKQorewor
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCku
Y29ubmVjdGlvbigpLnNlbmRTeW5jKAorICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXI6OlN0b3BBdWRpb0Rlc3RpbmF0aW9uKG1fZGVzdGluYXRpb25JRCksCisg
ICAgICAgIE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6U3RvcEF1ZGlv
RGVzdGluYXRpb246OlJlcGx5KG1faXNQbGF5aW5nKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVk
aW9EZXN0aW5hdGlvblByb3h5OjpyZW5kZXJCdWZmZXIoY29uc3QgV2ViS2l0OjpSZW1vdGVBdWRp
b0J1c0RhdGEmIGF1ZGlvQnVzRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVChhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNz
KTsKKyAgICBBU1NFUlQoYXVkaW9CdXNEYXRhLmNoYW5uZWxCdWZmZXJzLnNpemUoKSk7CisgICAg
YXV0byBhdWRpb0J1cyA9IEF1ZGlvQnVzOjpjcmVhdGUoYXVkaW9CdXNEYXRhLmNoYW5uZWxCdWZm
ZXJzLnNpemUoKSwgYXVkaW9CdXNEYXRhLmZyYW1lc1RvUHJvY2VzcywgZmFsc2UpOworICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBhdWRpb0J1c0RhdGEuY2hhbm5lbEJ1ZmZlcnMuc2l6ZSgp
OyArK2kpCisgICAgICAgIGF1ZGlvQnVzLT5zZXRDaGFubmVsTWVtb3J5KGksIChmbG9hdCopYXVk
aW9CdXNEYXRhLmNoYW5uZWxCdWZmZXJzW2ldLT5kYXRhKCksIGF1ZGlvQnVzRGF0YS5mcmFtZXNU
b1Byb2Nlc3MpOworCisgICAgbV9jYWxsYmFjay5yZW5kZXIoMCwgYXVkaW9CdXMuZ2V0KCksIGF1
ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3MpOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsK
K30KKwordm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OmRpZENoYW5nZUlzUGxheWlu
Zyhib29sIGlzUGxheWluZykKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oCShub25leGlzdGVudCkKKysr
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiQ29ubmVj
dGlvbi5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvQnVzRGF0YS5oIgorI2luY2x1ZGUgIlJlbW90
ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1N1cHBs
ZW1lbnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24uaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0F1ZGlvSU9DYWxsYmFjay5oPgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5j
bHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IDogcHVibGljIFdlYkNvcmU6
OkF1ZGlvRGVzdGluYXRpb24sIHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eSk7CitwdWJsaWM6CisgICAgdXNpbmcgQXVkaW9CdXMgPSBXZWJD
b3JlOjpBdWRpb0J1czsKKyAgICB1c2luZyBBdWRpb0lPQ2FsbGJhY2sgPSBXZWJDb3JlOjpBdWRp
b0lPQ2FsbGJhY2s7CisKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRp
b24+IGNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQs
IHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRD
aGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSk7CisKKyAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNp
Z25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5l
bHMsIGZsb2F0IHNhbXBsZVJhdGUpOworICAgIH5SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHko
KTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2VzcyhJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVz
c2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQorCisgICAgdm9pZCByZW5kZXJCdWZmZXIoY29u
c3QgV2ViS2l0OjpSZW1vdGVBdWRpb0J1c0RhdGEmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOworICAgIHZvaWQgZGlkQ2hhbmdlSXNQbGF5aW5nKGJvb2wgaXNQbGF5aW5nKTsKKworcHJp
dmF0ZToKKyAgICAvLyBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uCisgICAgdm9pZCBzdGFydCgp
IG92ZXJyaWRlOworICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworICAgIGJvb2wgaXNQbGF5aW5n
KCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9pc1BsYXlpbmc7IH0KKyAgICBmbG9hdCBzYW1wbGVSYXRl
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zYW1wbGVSYXRlOyB9CisKKyAgICAvLyBJUEM6
Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICBBdWRpb0lPQ2FsbGJhY2smIG1fY2Fs
bGJhY2s7CisgICAgZmxvYXQgbV9zYW1wbGVSYXRlOworICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25JZGVudGlmaWVyIG1fZGVzdGluYXRpb25JRDsKKyAgICBib29sIG1faXNQbGF5aW5nIHsgZmFs
c2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5
Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Lm1lc3NhZ2VzLmluCShub25leGlzdGVu
dCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzMgQEAK
KyMgQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSBOb3RSZWZD
b3VudGVkIHsKKworICAgIFJlbmRlckJ1ZmZlcihzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVBdWRpb0J1
c0RhdGEgZGF0YSkgLT4gKCkgQXN5bmMKKyAgICBEaWRDaGFuZ2VJc1BsYXlpbmcoYm9vbCBpc1Bs
YXlpbmcpCisKK30KKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHAJKHJl
dmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4
dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNywyMSArMTM3LDIx
IEBAIHZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZVcKIHsKICAgICBBU1NF
UlQoY2xpZW50KCkpOwogICAgIGlmIChhdXRvKiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkKLSAg
ICAgICAgY2xpZW50LT5hZGREYXRhQ3VlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmNyZWF0ZShXVEZNb3ZlKGRhdGFWYWx1ZSkpLCB0eXBl
KTsKKyAgICAgICAgY2xpZW50LT5hZGREYXRhQ3VlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVu
ZCksIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmNyZWF0ZShXVEZNb3ZlKGRh
dGFWYWx1ZSkpLCB0eXBlKTsKIH0KIAogdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjp1cGRh
dGVEYXRhQ3VlKE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWVWYWx1ZSYmIGRhdGFWYWx1ZSkKIHsKICAgICBBU1NFUlQoY2xpZW50KCkp
OwogICAgIGlmIChhdXRvKiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkKLSAgICAgICAgY2xpZW50
LT51cGRhdGVEYXRhQ3VlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFNlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWU6OmNyZWF0ZShXVEZNb3ZlKGRhdGFWYWx1ZSkpKTsKKyAgICAgICAgY2xp
ZW50LT51cGRhdGVEYXRhQ3VlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFdlYkNvcmU6
OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmNyZWF0ZShXVEZNb3ZlKGRhdGFWYWx1ZSkpKTsK
IH0KIAogdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpyZW1vdmVEYXRhQ3VlKE1lZGlhVGlt
ZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1
ZSYmIGRhdGFWYWx1ZSkKIHsKICAgICBBU1NFUlQoY2xpZW50KCkpOwogICAgIGlmIChhdXRvKiBj
bGllbnQgPSB0aGlzLT5jbGllbnQoKSkKLSAgICAgICAgY2xpZW50LT5yZW1vdmVEYXRhQ3VlKFdU
Rk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmNy
ZWF0ZShXVEZNb3ZlKGRhdGFWYWx1ZSkpKTsKKyAgICAgICAgY2xpZW50LT5yZW1vdmVEYXRhQ3Vl
KFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWU6OmNyZWF0ZShXVEZNb3ZlKGRhdGFWYWx1ZSkpKTsKIH0KICNlbmRpZgogCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1v
dGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Rl
eHRUcmFja1ByaXZhdGVSZW1vdGUuaAkocmV2aXNpb24gMjU3Mjk3KQorKysgU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2lu
Y2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJUZXh0VHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0luYmFuZFRleHRUcmFja1ByaXZhdGUuaD4KQEAgLTQ0LDYg
KzQ1LDEwIEBAIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKIGNsYXNzIFRleHRUcmFj
a1ByaXZhdGVSZW1vdGUgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZSkK
IHB1YmxpYzoKKyAgICB1c2luZyBHZW5lcmljQ3VlRGF0YSA9IFdlYkNvcmU6OkdlbmVyaWNDdWVE
YXRhOworICAgIHVzaW5nIElTT1dlYlZUVEN1ZSA9IFdlYkNvcmU6OklTT1dlYlZUVEN1ZTsKKyAg
ICB1c2luZyBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUgPSBXZWJDb3JlOjpTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU7CisKICAgICBzdGF0aWMgUmVmPFRleHRUcmFja1ByaXZh
dGVSZW1vdGU+IGNyZWF0ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGUmIHBsYXllciwgVHJhY2tQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVuZGlmaWVyLCBUZXh0VHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiAgICAgewogICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBUZXh0VHJhY2tQcml2YXRlUmVtb3RlKHBsYXllciwgaWRlbmRpZmllciwgV1RG
TW92ZShjb25maWd1cmF0aW9uKSkpOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwCShub25leGlzdGVudCkK
KysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJNZWRpYVN0cmF0ZWd5LmgiCisKKyNpbmNsdWRlICJH
UFVQcm9jZXNzQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Q
cm94eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9JT0NhbGxiYWNrLmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitXZWJNZWRpYVN0cmF0ZWd5Ojp+V2ViTWVkaWFTdHJhdGVneSgpID0gZGVm
YXVsdDsKKworc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+IFdlYk1l
ZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oV2ViQ29yZTo6QXVkaW9JT0NhbGxi
YWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAorICAgIHVuc2lnbmVk
IG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywg
ZmxvYXQgc2FtcGxlUmF0ZSkKK3sKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgaWYgKG1f
dXNlR1BVUHJvY2VzcykKKyAgICAgICAgcmV0dXJuIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eTo6Y3JlYXRlKGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMs
IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOworI2VuZGlmCisgICAgcmV0dXJu
IFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShjYWxsYmFjaywgaW5wdXREZXZpY2VJ
ZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVS
YXRlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaAkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3Ry
YXRlZ3kuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU3RyYXRlZ3kuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYk1lZGlhU3RyYXRlZ3kgOiBwdWJsaWMgV2ViQ29yZTo6
TWVkaWFTdHJhdGVneSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V2ViTWVkaWFTdHJhdGVneSgp
OworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIHZvaWQgc2V0VXNlR1BVUHJvY2Vzcyhi
b29sIHVzZUdQVVByb2Nlc3MpIHsgbV91c2VHUFVQcm9jZXNzID0gdXNlR1BVUHJvY2VzczsgfQor
I2VuZGlmCisKK3ByaXZhdGU6CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkF1ZGlvRGVz
dGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNr
JiwKKyAgICAgICAgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJP
ZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNh
bXBsZVJhdGUpIG92ZXJyaWRlOworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIGJvb2wg
bV91c2VHUFVQcm9jZXNzIHsgZmFsc2UgfTsKKyNlbmRpZgorCit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9T
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyLmNwcAkocmV2aXNpb24gMjU3Mjk3KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDYgKzI2LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmgiCiAKKyNpbmNsdWRlICJEZWNvZGVyLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+CisKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5B
QkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpJbmRleDogU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5jcHAJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zOSwxNiArMzksMTkgQEAKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1
ZGUgIldlYkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViTG9hZGVyU3RyYXRlZ3ku
aCIKKyNpbmNsdWRlICJXZWJNZWRpYVN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgog
I2luY2x1ZGUgIldlYlBhc3RlYm9hcmRPdmVycmlkZXMuaCIKICNpbmNsdWRlICJXZWJQYXN0ZWJv
YXJkUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9EZXN0aW5h
dGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Rv
Y3VtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xvYWRlclN0cmF0ZWd5Lmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9NZWRpYVN0cmF0ZWd5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3
b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1BhZ2VHcm91cC5oPgpAQCAtNzMsNiArNzYsOCBAQAogbmFtZXNwYWNlIFdlYktp
dCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAorY2xhc3MgUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbjsKKwogdm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxpemUoKQogewogICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM+IHBsYXRmb3JtU3Ry
YXRlZ2llczsKQEAgLTkzLDYgKzk4LDExIEBAIFBhc3RlYm9hcmRTdHJhdGVneSogV2ViUGxhdGZv
cm1TdHJhdGVnaWUKICAgICByZXR1cm4gdGhpczsKIH0KIAorTWVkaWFTdHJhdGVneSogV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVNZWRpYVN0cmF0ZWd5KCkKK3sKKyAgICByZXR1cm4gbmV3
IFdlYk1lZGlhU3RyYXRlZ3k7Cit9CisKIEJsb2JSZWdpc3RyeSogV2ViUGxhdGZvcm1TdHJhdGVn
aWVzOjpjcmVhdGVCbG9iUmVnaXN0cnkoKQogewogICAgIHJldHVybiBuZXcgQmxvYlJlZ2lzdHJ5
UHJveHk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCShyZXZpc2lvbiAyNTcy
OTcpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcgQEAgcHJpdmF0ZToK
ICAgICAvLyBXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXMKICAgICBXZWJDb3JlOjpMb2FkZXJT
dHJhdGVneSogY3JlYXRlTG9hZGVyU3RyYXRlZ3koKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpQ
YXN0ZWJvYXJkU3RyYXRlZ3kqIGNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVneSgpIG92ZXJyaWRlOwor
ICAgIFdlYkNvcmU6Ok1lZGlhU3RyYXRlZ3kqIGNyZWF0ZU1lZGlhU3RyYXRlZ3koKSBvdmVycmlk
ZTsKICAgICBXZWJDb3JlOjpCbG9iUmVnaXN0cnkqIGNyZWF0ZUJsb2JSZWdpc3RyeSgpIG92ZXJy
aWRlOwogCiAgICAgLy8gV2ViQ29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gMjU3Mjk3
KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEwMSw2ICsxMDEsNyBAQAogI2luY2x1ZGUgIldlYkluc3BlY3RvclVJTWVz
c2FnZXMuaCIKICNpbmNsdWRlICJXZWJMb2FkZXJTdHJhdGVneS5oIgogI2luY2x1ZGUgIldlYk1l
ZGlhS2V5U3RvcmFnZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJNZWRpYVN0cmF0ZWd5LmgiCiAj
aW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXIuaCIKICNpbmNsdWRlICJXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgi
CkBAIC0xOTksNiArMjAwLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BpbmdMb2FkZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0
Zm9ybVN0cmF0ZWdpZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRvY3VtZW50Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9Qb2ludGVyQ2FwdHVyZUNvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1ByaW50Q29udGV4dC5oPgpAQCAtMzY4NSw2ICszNjg3LDggQEAgdm9pZCBXZWJQYWdl
Ojp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZQogICAgICAgICBtX2RyYXdpbmdBcmVhLT51cGRh
dGVQcmVmZXJlbmNlcyhzdG9yZSk7CiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgLy8g
RklYTUU6IHVzZUdQVVByb2Nlc3NGb3JNZWRpYSBzaG91bGQgYmUgYSBSdW50aW1lRW5hYmxlZEZl
YXR1cmUgc2luY2UgaXQncyBnbG9iYWwuCisgICAgc3RhdGljX2Nhc3Q8V2ViTWVkaWFTdHJhdGVn
eSY+KHBsYXRmb3JtU3RyYXRlZ2llcygpLT5tZWRpYVN0cmF0ZWd5KCkpLnNldFVzZUdQVVByb2Nl
c3Moc2V0dGluZ3MudXNlR1BVUHJvY2Vzc0Zvck1lZGlhKCkpOwogICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLnN1cHBsZW1lbnQ8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyPigpLT51cGRhdGVQ
cmVmZXJlbmNlcyhzZXR0aW5ncyk7CiAjZW5kaWYKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAyLTI0ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIENyZWF0ZSBBdWRpb0Rlc3Rp
bmF0aW9uIGluIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA4MTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkZWQgV2ViTWVkaWFTdHJhdGVneSB3aGljaCBpcyBhIHdyYXBw
ZXIgYXJvdW5kIEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZS4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbToKKyAgICAgICAgKFdlYk1lZGlhU3RyYXRlZ3kpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFTdHJhdGVn
eSk6CisKIDIwMjAtMDItMjQgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVuYW1lIHRoZSBjbGFzaGluZyBXZWJPdmVybGF5TGF5ZXIgY2xhc3NlcwpJ
bmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHJldmlzaW9uIDI1NzI5NykKKysrIFNv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw3IEBAIHByaXZhdGU6CiAgICAgLy8gV2Vi
Q29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzCiAgICAgV2ViQ29yZTo6TG9hZGVyU3RyYXRlZ3kqIGNy
ZWF0ZUxvYWRlclN0cmF0ZWd5KCkgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6UGFzdGVib2FyZFN0
cmF0ZWd5KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAgICBXZWJDb3Jl
OjpNZWRpYVN0cmF0ZWd5KiBjcmVhdGVNZWRpYVN0cmF0ZWd5KCkgb3ZlcnJpZGU7CiAgICAgV2Vi
Q29yZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSBvdmVycmlkZTsKIAogICAg
IC8vIFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVneQpJbmRleDogU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5tbQkocmV2aXNpb24gMjU3Mjk3KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw5ICsyOCwxMSBAQAogI2ltcG9ydCAiV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgog
I2ltcG9ydCAiV2ViUGx1Z2luUGFja2FnZS5oIgogI2ltcG9ydCAiV2ViUmVzb3VyY2VMb2FkU2No
ZWR1bGVyLmgiCisjaW1wb3J0IDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24uaD4KICNpbXBvcnQg
PFdlYkNvcmUvQmxvYlJlZ2lzdHJ5SW1wbC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db2xvci5oPgog
I2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9NZWRpYVN0cmF0ZWd5
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgogI2ltcG9ydCA8
V2ViQ29yZS9QYXN0ZWJvYXJkSXRlbUluZm8uaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1Q
YXN0ZWJvYXJkLmg+CkBAIC02Miw2ICs2NCwyMSBAQCBQYXN0ZWJvYXJkU3RyYXRlZ3kqIFdlYlBs
YXRmb3JtU3RyYXRlZ2llCiAgICAgcmV0dXJuIHRoaXM7CiB9CiAKK2NsYXNzIFdlYk1lZGlhU3Ry
YXRlZ3kgZmluYWwgOiBwdWJsaWMgTWVkaWFTdHJhdGVneSB7Citwcml2YXRlOgorCisgICAgc3Rk
Ojp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oQXVk
aW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAorICAg
ICAgICB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0
cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpIG92ZXJyaWRlCisgICAgeworICAgICAgICBy
ZXR1cm4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBu
dW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUp
OworICAgIH0KK307CisKK01lZGlhU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3Jl
YXRlTWVkaWFTdHJhdGVneSgpCit7CisgICAgcmV0dXJuIG5ldyBXZWJNZWRpYVN0cmF0ZWd5Owor
fQorCiBjbGFzcyBXZWJCbG9iUmVnaXN0cnkgZmluYWwgOiBwdWJsaWMgQmxvYlJlZ2lzdHJ5IHsK
IHByaXZhdGU6CiAgICAgdm9pZCByZWdpc3RlckZpbGVCbG9iVVJMKGNvbnN0IFVSTCYgdXJsLCBS
ZWY8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmIHJlZmVyZW5jZSwgY29uc3QgU3RyaW5nJiBjb250
ZW50VHlwZSkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckZpbGVCbG9iVVJMKHVybCwg
V1RGTW92ZShyZWZlcmVuY2UpLCBjb250ZW50VHlwZSk7IH0KSW5kZXg6IFNvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAyLTI0ICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIENyZWF0ZSBBdWRpb0Rl
c3RpbmF0aW9uIGluIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4MTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgV2ViTWVkaWFTdHJhdGVneSB3aGljaCBpcyBhIHdy
YXBwZXIgYXJvdW5kIEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZS4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChXZWJNZWRpYVN0
cmF0ZWd5KTogQWRkZWQuCisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1l
ZGlhU3RyYXRlZ3kpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5oOgorCiAyMDIwLTAyLTEzICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNTUxNTgsIDI1NTQwNSBhbmQg
cjI1NTQ4NgpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCShyZXZpc2lvbiAy
NTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9CbG9iUmVnaXN0cnkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Jsb2JSZWdp
c3RyeUltcGwuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9NZWRpYVN0cmF0ZWd5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFn
ZVNlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1BhZ2VHcm91cC5oPgpAQCAtNjAsNiArNjEsMjEgQEAgUGFzdGVib2FyZFN0cmF0ZWd5KiBXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZQogICAgIHJldHVybiBudWxscHRyOwogfQogCitjbGFzcyBXZWJNZWRp
YVN0cmF0ZWd5IGZpbmFsIDogcHVibGljIE1lZGlhU3RyYXRlZ3kgeworcHJpdmF0ZToKKworICAg
IHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9u
KEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwK
KyAgICAgICAgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJP
Zk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKSBvdmVycmlkZQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShjYWxsYmFjaywgaW5wdXREZXZpY2VJ
ZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVS
YXRlKTsKKyAgICB9Cit9OworCitNZWRpYVN0cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6
OmNyZWF0ZU1lZGlhU3RyYXRlZ3koKQoreworICAgIHJldHVybiBuZXcgV2ViTWVkaWFTdHJhdGVn
eTsKK30KKwogY2xhc3MgV2ViQmxvYlJlZ2lzdHJ5IGZpbmFsIDogcHVibGljIEJsb2JSZWdpc3Ry
eSB7CiBwcml2YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmIHVy
bCwgUmVmPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4mJiByZWZlcmVuY2UsIGNvbnN0IFN0cmluZyYg
Y29udGVudFR5cGUpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0ZXJGaWxlQmxvYlVSTCh1
cmwsIFdURk1vdmUocmVmZXJlbmNlKSwgY29udGVudFR5cGUpOyB9CkluZGV4OiBTb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuaAkocmV2aXNpb24gMjU3Mjk3KQorKysgU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM4LDcgKzM4LDggQEAgcHJpdmF0ZToKICAgICBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMo
KTsKIAogICAgIC8vIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcwotICAgIHZpcnR1YWwgV2Vi
Q29yZTo6TG9hZGVyU3RyYXRlZ3kqIGNyZWF0ZUxvYWRlclN0cmF0ZWd5KCk7Ci0gICAgdmlydHVh
bCBXZWJDb3JlOjpQYXN0ZWJvYXJkU3RyYXRlZ3kqIGNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVneSgp
OwotICAgIHZpcnR1YWwgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnko
KTsKKyAgICBXZWJDb3JlOjpMb2FkZXJTdHJhdGVneSogY3JlYXRlTG9hZGVyU3RyYXRlZ3koKSBv
dmVycmlkZTsKKyAgICBXZWJDb3JlOjpQYXN0ZWJvYXJkU3RyYXRlZ3kqIGNyZWF0ZVBhc3RlYm9h
cmRTdHJhdGVneSgpIG92ZXJyaWRlOworICAgIFdlYkNvcmU6Ok1lZGlhU3RyYXRlZ3kqIGNyZWF0
ZU1lZGlhU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpCbG9iUmVnaXN0cnkqIGNy
ZWF0ZUJsb2JSZWdpc3RyeSgpIG92ZXJyaWRlOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391714</attachid>
            <date>2020-02-25 18:37:32 -0800</date>
            <delta_ts>2020-02-25 18:45:42 -0800</delta_ts>
            <desc>GTK+ build fix attempt 2</desc>
            <filename>bug-208179-20200225183731.patch</filename>
            <type>text/plain</type>
            <size>98568</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDIwLTAyLTI0ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIENyZWF0ZSBBdWRpb0Rlc3RpbmF0
aW9uIGluIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA4MTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIGFuIGFic3RyYWN0aW9uIGFyb3VuZCB0aGUgY3JlYXRpb24gb2Yg
QXVkaW9EZXN0aW5hdGlvbiB1c2luZyBuZXdseSBpbnRyb2R1Y2VkIG1lZGlhU3RyYXRlZ3kuCisK
KyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vRGVm
YXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZmF1bHRB
dWRpb0Rlc3RpbmF0aW9uTm9kZTo6Y3JlYXRlRGVzdGluYXRpb24pOiBVc2UgTWVkaWFTdHJhdGVn
eTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5Lmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJhdGVneSk6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1T
dHJhdGVnaWVzOjptZWRpYVN0cmF0ZWd5KTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vQXVkaW9CdXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9u
Lmg6CisKIDIwMjAtMDItMjQgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggZm9yIFdpbkNhaXJvIHBvcnQKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQkocmV2aXNpb24gMjU3Mjk3KQorKysgU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAtOTUxLDYgKzk1MSw3IEBAIHNldChXZWJD
b3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lz
dHJ5LmgKICAgICBwbGF0Zm9ybS9NZWRpYVNhbXBsZS5oCiAgICAgcGxhdGZvcm0vTWVkaWFTZWxl
Y3Rpb25PcHRpb24uaAorICAgIHBsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaAogICAgIHBsYXRmb3Jt
L05vdEltcGxlbWVudGVkLmgKICAgICBwbGF0Zm9ybS9PcmllbnRhdGlvbk5vdGlmaWVyLmgKICAg
ICBwbGF0Zm9ybS9QT0RJbnRlcnZhbC5oCkBAIC0xMDIzLDYgKzEwMjQsNyBAQCBzZXQoV2ViQ29y
ZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWlu
Z0Z1bmN0aW9uLmgKIAogICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lci5o
CisgICAgcGxhdGZvcm0vYXVkaW8vQXVkaW9JT0NhbGxiYWNrLmgKICAgICBwbGF0Zm9ybS9hdWRp
by9BdWRpb1Nlc3Npb24uaAogICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU291cmNlUHJvdmlkZXIu
aAogICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaApJbmRleDogU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVs
dEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAkocmV2aXNpb24gMjU3Mjk3KQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw4IEBACiAjaW5jbHVkZSAiQXVkaW9Db250ZXh0Lmgi
CiAjaW5jbHVkZSAiQXVkaW9EZXN0aW5hdGlvbi5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNp
bmNsdWRlICJNZWRpYVN0cmF0ZWd5LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgi
CiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KQEAgLTg0LDggKzg2
LDggQEAgdm9pZCBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OmNyZWF0ZQogewogICAgIGZs
b2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSA9IEF1ZGlvRGVzdGluYXRpb246OmhhcmR3YXJlU2FtcGxl
UmF0ZSgpOwogICAgIExPRyhXZWJBdWRpbywgIj4+Pj4gaGFyZHdhcmVTYW1wbGVSYXRlID0gJWZc
biIsIGhhcmR3YXJlU2FtcGxlUmF0ZSk7Ci0gICAgCi0gICAgbV9kZXN0aW5hdGlvbiA9IEF1ZGlv
RGVzdGluYXRpb246OmNyZWF0ZSgqdGhpcywgbV9pbnB1dERldmljZUlkLCBtX251bWJlck9mSW5w
dXRDaGFubmVscywgY2hhbm5lbENvdW50KCksIGhhcmR3YXJlU2FtcGxlUmF0ZSk7CisKKyAgICBt
X2Rlc3RpbmF0aW9uID0gcGxhdGZvcm1TdHJhdGVnaWVzKCktPm1lZGlhU3RyYXRlZ3koKS5jcmVh
dGVBdWRpb0Rlc3RpbmF0aW9uKCp0aGlzLCBtX2lucHV0RGV2aWNlSWQsIG1fbnVtYmVyT2ZJbnB1
dENoYW5uZWxzLCBjaGFubmVsQ291bnQoKSwgaGFyZHdhcmVTYW1wbGVSYXRlKTsKIH0KIAogdm9p
ZCBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OmVuYWJsZUlucHV0KGNvbnN0IFN0cmluZyYg
aW5wdXREZXZpY2VJZCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjg4
OSw2ICsyODg5LDggQEAKIAkJOUFCMUYzODAxOEUyNDg5QTAwNTM0NzQzIC8qIENTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDlBQjFGMzdFMThFMjQ4OUEwMDUzNDc0MyAvKiBDU1NUb0xlbmd0aENvbnZlcnNpb25E
YXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OUIwMkUwQzgyMzVFQUQyQTAwNDA0NEIyIC8qIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjAyRTBDMzIz
NUU3NkFBMDA0MDQ0QjIgLyogVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjBBQkNBRTIzNkJCNDMx
MDBCNDUwODUgLyogVGFza1NvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOUIwQUJDQUMyMzZCQjQwQTAwQjQ1MDg1IC8qIFRhc2tTb3VyY2UuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5QjEyMjlD
NDIzRkU0QkQyMDA4Q0E3NTEgLyogQXVkaW9EZXN0aW5hdGlvbkNvY29hLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTMxNTE4NjIzNTc3NDVFMDAxMTVF
NkUgLyogQXVkaW9EZXN0aW5hdGlvbkNvY29hLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOUIxMjI5QzcyM0ZFNEQ2QTAwOENBNzUxIC8qIE1lZGlh
U3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDlCMTIyOUM2MjNGRTRENUYwMDhDQTc1MSAvKiBNZWRpYVN0cmF0ZWd5LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIyNERFOEUxNTE5NEI5NTAw
QzU5QzI3IC8qIEhUTUxCRElFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5QjI0REU4QzE1MTk0Qjk1MDBDNTlDMjcgLyogSFRNTEJESUVsZW1l
bnQuaCAqLzsgfTsKIAkJOUIyN0ZDNjAyMzREOUFEQjAwMzk0QTQ2IC8qIFdpbmRvd0V2ZW50TG9v
cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIyN0ZD
NUUyMzREOUFEQTAwMzk0QTQ2IC8qIFdpbmRvd0V2ZW50TG9vcC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMkQ4QTc5MTQ5OTdDQ0YwMEVDRUYz
RSAvKiBVbmRvU3RlcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOUIyRDhBNzgxNDk5N0NDRjAwRUNFRjNFIC8qIFVuZG9TdGVwLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTUwNjgsMTAgKzUwNzAsMTAg
QEAKIAkJRkQzMTYwMzYxMkIwMjY3NjAwQzFBMzU5IC8qIFNjcmlwdFByb2Nlc3Nvck5vZGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE1RkVDMTJC
MDI2NzYwMEMxQTM1OSAvKiBTY3JpcHRQcm9jZXNzb3JOb2RlLmggKi87IH07CiAJCUZEMzE2MDND
MTJCMDI2NzYwMEMxQTM1OSAvKiBSZWFsdGltZUFuYWx5c2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNUZGMjEyQjAyNjc2MDBDMUEzNTkgLyog
UmVhbHRpbWVBbmFseXNlci5oICovOyB9OwogCQlGRDMxNjAzRTEyQjAyNjc2MDBDMUEzNTkgLyog
QW5hbHlzZXJOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGRDMxNUZGNDEyQjAyNjc2MDBDMUEzNTkgLyogQW5hbHlzZXJOb2RlLmggKi87IH07Ci0J
CUZEMzE2MDdBMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0FycmF5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA0NDEyQjAyNkY3MDBDMUEzNTkg
LyogQXVkaW9BcnJheS5oICovOyB9OwotCQlGRDMxNjA3QzEyQjAyNkY3MDBDMUEzNTkgLyogQXVk
aW9CdXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZE
MzE2MDQ2MTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0J1cy5oICovOyB9OwotCQlGRDMxNjA3RTEy
QjAyNkY3MDBDMUEzNTkgLyogQXVkaW9DaGFubmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA0ODEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9D
aGFubmVsLmggKi87IH07Ci0JCUZEMzE2MDdGMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0Rlc3Rp
bmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
RDMxNjA0OTEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9EZXN0aW5hdGlvbi5oICovOyB9OworCQlG
RDMxNjA3QTEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9BcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNDQxMkIwMjZGNzAwQzFBMzU5IC8q
IEF1ZGlvQXJyYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQlGRDMxNjA3QzEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9CdXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDQ2MTJCMDI2RjcwMEMx
QTM1OSAvKiBBdWRpb0J1cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCUZEMzE2MDdFMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0NoYW5uZWwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDQ4MTJC
MDI2RjcwMEMxQTM1OSAvKiBBdWRpb0NoYW5uZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQlGRDMxNjA3RjEyQjAyNkY3MDBDMUEzNTkgLyogQXVk
aW9EZXN0aW5hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRkQzMTYwNDkxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb24uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRDMxNjA4MDEy
QjAyNkY3MDBDMUEzNTkgLyogQXVkaW9EU1BLZXJuZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDRBMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRp
b0RTUEtlcm5lbC5oICovOyB9OwogCQlGRDMxNjA4MjEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9E
U1BLZXJuZWxQcm9jZXNzb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEZEMzE2MDRDMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0RTUEtlcm5lbFByb2Nl
c3Nvci5oICovOyB9OwogCQlGRDMxNjA4MzEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9GaWxlUmVh
ZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMx
NjA0RDEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9GaWxlUmVhZGVyLmggKi87IH07CkBAIC01MTQ5
LDcgKzUxNTEsNyBAQAogCQlGREIxNzAwNjE0QTJCQUIyMDBBMkI1RDkgLyogTXVsdGlDaGFubmVs
UmVzYW1wbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGREIxNzAwNDE0QTJCQUIyMDBBMkI1RDkgLyogTXVsdGlDaGFubmVsUmVzYW1wbGVyLmggKi87
IH07CiAJCUZEQkQ0ODBEMTU5QkM2ODcwMDkzRUI0RiAvKiBKU01lZGlhU3RyZWFtQXVkaW9Tb3Vy
Y2VOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
REJENDgwQjE1OUJDNjg3MDA5M0VCNEYgLyogSlNNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5o
ICovOyB9OwogCQlGREM1NEYwNTEzOTlCMERBMDA4RDkxMTcgLyogQmlxdWFkRmlsdGVyTm9kZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRDNTRGMDIx
Mzk5QjBEQTAwOEQ5MTE3IC8qIEJpcXVhZEZpbHRlck5vZGUuaCAqLzsgfTsKLQkJRkRFMkQ1NUIx
NTlFNjZFQjAwRENDQ0Y4IC8qIEF1ZGlvSU9DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRFMkQ1NUExNTlFNjZFQjAwRENDQ0Y4IC8qIEF1
ZGlvSU9DYWxsYmFjay5oICovOyB9OworCQlGREUyRDU1QjE1OUU2NkVCMDBEQ0NDRjggLyogQXVk
aW9JT0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGREUyRDU1QTE1OUU2NkVCMDBEQ0NDRjggLyogQXVkaW9JT0NhbGxiYWNrLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkRFQTYyNDMxNTIx
MDJFMjAwNDc5REYwIC8qIEpTT3NjaWxsYXRvck5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZERUE2MjQxMTUyMTAyRTIwMDQ3OURGMCAvKiBKU09z
Y2lsbGF0b3JOb2RlLmggKi87IH07CiAJCUZERUE2MjQ3MTUyMTAyRkMwMDQ3OURGMCAvKiBKU1Bl
cmlvZGljV2F2ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRkRFQTYyNDUxNTIxMDJGQzAwNDc5REYwIC8qIEpTUGVyaW9kaWNXYXZlLmggKi87IH07CiAJ
CUZERjA5REM5MTM5OUI2MjIwMDY4OEU1QiAvKiBKU0JpcXVhZEZpbHRlck5vZGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZERjA5REM3MTM5OUI2MjIw
MDY4OEU1QiAvKiBKU0JpcXVhZEZpbHRlck5vZGUuaCAqLzsgfTsKQEAgLTExMjAzLDYgKzExMjA1
LDcgQEAKIAkJOUIwQUJDQTQyMzY3OUFDRjAwQjQ1MDg1IC8qIFdvcmtlckV2ZW50TG9vcC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrZXJFdmVudExvb3AuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwQUJDQUMyMzZCQjQwQTAwQjQ1MDg1IC8qIFRhc2tT
b3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFza1NvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5QjBGRTg3MzFEOUUwMkRGMDA0QThBQ0IgLyogRG9jdW1lbnRPclNoYWRvd1Jv
b3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERvY3VtZW50T3JTaGFkb3dSb290LmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUIxMjI5QzYyM0ZFNEQ1RjAwOENBNzUxIC8q
IE1lZGlhU3RyYXRlZ3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJhdGVneS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5QjEzMjU3QjFGM0QyQUJBMDBEQUFCNjkgLyogRGF0YVRy
YW5zZmVySXRlbUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
QjE5QjY3RTFCOTY0RTUyMDAzNDg3NDUgLyogU2hhZG93Um9vdC5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gU2hhZG93Um9vdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlC
MUFCMDc5MTY0OEM2OUQwMDUxRjNGMiAvKiBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMjU5MzIsNiArMjU5MzUsNyBAQAogCQkJCUNERjJCMDAzMTgxRjA1OUMwMEYy
QjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggKi8sCiAJCQkJQ0Q2NDFFQzcxODFFRDYwMTAwRUU0
QzQxIC8qIE1lZGlhU2FtcGxlLmggKi8sCiAJCQkJQTE3RDI3NUQxRUFDNTc5ODAwQkYwMUU3IC8q
IE1lZGlhU2VsZWN0aW9uT3B0aW9uLmggKi8sCisJCQkJOUIxMjI5QzYyM0ZFNEQ1RjAwOENBNzUx
IC8qIE1lZGlhU3RyYXRlZ3kuaCAqLywKIAkJCQlCQzc3MkM0QzBDNEVCMzA0MDA4MzI4NUYgLyog
TUlNRVR5cGVSZWdpc3RyeS5jcHAgKi8sCiAJCQkJQkM3NzJDNEQwQzRFQjMwNDAwODMyODVGIC8q
IE1JTUVUeXBlUmVnaXN0cnkuaCAqLywKIAkJCQlFMTUxM0Q1MDE2NzdGMDg4MDAxNDlGQ0IgLyog
Tm90SW1wbGVtZW50ZWQuY3BwICovLApAQCAtMjkwNTcsNiArMjkwNjEsNyBAQAogCQkJCUZEMzE2
MDdFMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0NoYW5uZWwuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZEMzE2MDA1MTJCMDI2NzYwMEMxQTM1OSAvKiBBdWRpb0NvbnRleHQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUZEMzE2MDdGMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0Rlc3RpbmF0aW9uLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5QjEyMjlDNDIzRkU0QkQyMDA4Q0E3NTEgLyogQXVkaW9EZXN0aW5h
dGlvbkNvY29hLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjBCRDEyQjAyNzJBMDBDMUEzNTkg
LyogQXVkaW9EZXN0aW5hdGlvbk1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwMDgxMkIw
MjY3NjAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGRDMxNjA4MDEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9EU1BLZXJuZWwuaCBpbiBIZWFkZXJz
ICovLApAQCAtMzE0OTAsNiArMzE0OTUsNyBAQAogCQkJCUNENjQxRUIzMTgxOEY1RUQwMEVFNEM0
MSAvKiBNZWRpYVNvdXJjZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzhCNUE3MTgw
NDc0RjcwMDE2RTY4NSAvKiBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDRERDMUU3QTE4QTk1MkYzMDAyN0E5RDQgLyogTWVkaWFTb3VyY2VQcml2YXRlQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5QjEyMjlDNzIzRkU0RDZBMDA4Q0E3NTEgLyogTWVk
aWFTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MTUxN0QxNEQxQzAwNDIwQUEx
IC8qIE1lZGlhU3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDk0QzE3RDE3MDk2MDA0
MjBBQTEgLyogTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDc4MzIyODUxODAxM0VEODAwOTk5RTBDIC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2Uu
aCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJh
dGVneS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRl
Z3kuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0
ZWd5LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBBdWRpb0Rlc3RpbmF0aW9uOworY2xhc3MgQXVkaW9JT0NhbGxiYWNrOworCitj
bGFzcyBXRUJDT1JFX0VYUE9SVCBNZWRpYVN0cmF0ZWd5IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFs
IHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9u
KAorICAgICAgICBBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQs
IHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRD
aGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkgPSAwOworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwg
fk1lZGlhU3RyYXRlZ3koKSA9IGRlZmF1bHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuaAko
cmV2aXNpb24gMjU3Mjk3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TdHJh
dGVnaWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBCbG9iUmVnaXN0cnk7CiBjbGFzcyBMb2FkZXJTdHJhdGVneTsKK2NsYXNz
IE1lZGlhU3RyYXRlZ3k7CiBjbGFzcyBQYXN0ZWJvYXJkU3RyYXRlZ3k7CiAKIGNsYXNzIFBsYXRm
b3JtU3RyYXRlZ2llcyB7CkBAIC0zOSw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1f
bG9hZGVyU3RyYXRlZ3kgPSBjcmVhdGVMb2FkZXJTdHJhdGVneSgpOwogICAgICAgICByZXR1cm4g
bV9sb2FkZXJTdHJhdGVneTsKICAgICB9Ci0gICAgCisKICAgICBQYXN0ZWJvYXJkU3RyYXRlZ3kq
IHBhc3RlYm9hcmRTdHJhdGVneSgpCiAgICAgewogICAgICAgICBpZiAoIW1fcGFzdGVib2FyZFN0
cmF0ZWd5KQpAQCAtNDcsNiArNDgsMTMgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9wYXN0
ZWJvYXJkU3RyYXRlZ3k7CiAgICAgfQogCisgICAgTWVkaWFTdHJhdGVneSYgbWVkaWFTdHJhdGVn
eSgpCisgICAgeworICAgICAgICBpZiAoIW1fbWVkaWFTdHJhdGVneSkKKyAgICAgICAgICAgIG1f
bWVkaWFTdHJhdGVneSA9IGNyZWF0ZU1lZGlhU3RyYXRlZ3koKTsKKyAgICAgICAgcmV0dXJuICpt
X21lZGlhU3RyYXRlZ3k7CisgICAgfQorCiAgICAgQmxvYlJlZ2lzdHJ5KiBibG9iUmVnaXN0cnko
KQogICAgIHsKICAgICAgICAgaWYgKCFtX2Jsb2JSZWdpc3RyeSkKQEAgLTY0LDEwICs3MiwxMiBA
QCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgTG9hZGVyU3RyYXRlZ3kqIGNyZWF0
ZUxvYWRlclN0cmF0ZWd5KCkgPSAwOwogICAgIHZpcnR1YWwgUGFzdGVib2FyZFN0cmF0ZWd5KiBj
cmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKSA9IDA7CisgICAgdmlydHVhbCBNZWRpYVN0cmF0ZWd5
KiBjcmVhdGVNZWRpYVN0cmF0ZWd5KCkgPSAwOwogICAgIHZpcnR1YWwgQmxvYlJlZ2lzdHJ5KiBj
cmVhdGVCbG9iUmVnaXN0cnkoKSA9IDA7CiAKICAgICBMb2FkZXJTdHJhdGVneSogbV9sb2FkZXJT
dHJhdGVneSB7IH07CiAgICAgUGFzdGVib2FyZFN0cmF0ZWd5KiBtX3Bhc3RlYm9hcmRTdHJhdGVn
eSB7IH07CisgICAgTWVkaWFTdHJhdGVneSogbV9tZWRpYVN0cmF0ZWd5IHsgfTsKICAgICBCbG9i
UmVnaXN0cnkqIG1fYmxvYlJlZ2lzdHJ5IHsgfTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuaAkocmV2aXNpb24gMjU3Mjk3KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuaAkod29ya2luZyBjb3B5KQpAQCAtNjYsMTAg
KzY2LDEwIEBAIHB1YmxpYzoKICAgICAvLyBhbGxvY2F0ZSBpbmRpY2F0ZXMgd2hldGhlciBvciBu
b3QgdG8gaW5pdGlhbGx5IGhhdmUgdGhlIEF1ZGlvQ2hhbm5lbHMgY3JlYXRlZCB3aXRoIG1hbmFn
ZWQgc3RvcmFnZS4KICAgICAvLyBOb3JtYWwgdXNhZ2UgaXMgdG8gcGFzcyB0cnVlIGhlcmUsIGlu
IHdoaWNoIGNhc2UgdGhlIEF1ZGlvQ2hhbm5lbHMgd2lsbCBtZW1vcnktbWFuYWdlIHRoZWlyIG93
biBzdG9yYWdlLgogICAgIC8vIElmIGFsbG9jYXRlIGlzIGZhbHNlIHRoZW4gc2V0Q2hhbm5lbE1l
bW9yeSgpIGhhcyB0byBiZSBjYWxsZWQgbGF0ZXIgb24gZm9yIGVhY2ggY2hhbm5lbCBiZWZvcmUg
dGhlIEF1ZGlvQnVzIGlzIHVzZWFibGUuLi4KLSAgICBzdGF0aWMgUmVmUHRyPEF1ZGlvQnVzPiBj
cmVhdGUodW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IGxlbmd0aCwgYm9vbCBhbGxv
Y2F0ZSA9IHRydWUpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8QXVkaW9CdXM+
IGNyZWF0ZSh1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbGVuZ3RoLCBib29sIGFs
bG9jYXRlID0gdHJ1ZSk7CiAKICAgICAvLyBUZWxscyB0aGUgZ2l2ZW4gY2hhbm5lbCB0byB1c2Ug
YW4gZXh0ZXJuYWxseSBhbGxvY2F0ZWQgYnVmZmVyLgotICAgIHZvaWQgc2V0Q2hhbm5lbE1lbW9y
eSh1bnNpZ25lZCBjaGFubmVsSW5kZXgsIGZsb2F0KiBzdG9yYWdlLCBzaXplX3QgbGVuZ3RoKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENoYW5uZWxNZW1vcnkodW5zaWduZWQgY2hhbm5l
bEluZGV4LCBmbG9hdCogc3RvcmFnZSwgc2l6ZV90IGxlbmd0aCk7CiAKICAgICAvLyBDaGFubmVs
cwogICAgIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMoKSBjb25zdCB7IHJldHVybiBtX2NoYW5u
ZWxzLnNpemUoKTsgfQpAQCAtMTI2LDcgKzEyNiw3IEBAIHB1YmxpYzoKIAogICAgIC8vIENvcGll
cyB0aGUgc2FtcGxlcyBmcm9tIHRoZSBzb3VyY2UgYnVzIHRvIHRoaXMgb25lLgogICAgIC8vIFRo
aXMgaXMganVzdCBhIHNpbXBsZSBwZXItY2hhbm5lbCBjb3B5IGlmIHRoZSBudW1iZXIgb2YgY2hh
bm5lbHMgbWF0Y2gsIG90aGVyd2lzZSBhbiB1cC1taXggb3IgZG93bi1taXggaXMgZG9uZS4KLSAg
ICB2b2lkIGNvcHlGcm9tKGNvbnN0IEF1ZGlvQnVzJiBzb3VyY2VCdXMsIENoYW5uZWxJbnRlcnBy
ZXRhdGlvbiA9IFNwZWFrZXJzKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvcHlGcm9tKGNv
bnN0IEF1ZGlvQnVzJiBzb3VyY2VCdXMsIENoYW5uZWxJbnRlcnByZXRhdGlvbiA9IFNwZWFrZXJz
KTsKIAogICAgIC8vIFN1bXMgdGhlIHNhbXBsZXMgZnJvbSB0aGUgc291cmNlIGJ1cyB0byB0aGlz
IG9uZS4KICAgICAvLyBUaGlzIGlzIGp1c3QgYSBzaW1wbGUgcGVyLWNoYW5uZWwgc3VtbWluZyBp
ZiB0aGUgbnVtYmVyIG9mIGNoYW5uZWxzIG1hdGNoLCBvdGhlcndpc2UgYW4gdXAtbWl4IG9yIGRv
d24tbWl4IGlzIGRvbmUuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRp
b0Rlc3RpbmF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vQXVkaW9EZXN0aW5hdGlvbi5oCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1
LDcgKzQ1LDcgQEAgY2xhc3MgQXVkaW9EZXN0aW5hdGlvbiB7CiBwdWJsaWM6CiAgICAgLy8gUGFz
cyBpbiAobnVtYmVyT2ZJbnB1dENoYW5uZWxzID4gMCkgaWYgbGl2ZS9sb2NhbCBhdWRpbyBpbnB1
dCBpcyBkZXNpcmVkLgogICAgIC8vIFBvcnQtc3BlY2lmaWMgZGV2aWNlIGlkZW50aWZpY2F0aW9u
IGluZm9ybWF0aW9uIGZvciBsaXZlL2xvY2FsIGlucHV0IHN0cmVhbXMgY2FuIGJlIHBhc3NlZCBp
biB0aGUgaW5wdXREZXZpY2VJZC4KLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVz
dGluYXRpb24+IGNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2
aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZP
dXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxi
YWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0
Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJh
dGUpOwogCiAgICAgdmlydHVhbCB+QXVkaW9EZXN0aW5hdGlvbigpID0gZGVmYXVsdDsKIApJbmRl
eDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTE5IEBACisyMDIwLTAyLTI0ICBSeW9zdWtlIE5pd2Eg
IDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIENyZWF0ZSBBdWRpb0Rlc3RpbmF0aW9uIGlu
IHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA4MTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ3JlYXRlIEF1ZGlvRGVzdGluYXRpb24gaW4gdGhlIEdQVSBwcm9jZXNzIGluc3Rl
YWQgb2YgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBmb3IgV2ViQXVkaW8gQVBJIHdoZW4KKyAgICAg
ICAgdGhlIE1lZGlhLWluLUdQVS1wcm9jZXNzIGZlYXR1cmUgaXMgZW5hYmxlZC4KKworICAgICAg
ICBUbyBkbyB0aGlzLCBXZWJNZWRpYVN0cmF0ZWd5LCBhIGNvbmNyZXRlIGltcGxlbWVudGF0aW9u
IG9mIE1lZGlhU3RyYXRlZ3ksIGluIHRoZSBXZWJDb250ZW50IHByb2Nlc3MgZ2V0cworICAgICAg
ICBhIGJvb2xlYW4gZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIEdQVSBwcm9jZXNzIHNob3Vs
ZCBiZSB1c2VkIGZvciBBdWRpb0Rlc3RpbmF0aW9uIG9yIG5vdC4gV2hlbiB0aGUgZmxhZworICAg
ICAgICBpcyBzZXQsIHdlIGNyZWF0ZSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgaW5zdGVh
ZCBvZiBBdWRpb0Rlc3RpbmF0aW9uIGluIFdlYkNvbnRlbnQgcHJvY2Vzcy4KKworICAgICAgICBF
YWNoIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSB0YWxrcyB0byBSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uTWFuYWdlciBpbiB0aGUgR1BVIHByb2Nlc3MgYW5kIGNyZWF0ZXMKKyAgICAgICAgYSBj
b3JyZXNwb25kaW5nIFJlbW90ZUF1ZGlvRGVzdGluYXRpb24gd2hpY2ggaW4gdHVybiBjcmVhdGVz
IFdlYkNvcmUncyBBdWRpb0Rlc3RpbmF0aW9uIGluIHRoZSBHUFUgcHJvY2Vzcy4KKworICAgICAg
ICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uIGlzIGl0c2VsZiBhbiBBdWRpb0lPQ2FsbGJhY2sgZm9y
IEF1ZGlvRGVzdGluYXRpb24gaXQgY3JlYXRlcywgYW5kIGRlbGVnYXRlcworICAgICAgICBpdHMg
Y2FsbGJhY2sgdG8gV2ViQ29udGVudCBwcm9jZXNzJyBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJv
eHkgYXMgbmVlZGVkLgorCisgICAgICAgIEluIHRoaXMgaW5pdGlhbCBwYXRjaCwgd2Ugc2VuZCBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OlJlbmRlckJ1ZmZlciBJUEMgY2FsbCB0byB0aGUg
V2ViQ29udGVudCBwcm9jZXNzCisgICAgICAgIGZvciBlYWNoIHJlbmRlciBjYWxsIHdlIGdldCBm
cm9tIENvcmVBdWRpbyBmb3Igc2ltcGxpY2l0eSB1c2luZyBuZXdseSBpbnRyb2R1Y2VkIFJlbW90
ZUF1ZGlvQnVzRGF0YSwKKyAgICAgICAgd2hpY2ggaG9sZHMgYSBTaGFyZWRNZW1vcnkgZm9yIGVh
Y2ggY2hhbm5lbCBpbiB0aGUgYXVkaW8gYnVzLgorCisgICAgICAgIFdlIHdpbGwgZWxpbWluYXRl
IHRoaXMgSVBDIG92ZXJoZWFkIGluIGEgZm9sbG93IHVwIHBhdGNoIHVzaW5nIENBUmluZ0J1ZmZl
ci4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMubWFrZToKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcik6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6IEFkZGVkIHRoZSBjb2Rl
IHRvIGRpc3BhdGNoIG1lc3NhZ2VzIHRvCisgICAgICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25N
YW5hZ2VyLgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRS
ZWNlaXZlU3luY01lc3NhZ2UpOiBEaXR0by4KKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvRGVzdGluYXRpb24pOiBBZGRlZC4gVGhpcyBjbGFzcyBpcyB0aGUgYmFja2luZyBvYmpl
Y3Qgd2hpY2ggY3JlYXRlcyBXZWJDb3JlJ3MKKyAgICAgICAgQXVkaW9EZXN0aW5hdGlvbiBhbmQg
YWN0dWFsbHkgdGFsa3MgdG8gQ29yZUF1ZGlvIGluIEdQVSBwcm9jZXNzLgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUpOiBBZGRlZC4KKworICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uOjp+UmVtb3RlQXVkaW9EZXN0aW5hdGlvbik6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uOjpzY2hlZHVs
ZUdyYWNlZnVsU2h1dGRvd25JZk5lZWRlZCk6IERlbGF5cyB0aGUgZGVsZXRpb24gb2YgdGhpcyBv
YmplY3QKKyAgICAgICAgdW50aWwgdGhlIGF1ZGlvIHRocmVhZHMgc3RvcHMgcnVubmluZy4KKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6c3RhcnQpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6c3RvcCk6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uOjppc1BsYXlpbmcpOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6UmVtb3RlQXVkaW9EZXN0
aW5hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
OjpyZW5kZXIpOiBTZW5kcyBhIHN5bmMgSVBDIHRvIHRoZSBXZWJDb250ZW50IHByb2Nlc3MnCisg
ICAgICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSB0byBmaWxsIHRoZSBhdWRpbyBidWZm
ZXIuIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIGdldHMgY2FsbGVkIGluIGF1ZGlvIHRocmVhZC4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6aXNQbGF5aW5nRGlkQ2hh
bmdlKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyKTogQWRkZWQuIFRoaXMgY2xhc3MgbWFuYWdlcyBhbGwgUmVtb3RlQXVkaW9EZXN0aW5hdGlv
biBvYmplY3RzIG93bmVkCisgICAgICAgIGJ5IGEgc2luZ2xlIFdlYkNvbnRlbnQgcHJvY2Vzcy4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OlJlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjp+UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OmNy
ZWF0ZUF1ZGlvRGVzdGluYXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9EZXN0aW5hdGlvbk1hbmFnZXI6OmRlbGV0ZUF1ZGlvRGVzdGluYXRpb24pOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OnN0YXJ0QXVkaW9E
ZXN0aW5hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uTWFuYWdlcjo6c3RvcEF1ZGlvRGVzdGluYXRpb24pOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcik6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZVN5
bmNNZXNzYWdlRnJvbVdlYlByb2Nlc3MpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3Mp
OiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVNZWRpYVN0cmF0ZWd5KTogQWRk
ZWQuIFJldHVybnMgbnVsbHB0ciBzaW5jZSBOZXR3b3JraW5nCisgICAgICAgIHByb2Nlc3MgaGFz
IG5vIGJ1c2luZXNzIHJ1bm5pbmcgQXVkaW9EZXN0aW5hdGlvbi4KKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcyk6CisgICAgICAgICogUGxhdGZv
cm1NYWMuY21ha2U6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAg
ICAgICogU2hhcmVkL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllclR5cGUpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIp
OiBBZGRlZC4gVGhlIGlkZW50aWZpZXIgZm9yIGVhY2ggUmVtb3RlQXVkaW9EZXN0aW5hdGlvbgor
ICAgICAgICBhbmQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IChjb3JyZXNwb25kaW5nIG9i
amVjdHMgb2YgZWFjaCBjbGFzcyB1c2UgdGhlIHNhbWUgSUQgdG8gY29tbXVuaWNhdGUpLgorICAg
ICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAg
ICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9j
ZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOiBBZGRlZCBhIGRpc3BhdGNoIG9uIG1f
cmVjZWl2ZXJNYXAuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24uaDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb246Om1fcmVjZWl2ZXJN
YXApOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmFkZE1l
c3NhZ2VSZWNlaXZlcik6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uOjpy
ZW1vdmVNZXNzYWdlUmVjZWl2ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUF1ZGlvQnVzRGF0YS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9C
dXNEYXRhKTogQWRkZWQuIEVuY29kZXMgdGhlIGluZm9ybWF0aW9uIGFib3V0IGVhY2ggcmVuZGVy
IGNhbGwuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvQnVzRGF0YTo6ZW5jb2RlIGNvbnN0
KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvQnVzRGF0YTo6ZGVjb2RlKTog
QWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eSk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHk6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHk6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSk6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6On5SZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHkpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5OjpzdGFydCk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHk6OnN0b3ApOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5OjpyZW5kZXJCdWZmZXIpOiBBZGRlZC4gQ2FsbHMgV2ViQ29y
ZSdzIEF1ZGlvSU9DYWxsYmFjayB0byBmaWxsCisgICAgICAgIHRoZSBhdWRpbyBidWZmZXIgZ2l2
ZW4gYnkgdGhlIEdQVSBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHk6OmRpZENoYW5nZUlzUGxheWluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Lmg6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlRnJv
bUdQVVByb2Nlc3MpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5Ojppc1BsYXlpbmcpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9EZXN0aW5hdGlvblByb3h5OjpzYW1wbGVSYXRlKTogQWRkZWQuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Lm1lc3NhZ2VzLmluOiBB
ZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVt
b3RlLmNwcDogRml4ZWQgdGhlIHVuaWZpZWQgYnVpbGRzLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuaDogRGl0dG8uCisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJNZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKTogQWRkZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVneSk6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJNZWRpYVN0cmF0ZWd5OjpzZXRVc2VHUFVQcm9jZXNzKTogQWRkZWQuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXIuY3BwOiBGaXhlZCB0aGUgdW5pZmllZCBidWlsZHMuCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3kpOiBBZGRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOiBTZXRzIFdlYk1lZGlhU3RyYXRlZ3kn
cyBmbGFnIHRvIHVzZSBHUFUgcHJvY2Vzcy4KKwogMjAyMC0wMi0yNCAgSmlld2VuIFRhbiAgPGpp
ZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJBdXRobl0gSW1wbGVtZW50IFNQSSBm
b3IgdGhlIHBsYXRmb3JtIGF1dGhlbnRpY2F0b3IKSW5kZXg6IFNvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAkod29ya2luZyBjb3B5KQpA
QCAtMTYsNiArMTYsNyBAQCAkKEpBVkFTQ1JJUFRDT1JFX1BSSVZBVEVfSEVBREVSU19ESVIpL3h4
CiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9j
ZXNzLnNiLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIubWVzc2FnZXMuaW4KQEAgLTEwOCw2ICsxMDksNyBAQCAkKFBST0pFQ1RfRElSKS9XZWJQcm9j
ZXNzL0RhdGFiYXNlcy9JbmRlCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4v
V2ViRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nl
c3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4K
KyQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2Vz
LmluCkluZGV4OiBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3QJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QJKHdvcmtpbmcgY29weSkKQEAgLTEyMyw2ICsxMjMsMTAgQEAgJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYgogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUGx1Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm94
eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1BsdWdpblByb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyTWVzc2FnZXMu
Y3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eU1lc3NhZ2Vz
LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2Vy
TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyTWVzc2FnZXNSZXBsaWVz
LmgKSW5kZXg6IFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDI1NzI5NykKKysr
IFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTQz
LDYgKzE0Myw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFBsdWdpblByb2Nlc3NDb25u
ZWN0aW9uTWFuYWdlciBcCiAgICAgUGx1Z2luUHJvY2Vzc1Byb3h5IFwKICAgICBQbHVnaW5Qcm94
eSBcCisgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIgXAorICAgIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eSBcCiAgICAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJNYW5hZ2VyIFwKICAgICBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlciBcCiAg
ICAgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eSBcCkluZGV4OiBTb3VyY2UvV2ViS2l0
L1BsYXRmb3JtTWFjLmNtYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm1N
YWMuY21ha2UJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm1NYWMu
Y21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTE2MCw2ICsxNjAsMTEgQEAgbGlzdChBUFBFTkQgV2Vi
S2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluCiAgICAgR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmlu
CiAKKyAgICBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1l
c3NhZ2VzLmluCisgICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbgorICAgIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eS5tZXNzYWdlcy5pbgorICAgIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXIubWVzc2FnZXMuaW4KKwogICAgIEdQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0Nv
ZGVjc1Byb3h5Lm1lc3NhZ2VzLmluCiAgICAgR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgogICAgIEdQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5tZXNzYWdlcy5p
bgpAQCAtMTcwLDEwICsxNzUsNiBAQCBsaXN0KEFQUEVORCBXZWJLaXRfTUVTU0FHRVNfSU5fRklM
RVMKICAgICBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlci5tZXNzYWdlcy5pbgogICAgIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXIubWVzc2FnZXMuaW4KIAotICAgIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgotICAgIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KLSAgICBHUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCi0gICAgCiAgICAg
TmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdl
ci5tZXNzYWdlcy5pbgogCiAgICAgU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRv
clByb3h5Lm1lc3NhZ2VzLmluCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU291cmNlcy50eHQJKHJldmlzaW9uIDI1NzI5NykKKysr
IFNvdXJjZS9XZWJLaXQvU291cmNlcy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTUzNCwxMSArNTM0
LDEzIEBAIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2kKIFdlYlByb2Nl
c3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVk
aW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuY3BwCitXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHkuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1h
bmFnZXIuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1JTUVUeXBl
Q2FjaGUuY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNv
dXJjZVByb3h5LmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90
ZS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAor
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAKIFdlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFS
ZWNvcmRlclByaXZhdGUuY3BwCiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclBy
b3ZpZGVyLmNwcApJbmRleDogU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAkocmV2aXNpb24gMjU3Mjk3KQor
KysgU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02NDcs
NiArNjQ3LDggQEAgR1BVUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogR1BVUHJvY2Vz
c01lc3NhZ2VSZWNlaXZlci5jcHAKIExpYldlYlJUQ0NvZGVjc1Byb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcAogTGliV2ViUlRDQ29kZWNzTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwCkluZGV4OiBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3NQcm94
eS5oIgogI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCIK
KyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmgiCiAjaW5j
bHVkZSAiUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1lc3NhZ2Vz
LmgiCkBAIC0xMjcsNiArMTI5LDE0IEBAIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
ZGlkUmVjZWkKICAgICBDUkFTSCgpOwogfQogCitSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
ciYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXIoKQoreworICAgIGlmICghbV9yZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcikKKyAgICAg
ICAgbV9yZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlciA9IG1ha2VVbmlxdWU8UmVtb3RlQXVk
aW9EZXN0aW5hdGlvbk1hbmFnZXI+KCp0aGlzKTsKKworICAgIHJldHVybiAqbV9yZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlcjsKK30KKwogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImIEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKCkKIHsK
ICAgICBpZiAoIW1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIpCkBAIC0xOTEsMTMgKzIwMSwx
OSBAQCBMaWJXZWJSVENDb2RlY3NQcm94eSYgR1BVQ29ubmVjdGlvblRvV2ViCiAKIHZvaWQgR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCiB7CisgICAgaWYgKGRlY29kZXIu
bWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
TWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIHJlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyKCkuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vzcyhjb25uZWN0
aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBpZiAoZGVjb2Rlci5t
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAgcmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHkoKS5kaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNvbm5lY3Rp
b24sIGRlY29kZXIpOwogICAgICAgICByZXR1cm47Ci0gICAgfSBlbHNlIGlmIChkZWNvZGVyLm1l
c3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgfQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIHJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
KCkuZGlkUmVjZWl2ZVBsYXllck1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAg
IHJldHVybjsKLSAgICB9IGVsc2UgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09
IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpKSB7CisgICAgfQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBN
ZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSkgewogICAgICAgICByZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcigpLmRpZFJlY2VpdmVNZXNz
YWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjQz
LDYgKzI1OSwxMSBAQCB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpCiAK
IHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVu
aXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogeworICAgIGlmIChkZWNvZGVy
Lm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlv
bk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICByZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlcigpLmRpZFJlY2VpdmVTeW5jTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNv
bm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAg
ICAgICAgcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKS5kaWRSZWNlaXZlU3luY01lc3Nh
Z2VGcm9tV2ViUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogICAg
ICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQ0LDYgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVVByb2Nl
c3M7CiBjbGFzcyBMaWJXZWJSVENDb2RlY3NQcm94eTsKK2NsYXNzIFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25NYW5hZ2VyOwogY2xhc3MgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJN
YW5hZ2VyOwogY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk7CiBjbGFzcyBSZW1v
dGVNZWRpYVJlY29yZGVyTWFuYWdlcjsKQEAgLTc5LDYgKzgwLDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKEdQVVByb2Nlc3MmLCBXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpZmllciwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBQQUw6OlNlc3Np
b25JRCk7CiAKKyAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlciYgcmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbk1hbmFnZXIoKTsKICAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYg
cmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKTsKICNpZiBQTEFURk9STShDT0NPQSkgJiYg
VVNFKExJQldFQlJUQykKICAgICBMaWJXZWJSVENDb2RlY3NQcm94eSYgbGliV2ViUlRDQ29kZWNz
UHJveHkoKTsKQEAgLTEwMyw2ICsxMDUsNyBAQCBwcml2YXRlOgogICAgIFJlZjxJUEM6OkNvbm5l
Y3Rpb24+IG1fY29ubmVjdGlvbjsKICAgICBSZWY8R1BVUHJvY2Vzcz4gbV9ncHVQcm9jZXNzOwog
ICAgIGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIG1fd2ViUHJvY2Vzc0lkZW50aWZp
ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyPiBt
X3JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlcj4gbV9yZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjsKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk+IG1fcmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk7CiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7
CkluZGV4OiBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAJKG5vbmV4aXN0ZW50KQorKysg
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE3NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
ci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvQnVzRGF0YS5oIgorI2luY2x1
ZGUgIlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU2hh
cmVkTWVtb3J5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb0J1cy5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvQXVkaW9EZXN0aW5hdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9JT0NhbGxi
YWNrLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKyNpbmNsdWRlIDx3dGYv
VGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGhyZWFkcy9CaW5hcnlTZW1h
cGhvcmUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVtb3RlQXVkaW9EZXN0aW5hdGlv
bj4sIHB1YmxpYyBXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2sgeworcHVibGljOgorICAgIHVzaW5n
IEF1ZGlvQnVzID0gV2ViQ29yZTo6QXVkaW9CdXM7CisgICAgdXNpbmcgQXVkaW9EZXN0aW5hdGlv
biA9IFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb247CisgICAgdXNpbmcgU2hhcmVkQnVmZmVyID0g
V2ViQ29yZTo6U2hhcmVkQnVmZmVyOworCisgICAgc3RhdGljIFJlZjxSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uPiBjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgUmVt
b3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgaWQsCisgICAgICAgIGNvbnN0IFN0cmluZyYg
aW5wdXREZXZpY2VJZCwgdWludDMyX3QgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1aW50MzJfdCBu
dW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbihjb25uZWN0aW9uLCBp
ZCwgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENo
YW5uZWxzLCBzYW1wbGVSYXRlKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+UmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbigpCisgICAgeworICAgICAgICBSRUxFQVNFX0FTU0VSVCghbV9kZXN0aW5hdGlv
bi0+aXNQbGF5aW5nKCkpOworICAgIH0KKworICAgIHZvaWQgc2NoZWR1bGVHcmFjZWZ1bFNodXRk
b3duSWZOZWVkZWQoKQorICAgIHsKKyAgICAgICAgaWYgKCFpc1BsYXlpbmcoKSkKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgbV9wcm90ZWN0VGhpc0R1cmluZ0dyYWNlZnVsU2h1dGRvd24g
PSB0aGlzOworICAgICAgICBzdG9wKCk7CisgICAgfQorCisgICAgdm9pZCBzdGFydCgpIHsgbV9k
ZXN0aW5hdGlvbi0+c3RhcnQoKTsgfQorICAgIHZvaWQgc3RvcCgpIHsgbV9kZXN0aW5hdGlvbi0+
c3RvcCgpOyB9CisgICAgYm9vbCBpc1BsYXlpbmcoKSB7IHJldHVybiBtX2Rlc3RpbmF0aW9uLT5p
c1BsYXlpbmcoKTsgfQorCitwcml2YXRlOgorICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb24oR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgUmVtb3RlQXVkaW9EZXN0aW5hdGlv
bklkZW50aWZpZXIgaWQsIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdWludDMyX3QgbnVt
YmVyT2ZJbnB1dENoYW5uZWxzLCB1aW50MzJfdCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9h
dCBzYW1wbGVSYXRlKQorICAgICAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQorICAgICAg
ICAsIG1faWQoaWQpCisgICAgICAgICwgbV9kZXN0aW5hdGlvbihBdWRpb0Rlc3RpbmF0aW9uOjpj
cmVhdGUoKnRoaXMsIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVy
T2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSkpCisgICAgeworICAgIH0KKworICAgIHZvaWQg
cmVuZGVyKEF1ZGlvQnVzKiBzb3VyY2VCdXMsIEF1ZGlvQnVzKiBkZXN0aW5hdGlvbkJ1cywgc2l6
ZV90IGZyYW1lc1RvUHJvY2Vzcykgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIGlmIChtX3Byb3Rl
Y3RUaGlzRHVyaW5nR3JhY2VmdWxTaHV0ZG93bikKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKTsKKyAgICAgICAgQmluYXJ5
U2VtYXBob3JlIHJlbmRlclNlbWFwaG9yZTsKKworICAgICAgICBWZWN0b3I8UmVmPFNoYXJlZE1l
bW9yeT4+IGJ1ZmZlcnM7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkZXN0aW5h
dGlvbkJ1cy0+bnVtYmVyT2ZDaGFubmVscygpOyArK2kpIHsKKyAgICAgICAgICAgIGF1dG8gbWVt
b3J5ID0gU2hhcmVkTWVtb3J5OjphbGxvY2F0ZShzaXplb2YoZmxvYXQpICogZnJhbWVzVG9Qcm9j
ZXNzKTsKKyAgICAgICAgICAgIGJ1ZmZlcnMuYXBwZW5kKCptZW1vcnkpOworICAgICAgICB9CisK
KyAgICAgICAgLy8gRklYTUU6IFJlcGxhY2UgdGhpcyBjb2RlIHdpdGggYSByaW5nIGJ1ZmZlci4g
QXQgbGVhc3QgdGhpcyBoYXBwZW5zIGluIGF1ZGlvIHRocmVhZC4KKyAgICAgICAgQVNTRVJUKCFp
c01haW5UaHJlYWQoKSk7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIGZyYW1lc1Rv
UHJvY2VzcywgJmJ1ZmZlcnMsICZyZW5kZXJTZW1hcGhvcmVdIHsKKyAgICAgICAgICAgIFJlbW90
ZUF1ZGlvQnVzRGF0YSBidXNEYXRhIHsgZnJhbWVzVG9Qcm9jZXNzLCBidWZmZXJzLm1hcChbXShh
dXRvJiBtZW1vcnkpIHsgcmV0dXJuIG1lbW9yeS5jb3B5UmVmKCk7IH0pIH07CisgICAgICAgICAg
ICBBU1NFUlQoZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICAgICAgICAgIG1fY29ubmVjdGlvbi5jb25u
ZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHk6OlJlbmRlckJ1ZmZlcihidXNEYXRhKSwgWyZdKCkgeworICAgICAgICAgICAgICAg
IHJlbmRlclNlbWFwaG9yZS5zaWduYWwoKTsKKyAgICAgICAgICAgIH0sIG1faWQudG9VSW50NjQo
KSk7CisgICAgICAgIH0pOworICAgICAgICByZW5kZXJTZW1hcGhvcmUud2FpdCgpOworCisgICAg
ICAgIGF1dG8gYXVkaW9CdXMgPSBBdWRpb0J1czo6Y3JlYXRlKGJ1ZmZlcnMuc2l6ZSgpLCBmcmFt
ZXNUb1Byb2Nlc3MsIGZhbHNlKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJ1
ZmZlcnMuc2l6ZSgpOyArK2kpCisgICAgICAgICAgICBhdWRpb0J1cy0+c2V0Q2hhbm5lbE1lbW9y
eShpLCAoZmxvYXQqKWJ1ZmZlcnNbaV0tPmRhdGEoKSwgZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICAg
ICAgZGVzdGluYXRpb25CdXMtPmNvcHlGcm9tKCphdWRpb0J1cyk7CisgICAgfQorCisgICAgdm9p
ZCBpc1BsYXlpbmdEaWRDaGFuZ2UoKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgaWYgKG1fcHJv
dGVjdFRoaXNEdXJpbmdHcmFjZWZ1bFNodXRkb3duKSB7CisgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVCghbV9kZXN0aW5hdGlvbi0+aXNQbGF5aW5nKCkpOworICAgICAgICAgICAgUkVMRUFTRV9B
U1NFUlQocmVmQ291bnQoKSA9PSAxKTsKKyAgICAgICAgICAgIG1fcHJvdGVjdFRoaXNEdXJpbmdH
cmFjZWZ1bFNodXRkb3duID0gbnVsbHB0cjsgLy8gRGVsZXRlcyAidGhpcyIuCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBpc1BsYXlpbmcgPSBtX2Rlc3RpbmF0aW9uLT5p
c1BsYXlpbmcoKSwgaWQgPSBtX2lkLnRvVUludDY0KCldIHsKKyAgICAgICAgICAgIG1fY29ubmVj
dGlvbi5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5OjpEaWRDaGFuZ2VJc1BsYXlpbmcoaXNQbGF5aW5nKSwgaWQpOworICAgICAgICB9KTsKKyAg
ICB9CisKKyAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2Nvbm5lY3Rpb247CisgICAg
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgbV9pZDsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8QXVkaW9EZXN0aW5hdGlvbj4gbV9kZXN0aW5hdGlvbjsKKyAgICBSZWZQdHI8UmVtb3RlQXVk
aW9EZXN0aW5hdGlvbj4gbV9wcm90ZWN0VGhpc0R1cmluZ0dyYWNlZnVsU2h1dGRvd247Cit9Owor
CitSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXIoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbikKKyAgICA6IG1fZ3B1
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25uZWN0aW9uKQoreworfQorCitSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlcjo6flJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKCkgPSBkZWZh
dWx0OworCit2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpjcmVhdGVBdWRpb0Rl
c3RpbmF0aW9uKGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdWludDMyX3QgbnVtYmVyT2ZJ
bnB1dENoYW5uZWxzLCB1aW50MzJfdCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1w
bGVSYXRlLAorICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVtb3RlQXVkaW9EZXN0aW5hdGlv
bklkZW50aWZpZXIpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gbmV3SUQgPSBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCk7Cisg
ICAgYXV0byBjYWxsYmFjayA9IFJlbW90ZUF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShtX2dwdUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MsIG5ld0lELCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0
Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOworICAgIG1fYXVk
aW9EZXN0aW5hdGlvbnMuYWRkKG5ld0lELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgY29tcGxl
dGlvbkhhbmRsZXIobmV3SUQpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyOjpkZWxldGVBdWRpb0Rlc3RpbmF0aW9uKFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlm
aWVyIGlkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7
CisgICAgYXV0byBkZXN0aW5hdGlvbiA9IG1fYXVkaW9EZXN0aW5hdGlvbnMudGFrZShpZCk7Cisg
ICAgaWYgKGRlc3RpbmF0aW9uKQorICAgICAgICBkZXN0aW5hdGlvbi52YWx1ZSgpLT5zY2hlZHVs
ZUdyYWNlZnVsU2h1dGRvd25JZk5lZWRlZCgpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9
CisKK3ZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OnN0YXJ0QXVkaW9EZXN0aW5h
dGlvbihSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBpZCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBib29sIGlzUGxheWlu
ZyA9IGZhbHNlOworICAgIGlmIChhdXRvKiBpdGVtID0gbV9hdWRpb0Rlc3RpbmF0aW9ucy5nZXQo
aWQpKSB7CisgICAgICAgIGl0ZW0tPnN0YXJ0KCk7CisgICAgICAgIGlzUGxheWluZyA9IGl0ZW0t
PmlzUGxheWluZygpOworICAgIH0KKyAgICBjb21wbGV0aW9uSGFuZGxlcihpc1BsYXlpbmcpOwor
fQorCit2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpzdG9wQXVkaW9EZXN0aW5h
dGlvbihSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBpZCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBib29sIGlzUGxheWlu
ZyA9IGZhbHNlOworICAgIGlmIChhdXRvKiBpdGVtID0gbV9hdWRpb0Rlc3RpbmF0aW9ucy5nZXQo
aWQpKSB7CisgICAgICAgIGl0ZW0tPnN0b3AoKTsKKyAgICAgICAgaXNQbGF5aW5nID0gaXRlbS0+
aXNQbGF5aW5nKCk7CisgICAgfQorICAgIGNvbXBsZXRpb25IYW5kbGVyKGlzUGxheWluZyk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uTWFuYWdlci5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgorI2lu
Y2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2VzczsKK2NsYXNzIFJlbW90ZUF1ZGlvRGVzdGluYXRpb247CisKK2Ns
YXNzIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyIDogcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VS
ZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIpOworcHVibGljOgorICAgIFJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsK
KyAgICB+UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIoKTsKKworICAgIHZvaWQgY3JlYXRl
QXVkaW9EZXN0aW5hdGlvbihjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVpbnQzMl90IG51
bWJlck9mSW5wdXRDaGFubmVscywgdWludDMyX3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxv
YXQgc2FtcGxlUmF0ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uSWRlbnRpZmllcik+JiYpOworICAgIHZvaWQgZGVsZXRlQXVkaW9EZXN0aW5hdGlvbihSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKKyAgICB2b2lkIHN0YXJ0QXVkaW9EZXN0aW5hdGlvbihSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBz
dG9wQXVkaW9EZXN0aW5hdGlvbihSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5j
TWVzc2FnZUZyb21XZWJQcm9jZXNzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgZW5jb2RlcikK
KyAgICB7CisgICAgICAgIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVy
LCBlbmNvZGVyKTsKKyAgICB9CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9j
ZXNzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKSB7
IGRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOyB9CisKK3ByaXZhdGU6Cisg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOworCisgICAgSGFzaE1h
cDxSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciwgUmVmPFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb24+PiBtX2F1ZGlvRGVzdGluYXRpb25zOworICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MmIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmU7CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
ci5tZXNzYWdlcy5pbgkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4JKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwzNyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt
ZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
IyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbk1hbmFnZXIgTm90UmVmQ291bnRlZCB7CisKKyAgICBDcmVhdGVBdWRpb0Rlc3Rp
bmF0aW9uKFN0cmluZyBpbnB1dERldmljZUlkLCB1aW50MzJfdCBudW1iZXJPZklucHV0Q2hhbm5l
bHMsIHVpbnQzMl90IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpIC0+
IChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIGlkKSBTeW5jaHJvbm91
cworCisgICAgRGVsZXRlQXVkaW9EZXN0aW5hdGlvbihXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25JZGVudGlmaWVyIGlkKSAtPiAoKSBBc3luYworCisgICAgU3RhcnRBdWRpb0Rlc3RpbmF0
aW9uKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgaWQpIC0+IChib29s
IGlzUGxheWluZykgU3luY2hyb25vdXMKKyAgICBTdG9wQXVkaW9EZXN0aW5hdGlvbihXZWJLaXQ6
OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIGlkKSAtPiAoYm9vbCBpc1BsYXlpbmcp
IFN5bmNocm9ub3VzCisKK30KKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcAkocmV2aXNpb24gMjU3Mjk3KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQ4LDYgKzQ4LDExIEBAIFBhc3RlYm9hcmRTdHJhdGVneSogTmV0d29ya1Byb2Nlc3NQbGF0
Zm8KICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAorTWVkaWFTdHJhdGVneSogTmV0d29ya1Byb2Nl
c3NQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3koKQoreworICAgIHJldHVy
biBudWxscHRyOworfQorCiBCbG9iUmVnaXN0cnkqIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJh
dGVnaWVzOjpjcmVhdGVCbG9iUmVnaXN0cnkoKQogewogICAgIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1Bs
YXRmb3JtU3RyYXRlZ2llcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkocmV2aXNpb24gMjU3Mjk3
KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3Jt
U3RyYXRlZ2llcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw3IEBAIHByaXZhdGU6CiAg
ICAgLy8gV2ViQ29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzCiAgICAgV2ViQ29yZTo6TG9hZGVyU3Ry
YXRlZ3kqIGNyZWF0ZUxvYWRlclN0cmF0ZWd5KCkgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6UGFz
dGVib2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAg
ICBXZWJDb3JlOjpNZWRpYVN0cmF0ZWd5KiBjcmVhdGVNZWRpYVN0cmF0ZWd5KCkgb3ZlcnJpZGU7
CiAgICAgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSBvdmVycmlk
ZTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQko
cmV2aXNpb24gMjU3Mjk3KQorKysgU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weQkod29ya2luZyBjb3B5KQpAQCAtMjI3LDYgKzIyNyw3IEBAIGRlZiB0eXBlc190aGF0X2Nh
bm5vdF9iZV9mb3J3YXJkX2RlY2xhcmUKICAgICAgICAgJ1dlYktpdDo6TUROU1JlZ2lzdGVySWRl
bnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpNZWRpYVJlY29yZGVySWRlbnRpZmllcicsCisgICAg
ICAgICdXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyJywKICAgICAgICAg
J1dlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0
OjpSVENEZWNvZGVySWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJUQ0VuY29kZXJJZGVu
dGlmaWVyJywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25JZGVudGlmaWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlm
aWVyVHlwZSB7IH07Cit1c2luZyBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciA9IE9i
amVjdElkZW50aWZpZXI8UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXJUeXBlPjsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTcyOTcpCisrKyBT
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0xNDA1LDggKzE0MDUsMTQgQEAKIAkJOUIwMkUwQ0IyMzVFQjk1MzAwNDA0NEIyIC8q
IF9XS1RleHRNYW5pcHVsYXRpb25EZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwMkUwQzkyMzVFQjYyRDAwNDA0NEIyIC8qIF9XS1RleHRN
YW5pcHVsYXRpb25EZWxlZ2F0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTlCMDJFMENDMjM1RUI5NTcwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1
bGF0aW9uSXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOUIwMkUwQ0EyMzVFQjg4NDAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25JdGVtLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIwMkUw
RDcyMzVGQzk0RjAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwMkUwQ0QyMzVFQjk2NzAw
NDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTlCMTIyOUNEMjNGRjI1RjIwMDhDQTc1MSAv
KiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIxMjI5Q0IyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90
ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmggKi87IH07CisJCTlCMTIyOUNFMjNGRjI1RjIwMDhD
QTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjEyMjlDQzIzRkYyNUYyMDA4Q0E3NTEg
LyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwICovOyB9OworCQk5QjEyMjlEMjIz
RkYyQkNDMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMTIyOUQwMjNGRjJB
NUUwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oICovOyB9Owog
CQk5QjU0OTlBRDIzNjJBNkY5MDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3Vy
YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlC
NTQ5OUFDMjM2MkE2RjYwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlv
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlC
NTQ5OUIyMjM2MkE3RUMwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVs
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI1NDk5
QjAyMzYyQTdFQzAwREY4QkE1IC8qIF9XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOUI1QkVD
MjYyNDAwRjRBOTAwNzBDNkVGIC8qIFdlYk1lZGlhU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCNUJFQzI0MjQwMEY0QTkwMDcwQzZFRiAv
KiBXZWJNZWRpYVN0cmF0ZWd5LmggKi87IH07CisJCTlCNUJFQzJBMjQwMTAxNTgwMDcwQzZFRiAv
KiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCNUJFQzI4MjQwMTAxNTgwMDcwQzZFRiAvKiBSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uUHJveHkuaCAqLzsgfTsKKwkJOUI1QkVDMzEyNDAxMDIyMjAwNzBDNkVG
IC8qIFJlbW90ZUF1ZGlvQnVzRGF0YS5oIGluIENvcHlGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5QjVCRUMzMDI0MDEwMjIyMDA3MEM2RUYgLyogUmVtb3RlQXVkaW9C
dXNEYXRhLmggKi87IH07CiAJCTlGQjVGMzk1MTY5RTZBODAwMDJDMjVCRiAvKiBXS0NvbnRleHRQ
cml2YXRlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5RkI1RjM5MzE2OUU2QTgwMDAyQzI1QkYgLyogV0tDb250ZXh0UHJpdmF0ZU1hYy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUExMDJBNzA4MUVD
MEVFRTkwMEQ4MUQ4MiAvKiBjb20ubWFjcm9tZWRpYS5GbGFzaCBQbGF5ZXIgRVNSLnBsdWdpbi5z
YiBpbiBDb3B5IFBsdWctaW4gU2FuZGJveCBQcm9maWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3QTVFMzk0OTFENUJEOEE3MDBCNEI3Q0UgLyogY29tLm1hY3JvbWVkaWEu
Rmxhc2ggUGxheWVyIEVTUi5wbHVnaW4uc2IgKi87IH07CiAJCUExMDQ2RUExMjA3OTI2MzEwMEYw
QzVEOCAvKiBXS1BERlZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEExMDQ2RTlGMjA3OTI2MzEwMEYwQzVEOCAvKiBXS1BERlZpZXcuaCAqLzsgfTsK
QEAgLTIwNjEsNiArMjA2Nyw3IEBACiAJCQkJMkRCOTYwNTMyMzk4ODZDMTAwMTAyNzkxIC8qIGNv
bS5hcHBsZS5XZWJLaXQuR1BVLnNiIGluIENvcHlGaWxlcyAqLywKIAkJCQlBNzhDQ0REQjE5M0FD
OUY4MDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnNiIGluIENvcHlGaWxl
cyAqLywKIAkJCQlBNzhDQ0REQzE5M0FDOUZCMDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5X
ZWJDb250ZW50LnNiIGluIENvcHlGaWxlcyAqLywKKwkJCQk5QjVCRUMzMTI0MDEwMjIyMDA3MEM2
RUYgLyogUmVtb3RlQXVkaW9CdXNEYXRhLmggaW4gQ29weUZpbGVzICovLAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNDM4MywxMCAr
NDM5MCwyMCBAQAogCQk5QjAyRTBDRDIzNUVCOTY3MDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxh
dGlvblRva2VuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAyRTBDRTIzNUVCQjE0MDA0MDQ0QjIgLyog
X1dLVGV4dE1hbmlwdWxhdGlvblRva2VuLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLVGV4
dE1hbmlwdWxhdGlvblRva2VuLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAy
RTBEMDIzNUVCQ0NBMDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0ubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uSXRlbS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOUIxMjI5Q0IyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCMTIyOUNDMjNGRjI1
RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTlCMTIyOUNGMjNGRjI4MTQwMDhDQTc1MSAvKiBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUIx
MjI5RDAyM0ZGMkE1RTAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCNTQ5OUFDMjM2MkE2RjYwMERGOEJBNSAvKiBf
V0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUZXh0
TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5QjU0OTlBRTIzNjJBN0E3MDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3Vy
YXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmln
dXJhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI1NDk5QjAyMzYyQTdF
QzAwREY4QkE1IC8qIF9XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTlCNTQ5OUIxMjM2MkE3RUMwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1
bGF0aW9uRXhjbHVzaW9uUnVsZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS1RleHRNYW5p
cHVsYXRpb25FeGNsdXNpb25SdWxlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
QjVCRUMyNDI0MDBGNEE5MDA3MEM2RUYgLyogV2ViTWVkaWFTdHJhdGVneS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJNZWRpYVN0cmF0ZWd5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlC
NUJFQzI1MjQwMEY0QTkwMDcwQzZFRiAvKiBXZWJNZWRpYVN0cmF0ZWd5LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYk1lZGlhU3RyYXRlZ3kuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5QjVCRUMyODI0MDEwMTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjVCRUMyOTI0MDEwMTU4MDA3MEM2RUYgLyogUmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlC
NUJFQzJFMjQwMTAxOEMwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkubWVz
c2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Lm1lc3NhZ2VzLmluOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjVCRUMzMDI0MDEwMjIyMDA3MEM2RUYgLyog
UmVtb3RlQXVkaW9CdXNEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvQnVzRGF0YS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QkM1OUQ2QzFFRkNDQ0I2MDAxRThEMDkg
LyogQ2FsbGJhY2tJRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWxsYmFj
a0lELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCQzU5RDZEMUVGQ0RDNkQwMDFF
OEQwOSAvKiBPcHRpb25hbENhbGxiYWNrSUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gT3B0aW9uYWxDYWxsYmFja0lELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTlGNTRGODhFMTY0ODhFODcwMDdERjgxQSAvKiBBdXhpbGlhcnlQcm9jZXNzTWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXV4aWxpYXJ5UHJvY2Vzc01hYy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUyNjgsNiArNTI4NSwxMCBAQAogCQkJ
CTA3OTIzMTMyMjM5QjNCMEMwMDk1OThFMiAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCAq
LywKIAkJCQkwN0IxRDA0QjIzRDM4RkNFMDAzOTlBNkUgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlLm1lc3NhZ2VzLmluICovLAogCQkJCTA3OTIzMTRFMjM5RDVGNTMwMDk1OThFMiAvKiBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmggKi8sCisJCQkJOUI1QkVDMzAyNDAxMDIy
MjAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvQnVzRGF0YS5oICovLAorCQkJCTlCNUJFQzI5MjQwMTAx
NTgwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwICovLAorCQkJCTlC
NUJFQzI4MjQwMTAxNTgwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaCAq
LywKKwkJCQk5QjVCRUMyRTI0MDEwMThDMDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCTA3QjkzRkY1MjNBRjBDQjgwMDM2RjhFQSAvKiBS
ZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24uaCAqLywKIAkJCQkwNzkyMzEzMDIzOUIzQjBD
MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcCAqLywKIAkJCQkwNzkyMzEz
NDIzOUIzQjBDMDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmggKi8sCkBAIC01
MjgzLDYgKzUzMDQsOCBAQAogCQkJCTFERkREMEUyMjNGNjEwRjAwMEU5QjQ5MCAvKiBWaWRlb0xh
eWVyUmVtb3RlLmggKi8sCiAJCQkJMDcxQkM1ODMyM0NDMkJENTAwNjgwRDdDIC8qIFZpZGVvVHJh
Y2tQcml2YXRlUmVtb3RlLmNwcCAqLywKIAkJCQkwNzFCQzU4MjIzQ0MyQkQzMDA2ODBEN0MgLyog
VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaCAqLywKKwkJCQk5QjVCRUMyNTI0MDBGNEE5MDA3MEM2
RUYgLyogV2ViTWVkaWFTdHJhdGVneS5jcHAgKi8sCisJCQkJOUI1QkVDMjQyNDAwRjRBOTAwNzBD
NkVGIC8qIFdlYk1lZGlhU3RyYXRlZ3kuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWVkaWE7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNTI5MSw2ICs1MzE0LDkgQEAKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMUQwRUNFQTkyM0ZDODRCQjAwRDE3MkY2
IC8qIGNvY29hICovLAorCQkJCTlCMTIyOUNDMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgKi8sCisJCQkJOUIxMjI5Q0IyM0ZGMjVGMjAwOENBNzUx
IC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmggKi8sCisJCQkJOUIxMjI5Q0YyM0ZG
MjgxNDAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmlu
ICovLAogCQkJCTA3MUJDNTdFMjNDQTVEQjEwMDY4MEQ3QyAvKiBSZW1vdGVBdWRpb1RyYWNrUHJv
eHkuY3BwICovLAogCQkJCTA3MUJDNTdGMjNDQTVEQjEwMDY4MEQ3QyAvKiBSZW1vdGVBdWRpb1Ry
YWNrUHJveHkuaCAqLywKIAkJCQkwNzI1RUZBRDIzOUIwMjQ1MDBBNTM4QTkgLyogUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwICovLApAQCAtNTc1MSw2ICs1Nzc3LDcgQEAKIAkJCQlF
MThDOTJGMzEyREI5RTcxMDBDRjJBRUIgLyogUHJpbnRJbmZvLmNwcCAqLywKIAkJCQlFMUNDMUI4
RTEyRDdFQURGMDA2MjU4MzggLyogUHJpbnRJbmZvLmggKi8sCiAJCQkJNDYzRkQ0ODExRUI5NEVB
RDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oICovLAorCQkJCTlCMTIyOUQw
MjNGRjJBNUUwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oICov
LAogCQkJCUY2QTBDMTNGMTMyODFFNkUwMDcwNDMwRiAvKiBSZXNvdXJjZUNhY2hlc1RvQ2xlYXIu
aCAqLywKIAkJCQk1Q0I3QUZFNjIzQzY4MUIwMDBFNDlDRjMgLyogUmVzb3VyY2VMb2FkSW5mby5o
ICovLAogCQkJCTQxMDQ4MkNCMURERDJGQjUwMEYwMDZEMCAvKiBSVENOZXR3b3JrLmNwcCAqLywK
QEAgLTEwNTI4LDYgKzEwNTU1LDkgQEAKIAkJCQk4MzA0OEFFNjFBQ0E0NURDMDA4MkM4MzIgLyog
UHJvY2Vzc1Rocm90dGxlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFFNjg4NzAxRjZF
MkJBQjAwNzAwNkE2IC8qIFF1YXJhbnRpbmVTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RkQz
MTgyMjJCMzUxNUUwMDhEMEU4QiAvKiBSZWRpcmVjdFNPQXV0aG9yaXphdGlvblNlc3Npb24uaCBp
biBIZWFkZXJzICovLAorCQkJCTlCMTIyOUQyMjNGRjJCQ0MwMDhDQTc1MSAvKiBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUIxMjI5Q0QyM0ZG
MjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5QjVCRUMyQTI0MDEwMTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDQ3QjU2RDE4MTA3MTRFMDAzQTNBRUUg
LyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEREY3MzE1
MThFOTUwNjAwMDRGNUE2NiAvKiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTFBQjE2QUVBMTY0QjNBODgwMDI5MEQ2MiAvKiBSZW1vdGVMYXll
clRyZWVDb250ZXh0LmggaW4gSGVhZGVycyAqLywKQEAgLTEwNzgwLDYgKzEwODEwLDcgQEAKIAkJ
CQlDOThDNDhBNjFCNkZENEMzMDAxNDUxMDMgLyogV2ViTWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDOUMxODMzQzFCNzQwMjZEMDA3MDM2QTcgLyogV2ViTWVk
aWFTZXNzaW9uRm9jdXNNYW5hZ2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDOUNENDM5
ODFCNEIwMDFEMDAyMzlFMzMgLyogV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTlCNUJFQzI2MjQwMEY0QTkwMDcwQzZFRiAvKiBXZWJNZWRpYVN0cmF0ZWd5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyRDNFRjQ0MzE5MTc2NDYzMDAwMzQxODQgLyogV2ViTWVtb3J5
UHJlc3N1cmVIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MDk4NTRFRDEyQkM0RTE4MDAw
QUQwODAgLyogV2ViTWVtb3J5U2FtcGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEzRkZCOTEy
MDE0NTlDNjAwMjU5NkVBIC8qIFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmggaW4gSGVh
ZGVycyAqLywKQEAgLTEyMjI0LDYgKzEyMjU1LDcgQEAKIAkJCQlDMTVDQkIzNzIzRjM3RUNCMDAz
MDBDQzcgLyogUHJlZmVyZW5jZU9ic2VydmVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ1NEMz
MUIyMTJGNERBNjAwNDlDMTc0IC8qIFByb2Nlc3NMYXVuY2hlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlDRDI4NjVFRjIyNTU1NjIwMDA2MDZBQzcgLyogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVy
Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJOUIxMjI5Q0UyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90
ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJENzJBMUZB
MjEyQkY0NkUwMDUxN0EyMCAvKiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGRjI0QTJEMTg3OUU0QkMwMDNBQkYwQyAvKiBSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJE
QzE4RkI0MjE4QTZFOUUwMDI1QTg4RCAvKiBSZW1vdGVMYXllclRyZWVWaWV3cy5tbSBpbiBTb3Vy
Y2VzICovLApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29u
bmVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9H
UFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMyw2ICszMyw4IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNzLmgiCiAjaW5jbHVk
ZSAiTGliV2ViUlRDQ29kZWNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eS5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eU1lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNZXNzYWdlcy5oIgpAQCAtNzcsNiArNzksOSBAQCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyJiBHUFVQcm9jCiAKIHZvaWQgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNv
ZGVyKQogeworICAgIGlmIChtX3JlY2VpdmVyTWFwLmRpc3BhdGNoTWVzc2FnZShjb25uZWN0aW9u
LCBkZWNvZGVyKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJl
Y2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSkgewogICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zdXBw
bGVtZW50PFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcj4oKS0+ZGlkUmVjZWl2ZVBsYXllck1lc3Nh
Z2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgJKHJl
dmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZXNz
YWdlUmVjZWl2ZXJNYXAuaCIKICNpbmNsdWRlICJTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KQEAgLTU2LDYgKzU3LDE2IEBAIHB1YmxpYzoKICAgICBTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyJiBzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCk7CiAj
ZW5kaWYKIAorICAgIHZvaWQgYWRkTWVzc2FnZVJlY2VpdmVyKElQQzo6U3RyaW5nUmVmZXJlbmNl
IG1lc3NhZ2VSZWNlaXZlck5hbWUsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIElQQzo6TWVzc2Fn
ZVJlY2VpdmVyJiByZWNlaXZlcikKKyAgICB7CisgICAgICAgIG1fcmVjZWl2ZXJNYXAuYWRkTWVz
c2FnZVJlY2VpdmVyKG1lc3NhZ2VSZWNlaXZlck5hbWUsIGRlc3RpbmF0aW9uSUQsIHJlY2VpdmVy
KTsKKyAgICB9CisKKyAgICB2b2lkIHJlbW92ZU1lc3NhZ2VSZWNlaXZlcihJUEM6OlN0cmluZ1Jl
ZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklEKQorICAg
IHsKKyAgICAgICAgbV9yZWNlaXZlck1hcC5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIobWVzc2FnZVJl
Y2VpdmVyTmFtZSwgZGVzdGluYXRpb25JRCk7CisgICAgfQorCiBwcml2YXRlOgogICAgIEdQVVBy
b2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CiAKQEAgLTY2LDYg
Kzc3LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIFRoZSBjb25uZWN0aW9uIGZyb20gdGhlIHdlYiBw
cm9jZXNzIHRvIHRoZSBHUFUgcHJvY2Vzcy4KICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nv
bm5lY3Rpb247CisgICAgSVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXAgbV9yZWNlaXZlck1hcDsKIAog
I2lmIEhBVkUoQVVESVRfVE9LRU4pCiAgICAgT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4gbV9hdWRp
dFRva2VuOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVB
dWRpb0J1c0RhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZUF1ZGlvQnVzRGF0YS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9CdXNEYXRhLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUg
IlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
Kworc3RydWN0IFJlbW90ZUF1ZGlvQnVzRGF0YSB7CisgICAgdWludDY0X3QgZnJhbWVzVG9Qcm9j
ZXNzIHsgMCB9OworICAgIFZlY3RvcjxSZWY8U2hhcmVkTWVtb3J5Pj4gY2hhbm5lbEJ1ZmZlcnM7
CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgorICAgIHZvaWQgZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGZyYW1lc1RvUHJv
Y2VzczsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oY2hhbm5lbEJ1
ZmZlcnMuc2l6ZSgpKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjaGFubmVsQnVm
ZmVycy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFu
ZGxlOworICAgICAgICAgICAgY2hhbm5lbEJ1ZmZlcnNbaV0tPmNyZWF0ZUhhbmRsZShoYW5kbGUs
IFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZFdyaXRlKTsKKyAgICAgICAgICAgIGVuY29k
ZXIgPDwgaGFuZGxlOworICAgICAgICB9CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
RGVjb2Rlcj4KKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUmVtb3Rl
QXVkaW9CdXNEYXRhJiByZXN1bHQpCisgICAgeworICAgICAgICB1aW50NjRfdCBmcmFtZXNUb1By
b2Nlc3M7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZnJhbWVzVG9Qcm9jZXNzKSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmVzdWx0LmZyYW1lc1RvUHJvY2VzcyA9
IGZyYW1lc1RvUHJvY2VzczsKKworICAgICAgICB1aW50NjRfdCBzaXplID0gMDsKKyAgICAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShzaXplKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICAgICAg
U2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOworICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShoYW5kbGUpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAg
IGF1dG8gbWVtb3J5ID0gU2hhcmVkTWVtb3J5OjptYXAoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlBy
b3RlY3Rpb246OlJlYWRXcml0ZSk7CisgICAgICAgICAgICBpZiAobWVtb3J5KQorICAgICAgICAg
ICAgICAgIHJlc3VsdC5jaGFubmVsQnVmZmVycy5hcHBlbmQoKm1lbW9yeSk7CisgICAgICAgIH0K
KworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwOSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1
ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlci5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9BdWRpb0J1cy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9EZXN0aW5hdGlvbi5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKwordXNpbmcgQXVkaW9CdXMgPSBXZWJDb3JlOjpBdWRpb0J1czsK
K3VzaW5nIEF1ZGlvRGVzdGluYXRpb24gPSBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uOwordXNp
bmcgQXVkaW9JT0NhbGxiYWNrID0gV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrOworCitzdGQ6OnVu
aXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Ojpj
cmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywKKyAgICBjb25zdCBTdHJpbmcmIGlucHV0
RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVy
T2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKK3sKKyAgICByZXR1cm4gbWFrZVVu
aXF1ZTxSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk+KGNhbGxiYWNrLCBpbnB1dERldmljZUlk
LCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJh
dGUpOworfQorCitSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0
RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVy
T2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKKyAgICA6IG1fY2FsbGJhY2soY2Fs
bGJhY2spCisgICAgLCBtX3NhbXBsZVJhdGUoc2FtcGxlUmF0ZSkKK3sKKyAgICBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uSWRlbnRpZmllciBkZXN0aW5hdGlvbklEOworCisgICAgYXV0byYgY29ubmVj
dGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9u
KCk7CisgICAgY29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZFN5bmMoCisgICAgICAgIE1lc3Nh
Z2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6Q3JlYXRlQXVkaW9EZXN0aW5hdGlv
bihpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hh
bm5lbHMsIHNhbXBsZVJhdGUpLAorICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXI6OkNyZWF0ZUF1ZGlvRGVzdGluYXRpb246OlJlcGx5KGRlc3RpbmF0aW9uSUQp
LCAwKTsKKyAgICBjb25uZWN0aW9uLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGRlc3RpbmF0aW9u
SUQudG9VSW50NjQoKSwgKnRoaXMpOworCisgICAgbV9kZXN0aW5hdGlvbklEID0gZGVzdGluYXRp
b25JRDsKK30KKworUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Ojp+UmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5KCkKK3sKKyAgICBhdXRvJiBjb25uZWN0aW9uID0gIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCk7CisgICAgY29ubmVjdGlvbi5y
ZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2Rlc3RpbmF0aW9uSUQudG9VSW50NjQoKSk7CisK
KyAgICBjb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoCisgICAgICAg
IE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6RGVsZXRlQXVkaW9EZXN0
aW5hdGlvbihtX2Rlc3RpbmF0aW9uSUQpLCBbXSB7CisgICAgICAgIC8vIENhbid0IHJlbW92ZSB0
aGlzIGZyb20gcHJveHlNYXAoKSBoZXJlIGJlY2F1c2UgdGhlIG9iamVjdCB3b3VsZCBoYXZlIGJl
ZW4gYWxyZWFkeSBkZWxldGVkLgorICAgIH0pOworfQorCit2b2lkIFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eTo6c3RhcnQoKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3Vy
ZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKAorICAgICAgICBN
ZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OlN0YXJ0QXVkaW9EZXN0aW5h
dGlvbihtX2Rlc3RpbmF0aW9uSUQpLAorICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXI6OlN0YXJ0QXVkaW9EZXN0aW5hdGlvbjo6UmVwbHkobV9pc1BsYXlpbmcp
LCAwKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0b3AoKQorewor
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCku
Y29ubmVjdGlvbigpLnNlbmRTeW5jKAorICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXI6OlN0b3BBdWRpb0Rlc3RpbmF0aW9uKG1fZGVzdGluYXRpb25JRCksCisg
ICAgICAgIE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6U3RvcEF1ZGlv
RGVzdGluYXRpb246OlJlcGx5KG1faXNQbGF5aW5nKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVk
aW9EZXN0aW5hdGlvblByb3h5OjpyZW5kZXJCdWZmZXIoY29uc3QgV2ViS2l0OjpSZW1vdGVBdWRp
b0J1c0RhdGEmIGF1ZGlvQnVzRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVChhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNz
KTsKKyAgICBBU1NFUlQoYXVkaW9CdXNEYXRhLmNoYW5uZWxCdWZmZXJzLnNpemUoKSk7CisgICAg
YXV0byBhdWRpb0J1cyA9IEF1ZGlvQnVzOjpjcmVhdGUoYXVkaW9CdXNEYXRhLmNoYW5uZWxCdWZm
ZXJzLnNpemUoKSwgYXVkaW9CdXNEYXRhLmZyYW1lc1RvUHJvY2VzcywgZmFsc2UpOworICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBhdWRpb0J1c0RhdGEuY2hhbm5lbEJ1ZmZlcnMuc2l6ZSgp
OyArK2kpCisgICAgICAgIGF1ZGlvQnVzLT5zZXRDaGFubmVsTWVtb3J5KGksIChmbG9hdCopYXVk
aW9CdXNEYXRhLmNoYW5uZWxCdWZmZXJzW2ldLT5kYXRhKCksIGF1ZGlvQnVzRGF0YS5mcmFtZXNU
b1Byb2Nlc3MpOworCisgICAgbV9jYWxsYmFjay5yZW5kZXIoMCwgYXVkaW9CdXMuZ2V0KCksIGF1
ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3MpOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsK
K30KKwordm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OmRpZENoYW5nZUlzUGxheWlu
Zyhib29sIGlzUGxheWluZykKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oCShub25leGlzdGVudCkKKysr
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiQ29ubmVj
dGlvbi5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvQnVzRGF0YS5oIgorI2luY2x1ZGUgIlJlbW90
ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1N1cHBs
ZW1lbnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24uaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0F1ZGlvSU9DYWxsYmFjay5oPgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5j
bHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IDogcHVibGljIFdlYkNvcmU6
OkF1ZGlvRGVzdGluYXRpb24sIHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eSk7CitwdWJsaWM6CisgICAgdXNpbmcgQXVkaW9CdXMgPSBXZWJD
b3JlOjpBdWRpb0J1czsKKyAgICB1c2luZyBBdWRpb0lPQ2FsbGJhY2sgPSBXZWJDb3JlOjpBdWRp
b0lPQ2FsbGJhY2s7CisKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRp
b24+IGNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQs
IHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRD
aGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSk7CisKKyAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNp
Z25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5l
bHMsIGZsb2F0IHNhbXBsZVJhdGUpOworICAgIH5SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHko
KTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2VzcyhJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVz
c2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQorCisgICAgdm9pZCByZW5kZXJCdWZmZXIoY29u
c3QgV2ViS2l0OjpSZW1vdGVBdWRpb0J1c0RhdGEmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOworICAgIHZvaWQgZGlkQ2hhbmdlSXNQbGF5aW5nKGJvb2wgaXNQbGF5aW5nKTsKKworcHJp
dmF0ZToKKyAgICAvLyBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uCisgICAgdm9pZCBzdGFydCgp
IG92ZXJyaWRlOworICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworICAgIGJvb2wgaXNQbGF5aW5n
KCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9pc1BsYXlpbmc7IH0KKyAgICBmbG9hdCBzYW1wbGVSYXRl
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zYW1wbGVSYXRlOyB9CisKKyAgICAvLyBJUEM6
Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICBBdWRpb0lPQ2FsbGJhY2smIG1fY2Fs
bGJhY2s7CisgICAgZmxvYXQgbV9zYW1wbGVSYXRlOworICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25JZGVudGlmaWVyIG1fZGVzdGluYXRpb25JRDsKKyAgICBib29sIG1faXNQbGF5aW5nIHsgZmFs
c2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5
Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Lm1lc3NhZ2VzLmluCShub25leGlzdGVu
dCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzMgQEAK
KyMgQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSBOb3RSZWZD
b3VudGVkIHsKKworICAgIFJlbmRlckJ1ZmZlcihzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVBdWRpb0J1
c0RhdGEgZGF0YSkgLT4gKCkgQXN5bmMKKyAgICBEaWRDaGFuZ2VJc1BsYXlpbmcoYm9vbCBpc1Bs
YXlpbmcpCisKK30KKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHAJKHJl
dmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4
dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNywyMSArMTM3LDIx
IEBAIHZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZVcKIHsKICAgICBBU1NF
UlQoY2xpZW50KCkpOwogICAgIGlmIChhdXRvKiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkKLSAg
ICAgICAgY2xpZW50LT5hZGREYXRhQ3VlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFNl
cmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmNyZWF0ZShXVEZNb3ZlKGRhdGFWYWx1ZSkpLCB0eXBl
KTsKKyAgICAgICAgY2xpZW50LT5hZGREYXRhQ3VlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVu
ZCksIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmNyZWF0ZShXVEZNb3ZlKGRh
dGFWYWx1ZSkpLCB0eXBlKTsKIH0KIAogdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjp1cGRh
dGVEYXRhQ3VlKE1lZGlhVGltZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWVWYWx1ZSYmIGRhdGFWYWx1ZSkKIHsKICAgICBBU1NFUlQoY2xpZW50KCkp
OwogICAgIGlmIChhdXRvKiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkKLSAgICAgICAgY2xpZW50
LT51cGRhdGVEYXRhQ3VlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFNlcmlhbGl6ZWRQ
bGF0Zm9ybURhdGFDdWU6OmNyZWF0ZShXVEZNb3ZlKGRhdGFWYWx1ZSkpKTsKKyAgICAgICAgY2xp
ZW50LT51cGRhdGVEYXRhQ3VlKFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFdlYkNvcmU6
OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmNyZWF0ZShXVEZNb3ZlKGRhdGFWYWx1ZSkpKTsK
IH0KIAogdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpyZW1vdmVEYXRhQ3VlKE1lZGlhVGlt
ZSYmIHN0YXJ0LCBNZWRpYVRpbWUmJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1
ZSYmIGRhdGFWYWx1ZSkKIHsKICAgICBBU1NFUlQoY2xpZW50KCkpOwogICAgIGlmIChhdXRvKiBj
bGllbnQgPSB0aGlzLT5jbGllbnQoKSkKLSAgICAgICAgY2xpZW50LT5yZW1vdmVEYXRhQ3VlKFdU
Rk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWU6OmNy
ZWF0ZShXVEZNb3ZlKGRhdGFWYWx1ZSkpKTsKKyAgICAgICAgY2xpZW50LT5yZW1vdmVEYXRhQ3Vl
KFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCksIFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWU6OmNyZWF0ZShXVEZNb3ZlKGRhdGFWYWx1ZSkpKTsKIH0KICNlbmRpZgogCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1v
dGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Rl
eHRUcmFja1ByaXZhdGVSZW1vdGUuaAkocmV2aXNpb24gMjU3Mjk3KQorKysgU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2lu
Y2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJUZXh0VHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0luYmFuZFRleHRUcmFja1ByaXZhdGUuaD4KQEAgLTQ0LDYg
KzQ1LDEwIEBAIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKIGNsYXNzIFRleHRUcmFj
a1ByaXZhdGVSZW1vdGUgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZSkK
IHB1YmxpYzoKKyAgICB1c2luZyBHZW5lcmljQ3VlRGF0YSA9IFdlYkNvcmU6OkdlbmVyaWNDdWVE
YXRhOworICAgIHVzaW5nIElTT1dlYlZUVEN1ZSA9IFdlYkNvcmU6OklTT1dlYlZUVEN1ZTsKKyAg
ICB1c2luZyBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUgPSBXZWJDb3JlOjpTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU7CisKICAgICBzdGF0aWMgUmVmPFRleHRUcmFja1ByaXZh
dGVSZW1vdGU+IGNyZWF0ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGUmIHBsYXllciwgVHJhY2tQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVuZGlmaWVyLCBUZXh0VHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiAgICAgewogICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBUZXh0VHJhY2tQcml2YXRlUmVtb3RlKHBsYXllciwgaWRlbmRpZmllciwgV1RG
TW92ZShjb25maWd1cmF0aW9uKSkpOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwCShub25leGlzdGVudCkK
KysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJNZWRpYVN0cmF0ZWd5LmgiCisKKyNpbmNsdWRlICJH
UFVQcm9jZXNzQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Q
cm94eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9EZXN0aW5hdGlvbi5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvQXVkaW9JT0NhbGxiYWNrLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJN
ZWRpYVN0cmF0ZWd5Ojp+V2ViTWVkaWFTdHJhdGVneSgpID0gZGVmYXVsdDsKKworc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+IFdlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0
ZUF1ZGlvRGVzdGluYXRpb24oV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29u
c3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAorICAgIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFu
bmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkK
K3sKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgaWYgKG1fdXNlR1BVUHJvY2VzcykKKyAg
ICAgICAgcmV0dXJuIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6Y3JlYXRlKGNhbGxiYWNr
LCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hh
bm5lbHMsIHNhbXBsZVJhdGUpOworI2VuZGlmCisgICAgcmV0dXJuIFdlYkNvcmU6OkF1ZGlvRGVz
dGluYXRpb246OmNyZWF0ZShjYWxsYmFjaywgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENo
YW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1dlYk1lZGlhU3RyYXRlZ3kuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlIDxXZWJDb3JlL01lZGlhU3RyYXRlZ3kuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIFdlYk1lZGlhU3RyYXRlZ3kgOiBwdWJsaWMgV2ViQ29yZTo6TWVkaWFTdHJhdGVneSB7Citw
dWJsaWM6CisgICAgdmlydHVhbCB+V2ViTWVkaWFTdHJhdGVneSgpOworCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorICAgIHZvaWQgc2V0VXNlR1BVUHJvY2Vzcyhib29sIHVzZUdQVVByb2Nlc3Mp
IHsgbV91c2VHUFVQcm9jZXNzID0gdXNlR1BVUHJvY2VzczsgfQorI2VuZGlmCisKK3ByaXZhdGU6
CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1
ZGlvRGVzdGluYXRpb24oV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrJiwKKyAgICAgICAgY29uc3Qg
U3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVu
c2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpIG92ZXJyaWRl
OworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIGJvb2wgbV91c2VHUFVQcm9jZXNzIHsg
ZmFsc2UgfTsKKyNlbmRpZgorCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAkocmV2aXNpb24g
MjU3Mjk3KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDkg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyLmgiCiAKKyNpbmNsdWRlICJEZWNvZGVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9J
bnRTaXplLmg+CisKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAm
JiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAJ
KHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSwxNiAr
MzksMTkgQEAKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lTG9hZGVy
Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViTG9hZGVyU3RyYXRlZ3kuaCIKKyNpbmNsdWRlICJXZWJN
ZWRpYVN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlBhc3Rl
Ym9hcmRPdmVycmlkZXMuaCIKICNpbmNsdWRlICJXZWJQYXN0ZWJvYXJkUHJveHlNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNz
YWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9EZXN0aW5hdGlvbi5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvQ29sb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0xvYWRlclN0cmF0ZWd5Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9N
ZWRpYVN0cmF0ZWd5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24u
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VHcm91
cC5oPgpAQCAtNzMsNiArNzYsOCBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAorY2xhc3MgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbjsKKwogdm9pZCBXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxpemUoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM+IHBsYXRmb3JtU3RyYXRlZ2llczsKQEAgLTkzLDYg
Kzk4LDExIEBAIFBhc3RlYm9hcmRTdHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVnaWUKICAgICBy
ZXR1cm4gdGhpczsKIH0KIAorTWVkaWFTdHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpj
cmVhdGVNZWRpYVN0cmF0ZWd5KCkKK3sKKyAgICByZXR1cm4gbmV3IFdlYk1lZGlhU3RyYXRlZ3k7
Cit9CisKIEJsb2JSZWdpc3RyeSogV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVCbG9iUmVn
aXN0cnkoKQogewogICAgIHJldHVybiBuZXcgQmxvYlJlZ2lzdHJ5UHJveHk7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcgQEAgcHJpdmF0ZToKICAgICAvLyBXZWJDb3JlOjpQ
bGF0Zm9ybVN0cmF0ZWdpZXMKICAgICBXZWJDb3JlOjpMb2FkZXJTdHJhdGVneSogY3JlYXRlTG9h
ZGVyU3RyYXRlZ3koKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpQYXN0ZWJvYXJkU3RyYXRlZ3kq
IGNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVneSgpIG92ZXJyaWRlOworICAgIFdlYkNvcmU6Ok1lZGlh
U3RyYXRlZ3kqIGNyZWF0ZU1lZGlhU3RyYXRlZ3koKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpC
bG9iUmVnaXN0cnkqIGNyZWF0ZUJsb2JSZWdpc3RyeSgpIG92ZXJyaWRlOwogCiAgICAgLy8gV2Vi
Q29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gMjU3Mjk3KQorKysgU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMSw2
ICsxMDEsNyBAQAogI2luY2x1ZGUgIldlYkluc3BlY3RvclVJTWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJXZWJMb2FkZXJTdHJhdGVneS5oIgogI2luY2x1ZGUgIldlYk1lZGlhS2V5U3RvcmFnZU1hbmFn
ZXIuaCIKKyNpbmNsdWRlICJXZWJNZWRpYVN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiV2ViTm90aWZp
Y2F0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuaCIK
ICNpbmNsdWRlICJXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCkBAIC0xOTksNiArMjAwLDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL1BpbmdMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bs
YXRmb3JtS2V5Ym9hcmRFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVN0cmF0ZWdpZXMuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRvY3VtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
b2ludGVyQ2FwdHVyZUNvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ByaW50Q29udGV4
dC5oPgpAQCAtMzY4NSw2ICszNjg3LDggQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNl
cyhjb25zdCBXZQogICAgICAgICBtX2RyYXdpbmdBcmVhLT51cGRhdGVQcmVmZXJlbmNlcyhzdG9y
ZSk7CiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgLy8gRklYTUU6IHVzZUdQVVByb2Nl
c3NGb3JNZWRpYSBzaG91bGQgYmUgYSBSdW50aW1lRW5hYmxlZEZlYXR1cmUgc2luY2UgaXQncyBn
bG9iYWwuCisgICAgc3RhdGljX2Nhc3Q8V2ViTWVkaWFTdHJhdGVneSY+KHBsYXRmb3JtU3RyYXRl
Z2llcygpLT5tZWRpYVN0cmF0ZWd5KCkpLnNldFVzZUdQVVByb2Nlc3Moc2V0dGluZ3MudXNlR1BV
UHJvY2Vzc0Zvck1lZGlhKCkpOwogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnN1cHBsZW1l
bnQ8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyPigpLT51cGRhdGVQcmVmZXJlbmNlcyhzZXR0aW5n
cyk7CiAjZW5kaWYKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAyLTI0ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3
ZWJraXQub3JnPgorCisgICAgICAgIENyZWF0ZSBBdWRpb0Rlc3RpbmF0aW9uIGluIHRoZSBHUFUg
cHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA4MTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkZWQgV2ViTWVkaWFTdHJhdGVneSB3aGljaCBpcyBhIHdyYXBwZXIgYXJvdW5kIEF1ZGlvRGVz
dGluYXRpb246OmNyZWF0ZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5tbToKKyAgICAgICAgKFdlYk1lZGlhU3RyYXRlZ3kpOiBBZGRlZC4KKyAgICAgICAgKFdl
YlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFTdHJhdGVneSk6CisKIDIwMjAtMDItMjQg
IFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1l
IHRoZSBjbGFzaGluZyBXZWJPdmVybGF5TGF5ZXIgY2xhc3NlcwpJbmRleDogU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLmgJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCSh3b3JraW5nIGNvcHkp
CkBAIC00Myw2ICs0Myw3IEBAIHByaXZhdGU6CiAgICAgLy8gV2ViQ29yZTo6UGxhdGZvcm1TdHJh
dGVnaWVzCiAgICAgV2ViQ29yZTo6TG9hZGVyU3RyYXRlZ3kqIGNyZWF0ZUxvYWRlclN0cmF0ZWd5
KCkgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0
ZWJvYXJkU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpNZWRpYVN0cmF0ZWd5KiBj
cmVhdGVNZWRpYVN0cmF0ZWd5KCkgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5
KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSBvdmVycmlkZTsKIAogICAgIC8vIFdlYkNvcmU6OlBhc3Rl
Ym9hcmRTdHJhdGVneQpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQkocmV2aXNp
b24gMjU3Mjk3KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw5ICsyOCwxMSBAQAog
I2ltcG9ydCAiV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgogI2ltcG9ydCAiV2ViUGx1Z2lu
UGFja2FnZS5oIgogI2ltcG9ydCAiV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgiCisjaW1wb3J0
IDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvQmxvYlJlZ2lz
dHJ5SW1wbC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db2xvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9G
cmFtZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9NZWRpYVN0cmF0ZWd5Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYXN0ZWJvYXJk
SXRlbUluZm8uaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1QYXN0ZWJvYXJkLmg+CkBAIC02
Miw2ICs2NCwyMSBAQCBQYXN0ZWJvYXJkU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2llCiAg
ICAgcmV0dXJuIHRoaXM7CiB9CiAKK2NsYXNzIFdlYk1lZGlhU3RyYXRlZ3kgZmluYWwgOiBwdWJs
aWMgTWVkaWFTdHJhdGVneSB7Citwcml2YXRlOgorCisgICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlv
RGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oQXVkaW9JT0NhbGxiYWNrJiBjYWxs
YmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAorICAgICAgICB1bnNpZ25lZCBudW1i
ZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0
IHNhbXBsZVJhdGUpIG92ZXJyaWRlCisgICAgeworICAgICAgICByZXR1cm4gQXVkaW9EZXN0aW5h
dGlvbjo6Y3JlYXRlKGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5l
bHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOworICAgIH0KK307CisKK01l
ZGlhU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFTdHJhdGVneSgp
Cit7CisgICAgcmV0dXJuIG5ldyBXZWJNZWRpYVN0cmF0ZWd5OworfQorCiBjbGFzcyBXZWJCbG9i
UmVnaXN0cnkgZmluYWwgOiBwdWJsaWMgQmxvYlJlZ2lzdHJ5IHsKIHByaXZhdGU6CiAgICAgdm9p
ZCByZWdpc3RlckZpbGVCbG9iVVJMKGNvbnN0IFVSTCYgdXJsLCBSZWY8QmxvYkRhdGFGaWxlUmVm
ZXJlbmNlPiYmIHJlZmVyZW5jZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWwgeyBt
X2Jsb2JSZWdpc3RyeS5yZWdpc3RlckZpbGVCbG9iVVJMKHVybCwgV1RGTW92ZShyZWZlcmVuY2Up
LCBjb250ZW50VHlwZSk7IH0KSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cJKHJldmlz
aW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAyLTI0ICBSeW9zdWtlIE5pd2EgIDxybml3
YUB3ZWJraXQub3JnPgorCisgICAgICAgIENyZWF0ZSBBdWRpb0Rlc3RpbmF0aW9uIGluIHRoZSBH
UFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA4MTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkZWQgV2ViTWVkaWFTdHJhdGVneSB3aGljaCBpcyBhIHdyYXBwZXIgYXJvdW5kIEF1ZGlv
RGVzdGluYXRpb246OmNyZWF0ZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChXZWJNZWRpYVN0cmF0ZWd5KTogQWRkZWQuCisg
ICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3kpOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgorCiAyMDIwLTAy
LTEzICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNTUxNTgsIDI1NTQwNSBhbmQgcjI1NTQ4NgpJbmRleDogU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9CbG9i
UmVnaXN0cnkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Jsb2JSZWdpc3RyeUltcGwuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVN0cmF0
ZWd5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VHcm91cC5oPgpAQCAt
NjAsNiArNjEsMjEgQEAgUGFzdGVib2FyZFN0cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZQog
ICAgIHJldHVybiBudWxscHRyOwogfQogCitjbGFzcyBXZWJNZWRpYVN0cmF0ZWd5IGZpbmFsIDog
cHVibGljIE1lZGlhU3RyYXRlZ3kgeworcHJpdmF0ZToKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxB
dWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKEF1ZGlvSU9DYWxsYmFjayYg
Y2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKKyAgICAgICAgdW5zaWduZWQg
bnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBm
bG9hdCBzYW1wbGVSYXRlKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgcmV0dXJuIEF1ZGlvRGVz
dGluYXRpb246OmNyZWF0ZShjYWxsYmFjaywgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENo
YW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKKyAgICB9Cit9Owor
CitNZWRpYVN0cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRl
Z3koKQoreworICAgIHJldHVybiBuZXcgV2ViTWVkaWFTdHJhdGVneTsKK30KKwogY2xhc3MgV2Vi
QmxvYlJlZ2lzdHJ5IGZpbmFsIDogcHVibGljIEJsb2JSZWdpc3RyeSB7CiBwcml2YXRlOgogICAg
IHZvaWQgcmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmIHVybCwgUmVmPEJsb2JEYXRhRmls
ZVJlZmVyZW5jZT4mJiByZWZlcmVuY2UsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFs
IHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0ZXJGaWxlQmxvYlVSTCh1cmwsIFdURk1vdmUocmVmZXJl
bmNlKSwgY29udGVudFR5cGUpOyB9CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAko
cmV2aXNpb24gMjU3Mjk3KQorKysgU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDgg
QEAgcHJpdmF0ZToKICAgICBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMoKTsKIAogICAgIC8vIFdlYkNv
cmU6OlBsYXRmb3JtU3RyYXRlZ2llcwotICAgIHZpcnR1YWwgV2ViQ29yZTo6TG9hZGVyU3RyYXRl
Z3kqIGNyZWF0ZUxvYWRlclN0cmF0ZWd5KCk7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpQYXN0ZWJv
YXJkU3RyYXRlZ3kqIGNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVneSgpOwotICAgIHZpcnR1YWwgV2Vi
Q29yZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKTsKKyAgICBXZWJDb3JlOjpM
b2FkZXJTdHJhdGVneSogY3JlYXRlTG9hZGVyU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAgICBXZWJD
b3JlOjpQYXN0ZWJvYXJkU3RyYXRlZ3kqIGNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVneSgpIG92ZXJy
aWRlOworICAgIFdlYkNvcmU6Ok1lZGlhU3RyYXRlZ3kqIGNyZWF0ZU1lZGlhU3RyYXRlZ3koKSBv
dmVycmlkZTsKKyAgICBXZWJDb3JlOjpCbG9iUmVnaXN0cnkqIGNyZWF0ZUJsb2JSZWdpc3RyeSgp
IG92ZXJyaWRlOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391715</attachid>
            <date>2020-02-25 18:45:44 -0800</date>
            <delta_ts>2020-02-25 19:01:29 -0800</delta_ts>
            <desc>GTK+ build fix attempt 3</desc>
            <filename>bug-208179-20200225184543.patch</filename>
            <type>text/plain</type>
            <size>98752</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDIwLTAyLTI0ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIENyZWF0ZSBBdWRpb0Rlc3RpbmF0
aW9uIGluIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA4MTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIGFuIGFic3RyYWN0aW9uIGFyb3VuZCB0aGUgY3JlYXRpb24gb2Yg
QXVkaW9EZXN0aW5hdGlvbiB1c2luZyBuZXdseSBpbnRyb2R1Y2VkIG1lZGlhU3RyYXRlZ3kuCisK
KyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vRGVm
YXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZmF1bHRB
dWRpb0Rlc3RpbmF0aW9uTm9kZTo6Y3JlYXRlRGVzdGluYXRpb24pOiBVc2UgTWVkaWFTdHJhdGVn
eTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5Lmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJhdGVneSk6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1T
dHJhdGVnaWVzOjptZWRpYVN0cmF0ZWd5KTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vQXVkaW9CdXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9u
Lmg6CisKIDIwMjAtMDItMjQgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggZm9yIFdpbkNhaXJvIHBvcnQKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQkocmV2aXNpb24gMjU3Mjk3KQorKysgU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAtOTUxLDYgKzk1MSw3IEBAIHNldChXZWJD
b3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lz
dHJ5LmgKICAgICBwbGF0Zm9ybS9NZWRpYVNhbXBsZS5oCiAgICAgcGxhdGZvcm0vTWVkaWFTZWxl
Y3Rpb25PcHRpb24uaAorICAgIHBsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaAogICAgIHBsYXRmb3Jt
L05vdEltcGxlbWVudGVkLmgKICAgICBwbGF0Zm9ybS9PcmllbnRhdGlvbk5vdGlmaWVyLmgKICAg
ICBwbGF0Zm9ybS9QT0RJbnRlcnZhbC5oCkBAIC0xMDIyLDcgKzEwMjMsMTIgQEAgc2V0KFdlYkNv
cmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2FuaW1hdGlvbi9Bbmlt
YXRpb25VdGlsaXRpZXMuaAogICAgIHBsYXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5o
CiAKKyAgICBwbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5LmgKKyAgICBwbGF0Zm9ybS9hdWRpby9B
dWRpb0J1cy5oCisgICAgcGxhdGZvcm0vYXVkaW8vQXVkaW9DaGFubmVsLmgKKyAgICBwbGF0Zm9y
bS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmgKICAgICBwbGF0Zm9ybS9hdWRpby9BdWRpb0hhcmR3
YXJlTGlzdGVuZXIuaAorICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvSU9DYWxsYmFjay5oCiAgICAg
cGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKICAgICBwbGF0Zm9ybS9hdWRpby9BdWRpb1Nv
dXJjZVByb3ZpZGVyLmgKICAgICBwbGF0Zm9ybS9hdWRpby9BdWRpb1N0cmVhbURlc2NyaXB0aW9u
LmgKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVz
dGluYXRpb25Ob2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAJKHJldmlzaW9uIDI1NzI5NykK
KysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRp
b25Ob2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsOCBAQAogI2luY2x1ZGUgIkF1
ZGlvQ29udGV4dC5oIgogI2luY2x1ZGUgIkF1ZGlvRGVzdGluYXRpb24uaCIKICNpbmNsdWRlICJM
b2dnaW5nLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJhdGVneS5oIgorI2luY2x1ZGUgIlBsYXRmb3Jt
U3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+
CkBAIC04NCw4ICs4Niw4IEBAIHZvaWQgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpjcmVh
dGUKIHsKICAgICBmbG9hdCBoYXJkd2FyZVNhbXBsZVJhdGUgPSBBdWRpb0Rlc3RpbmF0aW9uOjpo
YXJkd2FyZVNhbXBsZVJhdGUoKTsKICAgICBMT0coV2ViQXVkaW8sICI+Pj4+IGhhcmR3YXJlU2Ft
cGxlUmF0ZSA9ICVmXG4iLCBoYXJkd2FyZVNhbXBsZVJhdGUpOwotICAgIAotICAgIG1fZGVzdGlu
YXRpb24gPSBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoKnRoaXMsIG1faW5wdXREZXZpY2VJZCwg
bV9udW1iZXJPZklucHV0Q2hhbm5lbHMsIGNoYW5uZWxDb3VudCgpLCBoYXJkd2FyZVNhbXBsZVJh
dGUpOworCisgICAgbV9kZXN0aW5hdGlvbiA9IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5tZWRpYVN0
cmF0ZWd5KCkuY3JlYXRlQXVkaW9EZXN0aW5hdGlvbigqdGhpcywgbV9pbnB1dERldmljZUlkLCBt
X251bWJlck9mSW5wdXRDaGFubmVscywgY2hhbm5lbENvdW50KCksIGhhcmR3YXJlU2FtcGxlUmF0
ZSk7CiB9CiAKIHZvaWQgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjplbmFibGVJbnB1dChj
b25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTcyOTcpCisrKyBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTI4ODksNiArMjg4OSw4IEBACiAJCTlBQjFGMzgwMThFMjQ4OUEwMDUzNDc0MyAv
KiBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5QUIxRjM3RTE4RTI0ODlBMDA1MzQ3NDMgLyogQ1NTVG9MZW5n
dGhDb252ZXJzaW9uRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTlCMDJFMEM4MjM1RUFEMkEwMDQwNDRCMiAvKiBUZXh0TWFuaXB1bGF0aW9u
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOUIwMkUwQzMyMzVFNzZBQTAwNDA0NEIyIC8qIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIw
QUJDQUUyMzZCQjQzMTAwQjQ1MDg1IC8qIFRhc2tTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMEFCQ0FDMjM2QkI0MEEwMEI0NTA4NSAvKiBU
YXNrU291cmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJOUIxMjI5QzQyM0ZFNEJEMjAwOENBNzUxIC8qIEF1ZGlvRGVzdGluYXRpb25Db2NvYS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzMTUxODYy
MzU3NzQ1RTAwMTE1RTZFIC8qIEF1ZGlvRGVzdGluYXRpb25Db2NvYS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTlCMTIyOUM3MjNGRTRENkEwMDhD
QTc1MSAvKiBNZWRpYVN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5QjEyMjlDNjIzRkU0RDVGMDA4Q0E3NTEgLyogTWVkaWFTdHJhdGVneS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMjRE
RThFMTUxOTRCOTUwMEM1OUMyNyAvKiBIVE1MQkRJRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIyNERFOEMxNTE5NEI5NTAwQzU5QzI3IC8q
IEhUTUxCRElFbGVtZW50LmggKi87IH07CiAJCTlCMjdGQzYwMjM0RDlBREIwMDM5NEE0NiAvKiBX
aW5kb3dFdmVudExvb3AuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDlCMjdGQzVFMjM0RDlBREEwMDM5NEE0NiAvKiBXaW5kb3dFdmVudExvb3AuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjJEOEE3OTE0
OTk3Q0NGMDBFQ0VGM0UgLyogVW5kb1N0ZXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDlCMkQ4QTc4MTQ5OTdDQ0YwMEVDRUYzRSAvKiBVbmRvU3RlcC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01MDY4
LDEwICs1MDcwLDEwIEBACiAJCUZEMzE2MDM2MTJCMDI2NzYwMEMxQTM1OSAvKiBTY3JpcHRQcm9j
ZXNzb3JOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGRDMxNUZFQzEyQjAyNjc2MDBDMUEzNTkgLyogU2NyaXB0UHJvY2Vzc29yTm9kZS5oICovOyB9
OwogCQlGRDMxNjAzQzEyQjAyNjc2MDBDMUEzNTkgLyogUmVhbHRpbWVBbmFseXNlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTVGRjIxMkIwMjY3
NjAwQzFBMzU5IC8qIFJlYWx0aW1lQW5hbHlzZXIuaCAqLzsgfTsKIAkJRkQzMTYwM0UxMkIwMjY3
NjAwQzFBMzU5IC8qIEFuYWx5c2VyTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRkQzMTVGRjQxMkIwMjY3NjAwQzFBMzU5IC8qIEFuYWx5c2VyTm9k
ZS5oICovOyB9OwotCQlGRDMxNjA3QTEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9BcnJheS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNDQxMkIw
MjZGNzAwQzFBMzU5IC8qIEF1ZGlvQXJyYXkuaCAqLzsgfTsKLQkJRkQzMTYwN0MxMkIwMjZGNzAw
QzFBMzU5IC8qIEF1ZGlvQnVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGRDMxNjA0NjEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9CdXMuaCAqLzsgfTsK
LQkJRkQzMTYwN0UxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvQ2hhbm5lbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNDgxMkIwMjZGNzAwQzFB
MzU5IC8qIEF1ZGlvQ2hhbm5lbC5oICovOyB9OwotCQlGRDMxNjA3RjEyQjAyNkY3MDBDMUEzNTkg
LyogQXVkaW9EZXN0aW5hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRkQzMTYwNDkxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb24u
aCAqLzsgfTsKKwkJRkQzMTYwN0ExMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvQXJyYXkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDQ0MTJCMDI2
RjcwMEMxQTM1OSAvKiBBdWRpb0FycmF5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJRkQzMTYwN0MxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvQnVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA0
NjEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9CdXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQlGRDMxNjA3RTEyQjAyNkY3MDBDMUEzNTkgLyogQXVk
aW9DaGFubmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGRDMxNjA0ODEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9DaGFubmVsLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRkQzMTYwN0YxMkIwMjZGNzAw
QzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDQ5MTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0Rlc3Rp
bmF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJRkQzMTYwODAxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRFNQS2VybmVsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA0QTEyQjAyNkY3MDBD
MUEzNTkgLyogQXVkaW9EU1BLZXJuZWwuaCAqLzsgfTsKIAkJRkQzMTYwODIxMkIwMjZGNzAwQzFB
MzU5IC8qIEF1ZGlvRFNQS2VybmVsUHJvY2Vzc29yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA0QzEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9E
U1BLZXJuZWxQcm9jZXNzb3IuaCAqLzsgfTsKIAkJRkQzMTYwODMxMkIwMjZGNzAwQzFBMzU5IC8q
IEF1ZGlvRmlsZVJlYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkQzMTYwNEQxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRmlsZVJlYWRlci5oICov
OyB9OwpAQCAtNTE0OSw3ICs1MTUxLDcgQEAKIAkJRkRCMTcwMDYxNEEyQkFCMjAwQTJCNUQ5IC8q
IE11bHRpQ2hhbm5lbFJlc2FtcGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkRCMTcwMDQxNEEyQkFCMjAwQTJCNUQ5IC8qIE11bHRpQ2hhbm5lbFJl
c2FtcGxlci5oICovOyB9OwogCQlGREJENDgwRDE1OUJDNjg3MDA5M0VCNEYgLyogSlNNZWRpYVN0
cmVhbUF1ZGlvU291cmNlTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRkRCRDQ4MEIxNTlCQzY4NzAwOTNFQjRGIC8qIEpTTWVkaWFTdHJlYW1BdWRp
b1NvdXJjZU5vZGUuaCAqLzsgfTsKIAkJRkRDNTRGMDUxMzk5QjBEQTAwOEQ5MTE3IC8qIEJpcXVh
ZEZpbHRlck5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEZEQzU0RjAyMTM5OUIwREEwMDhEOTExNyAvKiBCaXF1YWRGaWx0ZXJOb2RlLmggKi87IH07
Ci0JCUZERTJENTVCMTU5RTY2RUIwMERDQ0NGOCAvKiBBdWRpb0lPQ2FsbGJhY2suaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZERTJENTVBMTU5RTY2RUIw
MERDQ0NGOCAvKiBBdWRpb0lPQ2FsbGJhY2suaCAqLzsgfTsKKwkJRkRFMkQ1NUIxNTlFNjZFQjAw
RENDQ0Y4IC8qIEF1ZGlvSU9DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRkRFMkQ1NUExNTlFNjZFQjAwRENDQ0Y4IC8qIEF1ZGlvSU9DYWxs
YmFjay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUZERUE2MjQzMTUyMTAyRTIwMDQ3OURGMCAvKiBKU09zY2lsbGF0b3JOb2RlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGREVBNjI0MTE1MjEwMkUyMDA0
NzlERjAgLyogSlNPc2NpbGxhdG9yTm9kZS5oICovOyB9OwogCQlGREVBNjI0NzE1MjEwMkZDMDA0
NzlERjAgLyogSlNQZXJpb2RpY1dhdmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZERUE2MjQ1MTUyMTAyRkMwMDQ3OURGMCAvKiBKU1BlcmlvZGljV2F2
ZS5oICovOyB9OwogCQlGREYwOURDOTEzOTlCNjIyMDA2ODhFNUIgLyogSlNCaXF1YWRGaWx0ZXJO
b2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGREYw
OURDNzEzOTlCNjIyMDA2ODhFNUIgLyogSlNCaXF1YWRGaWx0ZXJOb2RlLmggKi87IH07CkBAIC0x
MTIwMyw2ICsxMTIwNSw3IEBACiAJCTlCMEFCQ0E0MjM2NzlBQ0YwMEI0NTA4NSAvKiBXb3JrZXJF
dmVudExvb3AuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29ya2VyRXZlbnRM
b29wLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMEFCQ0FDMjM2QkI0MEEwMEI0
NTA4NSAvKiBUYXNrU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRhc2tTb3VyY2UuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwRkU4NzMxRDlFMDJERjAwNEE4QUNCIC8qIERvY3Vt
ZW50T3JTaGFkb3dSb290LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEb2N1bWVudE9yU2hh
ZG93Um9vdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCMTIyOUM2MjNGRTRE
NUYwMDhDQTc1MSAvKiBNZWRpYVN0cmF0ZWd5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU3RyYXRl
Z3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIxMzI1N0IxRjNEMkFCQTAwREFB
QjY5IC8qIERhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IERhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOUIxOUI2N0UxQjk2NEU1MjAwMzQ4NzQ1IC8qIFNoYWRvd1Jvb3QuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1Jvb3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5QjFBQjA3OTE2NDhDNjlEMDA1MUYzRjIgLyogSFRNTEZvcm1Db250cm9sc0Nv
bGxlY3Rpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1OTMyLDYgKzI1OTM1LDcgQEAKIAkJCQlDREYyQjAw
MzE4MUYwNTlDMDBGMkI0MjQgLyogTWVkaWFEZXNjcmlwdGlvbi5oICovLAogCQkJCUNENjQxRUM3
MTgxRUQ2MDEwMEVFNEM0MSAvKiBNZWRpYVNhbXBsZS5oICovLAogCQkJCUExN0QyNzVEMUVBQzU3
OTgwMEJGMDFFNyAvKiBNZWRpYVNlbGVjdGlvbk9wdGlvbi5oICovLAorCQkJCTlCMTIyOUM2MjNG
RTRENUYwMDhDQTc1MSAvKiBNZWRpYVN0cmF0ZWd5LmggKi8sCiAJCQkJQkM3NzJDNEMwQzRFQjMw
NDAwODMyODVGIC8qIE1JTUVUeXBlUmVnaXN0cnkuY3BwICovLAogCQkJCUJDNzcyQzREMEM0RUIz
MDQwMDgzMjg1RiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmggKi8sCiAJCQkJRTE1MTNENTAxNjc3RjA4
ODAwMTQ5RkNCIC8qIE5vdEltcGxlbWVudGVkLmNwcCAqLywKQEAgLTI5MDU3LDYgKzI5MDYxLDcg
QEAKIAkJCQlGRDMxNjA3RTEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9DaGFubmVsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGRDMxNjAwNTEyQjAyNjc2MDBDMUEzNTkgLyogQXVkaW9Db250ZXh0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA3RjEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9EZXN0
aW5hdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUIxMjI5QzQyM0ZFNEJEMjAwOENBNzUxIC8q
IEF1ZGlvRGVzdGluYXRpb25Db2NvYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwQkQxMkIw
MjcyQTAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb25NYWMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZEMzE2MDA4MTJCMDI2NzYwMEMxQTM1OSAvKiBBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRkQzMTYwODAxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRFNQS2VybmVs
LmggaW4gSGVhZGVycyAqLywKQEAgLTMxNDkwLDYgKzMxNDk1LDcgQEAKIAkJCQlDRDY0MUVCMzE4
MThGNUVEMDBFRTRDNDEgLyogTWVkaWFTb3VyY2VQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDREM4QjVBNzE4MDQ3NEY3MDAxNkU2ODUgLyogTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQ0REQzFFN0ExOEE5NTJGMzAwMjdBOUQ0IC8qIE1lZGlhU291
cmNlUHJpdmF0ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUIxMjI5QzcyM0ZFNEQ2QTAw
OENBNzUxIC8qIE1lZGlhU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTE1MTdE
MTREMUMwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5
NEMxN0QxNzA5NjAwNDIwQUExIC8qIE1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTA3ODMyMjg1MTgwMTNFRDgwMDk5OUUwQyAvKiBNZWRpYVN0cmVh
bUF1ZGlvU291cmNlLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL01lZGlhU3RyYXRlZ3kuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9NZWRpYVN0cmF0ZWd5LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTWVkaWFTdHJhdGVneS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXVkaW9EZXN0aW5hdGlvbjsKK2NsYXNzIEF1ZGlvSU9D
YWxsYmFjazsKKworY2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFTdHJhdGVneSB7CitwdWJsaWM6
CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVk
aW9EZXN0aW5hdGlvbigKKyAgICAgICAgQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBp
bnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51
bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpID0gMDsKK3Byb3RlY3RlZDoK
KyAgICB2aXJ0dWFsIH5NZWRpYVN0cmF0ZWd5KCkgPSBkZWZhdWx0OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TdHJh
dGVnaWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1T
dHJhdGVnaWVzLmgJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtU3RyYXRlZ2llcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQmxvYlJlZ2lzdHJ5OwogY2xhc3MgTG9hZGVyU3Ry
YXRlZ3k7CitjbGFzcyBNZWRpYVN0cmF0ZWd5OwogY2xhc3MgUGFzdGVib2FyZFN0cmF0ZWd5Owog
CiBjbGFzcyBQbGF0Zm9ybVN0cmF0ZWdpZXMgewpAQCAtMzksNyArNDAsNyBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICBtX2xvYWRlclN0cmF0ZWd5ID0gY3JlYXRlTG9hZGVyU3RyYXRlZ3koKTsKICAg
ICAgICAgcmV0dXJuIG1fbG9hZGVyU3RyYXRlZ3k7CiAgICAgfQotICAgIAorCiAgICAgUGFzdGVi
b2FyZFN0cmF0ZWd5KiBwYXN0ZWJvYXJkU3RyYXRlZ3koKQogICAgIHsKICAgICAgICAgaWYgKCFt
X3Bhc3RlYm9hcmRTdHJhdGVneSkKQEAgLTQ3LDYgKzQ4LDEzIEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIG1fcGFzdGVib2FyZFN0cmF0ZWd5OwogICAgIH0KIAorICAgIE1lZGlhU3RyYXRlZ3km
IG1lZGlhU3RyYXRlZ3koKQorICAgIHsKKyAgICAgICAgaWYgKCFtX21lZGlhU3RyYXRlZ3kpCisg
ICAgICAgICAgICBtX21lZGlhU3RyYXRlZ3kgPSBjcmVhdGVNZWRpYVN0cmF0ZWd5KCk7CisgICAg
ICAgIHJldHVybiAqbV9tZWRpYVN0cmF0ZWd5OworICAgIH0KKwogICAgIEJsb2JSZWdpc3RyeSog
YmxvYlJlZ2lzdHJ5KCkKICAgICB7CiAgICAgICAgIGlmICghbV9ibG9iUmVnaXN0cnkpCkBAIC02
NCwxMCArNzIsMTIgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIExvYWRlclN0
cmF0ZWd5KiBjcmVhdGVMb2FkZXJTdHJhdGVneSgpID0gMDsKICAgICB2aXJ0dWFsIFBhc3RlYm9h
cmRTdHJhdGVneSogY3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkgPSAwOworICAgIHZpcnR1YWwg
TWVkaWFTdHJhdGVneSogY3JlYXRlTWVkaWFTdHJhdGVneSgpID0gMDsKICAgICB2aXJ0dWFsIEJs
b2JSZWdpc3RyeSogY3JlYXRlQmxvYlJlZ2lzdHJ5KCkgPSAwOwogCiAgICAgTG9hZGVyU3RyYXRl
Z3kqIG1fbG9hZGVyU3RyYXRlZ3kgeyB9OwogICAgIFBhc3RlYm9hcmRTdHJhdGVneSogbV9wYXN0
ZWJvYXJkU3RyYXRlZ3kgeyB9OworICAgIE1lZGlhU3RyYXRlZ3kqIG1fbWVkaWFTdHJhdGVneSB7
IH07CiAgICAgQmxvYlJlZ2lzdHJ5KiBtX2Jsb2JSZWdpc3RyeSB7IH07CiB9OwogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmgJKHJldmlzaW9uIDI1NzI5NykK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTY2LDEwICs2NiwxMCBAQCBwdWJsaWM6CiAgICAgLy8gYWxsb2NhdGUgaW5kaWNhdGVz
IHdoZXRoZXIgb3Igbm90IHRvIGluaXRpYWxseSBoYXZlIHRoZSBBdWRpb0NoYW5uZWxzIGNyZWF0
ZWQgd2l0aCBtYW5hZ2VkIHN0b3JhZ2UuCiAgICAgLy8gTm9ybWFsIHVzYWdlIGlzIHRvIHBhc3Mg
dHJ1ZSBoZXJlLCBpbiB3aGljaCBjYXNlIHRoZSBBdWRpb0NoYW5uZWxzIHdpbGwgbWVtb3J5LW1h
bmFnZSB0aGVpciBvd24gc3RvcmFnZS4KICAgICAvLyBJZiBhbGxvY2F0ZSBpcyBmYWxzZSB0aGVu
IHNldENoYW5uZWxNZW1vcnkoKSBoYXMgdG8gYmUgY2FsbGVkIGxhdGVyIG9uIGZvciBlYWNoIGNo
YW5uZWwgYmVmb3JlIHRoZSBBdWRpb0J1cyBpcyB1c2VhYmxlLi4uCi0gICAgc3RhdGljIFJlZlB0
cjxBdWRpb0J1cz4gY3JlYXRlKHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBsZW5n
dGgsIGJvb2wgYWxsb2NhdGUgPSB0cnVlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVm
UHRyPEF1ZGlvQnVzPiBjcmVhdGUodW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IGxl
bmd0aCwgYm9vbCBhbGxvY2F0ZSA9IHRydWUpOwogCiAgICAgLy8gVGVsbHMgdGhlIGdpdmVuIGNo
YW5uZWwgdG8gdXNlIGFuIGV4dGVybmFsbHkgYWxsb2NhdGVkIGJ1ZmZlci4KLSAgICB2b2lkIHNl
dENoYW5uZWxNZW1vcnkodW5zaWduZWQgY2hhbm5lbEluZGV4LCBmbG9hdCogc3RvcmFnZSwgc2l6
ZV90IGxlbmd0aCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDaGFubmVsTWVtb3J5KHVu
c2lnbmVkIGNoYW5uZWxJbmRleCwgZmxvYXQqIHN0b3JhZ2UsIHNpemVfdCBsZW5ndGgpOwogCiAg
ICAgLy8gQ2hhbm5lbHMKICAgICB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzKCkgY29uc3QgeyBy
ZXR1cm4gbV9jaGFubmVscy5zaXplKCk7IH0KQEAgLTEyNiw3ICsxMjYsNyBAQCBwdWJsaWM6CiAK
ICAgICAvLyBDb3BpZXMgdGhlIHNhbXBsZXMgZnJvbSB0aGUgc291cmNlIGJ1cyB0byB0aGlzIG9u
ZS4KICAgICAvLyBUaGlzIGlzIGp1c3QgYSBzaW1wbGUgcGVyLWNoYW5uZWwgY29weSBpZiB0aGUg
bnVtYmVyIG9mIGNoYW5uZWxzIG1hdGNoLCBvdGhlcndpc2UgYW4gdXAtbWl4IG9yIGRvd24tbWl4
IGlzIGRvbmUuCi0gICAgdm9pZCBjb3B5RnJvbShjb25zdCBBdWRpb0J1cyYgc291cmNlQnVzLCBD
aGFubmVsSW50ZXJwcmV0YXRpb24gPSBTcGVha2Vycyk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBjb3B5RnJvbShjb25zdCBBdWRpb0J1cyYgc291cmNlQnVzLCBDaGFubmVsSW50ZXJwcmV0YXRp
b24gPSBTcGVha2Vycyk7CiAKICAgICAvLyBTdW1zIHRoZSBzYW1wbGVzIGZyb20gdGhlIHNvdXJj
ZSBidXMgdG8gdGhpcyBvbmUuCiAgICAgLy8gVGhpcyBpcyBqdXN0IGEgc2ltcGxlIHBlci1jaGFu
bmVsIHN1bW1pbmcgaWYgdGhlIG51bWJlciBvZiBjaGFubmVscyBtYXRjaCwgb3RoZXJ3aXNlIGFu
IHVwLW1peCBvciBkb3duLW1peCBpcyBkb25lLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaAkocmV2aXNpb24gMjU3Mjk3KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC00NSw3ICs0NSw3IEBAIGNsYXNzIEF1ZGlvRGVzdGluYXRpb24gewogcHVibGlj
OgogICAgIC8vIFBhc3MgaW4gKG51bWJlck9mSW5wdXRDaGFubmVscyA+IDApIGlmIGxpdmUvbG9j
YWwgYXVkaW8gaW5wdXQgaXMgZGVzaXJlZC4KICAgICAvLyBQb3J0LXNwZWNpZmljIGRldmljZSBp
ZGVudGlmaWNhdGlvbiBpbmZvcm1hdGlvbiBmb3IgbGl2ZS9sb2NhbCBpbnB1dCBzdHJlYW1zIGNh
biBiZSBwYXNzZWQgaW4gdGhlIGlucHV0RGV2aWNlSWQuCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3Ry
aW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2ln
bmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpOworICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRl
KEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQg
bnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBm
bG9hdCBzYW1wbGVSYXRlKTsKIAogICAgIHZpcnR1YWwgfkF1ZGlvRGVzdGluYXRpb24oKSA9IGRl
ZmF1bHQ7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDExOSBAQAorMjAyMC0wMi0yNCAg
Unlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBDcmVhdGUgQXVkaW9E
ZXN0aW5hdGlvbiBpbiB0aGUgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENyZWF0ZSBBdWRpb0Rlc3RpbmF0aW9uIGluIHRoZSBHUFUg
cHJvY2VzcyBpbnN0ZWFkIG9mIHRoZSBXZWJDb250ZW50IHByb2Nlc3MgZm9yIFdlYkF1ZGlvIEFQ
SSB3aGVuCisgICAgICAgIHRoZSBNZWRpYS1pbi1HUFUtcHJvY2VzcyBmZWF0dXJlIGlzIGVuYWJs
ZWQuCisKKyAgICAgICAgVG8gZG8gdGhpcywgV2ViTWVkaWFTdHJhdGVneSwgYSBjb25jcmV0ZSBp
bXBsZW1lbnRhdGlvbiBvZiBNZWRpYVN0cmF0ZWd5LCBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNz
IGdldHMKKyAgICAgICAgYSBib29sZWFuIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBHUFUg
cHJvY2VzcyBzaG91bGQgYmUgdXNlZCBmb3IgQXVkaW9EZXN0aW5hdGlvbiBvciBub3QuIFdoZW4g
dGhlIGZsYWcKKyAgICAgICAgaXMgc2V0LCB3ZSBjcmVhdGUgUmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5IGluc3RlYWQgb2YgQXVkaW9EZXN0aW5hdGlvbiBpbiBXZWJDb250ZW50IHByb2Nlc3Mu
CisKKyAgICAgICAgRWFjaCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgdGFsa3MgdG8gUmVt
b3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIgaW4gdGhlIEdQVSBwcm9jZXNzIGFuZCBjcmVhdGVz
CisgICAgICAgIGEgY29ycmVzcG9uZGluZyBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uIHdoaWNoIGlu
IHR1cm4gY3JlYXRlcyBXZWJDb3JlJ3MgQXVkaW9EZXN0aW5hdGlvbiBpbiB0aGUgR1BVIHByb2Nl
c3MuCisKKyAgICAgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbiBpcyBpdHNlbGYgYW4gQXVkaW9J
T0NhbGxiYWNrIGZvciBBdWRpb0Rlc3RpbmF0aW9uIGl0IGNyZWF0ZXMsIGFuZCBkZWxlZ2F0ZXMK
KyAgICAgICAgaXRzIGNhbGxiYWNrIHRvIFdlYkNvbnRlbnQgcHJvY2VzcycgUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5IGFzIG5lZWRlZC4KKworICAgICAgICBJbiB0aGlzIGluaXRpYWwgcGF0
Y2gsIHdlIHNlbmQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpSZW5kZXJCdWZmZXIgSVBD
IGNhbGwgdG8gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcworICAgICAgICBmb3IgZWFjaCByZW5kZXIg
Y2FsbCB3ZSBnZXQgZnJvbSBDb3JlQXVkaW8gZm9yIHNpbXBsaWNpdHkgdXNpbmcgbmV3bHkgaW50
cm9kdWNlZCBSZW1vdGVBdWRpb0J1c0RhdGEsCisgICAgICAgIHdoaWNoIGhvbGRzIGEgU2hhcmVk
TWVtb3J5IGZvciBlYWNoIGNoYW5uZWwgaW4gdGhlIGF1ZGlvIGJ1cy4KKworICAgICAgICBXZSB3
aWxsIGVsaW1pbmF0ZSB0aGlzIElQQyBvdmVyaGVhZCBpbiBhIGZvbGxvdyB1cCBwYXRjaCB1c2lu
ZyBDQVJpbmdCdWZmZXIuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAg
ICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6cmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIpOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOiBB
ZGRlZCB0aGUgY29kZSB0byBkaXNwYXRjaCBtZXNzYWdlcyB0bworICAgICAgICBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlci4KKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKTogRGl0dG8uCisgICAgICAgICogR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uKTogQWRkZWQuIFRoaXMgY2xhc3MgaXMgdGhl
IGJhY2tpbmcgb2JqZWN0IHdoaWNoIGNyZWF0ZXMgV2ViQ29yZSdzCisgICAgICAgIEF1ZGlvRGVz
dGluYXRpb24gYW5kIGFjdHVhbGx5IHRhbGtzIHRvIENvcmVBdWRpbyBpbiBHUFUgcHJvY2Vzcy4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKTogQWRkZWQu
CisKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6flJlbW90ZUF1ZGlv
RGVzdGluYXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5h
dGlvbjo6c2NoZWR1bGVHcmFjZWZ1bFNodXRkb3duSWZOZWVkZWQpOiBEZWxheXMgdGhlIGRlbGV0
aW9uIG9mIHRoaXMgb2JqZWN0CisgICAgICAgIHVudGlsIHRoZSBhdWRpbyB0aHJlYWRzIHN0b3Bz
IHJ1bm5pbmcuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OnN0YXJ0
KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OnN0b3Ap
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6aXNQbGF5
aW5nKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OlJl
bW90ZUF1ZGlvRGVzdGluYXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9EZXN0aW5hdGlvbjo6cmVuZGVyKTogU2VuZHMgYSBzeW5jIElQQyB0byB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzJworICAgICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgdG8gZmlsbCB0
aGUgYXVkaW8gYnVmZmVyLiBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBnZXRzIGNhbGxlZCBpbiBh
dWRpbyB0aHJlYWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246Omlz
UGxheWluZ0RpZENoYW5nZSk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlcik6IEFkZGVkLiBUaGlzIGNsYXNzIG1hbmFnZXMgYWxsIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb24gb2JqZWN0cyBvd25lZAorICAgICAgICBieSBhIHNpbmdsZSBXZWJDb250
ZW50IHByb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcik6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6flJlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyOjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpkZWxldGVBdWRpb0Rlc3RpbmF0aW9u
KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2Vy
OjpzdGFydEF1ZGlvRGVzdGluYXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OnN0b3BBdWRpb0Rlc3RpbmF0aW9uKTogQWRkZWQuCisg
ICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIp
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6
OmRpZFJlY2VpdmVTeW5jTWVzc2FnZUZyb21XZWJQcm9jZXNzKTogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZUZy
b21XZWJQcm9jZXNzKTogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFT
dHJhdGVneSk6IEFkZGVkLiBSZXR1cm5zIG51bGxwdHIgc2luY2UgTmV0d29ya2luZworICAgICAg
ICBwcm9jZXNzIGhhcyBubyBidXNpbmVzcyBydW5uaW5nIEF1ZGlvRGVzdGluYXRpb24uCisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMpOgorICAg
ICAgICAqIFBsYXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5OgorICAgICAgICAqIFNoYXJlZC9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmll
ci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50
aWZpZXJUeXBlKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRp
b25JZGVudGlmaWVyKTogQWRkZWQuIFRoZSBpZGVudGlmaWVyIGZvciBlYWNoIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb24KKyAgICAgICAgYW5kIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSAoY29y
cmVzcG9uZGluZyBvYmplY3RzIG9mIGVhY2ggY2xhc3MgdXNlIHRoZSBzYW1lIElEIHRvIGNvbW11
bmljYXRlKS4KKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKTogQWRkZWQgYSBk
aXNwYXRjaCBvbiBtX3JlY2VpdmVyTWFwLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9u
OjptX3JlY2VpdmVyTWFwKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25u
ZWN0aW9uOjphZGRNZXNzYWdlUmVjZWl2ZXIpOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNz
Q29ubmVjdGlvbjo6cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVBdWRpb0J1c0RhdGEuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvQnVzRGF0YSk6IEFkZGVkLiBFbmNvZGVzIHRoZSBpbmZvcm1hdGlvbiBhYm91
dCBlYWNoIHJlbmRlciBjYWxsLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0J1c0RhdGE6
OmVuY29kZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0J1c0Rh
dGE6OmRlY29kZSk6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkp
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Ojp+
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RhcnQpOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpzdG9wKTogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6cmVuZGVyQnVmZmVyKTogQWRkZWQu
IENhbGxzIFdlYkNvcmUncyBBdWRpb0lPQ2FsbGJhY2sgdG8gZmlsbAorICAgICAgICB0aGUgYXVk
aW8gYnVmZmVyIGdpdmVuIGJ5IHRoZSBHUFUgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpkaWRDaGFuZ2VJc1BsYXlpbmcpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpkaWRSZWNl
aXZlTWVzc2FnZUZyb21HUFVQcm9jZXNzKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6aXNQbGF5aW5nKTogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c2FtcGxlUmF0ZSk6IEFkZGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5t
ZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRy
YWNrUHJpdmF0ZVJlbW90ZS5jcHA6IEZpeGVkIHRoZSB1bmlmaWVkIGJ1aWxkcy4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmg6IERpdHRvLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5h
dGlvbik6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3Ry
YXRlZ3kuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyYXRlZ3kpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVneTo6c2V0VXNlR1BVUHJvY2Vzcyk6
IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyLmNwcDogRml4ZWQgdGhlIHVuaWZpZWQgYnVpbGRzLgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVNZWRpYVN0cmF0ZWd5
KTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKTogU2V0cyBXZWJN
ZWRpYVN0cmF0ZWd5J3MgZmxhZyB0byB1c2UgR1BVIHByb2Nlc3MuCisKIDIwMjAtMDItMjQgIEpp
ZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViQXV0aG5dIElt
cGxlbWVudCBTUEkgZm9yIHRoZSBwbGF0Zm9ybSBhdXRoZW50aWNhdG9yCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CShyZXZpc2lvbiAyNTcy
OTcpCisrKyBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QJKHdv
cmtpbmcgY29weSkKQEAgLTE2LDYgKzE2LDcgQEAgJChKQVZBU0NSSVBUQ09SRV9QUklWQVRFX0hF
QURFUlNfRElSKS94eAogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL0dQVVByb2Nl
c3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWFjL2NvbS5hcHBsZS5X
ZWJLaXQuR1BVUHJvY2Vzcy5zYi5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0xMDgsNiArMTA5LDcgQEAgJChQUk9KRUNU
X0RJUikvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZQogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vz
cy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQ
Uk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0Nv
ZGVjcy5tZXNzYWdlcy5pbgpJbmRleDogU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0CShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0xMjMsNiAr
MTIzLDEwIEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWIKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1BsdWdpblByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUGx1Z2luUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlck1lc3NhZ2VzLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHlNZXNzYWdlcy5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyTWFuYWdlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlck1l
c3NhZ2VzUmVwbGllcy5oCkluZGV4OiBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lv
biAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcg
Y29weSkKQEAgLTE0Myw2ICsxNDMsOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIgXAogICAgIFBsdWdpblByb2Nlc3NQcm94eSBcCiAg
ICAgUGx1Z2luUHJveHkgXAorICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyIFwKKyAg
ICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgXAogICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyTWFuYWdlciBcCiAgICAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXIgXAogICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkgXApJbmRleDog
U291cmNlL1dlYktpdC9QbGF0Zm9ybU1hYy5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtTWFjLmNtYWtlCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0
L1BsYXRmb3JtTWFjLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xNjAsNiArMTYwLDExIEBAIGxp
c3QoQVBQRU5EIFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIEdQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgogICAgIEdQVVByb2Nlc3MvR1BVUHJvY2Vz
cy5tZXNzYWdlcy5pbgogCisgICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uTWFuYWdlci5tZXNzYWdlcy5pbgorICAgIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKyAgICBHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KKyAgICBHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCisKICAgICBHUFVQcm9jZXNzL3dlYnJ0
Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tZXNzYWdlcy5pbgogICAgIEdQVVByb2Nlc3Mvd2VicnRj
L1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIubWVzc2FnZXMuaW4KICAgICBH
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFn
ZXIubWVzc2FnZXMuaW4KQEAgLTE3MCwxMCArMTc1LDYgQEAgbGlzdChBUFBFTkQgV2ViS2l0X01F
U1NBR0VTX0lOX0ZJTEVTCiAgICAgR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXIubWVzc2FnZXMuaW4KICAgICBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCiAKLSAgICBHUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KLSAgICBHUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCi0gICAg
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgotICAgIAogICAgIE5ldHdvcmtQcm9jZXNzL0N1c3RvbVByb3RvY29scy9MZWdhY3lDdXN0b21Q
cm90b2NvbE1hbmFnZXIubWVzc2FnZXMuaW4KIAogICAgIFNoYXJlZC9BcHBsZVBheS9XZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgpJbmRleDogU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CShyZXZpc2lv
biAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC01MzQsMTEgKzUzNCwxMyBAQCBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1p
c3NpCiBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3Mv
R1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNSU1FVHlwZUNhY2hlLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFj
a1ByaXZhdGVSZW1vdGUuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZS5jcHAKK1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwCiBX
ZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAogV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcAogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01l
ZGlhUmVjb3JkZXJQcm92aWRlci5jcHAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQJKHJldmlz
aW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtNjQ3LDYgKzY0Nyw4IEBAIEdQVVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAKIEdQVVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwCiBMaWJXZWJSVENDb2RlY3NQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAKIExpYldlYlJUQ0NvZGVjc01lc3NhZ2VSZWNlaXZlci5jcHAKK1Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQXVk
aW9EZXN0aW5hdGlvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVNZWRpYVJl
Y29yZGVyTWVzc2FnZVJlY2VpdmVyLmNwcApJbmRleDogU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMjU3
Mjk3KQorKysgU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSAiTGliV2Vi
UlRDQ29kZWNzUHJveHkuaCIKICNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3NQcm94eU1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXJNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFu
YWdlci5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFu
YWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJNZXNzYWdlcy5oIgpAQCAtMTI3LDYgKzEyOSwxNCBAQCB2b2lkIEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmRpZFJlY2VpCiAgICAgQ1JBU0goKTsKIH0KIAorUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXImIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fcmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXIpCisgICAgICAgIG1fcmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIgPSBtYWtlVW5p
cXVlPFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyPigqdGhpcyk7CisKKyAgICByZXR1cm4g
Km1fcmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI7Cit9CisKIFJlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyJiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlcigpCiB7CiAgICAgaWYgKCFtX3JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKQpAQCAt
MTkxLDEzICsyMDEsMTkgQEAgTGliV2ViUlRDQ29kZWNzUHJveHkmIEdQVUNvbm5lY3Rpb25Ub1dl
YgogCiB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogeworICAg
IGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVk
aW9EZXN0aW5hdGlvbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBy
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcigpLmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlBy
b2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAg
aWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIHJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCkuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJv
Y2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0gZWxzZSBp
ZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlh
UGxheWVyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgIH0KKyAgICBpZiAoZGVj
b2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVy
UHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewogICAgICAgICByZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eSgpLmRpZFJlY2VpdmVQbGF5ZXJNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIpOwogICAgICAgICByZXR1cm47Ci0gICAgfSBlbHNlIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNl
aXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSkgeworICAgIH0KKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2
ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAgcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIoKS5k
aWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KQEAgLTI0Myw2ICsyNTksMTEgQEAgdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpkaWRSZWNlaQogCiB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVT
eW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVj
b2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKKyAg
ICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAg
cmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIoKS5kaWRSZWNlaXZlU3luY01lc3NhZ2VGcm9t
V2ViUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09
IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpKSB7CiAgICAgICAgIHJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCkuZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlF
bmNvZGVyKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCShyZXZpc2lvbiAyNTcyOTcp
CisrKyBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBj
bGFzcyBHUFVQcm9jZXNzOwogY2xhc3MgTGliV2ViUlRDQ29kZWNzUHJveHk7CitjbGFzcyBSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjsKIGNsYXNzIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWFuYWdlcjsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
OwogY2xhc3MgUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI7CkBAIC03OSw2ICs4MCw3IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhHUFVQcm9jZXNz
JiwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
ciwgUEFMOjpTZXNzaW9uSUQpOwogCisgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIm
IHJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKCk7CiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCk7CiAjaWYgUExBVEZP
Uk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCiAgICAgTGliV2ViUlRDQ29kZWNzUHJveHkmIGxp
YldlYlJUQ0NvZGVjc1Byb3h5KCk7CkBAIC0xMDMsNiArMTA1LDcgQEAgcHJpdmF0ZToKICAgICBS
ZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAgICAgUmVmPEdQVVByb2Nlc3M+IG1f
Z3B1UHJvY2VzczsKICAgICBjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBtX3dlYlBy
b2Nlc3NJZGVudGlmaWVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uTWFuYWdlcj4gbV9yZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI+IG1fcmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5PiBtX3JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OwogICAgIFBBTDo6U2Vzc2lvbklE
IG1fc2Vzc2lvbklEOwpJbmRleDogU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwCShub25l
eGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNzcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUg
IkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0J1c0Rh
dGEuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHlNZXNzYWdlcy5oIgor
I2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9CdXMuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0F1ZGlvSU9DYWxsYmFjay5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+Cisj
aW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL3RocmVh
ZHMvQmluYXJ5U2VtYXBob3JlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFJlbW90ZUF1
ZGlvRGVzdGluYXRpb24+LCBwdWJsaWMgV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrIHsKK3B1Ymxp
YzoKKyAgICB1c2luZyBBdWRpb0J1cyA9IFdlYkNvcmU6OkF1ZGlvQnVzOworICAgIHVzaW5nIEF1
ZGlvRGVzdGluYXRpb24gPSBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uOworICAgIHVzaW5nIFNo
YXJlZEJ1ZmZlciA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjsKKworICAgIHN0YXRpYyBSZWY8UmVt
b3RlQXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNv
bm5lY3Rpb24sIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIGlkLAorICAgICAgICBj
b25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVpbnQzMl90IG51bWJlck9mSW5wdXRDaGFubmVs
cywgdWludDMyX3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZUF1ZGlvRGVzdGluYXRpb24o
Y29ubmVjdGlvbiwgaWQsIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVt
YmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSkpOworICAgIH0KKworICAgIHZpcnR1YWwg
flJlbW90ZUF1ZGlvRGVzdGluYXRpb24oKQorICAgIHsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQo
IW1fZGVzdGluYXRpb24tPmlzUGxheWluZygpKTsKKyAgICB9CisKKyAgICB2b2lkIHNjaGVkdWxl
R3JhY2VmdWxTaHV0ZG93bklmTmVlZGVkKCkKKyAgICB7CisgICAgICAgIGlmICghaXNQbGF5aW5n
KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fcHJvdGVjdFRoaXNEdXJpbmdHcmFj
ZWZ1bFNodXRkb3duID0gdGhpczsKKyAgICAgICAgc3RvcCgpOworICAgIH0KKworICAgIHZvaWQg
c3RhcnQoKSB7IG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7IH0KKyAgICB2b2lkIHN0b3AoKSB7IG1f
ZGVzdGluYXRpb24tPnN0b3AoKTsgfQorICAgIGJvb2wgaXNQbGF5aW5nKCkgeyByZXR1cm4gbV9k
ZXN0aW5hdGlvbi0+aXNQbGF5aW5nKCk7IH0KKworcHJpdmF0ZToKKyAgICBSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIGlkLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQs
IHVpbnQzMl90IG51bWJlck9mSW5wdXRDaGFubmVscywgdWludDMyX3QgbnVtYmVyT2ZPdXRwdXRD
aGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKKyAgICAgICAgOiBtX2Nvbm5lY3Rpb24oY29ubmVj
dGlvbikKKyAgICAgICAgLCBtX2lkKGlkKQorICAgICAgICAsIG1fZGVzdGluYXRpb24oQXVkaW9E
ZXN0aW5hdGlvbjo6Y3JlYXRlKCp0aGlzLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hh
bm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpKQorICAgIHsKKyAgICB9
CisKKyAgICB2b2lkIHJlbmRlcihBdWRpb0J1cyogc291cmNlQnVzLCBBdWRpb0J1cyogZGVzdGlu
YXRpb25CdXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIG92ZXJyaWRlCisgICAgeworICAgICAg
ICBpZiAobV9wcm90ZWN0VGhpc0R1cmluZ0dyYWNlZnVsU2h1dGRvd24pCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7Cisg
ICAgICAgIEJpbmFyeVNlbWFwaG9yZSByZW5kZXJTZW1hcGhvcmU7CisKKyAgICAgICAgVmVjdG9y
PFJlZjxTaGFyZWRNZW1vcnk+PiBidWZmZXJzOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgZGVzdGluYXRpb25CdXMtPm51bWJlck9mQ2hhbm5lbHMoKTsgKytpKSB7CisgICAgICAg
ICAgICBhdXRvIG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6YWxsb2NhdGUoc2l6ZW9mKGZsb2F0KSAq
IGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAgICAgICBidWZmZXJzLmFwcGVuZCgqbWVtb3J5KTsK
KyAgICAgICAgfQorCisgICAgICAgIC8vIEZJWE1FOiBSZXBsYWNlIHRoaXMgY29kZSB3aXRoIGEg
cmluZyBidWZmZXIuIEF0IGxlYXN0IHRoaXMgaGFwcGVucyBpbiBhdWRpbyB0aHJlYWQuCisgICAg
ICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0
aGlzLCBmcmFtZXNUb1Byb2Nlc3MsICZidWZmZXJzLCAmcmVuZGVyU2VtYXBob3JlXSB7CisgICAg
ICAgICAgICBSZW1vdGVBdWRpb0J1c0RhdGEgYnVzRGF0YSB7IGZyYW1lc1RvUHJvY2VzcywgYnVm
ZmVycy5tYXAoW10oYXV0byYgbWVtb3J5KSB7IHJldHVybiBtZW1vcnkuY29weVJlZigpOyB9KSB9
OworICAgICAgICAgICAgQVNTRVJUKGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAgICAgICBtX2Nv
bm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5OjpSZW5kZXJCdWZmZXIoYnVzRGF0YSksIFsmXSgpIHsKKyAg
ICAgICAgICAgICAgICByZW5kZXJTZW1hcGhvcmUuc2lnbmFsKCk7CisgICAgICAgICAgICB9LCBt
X2lkLnRvVUludDY0KCkpOworICAgICAgICB9KTsKKyAgICAgICAgcmVuZGVyU2VtYXBob3JlLndh
aXQoKTsKKworICAgICAgICBhdXRvIGF1ZGlvQnVzID0gQXVkaW9CdXM6OmNyZWF0ZShidWZmZXJz
LnNpemUoKSwgZnJhbWVzVG9Qcm9jZXNzLCBmYWxzZSk7CisgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBidWZmZXJzLnNpemUoKTsgKytpKQorICAgICAgICAgICAgYXVkaW9CdXMtPnNl
dENoYW5uZWxNZW1vcnkoaSwgKGZsb2F0KilidWZmZXJzW2ldLT5kYXRhKCksIGZyYW1lc1RvUHJv
Y2Vzcyk7CisgICAgICAgIGRlc3RpbmF0aW9uQnVzLT5jb3B5RnJvbSgqYXVkaW9CdXMpOworICAg
IH0KKworICAgIHZvaWQgaXNQbGF5aW5nRGlkQ2hhbmdlKCkgb3ZlcnJpZGUKKyAgICB7CisgICAg
ICAgIGlmIChtX3Byb3RlY3RUaGlzRHVyaW5nR3JhY2VmdWxTaHV0ZG93bikgeworICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlQoIW1fZGVzdGluYXRpb24tPmlzUGxheWluZygpKTsKKyAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKHJlZkNvdW50KCkgPT0gMSk7CisgICAgICAgICAgICBtX3Byb3Rl
Y3RUaGlzRHVyaW5nR3JhY2VmdWxTaHV0ZG93biA9IG51bGxwdHI7IC8vIERlbGV0ZXMgInRoaXMi
LgorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGNhbGxPbk1haW5UaHJl
YWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaXNQbGF5aW5nID0gbV9k
ZXN0aW5hdGlvbi0+aXNQbGF5aW5nKCksIGlkID0gbV9pZC50b1VJbnQ2NCgpXSB7CisgICAgICAg
ICAgICBtX2Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eTo6RGlkQ2hhbmdlSXNQbGF5aW5nKGlzUGxheWluZyksIGlkKTsKKyAg
ICAgICAgfSk7CisgICAgfQorCisgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9jb25u
ZWN0aW9uOworICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIG1faWQ7CisgICAg
c3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IG1fZGVzdGluYXRpb247CisgICAgUmVm
UHRyPFJlbW90ZUF1ZGlvRGVzdGluYXRpb24+IG1fcHJvdGVjdFRoaXNEdXJpbmdHcmFjZWZ1bFNo
dXRkb3duOworfTsKKworUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OlJlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24p
CisgICAgOiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVjdGlvbikKK3sKK30KKwor
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6On5SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlcigpID0gZGVmYXVsdDsKKwordm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6
Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVpbnQz
Ml90IG51bWJlck9mSW5wdXRDaGFubmVscywgdWludDMyX3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVs
cywgZmxvYXQgc2FtcGxlUmF0ZSwKKyAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBh
dXRvIG5ld0lEID0gUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXI6OmdlbmVyYXRlVGhy
ZWFkU2FmZSgpOworICAgIGF1dG8gY2FsbGJhY2sgPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uOjpj
cmVhdGUobV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBuZXdJRCwgaW5wdXREZXZpY2VJZCwg
bnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRl
KTsKKyAgICBtX2F1ZGlvRGVzdGluYXRpb25zLmFkZChuZXdJRCwgV1RGTW92ZShjYWxsYmFjaykp
OworICAgIGNvbXBsZXRpb25IYW5kbGVyKG5ld0lEKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlcjo6ZGVsZXRlQXVkaW9EZXN0aW5hdGlvbihSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uSWRlbnRpZmllciBpZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIGF1dG8gZGVzdGluYXRpb24gPSBtX2F1ZGlvRGVzdGluYXRpb25z
LnRha2UoaWQpOworICAgIGlmIChkZXN0aW5hdGlvbikKKyAgICAgICAgZGVzdGluYXRpb24udmFs
dWUoKS0+c2NoZWR1bGVHcmFjZWZ1bFNodXRkb3duSWZOZWVkZWQoKTsKKyAgICBjb21wbGV0aW9u
SGFuZGxlcigpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpzdGFy
dEF1ZGlvRGVzdGluYXRpb24oUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgaWQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAg
Ym9vbCBpc1BsYXlpbmcgPSBmYWxzZTsKKyAgICBpZiAoYXV0byogaXRlbSA9IG1fYXVkaW9EZXN0
aW5hdGlvbnMuZ2V0KGlkKSkgeworICAgICAgICBpdGVtLT5zdGFydCgpOworICAgICAgICBpc1Bs
YXlpbmcgPSBpdGVtLT5pc1BsYXlpbmcoKTsKKyAgICB9CisgICAgY29tcGxldGlvbkhhbmRsZXIo
aXNQbGF5aW5nKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6c3Rv
cEF1ZGlvRGVzdGluYXRpb24oUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgaWQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAg
Ym9vbCBpc1BsYXlpbmcgPSBmYWxzZTsKKyAgICBpZiAoYXV0byogaXRlbSA9IG1fYXVkaW9EZXN0
aW5hdGlvbnMuZ2V0KGlkKSkgeworICAgICAgICBpdGVtLT5zdG9wKCk7CisgICAgICAgIGlzUGxh
eWluZyA9IGl0ZW0tPmlzUGxheWluZygpOworICAgIH0KKyAgICBjb21wbGV0aW9uSGFuZGxlcihp
c1BsYXlpbmcpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCkluZGV4OiBT
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVk
ZSAiUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRN
ZW1vcnkuaCIKKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5k
bGVyLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CitjbGFzcyBSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uOworCitjbGFzcyBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlciA6IHByaXZhdGUg
SVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKTsKK3B1
YmxpYzoKKyAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcihHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJik7CisgICAgflJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKCk7CisKKyAg
ICB2b2lkIGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlk
LCB1aW50MzJfdCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVpbnQzMl90IG51bWJlck9mT3V0cHV0
Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIpPiYmKTsKKyAgICB2b2lkIGRlbGV0ZUF1ZGlvRGVz
dGluYXRpb24oUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzdGFydEF1ZGlvRGVzdGluYXRpb24oUmVtb3RlQXVk
aW9EZXN0aW5hdGlvbklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OworICAgIHZvaWQgc3RvcEF1ZGlvRGVzdGluYXRpb24oUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworCisgICAgdm9pZCBk
aWRSZWNlaXZlU3luY01lc3NhZ2VGcm9tV2ViUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rl
cj4mIGVuY29kZXIpCisgICAgeworICAgICAgICBkaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVj
dGlvbiwgZGVjb2RlciwgZW5jb2Rlcik7CisgICAgfQorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2VGcm9tV2ViUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2Rl
ciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQor
Citwcml2YXRlOgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKTsK
KworICAgIEhhc2hNYXA8UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIsIFJlZjxSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uPj4gbV9hdWRpb0Rlc3RpbmF0aW9uczsKKyAgICBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzJiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlOworCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4JKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2Vz
LmluCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzcgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+
IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworCisgICAgQ3Jl
YXRlQXVkaW9EZXN0aW5hdGlvbihTdHJpbmcgaW5wdXREZXZpY2VJZCwgdWludDMyX3QgbnVtYmVy
T2ZJbnB1dENoYW5uZWxzLCB1aW50MzJfdCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBz
YW1wbGVSYXRlKSAtPiAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBp
ZCkgU3luY2hyb25vdXMKKworICAgIERlbGV0ZUF1ZGlvRGVzdGluYXRpb24oV2ViS2l0OjpSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBpZCkgLT4gKCkgQXN5bmMKKworICAgIFN0YXJ0
QXVkaW9EZXN0aW5hdGlvbihXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVy
IGlkKSAtPiAoYm9vbCBpc1BsYXlpbmcpIFN5bmNocm9ub3VzCisgICAgU3RvcEF1ZGlvRGVzdGlu
YXRpb24oV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBpZCkgLT4gKGJv
b2wgaXNQbGF5aW5nKSBTeW5jaHJvbm91cworCit9CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
c1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0OCwxMSBAQCBQYXN0ZWJvYXJkU3RyYXRlZ3kqIE5ldHdv
cmtQcm9jZXNzUGxhdGZvCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK01lZGlhU3RyYXRlZ3kq
IE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVNZWRpYVN0cmF0ZWd5KCkK
K3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogQmxvYlJlZ2lzdHJ5KiBOZXR3b3JrUHJvY2Vz
c1BsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKIHsKICAgICB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHJl
dmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBA
QCBwcml2YXRlOgogICAgIC8vIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcwogICAgIFdlYkNv
cmU6OkxvYWRlclN0cmF0ZWd5KiBjcmVhdGVMb2FkZXJTdHJhdGVneSgpIG92ZXJyaWRlOwogICAg
IFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVneSogY3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkg
b3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6TWVkaWFTdHJhdGVneSogY3JlYXRlTWVkaWFTdHJhdGVn
eSgpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkJsb2JSZWdpc3RyeSogY3JlYXRlQmxvYlJlZ2lz
dHJ5KCkgb3ZlcnJpZGU7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXMucHkJKHdvcmtpbmcgY29weSkKQEAgLTIyNyw2ICsyMjcsNyBAQCBkZWYg
dHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlCiAgICAgICAgICdXZWJLaXQ6Ok1E
TlNSZWdpc3RlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6TWVkaWFSZWNvcmRlcklkZW50
aWZpZXInLAorICAgICAgICAnV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmll
cicsCiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyJywKICAg
ICAgICAgJ1dlYktpdDo6UlRDRGVjb2RlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpS
VENFbmNvZGVySWRlbnRpZmllcicsCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
U2hhcmVkL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmgJKG5vbmV4aXN0ZW50KQor
KysgU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRl
bnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uSWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklk
ZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlm
aWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24g
MjU3Mjk3KQorKysgU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtMTQwNSw4ICsxNDA1LDE0IEBACiAJCTlCMDJFMENCMjM1RUI5
NTMwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDJFMEM5MjM1RUI2MkQwMDQwNDRC
MiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjAyRTBDQzIzNUVCOTU3MDA0MDQ0QjIgLyog
X1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDlCMDJFMENBMjM1RUI4ODQwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1
bGF0aW9uSXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTlCMDJFMEQ3MjM1RkM5NEYwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uVG9r
ZW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDJF
MENEMjM1RUI5NjcwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5QjEyMjlDRDIzRkYy
NUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMTIyOUNCMjNGRjI1RjIwMDhD
QTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oICovOyB9OworCQk5QjEyMjlD
RTIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIxMjI5Q0MyM0ZG
MjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCAqLzsgfTsK
KwkJOUIxMjI5RDIyM0ZGMkJDQzAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVu
dGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
QjEyMjlEMDIzRkYyQTVFMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZp
ZXIuaCAqLzsgfTsKIAkJOUI1NDk5QUQyMzYyQTZGOTAwREY4QkE1IC8qIF9XS1RleHRNYW5pcHVs
YXRpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5QjU0OTlBQzIzNjJBNkY2MDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlv
bkNvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5QjU0OTlCMjIzNjJBN0VDMDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlv
bkV4Y2x1c2lvblJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDlCNTQ5OUIwMjM2MkE3RUMwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRXhj
bHVzaW9uUnVsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTlCNUJFQzI2MjQwMEY0QTkwMDcwQzZFRiAvKiBXZWJNZWRpYVN0cmF0ZWd5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjVCRUMyNDI0MDBG
NEE5MDA3MEM2RUYgLyogV2ViTWVkaWFTdHJhdGVneS5oICovOyB9OworCQk5QjVCRUMyQTI0MDEw
MTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjVCRUMyODI0MDEwMTU4MDA3MEM2
RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmggKi87IH07CisJCTlCNUJFQzMxMjQw
MTAyMjIwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0J1c0RhdGEuaCBpbiBDb3B5RmlsZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI1QkVDMzAyNDAxMDIyMjAwNzBDNkVGIC8q
IFJlbW90ZUF1ZGlvQnVzRGF0YS5oICovOyB9OwogCQk5RkI1RjM5NTE2OUU2QTgwMDAyQzI1QkYg
LyogV0tDb250ZXh0UHJpdmF0ZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOUZCNUYzOTMxNjlFNkE4MDAwMkMyNUJGIC8qIFdLQ29udGV4dFByaXZh
dGVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlBMTAyQTcwODFFQzBFRUU5MDBEODFEODIgLyogY29tLm1hY3JvbWVkaWEuRmxhc2ggUGxheWVy
IEVTUi5wbHVnaW4uc2IgaW4gQ29weSBQbHVnLWluIFNhbmRib3ggUHJvZmlsZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E1RTM5NDkxRDVCRDhBNzAwQjRCN0NFIC8qIGNv
bS5tYWNyb21lZGlhLkZsYXNoIFBsYXllciBFU1IucGx1Z2luLnNiICovOyB9OwogCQlBMTA0NkVB
MTIwNzkyNjMxMDBGMEM1RDggLyogV0tQREZWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTA0NkU5RjIwNzkyNjMxMDBGMEM1RDggLyogV0tQREZW
aWV3LmggKi87IH07CkBAIC0yMDYxLDYgKzIwNjcsNyBAQAogCQkJCTJEQjk2MDUzMjM5ODg2QzEw
MDEwMjc5MSAvKiBjb20uYXBwbGUuV2ViS2l0LkdQVS5zYiBpbiBDb3B5RmlsZXMgKi8sCiAJCQkJ
QTc4Q0NEREIxOTNBQzlGODAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5z
YiBpbiBDb3B5RmlsZXMgKi8sCiAJCQkJQTc4Q0NEREMxOTNBQzlGQjAwNUVDQzI1IC8qIGNvbS5h
cHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYiBpbiBDb3B5RmlsZXMgKi8sCisJCQkJOUI1QkVDMzEy
NDAxMDIyMjAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvQnVzRGF0YS5oIGluIENvcHlGaWxlcyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
QEAgLTQzODMsMTAgKzQzOTAsMjAgQEAKIAkJOUIwMkUwQ0QyMzVFQjk2NzAwNDA0NEIyIC8qIF9X
S1RleHRNYW5pcHVsYXRpb25Ub2tlbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0
aW9uVG9rZW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwMkUwQ0UyMzVFQkIx
NDAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOUIwMkUwRDAyMzVFQkNDQTAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25J
dGVtLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0ubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCMTIyOUNCMjNGRjI1RjIwMDhDQTc1MSAv
KiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
QjEyMjlDQzIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjEyMjlDRjIzRkYyODE0MDA4Q0E3NTEg
LyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTlCMTIyOUQwMjNGRjJBNUUwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRl
bnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjU0OTlBQzIzNjJBNkY2
MDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOUI1NDk5QUUyMzYyQTdBNzAwREY4QkE1IC8qIF9XS1RleHRNYW5pcHVs
YXRpb25Db25maWd1cmF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLVGV4dE1hbmlw
dWxhdGlvbkNvbmZpZ3VyYXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlC
NTQ5OUIwMjM2MkE3RUMwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVs
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjU0OTlCMTIzNjJBN0VDMDBERjhCQTUgLyog
X1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOUI1QkVDMjQyNDAwRjRBOTAwNzBDNkVGIC8qIFdlYk1lZGlhU3RyYXRlZ3ku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViTWVkaWFTdHJhdGVneS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5QjVCRUMyNTI0MDBGNEE5MDA3MEM2RUYgLyogV2ViTWVkaWFTdHJhdGVneS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJNZWRpYVN0cmF0ZWd5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOUI1QkVDMjgyNDAxMDE1ODAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUI1QkVDMjkyNDAxMDE1ODAw
NzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5QjVCRUMyRTI0MDEwMThDMDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUI1QkVDMzAyNDAxMDIy
MjAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvQnVzRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVB
dWRpb0J1c0RhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUJDNTlENkMxRUZD
Q0NCNjAwMUU4RDA5IC8qIENhbGxiYWNrSUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ2FsbGJhY2tJRC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QkM1OUQ2
RDFFRkNEQzZEMDAxRThEMDkgLyogT3B0aW9uYWxDYWxsYmFja0lELmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE9wdGlvbmFsQ2FsbGJhY2tJRC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5RjU0Rjg4RTE2NDg4RTg3MDA3REY4MUEgLyogQXV4aWxpYXJ5UHJvY2Vz
c01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEF1eGlsaWFy
eVByb2Nlc3NNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MjY4LDYgKzUy
ODUsMTAgQEAKIAkJCQkwNzkyMzEzMjIzOUIzQjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmggKi8sCiAJCQkJMDdCMUQwNEIyM0QzOEZDRTAwMzk5QTZFIC8qIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbiAqLywKIAkJCQkwNzkyMzE0RTIzOUQ1RjUzMDA5
NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oICovLAorCQkJCTlC
NUJFQzMwMjQwMTAyMjIwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0J1c0RhdGEuaCAqLywKKwkJCQk5
QjVCRUMyOTI0MDEwMTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNw
cCAqLywKKwkJCQk5QjVCRUMyODI0MDEwMTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5LmggKi8sCisJCQkJOUI1QkVDMkUyNDAxMDE4QzAwNzBDNkVGIC8qIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQkwN0I5M0ZGNTIzQUYwQ0I4
MDAzNkY4RUEgLyogUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJMDc5
MjMxMzAyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgKi8s
CiAJCQkJMDc5MjMxMzQyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
ci5oICovLApAQCAtNTI4Myw2ICs1MzA0LDggQEAKIAkJCQkxREZERDBFMjIzRjYxMEYwMDBFOUI0
OTAgLyogVmlkZW9MYXllclJlbW90ZS5oICovLAogCQkJCTA3MUJDNTgzMjNDQzJCRDUwMDY4MEQ3
QyAvKiBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCiAJCQkJMDcxQkM1ODIyM0NDMkJE
MzAwNjgwRDdDIC8qIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmggKi8sCisJCQkJOUI1QkVDMjUy
NDAwRjRBOTAwNzBDNkVGIC8qIFdlYk1lZGlhU3RyYXRlZ3kuY3BwICovLAorCQkJCTlCNUJFQzI0
MjQwMEY0QTkwMDcwQzZFRiAvKiBXZWJNZWRpYVN0cmF0ZWd5LmggKi8sCiAJCQkpOwogCQkJcGF0
aCA9IG1lZGlhOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTUyOTEsNiArNTMxNCw5
IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTFEMEVDRUE5MjNG
Qzg0QkIwMEQxNzJGNiAvKiBjb2NvYSAqLywKKwkJCQk5QjEyMjlDQzIzRkYyNUYyMDA4Q0E3NTEg
LyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwICovLAorCQkJCTlCMTIyOUNCMjNG
RjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oICovLAorCQkJ
CTlCMTIyOUNGMjNGRjI4MTQwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
ci5tZXNzYWdlcy5pbiAqLywKIAkJCQkwNzFCQzU3RTIzQ0E1REIxMDA2ODBEN0MgLyogUmVtb3Rl
QXVkaW9UcmFja1Byb3h5LmNwcCAqLywKIAkJCQkwNzFCQzU3RjIzQ0E1REIxMDA2ODBEN0MgLyog
UmVtb3RlQXVkaW9UcmFja1Byb3h5LmggKi8sCiAJCQkJMDcyNUVGQUQyMzlCMDI0NTAwQTUzOEE5
IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcCAqLywKQEAgLTU3NTEsNiArNTc3
Nyw3IEBACiAJCQkJRTE4QzkyRjMxMkRCOUU3MTAwQ0YyQUVCIC8qIFByaW50SW5mby5jcHAgKi8s
CiAJCQkJRTFDQzFCOEUxMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5mby5oICovLAogCQkJCTQ2
M0ZENDgxMUVCOTRFQUQwMEEyOTgyQyAvKiBQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCAqLywK
KwkJCQk5QjEyMjlEMDIzRkYyQTVFMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklk
ZW50aWZpZXIuaCAqLywKIAkJCQlGNkEwQzEzRjEzMjgxRTZFMDA3MDQzMEYgLyogUmVzb3VyY2VD
YWNoZXNUb0NsZWFyLmggKi8sCiAJCQkJNUNCN0FGRTYyM0M2ODFCMDAwRTQ5Q0YzIC8qIFJlc291
cmNlTG9hZEluZm8uaCAqLywKIAkJCQk0MTA0ODJDQjFEREQyRkI1MDBGMDA2RDAgLyogUlRDTmV0
d29yay5jcHAgKi8sCkBAIC0xMDUyOCw2ICsxMDU1NSw5IEBACiAJCQkJODMwNDhBRTYxQUNBNDVE
QzAwODJDODMyIC8qIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUExRTY4ODcwMUY2RTJCQUIwMDcwMDZBNiAvKiBRdWFyYW50aW5lU1BJLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1N0ZEMzE4MjIyQjM1MTVFMDA4RDBFOEIgLyogUmVkaXJlY3RTT0F1dGhvcml6YXRp
b25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5QjEyMjlEMjIzRkYyQkNDMDA4Q0E3NTEg
LyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTlCMTIyOUNEMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUI1QkVDMkEyNDAxMDE1ODAwNzBDNkVGIC8qIFJlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ0N0I1NkQxODEw
NzE0RTAwM0EzQUVFIC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkyRERGNzMxNTE4RTk1MDYwMDA0RjVBNjYgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVD
b2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUIxNkFFQTE2NEIzQTg4MDAyOTBENjIg
LyogUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDc4MCw2ICsx
MDgxMCw3IEBACiAJCQkJQzk4QzQ4QTYxQjZGRDRDMzAwMTQ1MTAzIC8qIFdlYk1lZGlhU2Vzc2lv
bkZvY3VzTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzlDMTgzM0MxQjc0MDI2RDAwNzAz
NkE3IC8qIFdlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQzlDRDQzOTgxQjRCMDAxRDAwMjM5RTMzIC8qIFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRh
LmggaW4gSGVhZGVycyAqLywKKwkJCQk5QjVCRUMyNjI0MDBGNEE5MDA3MEM2RUYgLyogV2ViTWVk
aWFTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQzRUY0NDMxOTE3NjQ2MzAwMDM0MTg0
IC8qIFdlYk1lbW9yeVByZXNzdXJlSGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTA5ODU0
RUQxMkJDNEUxODAwMEFEMDgwIC8qIFdlYk1lbW9yeVNhbXBsZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxM0ZGQjkxMjAxNDU5QzYwMDI1OTZFQSAvKiBXZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92
aWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjIyNCw2ICsxMjI1NSw3IEBACiAJCQkJQzE1Q0JC
MzcyM0YzN0VDQjAwMzAwQ0M3IC8qIFByZWZlcmVuY2VPYnNlcnZlci5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTJENTRDMzFCMjEyRjREQTYwMDQ5QzE3NCAvKiBQcm9jZXNzTGF1bmNoZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0QyODY1RUYyMjU1NTYyMDAwNjA2QUM3IC8qIFByb2Nlc3NUYXNr
U3RhdGVPYnNlcnZlci5tbSBpbiBTb3VyY2VzICovLAorCQkJCTlCMTIyOUNFMjNGRjI1RjIwMDhD
QTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkyRDcyQTFGQTIxMkJGNDZFMDA1MTdBMjAgLyogUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRkYyNEEyRDE4NzlFNEJDMDAzQUJGMEMgLyogUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyREMxOEZCNDIxOEE2RTlFMDAyNUE4OEQgLyogUmVtb3RlTGF5ZXJUcmVlVmll
d3MubW0gaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCShyZXZpc2lvbiAyNTcyOTcpCisr
KyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsOCBAQAogI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVj
cy5oIgogI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHlN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIgogI2luY2x1
ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZXMuaCIKQEAgLTc3LDYgKzc5LDkgQEAgU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlciYgR1BVUHJvYwogCiB2b2lkIEdQVVByb2Nlc3NDb25uZWN0
aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6
RGVjb2RlciYgZGVjb2RlcikKIHsKKyAgICBpZiAobV9yZWNlaXZlck1hcC5kaXNwYXRjaE1lc3Nh
Z2UoY29ubmVjdGlvbiwgZGVjb2RlcikpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmIChkZWNv
ZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuc3VwcGxlbWVudDxSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI+KCktPmRpZFJlY2Vp
dmVQbGF5ZXJNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogICAgICAgICByZXR1cm47Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29u
bmVjdGlvbi5oCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcg
QEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisj
aW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyTWFwLmgiCiAjaW5jbHVkZSAiU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlci5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC01Niw2ICs1NywxNiBAQCBwdWJsaWM6CiAgICAg
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciYgc2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TWFuYWdlcigpOwogI2VuZGlmCiAKKyAgICB2b2lkIGFkZE1lc3NhZ2VSZWNlaXZlcihJUEM6OlN0
cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklE
LCBJUEM6Ok1lc3NhZ2VSZWNlaXZlciYgcmVjZWl2ZXIpCisgICAgeworICAgICAgICBtX3JlY2Vp
dmVyTWFwLmFkZE1lc3NhZ2VSZWNlaXZlcihtZXNzYWdlUmVjZWl2ZXJOYW1lLCBkZXN0aW5hdGlv
bklELCByZWNlaXZlcik7CisgICAgfQorCisgICAgdm9pZCByZW1vdmVNZXNzYWdlUmVjZWl2ZXIo
SVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgdWludDY0X3QgZGVzdGlu
YXRpb25JRCkKKyAgICB7CisgICAgICAgIG1fcmVjZWl2ZXJNYXAucmVtb3ZlTWVzc2FnZVJlY2Vp
dmVyKG1lc3NhZ2VSZWNlaXZlck5hbWUsIGRlc3RpbmF0aW9uSUQpOworICAgIH0KKwogcHJpdmF0
ZToKICAgICBHUFVQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIp
OwogCkBAIC02Niw2ICs3Nyw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBUaGUgY29ubmVjdGlvbiBm
cm9tIHRoZSB3ZWIgcHJvY2VzcyB0byB0aGUgR1BVIHByb2Nlc3MuCiAgICAgUmVmPElQQzo6Q29u
bmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIElQQzo6TWVzc2FnZVJlY2VpdmVyTWFwIG1fcmVj
ZWl2ZXJNYXA7CiAKICNpZiBIQVZFKEFVRElUX1RPS0VOKQogICAgIE9wdGlvbmFsPGF1ZGl0X3Rv
a2VuX3Q+IG1fYXVkaXRUb2tlbjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9CdXNEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0J1c0RhdGEuaAkobm9uZXhpc3RlbnQpCisr
KyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvQnVzRGF0YS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2Uu
aCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiU2hh
cmVkTWVtb3J5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK3N0cnVjdCBSZW1vdGVBdWRpb0J1c0RhdGEgeworICAgIHVpbnQ2NF90
IGZyYW1lc1RvUHJvY2VzcyB7IDAgfTsKKyAgICBWZWN0b3I8UmVmPFNoYXJlZE1lbW9yeT4+IGNo
YW5uZWxCdWZmZXJzOworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KKyAgICB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8
PCBmcmFtZXNUb1Byb2Nlc3M7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0
X3Q+KGNoYW5uZWxCdWZmZXJzLnNpemUoKSk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgY2hhbm5lbEJ1ZmZlcnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIFNoYXJlZE1lbW9y
eTo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgICAgIGNoYW5uZWxCdWZmZXJzW2ldLT5jcmVhdGVI
YW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRXcml0ZSk7CisgICAg
ICAgICAgICBlbmNvZGVyIDw8IGhhbmRsZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHRlbXBs
YXRlPHR5cGVuYW1lIERlY29kZXI+CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImIGRl
Y29kZXIsIFJlbW90ZUF1ZGlvQnVzRGF0YSYgcmVzdWx0KQorICAgIHsKKyAgICAgICAgdWludDY0
X3QgZnJhbWVzVG9Qcm9jZXNzOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGZyYW1lc1Rv
UHJvY2VzcykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJlc3VsdC5mcmFt
ZXNUb1Byb2Nlc3MgPSBmcmFtZXNUb1Byb2Nlc3M7CisKKyAgICAgICAgdWludDY0X3Qgc2l6ZSA9
IDA7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZSkpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsK
KyAgICAgICAgICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoaGFuZGxlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgICAgICBhdXRvIG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRsZSwgU2hh
cmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkV3JpdGUpOworICAgICAgICAgICAgaWYgKG1lbW9y
eSkKKyAgICAgICAgICAgICAgICByZXN1bHQuY2hhbm5lbEJ1ZmZlcnMuYXBwZW5kKCptZW1vcnkp
OworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5LmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxMDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAi
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvQXVkaW9CdXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGlu
YXRpb24uaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIEF1ZGlvQnVzID0gV2ViQ29y
ZTo6QXVkaW9CdXM7Cit1c2luZyBBdWRpb0Rlc3RpbmF0aW9uID0gV2ViQ29yZTo6QXVkaW9EZXN0
aW5hdGlvbjsKK3VzaW5nIEF1ZGlvSU9DYWxsYmFjayA9IFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFj
azsKKworc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eTo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssCisgICAgY29uc3Qg
U3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVu
c2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCit7CisgICAg
cmV0dXJuIG1ha2VVbmlxdWU8UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5PihjYWxsYmFjaywg
aW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5u
ZWxzLCBzYW1wbGVSYXRlKTsKK30KKworUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3Qg
U3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVu
c2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCisgICAgOiBt
X2NhbGxiYWNrKGNhbGxiYWNrKQorICAgICwgbV9zYW1wbGVSYXRlKHNhbXBsZVJhdGUpCit7Cisg
ICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgZGVzdGluYXRpb25JRDsKKworICAg
IGF1dG8mIGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9j
ZXNzQ29ubmVjdGlvbigpOworICAgIGNvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmRTeW5jKAor
ICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OkNyZWF0ZUF1
ZGlvRGVzdGluYXRpb24oaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1i
ZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKSwKKyAgICAgICAgTWVzc2FnZXM6OlJlbW90
ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpDcmVhdGVBdWRpb0Rlc3RpbmF0aW9uOjpSZXBseShk
ZXN0aW5hdGlvbklEKSwgMCk7CisgICAgY29ubmVjdGlvbi5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVz
c2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
LCBkZXN0aW5hdGlvbklELnRvVUludDY0KCksICp0aGlzKTsKKworICAgIG1fZGVzdGluYXRpb25J
RCA9IGRlc3RpbmF0aW9uSUQ7Cit9CisKK1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6flJl
bW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSgpCit7CisgICAgYXV0byYgY29ubmVjdGlvbiA9ICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpOworICAg
IGNvbm5lY3Rpb24ucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9kZXN0aW5hdGlvbklELnRv
VUludDY0KCkpOworCisgICAgY29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1Jl
cGx5KAorICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OkRl
bGV0ZUF1ZGlvRGVzdGluYXRpb24obV9kZXN0aW5hdGlvbklEKSwgW10geworICAgICAgICAvLyBD
YW4ndCByZW1vdmUgdGhpcyBmcm9tIHByb3h5TWFwKCkgaGVyZSBiZWNhdXNlIHRoZSBvYmplY3Qg
d291bGQgaGF2ZSBiZWVuIGFscmVhZHkgZGVsZXRlZC4KKyAgICB9KTsKK30KKwordm9pZCBSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0YXJ0KCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3lu
YygKKyAgICAgICAgTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpTdGFy
dEF1ZGlvRGVzdGluYXRpb24obV9kZXN0aW5hdGlvbklEKSwKKyAgICAgICAgTWVzc2FnZXM6OlJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpTdGFydEF1ZGlvRGVzdGluYXRpb246OlJlcGx5
KG1faXNQbGF5aW5nKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5
OjpzdG9wKCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNz
Q29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYygKKyAgICAgICAgTWVzc2FnZXM6OlJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpTdG9wQXVkaW9EZXN0aW5hdGlvbihtX2Rlc3Rp
bmF0aW9uSUQpLAorICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXI6OlN0b3BBdWRpb0Rlc3RpbmF0aW9uOjpSZXBseShtX2lzUGxheWluZyksIDApOworfQorCit2
b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6cmVuZGVyQnVmZmVyKGNvbnN0IFdlYktp
dDo6UmVtb3RlQXVkaW9CdXNEYXRhJiBhdWRpb0J1c0RhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoYXVkaW9CdXNEYXRhLmZy
YW1lc1RvUHJvY2Vzcyk7CisgICAgQVNTRVJUKGF1ZGlvQnVzRGF0YS5jaGFubmVsQnVmZmVycy5z
aXplKCkpOworICAgIGF1dG8gYXVkaW9CdXMgPSBBdWRpb0J1czo6Y3JlYXRlKGF1ZGlvQnVzRGF0
YS5jaGFubmVsQnVmZmVycy5zaXplKCksIGF1ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3MsIGZh
bHNlKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYXVkaW9CdXNEYXRhLmNoYW5uZWxC
dWZmZXJzLnNpemUoKTsgKytpKQorICAgICAgICBhdWRpb0J1cy0+c2V0Q2hhbm5lbE1lbW9yeShp
LCAoZmxvYXQqKWF1ZGlvQnVzRGF0YS5jaGFubmVsQnVmZmVyc1tpXS0+ZGF0YSgpLCBhdWRpb0J1
c0RhdGEuZnJhbWVzVG9Qcm9jZXNzKTsKKworICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIGF1ZGlv
QnVzLmdldCgpLCBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzKTsKKworICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpkaWRD
aGFuZ2VJc1BsYXlpbmcoYm9vbCBpc1BsYXlpbmcpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaAkobm9u
ZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2lu
Y2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0J1c0RhdGEuaCIKKyNp
bmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIldl
YlByb2Nlc3NTdXBwbGVtZW50LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb0Rlc3RpbmF0aW9u
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb0lPQ2FsbGJhY2suaD4KKworI2lmIFBMQVRGT1JN
KENPQ09BKQorI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CisjZW5kaWYKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSA6IHB1
YmxpYyBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uLCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2Vp
dmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkpOworcHVibGljOgorICAgIHVzaW5nIEF1
ZGlvQnVzID0gV2ViQ29yZTo6QXVkaW9CdXM7CisgICAgdXNpbmcgQXVkaW9JT0NhbGxiYWNrID0g
V2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrOworCisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxB
dWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBp
bnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51
bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpOworCisgICAgUmVtb3RlQXVk
aW9EZXN0aW5hdGlvblByb3h5KEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYgaW5wdXRE
ZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJP
Zk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsKKyAgICB+UmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5KCk7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUdQVVByb2Nl
c3MoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpIHsg
ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7IH0KKworICAgIHZvaWQgcmVu
ZGVyQnVmZmVyKGNvbnN0IFdlYktpdDo6UmVtb3RlQXVkaW9CdXNEYXRhJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIGRpZENoYW5nZUlzUGxheWluZyhib29sIGlzUGxh
eWluZyk7CisKK3ByaXZhdGU6CisgICAgLy8gV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbgorICAg
IHZvaWQgc3RhcnQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICBi
b29sIGlzUGxheWluZygpIG92ZXJyaWRlIHsgcmV0dXJuIG1faXNQbGF5aW5nOyB9CisgICAgZmxv
YXQgc2FtcGxlUmF0ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2FtcGxlUmF0ZTsgfQor
CisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgQXVkaW9JT0Nh
bGxiYWNrJiBtX2NhbGxiYWNrOworICAgIGZsb2F0IG1fc2FtcGxlUmF0ZTsKKyAgICBSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBtX2Rlc3RpbmF0aW9uSUQ7CisgICAgYm9vbCBtX2lz
UGxheWluZyB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5tZXNzYWdlcy5p
bgkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDMzIEBACisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisj
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkgTm90UmVmQ291bnRlZCB7CisKKyAgICBSZW5kZXJCdWZmZXIoc3RydWN0IFdlYktpdDo6
UmVtb3RlQXVkaW9CdXNEYXRhIGRhdGEpIC0+ICgpIEFzeW5jCisgICAgRGlkQ2hhbmdlSXNQbGF5
aW5nKGJvb2wgaXNQbGF5aW5nKQorCit9CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVS
ZW1vdGUuY3BwCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzcsMjEgKzEzNywyMSBAQCB2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OmFkZERhdGFDdWVX
CiB7CiAgICAgQVNTRVJUKGNsaWVudCgpKTsKICAgICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+
Y2xpZW50KCkpCi0gICAgICAgIGNsaWVudC0+YWRkRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RG
TW92ZShlbmQpLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShkYXRh
VmFsdWUpKSwgdHlwZSk7CisgICAgICAgIGNsaWVudC0+YWRkRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0
KSwgV1RGTW92ZShlbmQpLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVh
dGUoV1RGTW92ZShkYXRhVmFsdWUpKSwgdHlwZSk7CiB9CiAKIHZvaWQgVGV4dFRyYWNrUHJpdmF0
ZVJlbW90ZTo6dXBkYXRlRGF0YUN1ZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5k
LCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiBkYXRhVmFsdWUpCiB7CiAgICAgQVNT
RVJUKGNsaWVudCgpKTsKICAgICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCi0g
ICAgICAgIGNsaWVudC0+dXBkYXRlRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQp
LCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShkYXRhVmFsdWUpKSk7
CisgICAgICAgIGNsaWVudC0+dXBkYXRlRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShl
bmQpLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShk
YXRhVmFsdWUpKSk7CiB9CiAKIHZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlRGF0
YUN1ZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlVmFsdWUmJiBkYXRhVmFsdWUpCiB7CiAgICAgQVNTRVJUKGNsaWVudCgpKTsKICAg
ICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCi0gICAgICAgIGNsaWVudC0+cmVt
b3ZlRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShkYXRhVmFsdWUpKSk7CisgICAgICAgIGNsaWVudC0+
cmVtb3ZlRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShkYXRhVmFsdWUpKSk7CiB9CiAj
ZW5kaWYKIApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJh
Y2tQcml2YXRlUmVtb3RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmgJKHJldmlzaW9uIDI1NzI5NykKKysr
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCiAKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1v
dGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JbmJhbmRUZXh0VHJhY2tQcml2YXRl
Lmg+CkBAIC00NCw2ICs0NSwxMCBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU7CiBj
bGFzcyBUZXh0VHJhY2tQcml2YXRlUmVtb3RlIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkluYmFu
ZFRleHRUcmFja1ByaXZhdGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRleHRUcmFja1By
aXZhdGVSZW1vdGUpCiBwdWJsaWM6CisgICAgdXNpbmcgR2VuZXJpY0N1ZURhdGEgPSBXZWJDb3Jl
OjpHZW5lcmljQ3VlRGF0YTsKKyAgICB1c2luZyBJU09XZWJWVFRDdWUgPSBXZWJDb3JlOjpJU09X
ZWJWVFRDdWU7CisgICAgdXNpbmcgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlID0gV2Vi
Q29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOworCiAgICAgc3RhdGljIFJlZjxU
ZXh0VHJhY2tQcml2YXRlUmVtb3RlPiBjcmVhdGUoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlJiBw
bGF5ZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZShwbGF5ZXIsIGlk
ZW5kaWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcAko
bm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1l
ZGlhU3RyYXRlZ3kuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViTWVkaWFTdHJhdGVneS5oIgor
CisjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24u
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvSU9DYWxsYmFjay5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworV2ViTWVkaWFTdHJhdGVneTo6fldlYk1lZGlhU3RyYXRlZ3koKSA9IGRlZmF1bHQ7
CisKK3N0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uPiBXZWJNZWRpYVN0
cmF0ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjayYg
Y2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKKyAgICB1bnNpZ25lZCBudW1i
ZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0
IHNhbXBsZVJhdGUpCit7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIGlmIChtX3VzZUdQ
VVByb2Nlc3MpCisgICAgICAgIHJldHVybiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OmNy
ZWF0ZShjYWxsYmFjaywgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1i
ZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKKyNlbmRpZgorICAgIHJldHVybiBXZWJD
b3JlOjpBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51
bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgJKG5vbmV4aXN0ZW50
KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5
LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVN0cmF0ZWd5Lmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBXZWJNZWRpYVN0cmF0ZWd5IDogcHVibGljIFdlYkNvcmU6Ok1lZGlh
U3RyYXRlZ3kgeworcHVibGljOgorICAgIHZpcnR1YWwgfldlYk1lZGlhU3RyYXRlZ3koKTsKKwor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICB2b2lkIHNldFVzZUdQVVByb2Nlc3MoYm9vbCB1
c2VHUFVQcm9jZXNzKSB7IG1fdXNlR1BVUHJvY2VzcyA9IHVzZUdQVVByb2Nlc3M7IH0KKyNlbmRp
ZgorCitwcml2YXRlOgorICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0
aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjayYsCisg
ICAgICAgIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1
dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVS
YXRlKSBvdmVycmlkZTsKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBib29sIG1fdXNl
R1BVUHJvY2VzcyB7IGZhbHNlIH07CisjZW5kaWYKKworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5j
cHAJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNiw2ICsyNiw5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlci5oIgogCisjaW5jbHVkZSAiRGVjb2Rlci5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvSW50U2l6ZS5oPgorCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShH
UFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFN
KQogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzksMTYgKzM5LDE5IEBACiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJX
ZWJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIldlYkxvYWRlclN0cmF0ZWd5LmgiCisj
aW5jbHVkZSAiV2ViTWVkaWFTdHJhdGVneS5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNs
dWRlICJXZWJQYXN0ZWJvYXJkT3ZlcnJpZGVzLmgiCiAjaW5jbHVkZSAiV2ViUGFzdGVib2FyZFBy
b3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24u
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVu
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2FkZXJTdHJhdGVneS5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvTWVkaWFTdHJhdGVneS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9QYWdlR3JvdXAuaD4KQEAgLTczLDYgKzc2LDggQEAKIG5hbWVzcGFjZSBXZWJLaXQgewog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKK2NsYXNzIFJlbW90ZUF1ZGlvRGVzdGluYXRpb247
CisKIHZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjppbml0aWFsaXplKCkKIHsKICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8V2ViUGxhdGZvcm1TdHJhdGVnaWVzPiBwbGF0Zm9ybVN0cmF0ZWdp
ZXM7CkBAIC05Myw2ICs5OCwxMSBAQCBQYXN0ZWJvYXJkU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3Ry
YXRlZ2llCiAgICAgcmV0dXJuIHRoaXM7CiB9CiAKK01lZGlhU3RyYXRlZ3kqIFdlYlBsYXRmb3Jt
U3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFTdHJhdGVneSgpCit7CisgICAgcmV0dXJuIG5ldyBXZWJN
ZWRpYVN0cmF0ZWd5OworfQorCiBCbG9iUmVnaXN0cnkqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKIHsKICAgICByZXR1cm4gbmV3IEJsb2JSZWdpc3RyeVByb3h5
OwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkocmV2aXNpb24gMjU3Mjk3KQor
KysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIHByaXZhdGU6CiAgICAg
Ly8gV2ViQ29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzCiAgICAgV2ViQ29yZTo6TG9hZGVyU3RyYXRl
Z3kqIGNyZWF0ZUxvYWRlclN0cmF0ZWd5KCkgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6UGFzdGVi
b2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAgICBX
ZWJDb3JlOjpNZWRpYVN0cmF0ZWd5KiBjcmVhdGVNZWRpYVN0cmF0ZWd5KCkgb3ZlcnJpZGU7CiAg
ICAgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSBvdmVycmlkZTsK
IAogICAgIC8vIFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVneQpJbmRleDogU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDI1NzI5NykKKysr
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDEsNiArMTAxLDcgQEAKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JVSU1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiV2ViTG9hZGVyU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJXZWJNZWRpYUtl
eVN0b3JhZ2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViTWVkaWFTdHJhdGVneS5oIgogI2luY2x1
ZGUgIldlYk5vdGlmaWNhdGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIldlYk9wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIgpAQCAt
MTk5LDYgKzIwMCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QaW5nTG9hZGVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bs
YXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1T
dHJhdGVnaWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5Eb2N1bWVudC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUG9pbnRlckNhcHR1cmVDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9QcmludENvbnRleHQuaD4KQEAgLTM2ODUsNiArMzY4Nyw4IEBAIHZvaWQgV2ViUGFnZTo6dXBk
YXRlUHJlZmVyZW5jZXMoY29uc3QgV2UKICAgICAgICAgbV9kcmF3aW5nQXJlYS0+dXBkYXRlUHJl
ZmVyZW5jZXMoc3RvcmUpOwogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIC8vIEZJWE1F
OiB1c2VHUFVQcm9jZXNzRm9yTWVkaWEgc2hvdWxkIGJlIGEgUnVudGltZUVuYWJsZWRGZWF0dXJl
IHNpbmNlIGl0J3MgZ2xvYmFsLgorICAgIHN0YXRpY19jYXN0PFdlYk1lZGlhU3RyYXRlZ3kmPihw
bGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bWVkaWFTdHJhdGVneSgpKS5zZXRVc2VHUFVQcm9jZXNzKHNl
dHRpbmdzLnVzZUdQVVByb2Nlc3NGb3JNZWRpYSgpKTsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5zdXBwbGVtZW50PFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcj4oKS0+dXBkYXRlUHJlZmVy
ZW5jZXMoc2V0dGluZ3MpOwogI2VuZGlmCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0wMi0yNCAgUnlvc3VrZSBO
aXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBDcmVhdGUgQXVkaW9EZXN0aW5hdGlv
biBpbiB0aGUgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwODE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZGVkIFdlYk1lZGlhU3RyYXRlZ3kgd2hpY2ggaXMgYSB3cmFwcGVyIGFy
b3VuZCBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMubW06CisgICAgICAgIChXZWJNZWRpYVN0cmF0ZWd5KTogQWRkZWQu
CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3kpOgor
CiAyMDIwLTAyLTI0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbmFtZSB0aGUgY2xhc2hpbmcgV2ViT3ZlcmxheUxheWVyIGNsYXNzZXMKSW5kZXg6
IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAko
d29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQCBwcml2YXRlOgogICAgIC8vIFdlYkNvcmU6
OlBsYXRmb3JtU3RyYXRlZ2llcwogICAgIFdlYkNvcmU6OkxvYWRlclN0cmF0ZWd5KiBjcmVhdGVM
b2FkZXJTdHJhdGVneSgpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVn
eSogY3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6TWVk
aWFTdHJhdGVneSogY3JlYXRlTWVkaWFTdHJhdGVneSgpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6
OkJsb2JSZWdpc3RyeSogY3JlYXRlQmxvYlJlZ2lzdHJ5KCkgb3ZlcnJpZGU7CiAKICAgICAvLyBX
ZWJDb3JlOjpQYXN0ZWJvYXJkU3RyYXRlZ3kKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMubW0JKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgs
OSArMjgsMTEgQEAKICNpbXBvcnQgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbXBv
cnQgIldlYlBsdWdpblBhY2thZ2UuaCIKICNpbXBvcnQgIldlYlJlc291cmNlTG9hZFNjaGVkdWxl
ci5oIgorI2ltcG9ydCA8V2ViQ29yZS9BdWRpb0Rlc3RpbmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0Jsb2JSZWdpc3RyeUltcGwuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ29sb3IuaD4KICNpbXBv
cnQgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTWVkaWFTdHJhdGVneS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbXBvcnQgPFdlYkNv
cmUvUGFzdGVib2FyZEl0ZW1JbmZvLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtUGFzdGVi
b2FyZC5oPgpAQCAtNjIsNiArNjQsMjEgQEAgUGFzdGVib2FyZFN0cmF0ZWd5KiBXZWJQbGF0Zm9y
bVN0cmF0ZWdpZQogICAgIHJldHVybiB0aGlzOwogfQogCitjbGFzcyBXZWJNZWRpYVN0cmF0ZWd5
IGZpbmFsIDogcHVibGljIE1lZGlhU3RyYXRlZ3kgeworcHJpdmF0ZToKKworICAgIHN0ZDo6dW5p
cXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKEF1ZGlvSU9D
YWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKKyAgICAgICAg
dW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENo
YW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgcmV0dXJu
IEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShjYWxsYmFjaywgaW5wdXREZXZpY2VJZCwgbnVtYmVy
T2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKKyAg
ICB9Cit9OworCitNZWRpYVN0cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1l
ZGlhU3RyYXRlZ3koKQoreworICAgIHJldHVybiBuZXcgV2ViTWVkaWFTdHJhdGVneTsKK30KKwog
Y2xhc3MgV2ViQmxvYlJlZ2lzdHJ5IGZpbmFsIDogcHVibGljIEJsb2JSZWdpc3RyeSB7CiBwcml2
YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmIHVybCwgUmVmPEJs
b2JEYXRhRmlsZVJlZmVyZW5jZT4mJiByZWZlcmVuY2UsIGNvbnN0IFN0cmluZyYgY29udGVudFR5
cGUpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0ZXJGaWxlQmxvYlVSTCh1cmwsIFdURk1v
dmUocmVmZXJlbmNlKSwgY29udGVudFR5cGUpOyB9CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0wMi0yNCAgUnlvc3Vr
ZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBDcmVhdGUgQXVkaW9EZXN0aW5h
dGlvbiBpbiB0aGUgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwODE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZGVkIFdlYk1lZGlhU3RyYXRlZ3kgd2hpY2ggaXMgYSB3cmFwcGVy
IGFyb3VuZCBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViTWVkaWFTdHJhdGVn
eSk6IEFkZGVkLgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVNZWRpYVN0
cmF0ZWd5KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
aDoKKwogMjAyMC0wMi0xMyAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjU1MTU4LCAyNTU0MDUgYW5kIHIyNTU0
ODYKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkocmV2aXNpb24gMjU3Mjk3
KQorKysgU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvQmxvYlJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9CbG9iUmVnaXN0cnlJ
bXBsLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvTWVkaWFTdHJhdGVneS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdl
R3JvdXAuaD4KQEAgLTYwLDYgKzYxLDIxIEBAIFBhc3RlYm9hcmRTdHJhdGVneSogV2ViUGxhdGZv
cm1TdHJhdGVnaWUKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAorY2xhc3MgV2ViTWVkaWFTdHJh
dGVneSBmaW5hbCA6IHB1YmxpYyBNZWRpYVN0cmF0ZWd5IHsKK3ByaXZhdGU6CisKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRp
b0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCisgICAg
ICAgIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRw
dXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIHJl
dHVybiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51
bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7
CisgICAgfQorfTsKKworTWVkaWFTdHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVh
dGVNZWRpYVN0cmF0ZWd5KCkKK3sKKyAgICByZXR1cm4gbmV3IFdlYk1lZGlhU3RyYXRlZ3k7Cit9
CisKIGNsYXNzIFdlYkJsb2JSZWdpc3RyeSBmaW5hbCA6IHB1YmxpYyBCbG9iUmVnaXN0cnkgewog
cHJpdmF0ZToKICAgICB2b2lkIHJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIFJl
ZjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYgcmVmZXJlbmNlLCBjb25zdCBTdHJpbmcmIGNvbnRl
bnRUeXBlKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnJlZ2lzdGVyRmlsZUJsb2JVUkwodXJsLCBX
VEZNb3ZlKHJlZmVyZW5jZSksIGNvbnRlbnRUeXBlKTsgfQpJbmRleDogU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmgJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zOCw3ICszOCw4IEBAIHByaXZhdGU6CiAgICAgV2ViUGxhdGZvcm1TdHJhdGVnaWVzKCk7CiAK
ICAgICAvLyBXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXMKLSAgICB2aXJ0dWFsIFdlYkNvcmU6
OkxvYWRlclN0cmF0ZWd5KiBjcmVhdGVMb2FkZXJTdHJhdGVneSgpOwotICAgIHZpcnR1YWwgV2Vi
Q29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKTsKLSAg
ICB2aXJ0dWFsIFdlYkNvcmU6OkJsb2JSZWdpc3RyeSogY3JlYXRlQmxvYlJlZ2lzdHJ5KCk7Cisg
ICAgV2ViQ29yZTo6TG9hZGVyU3RyYXRlZ3kqIGNyZWF0ZUxvYWRlclN0cmF0ZWd5KCkgb3ZlcnJp
ZGU7CisgICAgV2ViQ29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0ZWJvYXJkU3Ry
YXRlZ3koKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpNZWRpYVN0cmF0ZWd5KiBjcmVhdGVNZWRp
YVN0cmF0ZWd5KCkgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVC
bG9iUmVnaXN0cnkoKSBvdmVycmlkZTsKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391716</attachid>
            <date>2020-02-25 19:01:31 -0800</date>
            <delta_ts>2020-02-25 20:56:49 -0800</delta_ts>
            <desc>Windows build fix attempt 1</desc>
            <filename>bug-208179-20200225190130.patch</filename>
            <type>text/plain</type>
            <size>98873</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDIwLTAyLTI0ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIENyZWF0ZSBBdWRpb0Rlc3RpbmF0
aW9uIGluIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA4MTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIGFuIGFic3RyYWN0aW9uIGFyb3VuZCB0aGUgY3JlYXRpb24gb2Yg
QXVkaW9EZXN0aW5hdGlvbiB1c2luZyBuZXdseSBpbnRyb2R1Y2VkIG1lZGlhU3RyYXRlZ3kuCisK
KyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vRGVm
YXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZmF1bHRB
dWRpb0Rlc3RpbmF0aW9uTm9kZTo6Y3JlYXRlRGVzdGluYXRpb24pOiBVc2UgTWVkaWFTdHJhdGVn
eTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5Lmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJhdGVneSk6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1T
dHJhdGVnaWVzOjptZWRpYVN0cmF0ZWd5KTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vQXVkaW9CdXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9u
Lmg6CisKIDIwMjAtMDItMjQgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggZm9yIFdpbkNhaXJvIHBvcnQKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQkocmV2aXNpb24gMjU3Mjk3KQorKysgU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAtOTUxLDYgKzk1MSw3IEBAIHNldChXZWJD
b3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lz
dHJ5LmgKICAgICBwbGF0Zm9ybS9NZWRpYVNhbXBsZS5oCiAgICAgcGxhdGZvcm0vTWVkaWFTZWxl
Y3Rpb25PcHRpb24uaAorICAgIHBsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaAogICAgIHBsYXRmb3Jt
L05vdEltcGxlbWVudGVkLmgKICAgICBwbGF0Zm9ybS9PcmllbnRhdGlvbk5vdGlmaWVyLmgKICAg
ICBwbGF0Zm9ybS9QT0RJbnRlcnZhbC5oCkBAIC0xMDIyLDcgKzEwMjMsMTIgQEAgc2V0KFdlYkNv
cmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2FuaW1hdGlvbi9Bbmlt
YXRpb25VdGlsaXRpZXMuaAogICAgIHBsYXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5o
CiAKKyAgICBwbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5LmgKKyAgICBwbGF0Zm9ybS9hdWRpby9B
dWRpb0J1cy5oCisgICAgcGxhdGZvcm0vYXVkaW8vQXVkaW9DaGFubmVsLmgKKyAgICBwbGF0Zm9y
bS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmgKICAgICBwbGF0Zm9ybS9hdWRpby9BdWRpb0hhcmR3
YXJlTGlzdGVuZXIuaAorICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvSU9DYWxsYmFjay5oCiAgICAg
cGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKICAgICBwbGF0Zm9ybS9hdWRpby9BdWRpb1Nv
dXJjZVByb3ZpZGVyLmgKICAgICBwbGF0Zm9ybS9hdWRpby9BdWRpb1N0cmVhbURlc2NyaXB0aW9u
LmgKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVz
dGluYXRpb25Ob2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAJKHJldmlzaW9uIDI1NzI5NykK
KysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRp
b25Ob2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsOCBAQAogI2luY2x1ZGUgIkF1
ZGlvQ29udGV4dC5oIgogI2luY2x1ZGUgIkF1ZGlvRGVzdGluYXRpb24uaCIKICNpbmNsdWRlICJM
b2dnaW5nLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJhdGVneS5oIgorI2luY2x1ZGUgIlBsYXRmb3Jt
U3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+
CkBAIC04NCw4ICs4Niw4IEBAIHZvaWQgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpjcmVh
dGUKIHsKICAgICBmbG9hdCBoYXJkd2FyZVNhbXBsZVJhdGUgPSBBdWRpb0Rlc3RpbmF0aW9uOjpo
YXJkd2FyZVNhbXBsZVJhdGUoKTsKICAgICBMT0coV2ViQXVkaW8sICI+Pj4+IGhhcmR3YXJlU2Ft
cGxlUmF0ZSA9ICVmXG4iLCBoYXJkd2FyZVNhbXBsZVJhdGUpOwotICAgIAotICAgIG1fZGVzdGlu
YXRpb24gPSBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoKnRoaXMsIG1faW5wdXREZXZpY2VJZCwg
bV9udW1iZXJPZklucHV0Q2hhbm5lbHMsIGNoYW5uZWxDb3VudCgpLCBoYXJkd2FyZVNhbXBsZVJh
dGUpOworCisgICAgbV9kZXN0aW5hdGlvbiA9IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5tZWRpYVN0
cmF0ZWd5KCkuY3JlYXRlQXVkaW9EZXN0aW5hdGlvbigqdGhpcywgbV9pbnB1dERldmljZUlkLCBt
X251bWJlck9mSW5wdXRDaGFubmVscywgY2hhbm5lbENvdW50KCksIGhhcmR3YXJlU2FtcGxlUmF0
ZSk7CiB9CiAKIHZvaWQgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjplbmFibGVJbnB1dChj
b25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTcyOTcpCisrKyBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTI4ODksNiArMjg4OSw4IEBACiAJCTlBQjFGMzgwMThFMjQ4OUEwMDUzNDc0MyAv
KiBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5QUIxRjM3RTE4RTI0ODlBMDA1MzQ3NDMgLyogQ1NTVG9MZW5n
dGhDb252ZXJzaW9uRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTlCMDJFMEM4MjM1RUFEMkEwMDQwNDRCMiAvKiBUZXh0TWFuaXB1bGF0aW9u
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOUIwMkUwQzMyMzVFNzZBQTAwNDA0NEIyIC8qIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIw
QUJDQUUyMzZCQjQzMTAwQjQ1MDg1IC8qIFRhc2tTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMEFCQ0FDMjM2QkI0MEEwMEI0NTA4NSAvKiBU
YXNrU291cmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJOUIxMjI5QzQyM0ZFNEJEMjAwOENBNzUxIC8qIEF1ZGlvRGVzdGluYXRpb25Db2NvYS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzMTUxODYy
MzU3NzQ1RTAwMTE1RTZFIC8qIEF1ZGlvRGVzdGluYXRpb25Db2NvYS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTlCMTIyOUM3MjNGRTRENkEwMDhD
QTc1MSAvKiBNZWRpYVN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5QjEyMjlDNjIzRkU0RDVGMDA4Q0E3NTEgLyogTWVkaWFTdHJhdGVneS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMjRE
RThFMTUxOTRCOTUwMEM1OUMyNyAvKiBIVE1MQkRJRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIyNERFOEMxNTE5NEI5NTAwQzU5QzI3IC8q
IEhUTUxCRElFbGVtZW50LmggKi87IH07CiAJCTlCMjdGQzYwMjM0RDlBREIwMDM5NEE0NiAvKiBX
aW5kb3dFdmVudExvb3AuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDlCMjdGQzVFMjM0RDlBREEwMDM5NEE0NiAvKiBXaW5kb3dFdmVudExvb3AuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjJEOEE3OTE0
OTk3Q0NGMDBFQ0VGM0UgLyogVW5kb1N0ZXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDlCMkQ4QTc4MTQ5OTdDQ0YwMEVDRUYzRSAvKiBVbmRvU3RlcC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01MDY4
LDEwICs1MDcwLDEwIEBACiAJCUZEMzE2MDM2MTJCMDI2NzYwMEMxQTM1OSAvKiBTY3JpcHRQcm9j
ZXNzb3JOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGRDMxNUZFQzEyQjAyNjc2MDBDMUEzNTkgLyogU2NyaXB0UHJvY2Vzc29yTm9kZS5oICovOyB9
OwogCQlGRDMxNjAzQzEyQjAyNjc2MDBDMUEzNTkgLyogUmVhbHRpbWVBbmFseXNlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTVGRjIxMkIwMjY3
NjAwQzFBMzU5IC8qIFJlYWx0aW1lQW5hbHlzZXIuaCAqLzsgfTsKIAkJRkQzMTYwM0UxMkIwMjY3
NjAwQzFBMzU5IC8qIEFuYWx5c2VyTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRkQzMTVGRjQxMkIwMjY3NjAwQzFBMzU5IC8qIEFuYWx5c2VyTm9k
ZS5oICovOyB9OwotCQlGRDMxNjA3QTEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9BcnJheS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNDQxMkIw
MjZGNzAwQzFBMzU5IC8qIEF1ZGlvQXJyYXkuaCAqLzsgfTsKLQkJRkQzMTYwN0MxMkIwMjZGNzAw
QzFBMzU5IC8qIEF1ZGlvQnVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGRDMxNjA0NjEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9CdXMuaCAqLzsgfTsK
LQkJRkQzMTYwN0UxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvQ2hhbm5lbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNDgxMkIwMjZGNzAwQzFB
MzU5IC8qIEF1ZGlvQ2hhbm5lbC5oICovOyB9OwotCQlGRDMxNjA3RjEyQjAyNkY3MDBDMUEzNTkg
LyogQXVkaW9EZXN0aW5hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRkQzMTYwNDkxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb24u
aCAqLzsgfTsKKwkJRkQzMTYwN0ExMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvQXJyYXkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDQ0MTJCMDI2
RjcwMEMxQTM1OSAvKiBBdWRpb0FycmF5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJRkQzMTYwN0MxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvQnVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA0
NjEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9CdXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQlGRDMxNjA3RTEyQjAyNkY3MDBDMUEzNTkgLyogQXVk
aW9DaGFubmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGRDMxNjA0ODEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9DaGFubmVsLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRkQzMTYwN0YxMkIwMjZGNzAw
QzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDQ5MTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0Rlc3Rp
bmF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJRkQzMTYwODAxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRFNQS2VybmVsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA0QTEyQjAyNkY3MDBD
MUEzNTkgLyogQXVkaW9EU1BLZXJuZWwuaCAqLzsgfTsKIAkJRkQzMTYwODIxMkIwMjZGNzAwQzFB
MzU5IC8qIEF1ZGlvRFNQS2VybmVsUHJvY2Vzc29yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA0QzEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9E
U1BLZXJuZWxQcm9jZXNzb3IuaCAqLzsgfTsKIAkJRkQzMTYwODMxMkIwMjZGNzAwQzFBMzU5IC8q
IEF1ZGlvRmlsZVJlYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkQzMTYwNEQxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRmlsZVJlYWRlci5oICov
OyB9OwpAQCAtNTE0OSw3ICs1MTUxLDcgQEAKIAkJRkRCMTcwMDYxNEEyQkFCMjAwQTJCNUQ5IC8q
IE11bHRpQ2hhbm5lbFJlc2FtcGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkRCMTcwMDQxNEEyQkFCMjAwQTJCNUQ5IC8qIE11bHRpQ2hhbm5lbFJl
c2FtcGxlci5oICovOyB9OwogCQlGREJENDgwRDE1OUJDNjg3MDA5M0VCNEYgLyogSlNNZWRpYVN0
cmVhbUF1ZGlvU291cmNlTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRkRCRDQ4MEIxNTlCQzY4NzAwOTNFQjRGIC8qIEpTTWVkaWFTdHJlYW1BdWRp
b1NvdXJjZU5vZGUuaCAqLzsgfTsKIAkJRkRDNTRGMDUxMzk5QjBEQTAwOEQ5MTE3IC8qIEJpcXVh
ZEZpbHRlck5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEZEQzU0RjAyMTM5OUIwREEwMDhEOTExNyAvKiBCaXF1YWRGaWx0ZXJOb2RlLmggKi87IH07
Ci0JCUZERTJENTVCMTU5RTY2RUIwMERDQ0NGOCAvKiBBdWRpb0lPQ2FsbGJhY2suaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZERTJENTVBMTU5RTY2RUIw
MERDQ0NGOCAvKiBBdWRpb0lPQ2FsbGJhY2suaCAqLzsgfTsKKwkJRkRFMkQ1NUIxNTlFNjZFQjAw
RENDQ0Y4IC8qIEF1ZGlvSU9DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRkRFMkQ1NUExNTlFNjZFQjAwRENDQ0Y4IC8qIEF1ZGlvSU9DYWxs
YmFjay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUZERUE2MjQzMTUyMTAyRTIwMDQ3OURGMCAvKiBKU09zY2lsbGF0b3JOb2RlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGREVBNjI0MTE1MjEwMkUyMDA0
NzlERjAgLyogSlNPc2NpbGxhdG9yTm9kZS5oICovOyB9OwogCQlGREVBNjI0NzE1MjEwMkZDMDA0
NzlERjAgLyogSlNQZXJpb2RpY1dhdmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZERUE2MjQ1MTUyMTAyRkMwMDQ3OURGMCAvKiBKU1BlcmlvZGljV2F2
ZS5oICovOyB9OwogCQlGREYwOURDOTEzOTlCNjIyMDA2ODhFNUIgLyogSlNCaXF1YWRGaWx0ZXJO
b2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGREYw
OURDNzEzOTlCNjIyMDA2ODhFNUIgLyogSlNCaXF1YWRGaWx0ZXJOb2RlLmggKi87IH07CkBAIC0x
MTIwMyw2ICsxMTIwNSw3IEBACiAJCTlCMEFCQ0E0MjM2NzlBQ0YwMEI0NTA4NSAvKiBXb3JrZXJF
dmVudExvb3AuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29ya2VyRXZlbnRM
b29wLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMEFCQ0FDMjM2QkI0MEEwMEI0
NTA4NSAvKiBUYXNrU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRhc2tTb3VyY2UuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwRkU4NzMxRDlFMDJERjAwNEE4QUNCIC8qIERvY3Vt
ZW50T3JTaGFkb3dSb290LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEb2N1bWVudE9yU2hh
ZG93Um9vdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCMTIyOUM2MjNGRTRE
NUYwMDhDQTc1MSAvKiBNZWRpYVN0cmF0ZWd5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU3RyYXRl
Z3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIxMzI1N0IxRjNEMkFCQTAwREFB
QjY5IC8qIERhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IERhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOUIxOUI2N0UxQjk2NEU1MjAwMzQ4NzQ1IC8qIFNoYWRvd1Jvb3QuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1Jvb3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5QjFBQjA3OTE2NDhDNjlEMDA1MUYzRjIgLyogSFRNTEZvcm1Db250cm9sc0Nv
bGxlY3Rpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1OTMyLDYgKzI1OTM1LDcgQEAKIAkJCQlDREYyQjAw
MzE4MUYwNTlDMDBGMkI0MjQgLyogTWVkaWFEZXNjcmlwdGlvbi5oICovLAogCQkJCUNENjQxRUM3
MTgxRUQ2MDEwMEVFNEM0MSAvKiBNZWRpYVNhbXBsZS5oICovLAogCQkJCUExN0QyNzVEMUVBQzU3
OTgwMEJGMDFFNyAvKiBNZWRpYVNlbGVjdGlvbk9wdGlvbi5oICovLAorCQkJCTlCMTIyOUM2MjNG
RTRENUYwMDhDQTc1MSAvKiBNZWRpYVN0cmF0ZWd5LmggKi8sCiAJCQkJQkM3NzJDNEMwQzRFQjMw
NDAwODMyODVGIC8qIE1JTUVUeXBlUmVnaXN0cnkuY3BwICovLAogCQkJCUJDNzcyQzREMEM0RUIz
MDQwMDgzMjg1RiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmggKi8sCiAJCQkJRTE1MTNENTAxNjc3RjA4
ODAwMTQ5RkNCIC8qIE5vdEltcGxlbWVudGVkLmNwcCAqLywKQEAgLTI5MDU3LDYgKzI5MDYxLDcg
QEAKIAkJCQlGRDMxNjA3RTEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9DaGFubmVsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGRDMxNjAwNTEyQjAyNjc2MDBDMUEzNTkgLyogQXVkaW9Db250ZXh0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA3RjEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9EZXN0
aW5hdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUIxMjI5QzQyM0ZFNEJEMjAwOENBNzUxIC8q
IEF1ZGlvRGVzdGluYXRpb25Db2NvYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwQkQxMkIw
MjcyQTAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb25NYWMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZEMzE2MDA4MTJCMDI2NzYwMEMxQTM1OSAvKiBBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRkQzMTYwODAxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRFNQS2VybmVs
LmggaW4gSGVhZGVycyAqLywKQEAgLTMxNDkwLDYgKzMxNDk1LDcgQEAKIAkJCQlDRDY0MUVCMzE4
MThGNUVEMDBFRTRDNDEgLyogTWVkaWFTb3VyY2VQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDREM4QjVBNzE4MDQ3NEY3MDAxNkU2ODUgLyogTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQ0REQzFFN0ExOEE5NTJGMzAwMjdBOUQ0IC8qIE1lZGlhU291
cmNlUHJpdmF0ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUIxMjI5QzcyM0ZFNEQ2QTAw
OENBNzUxIC8qIE1lZGlhU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTE1MTdE
MTREMUMwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5
NEMxN0QxNzA5NjAwNDIwQUExIC8qIE1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTA3ODMyMjg1MTgwMTNFRDgwMDk5OUUwQyAvKiBNZWRpYVN0cmVh
bUF1ZGlvU291cmNlLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL01lZGlhU3RyYXRlZ3kuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9NZWRpYVN0cmF0ZWd5LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTWVkaWFTdHJhdGVneS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXVkaW9EZXN0aW5hdGlvbjsKK2NsYXNzIEF1ZGlvSU9D
YWxsYmFjazsKKworY2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFTdHJhdGVneSB7CitwdWJsaWM6
CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVk
aW9EZXN0aW5hdGlvbigKKyAgICAgICAgQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBp
bnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51
bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpID0gMDsKK3Byb3RlY3RlZDoK
KyAgICB2aXJ0dWFsIH5NZWRpYVN0cmF0ZWd5KCkgPSBkZWZhdWx0OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TdHJh
dGVnaWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1T
dHJhdGVnaWVzLmgJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtU3RyYXRlZ2llcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQmxvYlJlZ2lzdHJ5OwogY2xhc3MgTG9hZGVyU3Ry
YXRlZ3k7CitjbGFzcyBNZWRpYVN0cmF0ZWd5OwogY2xhc3MgUGFzdGVib2FyZFN0cmF0ZWd5Owog
CiBjbGFzcyBQbGF0Zm9ybVN0cmF0ZWdpZXMgewpAQCAtMzksNyArNDAsNyBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICBtX2xvYWRlclN0cmF0ZWd5ID0gY3JlYXRlTG9hZGVyU3RyYXRlZ3koKTsKICAg
ICAgICAgcmV0dXJuIG1fbG9hZGVyU3RyYXRlZ3k7CiAgICAgfQotICAgIAorCiAgICAgUGFzdGVi
b2FyZFN0cmF0ZWd5KiBwYXN0ZWJvYXJkU3RyYXRlZ3koKQogICAgIHsKICAgICAgICAgaWYgKCFt
X3Bhc3RlYm9hcmRTdHJhdGVneSkKQEAgLTQ3LDYgKzQ4LDEzIEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIG1fcGFzdGVib2FyZFN0cmF0ZWd5OwogICAgIH0KIAorICAgIE1lZGlhU3RyYXRlZ3km
IG1lZGlhU3RyYXRlZ3koKQorICAgIHsKKyAgICAgICAgaWYgKCFtX21lZGlhU3RyYXRlZ3kpCisg
ICAgICAgICAgICBtX21lZGlhU3RyYXRlZ3kgPSBjcmVhdGVNZWRpYVN0cmF0ZWd5KCk7CisgICAg
ICAgIHJldHVybiAqbV9tZWRpYVN0cmF0ZWd5OworICAgIH0KKwogICAgIEJsb2JSZWdpc3RyeSog
YmxvYlJlZ2lzdHJ5KCkKICAgICB7CiAgICAgICAgIGlmICghbV9ibG9iUmVnaXN0cnkpCkBAIC02
NCwxMCArNzIsMTIgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIExvYWRlclN0
cmF0ZWd5KiBjcmVhdGVMb2FkZXJTdHJhdGVneSgpID0gMDsKICAgICB2aXJ0dWFsIFBhc3RlYm9h
cmRTdHJhdGVneSogY3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkgPSAwOworICAgIHZpcnR1YWwg
TWVkaWFTdHJhdGVneSogY3JlYXRlTWVkaWFTdHJhdGVneSgpID0gMDsKICAgICB2aXJ0dWFsIEJs
b2JSZWdpc3RyeSogY3JlYXRlQmxvYlJlZ2lzdHJ5KCkgPSAwOwogCiAgICAgTG9hZGVyU3RyYXRl
Z3kqIG1fbG9hZGVyU3RyYXRlZ3kgeyB9OwogICAgIFBhc3RlYm9hcmRTdHJhdGVneSogbV9wYXN0
ZWJvYXJkU3RyYXRlZ3kgeyB9OworICAgIE1lZGlhU3RyYXRlZ3kqIG1fbWVkaWFTdHJhdGVneSB7
IH07CiAgICAgQmxvYlJlZ2lzdHJ5KiBtX2Jsb2JSZWdpc3RyeSB7IH07CiB9OwogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmgJKHJldmlzaW9uIDI1NzI5NykK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTY2LDEwICs2NiwxMCBAQCBwdWJsaWM6CiAgICAgLy8gYWxsb2NhdGUgaW5kaWNhdGVz
IHdoZXRoZXIgb3Igbm90IHRvIGluaXRpYWxseSBoYXZlIHRoZSBBdWRpb0NoYW5uZWxzIGNyZWF0
ZWQgd2l0aCBtYW5hZ2VkIHN0b3JhZ2UuCiAgICAgLy8gTm9ybWFsIHVzYWdlIGlzIHRvIHBhc3Mg
dHJ1ZSBoZXJlLCBpbiB3aGljaCBjYXNlIHRoZSBBdWRpb0NoYW5uZWxzIHdpbGwgbWVtb3J5LW1h
bmFnZSB0aGVpciBvd24gc3RvcmFnZS4KICAgICAvLyBJZiBhbGxvY2F0ZSBpcyBmYWxzZSB0aGVu
IHNldENoYW5uZWxNZW1vcnkoKSBoYXMgdG8gYmUgY2FsbGVkIGxhdGVyIG9uIGZvciBlYWNoIGNo
YW5uZWwgYmVmb3JlIHRoZSBBdWRpb0J1cyBpcyB1c2VhYmxlLi4uCi0gICAgc3RhdGljIFJlZlB0
cjxBdWRpb0J1cz4gY3JlYXRlKHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBsZW5n
dGgsIGJvb2wgYWxsb2NhdGUgPSB0cnVlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVm
UHRyPEF1ZGlvQnVzPiBjcmVhdGUodW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IGxl
bmd0aCwgYm9vbCBhbGxvY2F0ZSA9IHRydWUpOwogCiAgICAgLy8gVGVsbHMgdGhlIGdpdmVuIGNo
YW5uZWwgdG8gdXNlIGFuIGV4dGVybmFsbHkgYWxsb2NhdGVkIGJ1ZmZlci4KLSAgICB2b2lkIHNl
dENoYW5uZWxNZW1vcnkodW5zaWduZWQgY2hhbm5lbEluZGV4LCBmbG9hdCogc3RvcmFnZSwgc2l6
ZV90IGxlbmd0aCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDaGFubmVsTWVtb3J5KHVu
c2lnbmVkIGNoYW5uZWxJbmRleCwgZmxvYXQqIHN0b3JhZ2UsIHNpemVfdCBsZW5ndGgpOwogCiAg
ICAgLy8gQ2hhbm5lbHMKICAgICB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzKCkgY29uc3QgeyBy
ZXR1cm4gbV9jaGFubmVscy5zaXplKCk7IH0KQEAgLTEyNiw3ICsxMjYsNyBAQCBwdWJsaWM6CiAK
ICAgICAvLyBDb3BpZXMgdGhlIHNhbXBsZXMgZnJvbSB0aGUgc291cmNlIGJ1cyB0byB0aGlzIG9u
ZS4KICAgICAvLyBUaGlzIGlzIGp1c3QgYSBzaW1wbGUgcGVyLWNoYW5uZWwgY29weSBpZiB0aGUg
bnVtYmVyIG9mIGNoYW5uZWxzIG1hdGNoLCBvdGhlcndpc2UgYW4gdXAtbWl4IG9yIGRvd24tbWl4
IGlzIGRvbmUuCi0gICAgdm9pZCBjb3B5RnJvbShjb25zdCBBdWRpb0J1cyYgc291cmNlQnVzLCBD
aGFubmVsSW50ZXJwcmV0YXRpb24gPSBTcGVha2Vycyk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBjb3B5RnJvbShjb25zdCBBdWRpb0J1cyYgc291cmNlQnVzLCBDaGFubmVsSW50ZXJwcmV0YXRp
b24gPSBTcGVha2Vycyk7CiAKICAgICAvLyBTdW1zIHRoZSBzYW1wbGVzIGZyb20gdGhlIHNvdXJj
ZSBidXMgdG8gdGhpcyBvbmUuCiAgICAgLy8gVGhpcyBpcyBqdXN0IGEgc2ltcGxlIHBlci1jaGFu
bmVsIHN1bW1pbmcgaWYgdGhlIG51bWJlciBvZiBjaGFubmVscyBtYXRjaCwgb3RoZXJ3aXNlIGFu
IHVwLW1peCBvciBkb3duLW1peCBpcyBkb25lLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaAkocmV2aXNpb24gMjU3Mjk3KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC00NSw3ICs0NSw3IEBAIGNsYXNzIEF1ZGlvRGVzdGluYXRpb24gewogcHVibGlj
OgogICAgIC8vIFBhc3MgaW4gKG51bWJlck9mSW5wdXRDaGFubmVscyA+IDApIGlmIGxpdmUvbG9j
YWwgYXVkaW8gaW5wdXQgaXMgZGVzaXJlZC4KICAgICAvLyBQb3J0LXNwZWNpZmljIGRldmljZSBp
ZGVudGlmaWNhdGlvbiBpbmZvcm1hdGlvbiBmb3IgbGl2ZS9sb2NhbCBpbnB1dCBzdHJlYW1zIGNh
biBiZSBwYXNzZWQgaW4gdGhlIGlucHV0RGV2aWNlSWQuCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3Ry
aW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2ln
bmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpOworICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRl
KEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQg
bnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBm
bG9hdCBzYW1wbGVSYXRlKTsKIAogICAgIHZpcnR1YWwgfkF1ZGlvRGVzdGluYXRpb24oKSA9IGRl
ZmF1bHQ7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDExOSBAQAorMjAyMC0wMi0yNCAg
Unlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBDcmVhdGUgQXVkaW9E
ZXN0aW5hdGlvbiBpbiB0aGUgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENyZWF0ZSBBdWRpb0Rlc3RpbmF0aW9uIGluIHRoZSBHUFUg
cHJvY2VzcyBpbnN0ZWFkIG9mIHRoZSBXZWJDb250ZW50IHByb2Nlc3MgZm9yIFdlYkF1ZGlvIEFQ
SSB3aGVuCisgICAgICAgIHRoZSBNZWRpYS1pbi1HUFUtcHJvY2VzcyBmZWF0dXJlIGlzIGVuYWJs
ZWQuCisKKyAgICAgICAgVG8gZG8gdGhpcywgV2ViTWVkaWFTdHJhdGVneSwgYSBjb25jcmV0ZSBp
bXBsZW1lbnRhdGlvbiBvZiBNZWRpYVN0cmF0ZWd5LCBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNz
IGdldHMKKyAgICAgICAgYSBib29sZWFuIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBHUFUg
cHJvY2VzcyBzaG91bGQgYmUgdXNlZCBmb3IgQXVkaW9EZXN0aW5hdGlvbiBvciBub3QuIFdoZW4g
dGhlIGZsYWcKKyAgICAgICAgaXMgc2V0LCB3ZSBjcmVhdGUgUmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5IGluc3RlYWQgb2YgQXVkaW9EZXN0aW5hdGlvbiBpbiBXZWJDb250ZW50IHByb2Nlc3Mu
CisKKyAgICAgICAgRWFjaCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgdGFsa3MgdG8gUmVt
b3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIgaW4gdGhlIEdQVSBwcm9jZXNzIGFuZCBjcmVhdGVz
CisgICAgICAgIGEgY29ycmVzcG9uZGluZyBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uIHdoaWNoIGlu
IHR1cm4gY3JlYXRlcyBXZWJDb3JlJ3MgQXVkaW9EZXN0aW5hdGlvbiBpbiB0aGUgR1BVIHByb2Nl
c3MuCisKKyAgICAgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbiBpcyBpdHNlbGYgYW4gQXVkaW9J
T0NhbGxiYWNrIGZvciBBdWRpb0Rlc3RpbmF0aW9uIGl0IGNyZWF0ZXMsIGFuZCBkZWxlZ2F0ZXMK
KyAgICAgICAgaXRzIGNhbGxiYWNrIHRvIFdlYkNvbnRlbnQgcHJvY2VzcycgUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5IGFzIG5lZWRlZC4KKworICAgICAgICBJbiB0aGlzIGluaXRpYWwgcGF0
Y2gsIHdlIHNlbmQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpSZW5kZXJCdWZmZXIgSVBD
IGNhbGwgdG8gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcworICAgICAgICBmb3IgZWFjaCByZW5kZXIg
Y2FsbCB3ZSBnZXQgZnJvbSBDb3JlQXVkaW8gZm9yIHNpbXBsaWNpdHkgdXNpbmcgbmV3bHkgaW50
cm9kdWNlZCBSZW1vdGVBdWRpb0J1c0RhdGEsCisgICAgICAgIHdoaWNoIGhvbGRzIGEgU2hhcmVk
TWVtb3J5IGZvciBlYWNoIGNoYW5uZWwgaW4gdGhlIGF1ZGlvIGJ1cy4KKworICAgICAgICBXZSB3
aWxsIGVsaW1pbmF0ZSB0aGlzIElQQyBvdmVyaGVhZCBpbiBhIGZvbGxvdyB1cCBwYXRjaCB1c2lu
ZyBDQVJpbmdCdWZmZXIuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAg
ICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6cmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIpOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOiBB
ZGRlZCB0aGUgY29kZSB0byBkaXNwYXRjaCBtZXNzYWdlcyB0bworICAgICAgICBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlci4KKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKTogRGl0dG8uCisgICAgICAgICogR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uKTogQWRkZWQuIFRoaXMgY2xhc3MgaXMgdGhl
IGJhY2tpbmcgb2JqZWN0IHdoaWNoIGNyZWF0ZXMgV2ViQ29yZSdzCisgICAgICAgIEF1ZGlvRGVz
dGluYXRpb24gYW5kIGFjdHVhbGx5IHRhbGtzIHRvIENvcmVBdWRpbyBpbiBHUFUgcHJvY2Vzcy4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKTogQWRkZWQu
CisKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6flJlbW90ZUF1ZGlv
RGVzdGluYXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5h
dGlvbjo6c2NoZWR1bGVHcmFjZWZ1bFNodXRkb3duSWZOZWVkZWQpOiBEZWxheXMgdGhlIGRlbGV0
aW9uIG9mIHRoaXMgb2JqZWN0CisgICAgICAgIHVudGlsIHRoZSBhdWRpbyB0aHJlYWRzIHN0b3Bz
IHJ1bm5pbmcuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OnN0YXJ0
KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OnN0b3Ap
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6aXNQbGF5
aW5nKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OlJl
bW90ZUF1ZGlvRGVzdGluYXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9EZXN0aW5hdGlvbjo6cmVuZGVyKTogU2VuZHMgYSBzeW5jIElQQyB0byB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzJworICAgICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgdG8gZmlsbCB0
aGUgYXVkaW8gYnVmZmVyLiBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBnZXRzIGNhbGxlZCBpbiBh
dWRpbyB0aHJlYWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246Omlz
UGxheWluZ0RpZENoYW5nZSk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlcik6IEFkZGVkLiBUaGlzIGNsYXNzIG1hbmFnZXMgYWxsIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb24gb2JqZWN0cyBvd25lZAorICAgICAgICBieSBhIHNpbmdsZSBXZWJDb250
ZW50IHByb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcik6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6flJlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyOjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpkZWxldGVBdWRpb0Rlc3RpbmF0aW9u
KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2Vy
OjpzdGFydEF1ZGlvRGVzdGluYXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OnN0b3BBdWRpb0Rlc3RpbmF0aW9uKTogQWRkZWQuCisg
ICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIp
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6
OmRpZFJlY2VpdmVTeW5jTWVzc2FnZUZyb21XZWJQcm9jZXNzKTogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZUZy
b21XZWJQcm9jZXNzKTogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFT
dHJhdGVneSk6IEFkZGVkLiBSZXR1cm5zIG51bGxwdHIgc2luY2UgTmV0d29ya2luZworICAgICAg
ICBwcm9jZXNzIGhhcyBubyBidXNpbmVzcyBydW5uaW5nIEF1ZGlvRGVzdGluYXRpb24uCisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMpOgorICAg
ICAgICAqIFBsYXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5OgorICAgICAgICAqIFNoYXJlZC9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmll
ci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50
aWZpZXJUeXBlKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRp
b25JZGVudGlmaWVyKTogQWRkZWQuIFRoZSBpZGVudGlmaWVyIGZvciBlYWNoIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb24KKyAgICAgICAgYW5kIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSAoY29y
cmVzcG9uZGluZyBvYmplY3RzIG9mIGVhY2ggY2xhc3MgdXNlIHRoZSBzYW1lIElEIHRvIGNvbW11
bmljYXRlKS4KKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKTogQWRkZWQgYSBk
aXNwYXRjaCBvbiBtX3JlY2VpdmVyTWFwLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9u
OjptX3JlY2VpdmVyTWFwKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25u
ZWN0aW9uOjphZGRNZXNzYWdlUmVjZWl2ZXIpOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNz
Q29ubmVjdGlvbjo6cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVBdWRpb0J1c0RhdGEuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvQnVzRGF0YSk6IEFkZGVkLiBFbmNvZGVzIHRoZSBpbmZvcm1hdGlvbiBhYm91
dCBlYWNoIHJlbmRlciBjYWxsLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0J1c0RhdGE6
OmVuY29kZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0J1c0Rh
dGE6OmRlY29kZSk6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkp
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Ojp+
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RhcnQpOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpzdG9wKTogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6cmVuZGVyQnVmZmVyKTogQWRkZWQu
IENhbGxzIFdlYkNvcmUncyBBdWRpb0lPQ2FsbGJhY2sgdG8gZmlsbAorICAgICAgICB0aGUgYXVk
aW8gYnVmZmVyIGdpdmVuIGJ5IHRoZSBHUFUgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpkaWRDaGFuZ2VJc1BsYXlpbmcpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpkaWRSZWNl
aXZlTWVzc2FnZUZyb21HUFVQcm9jZXNzKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6aXNQbGF5aW5nKTogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c2FtcGxlUmF0ZSk6IEFkZGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5t
ZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRy
YWNrUHJpdmF0ZVJlbW90ZS5jcHA6IEZpeGVkIHRoZSB1bmlmaWVkIGJ1aWxkcy4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmg6IERpdHRvLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5h
dGlvbik6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3Ry
YXRlZ3kuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyYXRlZ3kpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVneTo6c2V0VXNlR1BVUHJvY2Vzcyk6
IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyLmNwcDogRml4ZWQgdGhlIHVuaWZpZWQgYnVpbGRzLgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVNZWRpYVN0cmF0ZWd5
KTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKTogU2V0cyBXZWJN
ZWRpYVN0cmF0ZWd5J3MgZmxhZyB0byB1c2UgR1BVIHByb2Nlc3MuCisKIDIwMjAtMDItMjQgIEpp
ZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViQXV0aG5dIElt
cGxlbWVudCBTUEkgZm9yIHRoZSBwbGF0Zm9ybSBhdXRoZW50aWNhdG9yCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CShyZXZpc2lvbiAyNTcy
OTcpCisrKyBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QJKHdv
cmtpbmcgY29weSkKQEAgLTE2LDYgKzE2LDcgQEAgJChKQVZBU0NSSVBUQ09SRV9QUklWQVRFX0hF
QURFUlNfRElSKS94eAogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL0dQVVByb2Nl
c3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWFjL2NvbS5hcHBsZS5X
ZWJLaXQuR1BVUHJvY2Vzcy5zYi5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0xMDgsNiArMTA5LDcgQEAgJChQUk9KRUNU
X0RJUikvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZQogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vz
cy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQ
Uk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0Nv
ZGVjcy5tZXNzYWdlcy5pbgpJbmRleDogU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0CShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0xMjMsNiAr
MTIzLDEwIEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWIKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1BsdWdpblByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUGx1Z2luUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlck1lc3NhZ2VzLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHlNZXNzYWdlcy5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyTWFuYWdlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlck1l
c3NhZ2VzUmVwbGllcy5oCkluZGV4OiBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lv
biAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcg
Y29weSkKQEAgLTE0Myw2ICsxNDMsOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIgXAogICAgIFBsdWdpblByb2Nlc3NQcm94eSBcCiAg
ICAgUGx1Z2luUHJveHkgXAorICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyIFwKKyAg
ICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgXAogICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyTWFuYWdlciBcCiAgICAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXIgXAogICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkgXApJbmRleDog
U291cmNlL1dlYktpdC9QbGF0Zm9ybU1hYy5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtTWFjLmNtYWtlCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0
L1BsYXRmb3JtTWFjLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xNjAsNiArMTYwLDExIEBAIGxp
c3QoQVBQRU5EIFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIEdQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgogICAgIEdQVVByb2Nlc3MvR1BVUHJvY2Vz
cy5tZXNzYWdlcy5pbgogCisgICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uTWFuYWdlci5tZXNzYWdlcy5pbgorICAgIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKyAgICBHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KKyAgICBHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCisKICAgICBHUFVQcm9jZXNzL3dlYnJ0
Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tZXNzYWdlcy5pbgogICAgIEdQVVByb2Nlc3Mvd2VicnRj
L1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIubWVzc2FnZXMuaW4KICAgICBH
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFn
ZXIubWVzc2FnZXMuaW4KQEAgLTE3MCwxMCArMTc1LDYgQEAgbGlzdChBUFBFTkQgV2ViS2l0X01F
U1NBR0VTX0lOX0ZJTEVTCiAgICAgR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXIubWVzc2FnZXMuaW4KICAgICBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCiAKLSAgICBHUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KLSAgICBHUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCi0gICAg
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgotICAgIAogICAgIE5ldHdvcmtQcm9jZXNzL0N1c3RvbVByb3RvY29scy9MZWdhY3lDdXN0b21Q
cm90b2NvbE1hbmFnZXIubWVzc2FnZXMuaW4KIAogICAgIFNoYXJlZC9BcHBsZVBheS9XZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgpJbmRleDogU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CShyZXZpc2lv
biAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC01MzQsMTEgKzUzNCwxMyBAQCBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1p
c3NpCiBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3Mv
R1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNSU1FVHlwZUNhY2hlLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFj
a1ByaXZhdGVSZW1vdGUuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZS5jcHAKK1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwCiBX
ZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAogV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcAogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01l
ZGlhUmVjb3JkZXJQcm92aWRlci5jcHAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQJKHJldmlz
aW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtNjQ3LDYgKzY0Nyw4IEBAIEdQVVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAKIEdQVVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwCiBMaWJXZWJSVENDb2RlY3NQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAKIExpYldlYlJUQ0NvZGVjc01lc3NhZ2VSZWNlaXZlci5jcHAKK1Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQXVk
aW9EZXN0aW5hdGlvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVNZWRpYVJl
Y29yZGVyTWVzc2FnZVJlY2VpdmVyLmNwcApJbmRleDogU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMjU3
Mjk3KQorKysgU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSAiTGliV2Vi
UlRDQ29kZWNzUHJveHkuaCIKICNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3NQcm94eU1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXJNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFu
YWdlci5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFu
YWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJNZXNzYWdlcy5oIgpAQCAtMTI3LDYgKzEyOSwxNCBAQCB2b2lkIEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmRpZFJlY2VpCiAgICAgQ1JBU0goKTsKIH0KIAorUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXImIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fcmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXIpCisgICAgICAgIG1fcmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIgPSBtYWtlVW5p
cXVlPFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyPigqdGhpcyk7CisKKyAgICByZXR1cm4g
Km1fcmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI7Cit9CisKIFJlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyJiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlcigpCiB7CiAgICAgaWYgKCFtX3JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKQpAQCAt
MTkxLDEzICsyMDEsMTkgQEAgTGliV2ViUlRDQ29kZWNzUHJveHkmIEdQVUNvbm5lY3Rpb25Ub1dl
YgogCiB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogeworICAg
IGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVk
aW9EZXN0aW5hdGlvbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBy
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcigpLmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlBy
b2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAg
aWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIHJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCkuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJv
Y2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0gZWxzZSBp
ZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlh
UGxheWVyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgIH0KKyAgICBpZiAoZGVj
b2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVy
UHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewogICAgICAgICByZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eSgpLmRpZFJlY2VpdmVQbGF5ZXJNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIpOwogICAgICAgICByZXR1cm47Ci0gICAgfSBlbHNlIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNl
aXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSkgeworICAgIH0KKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2
ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAgcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIoKS5k
aWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KQEAgLTI0Myw2ICsyNTksMTEgQEAgdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpkaWRSZWNlaQogCiB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVT
eW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVj
b2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKKyAg
ICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAg
cmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIoKS5kaWRSZWNlaXZlU3luY01lc3NhZ2VGcm9t
V2ViUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09
IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpKSB7CiAgICAgICAgIHJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCkuZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlF
bmNvZGVyKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCShyZXZpc2lvbiAyNTcyOTcp
CisrKyBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBj
bGFzcyBHUFVQcm9jZXNzOwogY2xhc3MgTGliV2ViUlRDQ29kZWNzUHJveHk7CitjbGFzcyBSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjsKIGNsYXNzIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWFuYWdlcjsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
OwogY2xhc3MgUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI7CkBAIC03OSw2ICs4MCw3IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhHUFVQcm9jZXNz
JiwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
ciwgUEFMOjpTZXNzaW9uSUQpOwogCisgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIm
IHJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKCk7CiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCk7CiAjaWYgUExBVEZP
Uk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCiAgICAgTGliV2ViUlRDQ29kZWNzUHJveHkmIGxp
YldlYlJUQ0NvZGVjc1Byb3h5KCk7CkBAIC0xMDMsNiArMTA1LDcgQEAgcHJpdmF0ZToKICAgICBS
ZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAgICAgUmVmPEdQVVByb2Nlc3M+IG1f
Z3B1UHJvY2VzczsKICAgICBjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBtX3dlYlBy
b2Nlc3NJZGVudGlmaWVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uTWFuYWdlcj4gbV9yZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI+IG1fcmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5PiBtX3JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OwogICAgIFBBTDo6U2Vzc2lvbklE
IG1fc2Vzc2lvbklEOwpJbmRleDogU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwCShub25l
eGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNzcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUg
IkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0J1c0Rh
dGEuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHlNZXNzYWdlcy5oIgor
I2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9CdXMuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0F1ZGlvSU9DYWxsYmFjay5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+Cisj
aW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL3RocmVh
ZHMvQmluYXJ5U2VtYXBob3JlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFJlbW90ZUF1
ZGlvRGVzdGluYXRpb24+LCBwdWJsaWMgV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrIHsKK3B1Ymxp
YzoKKyAgICB1c2luZyBBdWRpb0J1cyA9IFdlYkNvcmU6OkF1ZGlvQnVzOworICAgIHVzaW5nIEF1
ZGlvRGVzdGluYXRpb24gPSBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uOworICAgIHVzaW5nIFNo
YXJlZEJ1ZmZlciA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjsKKworICAgIHN0YXRpYyBSZWY8UmVt
b3RlQXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNv
bm5lY3Rpb24sIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIGlkLAorICAgICAgICBj
b25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVpbnQzMl90IG51bWJlck9mSW5wdXRDaGFubmVs
cywgdWludDMyX3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZUF1ZGlvRGVzdGluYXRpb24o
Y29ubmVjdGlvbiwgaWQsIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVt
YmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSkpOworICAgIH0KKworICAgIHZpcnR1YWwg
flJlbW90ZUF1ZGlvRGVzdGluYXRpb24oKQorICAgIHsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQo
IW1fZGVzdGluYXRpb24tPmlzUGxheWluZygpKTsKKyAgICB9CisKKyAgICB2b2lkIHNjaGVkdWxl
R3JhY2VmdWxTaHV0ZG93bklmTmVlZGVkKCkKKyAgICB7CisgICAgICAgIGlmICghaXNQbGF5aW5n
KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fcHJvdGVjdFRoaXNEdXJpbmdHcmFj
ZWZ1bFNodXRkb3duID0gdGhpczsKKyAgICAgICAgc3RvcCgpOworICAgIH0KKworICAgIHZvaWQg
c3RhcnQoKSB7IG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7IH0KKyAgICB2b2lkIHN0b3AoKSB7IG1f
ZGVzdGluYXRpb24tPnN0b3AoKTsgfQorICAgIGJvb2wgaXNQbGF5aW5nKCkgeyByZXR1cm4gbV9k
ZXN0aW5hdGlvbi0+aXNQbGF5aW5nKCk7IH0KKworcHJpdmF0ZToKKyAgICBSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIGlkLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQs
IHVpbnQzMl90IG51bWJlck9mSW5wdXRDaGFubmVscywgdWludDMyX3QgbnVtYmVyT2ZPdXRwdXRD
aGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKKyAgICAgICAgOiBtX2Nvbm5lY3Rpb24oY29ubmVj
dGlvbikKKyAgICAgICAgLCBtX2lkKGlkKQorICAgICAgICAsIG1fZGVzdGluYXRpb24oQXVkaW9E
ZXN0aW5hdGlvbjo6Y3JlYXRlKCp0aGlzLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hh
bm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpKQorICAgIHsKKyAgICB9
CisKKyAgICB2b2lkIHJlbmRlcihBdWRpb0J1cyogc291cmNlQnVzLCBBdWRpb0J1cyogZGVzdGlu
YXRpb25CdXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIG92ZXJyaWRlCisgICAgeworICAgICAg
ICBpZiAobV9wcm90ZWN0VGhpc0R1cmluZ0dyYWNlZnVsU2h1dGRvd24pCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7Cisg
ICAgICAgIEJpbmFyeVNlbWFwaG9yZSByZW5kZXJTZW1hcGhvcmU7CisKKyAgICAgICAgVmVjdG9y
PFJlZjxTaGFyZWRNZW1vcnk+PiBidWZmZXJzOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgZGVzdGluYXRpb25CdXMtPm51bWJlck9mQ2hhbm5lbHMoKTsgKytpKSB7CisgICAgICAg
ICAgICBhdXRvIG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6YWxsb2NhdGUoc2l6ZW9mKGZsb2F0KSAq
IGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAgICAgICBidWZmZXJzLmFwcGVuZCgqbWVtb3J5KTsK
KyAgICAgICAgfQorCisgICAgICAgIC8vIEZJWE1FOiBSZXBsYWNlIHRoaXMgY29kZSB3aXRoIGEg
cmluZyBidWZmZXIuIEF0IGxlYXN0IHRoaXMgaGFwcGVucyBpbiBhdWRpbyB0aHJlYWQuCisgICAg
ICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0
aGlzLCBmcmFtZXNUb1Byb2Nlc3MsICZidWZmZXJzLCAmcmVuZGVyU2VtYXBob3JlXSB7CisgICAg
ICAgICAgICBSZW1vdGVBdWRpb0J1c0RhdGEgYnVzRGF0YSB7IGZyYW1lc1RvUHJvY2VzcywgYnVm
ZmVycy5tYXAoW10oYXV0byYgbWVtb3J5KSB7IHJldHVybiBtZW1vcnkuY29weVJlZigpOyB9KSB9
OworICAgICAgICAgICAgQVNTRVJUKGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAgICAgICBtX2Nv
bm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5OjpSZW5kZXJCdWZmZXIoYnVzRGF0YSksIFsmXSgpIHsKKyAg
ICAgICAgICAgICAgICByZW5kZXJTZW1hcGhvcmUuc2lnbmFsKCk7CisgICAgICAgICAgICB9LCBt
X2lkLnRvVUludDY0KCkpOworICAgICAgICB9KTsKKyAgICAgICAgcmVuZGVyU2VtYXBob3JlLndh
aXQoKTsKKworICAgICAgICBhdXRvIGF1ZGlvQnVzID0gQXVkaW9CdXM6OmNyZWF0ZShidWZmZXJz
LnNpemUoKSwgZnJhbWVzVG9Qcm9jZXNzLCBmYWxzZSk7CisgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBidWZmZXJzLnNpemUoKTsgKytpKQorICAgICAgICAgICAgYXVkaW9CdXMtPnNl
dENoYW5uZWxNZW1vcnkoaSwgKGZsb2F0KilidWZmZXJzW2ldLT5kYXRhKCksIGZyYW1lc1RvUHJv
Y2Vzcyk7CisgICAgICAgIGRlc3RpbmF0aW9uQnVzLT5jb3B5RnJvbSgqYXVkaW9CdXMpOworICAg
IH0KKworICAgIHZvaWQgaXNQbGF5aW5nRGlkQ2hhbmdlKCkgb3ZlcnJpZGUKKyAgICB7CisgICAg
ICAgIGlmIChtX3Byb3RlY3RUaGlzRHVyaW5nR3JhY2VmdWxTaHV0ZG93bikgeworICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlQoIW1fZGVzdGluYXRpb24tPmlzUGxheWluZygpKTsKKyAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKHJlZkNvdW50KCkgPT0gMSk7CisgICAgICAgICAgICBtX3Byb3Rl
Y3RUaGlzRHVyaW5nR3JhY2VmdWxTaHV0ZG93biA9IG51bGxwdHI7IC8vIERlbGV0ZXMgInRoaXMi
LgorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGNhbGxPbk1haW5UaHJl
YWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaXNQbGF5aW5nID0gbV9k
ZXN0aW5hdGlvbi0+aXNQbGF5aW5nKCksIGlkID0gbV9pZC50b1VJbnQ2NCgpXSB7CisgICAgICAg
ICAgICBtX2Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eTo6RGlkQ2hhbmdlSXNQbGF5aW5nKGlzUGxheWluZyksIGlkKTsKKyAg
ICAgICAgfSk7CisgICAgfQorCisgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9jb25u
ZWN0aW9uOworICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIG1faWQ7CisgICAg
c3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IG1fZGVzdGluYXRpb247CisgICAgUmVm
UHRyPFJlbW90ZUF1ZGlvRGVzdGluYXRpb24+IG1fcHJvdGVjdFRoaXNEdXJpbmdHcmFjZWZ1bFNo
dXRkb3duOworfTsKKworUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OlJlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24p
CisgICAgOiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVjdGlvbikKK3sKK30KKwor
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6On5SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlcigpID0gZGVmYXVsdDsKKwordm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6
Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVpbnQz
Ml90IG51bWJlck9mSW5wdXRDaGFubmVscywgdWludDMyX3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVs
cywgZmxvYXQgc2FtcGxlUmF0ZSwKKyAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBh
dXRvIG5ld0lEID0gUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXI6OmdlbmVyYXRlVGhy
ZWFkU2FmZSgpOworICAgIGF1dG8gY2FsbGJhY2sgPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uOjpj
cmVhdGUobV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBuZXdJRCwgaW5wdXREZXZpY2VJZCwg
bnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRl
KTsKKyAgICBtX2F1ZGlvRGVzdGluYXRpb25zLmFkZChuZXdJRCwgV1RGTW92ZShjYWxsYmFjaykp
OworICAgIGNvbXBsZXRpb25IYW5kbGVyKG5ld0lEKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlcjo6ZGVsZXRlQXVkaW9EZXN0aW5hdGlvbihSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uSWRlbnRpZmllciBpZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIGF1dG8gZGVzdGluYXRpb24gPSBtX2F1ZGlvRGVzdGluYXRpb25z
LnRha2UoaWQpOworICAgIGlmIChkZXN0aW5hdGlvbikKKyAgICAgICAgZGVzdGluYXRpb24udmFs
dWUoKS0+c2NoZWR1bGVHcmFjZWZ1bFNodXRkb3duSWZOZWVkZWQoKTsKKyAgICBjb21wbGV0aW9u
SGFuZGxlcigpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpzdGFy
dEF1ZGlvRGVzdGluYXRpb24oUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgaWQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAg
Ym9vbCBpc1BsYXlpbmcgPSBmYWxzZTsKKyAgICBpZiAoYXV0byogaXRlbSA9IG1fYXVkaW9EZXN0
aW5hdGlvbnMuZ2V0KGlkKSkgeworICAgICAgICBpdGVtLT5zdGFydCgpOworICAgICAgICBpc1Bs
YXlpbmcgPSBpdGVtLT5pc1BsYXlpbmcoKTsKKyAgICB9CisgICAgY29tcGxldGlvbkhhbmRsZXIo
aXNQbGF5aW5nKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6c3Rv
cEF1ZGlvRGVzdGluYXRpb24oUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgaWQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAg
Ym9vbCBpc1BsYXlpbmcgPSBmYWxzZTsKKyAgICBpZiAoYXV0byogaXRlbSA9IG1fYXVkaW9EZXN0
aW5hdGlvbnMuZ2V0KGlkKSkgeworICAgICAgICBpdGVtLT5zdG9wKCk7CisgICAgICAgIGlzUGxh
eWluZyA9IGl0ZW0tPmlzUGxheWluZygpOworICAgIH0KKyAgICBjb21wbGV0aW9uSGFuZGxlcihp
c1BsYXlpbmcpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCkluZGV4OiBT
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVk
ZSAiUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRN
ZW1vcnkuaCIKKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5k
bGVyLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CitjbGFzcyBSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uOworCitjbGFzcyBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlciA6IHByaXZhdGUg
SVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKTsKK3B1
YmxpYzoKKyAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcihHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJik7CisgICAgflJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKCk7CisKKyAg
ICB2b2lkIGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlk
LCB1aW50MzJfdCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVpbnQzMl90IG51bWJlck9mT3V0cHV0
Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIpPiYmKTsKKyAgICB2b2lkIGRlbGV0ZUF1ZGlvRGVz
dGluYXRpb24oUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzdGFydEF1ZGlvRGVzdGluYXRpb24oUmVtb3RlQXVk
aW9EZXN0aW5hdGlvbklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OworICAgIHZvaWQgc3RvcEF1ZGlvRGVzdGluYXRpb24oUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworCisgICAgdm9pZCBk
aWRSZWNlaXZlU3luY01lc3NhZ2VGcm9tV2ViUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rl
cj4mIGVuY29kZXIpCisgICAgeworICAgICAgICBkaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVj
dGlvbiwgZGVjb2RlciwgZW5jb2Rlcik7CisgICAgfQorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2VGcm9tV2ViUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2Rl
ciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQor
Citwcml2YXRlOgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKTsK
KworICAgIEhhc2hNYXA8UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIsIFJlZjxSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uPj4gbV9hdWRpb0Rlc3RpbmF0aW9uczsKKyAgICBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzJiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlOworCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4JKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2Vz
LmluCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzcgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+
IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworCisgICAgQ3Jl
YXRlQXVkaW9EZXN0aW5hdGlvbihTdHJpbmcgaW5wdXREZXZpY2VJZCwgdWludDMyX3QgbnVtYmVy
T2ZJbnB1dENoYW5uZWxzLCB1aW50MzJfdCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBz
YW1wbGVSYXRlKSAtPiAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBp
ZCkgU3luY2hyb25vdXMKKworICAgIERlbGV0ZUF1ZGlvRGVzdGluYXRpb24oV2ViS2l0OjpSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBpZCkgLT4gKCkgQXN5bmMKKworICAgIFN0YXJ0
QXVkaW9EZXN0aW5hdGlvbihXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVy
IGlkKSAtPiAoYm9vbCBpc1BsYXlpbmcpIFN5bmNocm9ub3VzCisgICAgU3RvcEF1ZGlvRGVzdGlu
YXRpb24oV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBpZCkgLT4gKGJv
b2wgaXNQbGF5aW5nKSBTeW5jaHJvbm91cworCit9CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
c1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0OCwxMSBAQCBQYXN0ZWJvYXJkU3RyYXRlZ3kqIE5ldHdv
cmtQcm9jZXNzUGxhdGZvCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK01lZGlhU3RyYXRlZ3kq
IE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVNZWRpYVN0cmF0ZWd5KCkK
K3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogQmxvYlJlZ2lzdHJ5KiBOZXR3b3JrUHJvY2Vz
c1BsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKIHsKICAgICB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHJl
dmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBA
QCBwcml2YXRlOgogICAgIC8vIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcwogICAgIFdlYkNv
cmU6OkxvYWRlclN0cmF0ZWd5KiBjcmVhdGVMb2FkZXJTdHJhdGVneSgpIG92ZXJyaWRlOwogICAg
IFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVneSogY3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkg
b3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6TWVkaWFTdHJhdGVneSogY3JlYXRlTWVkaWFTdHJhdGVn
eSgpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkJsb2JSZWdpc3RyeSogY3JlYXRlQmxvYlJlZ2lz
dHJ5KCkgb3ZlcnJpZGU7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXMucHkJKHdvcmtpbmcgY29weSkKQEAgLTIyNyw2ICsyMjcsNyBAQCBkZWYg
dHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlCiAgICAgICAgICdXZWJLaXQ6Ok1E
TlNSZWdpc3RlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6TWVkaWFSZWNvcmRlcklkZW50
aWZpZXInLAorICAgICAgICAnV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmll
cicsCiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyJywKICAg
ICAgICAgJ1dlYktpdDo6UlRDRGVjb2RlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpS
VENFbmNvZGVySWRlbnRpZmllcicsCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
U2hhcmVkL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmgJKG5vbmV4aXN0ZW50KQor
KysgU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRl
bnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uSWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklk
ZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlm
aWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24g
MjU3Mjk3KQorKysgU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtMTQwNSw4ICsxNDA1LDE0IEBACiAJCTlCMDJFMENCMjM1RUI5
NTMwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDJFMEM5MjM1RUI2MkQwMDQwNDRC
MiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjAyRTBDQzIzNUVCOTU3MDA0MDQ0QjIgLyog
X1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDlCMDJFMENBMjM1RUI4ODQwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1
bGF0aW9uSXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTlCMDJFMEQ3MjM1RkM5NEYwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uVG9r
ZW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDJF
MENEMjM1RUI5NjcwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5QjEyMjlDRDIzRkYy
NUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMTIyOUNCMjNGRjI1RjIwMDhD
QTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oICovOyB9OworCQk5QjEyMjlD
RTIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIxMjI5Q0MyM0ZG
MjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCAqLzsgfTsK
KwkJOUIxMjI5RDIyM0ZGMkJDQzAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVu
dGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
QjEyMjlEMDIzRkYyQTVFMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZp
ZXIuaCAqLzsgfTsKIAkJOUI1NDk5QUQyMzYyQTZGOTAwREY4QkE1IC8qIF9XS1RleHRNYW5pcHVs
YXRpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5QjU0OTlBQzIzNjJBNkY2MDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlv
bkNvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5QjU0OTlCMjIzNjJBN0VDMDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlv
bkV4Y2x1c2lvblJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDlCNTQ5OUIwMjM2MkE3RUMwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRXhj
bHVzaW9uUnVsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTlCNUJFQzI2MjQwMEY0QTkwMDcwQzZFRiAvKiBXZWJNZWRpYVN0cmF0ZWd5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjVCRUMyNDI0MDBG
NEE5MDA3MEM2RUYgLyogV2ViTWVkaWFTdHJhdGVneS5oICovOyB9OworCQk5QjVCRUMyQTI0MDEw
MTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjVCRUMyODI0MDEwMTU4MDA3MEM2
RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmggKi87IH07CisJCTlCNUJFQzMxMjQw
MTAyMjIwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0J1c0RhdGEuaCBpbiBDb3B5RmlsZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI1QkVDMzAyNDAxMDIyMjAwNzBDNkVGIC8q
IFJlbW90ZUF1ZGlvQnVzRGF0YS5oICovOyB9OwogCQk5RkI1RjM5NTE2OUU2QTgwMDAyQzI1QkYg
LyogV0tDb250ZXh0UHJpdmF0ZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOUZCNUYzOTMxNjlFNkE4MDAwMkMyNUJGIC8qIFdLQ29udGV4dFByaXZh
dGVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlBMTAyQTcwODFFQzBFRUU5MDBEODFEODIgLyogY29tLm1hY3JvbWVkaWEuRmxhc2ggUGxheWVy
IEVTUi5wbHVnaW4uc2IgaW4gQ29weSBQbHVnLWluIFNhbmRib3ggUHJvZmlsZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E1RTM5NDkxRDVCRDhBNzAwQjRCN0NFIC8qIGNv
bS5tYWNyb21lZGlhLkZsYXNoIFBsYXllciBFU1IucGx1Z2luLnNiICovOyB9OwogCQlBMTA0NkVB
MTIwNzkyNjMxMDBGMEM1RDggLyogV0tQREZWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTA0NkU5RjIwNzkyNjMxMDBGMEM1RDggLyogV0tQREZW
aWV3LmggKi87IH07CkBAIC0yMDYxLDYgKzIwNjcsNyBAQAogCQkJCTJEQjk2MDUzMjM5ODg2QzEw
MDEwMjc5MSAvKiBjb20uYXBwbGUuV2ViS2l0LkdQVS5zYiBpbiBDb3B5RmlsZXMgKi8sCiAJCQkJ
QTc4Q0NEREIxOTNBQzlGODAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5z
YiBpbiBDb3B5RmlsZXMgKi8sCiAJCQkJQTc4Q0NEREMxOTNBQzlGQjAwNUVDQzI1IC8qIGNvbS5h
cHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYiBpbiBDb3B5RmlsZXMgKi8sCisJCQkJOUI1QkVDMzEy
NDAxMDIyMjAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvQnVzRGF0YS5oIGluIENvcHlGaWxlcyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
QEAgLTQzODMsMTAgKzQzOTAsMjAgQEAKIAkJOUIwMkUwQ0QyMzVFQjk2NzAwNDA0NEIyIC8qIF9X
S1RleHRNYW5pcHVsYXRpb25Ub2tlbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0
aW9uVG9rZW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwMkUwQ0UyMzVFQkIx
NDAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOUIwMkUwRDAyMzVFQkNDQTAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25J
dGVtLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0ubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCMTIyOUNCMjNGRjI1RjIwMDhDQTc1MSAv
KiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
QjEyMjlDQzIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjEyMjlDRjIzRkYyODE0MDA4Q0E3NTEg
LyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTlCMTIyOUQwMjNGRjJBNUUwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRl
bnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjU0OTlBQzIzNjJBNkY2
MDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOUI1NDk5QUUyMzYyQTdBNzAwREY4QkE1IC8qIF9XS1RleHRNYW5pcHVs
YXRpb25Db25maWd1cmF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLVGV4dE1hbmlw
dWxhdGlvbkNvbmZpZ3VyYXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlC
NTQ5OUIwMjM2MkE3RUMwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVs
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjU0OTlCMTIzNjJBN0VDMDBERjhCQTUgLyog
X1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOUI1QkVDMjQyNDAwRjRBOTAwNzBDNkVGIC8qIFdlYk1lZGlhU3RyYXRlZ3ku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViTWVkaWFTdHJhdGVneS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5QjVCRUMyNTI0MDBGNEE5MDA3MEM2RUYgLyogV2ViTWVkaWFTdHJhdGVneS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJNZWRpYVN0cmF0ZWd5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOUI1QkVDMjgyNDAxMDE1ODAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUI1QkVDMjkyNDAxMDE1ODAw
NzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5QjVCRUMyRTI0MDEwMThDMDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUI1QkVDMzAyNDAxMDIy
MjAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvQnVzRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVB
dWRpb0J1c0RhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUJDNTlENkMxRUZD
Q0NCNjAwMUU4RDA5IC8qIENhbGxiYWNrSUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ2FsbGJhY2tJRC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QkM1OUQ2
RDFFRkNEQzZEMDAxRThEMDkgLyogT3B0aW9uYWxDYWxsYmFja0lELmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE9wdGlvbmFsQ2FsbGJhY2tJRC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5RjU0Rjg4RTE2NDg4RTg3MDA3REY4MUEgLyogQXV4aWxpYXJ5UHJvY2Vz
c01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEF1eGlsaWFy
eVByb2Nlc3NNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MjY4LDYgKzUy
ODUsMTAgQEAKIAkJCQkwNzkyMzEzMjIzOUIzQjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmggKi8sCiAJCQkJMDdCMUQwNEIyM0QzOEZDRTAwMzk5QTZFIC8qIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbiAqLywKIAkJCQkwNzkyMzE0RTIzOUQ1RjUzMDA5
NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oICovLAorCQkJCTlC
NUJFQzMwMjQwMTAyMjIwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0J1c0RhdGEuaCAqLywKKwkJCQk5
QjVCRUMyOTI0MDEwMTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNw
cCAqLywKKwkJCQk5QjVCRUMyODI0MDEwMTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5LmggKi8sCisJCQkJOUI1QkVDMkUyNDAxMDE4QzAwNzBDNkVGIC8qIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQkwN0I5M0ZGNTIzQUYwQ0I4
MDAzNkY4RUEgLyogUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJMDc5
MjMxMzAyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgKi8s
CiAJCQkJMDc5MjMxMzQyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
ci5oICovLApAQCAtNTI4Myw2ICs1MzA0LDggQEAKIAkJCQkxREZERDBFMjIzRjYxMEYwMDBFOUI0
OTAgLyogVmlkZW9MYXllclJlbW90ZS5oICovLAogCQkJCTA3MUJDNTgzMjNDQzJCRDUwMDY4MEQ3
QyAvKiBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCiAJCQkJMDcxQkM1ODIyM0NDMkJE
MzAwNjgwRDdDIC8qIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmggKi8sCisJCQkJOUI1QkVDMjUy
NDAwRjRBOTAwNzBDNkVGIC8qIFdlYk1lZGlhU3RyYXRlZ3kuY3BwICovLAorCQkJCTlCNUJFQzI0
MjQwMEY0QTkwMDcwQzZFRiAvKiBXZWJNZWRpYVN0cmF0ZWd5LmggKi8sCiAJCQkpOwogCQkJcGF0
aCA9IG1lZGlhOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTUyOTEsNiArNTMxNCw5
IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTFEMEVDRUE5MjNG
Qzg0QkIwMEQxNzJGNiAvKiBjb2NvYSAqLywKKwkJCQk5QjEyMjlDQzIzRkYyNUYyMDA4Q0E3NTEg
LyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwICovLAorCQkJCTlCMTIyOUNCMjNG
RjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oICovLAorCQkJ
CTlCMTIyOUNGMjNGRjI4MTQwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
ci5tZXNzYWdlcy5pbiAqLywKIAkJCQkwNzFCQzU3RTIzQ0E1REIxMDA2ODBEN0MgLyogUmVtb3Rl
QXVkaW9UcmFja1Byb3h5LmNwcCAqLywKIAkJCQkwNzFCQzU3RjIzQ0E1REIxMDA2ODBEN0MgLyog
UmVtb3RlQXVkaW9UcmFja1Byb3h5LmggKi8sCiAJCQkJMDcyNUVGQUQyMzlCMDI0NTAwQTUzOEE5
IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcCAqLywKQEAgLTU3NTEsNiArNTc3
Nyw3IEBACiAJCQkJRTE4QzkyRjMxMkRCOUU3MTAwQ0YyQUVCIC8qIFByaW50SW5mby5jcHAgKi8s
CiAJCQkJRTFDQzFCOEUxMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5mby5oICovLAogCQkJCTQ2
M0ZENDgxMUVCOTRFQUQwMEEyOTgyQyAvKiBQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCAqLywK
KwkJCQk5QjEyMjlEMDIzRkYyQTVFMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklk
ZW50aWZpZXIuaCAqLywKIAkJCQlGNkEwQzEzRjEzMjgxRTZFMDA3MDQzMEYgLyogUmVzb3VyY2VD
YWNoZXNUb0NsZWFyLmggKi8sCiAJCQkJNUNCN0FGRTYyM0M2ODFCMDAwRTQ5Q0YzIC8qIFJlc291
cmNlTG9hZEluZm8uaCAqLywKIAkJCQk0MTA0ODJDQjFEREQyRkI1MDBGMDA2RDAgLyogUlRDTmV0
d29yay5jcHAgKi8sCkBAIC0xMDUyOCw2ICsxMDU1NSw5IEBACiAJCQkJODMwNDhBRTYxQUNBNDVE
QzAwODJDODMyIC8qIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUExRTY4ODcwMUY2RTJCQUIwMDcwMDZBNiAvKiBRdWFyYW50aW5lU1BJLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1N0ZEMzE4MjIyQjM1MTVFMDA4RDBFOEIgLyogUmVkaXJlY3RTT0F1dGhvcml6YXRp
b25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5QjEyMjlEMjIzRkYyQkNDMDA4Q0E3NTEg
LyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTlCMTIyOUNEMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUI1QkVDMkEyNDAxMDE1ODAwNzBDNkVGIC8qIFJlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ0N0I1NkQxODEw
NzE0RTAwM0EzQUVFIC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkyRERGNzMxNTE4RTk1MDYwMDA0RjVBNjYgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVD
b2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUIxNkFFQTE2NEIzQTg4MDAyOTBENjIg
LyogUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDc4MCw2ICsx
MDgxMCw3IEBACiAJCQkJQzk4QzQ4QTYxQjZGRDRDMzAwMTQ1MTAzIC8qIFdlYk1lZGlhU2Vzc2lv
bkZvY3VzTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzlDMTgzM0MxQjc0MDI2RDAwNzAz
NkE3IC8qIFdlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQzlDRDQzOTgxQjRCMDAxRDAwMjM5RTMzIC8qIFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRh
LmggaW4gSGVhZGVycyAqLywKKwkJCQk5QjVCRUMyNjI0MDBGNEE5MDA3MEM2RUYgLyogV2ViTWVk
aWFTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQzRUY0NDMxOTE3NjQ2MzAwMDM0MTg0
IC8qIFdlYk1lbW9yeVByZXNzdXJlSGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTA5ODU0
RUQxMkJDNEUxODAwMEFEMDgwIC8qIFdlYk1lbW9yeVNhbXBsZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxM0ZGQjkxMjAxNDU5QzYwMDI1OTZFQSAvKiBXZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92
aWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjIyNCw2ICsxMjI1NSw3IEBACiAJCQkJQzE1Q0JC
MzcyM0YzN0VDQjAwMzAwQ0M3IC8qIFByZWZlcmVuY2VPYnNlcnZlci5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTJENTRDMzFCMjEyRjREQTYwMDQ5QzE3NCAvKiBQcm9jZXNzTGF1bmNoZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0QyODY1RUYyMjU1NTYyMDAwNjA2QUM3IC8qIFByb2Nlc3NUYXNr
U3RhdGVPYnNlcnZlci5tbSBpbiBTb3VyY2VzICovLAorCQkJCTlCMTIyOUNFMjNGRjI1RjIwMDhD
QTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkyRDcyQTFGQTIxMkJGNDZFMDA1MTdBMjAgLyogUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRkYyNEEyRDE4NzlFNEJDMDAzQUJGMEMgLyogUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyREMxOEZCNDIxOEE2RTlFMDAyNUE4OEQgLyogUmVtb3RlTGF5ZXJUcmVlVmll
d3MubW0gaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCShyZXZpc2lvbiAyNTcyOTcpCisr
KyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsOCBAQAogI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVj
cy5oIgogI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHlN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIgogI2luY2x1
ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZXMuaCIKQEAgLTc3LDYgKzc5LDkgQEAgU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlciYgR1BVUHJvYwogCiB2b2lkIEdQVVByb2Nlc3NDb25uZWN0
aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6
RGVjb2RlciYgZGVjb2RlcikKIHsKKyAgICBpZiAobV9yZWNlaXZlck1hcC5kaXNwYXRjaE1lc3Nh
Z2UoY29ubmVjdGlvbiwgZGVjb2RlcikpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmIChkZWNv
ZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuc3VwcGxlbWVudDxSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI+KCktPmRpZFJlY2Vp
dmVQbGF5ZXJNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogICAgICAgICByZXR1cm47Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29u
bmVjdGlvbi5oCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcg
QEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisj
aW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyTWFwLmgiCiAjaW5jbHVkZSAiU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlci5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC01Niw2ICs1NywxNiBAQCBwdWJsaWM6CiAgICAg
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciYgc2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TWFuYWdlcigpOwogI2VuZGlmCiAKKyAgICB2b2lkIGFkZE1lc3NhZ2VSZWNlaXZlcihJUEM6OlN0
cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklE
LCBJUEM6Ok1lc3NhZ2VSZWNlaXZlciYgcmVjZWl2ZXIpCisgICAgeworICAgICAgICBtX3JlY2Vp
dmVyTWFwLmFkZE1lc3NhZ2VSZWNlaXZlcihtZXNzYWdlUmVjZWl2ZXJOYW1lLCBkZXN0aW5hdGlv
bklELCByZWNlaXZlcik7CisgICAgfQorCisgICAgdm9pZCByZW1vdmVNZXNzYWdlUmVjZWl2ZXIo
SVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgdWludDY0X3QgZGVzdGlu
YXRpb25JRCkKKyAgICB7CisgICAgICAgIG1fcmVjZWl2ZXJNYXAucmVtb3ZlTWVzc2FnZVJlY2Vp
dmVyKG1lc3NhZ2VSZWNlaXZlck5hbWUsIGRlc3RpbmF0aW9uSUQpOworICAgIH0KKwogcHJpdmF0
ZToKICAgICBHUFVQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIp
OwogCkBAIC02Niw2ICs3Nyw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBUaGUgY29ubmVjdGlvbiBm
cm9tIHRoZSB3ZWIgcHJvY2VzcyB0byB0aGUgR1BVIHByb2Nlc3MuCiAgICAgUmVmPElQQzo6Q29u
bmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIElQQzo6TWVzc2FnZVJlY2VpdmVyTWFwIG1fcmVj
ZWl2ZXJNYXA7CiAKICNpZiBIQVZFKEFVRElUX1RPS0VOKQogICAgIE9wdGlvbmFsPGF1ZGl0X3Rv
a2VuX3Q+IG1fYXVkaXRUb2tlbjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9CdXNEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0J1c0RhdGEuaAkobm9uZXhpc3RlbnQpCisr
KyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvQnVzRGF0YS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2Uu
aCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiU2hh
cmVkTWVtb3J5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK3N0cnVjdCBSZW1vdGVBdWRpb0J1c0RhdGEgeworICAgIHVpbnQ2NF90
IGZyYW1lc1RvUHJvY2VzcyB7IDAgfTsKKyAgICBWZWN0b3I8UmVmPFNoYXJlZE1lbW9yeT4+IGNo
YW5uZWxCdWZmZXJzOworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KKyAgICB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8
PCBmcmFtZXNUb1Byb2Nlc3M7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0
X3Q+KGNoYW5uZWxCdWZmZXJzLnNpemUoKSk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgY2hhbm5lbEJ1ZmZlcnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIFNoYXJlZE1lbW9y
eTo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgICAgIGNoYW5uZWxCdWZmZXJzW2ldLT5jcmVhdGVI
YW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRXcml0ZSk7CisgICAg
ICAgICAgICBlbmNvZGVyIDw8IGhhbmRsZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHRlbXBs
YXRlPHR5cGVuYW1lIERlY29kZXI+CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImIGRl
Y29kZXIsIFJlbW90ZUF1ZGlvQnVzRGF0YSYgcmVzdWx0KQorICAgIHsKKyAgICAgICAgdWludDY0
X3QgZnJhbWVzVG9Qcm9jZXNzOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGZyYW1lc1Rv
UHJvY2VzcykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJlc3VsdC5mcmFt
ZXNUb1Byb2Nlc3MgPSBmcmFtZXNUb1Byb2Nlc3M7CisKKyAgICAgICAgdWludDY0X3Qgc2l6ZSA9
IDA7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZSkpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsK
KyAgICAgICAgICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoaGFuZGxlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgICAgICBhdXRvIG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRsZSwgU2hh
cmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkV3JpdGUpOworICAgICAgICAgICAgaWYgKG1lbW9y
eSkKKyAgICAgICAgICAgICAgICByZXN1bHQuY2hhbm5lbEJ1ZmZlcnMuYXBwZW5kKCptZW1vcnkp
OworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5LmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxMDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAi
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvQXVkaW9CdXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGlu
YXRpb24uaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIEF1ZGlvQnVzID0gV2ViQ29y
ZTo6QXVkaW9CdXM7Cit1c2luZyBBdWRpb0Rlc3RpbmF0aW9uID0gV2ViQ29yZTo6QXVkaW9EZXN0
aW5hdGlvbjsKK3VzaW5nIEF1ZGlvSU9DYWxsYmFjayA9IFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFj
azsKKworc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eTo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssCisgICAgY29uc3Qg
U3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVu
c2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCit7CisgICAg
cmV0dXJuIG1ha2VVbmlxdWU8UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5PihjYWxsYmFjaywg
aW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5u
ZWxzLCBzYW1wbGVSYXRlKTsKK30KKworUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3Qg
U3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVu
c2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCisgICAgOiBt
X2NhbGxiYWNrKGNhbGxiYWNrKQorICAgICwgbV9zYW1wbGVSYXRlKHNhbXBsZVJhdGUpCit7Cisg
ICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgZGVzdGluYXRpb25JRDsKKworICAg
IGF1dG8mIGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9j
ZXNzQ29ubmVjdGlvbigpOworICAgIGNvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmRTeW5jKAor
ICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OkNyZWF0ZUF1
ZGlvRGVzdGluYXRpb24oaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1i
ZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKSwKKyAgICAgICAgTWVzc2FnZXM6OlJlbW90
ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpDcmVhdGVBdWRpb0Rlc3RpbmF0aW9uOjpSZXBseShk
ZXN0aW5hdGlvbklEKSwgMCk7CisgICAgY29ubmVjdGlvbi5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVz
c2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
LCBkZXN0aW5hdGlvbklELnRvVUludDY0KCksICp0aGlzKTsKKworICAgIG1fZGVzdGluYXRpb25J
RCA9IGRlc3RpbmF0aW9uSUQ7Cit9CisKK1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6flJl
bW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSgpCit7CisgICAgYXV0byYgY29ubmVjdGlvbiA9ICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpOworICAg
IGNvbm5lY3Rpb24ucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9kZXN0aW5hdGlvbklELnRv
VUludDY0KCkpOworCisgICAgY29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1Jl
cGx5KAorICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OkRl
bGV0ZUF1ZGlvRGVzdGluYXRpb24obV9kZXN0aW5hdGlvbklEKSwgW10geworICAgICAgICAvLyBD
YW4ndCByZW1vdmUgdGhpcyBmcm9tIHByb3h5TWFwKCkgaGVyZSBiZWNhdXNlIHRoZSBvYmplY3Qg
d291bGQgaGF2ZSBiZWVuIGFscmVhZHkgZGVsZXRlZC4KKyAgICB9KTsKK30KKwordm9pZCBSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0YXJ0KCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3lu
YygKKyAgICAgICAgTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpTdGFy
dEF1ZGlvRGVzdGluYXRpb24obV9kZXN0aW5hdGlvbklEKSwKKyAgICAgICAgTWVzc2FnZXM6OlJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpTdGFydEF1ZGlvRGVzdGluYXRpb246OlJlcGx5
KG1faXNQbGF5aW5nKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5
OjpzdG9wKCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNz
Q29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYygKKyAgICAgICAgTWVzc2FnZXM6OlJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpTdG9wQXVkaW9EZXN0aW5hdGlvbihtX2Rlc3Rp
bmF0aW9uSUQpLAorICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXI6OlN0b3BBdWRpb0Rlc3RpbmF0aW9uOjpSZXBseShtX2lzUGxheWluZyksIDApOworfQorCit2
b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6cmVuZGVyQnVmZmVyKGNvbnN0IFdlYktp
dDo6UmVtb3RlQXVkaW9CdXNEYXRhJiBhdWRpb0J1c0RhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoYXVkaW9CdXNEYXRhLmZy
YW1lc1RvUHJvY2Vzcyk7CisgICAgQVNTRVJUKGF1ZGlvQnVzRGF0YS5jaGFubmVsQnVmZmVycy5z
aXplKCkpOworICAgIGF1dG8gYXVkaW9CdXMgPSBBdWRpb0J1czo6Y3JlYXRlKGF1ZGlvQnVzRGF0
YS5jaGFubmVsQnVmZmVycy5zaXplKCksIGF1ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3MsIGZh
bHNlKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYXVkaW9CdXNEYXRhLmNoYW5uZWxC
dWZmZXJzLnNpemUoKTsgKytpKQorICAgICAgICBhdWRpb0J1cy0+c2V0Q2hhbm5lbE1lbW9yeShp
LCAoZmxvYXQqKWF1ZGlvQnVzRGF0YS5jaGFubmVsQnVmZmVyc1tpXS0+ZGF0YSgpLCBhdWRpb0J1
c0RhdGEuZnJhbWVzVG9Qcm9jZXNzKTsKKworICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIGF1ZGlv
QnVzLmdldCgpLCBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzKTsKKworICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpkaWRD
aGFuZ2VJc1BsYXlpbmcoYm9vbCBpc1BsYXlpbmcpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaAkobm9u
ZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2lu
Y2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0J1c0RhdGEuaCIKKyNp
bmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIldl
YlByb2Nlc3NTdXBwbGVtZW50LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb0Rlc3RpbmF0aW9u
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb0lPQ2FsbGJhY2suaD4KKworI2lmIFBMQVRGT1JN
KENPQ09BKQorI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CisjZW5kaWYKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSA6IHB1
YmxpYyBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uLCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2Vp
dmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkpOworcHVibGljOgorICAgIHVzaW5nIEF1
ZGlvQnVzID0gV2ViQ29yZTo6QXVkaW9CdXM7CisgICAgdXNpbmcgQXVkaW9JT0NhbGxiYWNrID0g
V2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrOworCisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxB
dWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBp
bnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51
bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpOworCisgICAgUmVtb3RlQXVk
aW9EZXN0aW5hdGlvblByb3h5KEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYgaW5wdXRE
ZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJP
Zk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsKKyAgICB+UmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5KCk7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUdQVVByb2Nl
c3MoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpIHsg
ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7IH0KKworICAgIHZvaWQgcmVu
ZGVyQnVmZmVyKGNvbnN0IFdlYktpdDo6UmVtb3RlQXVkaW9CdXNEYXRhJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIGRpZENoYW5nZUlzUGxheWluZyhib29sIGlzUGxh
eWluZyk7CisKK3ByaXZhdGU6CisgICAgLy8gV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbgorICAg
IHZvaWQgc3RhcnQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICBi
b29sIGlzUGxheWluZygpIG92ZXJyaWRlIHsgcmV0dXJuIG1faXNQbGF5aW5nOyB9CisgICAgZmxv
YXQgc2FtcGxlUmF0ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2FtcGxlUmF0ZTsgfQor
CisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgQXVkaW9JT0Nh
bGxiYWNrJiBtX2NhbGxiYWNrOworICAgIGZsb2F0IG1fc2FtcGxlUmF0ZTsKKyAgICBSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBtX2Rlc3RpbmF0aW9uSUQ7CisgICAgYm9vbCBtX2lz
UGxheWluZyB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5tZXNzYWdlcy5p
bgkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDMzIEBACisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisj
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkgTm90UmVmQ291bnRlZCB7CisKKyAgICBSZW5kZXJCdWZmZXIoc3RydWN0IFdlYktpdDo6
UmVtb3RlQXVkaW9CdXNEYXRhIGRhdGEpIC0+ICgpIEFzeW5jCisgICAgRGlkQ2hhbmdlSXNQbGF5
aW5nKGJvb2wgaXNQbGF5aW5nKQorCit9CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVS
ZW1vdGUuY3BwCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzcsMjEgKzEzNywyMSBAQCB2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OmFkZERhdGFDdWVX
CiB7CiAgICAgQVNTRVJUKGNsaWVudCgpKTsKICAgICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+
Y2xpZW50KCkpCi0gICAgICAgIGNsaWVudC0+YWRkRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RG
TW92ZShlbmQpLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShkYXRh
VmFsdWUpKSwgdHlwZSk7CisgICAgICAgIGNsaWVudC0+YWRkRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0
KSwgV1RGTW92ZShlbmQpLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVh
dGUoV1RGTW92ZShkYXRhVmFsdWUpKSwgdHlwZSk7CiB9CiAKIHZvaWQgVGV4dFRyYWNrUHJpdmF0
ZVJlbW90ZTo6dXBkYXRlRGF0YUN1ZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5k
LCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiBkYXRhVmFsdWUpCiB7CiAgICAgQVNT
RVJUKGNsaWVudCgpKTsKICAgICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCi0g
ICAgICAgIGNsaWVudC0+dXBkYXRlRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQp
LCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShkYXRhVmFsdWUpKSk7
CisgICAgICAgIGNsaWVudC0+dXBkYXRlRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShl
bmQpLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShk
YXRhVmFsdWUpKSk7CiB9CiAKIHZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlRGF0
YUN1ZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlVmFsdWUmJiBkYXRhVmFsdWUpCiB7CiAgICAgQVNTRVJUKGNsaWVudCgpKTsKICAg
ICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCi0gICAgICAgIGNsaWVudC0+cmVt
b3ZlRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShkYXRhVmFsdWUpKSk7CisgICAgICAgIGNsaWVudC0+
cmVtb3ZlRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShkYXRhVmFsdWUpKSk7CiB9CiAj
ZW5kaWYKIApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJh
Y2tQcml2YXRlUmVtb3RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmgJKHJldmlzaW9uIDI1NzI5NykKKysr
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCiAKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1v
dGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JbmJhbmRUZXh0VHJhY2tQcml2YXRl
Lmg+CkBAIC00NCw2ICs0NSwxMCBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU7CiBj
bGFzcyBUZXh0VHJhY2tQcml2YXRlUmVtb3RlIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkluYmFu
ZFRleHRUcmFja1ByaXZhdGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRleHRUcmFja1By
aXZhdGVSZW1vdGUpCiBwdWJsaWM6CisgICAgdXNpbmcgR2VuZXJpY0N1ZURhdGEgPSBXZWJDb3Jl
OjpHZW5lcmljQ3VlRGF0YTsKKyAgICB1c2luZyBJU09XZWJWVFRDdWUgPSBXZWJDb3JlOjpJU09X
ZWJWVFRDdWU7CisgICAgdXNpbmcgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlID0gV2Vi
Q29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOworCiAgICAgc3RhdGljIFJlZjxU
ZXh0VHJhY2tQcml2YXRlUmVtb3RlPiBjcmVhdGUoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlJiBw
bGF5ZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZShwbGF5ZXIsIGlk
ZW5kaWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcAko
bm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1l
ZGlhU3RyYXRlZ3kuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViTWVkaWFTdHJhdGVneS5oIgor
CisjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24u
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvSU9DYWxsYmFjay5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworV2ViTWVkaWFTdHJhdGVneTo6fldlYk1lZGlhU3RyYXRlZ3koKSA9IGRlZmF1bHQ7
CisKK3N0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uPiBXZWJNZWRpYVN0
cmF0ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjayYg
Y2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKKyAgICB1bnNpZ25lZCBudW1i
ZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0
IHNhbXBsZVJhdGUpCit7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIGlmIChtX3VzZUdQ
VVByb2Nlc3MpCisgICAgICAgIHJldHVybiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OmNy
ZWF0ZShjYWxsYmFjaywgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1i
ZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKKyNlbmRpZgorICAgIHJldHVybiBXZWJD
b3JlOjpBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51
bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgJKG5vbmV4aXN0ZW50
KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5
LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVN0cmF0ZWd5Lmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBXZWJNZWRpYVN0cmF0ZWd5IDogcHVibGljIFdlYkNvcmU6Ok1lZGlh
U3RyYXRlZ3kgeworcHVibGljOgorICAgIHZpcnR1YWwgfldlYk1lZGlhU3RyYXRlZ3koKTsKKwor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICB2b2lkIHNldFVzZUdQVVByb2Nlc3MoYm9vbCB1
c2VHUFVQcm9jZXNzKSB7IG1fdXNlR1BVUHJvY2VzcyA9IHVzZUdQVVByb2Nlc3M7IH0KKyNlbmRp
ZgorCitwcml2YXRlOgorICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0
aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjayYsCisg
ICAgICAgIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1
dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVS
YXRlKSBvdmVycmlkZTsKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBib29sIG1fdXNl
R1BVUHJvY2VzcyB7IGZhbHNlIH07CisjZW5kaWYKKworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5j
cHAJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNiw2ICsyNiw5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlci5oIgogCisjaW5jbHVkZSAiRGVjb2Rlci5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvSW50U2l6ZS5oPgorCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShH
UFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFN
KQogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzksMTYgKzM5LDE5IEBACiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJX
ZWJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIldlYkxvYWRlclN0cmF0ZWd5LmgiCisj
aW5jbHVkZSAiV2ViTWVkaWFTdHJhdGVneS5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNs
dWRlICJXZWJQYXN0ZWJvYXJkT3ZlcnJpZGVzLmgiCiAjaW5jbHVkZSAiV2ViUGFzdGVib2FyZFBy
b3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24u
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVu
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2FkZXJTdHJhdGVneS5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvTWVkaWFTdHJhdGVneS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9QYWdlR3JvdXAuaD4KQEAgLTczLDYgKzc2LDggQEAKIG5hbWVzcGFjZSBXZWJLaXQgewog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKK2NsYXNzIFJlbW90ZUF1ZGlvRGVzdGluYXRpb247
CisKIHZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjppbml0aWFsaXplKCkKIHsKICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8V2ViUGxhdGZvcm1TdHJhdGVnaWVzPiBwbGF0Zm9ybVN0cmF0ZWdp
ZXM7CkBAIC05Myw2ICs5OCwxMSBAQCBQYXN0ZWJvYXJkU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3Ry
YXRlZ2llCiAgICAgcmV0dXJuIHRoaXM7CiB9CiAKK01lZGlhU3RyYXRlZ3kqIFdlYlBsYXRmb3Jt
U3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFTdHJhdGVneSgpCit7CisgICAgcmV0dXJuIG5ldyBXZWJN
ZWRpYVN0cmF0ZWd5OworfQorCiBCbG9iUmVnaXN0cnkqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKIHsKICAgICByZXR1cm4gbmV3IEJsb2JSZWdpc3RyeVByb3h5
OwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkocmV2aXNpb24gMjU3Mjk3KQor
KysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIHByaXZhdGU6CiAgICAg
Ly8gV2ViQ29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzCiAgICAgV2ViQ29yZTo6TG9hZGVyU3RyYXRl
Z3kqIGNyZWF0ZUxvYWRlclN0cmF0ZWd5KCkgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6UGFzdGVi
b2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAgICBX
ZWJDb3JlOjpNZWRpYVN0cmF0ZWd5KiBjcmVhdGVNZWRpYVN0cmF0ZWd5KCkgb3ZlcnJpZGU7CiAg
ICAgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSBvdmVycmlkZTsK
IAogICAgIC8vIFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVneQpJbmRleDogU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDI1NzI5NykKKysr
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDEsNiArMTAxLDcgQEAKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JVSU1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiV2ViTG9hZGVyU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJXZWJNZWRpYUtl
eVN0b3JhZ2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViTWVkaWFTdHJhdGVneS5oIgogI2luY2x1
ZGUgIldlYk5vdGlmaWNhdGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIldlYk9wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIgpAQCAt
MTk5LDYgKzIwMCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QaW5nTG9hZGVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bs
YXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1T
dHJhdGVnaWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5Eb2N1bWVudC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUG9pbnRlckNhcHR1cmVDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9QcmludENvbnRleHQuaD4KQEAgLTM2ODUsNiArMzY4Nyw4IEBAIHZvaWQgV2ViUGFnZTo6dXBk
YXRlUHJlZmVyZW5jZXMoY29uc3QgV2UKICAgICAgICAgbV9kcmF3aW5nQXJlYS0+dXBkYXRlUHJl
ZmVyZW5jZXMoc3RvcmUpOwogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIC8vIEZJWE1F
OiB1c2VHUFVQcm9jZXNzRm9yTWVkaWEgc2hvdWxkIGJlIGEgUnVudGltZUVuYWJsZWRGZWF0dXJl
IHNpbmNlIGl0J3MgZ2xvYmFsLgorICAgIHN0YXRpY19jYXN0PFdlYk1lZGlhU3RyYXRlZ3kmPihw
bGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bWVkaWFTdHJhdGVneSgpKS5zZXRVc2VHUFVQcm9jZXNzKHNl
dHRpbmdzLnVzZUdQVVByb2Nlc3NGb3JNZWRpYSgpKTsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5zdXBwbGVtZW50PFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcj4oKS0+dXBkYXRlUHJlZmVy
ZW5jZXMoc2V0dGluZ3MpOwogI2VuZGlmCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0wMi0yNCAgUnlvc3VrZSBO
aXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBDcmVhdGUgQXVkaW9EZXN0aW5hdGlv
biBpbiB0aGUgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwODE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZGVkIFdlYk1lZGlhU3RyYXRlZ3kgd2hpY2ggaXMgYSB3cmFwcGVyIGFy
b3VuZCBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMubW06CisgICAgICAgIChXZWJNZWRpYVN0cmF0ZWd5KTogQWRkZWQu
CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3kpOgor
CiAyMDIwLTAyLTI0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbmFtZSB0aGUgY2xhc2hpbmcgV2ViT3ZlcmxheUxheWVyIGNsYXNzZXMKSW5kZXg6
IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAko
d29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQCBwcml2YXRlOgogICAgIC8vIFdlYkNvcmU6
OlBsYXRmb3JtU3RyYXRlZ2llcwogICAgIFdlYkNvcmU6OkxvYWRlclN0cmF0ZWd5KiBjcmVhdGVM
b2FkZXJTdHJhdGVneSgpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVn
eSogY3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6TWVk
aWFTdHJhdGVneSogY3JlYXRlTWVkaWFTdHJhdGVneSgpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6
OkJsb2JSZWdpc3RyeSogY3JlYXRlQmxvYlJlZ2lzdHJ5KCkgb3ZlcnJpZGU7CiAKICAgICAvLyBX
ZWJDb3JlOjpQYXN0ZWJvYXJkU3RyYXRlZ3kKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMubW0JKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgs
OSArMjgsMTEgQEAKICNpbXBvcnQgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbXBv
cnQgIldlYlBsdWdpblBhY2thZ2UuaCIKICNpbXBvcnQgIldlYlJlc291cmNlTG9hZFNjaGVkdWxl
ci5oIgorI2ltcG9ydCA8V2ViQ29yZS9BdWRpb0Rlc3RpbmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0Jsb2JSZWdpc3RyeUltcGwuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ29sb3IuaD4KICNpbXBv
cnQgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTWVkaWFTdHJhdGVneS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbXBvcnQgPFdlYkNv
cmUvUGFzdGVib2FyZEl0ZW1JbmZvLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtUGFzdGVi
b2FyZC5oPgpAQCAtNjIsNiArNjQsMjEgQEAgUGFzdGVib2FyZFN0cmF0ZWd5KiBXZWJQbGF0Zm9y
bVN0cmF0ZWdpZQogICAgIHJldHVybiB0aGlzOwogfQogCitjbGFzcyBXZWJNZWRpYVN0cmF0ZWd5
IGZpbmFsIDogcHVibGljIE1lZGlhU3RyYXRlZ3kgeworcHJpdmF0ZToKKworICAgIHN0ZDo6dW5p
cXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKEF1ZGlvSU9D
YWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKKyAgICAgICAg
dW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENo
YW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgcmV0dXJu
IEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShjYWxsYmFjaywgaW5wdXREZXZpY2VJZCwgbnVtYmVy
T2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKKyAg
ICB9Cit9OworCitNZWRpYVN0cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1l
ZGlhU3RyYXRlZ3koKQoreworICAgIHJldHVybiBuZXcgV2ViTWVkaWFTdHJhdGVneTsKK30KKwog
Y2xhc3MgV2ViQmxvYlJlZ2lzdHJ5IGZpbmFsIDogcHVibGljIEJsb2JSZWdpc3RyeSB7CiBwcml2
YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmIHVybCwgUmVmPEJs
b2JEYXRhRmlsZVJlZmVyZW5jZT4mJiByZWZlcmVuY2UsIGNvbnN0IFN0cmluZyYgY29udGVudFR5
cGUpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0ZXJGaWxlQmxvYlVSTCh1cmwsIFdURk1v
dmUocmVmZXJlbmNlKSwgY29udGVudFR5cGUpOyB9CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0wMi0yNCAgUnlvc3Vr
ZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBDcmVhdGUgQXVkaW9EZXN0aW5h
dGlvbiBpbiB0aGUgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwODE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZGVkIFdlYk1lZGlhU3RyYXRlZ3kgd2hpY2ggaXMgYSB3cmFwcGVy
IGFyb3VuZCBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViTWVkaWFTdHJhdGVn
eSk6IEFkZGVkLgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVNZWRpYVN0
cmF0ZWd5KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
aDoKKwogMjAyMC0wMi0xMyAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjU1MTU4LCAyNTU0MDUgYW5kIHIyNTU0
ODYKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkocmV2aXNpb24gMjU3Mjk3
KQorKysgU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsOSArMjcsMTEgQEAKIAogI2luY2x1
ZGUgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGlhbnRpb24uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0Jsb2JSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQmxvYlJl
Z2lzdHJ5SW1wbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL01lZGlhU3RyYXRlZ3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUGFnZUdyb3VwLmg+CkBAIC02MCw2ICs2MiwyMSBAQCBQYXN0ZWJvYXJkU3RyYXRlZ3kqIFdl
YlBsYXRmb3JtU3RyYXRlZ2llCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK2NsYXNzIFdlYk1l
ZGlhU3RyYXRlZ3kgZmluYWwgOiBwdWJsaWMgTWVkaWFTdHJhdGVneSB7Citwcml2YXRlOgorCisg
ICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRp
b24oQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlk
LAorICAgICAgICB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJl
ck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpIG92ZXJyaWRlCisgICAgeworICAg
ICAgICByZXR1cm4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKGNhbGxiYWNrLCBpbnB1dERldmlj
ZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBs
ZVJhdGUpOworICAgIH0KK307CisKK01lZGlhU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6Y3JlYXRlTWVkaWFTdHJhdGVneSgpCit7CisgICAgcmV0dXJuIG5ldyBXZWJNZWRpYVN0cmF0
ZWd5OworfQorCiBjbGFzcyBXZWJCbG9iUmVnaXN0cnkgZmluYWwgOiBwdWJsaWMgQmxvYlJlZ2lz
dHJ5IHsKIHByaXZhdGU6CiAgICAgdm9pZCByZWdpc3RlckZpbGVCbG9iVVJMKGNvbnN0IFVSTCYg
dXJsLCBSZWY8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmIHJlZmVyZW5jZSwgY29uc3QgU3RyaW5n
JiBjb250ZW50VHlwZSkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckZpbGVCbG9iVVJM
KHVybCwgV1RGTW92ZShyZWZlcmVuY2UpLCBjb250ZW50VHlwZSk7IH0KSW5kZXg6IFNvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5oCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkod29ya2luZyBj
b3B5KQpAQCAtMzgsNyArMzgsOCBAQCBwcml2YXRlOgogICAgIFdlYlBsYXRmb3JtU3RyYXRlZ2ll
cygpOwogCiAgICAgLy8gV2ViQ29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzCi0gICAgdmlydHVhbCBX
ZWJDb3JlOjpMb2FkZXJTdHJhdGVneSogY3JlYXRlTG9hZGVyU3RyYXRlZ3koKTsKLSAgICB2aXJ0
dWFsIFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVneSogY3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5
KCk7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpCbG9iUmVnaXN0cnkqIGNyZWF0ZUJsb2JSZWdpc3Ry
eSgpOworICAgIFdlYkNvcmU6OkxvYWRlclN0cmF0ZWd5KiBjcmVhdGVMb2FkZXJTdHJhdGVneSgp
IG92ZXJyaWRlOworICAgIFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVneSogY3JlYXRlUGFzdGVi
b2FyZFN0cmF0ZWd5KCkgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6TWVkaWFTdHJhdGVneSogY3Jl
YXRlTWVkaWFTdHJhdGVneSgpIG92ZXJyaWRlOworICAgIFdlYkNvcmU6OkJsb2JSZWdpc3RyeSog
Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkgb3ZlcnJpZGU7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391721</attachid>
            <date>2020-02-25 20:56:51 -0800</date>
            <delta_ts>2020-02-26 00:59:42 -0800</delta_ts>
            <desc>Windows build fix attempt 2</desc>
            <filename>bug-208179-20200225205650.patch</filename>
            <type>text/plain</type>
            <size>98873</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDIwLTAyLTI0ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIENyZWF0ZSBBdWRpb0Rlc3RpbmF0
aW9uIGluIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA4MTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIGFuIGFic3RyYWN0aW9uIGFyb3VuZCB0aGUgY3JlYXRpb24gb2Yg
QXVkaW9EZXN0aW5hdGlvbiB1c2luZyBuZXdseSBpbnRyb2R1Y2VkIG1lZGlhU3RyYXRlZ3kuCisK
KyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vRGVm
YXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZmF1bHRB
dWRpb0Rlc3RpbmF0aW9uTm9kZTo6Y3JlYXRlRGVzdGluYXRpb24pOiBVc2UgTWVkaWFTdHJhdGVn
eTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5Lmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJhdGVneSk6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1T
dHJhdGVnaWVzOjptZWRpYVN0cmF0ZWd5KTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vQXVkaW9CdXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9u
Lmg6CisKIDIwMjAtMDItMjQgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggZm9yIFdpbkNhaXJvIHBvcnQKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQkocmV2aXNpb24gMjU3Mjk3KQorKysgU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAtOTUxLDYgKzk1MSw3IEBAIHNldChXZWJD
b3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lz
dHJ5LmgKICAgICBwbGF0Zm9ybS9NZWRpYVNhbXBsZS5oCiAgICAgcGxhdGZvcm0vTWVkaWFTZWxl
Y3Rpb25PcHRpb24uaAorICAgIHBsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaAogICAgIHBsYXRmb3Jt
L05vdEltcGxlbWVudGVkLmgKICAgICBwbGF0Zm9ybS9PcmllbnRhdGlvbk5vdGlmaWVyLmgKICAg
ICBwbGF0Zm9ybS9QT0RJbnRlcnZhbC5oCkBAIC0xMDIyLDcgKzEwMjMsMTIgQEAgc2V0KFdlYkNv
cmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2FuaW1hdGlvbi9Bbmlt
YXRpb25VdGlsaXRpZXMuaAogICAgIHBsYXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5o
CiAKKyAgICBwbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5LmgKKyAgICBwbGF0Zm9ybS9hdWRpby9B
dWRpb0J1cy5oCisgICAgcGxhdGZvcm0vYXVkaW8vQXVkaW9DaGFubmVsLmgKKyAgICBwbGF0Zm9y
bS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmgKICAgICBwbGF0Zm9ybS9hdWRpby9BdWRpb0hhcmR3
YXJlTGlzdGVuZXIuaAorICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvSU9DYWxsYmFjay5oCiAgICAg
cGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKICAgICBwbGF0Zm9ybS9hdWRpby9BdWRpb1Nv
dXJjZVByb3ZpZGVyLmgKICAgICBwbGF0Zm9ybS9hdWRpby9BdWRpb1N0cmVhbURlc2NyaXB0aW9u
LmgKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVz
dGluYXRpb25Ob2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAJKHJldmlzaW9uIDI1NzI5NykK
KysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRp
b25Ob2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsOCBAQAogI2luY2x1ZGUgIkF1
ZGlvQ29udGV4dC5oIgogI2luY2x1ZGUgIkF1ZGlvRGVzdGluYXRpb24uaCIKICNpbmNsdWRlICJM
b2dnaW5nLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJhdGVneS5oIgorI2luY2x1ZGUgIlBsYXRmb3Jt
U3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+
CkBAIC04NCw4ICs4Niw4IEBAIHZvaWQgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpjcmVh
dGUKIHsKICAgICBmbG9hdCBoYXJkd2FyZVNhbXBsZVJhdGUgPSBBdWRpb0Rlc3RpbmF0aW9uOjpo
YXJkd2FyZVNhbXBsZVJhdGUoKTsKICAgICBMT0coV2ViQXVkaW8sICI+Pj4+IGhhcmR3YXJlU2Ft
cGxlUmF0ZSA9ICVmXG4iLCBoYXJkd2FyZVNhbXBsZVJhdGUpOwotICAgIAotICAgIG1fZGVzdGlu
YXRpb24gPSBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoKnRoaXMsIG1faW5wdXREZXZpY2VJZCwg
bV9udW1iZXJPZklucHV0Q2hhbm5lbHMsIGNoYW5uZWxDb3VudCgpLCBoYXJkd2FyZVNhbXBsZVJh
dGUpOworCisgICAgbV9kZXN0aW5hdGlvbiA9IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5tZWRpYVN0
cmF0ZWd5KCkuY3JlYXRlQXVkaW9EZXN0aW5hdGlvbigqdGhpcywgbV9pbnB1dERldmljZUlkLCBt
X251bWJlck9mSW5wdXRDaGFubmVscywgY2hhbm5lbENvdW50KCksIGhhcmR3YXJlU2FtcGxlUmF0
ZSk7CiB9CiAKIHZvaWQgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjplbmFibGVJbnB1dChj
b25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTcyOTcpCisrKyBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTI4ODksNiArMjg4OSw4IEBACiAJCTlBQjFGMzgwMThFMjQ4OUEwMDUzNDc0MyAv
KiBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5QUIxRjM3RTE4RTI0ODlBMDA1MzQ3NDMgLyogQ1NTVG9MZW5n
dGhDb252ZXJzaW9uRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTlCMDJFMEM4MjM1RUFEMkEwMDQwNDRCMiAvKiBUZXh0TWFuaXB1bGF0aW9u
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOUIwMkUwQzMyMzVFNzZBQTAwNDA0NEIyIC8qIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIw
QUJDQUUyMzZCQjQzMTAwQjQ1MDg1IC8qIFRhc2tTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMEFCQ0FDMjM2QkI0MEEwMEI0NTA4NSAvKiBU
YXNrU291cmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJOUIxMjI5QzQyM0ZFNEJEMjAwOENBNzUxIC8qIEF1ZGlvRGVzdGluYXRpb25Db2NvYS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzMTUxODYy
MzU3NzQ1RTAwMTE1RTZFIC8qIEF1ZGlvRGVzdGluYXRpb25Db2NvYS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTlCMTIyOUM3MjNGRTRENkEwMDhD
QTc1MSAvKiBNZWRpYVN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5QjEyMjlDNjIzRkU0RDVGMDA4Q0E3NTEgLyogTWVkaWFTdHJhdGVneS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMjRE
RThFMTUxOTRCOTUwMEM1OUMyNyAvKiBIVE1MQkRJRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIyNERFOEMxNTE5NEI5NTAwQzU5QzI3IC8q
IEhUTUxCRElFbGVtZW50LmggKi87IH07CiAJCTlCMjdGQzYwMjM0RDlBREIwMDM5NEE0NiAvKiBX
aW5kb3dFdmVudExvb3AuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDlCMjdGQzVFMjM0RDlBREEwMDM5NEE0NiAvKiBXaW5kb3dFdmVudExvb3AuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjJEOEE3OTE0
OTk3Q0NGMDBFQ0VGM0UgLyogVW5kb1N0ZXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDlCMkQ4QTc4MTQ5OTdDQ0YwMEVDRUYzRSAvKiBVbmRvU3RlcC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01MDY4
LDEwICs1MDcwLDEwIEBACiAJCUZEMzE2MDM2MTJCMDI2NzYwMEMxQTM1OSAvKiBTY3JpcHRQcm9j
ZXNzb3JOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGRDMxNUZFQzEyQjAyNjc2MDBDMUEzNTkgLyogU2NyaXB0UHJvY2Vzc29yTm9kZS5oICovOyB9
OwogCQlGRDMxNjAzQzEyQjAyNjc2MDBDMUEzNTkgLyogUmVhbHRpbWVBbmFseXNlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTVGRjIxMkIwMjY3
NjAwQzFBMzU5IC8qIFJlYWx0aW1lQW5hbHlzZXIuaCAqLzsgfTsKIAkJRkQzMTYwM0UxMkIwMjY3
NjAwQzFBMzU5IC8qIEFuYWx5c2VyTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRkQzMTVGRjQxMkIwMjY3NjAwQzFBMzU5IC8qIEFuYWx5c2VyTm9k
ZS5oICovOyB9OwotCQlGRDMxNjA3QTEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9BcnJheS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNDQxMkIw
MjZGNzAwQzFBMzU5IC8qIEF1ZGlvQXJyYXkuaCAqLzsgfTsKLQkJRkQzMTYwN0MxMkIwMjZGNzAw
QzFBMzU5IC8qIEF1ZGlvQnVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGRDMxNjA0NjEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9CdXMuaCAqLzsgfTsK
LQkJRkQzMTYwN0UxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvQ2hhbm5lbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNDgxMkIwMjZGNzAwQzFB
MzU5IC8qIEF1ZGlvQ2hhbm5lbC5oICovOyB9OwotCQlGRDMxNjA3RjEyQjAyNkY3MDBDMUEzNTkg
LyogQXVkaW9EZXN0aW5hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRkQzMTYwNDkxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb24u
aCAqLzsgfTsKKwkJRkQzMTYwN0ExMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvQXJyYXkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDQ0MTJCMDI2
RjcwMEMxQTM1OSAvKiBBdWRpb0FycmF5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJRkQzMTYwN0MxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvQnVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA0
NjEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9CdXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQlGRDMxNjA3RTEyQjAyNkY3MDBDMUEzNTkgLyogQXVk
aW9DaGFubmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGRDMxNjA0ODEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9DaGFubmVsLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRkQzMTYwN0YxMkIwMjZGNzAw
QzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDQ5MTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0Rlc3Rp
bmF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJRkQzMTYwODAxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRFNQS2VybmVsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA0QTEyQjAyNkY3MDBD
MUEzNTkgLyogQXVkaW9EU1BLZXJuZWwuaCAqLzsgfTsKIAkJRkQzMTYwODIxMkIwMjZGNzAwQzFB
MzU5IC8qIEF1ZGlvRFNQS2VybmVsUHJvY2Vzc29yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA0QzEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9E
U1BLZXJuZWxQcm9jZXNzb3IuaCAqLzsgfTsKIAkJRkQzMTYwODMxMkIwMjZGNzAwQzFBMzU5IC8q
IEF1ZGlvRmlsZVJlYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkQzMTYwNEQxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRmlsZVJlYWRlci5oICov
OyB9OwpAQCAtNTE0OSw3ICs1MTUxLDcgQEAKIAkJRkRCMTcwMDYxNEEyQkFCMjAwQTJCNUQ5IC8q
IE11bHRpQ2hhbm5lbFJlc2FtcGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkRCMTcwMDQxNEEyQkFCMjAwQTJCNUQ5IC8qIE11bHRpQ2hhbm5lbFJl
c2FtcGxlci5oICovOyB9OwogCQlGREJENDgwRDE1OUJDNjg3MDA5M0VCNEYgLyogSlNNZWRpYVN0
cmVhbUF1ZGlvU291cmNlTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRkRCRDQ4MEIxNTlCQzY4NzAwOTNFQjRGIC8qIEpTTWVkaWFTdHJlYW1BdWRp
b1NvdXJjZU5vZGUuaCAqLzsgfTsKIAkJRkRDNTRGMDUxMzk5QjBEQTAwOEQ5MTE3IC8qIEJpcXVh
ZEZpbHRlck5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEZEQzU0RjAyMTM5OUIwREEwMDhEOTExNyAvKiBCaXF1YWRGaWx0ZXJOb2RlLmggKi87IH07
Ci0JCUZERTJENTVCMTU5RTY2RUIwMERDQ0NGOCAvKiBBdWRpb0lPQ2FsbGJhY2suaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZERTJENTVBMTU5RTY2RUIw
MERDQ0NGOCAvKiBBdWRpb0lPQ2FsbGJhY2suaCAqLzsgfTsKKwkJRkRFMkQ1NUIxNTlFNjZFQjAw
RENDQ0Y4IC8qIEF1ZGlvSU9DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRkRFMkQ1NUExNTlFNjZFQjAwRENDQ0Y4IC8qIEF1ZGlvSU9DYWxs
YmFjay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUZERUE2MjQzMTUyMTAyRTIwMDQ3OURGMCAvKiBKU09zY2lsbGF0b3JOb2RlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGREVBNjI0MTE1MjEwMkUyMDA0
NzlERjAgLyogSlNPc2NpbGxhdG9yTm9kZS5oICovOyB9OwogCQlGREVBNjI0NzE1MjEwMkZDMDA0
NzlERjAgLyogSlNQZXJpb2RpY1dhdmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZERUE2MjQ1MTUyMTAyRkMwMDQ3OURGMCAvKiBKU1BlcmlvZGljV2F2
ZS5oICovOyB9OwogCQlGREYwOURDOTEzOTlCNjIyMDA2ODhFNUIgLyogSlNCaXF1YWRGaWx0ZXJO
b2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGREYw
OURDNzEzOTlCNjIyMDA2ODhFNUIgLyogSlNCaXF1YWRGaWx0ZXJOb2RlLmggKi87IH07CkBAIC0x
MTIwMyw2ICsxMTIwNSw3IEBACiAJCTlCMEFCQ0E0MjM2NzlBQ0YwMEI0NTA4NSAvKiBXb3JrZXJF
dmVudExvb3AuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29ya2VyRXZlbnRM
b29wLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMEFCQ0FDMjM2QkI0MEEwMEI0
NTA4NSAvKiBUYXNrU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRhc2tTb3VyY2UuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwRkU4NzMxRDlFMDJERjAwNEE4QUNCIC8qIERvY3Vt
ZW50T3JTaGFkb3dSb290LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEb2N1bWVudE9yU2hh
ZG93Um9vdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCMTIyOUM2MjNGRTRE
NUYwMDhDQTc1MSAvKiBNZWRpYVN0cmF0ZWd5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU3RyYXRl
Z3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIxMzI1N0IxRjNEMkFCQTAwREFB
QjY5IC8qIERhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IERhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOUIxOUI2N0UxQjk2NEU1MjAwMzQ4NzQ1IC8qIFNoYWRvd1Jvb3QuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1Jvb3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5QjFBQjA3OTE2NDhDNjlEMDA1MUYzRjIgLyogSFRNTEZvcm1Db250cm9sc0Nv
bGxlY3Rpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1OTMyLDYgKzI1OTM1LDcgQEAKIAkJCQlDREYyQjAw
MzE4MUYwNTlDMDBGMkI0MjQgLyogTWVkaWFEZXNjcmlwdGlvbi5oICovLAogCQkJCUNENjQxRUM3
MTgxRUQ2MDEwMEVFNEM0MSAvKiBNZWRpYVNhbXBsZS5oICovLAogCQkJCUExN0QyNzVEMUVBQzU3
OTgwMEJGMDFFNyAvKiBNZWRpYVNlbGVjdGlvbk9wdGlvbi5oICovLAorCQkJCTlCMTIyOUM2MjNG
RTRENUYwMDhDQTc1MSAvKiBNZWRpYVN0cmF0ZWd5LmggKi8sCiAJCQkJQkM3NzJDNEMwQzRFQjMw
NDAwODMyODVGIC8qIE1JTUVUeXBlUmVnaXN0cnkuY3BwICovLAogCQkJCUJDNzcyQzREMEM0RUIz
MDQwMDgzMjg1RiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmggKi8sCiAJCQkJRTE1MTNENTAxNjc3RjA4
ODAwMTQ5RkNCIC8qIE5vdEltcGxlbWVudGVkLmNwcCAqLywKQEAgLTI5MDU3LDYgKzI5MDYxLDcg
QEAKIAkJCQlGRDMxNjA3RTEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9DaGFubmVsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGRDMxNjAwNTEyQjAyNjc2MDBDMUEzNTkgLyogQXVkaW9Db250ZXh0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA3RjEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9EZXN0
aW5hdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUIxMjI5QzQyM0ZFNEJEMjAwOENBNzUxIC8q
IEF1ZGlvRGVzdGluYXRpb25Db2NvYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwQkQxMkIw
MjcyQTAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb25NYWMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZEMzE2MDA4MTJCMDI2NzYwMEMxQTM1OSAvKiBBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRkQzMTYwODAxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRFNQS2VybmVs
LmggaW4gSGVhZGVycyAqLywKQEAgLTMxNDkwLDYgKzMxNDk1LDcgQEAKIAkJCQlDRDY0MUVCMzE4
MThGNUVEMDBFRTRDNDEgLyogTWVkaWFTb3VyY2VQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDREM4QjVBNzE4MDQ3NEY3MDAxNkU2ODUgLyogTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQ0REQzFFN0ExOEE5NTJGMzAwMjdBOUQ0IC8qIE1lZGlhU291
cmNlUHJpdmF0ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUIxMjI5QzcyM0ZFNEQ2QTAw
OENBNzUxIC8qIE1lZGlhU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTE1MTdE
MTREMUMwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5
NEMxN0QxNzA5NjAwNDIwQUExIC8qIE1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTA3ODMyMjg1MTgwMTNFRDgwMDk5OUUwQyAvKiBNZWRpYVN0cmVh
bUF1ZGlvU291cmNlLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL01lZGlhU3RyYXRlZ3kuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9NZWRpYVN0cmF0ZWd5LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTWVkaWFTdHJhdGVneS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXVkaW9EZXN0aW5hdGlvbjsKK2NsYXNzIEF1ZGlvSU9D
YWxsYmFjazsKKworY2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFTdHJhdGVneSB7CitwdWJsaWM6
CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVk
aW9EZXN0aW5hdGlvbigKKyAgICAgICAgQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBp
bnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51
bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpID0gMDsKK3Byb3RlY3RlZDoK
KyAgICB2aXJ0dWFsIH5NZWRpYVN0cmF0ZWd5KCkgPSBkZWZhdWx0OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TdHJh
dGVnaWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1T
dHJhdGVnaWVzLmgJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtU3RyYXRlZ2llcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQmxvYlJlZ2lzdHJ5OwogY2xhc3MgTG9hZGVyU3Ry
YXRlZ3k7CitjbGFzcyBNZWRpYVN0cmF0ZWd5OwogY2xhc3MgUGFzdGVib2FyZFN0cmF0ZWd5Owog
CiBjbGFzcyBQbGF0Zm9ybVN0cmF0ZWdpZXMgewpAQCAtMzksNyArNDAsNyBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICBtX2xvYWRlclN0cmF0ZWd5ID0gY3JlYXRlTG9hZGVyU3RyYXRlZ3koKTsKICAg
ICAgICAgcmV0dXJuIG1fbG9hZGVyU3RyYXRlZ3k7CiAgICAgfQotICAgIAorCiAgICAgUGFzdGVi
b2FyZFN0cmF0ZWd5KiBwYXN0ZWJvYXJkU3RyYXRlZ3koKQogICAgIHsKICAgICAgICAgaWYgKCFt
X3Bhc3RlYm9hcmRTdHJhdGVneSkKQEAgLTQ3LDYgKzQ4LDEzIEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIG1fcGFzdGVib2FyZFN0cmF0ZWd5OwogICAgIH0KIAorICAgIE1lZGlhU3RyYXRlZ3km
IG1lZGlhU3RyYXRlZ3koKQorICAgIHsKKyAgICAgICAgaWYgKCFtX21lZGlhU3RyYXRlZ3kpCisg
ICAgICAgICAgICBtX21lZGlhU3RyYXRlZ3kgPSBjcmVhdGVNZWRpYVN0cmF0ZWd5KCk7CisgICAg
ICAgIHJldHVybiAqbV9tZWRpYVN0cmF0ZWd5OworICAgIH0KKwogICAgIEJsb2JSZWdpc3RyeSog
YmxvYlJlZ2lzdHJ5KCkKICAgICB7CiAgICAgICAgIGlmICghbV9ibG9iUmVnaXN0cnkpCkBAIC02
NCwxMCArNzIsMTIgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIExvYWRlclN0
cmF0ZWd5KiBjcmVhdGVMb2FkZXJTdHJhdGVneSgpID0gMDsKICAgICB2aXJ0dWFsIFBhc3RlYm9h
cmRTdHJhdGVneSogY3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkgPSAwOworICAgIHZpcnR1YWwg
TWVkaWFTdHJhdGVneSogY3JlYXRlTWVkaWFTdHJhdGVneSgpID0gMDsKICAgICB2aXJ0dWFsIEJs
b2JSZWdpc3RyeSogY3JlYXRlQmxvYlJlZ2lzdHJ5KCkgPSAwOwogCiAgICAgTG9hZGVyU3RyYXRl
Z3kqIG1fbG9hZGVyU3RyYXRlZ3kgeyB9OwogICAgIFBhc3RlYm9hcmRTdHJhdGVneSogbV9wYXN0
ZWJvYXJkU3RyYXRlZ3kgeyB9OworICAgIE1lZGlhU3RyYXRlZ3kqIG1fbWVkaWFTdHJhdGVneSB7
IH07CiAgICAgQmxvYlJlZ2lzdHJ5KiBtX2Jsb2JSZWdpc3RyeSB7IH07CiB9OwogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmgJKHJldmlzaW9uIDI1NzI5NykK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTY2LDEwICs2NiwxMCBAQCBwdWJsaWM6CiAgICAgLy8gYWxsb2NhdGUgaW5kaWNhdGVz
IHdoZXRoZXIgb3Igbm90IHRvIGluaXRpYWxseSBoYXZlIHRoZSBBdWRpb0NoYW5uZWxzIGNyZWF0
ZWQgd2l0aCBtYW5hZ2VkIHN0b3JhZ2UuCiAgICAgLy8gTm9ybWFsIHVzYWdlIGlzIHRvIHBhc3Mg
dHJ1ZSBoZXJlLCBpbiB3aGljaCBjYXNlIHRoZSBBdWRpb0NoYW5uZWxzIHdpbGwgbWVtb3J5LW1h
bmFnZSB0aGVpciBvd24gc3RvcmFnZS4KICAgICAvLyBJZiBhbGxvY2F0ZSBpcyBmYWxzZSB0aGVu
IHNldENoYW5uZWxNZW1vcnkoKSBoYXMgdG8gYmUgY2FsbGVkIGxhdGVyIG9uIGZvciBlYWNoIGNo
YW5uZWwgYmVmb3JlIHRoZSBBdWRpb0J1cyBpcyB1c2VhYmxlLi4uCi0gICAgc3RhdGljIFJlZlB0
cjxBdWRpb0J1cz4gY3JlYXRlKHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBsZW5n
dGgsIGJvb2wgYWxsb2NhdGUgPSB0cnVlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVm
UHRyPEF1ZGlvQnVzPiBjcmVhdGUodW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IGxl
bmd0aCwgYm9vbCBhbGxvY2F0ZSA9IHRydWUpOwogCiAgICAgLy8gVGVsbHMgdGhlIGdpdmVuIGNo
YW5uZWwgdG8gdXNlIGFuIGV4dGVybmFsbHkgYWxsb2NhdGVkIGJ1ZmZlci4KLSAgICB2b2lkIHNl
dENoYW5uZWxNZW1vcnkodW5zaWduZWQgY2hhbm5lbEluZGV4LCBmbG9hdCogc3RvcmFnZSwgc2l6
ZV90IGxlbmd0aCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDaGFubmVsTWVtb3J5KHVu
c2lnbmVkIGNoYW5uZWxJbmRleCwgZmxvYXQqIHN0b3JhZ2UsIHNpemVfdCBsZW5ndGgpOwogCiAg
ICAgLy8gQ2hhbm5lbHMKICAgICB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzKCkgY29uc3QgeyBy
ZXR1cm4gbV9jaGFubmVscy5zaXplKCk7IH0KQEAgLTEyNiw3ICsxMjYsNyBAQCBwdWJsaWM6CiAK
ICAgICAvLyBDb3BpZXMgdGhlIHNhbXBsZXMgZnJvbSB0aGUgc291cmNlIGJ1cyB0byB0aGlzIG9u
ZS4KICAgICAvLyBUaGlzIGlzIGp1c3QgYSBzaW1wbGUgcGVyLWNoYW5uZWwgY29weSBpZiB0aGUg
bnVtYmVyIG9mIGNoYW5uZWxzIG1hdGNoLCBvdGhlcndpc2UgYW4gdXAtbWl4IG9yIGRvd24tbWl4
IGlzIGRvbmUuCi0gICAgdm9pZCBjb3B5RnJvbShjb25zdCBBdWRpb0J1cyYgc291cmNlQnVzLCBD
aGFubmVsSW50ZXJwcmV0YXRpb24gPSBTcGVha2Vycyk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBjb3B5RnJvbShjb25zdCBBdWRpb0J1cyYgc291cmNlQnVzLCBDaGFubmVsSW50ZXJwcmV0YXRp
b24gPSBTcGVha2Vycyk7CiAKICAgICAvLyBTdW1zIHRoZSBzYW1wbGVzIGZyb20gdGhlIHNvdXJj
ZSBidXMgdG8gdGhpcyBvbmUuCiAgICAgLy8gVGhpcyBpcyBqdXN0IGEgc2ltcGxlIHBlci1jaGFu
bmVsIHN1bW1pbmcgaWYgdGhlIG51bWJlciBvZiBjaGFubmVscyBtYXRjaCwgb3RoZXJ3aXNlIGFu
IHVwLW1peCBvciBkb3duLW1peCBpcyBkb25lLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaAkocmV2aXNpb24gMjU3Mjk3KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC00NSw3ICs0NSw3IEBAIGNsYXNzIEF1ZGlvRGVzdGluYXRpb24gewogcHVibGlj
OgogICAgIC8vIFBhc3MgaW4gKG51bWJlck9mSW5wdXRDaGFubmVscyA+IDApIGlmIGxpdmUvbG9j
YWwgYXVkaW8gaW5wdXQgaXMgZGVzaXJlZC4KICAgICAvLyBQb3J0LXNwZWNpZmljIGRldmljZSBp
ZGVudGlmaWNhdGlvbiBpbmZvcm1hdGlvbiBmb3IgbGl2ZS9sb2NhbCBpbnB1dCBzdHJlYW1zIGNh
biBiZSBwYXNzZWQgaW4gdGhlIGlucHV0RGV2aWNlSWQuCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3Ry
aW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2ln
bmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpOworICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRl
KEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQg
bnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBm
bG9hdCBzYW1wbGVSYXRlKTsKIAogICAgIHZpcnR1YWwgfkF1ZGlvRGVzdGluYXRpb24oKSA9IGRl
ZmF1bHQ7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDExOSBAQAorMjAyMC0wMi0yNCAg
Unlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBDcmVhdGUgQXVkaW9E
ZXN0aW5hdGlvbiBpbiB0aGUgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENyZWF0ZSBBdWRpb0Rlc3RpbmF0aW9uIGluIHRoZSBHUFUg
cHJvY2VzcyBpbnN0ZWFkIG9mIHRoZSBXZWJDb250ZW50IHByb2Nlc3MgZm9yIFdlYkF1ZGlvIEFQ
SSB3aGVuCisgICAgICAgIHRoZSBNZWRpYS1pbi1HUFUtcHJvY2VzcyBmZWF0dXJlIGlzIGVuYWJs
ZWQuCisKKyAgICAgICAgVG8gZG8gdGhpcywgV2ViTWVkaWFTdHJhdGVneSwgYSBjb25jcmV0ZSBp
bXBsZW1lbnRhdGlvbiBvZiBNZWRpYVN0cmF0ZWd5LCBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNz
IGdldHMKKyAgICAgICAgYSBib29sZWFuIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBHUFUg
cHJvY2VzcyBzaG91bGQgYmUgdXNlZCBmb3IgQXVkaW9EZXN0aW5hdGlvbiBvciBub3QuIFdoZW4g
dGhlIGZsYWcKKyAgICAgICAgaXMgc2V0LCB3ZSBjcmVhdGUgUmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5IGluc3RlYWQgb2YgQXVkaW9EZXN0aW5hdGlvbiBpbiBXZWJDb250ZW50IHByb2Nlc3Mu
CisKKyAgICAgICAgRWFjaCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgdGFsa3MgdG8gUmVt
b3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIgaW4gdGhlIEdQVSBwcm9jZXNzIGFuZCBjcmVhdGVz
CisgICAgICAgIGEgY29ycmVzcG9uZGluZyBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uIHdoaWNoIGlu
IHR1cm4gY3JlYXRlcyBXZWJDb3JlJ3MgQXVkaW9EZXN0aW5hdGlvbiBpbiB0aGUgR1BVIHByb2Nl
c3MuCisKKyAgICAgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbiBpcyBpdHNlbGYgYW4gQXVkaW9J
T0NhbGxiYWNrIGZvciBBdWRpb0Rlc3RpbmF0aW9uIGl0IGNyZWF0ZXMsIGFuZCBkZWxlZ2F0ZXMK
KyAgICAgICAgaXRzIGNhbGxiYWNrIHRvIFdlYkNvbnRlbnQgcHJvY2VzcycgUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5IGFzIG5lZWRlZC4KKworICAgICAgICBJbiB0aGlzIGluaXRpYWwgcGF0
Y2gsIHdlIHNlbmQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpSZW5kZXJCdWZmZXIgSVBD
IGNhbGwgdG8gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcworICAgICAgICBmb3IgZWFjaCByZW5kZXIg
Y2FsbCB3ZSBnZXQgZnJvbSBDb3JlQXVkaW8gZm9yIHNpbXBsaWNpdHkgdXNpbmcgbmV3bHkgaW50
cm9kdWNlZCBSZW1vdGVBdWRpb0J1c0RhdGEsCisgICAgICAgIHdoaWNoIGhvbGRzIGEgU2hhcmVk
TWVtb3J5IGZvciBlYWNoIGNoYW5uZWwgaW4gdGhlIGF1ZGlvIGJ1cy4KKworICAgICAgICBXZSB3
aWxsIGVsaW1pbmF0ZSB0aGlzIElQQyBvdmVyaGVhZCBpbiBhIGZvbGxvdyB1cCBwYXRjaCB1c2lu
ZyBDQVJpbmdCdWZmZXIuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAg
ICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6cmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIpOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOiBB
ZGRlZCB0aGUgY29kZSB0byBkaXNwYXRjaCBtZXNzYWdlcyB0bworICAgICAgICBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlci4KKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKTogRGl0dG8uCisgICAgICAgICogR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uKTogQWRkZWQuIFRoaXMgY2xhc3MgaXMgdGhl
IGJhY2tpbmcgb2JqZWN0IHdoaWNoIGNyZWF0ZXMgV2ViQ29yZSdzCisgICAgICAgIEF1ZGlvRGVz
dGluYXRpb24gYW5kIGFjdHVhbGx5IHRhbGtzIHRvIENvcmVBdWRpbyBpbiBHUFUgcHJvY2Vzcy4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKTogQWRkZWQu
CisKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6flJlbW90ZUF1ZGlv
RGVzdGluYXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5h
dGlvbjo6c2NoZWR1bGVHcmFjZWZ1bFNodXRkb3duSWZOZWVkZWQpOiBEZWxheXMgdGhlIGRlbGV0
aW9uIG9mIHRoaXMgb2JqZWN0CisgICAgICAgIHVudGlsIHRoZSBhdWRpbyB0aHJlYWRzIHN0b3Bz
IHJ1bm5pbmcuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OnN0YXJ0
KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OnN0b3Ap
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6aXNQbGF5
aW5nKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OlJl
bW90ZUF1ZGlvRGVzdGluYXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9EZXN0aW5hdGlvbjo6cmVuZGVyKTogU2VuZHMgYSBzeW5jIElQQyB0byB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzJworICAgICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgdG8gZmlsbCB0
aGUgYXVkaW8gYnVmZmVyLiBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBnZXRzIGNhbGxlZCBpbiBh
dWRpbyB0aHJlYWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246Omlz
UGxheWluZ0RpZENoYW5nZSk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlcik6IEFkZGVkLiBUaGlzIGNsYXNzIG1hbmFnZXMgYWxsIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb24gb2JqZWN0cyBvd25lZAorICAgICAgICBieSBhIHNpbmdsZSBXZWJDb250
ZW50IHByb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcik6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6flJlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyOjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpkZWxldGVBdWRpb0Rlc3RpbmF0aW9u
KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2Vy
OjpzdGFydEF1ZGlvRGVzdGluYXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OnN0b3BBdWRpb0Rlc3RpbmF0aW9uKTogQWRkZWQuCisg
ICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIp
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6
OmRpZFJlY2VpdmVTeW5jTWVzc2FnZUZyb21XZWJQcm9jZXNzKTogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZUZy
b21XZWJQcm9jZXNzKTogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFT
dHJhdGVneSk6IEFkZGVkLiBSZXR1cm5zIG51bGxwdHIgc2luY2UgTmV0d29ya2luZworICAgICAg
ICBwcm9jZXNzIGhhcyBubyBidXNpbmVzcyBydW5uaW5nIEF1ZGlvRGVzdGluYXRpb24uCisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMpOgorICAg
ICAgICAqIFBsYXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5OgorICAgICAgICAqIFNoYXJlZC9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmll
ci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50
aWZpZXJUeXBlKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRp
b25JZGVudGlmaWVyKTogQWRkZWQuIFRoZSBpZGVudGlmaWVyIGZvciBlYWNoIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb24KKyAgICAgICAgYW5kIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSAoY29y
cmVzcG9uZGluZyBvYmplY3RzIG9mIGVhY2ggY2xhc3MgdXNlIHRoZSBzYW1lIElEIHRvIGNvbW11
bmljYXRlKS4KKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKTogQWRkZWQgYSBk
aXNwYXRjaCBvbiBtX3JlY2VpdmVyTWFwLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9u
OjptX3JlY2VpdmVyTWFwKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25u
ZWN0aW9uOjphZGRNZXNzYWdlUmVjZWl2ZXIpOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNz
Q29ubmVjdGlvbjo6cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVBdWRpb0J1c0RhdGEuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvQnVzRGF0YSk6IEFkZGVkLiBFbmNvZGVzIHRoZSBpbmZvcm1hdGlvbiBhYm91
dCBlYWNoIHJlbmRlciBjYWxsLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0J1c0RhdGE6
OmVuY29kZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0J1c0Rh
dGE6OmRlY29kZSk6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkp
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Ojp+
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RhcnQpOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpzdG9wKTogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6cmVuZGVyQnVmZmVyKTogQWRkZWQu
IENhbGxzIFdlYkNvcmUncyBBdWRpb0lPQ2FsbGJhY2sgdG8gZmlsbAorICAgICAgICB0aGUgYXVk
aW8gYnVmZmVyIGdpdmVuIGJ5IHRoZSBHUFUgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpkaWRDaGFuZ2VJc1BsYXlpbmcpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpkaWRSZWNl
aXZlTWVzc2FnZUZyb21HUFVQcm9jZXNzKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6aXNQbGF5aW5nKTogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c2FtcGxlUmF0ZSk6IEFkZGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5t
ZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRy
YWNrUHJpdmF0ZVJlbW90ZS5jcHA6IEZpeGVkIHRoZSB1bmlmaWVkIGJ1aWxkcy4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmg6IERpdHRvLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5h
dGlvbik6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3Ry
YXRlZ3kuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyYXRlZ3kpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVneTo6c2V0VXNlR1BVUHJvY2Vzcyk6
IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyLmNwcDogRml4ZWQgdGhlIHVuaWZpZWQgYnVpbGRzLgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVNZWRpYVN0cmF0ZWd5
KTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKTogU2V0cyBXZWJN
ZWRpYVN0cmF0ZWd5J3MgZmxhZyB0byB1c2UgR1BVIHByb2Nlc3MuCisKIDIwMjAtMDItMjQgIEpp
ZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViQXV0aG5dIElt
cGxlbWVudCBTUEkgZm9yIHRoZSBwbGF0Zm9ybSBhdXRoZW50aWNhdG9yCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CShyZXZpc2lvbiAyNTcy
OTcpCisrKyBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QJKHdv
cmtpbmcgY29weSkKQEAgLTE2LDYgKzE2LDcgQEAgJChKQVZBU0NSSVBUQ09SRV9QUklWQVRFX0hF
QURFUlNfRElSKS94eAogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL0dQVVByb2Nl
c3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWFjL2NvbS5hcHBsZS5X
ZWJLaXQuR1BVUHJvY2Vzcy5zYi5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0xMDgsNiArMTA5LDcgQEAgJChQUk9KRUNU
X0RJUikvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZQogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vz
cy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQ
Uk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0Nv
ZGVjcy5tZXNzYWdlcy5pbgpJbmRleDogU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0CShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0xMjMsNiAr
MTIzLDEwIEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWIKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1BsdWdpblByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUGx1Z2luUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlck1lc3NhZ2VzLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHlNZXNzYWdlcy5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyTWFuYWdlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlck1l
c3NhZ2VzUmVwbGllcy5oCkluZGV4OiBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lv
biAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcg
Y29weSkKQEAgLTE0Myw2ICsxNDMsOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIgXAogICAgIFBsdWdpblByb2Nlc3NQcm94eSBcCiAg
ICAgUGx1Z2luUHJveHkgXAorICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyIFwKKyAg
ICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgXAogICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyTWFuYWdlciBcCiAgICAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXIgXAogICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkgXApJbmRleDog
U291cmNlL1dlYktpdC9QbGF0Zm9ybU1hYy5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtTWFjLmNtYWtlCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0
L1BsYXRmb3JtTWFjLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xNjAsNiArMTYwLDExIEBAIGxp
c3QoQVBQRU5EIFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIEdQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgogICAgIEdQVVByb2Nlc3MvR1BVUHJvY2Vz
cy5tZXNzYWdlcy5pbgogCisgICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uTWFuYWdlci5tZXNzYWdlcy5pbgorICAgIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKyAgICBHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KKyAgICBHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCisKICAgICBHUFVQcm9jZXNzL3dlYnJ0
Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tZXNzYWdlcy5pbgogICAgIEdQVVByb2Nlc3Mvd2VicnRj
L1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIubWVzc2FnZXMuaW4KICAgICBH
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFn
ZXIubWVzc2FnZXMuaW4KQEAgLTE3MCwxMCArMTc1LDYgQEAgbGlzdChBUFBFTkQgV2ViS2l0X01F
U1NBR0VTX0lOX0ZJTEVTCiAgICAgR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXIubWVzc2FnZXMuaW4KICAgICBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCiAKLSAgICBHUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KLSAgICBHUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCi0gICAg
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgotICAgIAogICAgIE5ldHdvcmtQcm9jZXNzL0N1c3RvbVByb3RvY29scy9MZWdhY3lDdXN0b21Q
cm90b2NvbE1hbmFnZXIubWVzc2FnZXMuaW4KIAogICAgIFNoYXJlZC9BcHBsZVBheS9XZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgpJbmRleDogU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CShyZXZpc2lv
biAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC01MzQsMTEgKzUzNCwxMyBAQCBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1p
c3NpCiBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3Mv
R1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNSU1FVHlwZUNhY2hlLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFj
a1ByaXZhdGVSZW1vdGUuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZS5jcHAKK1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwCiBX
ZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAogV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcAogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01l
ZGlhUmVjb3JkZXJQcm92aWRlci5jcHAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQJKHJldmlz
aW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtNjQ3LDYgKzY0Nyw4IEBAIEdQVVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAKIEdQVVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwCiBMaWJXZWJSVENDb2RlY3NQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAKIExpYldlYlJUQ0NvZGVjc01lc3NhZ2VSZWNlaXZlci5jcHAKK1Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQXVk
aW9EZXN0aW5hdGlvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVNZWRpYVJl
Y29yZGVyTWVzc2FnZVJlY2VpdmVyLmNwcApJbmRleDogU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMjU3
Mjk3KQorKysgU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSAiTGliV2Vi
UlRDQ29kZWNzUHJveHkuaCIKICNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3NQcm94eU1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXJNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFu
YWdlci5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFu
YWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJNZXNzYWdlcy5oIgpAQCAtMTI3LDYgKzEyOSwxNCBAQCB2b2lkIEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmRpZFJlY2VpCiAgICAgQ1JBU0goKTsKIH0KIAorUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXImIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fcmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXIpCisgICAgICAgIG1fcmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIgPSBtYWtlVW5p
cXVlPFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyPigqdGhpcyk7CisKKyAgICByZXR1cm4g
Km1fcmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI7Cit9CisKIFJlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyJiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlcigpCiB7CiAgICAgaWYgKCFtX3JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKQpAQCAt
MTkxLDEzICsyMDEsMTkgQEAgTGliV2ViUlRDQ29kZWNzUHJveHkmIEdQVUNvbm5lY3Rpb25Ub1dl
YgogCiB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogeworICAg
IGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVk
aW9EZXN0aW5hdGlvbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBy
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcigpLmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlBy
b2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAg
aWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIHJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCkuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJv
Y2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0gZWxzZSBp
ZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlh
UGxheWVyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgIH0KKyAgICBpZiAoZGVj
b2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVy
UHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewogICAgICAgICByZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eSgpLmRpZFJlY2VpdmVQbGF5ZXJNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIpOwogICAgICAgICByZXR1cm47Ci0gICAgfSBlbHNlIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNl
aXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSkgeworICAgIH0KKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2
ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAgcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIoKS5k
aWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KQEAgLTI0Myw2ICsyNTksMTEgQEAgdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpkaWRSZWNlaQogCiB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVT
eW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVj
b2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKKyAg
ICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAg
cmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIoKS5kaWRSZWNlaXZlU3luY01lc3NhZ2VGcm9t
V2ViUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09
IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpKSB7CiAgICAgICAgIHJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCkuZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlF
bmNvZGVyKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCShyZXZpc2lvbiAyNTcyOTcp
CisrKyBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBj
bGFzcyBHUFVQcm9jZXNzOwogY2xhc3MgTGliV2ViUlRDQ29kZWNzUHJveHk7CitjbGFzcyBSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjsKIGNsYXNzIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWFuYWdlcjsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
OwogY2xhc3MgUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI7CkBAIC03OSw2ICs4MCw3IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhHUFVQcm9jZXNz
JiwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
ciwgUEFMOjpTZXNzaW9uSUQpOwogCisgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIm
IHJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKCk7CiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCk7CiAjaWYgUExBVEZP
Uk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCiAgICAgTGliV2ViUlRDQ29kZWNzUHJveHkmIGxp
YldlYlJUQ0NvZGVjc1Byb3h5KCk7CkBAIC0xMDMsNiArMTA1LDcgQEAgcHJpdmF0ZToKICAgICBS
ZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAgICAgUmVmPEdQVVByb2Nlc3M+IG1f
Z3B1UHJvY2VzczsKICAgICBjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBtX3dlYlBy
b2Nlc3NJZGVudGlmaWVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uTWFuYWdlcj4gbV9yZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI+IG1fcmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5PiBtX3JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OwogICAgIFBBTDo6U2Vzc2lvbklE
IG1fc2Vzc2lvbklEOwpJbmRleDogU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwCShub25l
eGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNzcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUg
IkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0J1c0Rh
dGEuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHlNZXNzYWdlcy5oIgor
I2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9CdXMuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0F1ZGlvSU9DYWxsYmFjay5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+Cisj
aW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL3RocmVh
ZHMvQmluYXJ5U2VtYXBob3JlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFJlbW90ZUF1
ZGlvRGVzdGluYXRpb24+LCBwdWJsaWMgV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrIHsKK3B1Ymxp
YzoKKyAgICB1c2luZyBBdWRpb0J1cyA9IFdlYkNvcmU6OkF1ZGlvQnVzOworICAgIHVzaW5nIEF1
ZGlvRGVzdGluYXRpb24gPSBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uOworICAgIHVzaW5nIFNo
YXJlZEJ1ZmZlciA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjsKKworICAgIHN0YXRpYyBSZWY8UmVt
b3RlQXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNv
bm5lY3Rpb24sIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIGlkLAorICAgICAgICBj
b25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVpbnQzMl90IG51bWJlck9mSW5wdXRDaGFubmVs
cywgdWludDMyX3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZUF1ZGlvRGVzdGluYXRpb24o
Y29ubmVjdGlvbiwgaWQsIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVt
YmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSkpOworICAgIH0KKworICAgIHZpcnR1YWwg
flJlbW90ZUF1ZGlvRGVzdGluYXRpb24oKQorICAgIHsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQo
IW1fZGVzdGluYXRpb24tPmlzUGxheWluZygpKTsKKyAgICB9CisKKyAgICB2b2lkIHNjaGVkdWxl
R3JhY2VmdWxTaHV0ZG93bklmTmVlZGVkKCkKKyAgICB7CisgICAgICAgIGlmICghaXNQbGF5aW5n
KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fcHJvdGVjdFRoaXNEdXJpbmdHcmFj
ZWZ1bFNodXRkb3duID0gdGhpczsKKyAgICAgICAgc3RvcCgpOworICAgIH0KKworICAgIHZvaWQg
c3RhcnQoKSB7IG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7IH0KKyAgICB2b2lkIHN0b3AoKSB7IG1f
ZGVzdGluYXRpb24tPnN0b3AoKTsgfQorICAgIGJvb2wgaXNQbGF5aW5nKCkgeyByZXR1cm4gbV9k
ZXN0aW5hdGlvbi0+aXNQbGF5aW5nKCk7IH0KKworcHJpdmF0ZToKKyAgICBSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIGlkLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQs
IHVpbnQzMl90IG51bWJlck9mSW5wdXRDaGFubmVscywgdWludDMyX3QgbnVtYmVyT2ZPdXRwdXRD
aGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKKyAgICAgICAgOiBtX2Nvbm5lY3Rpb24oY29ubmVj
dGlvbikKKyAgICAgICAgLCBtX2lkKGlkKQorICAgICAgICAsIG1fZGVzdGluYXRpb24oQXVkaW9E
ZXN0aW5hdGlvbjo6Y3JlYXRlKCp0aGlzLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hh
bm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpKQorICAgIHsKKyAgICB9
CisKKyAgICB2b2lkIHJlbmRlcihBdWRpb0J1cyogc291cmNlQnVzLCBBdWRpb0J1cyogZGVzdGlu
YXRpb25CdXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIG92ZXJyaWRlCisgICAgeworICAgICAg
ICBpZiAobV9wcm90ZWN0VGhpc0R1cmluZ0dyYWNlZnVsU2h1dGRvd24pCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7Cisg
ICAgICAgIEJpbmFyeVNlbWFwaG9yZSByZW5kZXJTZW1hcGhvcmU7CisKKyAgICAgICAgVmVjdG9y
PFJlZjxTaGFyZWRNZW1vcnk+PiBidWZmZXJzOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgZGVzdGluYXRpb25CdXMtPm51bWJlck9mQ2hhbm5lbHMoKTsgKytpKSB7CisgICAgICAg
ICAgICBhdXRvIG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6YWxsb2NhdGUoc2l6ZW9mKGZsb2F0KSAq
IGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAgICAgICBidWZmZXJzLmFwcGVuZCgqbWVtb3J5KTsK
KyAgICAgICAgfQorCisgICAgICAgIC8vIEZJWE1FOiBSZXBsYWNlIHRoaXMgY29kZSB3aXRoIGEg
cmluZyBidWZmZXIuIEF0IGxlYXN0IHRoaXMgaGFwcGVucyBpbiBhdWRpbyB0aHJlYWQuCisgICAg
ICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0
aGlzLCBmcmFtZXNUb1Byb2Nlc3MsICZidWZmZXJzLCAmcmVuZGVyU2VtYXBob3JlXSB7CisgICAg
ICAgICAgICBSZW1vdGVBdWRpb0J1c0RhdGEgYnVzRGF0YSB7IGZyYW1lc1RvUHJvY2VzcywgYnVm
ZmVycy5tYXAoW10oYXV0byYgbWVtb3J5KSB7IHJldHVybiBtZW1vcnkuY29weVJlZigpOyB9KSB9
OworICAgICAgICAgICAgQVNTRVJUKGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAgICAgICBtX2Nv
bm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5OjpSZW5kZXJCdWZmZXIoYnVzRGF0YSksIFsmXSgpIHsKKyAg
ICAgICAgICAgICAgICByZW5kZXJTZW1hcGhvcmUuc2lnbmFsKCk7CisgICAgICAgICAgICB9LCBt
X2lkLnRvVUludDY0KCkpOworICAgICAgICB9KTsKKyAgICAgICAgcmVuZGVyU2VtYXBob3JlLndh
aXQoKTsKKworICAgICAgICBhdXRvIGF1ZGlvQnVzID0gQXVkaW9CdXM6OmNyZWF0ZShidWZmZXJz
LnNpemUoKSwgZnJhbWVzVG9Qcm9jZXNzLCBmYWxzZSk7CisgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBidWZmZXJzLnNpemUoKTsgKytpKQorICAgICAgICAgICAgYXVkaW9CdXMtPnNl
dENoYW5uZWxNZW1vcnkoaSwgKGZsb2F0KilidWZmZXJzW2ldLT5kYXRhKCksIGZyYW1lc1RvUHJv
Y2Vzcyk7CisgICAgICAgIGRlc3RpbmF0aW9uQnVzLT5jb3B5RnJvbSgqYXVkaW9CdXMpOworICAg
IH0KKworICAgIHZvaWQgaXNQbGF5aW5nRGlkQ2hhbmdlKCkgb3ZlcnJpZGUKKyAgICB7CisgICAg
ICAgIGlmIChtX3Byb3RlY3RUaGlzRHVyaW5nR3JhY2VmdWxTaHV0ZG93bikgeworICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlQoIW1fZGVzdGluYXRpb24tPmlzUGxheWluZygpKTsKKyAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKHJlZkNvdW50KCkgPT0gMSk7CisgICAgICAgICAgICBtX3Byb3Rl
Y3RUaGlzRHVyaW5nR3JhY2VmdWxTaHV0ZG93biA9IG51bGxwdHI7IC8vIERlbGV0ZXMgInRoaXMi
LgorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGNhbGxPbk1haW5UaHJl
YWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaXNQbGF5aW5nID0gbV9k
ZXN0aW5hdGlvbi0+aXNQbGF5aW5nKCksIGlkID0gbV9pZC50b1VJbnQ2NCgpXSB7CisgICAgICAg
ICAgICBtX2Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eTo6RGlkQ2hhbmdlSXNQbGF5aW5nKGlzUGxheWluZyksIGlkKTsKKyAg
ICAgICAgfSk7CisgICAgfQorCisgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9jb25u
ZWN0aW9uOworICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIG1faWQ7CisgICAg
c3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IG1fZGVzdGluYXRpb247CisgICAgUmVm
UHRyPFJlbW90ZUF1ZGlvRGVzdGluYXRpb24+IG1fcHJvdGVjdFRoaXNEdXJpbmdHcmFjZWZ1bFNo
dXRkb3duOworfTsKKworUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OlJlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24p
CisgICAgOiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVjdGlvbikKK3sKK30KKwor
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6On5SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlcigpID0gZGVmYXVsdDsKKwordm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6
Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVpbnQz
Ml90IG51bWJlck9mSW5wdXRDaGFubmVscywgdWludDMyX3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVs
cywgZmxvYXQgc2FtcGxlUmF0ZSwKKyAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBh
dXRvIG5ld0lEID0gUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXI6OmdlbmVyYXRlVGhy
ZWFkU2FmZSgpOworICAgIGF1dG8gY2FsbGJhY2sgPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uOjpj
cmVhdGUobV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBuZXdJRCwgaW5wdXREZXZpY2VJZCwg
bnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRl
KTsKKyAgICBtX2F1ZGlvRGVzdGluYXRpb25zLmFkZChuZXdJRCwgV1RGTW92ZShjYWxsYmFjaykp
OworICAgIGNvbXBsZXRpb25IYW5kbGVyKG5ld0lEKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlcjo6ZGVsZXRlQXVkaW9EZXN0aW5hdGlvbihSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uSWRlbnRpZmllciBpZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIGF1dG8gZGVzdGluYXRpb24gPSBtX2F1ZGlvRGVzdGluYXRpb25z
LnRha2UoaWQpOworICAgIGlmIChkZXN0aW5hdGlvbikKKyAgICAgICAgZGVzdGluYXRpb24udmFs
dWUoKS0+c2NoZWR1bGVHcmFjZWZ1bFNodXRkb3duSWZOZWVkZWQoKTsKKyAgICBjb21wbGV0aW9u
SGFuZGxlcigpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpzdGFy
dEF1ZGlvRGVzdGluYXRpb24oUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgaWQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAg
Ym9vbCBpc1BsYXlpbmcgPSBmYWxzZTsKKyAgICBpZiAoYXV0byogaXRlbSA9IG1fYXVkaW9EZXN0
aW5hdGlvbnMuZ2V0KGlkKSkgeworICAgICAgICBpdGVtLT5zdGFydCgpOworICAgICAgICBpc1Bs
YXlpbmcgPSBpdGVtLT5pc1BsYXlpbmcoKTsKKyAgICB9CisgICAgY29tcGxldGlvbkhhbmRsZXIo
aXNQbGF5aW5nKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6c3Rv
cEF1ZGlvRGVzdGluYXRpb24oUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgaWQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAg
Ym9vbCBpc1BsYXlpbmcgPSBmYWxzZTsKKyAgICBpZiAoYXV0byogaXRlbSA9IG1fYXVkaW9EZXN0
aW5hdGlvbnMuZ2V0KGlkKSkgeworICAgICAgICBpdGVtLT5zdG9wKCk7CisgICAgICAgIGlzUGxh
eWluZyA9IGl0ZW0tPmlzUGxheWluZygpOworICAgIH0KKyAgICBjb21wbGV0aW9uSGFuZGxlcihp
c1BsYXlpbmcpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCkluZGV4OiBT
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVk
ZSAiUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRN
ZW1vcnkuaCIKKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5k
bGVyLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CitjbGFzcyBSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uOworCitjbGFzcyBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlciA6IHByaXZhdGUg
SVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKTsKK3B1
YmxpYzoKKyAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcihHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJik7CisgICAgflJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKCk7CisKKyAg
ICB2b2lkIGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlk
LCB1aW50MzJfdCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVpbnQzMl90IG51bWJlck9mT3V0cHV0
Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIpPiYmKTsKKyAgICB2b2lkIGRlbGV0ZUF1ZGlvRGVz
dGluYXRpb24oUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzdGFydEF1ZGlvRGVzdGluYXRpb24oUmVtb3RlQXVk
aW9EZXN0aW5hdGlvbklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OworICAgIHZvaWQgc3RvcEF1ZGlvRGVzdGluYXRpb24oUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworCisgICAgdm9pZCBk
aWRSZWNlaXZlU3luY01lc3NhZ2VGcm9tV2ViUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rl
cj4mIGVuY29kZXIpCisgICAgeworICAgICAgICBkaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVj
dGlvbiwgZGVjb2RlciwgZW5jb2Rlcik7CisgICAgfQorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2VGcm9tV2ViUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2Rl
ciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQor
Citwcml2YXRlOgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKTsK
KworICAgIEhhc2hNYXA8UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIsIFJlZjxSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uPj4gbV9hdWRpb0Rlc3RpbmF0aW9uczsKKyAgICBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzJiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlOworCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4JKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2Vz
LmluCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzcgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+
IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworCisgICAgQ3Jl
YXRlQXVkaW9EZXN0aW5hdGlvbihTdHJpbmcgaW5wdXREZXZpY2VJZCwgdWludDMyX3QgbnVtYmVy
T2ZJbnB1dENoYW5uZWxzLCB1aW50MzJfdCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBz
YW1wbGVSYXRlKSAtPiAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBp
ZCkgU3luY2hyb25vdXMKKworICAgIERlbGV0ZUF1ZGlvRGVzdGluYXRpb24oV2ViS2l0OjpSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBpZCkgLT4gKCkgQXN5bmMKKworICAgIFN0YXJ0
QXVkaW9EZXN0aW5hdGlvbihXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVy
IGlkKSAtPiAoYm9vbCBpc1BsYXlpbmcpIFN5bmNocm9ub3VzCisgICAgU3RvcEF1ZGlvRGVzdGlu
YXRpb24oV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBpZCkgLT4gKGJv
b2wgaXNQbGF5aW5nKSBTeW5jaHJvbm91cworCit9CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
c1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0OCwxMSBAQCBQYXN0ZWJvYXJkU3RyYXRlZ3kqIE5ldHdv
cmtQcm9jZXNzUGxhdGZvCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK01lZGlhU3RyYXRlZ3kq
IE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVNZWRpYVN0cmF0ZWd5KCkK
K3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogQmxvYlJlZ2lzdHJ5KiBOZXR3b3JrUHJvY2Vz
c1BsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKIHsKICAgICB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHJl
dmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBA
QCBwcml2YXRlOgogICAgIC8vIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcwogICAgIFdlYkNv
cmU6OkxvYWRlclN0cmF0ZWd5KiBjcmVhdGVMb2FkZXJTdHJhdGVneSgpIG92ZXJyaWRlOwogICAg
IFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVneSogY3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkg
b3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6TWVkaWFTdHJhdGVneSogY3JlYXRlTWVkaWFTdHJhdGVn
eSgpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkJsb2JSZWdpc3RyeSogY3JlYXRlQmxvYlJlZ2lz
dHJ5KCkgb3ZlcnJpZGU7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXMucHkJKHdvcmtpbmcgY29weSkKQEAgLTIyNyw2ICsyMjcsNyBAQCBkZWYg
dHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlCiAgICAgICAgICdXZWJLaXQ6Ok1E
TlNSZWdpc3RlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6TWVkaWFSZWNvcmRlcklkZW50
aWZpZXInLAorICAgICAgICAnV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmll
cicsCiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyJywKICAg
ICAgICAgJ1dlYktpdDo6UlRDRGVjb2RlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpS
VENFbmNvZGVySWRlbnRpZmllcicsCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
U2hhcmVkL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmgJKG5vbmV4aXN0ZW50KQor
KysgU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRl
bnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uSWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklk
ZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlm
aWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24g
MjU3Mjk3KQorKysgU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtMTQwNSw4ICsxNDA1LDE0IEBACiAJCTlCMDJFMENCMjM1RUI5
NTMwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDJFMEM5MjM1RUI2MkQwMDQwNDRC
MiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjAyRTBDQzIzNUVCOTU3MDA0MDQ0QjIgLyog
X1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDlCMDJFMENBMjM1RUI4ODQwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1
bGF0aW9uSXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTlCMDJFMEQ3MjM1RkM5NEYwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uVG9r
ZW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDJF
MENEMjM1RUI5NjcwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5QjEyMjlDRDIzRkYy
NUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMTIyOUNCMjNGRjI1RjIwMDhD
QTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oICovOyB9OworCQk5QjEyMjlD
RTIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIxMjI5Q0MyM0ZG
MjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCAqLzsgfTsK
KwkJOUIxMjI5RDIyM0ZGMkJDQzAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVu
dGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
QjEyMjlEMDIzRkYyQTVFMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZp
ZXIuaCAqLzsgfTsKIAkJOUI1NDk5QUQyMzYyQTZGOTAwREY4QkE1IC8qIF9XS1RleHRNYW5pcHVs
YXRpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5QjU0OTlBQzIzNjJBNkY2MDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlv
bkNvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5QjU0OTlCMjIzNjJBN0VDMDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlv
bkV4Y2x1c2lvblJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDlCNTQ5OUIwMjM2MkE3RUMwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRXhj
bHVzaW9uUnVsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTlCNUJFQzI2MjQwMEY0QTkwMDcwQzZFRiAvKiBXZWJNZWRpYVN0cmF0ZWd5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjVCRUMyNDI0MDBG
NEE5MDA3MEM2RUYgLyogV2ViTWVkaWFTdHJhdGVneS5oICovOyB9OworCQk5QjVCRUMyQTI0MDEw
MTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjVCRUMyODI0MDEwMTU4MDA3MEM2
RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmggKi87IH07CisJCTlCNUJFQzMxMjQw
MTAyMjIwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0J1c0RhdGEuaCBpbiBDb3B5RmlsZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI1QkVDMzAyNDAxMDIyMjAwNzBDNkVGIC8q
IFJlbW90ZUF1ZGlvQnVzRGF0YS5oICovOyB9OwogCQk5RkI1RjM5NTE2OUU2QTgwMDAyQzI1QkYg
LyogV0tDb250ZXh0UHJpdmF0ZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOUZCNUYzOTMxNjlFNkE4MDAwMkMyNUJGIC8qIFdLQ29udGV4dFByaXZh
dGVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlBMTAyQTcwODFFQzBFRUU5MDBEODFEODIgLyogY29tLm1hY3JvbWVkaWEuRmxhc2ggUGxheWVy
IEVTUi5wbHVnaW4uc2IgaW4gQ29weSBQbHVnLWluIFNhbmRib3ggUHJvZmlsZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E1RTM5NDkxRDVCRDhBNzAwQjRCN0NFIC8qIGNv
bS5tYWNyb21lZGlhLkZsYXNoIFBsYXllciBFU1IucGx1Z2luLnNiICovOyB9OwogCQlBMTA0NkVB
MTIwNzkyNjMxMDBGMEM1RDggLyogV0tQREZWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTA0NkU5RjIwNzkyNjMxMDBGMEM1RDggLyogV0tQREZW
aWV3LmggKi87IH07CkBAIC0yMDYxLDYgKzIwNjcsNyBAQAogCQkJCTJEQjk2MDUzMjM5ODg2QzEw
MDEwMjc5MSAvKiBjb20uYXBwbGUuV2ViS2l0LkdQVS5zYiBpbiBDb3B5RmlsZXMgKi8sCiAJCQkJ
QTc4Q0NEREIxOTNBQzlGODAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5z
YiBpbiBDb3B5RmlsZXMgKi8sCiAJCQkJQTc4Q0NEREMxOTNBQzlGQjAwNUVDQzI1IC8qIGNvbS5h
cHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYiBpbiBDb3B5RmlsZXMgKi8sCisJCQkJOUI1QkVDMzEy
NDAxMDIyMjAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvQnVzRGF0YS5oIGluIENvcHlGaWxlcyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
QEAgLTQzODMsMTAgKzQzOTAsMjAgQEAKIAkJOUIwMkUwQ0QyMzVFQjk2NzAwNDA0NEIyIC8qIF9X
S1RleHRNYW5pcHVsYXRpb25Ub2tlbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0
aW9uVG9rZW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwMkUwQ0UyMzVFQkIx
NDAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOUIwMkUwRDAyMzVFQkNDQTAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25J
dGVtLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0ubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCMTIyOUNCMjNGRjI1RjIwMDhDQTc1MSAv
KiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
QjEyMjlDQzIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjEyMjlDRjIzRkYyODE0MDA4Q0E3NTEg
LyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTlCMTIyOUQwMjNGRjJBNUUwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRl
bnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjU0OTlBQzIzNjJBNkY2
MDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOUI1NDk5QUUyMzYyQTdBNzAwREY4QkE1IC8qIF9XS1RleHRNYW5pcHVs
YXRpb25Db25maWd1cmF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLVGV4dE1hbmlw
dWxhdGlvbkNvbmZpZ3VyYXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlC
NTQ5OUIwMjM2MkE3RUMwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVs
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjU0OTlCMTIzNjJBN0VDMDBERjhCQTUgLyog
X1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOUI1QkVDMjQyNDAwRjRBOTAwNzBDNkVGIC8qIFdlYk1lZGlhU3RyYXRlZ3ku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViTWVkaWFTdHJhdGVneS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5QjVCRUMyNTI0MDBGNEE5MDA3MEM2RUYgLyogV2ViTWVkaWFTdHJhdGVneS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJNZWRpYVN0cmF0ZWd5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOUI1QkVDMjgyNDAxMDE1ODAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUI1QkVDMjkyNDAxMDE1ODAw
NzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5QjVCRUMyRTI0MDEwMThDMDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUI1QkVDMzAyNDAxMDIy
MjAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvQnVzRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVB
dWRpb0J1c0RhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUJDNTlENkMxRUZD
Q0NCNjAwMUU4RDA5IC8qIENhbGxiYWNrSUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ2FsbGJhY2tJRC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QkM1OUQ2
RDFFRkNEQzZEMDAxRThEMDkgLyogT3B0aW9uYWxDYWxsYmFja0lELmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE9wdGlvbmFsQ2FsbGJhY2tJRC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5RjU0Rjg4RTE2NDg4RTg3MDA3REY4MUEgLyogQXV4aWxpYXJ5UHJvY2Vz
c01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEF1eGlsaWFy
eVByb2Nlc3NNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MjY4LDYgKzUy
ODUsMTAgQEAKIAkJCQkwNzkyMzEzMjIzOUIzQjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmggKi8sCiAJCQkJMDdCMUQwNEIyM0QzOEZDRTAwMzk5QTZFIC8qIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbiAqLywKIAkJCQkwNzkyMzE0RTIzOUQ1RjUzMDA5
NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oICovLAorCQkJCTlC
NUJFQzMwMjQwMTAyMjIwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0J1c0RhdGEuaCAqLywKKwkJCQk5
QjVCRUMyOTI0MDEwMTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNw
cCAqLywKKwkJCQk5QjVCRUMyODI0MDEwMTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5LmggKi8sCisJCQkJOUI1QkVDMkUyNDAxMDE4QzAwNzBDNkVGIC8qIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQkwN0I5M0ZGNTIzQUYwQ0I4
MDAzNkY4RUEgLyogUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJMDc5
MjMxMzAyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgKi8s
CiAJCQkJMDc5MjMxMzQyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
ci5oICovLApAQCAtNTI4Myw2ICs1MzA0LDggQEAKIAkJCQkxREZERDBFMjIzRjYxMEYwMDBFOUI0
OTAgLyogVmlkZW9MYXllclJlbW90ZS5oICovLAogCQkJCTA3MUJDNTgzMjNDQzJCRDUwMDY4MEQ3
QyAvKiBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCiAJCQkJMDcxQkM1ODIyM0NDMkJE
MzAwNjgwRDdDIC8qIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmggKi8sCisJCQkJOUI1QkVDMjUy
NDAwRjRBOTAwNzBDNkVGIC8qIFdlYk1lZGlhU3RyYXRlZ3kuY3BwICovLAorCQkJCTlCNUJFQzI0
MjQwMEY0QTkwMDcwQzZFRiAvKiBXZWJNZWRpYVN0cmF0ZWd5LmggKi8sCiAJCQkpOwogCQkJcGF0
aCA9IG1lZGlhOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTUyOTEsNiArNTMxNCw5
IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTFEMEVDRUE5MjNG
Qzg0QkIwMEQxNzJGNiAvKiBjb2NvYSAqLywKKwkJCQk5QjEyMjlDQzIzRkYyNUYyMDA4Q0E3NTEg
LyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwICovLAorCQkJCTlCMTIyOUNCMjNG
RjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oICovLAorCQkJ
CTlCMTIyOUNGMjNGRjI4MTQwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
ci5tZXNzYWdlcy5pbiAqLywKIAkJCQkwNzFCQzU3RTIzQ0E1REIxMDA2ODBEN0MgLyogUmVtb3Rl
QXVkaW9UcmFja1Byb3h5LmNwcCAqLywKIAkJCQkwNzFCQzU3RjIzQ0E1REIxMDA2ODBEN0MgLyog
UmVtb3RlQXVkaW9UcmFja1Byb3h5LmggKi8sCiAJCQkJMDcyNUVGQUQyMzlCMDI0NTAwQTUzOEE5
IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcCAqLywKQEAgLTU3NTEsNiArNTc3
Nyw3IEBACiAJCQkJRTE4QzkyRjMxMkRCOUU3MTAwQ0YyQUVCIC8qIFByaW50SW5mby5jcHAgKi8s
CiAJCQkJRTFDQzFCOEUxMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5mby5oICovLAogCQkJCTQ2
M0ZENDgxMUVCOTRFQUQwMEEyOTgyQyAvKiBQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCAqLywK
KwkJCQk5QjEyMjlEMDIzRkYyQTVFMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklk
ZW50aWZpZXIuaCAqLywKIAkJCQlGNkEwQzEzRjEzMjgxRTZFMDA3MDQzMEYgLyogUmVzb3VyY2VD
YWNoZXNUb0NsZWFyLmggKi8sCiAJCQkJNUNCN0FGRTYyM0M2ODFCMDAwRTQ5Q0YzIC8qIFJlc291
cmNlTG9hZEluZm8uaCAqLywKIAkJCQk0MTA0ODJDQjFEREQyRkI1MDBGMDA2RDAgLyogUlRDTmV0
d29yay5jcHAgKi8sCkBAIC0xMDUyOCw2ICsxMDU1NSw5IEBACiAJCQkJODMwNDhBRTYxQUNBNDVE
QzAwODJDODMyIC8qIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUExRTY4ODcwMUY2RTJCQUIwMDcwMDZBNiAvKiBRdWFyYW50aW5lU1BJLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1N0ZEMzE4MjIyQjM1MTVFMDA4RDBFOEIgLyogUmVkaXJlY3RTT0F1dGhvcml6YXRp
b25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5QjEyMjlEMjIzRkYyQkNDMDA4Q0E3NTEg
LyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTlCMTIyOUNEMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUI1QkVDMkEyNDAxMDE1ODAwNzBDNkVGIC8qIFJlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ0N0I1NkQxODEw
NzE0RTAwM0EzQUVFIC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkyRERGNzMxNTE4RTk1MDYwMDA0RjVBNjYgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVD
b2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUIxNkFFQTE2NEIzQTg4MDAyOTBENjIg
LyogUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDc4MCw2ICsx
MDgxMCw3IEBACiAJCQkJQzk4QzQ4QTYxQjZGRDRDMzAwMTQ1MTAzIC8qIFdlYk1lZGlhU2Vzc2lv
bkZvY3VzTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzlDMTgzM0MxQjc0MDI2RDAwNzAz
NkE3IC8qIFdlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQzlDRDQzOTgxQjRCMDAxRDAwMjM5RTMzIC8qIFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRh
LmggaW4gSGVhZGVycyAqLywKKwkJCQk5QjVCRUMyNjI0MDBGNEE5MDA3MEM2RUYgLyogV2ViTWVk
aWFTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQzRUY0NDMxOTE3NjQ2MzAwMDM0MTg0
IC8qIFdlYk1lbW9yeVByZXNzdXJlSGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTA5ODU0
RUQxMkJDNEUxODAwMEFEMDgwIC8qIFdlYk1lbW9yeVNhbXBsZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxM0ZGQjkxMjAxNDU5QzYwMDI1OTZFQSAvKiBXZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92
aWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjIyNCw2ICsxMjI1NSw3IEBACiAJCQkJQzE1Q0JC
MzcyM0YzN0VDQjAwMzAwQ0M3IC8qIFByZWZlcmVuY2VPYnNlcnZlci5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTJENTRDMzFCMjEyRjREQTYwMDQ5QzE3NCAvKiBQcm9jZXNzTGF1bmNoZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0QyODY1RUYyMjU1NTYyMDAwNjA2QUM3IC8qIFByb2Nlc3NUYXNr
U3RhdGVPYnNlcnZlci5tbSBpbiBTb3VyY2VzICovLAorCQkJCTlCMTIyOUNFMjNGRjI1RjIwMDhD
QTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkyRDcyQTFGQTIxMkJGNDZFMDA1MTdBMjAgLyogUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRkYyNEEyRDE4NzlFNEJDMDAzQUJGMEMgLyogUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyREMxOEZCNDIxOEE2RTlFMDAyNUE4OEQgLyogUmVtb3RlTGF5ZXJUcmVlVmll
d3MubW0gaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCShyZXZpc2lvbiAyNTcyOTcpCisr
KyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsOCBAQAogI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVj
cy5oIgogI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHlN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIgogI2luY2x1
ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZXMuaCIKQEAgLTc3LDYgKzc5LDkgQEAgU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlciYgR1BVUHJvYwogCiB2b2lkIEdQVVByb2Nlc3NDb25uZWN0
aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6
RGVjb2RlciYgZGVjb2RlcikKIHsKKyAgICBpZiAobV9yZWNlaXZlck1hcC5kaXNwYXRjaE1lc3Nh
Z2UoY29ubmVjdGlvbiwgZGVjb2RlcikpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmIChkZWNv
ZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuc3VwcGxlbWVudDxSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI+KCktPmRpZFJlY2Vp
dmVQbGF5ZXJNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogICAgICAgICByZXR1cm47Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29u
bmVjdGlvbi5oCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcg
QEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisj
aW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyTWFwLmgiCiAjaW5jbHVkZSAiU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlci5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC01Niw2ICs1NywxNiBAQCBwdWJsaWM6CiAgICAg
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciYgc2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TWFuYWdlcigpOwogI2VuZGlmCiAKKyAgICB2b2lkIGFkZE1lc3NhZ2VSZWNlaXZlcihJUEM6OlN0
cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklE
LCBJUEM6Ok1lc3NhZ2VSZWNlaXZlciYgcmVjZWl2ZXIpCisgICAgeworICAgICAgICBtX3JlY2Vp
dmVyTWFwLmFkZE1lc3NhZ2VSZWNlaXZlcihtZXNzYWdlUmVjZWl2ZXJOYW1lLCBkZXN0aW5hdGlv
bklELCByZWNlaXZlcik7CisgICAgfQorCisgICAgdm9pZCByZW1vdmVNZXNzYWdlUmVjZWl2ZXIo
SVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgdWludDY0X3QgZGVzdGlu
YXRpb25JRCkKKyAgICB7CisgICAgICAgIG1fcmVjZWl2ZXJNYXAucmVtb3ZlTWVzc2FnZVJlY2Vp
dmVyKG1lc3NhZ2VSZWNlaXZlck5hbWUsIGRlc3RpbmF0aW9uSUQpOworICAgIH0KKwogcHJpdmF0
ZToKICAgICBHUFVQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIp
OwogCkBAIC02Niw2ICs3Nyw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBUaGUgY29ubmVjdGlvbiBm
cm9tIHRoZSB3ZWIgcHJvY2VzcyB0byB0aGUgR1BVIHByb2Nlc3MuCiAgICAgUmVmPElQQzo6Q29u
bmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIElQQzo6TWVzc2FnZVJlY2VpdmVyTWFwIG1fcmVj
ZWl2ZXJNYXA7CiAKICNpZiBIQVZFKEFVRElUX1RPS0VOKQogICAgIE9wdGlvbmFsPGF1ZGl0X3Rv
a2VuX3Q+IG1fYXVkaXRUb2tlbjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9CdXNEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0J1c0RhdGEuaAkobm9uZXhpc3RlbnQpCisr
KyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvQnVzRGF0YS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2Uu
aCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiU2hh
cmVkTWVtb3J5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK3N0cnVjdCBSZW1vdGVBdWRpb0J1c0RhdGEgeworICAgIHVpbnQ2NF90
IGZyYW1lc1RvUHJvY2VzcyB7IDAgfTsKKyAgICBWZWN0b3I8UmVmPFNoYXJlZE1lbW9yeT4+IGNo
YW5uZWxCdWZmZXJzOworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KKyAgICB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8
PCBmcmFtZXNUb1Byb2Nlc3M7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0
X3Q+KGNoYW5uZWxCdWZmZXJzLnNpemUoKSk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgY2hhbm5lbEJ1ZmZlcnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIFNoYXJlZE1lbW9y
eTo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgICAgIGNoYW5uZWxCdWZmZXJzW2ldLT5jcmVhdGVI
YW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRXcml0ZSk7CisgICAg
ICAgICAgICBlbmNvZGVyIDw8IGhhbmRsZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHRlbXBs
YXRlPHR5cGVuYW1lIERlY29kZXI+CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImIGRl
Y29kZXIsIFJlbW90ZUF1ZGlvQnVzRGF0YSYgcmVzdWx0KQorICAgIHsKKyAgICAgICAgdWludDY0
X3QgZnJhbWVzVG9Qcm9jZXNzOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGZyYW1lc1Rv
UHJvY2VzcykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJlc3VsdC5mcmFt
ZXNUb1Byb2Nlc3MgPSBmcmFtZXNUb1Byb2Nlc3M7CisKKyAgICAgICAgdWludDY0X3Qgc2l6ZSA9
IDA7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZSkpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsK
KyAgICAgICAgICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoaGFuZGxlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgICAgICBhdXRvIG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRsZSwgU2hh
cmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkV3JpdGUpOworICAgICAgICAgICAgaWYgKG1lbW9y
eSkKKyAgICAgICAgICAgICAgICByZXN1bHQuY2hhbm5lbEJ1ZmZlcnMuYXBwZW5kKCptZW1vcnkp
OworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5LmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxMDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAi
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvQXVkaW9CdXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGlu
YXRpb24uaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIEF1ZGlvQnVzID0gV2ViQ29y
ZTo6QXVkaW9CdXM7Cit1c2luZyBBdWRpb0Rlc3RpbmF0aW9uID0gV2ViQ29yZTo6QXVkaW9EZXN0
aW5hdGlvbjsKK3VzaW5nIEF1ZGlvSU9DYWxsYmFjayA9IFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFj
azsKKworc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eTo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssCisgICAgY29uc3Qg
U3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVu
c2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCit7CisgICAg
cmV0dXJuIG1ha2VVbmlxdWU8UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5PihjYWxsYmFjaywg
aW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5u
ZWxzLCBzYW1wbGVSYXRlKTsKK30KKworUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3Qg
U3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVu
c2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCisgICAgOiBt
X2NhbGxiYWNrKGNhbGxiYWNrKQorICAgICwgbV9zYW1wbGVSYXRlKHNhbXBsZVJhdGUpCit7Cisg
ICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgZGVzdGluYXRpb25JRDsKKworICAg
IGF1dG8mIGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9j
ZXNzQ29ubmVjdGlvbigpOworICAgIGNvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmRTeW5jKAor
ICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OkNyZWF0ZUF1
ZGlvRGVzdGluYXRpb24oaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1i
ZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKSwKKyAgICAgICAgTWVzc2FnZXM6OlJlbW90
ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpDcmVhdGVBdWRpb0Rlc3RpbmF0aW9uOjpSZXBseShk
ZXN0aW5hdGlvbklEKSwgMCk7CisgICAgY29ubmVjdGlvbi5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVz
c2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
LCBkZXN0aW5hdGlvbklELnRvVUludDY0KCksICp0aGlzKTsKKworICAgIG1fZGVzdGluYXRpb25J
RCA9IGRlc3RpbmF0aW9uSUQ7Cit9CisKK1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6flJl
bW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSgpCit7CisgICAgYXV0byYgY29ubmVjdGlvbiA9ICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpOworICAg
IGNvbm5lY3Rpb24ucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9kZXN0aW5hdGlvbklELnRv
VUludDY0KCkpOworCisgICAgY29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1Jl
cGx5KAorICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OkRl
bGV0ZUF1ZGlvRGVzdGluYXRpb24obV9kZXN0aW5hdGlvbklEKSwgW10geworICAgICAgICAvLyBD
YW4ndCByZW1vdmUgdGhpcyBmcm9tIHByb3h5TWFwKCkgaGVyZSBiZWNhdXNlIHRoZSBvYmplY3Qg
d291bGQgaGF2ZSBiZWVuIGFscmVhZHkgZGVsZXRlZC4KKyAgICB9KTsKK30KKwordm9pZCBSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0YXJ0KCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3lu
YygKKyAgICAgICAgTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpTdGFy
dEF1ZGlvRGVzdGluYXRpb24obV9kZXN0aW5hdGlvbklEKSwKKyAgICAgICAgTWVzc2FnZXM6OlJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpTdGFydEF1ZGlvRGVzdGluYXRpb246OlJlcGx5
KG1faXNQbGF5aW5nKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5
OjpzdG9wKCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNz
Q29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYygKKyAgICAgICAgTWVzc2FnZXM6OlJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpTdG9wQXVkaW9EZXN0aW5hdGlvbihtX2Rlc3Rp
bmF0aW9uSUQpLAorICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXI6OlN0b3BBdWRpb0Rlc3RpbmF0aW9uOjpSZXBseShtX2lzUGxheWluZyksIDApOworfQorCit2
b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6cmVuZGVyQnVmZmVyKGNvbnN0IFdlYktp
dDo6UmVtb3RlQXVkaW9CdXNEYXRhJiBhdWRpb0J1c0RhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoYXVkaW9CdXNEYXRhLmZy
YW1lc1RvUHJvY2Vzcyk7CisgICAgQVNTRVJUKGF1ZGlvQnVzRGF0YS5jaGFubmVsQnVmZmVycy5z
aXplKCkpOworICAgIGF1dG8gYXVkaW9CdXMgPSBBdWRpb0J1czo6Y3JlYXRlKGF1ZGlvQnVzRGF0
YS5jaGFubmVsQnVmZmVycy5zaXplKCksIGF1ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3MsIGZh
bHNlKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYXVkaW9CdXNEYXRhLmNoYW5uZWxC
dWZmZXJzLnNpemUoKTsgKytpKQorICAgICAgICBhdWRpb0J1cy0+c2V0Q2hhbm5lbE1lbW9yeShp
LCAoZmxvYXQqKWF1ZGlvQnVzRGF0YS5jaGFubmVsQnVmZmVyc1tpXS0+ZGF0YSgpLCBhdWRpb0J1
c0RhdGEuZnJhbWVzVG9Qcm9jZXNzKTsKKworICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIGF1ZGlv
QnVzLmdldCgpLCBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzKTsKKworICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpkaWRD
aGFuZ2VJc1BsYXlpbmcoYm9vbCBpc1BsYXlpbmcpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaAkobm9u
ZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2lu
Y2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0J1c0RhdGEuaCIKKyNp
bmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIldl
YlByb2Nlc3NTdXBwbGVtZW50LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb0Rlc3RpbmF0aW9u
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb0lPQ2FsbGJhY2suaD4KKworI2lmIFBMQVRGT1JN
KENPQ09BKQorI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CisjZW5kaWYKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSA6IHB1
YmxpYyBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uLCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2Vp
dmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkpOworcHVibGljOgorICAgIHVzaW5nIEF1
ZGlvQnVzID0gV2ViQ29yZTo6QXVkaW9CdXM7CisgICAgdXNpbmcgQXVkaW9JT0NhbGxiYWNrID0g
V2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrOworCisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxB
dWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBp
bnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51
bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpOworCisgICAgUmVtb3RlQXVk
aW9EZXN0aW5hdGlvblByb3h5KEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYgaW5wdXRE
ZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJP
Zk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsKKyAgICB+UmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5KCk7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUdQVVByb2Nl
c3MoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpIHsg
ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7IH0KKworICAgIHZvaWQgcmVu
ZGVyQnVmZmVyKGNvbnN0IFdlYktpdDo6UmVtb3RlQXVkaW9CdXNEYXRhJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIGRpZENoYW5nZUlzUGxheWluZyhib29sIGlzUGxh
eWluZyk7CisKK3ByaXZhdGU6CisgICAgLy8gV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbgorICAg
IHZvaWQgc3RhcnQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICBi
b29sIGlzUGxheWluZygpIG92ZXJyaWRlIHsgcmV0dXJuIG1faXNQbGF5aW5nOyB9CisgICAgZmxv
YXQgc2FtcGxlUmF0ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2FtcGxlUmF0ZTsgfQor
CisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgQXVkaW9JT0Nh
bGxiYWNrJiBtX2NhbGxiYWNrOworICAgIGZsb2F0IG1fc2FtcGxlUmF0ZTsKKyAgICBSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBtX2Rlc3RpbmF0aW9uSUQ7CisgICAgYm9vbCBtX2lz
UGxheWluZyB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5tZXNzYWdlcy5p
bgkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDMzIEBACisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisj
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkgTm90UmVmQ291bnRlZCB7CisKKyAgICBSZW5kZXJCdWZmZXIoc3RydWN0IFdlYktpdDo6
UmVtb3RlQXVkaW9CdXNEYXRhIGRhdGEpIC0+ICgpIEFzeW5jCisgICAgRGlkQ2hhbmdlSXNQbGF5
aW5nKGJvb2wgaXNQbGF5aW5nKQorCit9CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVS
ZW1vdGUuY3BwCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzcsMjEgKzEzNywyMSBAQCB2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OmFkZERhdGFDdWVX
CiB7CiAgICAgQVNTRVJUKGNsaWVudCgpKTsKICAgICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+
Y2xpZW50KCkpCi0gICAgICAgIGNsaWVudC0+YWRkRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RG
TW92ZShlbmQpLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShkYXRh
VmFsdWUpKSwgdHlwZSk7CisgICAgICAgIGNsaWVudC0+YWRkRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0
KSwgV1RGTW92ZShlbmQpLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVh
dGUoV1RGTW92ZShkYXRhVmFsdWUpKSwgdHlwZSk7CiB9CiAKIHZvaWQgVGV4dFRyYWNrUHJpdmF0
ZVJlbW90ZTo6dXBkYXRlRGF0YUN1ZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5k
LCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiBkYXRhVmFsdWUpCiB7CiAgICAgQVNT
RVJUKGNsaWVudCgpKTsKICAgICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCi0g
ICAgICAgIGNsaWVudC0+dXBkYXRlRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQp
LCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShkYXRhVmFsdWUpKSk7
CisgICAgICAgIGNsaWVudC0+dXBkYXRlRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShl
bmQpLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShk
YXRhVmFsdWUpKSk7CiB9CiAKIHZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlRGF0
YUN1ZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlVmFsdWUmJiBkYXRhVmFsdWUpCiB7CiAgICAgQVNTRVJUKGNsaWVudCgpKTsKICAg
ICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCi0gICAgICAgIGNsaWVudC0+cmVt
b3ZlRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShkYXRhVmFsdWUpKSk7CisgICAgICAgIGNsaWVudC0+
cmVtb3ZlRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShkYXRhVmFsdWUpKSk7CiB9CiAj
ZW5kaWYKIApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJh
Y2tQcml2YXRlUmVtb3RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmgJKHJldmlzaW9uIDI1NzI5NykKKysr
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCiAKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1v
dGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JbmJhbmRUZXh0VHJhY2tQcml2YXRl
Lmg+CkBAIC00NCw2ICs0NSwxMCBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU7CiBj
bGFzcyBUZXh0VHJhY2tQcml2YXRlUmVtb3RlIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkluYmFu
ZFRleHRUcmFja1ByaXZhdGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRleHRUcmFja1By
aXZhdGVSZW1vdGUpCiBwdWJsaWM6CisgICAgdXNpbmcgR2VuZXJpY0N1ZURhdGEgPSBXZWJDb3Jl
OjpHZW5lcmljQ3VlRGF0YTsKKyAgICB1c2luZyBJU09XZWJWVFRDdWUgPSBXZWJDb3JlOjpJU09X
ZWJWVFRDdWU7CisgICAgdXNpbmcgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlID0gV2Vi
Q29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOworCiAgICAgc3RhdGljIFJlZjxU
ZXh0VHJhY2tQcml2YXRlUmVtb3RlPiBjcmVhdGUoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlJiBw
bGF5ZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZShwbGF5ZXIsIGlk
ZW5kaWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcAko
bm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1l
ZGlhU3RyYXRlZ3kuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViTWVkaWFTdHJhdGVneS5oIgor
CisjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24u
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvSU9DYWxsYmFjay5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworV2ViTWVkaWFTdHJhdGVneTo6fldlYk1lZGlhU3RyYXRlZ3koKSA9IGRlZmF1bHQ7
CisKK3N0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uPiBXZWJNZWRpYVN0
cmF0ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjayYg
Y2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKKyAgICB1bnNpZ25lZCBudW1i
ZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0
IHNhbXBsZVJhdGUpCit7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIGlmIChtX3VzZUdQ
VVByb2Nlc3MpCisgICAgICAgIHJldHVybiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OmNy
ZWF0ZShjYWxsYmFjaywgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1i
ZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKKyNlbmRpZgorICAgIHJldHVybiBXZWJD
b3JlOjpBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51
bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgJKG5vbmV4aXN0ZW50
KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5
LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVN0cmF0ZWd5Lmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBXZWJNZWRpYVN0cmF0ZWd5IDogcHVibGljIFdlYkNvcmU6Ok1lZGlh
U3RyYXRlZ3kgeworcHVibGljOgorICAgIHZpcnR1YWwgfldlYk1lZGlhU3RyYXRlZ3koKTsKKwor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICB2b2lkIHNldFVzZUdQVVByb2Nlc3MoYm9vbCB1
c2VHUFVQcm9jZXNzKSB7IG1fdXNlR1BVUHJvY2VzcyA9IHVzZUdQVVByb2Nlc3M7IH0KKyNlbmRp
ZgorCitwcml2YXRlOgorICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0
aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjayYsCisg
ICAgICAgIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1
dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVS
YXRlKSBvdmVycmlkZTsKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBib29sIG1fdXNl
R1BVUHJvY2VzcyB7IGZhbHNlIH07CisjZW5kaWYKKworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5j
cHAJKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNiw2ICsyNiw5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlci5oIgogCisjaW5jbHVkZSAiRGVjb2Rlci5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvSW50U2l6ZS5oPgorCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShH
UFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFN
KQogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzksMTYgKzM5LDE5IEBACiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJX
ZWJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIldlYkxvYWRlclN0cmF0ZWd5LmgiCisj
aW5jbHVkZSAiV2ViTWVkaWFTdHJhdGVneS5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNs
dWRlICJXZWJQYXN0ZWJvYXJkT3ZlcnJpZGVzLmgiCiAjaW5jbHVkZSAiV2ViUGFzdGVib2FyZFBy
b3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24u
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVu
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2FkZXJTdHJhdGVneS5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvTWVkaWFTdHJhdGVneS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9QYWdlR3JvdXAuaD4KQEAgLTczLDYgKzc2LDggQEAKIG5hbWVzcGFjZSBXZWJLaXQgewog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKK2NsYXNzIFJlbW90ZUF1ZGlvRGVzdGluYXRpb247
CisKIHZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjppbml0aWFsaXplKCkKIHsKICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8V2ViUGxhdGZvcm1TdHJhdGVnaWVzPiBwbGF0Zm9ybVN0cmF0ZWdp
ZXM7CkBAIC05Myw2ICs5OCwxMSBAQCBQYXN0ZWJvYXJkU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3Ry
YXRlZ2llCiAgICAgcmV0dXJuIHRoaXM7CiB9CiAKK01lZGlhU3RyYXRlZ3kqIFdlYlBsYXRmb3Jt
U3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFTdHJhdGVneSgpCit7CisgICAgcmV0dXJuIG5ldyBXZWJN
ZWRpYVN0cmF0ZWd5OworfQorCiBCbG9iUmVnaXN0cnkqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKIHsKICAgICByZXR1cm4gbmV3IEJsb2JSZWdpc3RyeVByb3h5
OwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkocmV2aXNpb24gMjU3Mjk3KQor
KysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIHByaXZhdGU6CiAgICAg
Ly8gV2ViQ29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzCiAgICAgV2ViQ29yZTo6TG9hZGVyU3RyYXRl
Z3kqIGNyZWF0ZUxvYWRlclN0cmF0ZWd5KCkgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6UGFzdGVi
b2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAgICBX
ZWJDb3JlOjpNZWRpYVN0cmF0ZWd5KiBjcmVhdGVNZWRpYVN0cmF0ZWd5KCkgb3ZlcnJpZGU7CiAg
ICAgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSBvdmVycmlkZTsK
IAogICAgIC8vIFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVneQpJbmRleDogU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDI1NzI5NykKKysr
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDEsNiArMTAxLDcgQEAKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JVSU1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiV2ViTG9hZGVyU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJXZWJNZWRpYUtl
eVN0b3JhZ2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViTWVkaWFTdHJhdGVneS5oIgogI2luY2x1
ZGUgIldlYk5vdGlmaWNhdGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIldlYk9wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIgpAQCAt
MTk5LDYgKzIwMCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QaW5nTG9hZGVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bs
YXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1T
dHJhdGVnaWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5Eb2N1bWVudC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUG9pbnRlckNhcHR1cmVDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9QcmludENvbnRleHQuaD4KQEAgLTM2ODUsNiArMzY4Nyw4IEBAIHZvaWQgV2ViUGFnZTo6dXBk
YXRlUHJlZmVyZW5jZXMoY29uc3QgV2UKICAgICAgICAgbV9kcmF3aW5nQXJlYS0+dXBkYXRlUHJl
ZmVyZW5jZXMoc3RvcmUpOwogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIC8vIEZJWE1F
OiB1c2VHUFVQcm9jZXNzRm9yTWVkaWEgc2hvdWxkIGJlIGEgUnVudGltZUVuYWJsZWRGZWF0dXJl
IHNpbmNlIGl0J3MgZ2xvYmFsLgorICAgIHN0YXRpY19jYXN0PFdlYk1lZGlhU3RyYXRlZ3kmPihw
bGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bWVkaWFTdHJhdGVneSgpKS5zZXRVc2VHUFVQcm9jZXNzKHNl
dHRpbmdzLnVzZUdQVVByb2Nlc3NGb3JNZWRpYSgpKTsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5zdXBwbGVtZW50PFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcj4oKS0+dXBkYXRlUHJlZmVy
ZW5jZXMoc2V0dGluZ3MpOwogI2VuZGlmCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0wMi0yNCAgUnlvc3VrZSBO
aXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBDcmVhdGUgQXVkaW9EZXN0aW5hdGlv
biBpbiB0aGUgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwODE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZGVkIFdlYk1lZGlhU3RyYXRlZ3kgd2hpY2ggaXMgYSB3cmFwcGVyIGFy
b3VuZCBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMubW06CisgICAgICAgIChXZWJNZWRpYVN0cmF0ZWd5KTogQWRkZWQu
CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3kpOgor
CiAyMDIwLTAyLTI0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbmFtZSB0aGUgY2xhc2hpbmcgV2ViT3ZlcmxheUxheWVyIGNsYXNzZXMKSW5kZXg6
IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAko
d29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQCBwcml2YXRlOgogICAgIC8vIFdlYkNvcmU6
OlBsYXRmb3JtU3RyYXRlZ2llcwogICAgIFdlYkNvcmU6OkxvYWRlclN0cmF0ZWd5KiBjcmVhdGVM
b2FkZXJTdHJhdGVneSgpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVn
eSogY3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6TWVk
aWFTdHJhdGVneSogY3JlYXRlTWVkaWFTdHJhdGVneSgpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6
OkJsb2JSZWdpc3RyeSogY3JlYXRlQmxvYlJlZ2lzdHJ5KCkgb3ZlcnJpZGU7CiAKICAgICAvLyBX
ZWJDb3JlOjpQYXN0ZWJvYXJkU3RyYXRlZ3kKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMubW0JKHJldmlzaW9uIDI1NzI5NykKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgs
OSArMjgsMTEgQEAKICNpbXBvcnQgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbXBv
cnQgIldlYlBsdWdpblBhY2thZ2UuaCIKICNpbXBvcnQgIldlYlJlc291cmNlTG9hZFNjaGVkdWxl
ci5oIgorI2ltcG9ydCA8V2ViQ29yZS9BdWRpb0Rlc3RpbmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0Jsb2JSZWdpc3RyeUltcGwuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ29sb3IuaD4KICNpbXBv
cnQgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTWVkaWFTdHJhdGVneS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbXBvcnQgPFdlYkNv
cmUvUGFzdGVib2FyZEl0ZW1JbmZvLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtUGFzdGVi
b2FyZC5oPgpAQCAtNjIsNiArNjQsMjEgQEAgUGFzdGVib2FyZFN0cmF0ZWd5KiBXZWJQbGF0Zm9y
bVN0cmF0ZWdpZQogICAgIHJldHVybiB0aGlzOwogfQogCitjbGFzcyBXZWJNZWRpYVN0cmF0ZWd5
IGZpbmFsIDogcHVibGljIE1lZGlhU3RyYXRlZ3kgeworcHJpdmF0ZToKKworICAgIHN0ZDo6dW5p
cXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKEF1ZGlvSU9D
YWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKKyAgICAgICAg
dW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENo
YW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgcmV0dXJu
IEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShjYWxsYmFjaywgaW5wdXREZXZpY2VJZCwgbnVtYmVy
T2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKKyAg
ICB9Cit9OworCitNZWRpYVN0cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1l
ZGlhU3RyYXRlZ3koKQoreworICAgIHJldHVybiBuZXcgV2ViTWVkaWFTdHJhdGVneTsKK30KKwog
Y2xhc3MgV2ViQmxvYlJlZ2lzdHJ5IGZpbmFsIDogcHVibGljIEJsb2JSZWdpc3RyeSB7CiBwcml2
YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmIHVybCwgUmVmPEJs
b2JEYXRhRmlsZVJlZmVyZW5jZT4mJiByZWZlcmVuY2UsIGNvbnN0IFN0cmluZyYgY29udGVudFR5
cGUpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0ZXJGaWxlQmxvYlVSTCh1cmwsIFdURk1v
dmUocmVmZXJlbmNlKSwgY29udGVudFR5cGUpOyB9CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0wMi0yNCAgUnlvc3Vr
ZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBDcmVhdGUgQXVkaW9EZXN0aW5h
dGlvbiBpbiB0aGUgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwODE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZGVkIFdlYk1lZGlhU3RyYXRlZ3kgd2hpY2ggaXMgYSB3cmFwcGVy
IGFyb3VuZCBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViTWVkaWFTdHJhdGVn
eSk6IEFkZGVkLgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVNZWRpYVN0
cmF0ZWd5KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
aDoKKwogMjAyMC0wMi0xMyAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjU1MTU4LCAyNTU0MDUgYW5kIHIyNTU0
ODYKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkocmV2aXNpb24gMjU3Mjk3
KQorKysgU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsOSArMjcsMTEgQEAKIAogI2luY2x1
ZGUgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0Jsb2JSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQmxvYlJl
Z2lzdHJ5SW1wbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL01lZGlhU3RyYXRlZ3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUGFnZUdyb3VwLmg+CkBAIC02MCw2ICs2MiwyMSBAQCBQYXN0ZWJvYXJkU3RyYXRlZ3kqIFdl
YlBsYXRmb3JtU3RyYXRlZ2llCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK2NsYXNzIFdlYk1l
ZGlhU3RyYXRlZ3kgZmluYWwgOiBwdWJsaWMgTWVkaWFTdHJhdGVneSB7Citwcml2YXRlOgorCisg
ICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRp
b24oQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlk
LAorICAgICAgICB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJl
ck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpIG92ZXJyaWRlCisgICAgeworICAg
ICAgICByZXR1cm4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKGNhbGxiYWNrLCBpbnB1dERldmlj
ZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBs
ZVJhdGUpOworICAgIH0KK307CisKK01lZGlhU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6Y3JlYXRlTWVkaWFTdHJhdGVneSgpCit7CisgICAgcmV0dXJuIG5ldyBXZWJNZWRpYVN0cmF0
ZWd5OworfQorCiBjbGFzcyBXZWJCbG9iUmVnaXN0cnkgZmluYWwgOiBwdWJsaWMgQmxvYlJlZ2lz
dHJ5IHsKIHByaXZhdGU6CiAgICAgdm9pZCByZWdpc3RlckZpbGVCbG9iVVJMKGNvbnN0IFVSTCYg
dXJsLCBSZWY8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmIHJlZmVyZW5jZSwgY29uc3QgU3RyaW5n
JiBjb250ZW50VHlwZSkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckZpbGVCbG9iVVJM
KHVybCwgV1RGTW92ZShyZWZlcmVuY2UpLCBjb250ZW50VHlwZSk7IH0KSW5kZXg6IFNvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5oCShyZXZpc2lvbiAyNTcyOTcpCisrKyBTb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkod29ya2luZyBj
b3B5KQpAQCAtMzgsNyArMzgsOCBAQCBwcml2YXRlOgogICAgIFdlYlBsYXRmb3JtU3RyYXRlZ2ll
cygpOwogCiAgICAgLy8gV2ViQ29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzCi0gICAgdmlydHVhbCBX
ZWJDb3JlOjpMb2FkZXJTdHJhdGVneSogY3JlYXRlTG9hZGVyU3RyYXRlZ3koKTsKLSAgICB2aXJ0
dWFsIFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVneSogY3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5
KCk7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpCbG9iUmVnaXN0cnkqIGNyZWF0ZUJsb2JSZWdpc3Ry
eSgpOworICAgIFdlYkNvcmU6OkxvYWRlclN0cmF0ZWd5KiBjcmVhdGVMb2FkZXJTdHJhdGVneSgp
IG92ZXJyaWRlOworICAgIFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVneSogY3JlYXRlUGFzdGVi
b2FyZFN0cmF0ZWd5KCkgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6TWVkaWFTdHJhdGVneSogY3Jl
YXRlTWVkaWFTdHJhdGVneSgpIG92ZXJyaWRlOworICAgIFdlYkNvcmU6OkJsb2JSZWdpc3RyeSog
Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkgb3ZlcnJpZGU7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391728</attachid>
            <date>2020-02-26 00:59:44 -0800</date>
            <delta_ts>2020-02-26 18:22:04 -0800</delta_ts>
            <desc>Windows build fix attempt 3</desc>
            <filename>bug-208179-20200226005932.patch</filename>
            <type>text/plain</type>
            <size>99076</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NzQxMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDIwLTAyLTI2ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIENyZWF0ZSBBdWRpb0Rlc3RpbmF0
aW9uIGluIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA4MTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIGFuIGFic3RyYWN0aW9uIGFyb3VuZCB0aGUgY3JlYXRpb24gb2Yg
QXVkaW9EZXN0aW5hdGlvbiB1c2luZyBuZXdseSBpbnRyb2R1Y2VkIG1lZGlhU3RyYXRlZ3kuCisK
KyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vRGVm
YXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZmF1bHRB
dWRpb0Rlc3RpbmF0aW9uTm9kZTo6Y3JlYXRlRGVzdGluYXRpb24pOiBVc2UgTWVkaWFTdHJhdGVn
eTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5Lmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJhdGVneSk6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1T
dHJhdGVnaWVzOjptZWRpYVN0cmF0ZWd5KTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vQXVkaW9CdXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9u
Lmg6CisKIDIwMjAtMDItMjUgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBVbnJldmlld2VkIGJ1aWxkIGZpeCBmb3IgdW5pZmll
ZCBzb3VyY2UgYnVpbGRzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UJKHJldmlzaW9uIDI1NzQxMikK
KysrIFNvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTk1MCw2
ICs5NTAsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxh
dGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5oCiAgICAgcGxhdGZvcm0vTWVkaWFTYW1wbGUuaAogICAg
IHBsYXRmb3JtL01lZGlhU2VsZWN0aW9uT3B0aW9uLmgKKyAgICBwbGF0Zm9ybS9NZWRpYVN0cmF0
ZWd5LmgKICAgICBwbGF0Zm9ybS9Ob3RJbXBsZW1lbnRlZC5oCiAgICAgcGxhdGZvcm0vT3JpZW50
YXRpb25Ob3RpZmllci5oCiAgICAgcGxhdGZvcm0vUE9ESW50ZXJ2YWwuaApAQCAtMTAyMSw3ICsx
MDIyLDEyIEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0
Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uVXRpbGl0aWVzLmgKICAgICBwbGF0Zm9ybS9hbmltYXRp
b24vVGltaW5nRnVuY3Rpb24uaAogCisgICAgcGxhdGZvcm0vYXVkaW8vQXVkaW9BcnJheS5oCisg
ICAgcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuaAorICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvQ2hh
bm5lbC5oCisgICAgcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oCiAgICAgcGxhdGZv
cm0vYXVkaW8vQXVkaW9IYXJkd2FyZUxpc3RlbmVyLmgKKyAgICBwbGF0Zm9ybS9hdWRpby9BdWRp
b0lPQ2FsbGJhY2suaAogICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCiAgICAgcGxh
dGZvcm0vYXVkaW8vQXVkaW9Tb3VyY2VQcm92aWRlci5oCiAgICAgcGxhdGZvcm0vYXVkaW8vQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbi5oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3Bw
CShyZXZpc2lvbiAyNTc0MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Rl
ZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMx
LDggQEAKICNpbmNsdWRlICJBdWRpb0NvbnRleHQuaCIKICNpbmNsdWRlICJBdWRpb0Rlc3RpbmF0
aW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk1lZGlhU3RyYXRlZ3kuaCIK
KyNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRp
b25Db250ZXh0LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgpAQCAtODQsOCArODYsOCBAQCB2b2lkIERlZmF1bHRBdWRpb0Rl
c3RpbmF0aW9uTm9kZTo6Y3JlYXRlCiB7CiAgICAgZmxvYXQgaGFyZHdhcmVTYW1wbGVSYXRlID0g
QXVkaW9EZXN0aW5hdGlvbjo6aGFyZHdhcmVTYW1wbGVSYXRlKCk7CiAgICAgTE9HKFdlYkF1ZGlv
LCAiPj4+PiBoYXJkd2FyZVNhbXBsZVJhdGUgPSAlZlxuIiwgaGFyZHdhcmVTYW1wbGVSYXRlKTsK
LSAgICAKLSAgICBtX2Rlc3RpbmF0aW9uID0gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKCp0aGlz
LCBtX2lucHV0RGV2aWNlSWQsIG1fbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBjaGFubmVsQ291bnQo
KSwgaGFyZHdhcmVTYW1wbGVSYXRlKTsKKworICAgIG1fZGVzdGluYXRpb24gPSBwbGF0Zm9ybVN0
cmF0ZWdpZXMoKS0+bWVkaWFTdHJhdGVneSgpLmNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oKnRoaXMs
IG1faW5wdXREZXZpY2VJZCwgbV9udW1iZXJPZklucHV0Q2hhbm5lbHMsIGNoYW5uZWxDb3VudCgp
LCBoYXJkd2FyZVNhbXBsZVJhdGUpOwogfQogCiB2b2lkIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9u
Tm9kZTo6ZW5hYmxlSW5wdXQoY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkKQpJbmRleDogU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gMjU3NDEyKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yODg5LDYgKzI4ODksOCBAQAogCQk5QUIxRjM4
MDE4RTI0ODlBMDA1MzQ3NDMgLyogQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFCMUYzN0UxOEUyNDg5QTAw
NTM0NzQzIC8qIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjAyRTBDODIzNUVBRDJBMDA0MDQ0QjIg
LyogVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDJFMEMzMjM1RTc2QUEwMDQwNDRCMiAvKiBUZXh0TWFu
aXB1bGF0aW9uQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTlCMEFCQ0FFMjM2QkI0MzEwMEI0NTA4NSAvKiBUYXNrU291cmNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjBBQkNBQzIz
NkJCNDBBMDBCNDUwODUgLyogVGFza1NvdXJjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTlCMTIyOUM0MjNGRTRCRDIwMDhDQTc1MSAvKiBBdWRp
b0Rlc3RpbmF0aW9uQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxMzE1MTg2MjM1Nzc0NUUwMDExNUU2RSAvKiBBdWRpb0Rlc3RpbmF0aW9uQ29j
b2EuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5
QjEyMjlDNzIzRkU0RDZBMDA4Q0E3NTEgLyogTWVkaWFTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIxMjI5QzYyM0ZFNEQ1RjAwOENBNzUx
IC8qIE1lZGlhU3RyYXRlZ3kuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5QjI0REU4RTE1MTk0Qjk1MDBDNTlDMjcgLyogSFRNTEJESUVsZW1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMjRERThD
MTUxOTRCOTUwMEM1OUMyNyAvKiBIVE1MQkRJRWxlbWVudC5oICovOyB9OwogCQk5QjI3RkM2MDIz
NEQ5QURCMDAzOTRBNDYgLyogV2luZG93RXZlbnRMb29wLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjI3RkM1RTIzNEQ5QURBMDAzOTRBNDYgLyogV2lu
ZG93RXZlbnRMb29wLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOUIyRDhBNzkxNDk5N0NDRjAwRUNFRjNFIC8qIFVuZG9TdGVwLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjJEOEE3ODE0OTk3Q0NGMDBF
Q0VGM0UgLyogVW5kb1N0ZXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtNTA2NywxMCArNTA2OSwxMCBAQAogCQlGRDMxNjAzNjEyQjAyNjc2MDBD
MUEzNTkgLyogU2NyaXB0UHJvY2Vzc29yTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTVGRUMxMkIwMjY3NjAwQzFBMzU5IC8qIFNjcmlwdFBy
b2Nlc3Nvck5vZGUuaCAqLzsgfTsKIAkJRkQzMTYwM0MxMkIwMjY3NjAwQzFBMzU5IC8qIFJlYWx0
aW1lQW5hbHlzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEZEMzE1RkYyMTJCMDI2NzYwMEMxQTM1OSAvKiBSZWFsdGltZUFuYWx5c2VyLmggKi87IH07
CiAJCUZEMzE2MDNFMTJCMDI2NzYwMEMxQTM1OSAvKiBBbmFseXNlck5vZGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE1RkY0MTJCMDI2NzYwMEMx
QTM1OSAvKiBBbmFseXNlck5vZGUuaCAqLzsgfTsKLQkJRkQzMTYwN0ExMkIwMjZGNzAwQzFBMzU5
IC8qIEF1ZGlvQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEZEMzE2MDQ0MTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0FycmF5LmggKi87IH07Ci0J
CUZEMzE2MDdDMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0J1cy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNDYxMkIwMjZGNzAwQzFBMzU5IC8q
IEF1ZGlvQnVzLmggKi87IH07Ci0JCUZEMzE2MDdFMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0No
YW5uZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZE
MzE2MDQ4MTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0NoYW5uZWwuaCAqLzsgfTsKLQkJRkQzMTYw
N0YxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDQ5MTJCMDI2RjcwMEMxQTM1OSAv
KiBBdWRpb0Rlc3RpbmF0aW9uLmggKi87IH07CisJCUZEMzE2MDdBMTJCMDI2RjcwMEMxQTM1OSAv
KiBBdWRpb0FycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGRDMxNjA0NDEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9BcnJheS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUZEMzE2MDdDMTJCMDI2Rjcw
MEMxQTM1OSAvKiBBdWRpb0J1cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRkQzMTYwNDYxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvQnVzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRkQzMTYwN0UxMkIw
MjZGNzAwQzFBMzU5IC8qIEF1ZGlvQ2hhbm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNDgxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvQ2hh
bm5lbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CUZEMzE2MDdGMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0Rlc3RpbmF0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA0OTEyQjAyNkY3MDBD
MUEzNTkgLyogQXVkaW9EZXN0aW5hdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUZEMzE2MDgwMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0RT
UEtlcm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkQzMTYwNEExMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRFNQS2VybmVsLmggKi87IH07CiAJCUZE
MzE2MDgyMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0RTUEtlcm5lbFByb2Nlc3Nvci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNEMxMkIwMjZG
NzAwQzFBMzU5IC8qIEF1ZGlvRFNQS2VybmVsUHJvY2Vzc29yLmggKi87IH07CiAJCUZEMzE2MDgz
MTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0ZpbGVSZWFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDREMTJCMDI2RjcwMEMxQTM1OSAvKiBB
dWRpb0ZpbGVSZWFkZXIuaCAqLzsgfTsKQEAgLTUxNDgsNyArNTE1MCw3IEBACiAJCUZEQjE3MDA2
MTRBMkJBQjIwMEEyQjVEOSAvKiBNdWx0aUNoYW5uZWxSZXNhbXBsZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEQjE3MDA0MTRBMkJBQjIwMEEyQjVE
OSAvKiBNdWx0aUNoYW5uZWxSZXNhbXBsZXIuaCAqLzsgfTsKIAkJRkRCRDQ4MEQxNTlCQzY4NzAw
OTNFQjRGIC8qIEpTTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEQkQ0ODBCMTU5QkM2ODcwMDkzRUI0RiAv
KiBKU01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmggKi87IH07CiAJCUZEQzU0RjA1MTM5OUIw
REEwMDhEOTExNyAvKiBCaXF1YWRGaWx0ZXJOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGREM1NEYwMjEzOTlCMERBMDA4RDkxMTcgLyogQmlxdWFk
RmlsdGVyTm9kZS5oICovOyB9OwotCQlGREUyRDU1QjE1OUU2NkVCMDBEQ0NDRjggLyogQXVkaW9J
T0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGREUyRDU1QTE1OUU2NkVCMDBEQ0NDRjggLyogQXVkaW9JT0NhbGxiYWNrLmggKi87IH07CisJ
CUZERTJENTVCMTU5RTY2RUIwMERDQ0NGOCAvKiBBdWRpb0lPQ2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZERTJENTVBMTU5RTY2RUIwMERD
Q0NGOCAvKiBBdWRpb0lPQ2FsbGJhY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlGREVBNjI0MzE1MjEwMkUyMDA0NzlERjAgLyogSlNPc2NpbGxh
dG9yTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkRFQTYyNDExNTIxMDJFMjAwNDc5REYwIC8qIEpTT3NjaWxsYXRvck5vZGUuaCAqLzsgfTsKIAkJ
RkRFQTYyNDcxNTIxMDJGQzAwNDc5REYwIC8qIEpTUGVyaW9kaWNXYXZlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGREVBNjI0NTE1MjEwMkZDMDA0NzlE
RjAgLyogSlNQZXJpb2RpY1dhdmUuaCAqLzsgfTsKIAkJRkRGMDlEQzkxMzk5QjYyMjAwNjg4RTVC
IC8qIEpTQmlxdWFkRmlsdGVyTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkRGMDlEQzcxMzk5QjYyMjAwNjg4RTVCIC8qIEpTQmlxdWFkRmlsdGVy
Tm9kZS5oICovOyB9OwpAQCAtMTEyMDIsNiArMTEyMDQsNyBAQAogCQk5QjBBQkNBNDIzNjc5QUNG
MDBCNDUwODUgLyogV29ya2VyRXZlbnRMb29wLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdvcmtlckV2ZW50TG9vcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
QjBBQkNBQzIzNkJCNDBBMDBCNDUwODUgLyogVGFza1NvdXJjZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBU
YXNrU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMEZFODczMUQ5RTAy
REYwMDRBOEFDQiAvKiBEb2N1bWVudE9yU2hhZG93Um9vdC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gRG9jdW1lbnRPclNoYWRvd1Jvb3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5QjEyMjlDNjIzRkU0RDVGMDA4Q0E3NTEgLyogTWVkaWFTdHJhdGVneS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNZWRpYVN0cmF0ZWd5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlC
MTMyNTdCMUYzRDJBQkEwMERBQUI2OSAvKiBEYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMTlCNjdFMUI5NjRFNTIwMDM0ODc0NSAv
KiBTaGFkb3dSb290LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTaGFkb3dSb290LmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIxQUIwNzkxNjQ4QzY5RDAwNTFGM0YyIC8q
IEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MRm9ybUNvbnRyb2xzQ29s
bGVjdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTkyOSw2ICsyNTkz
Miw3IEBACiAJCQkJQ0RGMkIwMDMxODFGMDU5QzAwRjJCNDI0IC8qIE1lZGlhRGVzY3JpcHRpb24u
aCAqLywKIAkJCQlDRDY0MUVDNzE4MUVENjAxMDBFRTRDNDEgLyogTWVkaWFTYW1wbGUuaCAqLywK
IAkJCQlBMTdEMjc1RDFFQUM1Nzk4MDBCRjAxRTcgLyogTWVkaWFTZWxlY3Rpb25PcHRpb24uaCAq
LywKKwkJCQk5QjEyMjlDNjIzRkU0RDVGMDA4Q0E3NTEgLyogTWVkaWFTdHJhdGVneS5oICovLAog
CQkJCUJDNzcyQzRDMEM0RUIzMDQwMDgzMjg1RiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmNwcCAqLywK
IAkJCQlCQzc3MkM0RDBDNEVCMzA0MDA4MzI4NUYgLyogTUlNRVR5cGVSZWdpc3RyeS5oICovLAog
CQkJCUUxNTEzRDUwMTY3N0YwODgwMDE0OUZDQiAvKiBOb3RJbXBsZW1lbnRlZC5jcHAgKi8sCkBA
IC0yOTA1NCw2ICsyOTA1OCw3IEBACiAJCQkJRkQzMTYwN0UxMkIwMjZGNzAwQzFBMzU5IC8qIEF1
ZGlvQ2hhbm5lbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwMDUxMkIwMjY3NjAwQzFBMzU5
IC8qIEF1ZGlvQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwN0YxMkIwMjZGNzAw
QzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTlCMTIyOUM0
MjNGRTRCRDIwMDhDQTc1MSAvKiBBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaCBpbiBIZWFkZXJzICov
LAogCQkJCUZEMzE2MEJEMTJCMDI3MkEwMEMxQTM1OSAvKiBBdWRpb0Rlc3RpbmF0aW9uTWFjLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjAwODEyQjAyNjc2MDBDMUEzNTkgLyogQXVkaW9EZXN0
aW5hdGlvbk5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDgwMTJCMDI2RjcwMEMxQTM1
OSAvKiBBdWRpb0RTUEtlcm5lbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTQ4Nyw2ICszMTQ5Miw3
IEBACiAJCQkJQ0Q2NDFFQjMxODE4RjVFRDAwRUU0QzQxIC8qIE1lZGlhU291cmNlUHJpdmF0ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDOEI1QTcxODA0NzRGNzAwMTZFNjg1IC8qIE1lZGlhU291
cmNlUHJpdmF0ZUFWRk9iakMuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEREMxRTdBMThBOTUyRjMw
MDI3QTlENCAvKiBNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTlCMTIyOUM3MjNGRTRENkEwMDhDQTc1MSAvKiBNZWRpYVN0cmF0ZWd5LmggaW4gSGVhZGVycyAq
LywKIAkJCQkwNzhFMDkxNTE3RDE0RDFDMDA0MjBBQTEgLyogTWVkaWFTdHJlYW0uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA3OEUwOTRDMTdEMTcwOTYwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbUF1ZGlv
RGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzgzMjI4NTE4MDEzRUQ4MDA5
OTlFMEMgLyogTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5oCShub25leGlzdGVudCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1ZGlvRGVzdGluYXRp
b247CitjbGFzcyBBdWRpb0lPQ2FsbGJhY2s7CisKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIE1lZGlh
U3RyYXRlZ3kgeworcHVibGljOgorI2lmIEVOQUJMRShXRUJfQVVESU8pCisgICAgdmlydHVhbCBz
dGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbigK
KyAgICAgICAgQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1
bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hh
bm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpID0gMDsKKyNlbmRpZgorcHJvdGVjdGVkOgorICAgIHZp
cnR1YWwgfk1lZGlhU3RyYXRlZ3koKSA9IGRlZmF1bHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdp
ZXMuaAkocmV2aXNpb24gMjU3NDEyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZv
cm1TdHJhdGVnaWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBCbG9iUmVnaXN0cnk7CiBjbGFzcyBMb2FkZXJTdHJhdGVneTsK
K2NsYXNzIE1lZGlhU3RyYXRlZ3k7CiBjbGFzcyBQYXN0ZWJvYXJkU3RyYXRlZ3k7CiAKIGNsYXNz
IFBsYXRmb3JtU3RyYXRlZ2llcyB7CkBAIC0zOSw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICAgICAg
ICAgIG1fbG9hZGVyU3RyYXRlZ3kgPSBjcmVhdGVMb2FkZXJTdHJhdGVneSgpOwogICAgICAgICBy
ZXR1cm4gbV9sb2FkZXJTdHJhdGVneTsKICAgICB9Ci0gICAgCisKICAgICBQYXN0ZWJvYXJkU3Ry
YXRlZ3kqIHBhc3RlYm9hcmRTdHJhdGVneSgpCiAgICAgewogICAgICAgICBpZiAoIW1fcGFzdGVi
b2FyZFN0cmF0ZWd5KQpAQCAtNDcsNiArNDgsMTMgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
bV9wYXN0ZWJvYXJkU3RyYXRlZ3k7CiAgICAgfQogCisgICAgTWVkaWFTdHJhdGVneSYgbWVkaWFT
dHJhdGVneSgpCisgICAgeworICAgICAgICBpZiAoIW1fbWVkaWFTdHJhdGVneSkKKyAgICAgICAg
ICAgIG1fbWVkaWFTdHJhdGVneSA9IGNyZWF0ZU1lZGlhU3RyYXRlZ3koKTsKKyAgICAgICAgcmV0
dXJuICptX21lZGlhU3RyYXRlZ3k7CisgICAgfQorCiAgICAgQmxvYlJlZ2lzdHJ5KiBibG9iUmVn
aXN0cnkoKQogICAgIHsKICAgICAgICAgaWYgKCFtX2Jsb2JSZWdpc3RyeSkKQEAgLTY0LDEwICs3
MiwxMiBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgTG9hZGVyU3RyYXRlZ3kq
IGNyZWF0ZUxvYWRlclN0cmF0ZWd5KCkgPSAwOwogICAgIHZpcnR1YWwgUGFzdGVib2FyZFN0cmF0
ZWd5KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKSA9IDA7CisgICAgdmlydHVhbCBNZWRpYVN0
cmF0ZWd5KiBjcmVhdGVNZWRpYVN0cmF0ZWd5KCkgPSAwOwogICAgIHZpcnR1YWwgQmxvYlJlZ2lz
dHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSA9IDA7CiAKICAgICBMb2FkZXJTdHJhdGVneSogbV9s
b2FkZXJTdHJhdGVneSB7IH07CiAgICAgUGFzdGVib2FyZFN0cmF0ZWd5KiBtX3Bhc3RlYm9hcmRT
dHJhdGVneSB7IH07CisgICAgTWVkaWFTdHJhdGVneSogbV9tZWRpYVN0cmF0ZWd5IHsgfTsKICAg
ICBCbG9iUmVnaXN0cnkqIG1fYmxvYlJlZ2lzdHJ5IHsgfTsKIH07CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuaAkocmV2aXNpb24gMjU3NDEyKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuaAkod29ya2luZyBjb3B5KQpAQCAt
NjYsMTAgKzY2LDEwIEBAIHB1YmxpYzoKICAgICAvLyBhbGxvY2F0ZSBpbmRpY2F0ZXMgd2hldGhl
ciBvciBub3QgdG8gaW5pdGlhbGx5IGhhdmUgdGhlIEF1ZGlvQ2hhbm5lbHMgY3JlYXRlZCB3aXRo
IG1hbmFnZWQgc3RvcmFnZS4KICAgICAvLyBOb3JtYWwgdXNhZ2UgaXMgdG8gcGFzcyB0cnVlIGhl
cmUsIGluIHdoaWNoIGNhc2UgdGhlIEF1ZGlvQ2hhbm5lbHMgd2lsbCBtZW1vcnktbWFuYWdlIHRo
ZWlyIG93biBzdG9yYWdlLgogICAgIC8vIElmIGFsbG9jYXRlIGlzIGZhbHNlIHRoZW4gc2V0Q2hh
bm5lbE1lbW9yeSgpIGhhcyB0byBiZSBjYWxsZWQgbGF0ZXIgb24gZm9yIGVhY2ggY2hhbm5lbCBi
ZWZvcmUgdGhlIEF1ZGlvQnVzIGlzIHVzZWFibGUuLi4KLSAgICBzdGF0aWMgUmVmUHRyPEF1ZGlv
QnVzPiBjcmVhdGUodW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IGxlbmd0aCwgYm9v
bCBhbGxvY2F0ZSA9IHRydWUpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8QXVk
aW9CdXM+IGNyZWF0ZSh1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbGVuZ3RoLCBi
b29sIGFsbG9jYXRlID0gdHJ1ZSk7CiAKICAgICAvLyBUZWxscyB0aGUgZ2l2ZW4gY2hhbm5lbCB0
byB1c2UgYW4gZXh0ZXJuYWxseSBhbGxvY2F0ZWQgYnVmZmVyLgotICAgIHZvaWQgc2V0Q2hhbm5l
bE1lbW9yeSh1bnNpZ25lZCBjaGFubmVsSW5kZXgsIGZsb2F0KiBzdG9yYWdlLCBzaXplX3QgbGVu
Z3RoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENoYW5uZWxNZW1vcnkodW5zaWduZWQg
Y2hhbm5lbEluZGV4LCBmbG9hdCogc3RvcmFnZSwgc2l6ZV90IGxlbmd0aCk7CiAKICAgICAvLyBD
aGFubmVscwogICAgIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMoKSBjb25zdCB7IHJldHVybiBt
X2NoYW5uZWxzLnNpemUoKTsgfQpAQCAtMTI2LDcgKzEyNiw3IEBAIHB1YmxpYzoKIAogICAgIC8v
IENvcGllcyB0aGUgc2FtcGxlcyBmcm9tIHRoZSBzb3VyY2UgYnVzIHRvIHRoaXMgb25lLgogICAg
IC8vIFRoaXMgaXMganVzdCBhIHNpbXBsZSBwZXItY2hhbm5lbCBjb3B5IGlmIHRoZSBudW1iZXIg
b2YgY2hhbm5lbHMgbWF0Y2gsIG90aGVyd2lzZSBhbiB1cC1taXggb3IgZG93bi1taXggaXMgZG9u
ZS4KLSAgICB2b2lkIGNvcHlGcm9tKGNvbnN0IEF1ZGlvQnVzJiBzb3VyY2VCdXMsIENoYW5uZWxJ
bnRlcnByZXRhdGlvbiA9IFNwZWFrZXJzKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvcHlG
cm9tKGNvbnN0IEF1ZGlvQnVzJiBzb3VyY2VCdXMsIENoYW5uZWxJbnRlcnByZXRhdGlvbiA9IFNw
ZWFrZXJzKTsKIAogICAgIC8vIFN1bXMgdGhlIHNhbXBsZXMgZnJvbSB0aGUgc291cmNlIGJ1cyB0
byB0aGlzIG9uZS4KICAgICAvLyBUaGlzIGlzIGp1c3QgYSBzaW1wbGUgcGVyLWNoYW5uZWwgc3Vt
bWluZyBpZiB0aGUgbnVtYmVyIG9mIGNoYW5uZWxzIG1hdGNoLCBvdGhlcndpc2UgYW4gdXAtbWl4
IG9yIGRvd24tbWl4IGlzIGRvbmUuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9BdWRpb0Rlc3RpbmF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oCShyZXZpc2lvbiAyNTc0MTIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ1LDcgKzQ1LDcgQEAgY2xhc3MgQXVkaW9EZXN0aW5hdGlvbiB7CiBwdWJsaWM6CiAgICAg
Ly8gUGFzcyBpbiAobnVtYmVyT2ZJbnB1dENoYW5uZWxzID4gMCkgaWYgbGl2ZS9sb2NhbCBhdWRp
byBpbnB1dCBpcyBkZXNpcmVkLgogICAgIC8vIFBvcnQtc3BlY2lmaWMgZGV2aWNlIGlkZW50aWZp
Y2F0aW9uIGluZm9ybWF0aW9uIGZvciBsaXZlL2xvY2FsIGlucHV0IHN0cmVhbXMgY2FuIGJlIHBh
c3NlZCBpbiB0aGUgaW5wdXREZXZpY2VJZC4KLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEF1
ZGlvRGVzdGluYXRpb24+IGNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmIGlu
cHV0RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVt
YmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSk7CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUoQXVkaW9J
T0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJP
ZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNh
bXBsZVJhdGUpOwogCiAgICAgdmlydHVhbCB+QXVkaW9EZXN0aW5hdGlvbigpID0gZGVmYXVsdDsK
IApJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NzQxMikKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTE5IEBACisyMDIwLTAyLTI2ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIENyZWF0ZSBBdWRpb0Rlc3RpbmF0
aW9uIGluIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA4MTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQ3JlYXRlIEF1ZGlvRGVzdGluYXRpb24gaW4gdGhlIEdQVSBwcm9jZXNz
IGluc3RlYWQgb2YgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBmb3IgV2ViQXVkaW8gQVBJIHdoZW4K
KyAgICAgICAgdGhlIE1lZGlhLWluLUdQVS1wcm9jZXNzIGZlYXR1cmUgaXMgZW5hYmxlZC4KKwor
ICAgICAgICBUbyBkbyB0aGlzLCBXZWJNZWRpYVN0cmF0ZWd5LCBhIGNvbmNyZXRlIGltcGxlbWVu
dGF0aW9uIG9mIE1lZGlhU3RyYXRlZ3ksIGluIHRoZSBXZWJDb250ZW50IHByb2Nlc3MgZ2V0cwor
ICAgICAgICBhIGJvb2xlYW4gZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIEdQVSBwcm9jZXNz
IHNob3VsZCBiZSB1c2VkIGZvciBBdWRpb0Rlc3RpbmF0aW9uIG9yIG5vdC4gV2hlbiB0aGUgZmxh
ZworICAgICAgICBpcyBzZXQsIHdlIGNyZWF0ZSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkg
aW5zdGVhZCBvZiBBdWRpb0Rlc3RpbmF0aW9uIGluIFdlYkNvbnRlbnQgcHJvY2Vzcy4KKworICAg
ICAgICBFYWNoIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSB0YWxrcyB0byBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlciBpbiB0aGUgR1BVIHByb2Nlc3MgYW5kIGNyZWF0ZXMKKyAgICAg
ICAgYSBjb3JyZXNwb25kaW5nIFJlbW90ZUF1ZGlvRGVzdGluYXRpb24gd2hpY2ggaW4gdHVybiBj
cmVhdGVzIFdlYkNvcmUncyBBdWRpb0Rlc3RpbmF0aW9uIGluIHRoZSBHUFUgcHJvY2Vzcy4KKwor
ICAgICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uIGlzIGl0c2VsZiBhbiBBdWRpb0lPQ2FsbGJh
Y2sgZm9yIEF1ZGlvRGVzdGluYXRpb24gaXQgY3JlYXRlcywgYW5kIGRlbGVnYXRlcworICAgICAg
ICBpdHMgY2FsbGJhY2sgdG8gV2ViQ29udGVudCBwcm9jZXNzJyBSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHkgYXMgbmVlZGVkLgorCisgICAgICAgIEluIHRoaXMgaW5pdGlhbCBwYXRjaCwgd2Ug
c2VuZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OlJlbmRlckJ1ZmZlciBJUEMgY2FsbCB0
byB0aGUgV2ViQ29udGVudCBwcm9jZXNzCisgICAgICAgIGZvciBlYWNoIHJlbmRlciBjYWxsIHdl
IGdldCBmcm9tIENvcmVBdWRpbyBmb3Igc2ltcGxpY2l0eSB1c2luZyBuZXdseSBpbnRyb2R1Y2Vk
IFJlbW90ZUF1ZGlvQnVzRGF0YSwKKyAgICAgICAgd2hpY2ggaG9sZHMgYSBTaGFyZWRNZW1vcnkg
Zm9yIGVhY2ggY2hhbm5lbCBpbiB0aGUgYXVkaW8gYnVzLgorCisgICAgICAgIFdlIHdpbGwgZWxp
bWluYXRlIHRoaXMgSVBDIG92ZXJoZWFkIGluIGEgZm9sbG93IHVwIHBhdGNoIHVzaW5nIENBUmlu
Z0J1ZmZlci4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6Cisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpyZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcik6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6IEFkZGVkIHRo
ZSBjb2RlIHRvIGRpc3BhdGNoIG1lc3NhZ2VzIHRvCisgICAgICAgIFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25NYW5hZ2VyLgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOiBEaXR0by4KKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvRGVzdGluYXRpb24pOiBBZGRlZC4gVGhpcyBjbGFzcyBpcyB0aGUgYmFja2lu
ZyBvYmplY3Qgd2hpY2ggY3JlYXRlcyBXZWJDb3JlJ3MKKyAgICAgICAgQXVkaW9EZXN0aW5hdGlv
biBhbmQgYWN0dWFsbHkgdGFsa3MgdG8gQ29yZUF1ZGlvIGluIEdQVSBwcm9jZXNzLgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUpOiBBZGRlZC4KKworICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uOjp+UmVtb3RlQXVkaW9EZXN0aW5h
dGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uOjpz
Y2hlZHVsZUdyYWNlZnVsU2h1dGRvd25JZk5lZWRlZCk6IERlbGF5cyB0aGUgZGVsZXRpb24gb2Yg
dGhpcyBvYmplY3QKKyAgICAgICAgdW50aWwgdGhlIGF1ZGlvIHRocmVhZHMgc3RvcHMgcnVubmlu
Zy4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6c3RhcnQpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6c3RvcCk6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uOjppc1BsYXlpbmcpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6UmVtb3RlQXVk
aW9EZXN0aW5hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uOjpyZW5kZXIpOiBTZW5kcyBhIHN5bmMgSVBDIHRvIHRoZSBXZWJDb250ZW50IHByb2Nl
c3MnCisgICAgICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSB0byBmaWxsIHRoZSBhdWRp
byBidWZmZXIuIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIGdldHMgY2FsbGVkIGluIGF1ZGlvIHRo
cmVhZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6aXNQbGF5aW5n
RGlkQ2hhbmdlKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyKTogQWRkZWQuIFRoaXMgY2xhc3MgbWFuYWdlcyBhbGwgUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbiBvYmplY3RzIG93bmVkCisgICAgICAgIGJ5IGEgc2luZ2xlIFdlYkNvbnRlbnQgcHJv
Y2Vzcy4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OlJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjp+UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXIpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXI6OmNyZWF0ZUF1ZGlvRGVzdGluYXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OmRlbGV0ZUF1ZGlvRGVzdGluYXRpb24pOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OnN0YXJ0
QXVkaW9EZXN0aW5hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlcjo6c3RvcEF1ZGlvRGVzdGluYXRpb24pOiBBZGRlZC4KKyAgICAgICAg
KiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmg6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcik6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6ZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlRnJvbVdlYlByb2Nlc3MpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlBy
b2Nlc3MpOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVNZWRpYVN0cmF0ZWd5
KTogQWRkZWQuIFJldHVybnMgbnVsbHB0ciBzaW5jZSBOZXR3b3JraW5nCisgICAgICAgIHByb2Nl
c3MgaGFzIG5vIGJ1c2luZXNzIHJ1bm5pbmcgQXVkaW9EZXN0aW5hdGlvbi4KKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcyk6CisgICAgICAgICog
UGxhdGZvcm1NYWMuY21ha2U6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6
CisgICAgICAgICogU2hhcmVkL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllclR5
cGUpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50
aWZpZXIpOiBBZGRlZC4gVGhlIGlkZW50aWZpZXIgZm9yIGVhY2ggUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbgorICAgICAgICBhbmQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IChjb3JyZXNwb25k
aW5nIG9iamVjdHMgb2YgZWFjaCBjbGFzcyB1c2UgdGhlIHNhbWUgSUQgdG8gY29tbXVuaWNhdGUp
LgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6Cisg
ICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpH
UFVQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOiBBZGRlZCBhIGRpc3BhdGNo
IG9uIG1fcmVjZWl2ZXJNYXAuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24uaDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb246Om1fcmVj
ZWl2ZXJNYXApOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb246
OmFkZE1lc3NhZ2VSZWNlaXZlcik6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0
aW9uOjpyZW1vdmVNZXNzYWdlUmVjZWl2ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZUF1ZGlvQnVzRGF0YS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9CdXNEYXRhKTogQWRkZWQuIEVuY29kZXMgdGhlIGluZm9ybWF0aW9uIGFib3V0IGVhY2gg
cmVuZGVyIGNhbGwuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvQnVzRGF0YTo6ZW5jb2Rl
IGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvQnVzRGF0YTo6ZGVj
b2RlKTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eSk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHk6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uUHJveHk6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSk6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6On5SZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uUHJveHkpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9EZXN0aW5hdGlvblByb3h5OjpzdGFydCk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0b3ApOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpyZW5kZXJCdWZmZXIpOiBBZGRlZC4gQ2FsbHMg
V2ViQ29yZSdzIEF1ZGlvSU9DYWxsYmFjayB0byBmaWxsCisgICAgICAgIHRoZSBhdWRpbyBidWZm
ZXIgZ2l2ZW4gYnkgdGhlIEdQVSBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHk6OmRpZENoYW5nZUlzUGxheWluZyk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Lmg6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OmRpZFJlY2VpdmVNZXNz
YWdlRnJvbUdQVVByb2Nlc3MpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5Ojppc1BsYXlpbmcpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpzYW1wbGVSYXRlKTogQWRkZWQuCisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Lm1lc3NhZ2Vz
LmluOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2
YXRlUmVtb3RlLmNwcDogRml4ZWQgdGhlIHVuaWZpZWQgYnVpbGRzLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuaDogRGl0dG8uCisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJNZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKTog
QWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVneSk6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJNZWRpYVN0cmF0ZWd5OjpzZXRVc2VHUFVQcm9jZXNzKTogQWRkZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXIuY3BwOiBGaXhlZCB0aGUgdW5pZmllZCBidWlsZHMuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3kpOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOiBTZXRzIFdlYk1lZGlhU3Ry
YXRlZ3kncyBmbGFnIHRvIHVzZSBHUFUgcHJvY2Vzcy4KKwogMjAyMC0wMi0yNSAgRGV2aW4gUm91
c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjogc2FmYXJp
IGFwcCBleHRlbnNpb24gaXNvbGF0ZWQgd29ybGRzIGFuZCBpbmplY3RlZCBmaWxlcyB1c2UgdGhl
IGV4dGVuc2lvbidzIGlkZW50aWZpZXIgaW5zdGVhZCBvZiBpdHMgbmFtZQpJbmRleDogU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAkocmV2aXNpb24gMjU3
NDEyKQorKysgU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CSh3
b3JraW5nIGNvcHkpCkBAIC0xNiw2ICsxNiw3IEBAICQoSkFWQVNDUklQVENPUkVfUFJJVkFURV9I
RUFERVJTX0RJUikveHgKICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVQcm9j
ZXNzLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUu
V2ViS2l0LkdQVVByb2Nlc3Muc2IuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIp
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMTA4LDYgKzEwOSw3IEBAICQoUFJPSkVD
VF9ESVIpL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGUKICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nl
c3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQo
UFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUubWVz
c2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVEND
b2RlY3MubWVzc2FnZXMuaW4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdAkocmV2aXNpb24gMjU3NDEyKQorKysgU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAkod29ya2luZyBjb3B5KQpAQCAtMTIzLDYg
KzEyMywxMCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1BsdWdpblByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUGx1Z2luUHJveHlNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXJNZXNzYWdlcy5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5TWVzc2FnZXMuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlck1hbmFnZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXJN
ZXNzYWdlc1JlcGxpZXMuaApJbmRleDogU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtl
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNp
b24gMjU3NDEyKQorKysgU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5n
IGNvcHkpCkBAIC0xNDQsNiArMTQ0LDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgUGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyIFwKICAgICBQbHVnaW5Qcm9jZXNzUHJveHkgXAog
ICAgIFBsdWdpblByb3h5IFwKKyAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlciBcCisg
ICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IFwKICAgICBSZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIgXAogICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyIFwKICAgICBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5IFwKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvUGxhdGZvcm1NYWMuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9QbGF0Zm9ybU1hYy5jbWFrZQkocmV2aXNpb24gMjU3NDEyKQorKysgU291cmNlL1dlYktp
dC9QbGF0Zm9ybU1hYy5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTYxLDYgKzE2MSwxMSBAQCBs
aXN0KEFQUEVORCBXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBHUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KICAgICBHUFVQcm9jZXNzL0dQVVByb2Nl
c3MubWVzc2FnZXMuaW4KIAorICAgIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KKyAgICBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisgICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCisgICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgorCiAgICAgR1BVUHJvY2Vzcy93ZWJy
dGMvTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2FnZXMuaW4KICAgICBHUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCiAgICAg
R1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5h
Z2VyLm1lc3NhZ2VzLmluCkBAIC0xNzEsMTAgKzE3Niw2IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9N
RVNTQUdFU19JTl9GSUxFUwogICAgIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyLm1lc3NhZ2VzLmluCiAgICAgR1BVUHJvY2Vzcy93ZWJydGMvUmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgogCi0gICAgR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCi0gICAgR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgotICAg
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW4KLSAgICAKICAgICBOZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvTGVnYWN5Q3VzdG9t
UHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluCiAKICAgICBTaGFyZWQvQXBwbGVQYXkvV2ViUGF5
bWVudENvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAkocmV2aXNp
b24gMjU3NDEyKQorKysgU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtNTM2LDExICs1MzYsMTMgQEAgV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJt
aXNzaQogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNz
L0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKIFdlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKK1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTUlNRVR5cGVDYWNoZS5jcHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJh
Y2tQcml2YXRlUmVtb3RlLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZh
dGVSZW1vdGUuY3BwCitXZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcAog
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKIFdlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9N
ZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CShyZXZp
c2lvbiAyNTc0MTIpCisrKyBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTY0OSw2ICs2NDksOCBAQCBHUFVQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwCiBHUFVQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcAogTGliV2ViUlRDQ29kZWNzUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiBMaWJXZWJSVENDb2RlY3NNZXNzYWdlUmVjZWl2ZXIuY3BwCitS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlTWVkaWFS
ZWNvcmRlck1lc3NhZ2VSZWNlaXZlci5jcHAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDI1
NzQxMikKKysrIFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgIkxpYldl
YlJUQ0NvZGVjc1Byb3h5LmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNzUHJveHlNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uTWFuYWdlci5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyTWVz
c2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1h
bmFnZXIuaCIKICNpbmNsdWRlICJSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1h
bmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyTWVzc2FnZXMuaCIKQEAgLTEyNyw2ICsxMjksMTQgQEAgdm9pZCBHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpkaWRSZWNlaQogICAgIENSQVNIKCk7CiB9CiAKK1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyJiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3JlbW90ZUF1ZGlvRGVzdGluYXRpb25N
YW5hZ2VyKQorICAgICAgICBtX3JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyID0gbWFrZVVu
aXF1ZTxSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcj4oKnRoaXMpOworCisgICAgcmV0dXJu
ICptX3JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOworfQorCiBSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlciYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXIoKQogewogICAgIGlmICghbV9yZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcikKQEAg
LTE5MSwxMyArMjAxLDE5IEBAIExpYldlYlJUQ0NvZGVjc1Byb3h5JiBHUFVDb25uZWN0aW9uVG9X
ZWIKIAogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKIHsKKyAg
ICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAg
cmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIoKS5kaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQ
cm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQogICAg
IGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewogICAgICAgICBy
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpLmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlBy
b2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKLSAgICB9IGVsc2Ug
aWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRp
YVBsYXllclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICB9CisgICAgaWYgKGRl
Y29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXll
clByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAgcmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHkoKS5kaWRSZWNlaXZlUGxheWVyTWVzc2FnZShjb25uZWN0aW9uLCBkZWNv
ZGVyKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0gZWxzZSBpZiAoZGVjb2Rlci5tZXNzYWdlUmVj
ZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICB9CisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2Vp
dmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIHJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKCku
ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CkBAIC0yNDMsNiArMjU5LDExIEBAIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6ZGlkUmVjZWkKIAogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZl
U3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRl
Y29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7Cisg
ICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAg
IHJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKCkuZGlkUmVjZWl2ZVN5bmNNZXNzYWdlRnJv
bVdlYlByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKwogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9
PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSkgewogICAgICAgICByZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpLmRpZFJl
Y2VpdmVTeW5jTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5
RW5jb2Rlcik7CiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAkocmV2aXNpb24gMjU3NDEy
KQorKysgU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
Y2xhc3MgR1BVUHJvY2VzczsKIGNsYXNzIExpYldlYlJUQ0NvZGVjc1Byb3h5OworY2xhc3MgUmVt
b3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI7CiBjbGFzcyBSZW1vdGVBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlck1hbmFnZXI7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eTsKIGNsYXNzIFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOwpAQCAtNzksNiArODAsNyBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoR1BVUHJvY2Vz
cyYsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZp
ZXIsIFBBTDo6U2Vzc2lvbklEKTsKIAorICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2Vy
JiByZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcigpOwogICAgIFJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlclByb3h5JiByZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpOwogI2lmIFBMQVRG
T1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQogICAgIExpYldlYlJUQ0NvZGVjc1Byb3h5JiBs
aWJXZWJSVENDb2RlY3NQcm94eSgpOwpAQCAtMTAzLDYgKzEwNSw3IEBAIHByaXZhdGU6CiAgICAg
UmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogICAgIFJlZjxHUFVQcm9jZXNzPiBt
X2dwdVByb2Nlc3M7CiAgICAgY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgbV93ZWJQ
cm9jZXNzSWRlbnRpZmllcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXI+IG1fcmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyPiBtX3JlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eT4gbV9yZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKICAgICBQQUw6OlNlc3Npb25J
RCBtX3Nlc3Npb25JRDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcAkobm9u
ZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbk1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTc3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRl
ICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9CdXNE
YXRhLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5TWVzc2FnZXMuaCIK
KyNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvQnVzLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb0Rlc3RpbmF0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9BdWRpb0lPQ2FsbGJhY2suaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgor
I2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90aHJl
YWRzL0JpbmFyeVNlbWFwaG9yZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVt
b3RlQXVkaW9EZXN0aW5hdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uPiwgcHVibGljIFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjayB7CitwdWJs
aWM6CisgICAgdXNpbmcgQXVkaW9CdXMgPSBXZWJDb3JlOjpBdWRpb0J1czsKKyAgICB1c2luZyBB
dWRpb0Rlc3RpbmF0aW9uID0gV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbjsKKyAgICB1c2luZyBT
aGFyZWRCdWZmZXIgPSBXZWJDb3JlOjpTaGFyZWRCdWZmZXI7CisKKyAgICBzdGF0aWMgUmVmPFJl
bW90ZUF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBj
b25uZWN0aW9uLCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBpZCwKKyAgICAgICAg
Y29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1aW50MzJfdCBudW1iZXJPZklucHV0Q2hhbm5l
bHMsIHVpbnQzMl90IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
KGNvbm5lY3Rpb24sIGlkLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51
bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFs
IH5SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uKCkKKyAgICB7CisgICAgICAgIFJFTEVBU0VfQVNTRVJU
KCFtX2Rlc3RpbmF0aW9uLT5pc1BsYXlpbmcoKSk7CisgICAgfQorCisgICAgdm9pZCBzY2hlZHVs
ZUdyYWNlZnVsU2h1dGRvd25JZk5lZWRlZCgpCisgICAgeworICAgICAgICBpZiAoIWlzUGxheWlu
ZygpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX3Byb3RlY3RUaGlzRHVyaW5nR3Jh
Y2VmdWxTaHV0ZG93biA9IHRoaXM7CisgICAgICAgIHN0b3AoKTsKKyAgICB9CisKKyAgICB2b2lk
IHN0YXJ0KCkgeyBtX2Rlc3RpbmF0aW9uLT5zdGFydCgpOyB9CisgICAgdm9pZCBzdG9wKCkgeyBt
X2Rlc3RpbmF0aW9uLT5zdG9wKCk7IH0KKyAgICBib29sIGlzUGxheWluZygpIHsgcmV0dXJuIG1f
ZGVzdGluYXRpb24tPmlzUGxheWluZygpOyB9CisKK3ByaXZhdGU6CisgICAgUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbihHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBpZCwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlk
LCB1aW50MzJfdCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVpbnQzMl90IG51bWJlck9mT3V0cHV0
Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCisgICAgICAgIDogbV9jb25uZWN0aW9uKGNvbm5l
Y3Rpb24pCisgICAgICAgICwgbV9pZChpZCkKKyAgICAgICAgLCBtX2Rlc3RpbmF0aW9uKEF1ZGlv
RGVzdGluYXRpb246OmNyZWF0ZSgqdGhpcywgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENo
YW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKSkKKyAgICB7CisgICAg
fQorCisgICAgdm9pZCByZW5kZXIoQXVkaW9CdXMqIHNvdXJjZUJ1cywgQXVkaW9CdXMqIGRlc3Rp
bmF0aW9uQnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKSBvdmVycmlkZQorICAgIHsKKyAgICAg
ICAgaWYgKG1fcHJvdGVjdFRoaXNEdXJpbmdHcmFjZWZ1bFNodXRkb3duKQorICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOwor
ICAgICAgICBCaW5hcnlTZW1hcGhvcmUgcmVuZGVyU2VtYXBob3JlOworCisgICAgICAgIFZlY3Rv
cjxSZWY8U2hhcmVkTWVtb3J5Pj4gYnVmZmVyczsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IGRlc3RpbmF0aW9uQnVzLT5udW1iZXJPZkNoYW5uZWxzKCk7ICsraSkgeworICAgICAg
ICAgICAgYXV0byBtZW1vcnkgPSBTaGFyZWRNZW1vcnk6OmFsbG9jYXRlKHNpemVvZihmbG9hdCkg
KiBmcmFtZXNUb1Byb2Nlc3MpOworICAgICAgICAgICAgYnVmZmVycy5hcHBlbmQoKm1lbW9yeSk7
CisgICAgICAgIH0KKworICAgICAgICAvLyBGSVhNRTogUmVwbGFjZSB0aGlzIGNvZGUgd2l0aCBh
IHJpbmcgYnVmZmVyLiBBdCBsZWFzdCB0aGlzIGhhcHBlbnMgaW4gYXVkaW8gdGhyZWFkLgorICAg
ICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChb
dGhpcywgZnJhbWVzVG9Qcm9jZXNzLCAmYnVmZmVycywgJnJlbmRlclNlbWFwaG9yZV0geworICAg
ICAgICAgICAgUmVtb3RlQXVkaW9CdXNEYXRhIGJ1c0RhdGEgeyBmcmFtZXNUb1Byb2Nlc3MsIGJ1
ZmZlcnMubWFwKFtdKGF1dG8mIG1lbW9yeSkgeyByZXR1cm4gbWVtb3J5LmNvcHlSZWYoKTsgfSkg
fTsKKyAgICAgICAgICAgIEFTU0VSVChmcmFtZXNUb1Byb2Nlc3MpOworICAgICAgICAgICAgbV9j
b25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6UmVuZGVyQnVmZmVyKGJ1c0RhdGEpLCBbJl0oKSB7Cisg
ICAgICAgICAgICAgICAgcmVuZGVyU2VtYXBob3JlLnNpZ25hbCgpOworICAgICAgICAgICAgfSwg
bV9pZC50b1VJbnQ2NCgpKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJlbmRlclNlbWFwaG9yZS53
YWl0KCk7CisKKyAgICAgICAgYXV0byBhdWRpb0J1cyA9IEF1ZGlvQnVzOjpjcmVhdGUoYnVmZmVy
cy5zaXplKCksIGZyYW1lc1RvUHJvY2VzcywgZmFsc2UpOworICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgYnVmZmVycy5zaXplKCk7ICsraSkKKyAgICAgICAgICAgIGF1ZGlvQnVzLT5z
ZXRDaGFubmVsTWVtb3J5KGksIChmbG9hdCopYnVmZmVyc1tpXS0+ZGF0YSgpLCBmcmFtZXNUb1By
b2Nlc3MpOworICAgICAgICBkZXN0aW5hdGlvbkJ1cy0+Y29weUZyb20oKmF1ZGlvQnVzKTsKKyAg
ICB9CisKKyAgICB2b2lkIGlzUGxheWluZ0RpZENoYW5nZSgpIG92ZXJyaWRlCisgICAgeworICAg
ICAgICBpZiAobV9wcm90ZWN0VGhpc0R1cmluZ0dyYWNlZnVsU2h1dGRvd24pIHsKKyAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKCFtX2Rlc3RpbmF0aW9uLT5pc1BsYXlpbmcoKSk7CisgICAgICAg
ICAgICBSRUxFQVNFX0FTU0VSVChyZWZDb3VudCgpID09IDEpOworICAgICAgICAgICAgbV9wcm90
ZWN0VGhpc0R1cmluZ0dyYWNlZnVsU2h1dGRvd24gPSBudWxscHRyOyAvLyBEZWxldGVzICJ0aGlz
Ii4KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBjYWxsT25NYWluVGhy
ZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGlzUGxheWluZyA9IG1f
ZGVzdGluYXRpb24tPmlzUGxheWluZygpLCBpZCA9IG1faWQudG9VSW50NjQoKV0geworICAgICAg
ICAgICAgbV9jb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHk6OkRpZENoYW5nZUlzUGxheWluZyhpc1BsYXlpbmcpLCBpZCk7Cisg
ICAgICAgIH0pOworICAgIH0KKworICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIG1fY29u
bmVjdGlvbjsKKyAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBtX2lkOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBtX2Rlc3RpbmF0aW9uOworICAgIFJl
ZlB0cjxSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uPiBtX3Byb3RlY3RUaGlzRHVyaW5nR3JhY2VmdWxT
aHV0ZG93bjsKK307CisKK1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlcihHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9u
KQorICAgIDogbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rpb24pCit7Cit9CisK
K1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjp+UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXIoKSA9IGRlZmF1bHQ7CisKK3ZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6
OmNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1aW50
MzJfdCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVpbnQzMl90IG51bWJlck9mT3V0cHV0Q2hhbm5l
bHMsIGZsb2F0IHNhbXBsZVJhdGUsCisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllcik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAg
YXV0byBuZXdJRCA9IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyOjpnZW5lcmF0ZVRo
cmVhZFNhZmUoKTsKKyAgICBhdXRvIGNhbGxiYWNrID0gUmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6
Y3JlYXRlKG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgbmV3SUQsIGlucHV0RGV2aWNlSWQs
IG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0
ZSk7CisgICAgbV9hdWRpb0Rlc3RpbmF0aW9ucy5hZGQobmV3SUQsIFdURk1vdmUoY2FsbGJhY2sp
KTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihuZXdJRCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbk1hbmFnZXI6OmRlbGV0ZUF1ZGlvRGVzdGluYXRpb24oUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbklkZW50aWZpZXIgaWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIGRlc3RpbmF0aW9uID0gbV9hdWRpb0Rlc3RpbmF0aW9u
cy50YWtlKGlkKTsKKyAgICBpZiAoZGVzdGluYXRpb24pCisgICAgICAgIGRlc3RpbmF0aW9uLnZh
bHVlKCktPnNjaGVkdWxlR3JhY2VmdWxTaHV0ZG93bklmTmVlZGVkKCk7CisgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6c3Rh
cnRBdWRpb0Rlc3RpbmF0aW9uKFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIGlkLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAg
IGJvb2wgaXNQbGF5aW5nID0gZmFsc2U7CisgICAgaWYgKGF1dG8qIGl0ZW0gPSBtX2F1ZGlvRGVz
dGluYXRpb25zLmdldChpZCkpIHsKKyAgICAgICAgaXRlbS0+c3RhcnQoKTsKKyAgICAgICAgaXNQ
bGF5aW5nID0gaXRlbS0+aXNQbGF5aW5nKCk7CisgICAgfQorICAgIGNvbXBsZXRpb25IYW5kbGVy
KGlzUGxheWluZyk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OnN0
b3BBdWRpb0Rlc3RpbmF0aW9uKFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIGlkLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAg
IGJvb2wgaXNQbGF5aW5nID0gZmFsc2U7CisgICAgaWYgKGF1dG8qIGl0ZW0gPSBtX2F1ZGlvRGVz
dGluYXRpb25zLmdldChpZCkpIHsKKyAgICAgICAgaXRlbS0+c3RvcCgpOworICAgICAgICBpc1Bs
YXlpbmcgPSBpdGVtLT5pc1BsYXlpbmcoKTsKKyAgICB9CisgICAgY29tcGxldGlvbkhhbmRsZXIo
aXNQbGF5aW5nKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpJbmRleDog
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1
ZGUgIlJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiU2hhcmVk
TWVtb3J5LmgiCisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFu
ZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOworY2xhc3MgUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbjsKKworY2xhc3MgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIgOiBwcml2YXRl
IElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcik7Citw
dWJsaWM6CisgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIoR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyYpOworICAgIH5SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcigpOworCisg
ICAgdm9pZCBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJ
ZCwgdWludDMyX3QgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1aW50MzJfdCBudW1iZXJPZk91dHB1
dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlbW90
ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyKT4mJik7CisgICAgdm9pZCBkZWxldGVBdWRpb0Rl
c3RpbmF0aW9uKFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc3RhcnRBdWRpb0Rlc3RpbmF0aW9uKFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KTsKKyAgICB2b2lkIHN0b3BBdWRpb0Rlc3RpbmF0aW9uKFJlbW90ZUF1ZGlvRGVzdGluYXRpb25J
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKworICAgIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlRnJvbVdlYlByb2Nlc3MoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29k
ZXI+JiBlbmNvZGVyKQorICAgIHsKKyAgICAgICAgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5l
Y3Rpb24sIGRlY29kZXIsIGVuY29kZXIpOworICAgIH0KKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlRnJvbVdlYlByb2Nlc3MoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29k
ZXImIGRlY29kZXIpIHsgZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7IH0K
KworcHJpdmF0ZToKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jik7
CisKKyAgICBIYXNoTWFwPFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLCBSZWY8UmVt
b3RlQXVkaW9EZXN0aW5hdGlvbj4+IG1fYXVkaW9EZXN0aW5hdGlvbnM7CisgICAgR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyYgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZTsKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5tZXNzYWdl
cy5pbgkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM3IEBACisjIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAt
PiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKKworICAgIENy
ZWF0ZUF1ZGlvRGVzdGluYXRpb24oU3RyaW5nIGlucHV0RGV2aWNlSWQsIHVpbnQzMl90IG51bWJl
ck9mSW5wdXRDaGFubmVscywgdWludDMyX3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQg
c2FtcGxlUmF0ZSkgLT4gKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIg
aWQpIFN5bmNocm9ub3VzCisKKyAgICBEZWxldGVBdWRpb0Rlc3RpbmF0aW9uKFdlYktpdDo6UmVt
b3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgaWQpIC0+ICgpIEFzeW5jCisKKyAgICBTdGFy
dEF1ZGlvRGVzdGluYXRpb24oV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmll
ciBpZCkgLT4gKGJvb2wgaXNQbGF5aW5nKSBTeW5jaHJvbm91cworICAgIFN0b3BBdWRpb0Rlc3Rp
bmF0aW9uKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgaWQpIC0+IChi
b29sIGlzUGxheWluZykgU3luY2hyb25vdXMKKworfQorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCShyZXZpc2lvbiAyNTc0MTIpCisrKyBTb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDgsNiArNDgsMTEgQEAgUGFzdGVib2FyZFN0cmF0ZWd5KiBOZXR3
b3JrUHJvY2Vzc1BsYXRmbwogICAgIHJldHVybiBudWxscHRyOwogfQogCitNZWRpYVN0cmF0ZWd5
KiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFTdHJhdGVneSgp
Cit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIEJsb2JSZWdpc3RyeSogTmV0d29ya1Byb2Nl
c3NQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUJsb2JSZWdpc3RyeSgpCiB7CiAgICAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oCShy
ZXZpc2lvbiAyNTc0MTIpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDcg
QEAgcHJpdmF0ZToKICAgICAvLyBXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXMKICAgICBXZWJD
b3JlOjpMb2FkZXJTdHJhdGVneSogY3JlYXRlTG9hZGVyU3RyYXRlZ3koKSBvdmVycmlkZTsKICAg
ICBXZWJDb3JlOjpQYXN0ZWJvYXJkU3RyYXRlZ3kqIGNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVneSgp
IG92ZXJyaWRlOworICAgIFdlYkNvcmU6Ok1lZGlhU3RyYXRlZ3kqIGNyZWF0ZU1lZGlhU3RyYXRl
Z3koKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpCbG9iUmVnaXN0cnkqIGNyZWF0ZUJsb2JSZWdp
c3RyeSgpIG92ZXJyaWRlOwogfTsKIApJbmRleDogU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5CShyZXZpc2lvbiAyNTc0MTIpCisrKyBTb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L21lc3NhZ2VzLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yMjcsNiArMjI3LDcgQEAgZGVm
IHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZQogICAgICAgICAnV2ViS2l0OjpN
RE5TUmVnaXN0ZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJJZGVu
dGlmaWVyJywKKyAgICAgICAgJ1dlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZp
ZXInLAogICAgICAgICAnV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcicsCiAg
ICAgICAgICdXZWJLaXQ6OlJUQ0RlY29kZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6
UlRDRW5jb2RlcklkZW50aWZpZXInLApJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1NoYXJlZC9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oCShub25leGlzdGVudCkK
KysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSA8d3RmL09iamVjdElk
ZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2VudW0gUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbklkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25J
ZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRp
ZmllclR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9u
IDI1NzQxMikKKysrIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHdvcmtpbmcgY29weSkKQEAgLTE0MTAsOCArMTQxMCwxNCBAQAogCQk5QjAyRTBDQjIzNUVC
OTUzMDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkRlbGVnYXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjAyRTBDOTIzNUVCNjJEMDA0MDQ0
QjIgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkRlbGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIwMkUwQ0MyMzVFQjk1NzAwNDA0NEIyIC8q
IF9XS1RleHRNYW5pcHVsYXRpb25JdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5QjAyRTBDQTIzNUVCODg0MDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlw
dWxhdGlvbkl0ZW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5QjAyRTBENzIzNUZDOTRGMDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxhdGlvblRv
a2VuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjAy
RTBDRDIzNUVCOTY3MDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxhdGlvblRva2VuLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOUIxMjI5Q0QyM0ZG
MjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjEyMjlDQjIzRkYyNUYyMDA4
Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCAqLzsgfTsKKwkJOUIxMjI5
Q0UyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMTIyOUNDMjNG
RjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgKi87IH07
CisJCTlCMTIyOUQyMjNGRjJCQ0MwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRl
bnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OUIxMjI5RDAyM0ZGMkE1RTAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlm
aWVyLmggKi87IH07CiAJCTlCNTQ5OUFEMjM2MkE2RjkwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1
bGF0aW9uQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOUI1NDk5QUMyMzYyQTZGNjAwREY4QkE1IC8qIF9XS1RleHRNYW5pcHVsYXRp
b25Db25maWd1cmF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOUI1NDk5QjIyMzYyQTdFQzAwREY4QkE1IC8qIF9XS1RleHRNYW5pcHVsYXRp
b25FeGNsdXNpb25SdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5QjU0OTlCMDIzNjJBN0VDMDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkV4
Y2x1c2lvblJ1bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk5QjVCRUMyNjI0MDBGNEE5MDA3MEM2RUYgLyogV2ViTWVkaWFTdHJhdGVneS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI1QkVDMjQyNDAw
RjRBOTAwNzBDNkVGIC8qIFdlYk1lZGlhU3RyYXRlZ3kuaCAqLzsgfTsKKwkJOUI1QkVDMkEyNDAx
MDE1ODAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI1QkVDMjgyNDAxMDE1ODAwNzBD
NkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oICovOyB9OworCQk5QjVCRUMzMTI0
MDEwMjIyMDA3MEM2RUYgLyogUmVtb3RlQXVkaW9CdXNEYXRhLmggaW4gQ29weUZpbGVzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCNUJFQzMwMjQwMTAyMjIwMDcwQzZFRiAv
KiBSZW1vdGVBdWRpb0J1c0RhdGEuaCAqLzsgfTsKIAkJOUZCNUYzOTUxNjlFNkE4MDAwMkMyNUJG
IC8qIFdLQ29udGV4dFByaXZhdGVNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDlGQjVGMzkzMTY5RTZBODAwMDJDMjVCRiAvKiBXS0NvbnRleHRQcml2
YXRlTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQTEwMkE3MDgxRUMwRUVFOTAwRDgxRDgyIC8qIGNvbS5tYWNyb21lZGlhLkZsYXNoIFBsYXll
ciBFU1IucGx1Z2luLnNiIGluIENvcHkgUGx1Zy1pbiBTYW5kYm94IFByb2ZpbGVzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBNUUzOTQ5MUQ1QkQ4QTcwMEI0QjdDRSAvKiBj
b20ubWFjcm9tZWRpYS5GbGFzaCBQbGF5ZXIgRVNSLnBsdWdpbi5zYiAqLzsgfTsKIAkJQTEwNDZF
QTEyMDc5MjYzMTAwRjBDNUQ4IC8qIFdLUERGVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwNDZFOUYyMDc5MjYzMTAwRjBDNUQ4IC8qIFdLUERG
Vmlldy5oICovOyB9OwpAQCAtMjA2Niw2ICsyMDcyLDcgQEAKIAkJCQkyREI5NjA1MzIzOTg4NkMx
MDAxMDI3OTEgLyogY29tLmFwcGxlLldlYktpdC5HUFUuc2IgaW4gQ29weUZpbGVzICovLAogCQkJ
CUE3OENDRERCMTkzQUM5RjgwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcu
c2IgaW4gQ29weUZpbGVzICovLAogCQkJCUE3OENDRERDMTkzQUM5RkIwMDVFQ0MyNSAvKiBjb20u
YXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IgaW4gQ29weUZpbGVzICovLAorCQkJCTlCNUJFQzMx
MjQwMTAyMjIwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0J1c0RhdGEuaCBpbiBDb3B5RmlsZXMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CkBAIC00Mzk1LDEwICs0NDAyLDIwIEBACiAJCTlCMDJFMENEMjM1RUI5NjcwMDQwNDRCMiAvKiBf
V0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVGV4dE1hbmlwdWxh
dGlvblRva2VuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDJFMENFMjM1RUJC
MTQwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4ubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTlCMDJFMEQwMjM1RUJDQ0EwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9u
SXRlbS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25JdGVtLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjEyMjlDQjIzRkYyNUYyMDA4Q0E3NTEg
LyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OUIxMjI5Q0MyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2Vy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUIxMjI5Q0YyM0ZGMjgxNDAwOENBNzUx
IC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90
ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5QjEyMjlEMDIzRkYyQTVFMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbklkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklk
ZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI1NDk5QUMyMzYyQTZG
NjAwREY4QkE1IC8qIF9XS1RleHRNYW5pcHVsYXRpb25Db25maWd1cmF0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25Db25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTlCNTQ5OUFFMjM2MkE3QTcwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1
bGF0aW9uQ29uZmlndXJhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS1RleHRNYW5p
cHVsYXRpb25Db25maWd1cmF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
QjU0OTlCMDIzNjJBN0VDMDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1
bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI1NDk5QjEyMzYyQTdFQzAwREY4QkE1IC8q
IF9XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTlCNUJFQzI0MjQwMEY0QTkwMDcwQzZFRiAvKiBXZWJNZWRpYVN0cmF0ZWd5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk1lZGlhU3RyYXRlZ3kuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOUI1QkVDMjUyNDAwRjRBOTAwNzBDNkVGIC8qIFdlYk1lZGlhU3RyYXRlZ3ku
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTWVkaWFTdHJhdGVneS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTlCNUJFQzI4MjQwMTAxNTgwMDcwQzZFRiAvKiBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCNUJFQzI5MjQwMTAxNTgw
MDcwQzZFRiAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOUI1QkVDMkUyNDAxMDE4QzAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHku
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCNUJFQzMwMjQwMTAy
MjIwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0J1c0RhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3Rl
QXVkaW9CdXNEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCQzU5RDZDMUVG
Q0NDQjYwMDFFOEQwOSAvKiBDYWxsYmFja0lELmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENhbGxiYWNrSUQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUJDNTlE
NkQxRUZDREM2RDAwMUU4RDA5IC8qIE9wdGlvbmFsQ2FsbGJhY2tJRC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBPcHRpb25hbENhbGxiYWNrSUQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOUY1NEY4OEUxNjQ4OEU4NzAwN0RGODFBIC8qIEF1eGlsaWFyeVByb2Nl
c3NNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdXhpbGlh
cnlQcm9jZXNzTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTI4MCw2ICs1
Mjk3LDEwIEBACiAJCQkJMDc5MjMxMzIyMzlCM0IwQzAwOTU5OEUyIC8qIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5oICovLAogCQkJCTA3QjFEMDRCMjNEMzhGQ0UwMDM5OUE2RSAvKiBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4gKi8sCiAJCQkJMDc5MjMxNEUyMzlENUY1MzAw
OTU5OEUyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCAqLywKKwkJCQk5
QjVCRUMzMDI0MDEwMjIyMDA3MEM2RUYgLyogUmVtb3RlQXVkaW9CdXNEYXRhLmggKi8sCisJCQkJ
OUI1QkVDMjkyNDAxMDE1ODAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5j
cHAgKi8sCisJCQkJOUI1QkVDMjgyNDAxMDE1ODAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eS5oICovLAorCQkJCTlCNUJFQzJFMjQwMTAxOEMwMDcwQzZFRiAvKiBSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJMDdCOTNGRjUyM0FGMENC
ODAwMzZGOEVBIC8qIFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbi5oICovLAogCQkJCTA3
OTIzMTMwMjM5QjNCMEMwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwICov
LAogCQkJCTA3OTIzMTM0MjM5QjNCMEMwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXIuaCAqLywKQEAgLTUyOTUsNiArNTMxNiw4IEBACiAJCQkJMURGREQwRTIyM0Y2MTBGMDAwRTlC
NDkwIC8qIFZpZGVvTGF5ZXJSZW1vdGUuaCAqLywKIAkJCQkwNzFCQzU4MzIzQ0MyQkQ1MDA2ODBE
N0MgLyogVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwICovLAogCQkJCTA3MUJDNTgyMjNDQzJC
RDMwMDY4MEQ3QyAvKiBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oICovLAorCQkJCTlCNUJFQzI1
MjQwMEY0QTkwMDcwQzZFRiAvKiBXZWJNZWRpYVN0cmF0ZWd5LmNwcCAqLywKKwkJCQk5QjVCRUMy
NDI0MDBGNEE5MDA3MEM2RUYgLyogV2ViTWVkaWFTdHJhdGVneS5oICovLAogCQkJKTsKIAkJCXBh
dGggPSBtZWRpYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC01MzAzLDYgKzUzMjYs
OSBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQkxRDBFQ0VBOTIz
RkM4NEJCMDBEMTcyRjYgLyogY29jb2EgKi8sCisJCQkJOUIxMjI5Q0MyM0ZGMjVGMjAwOENBNzUx
IC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCAqLywKKwkJCQk5QjEyMjlDQjIz
RkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCAqLywKKwkJ
CQk5QjEyMjlDRjIzRkYyODE0MDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJMDcxQkM1N0UyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90
ZUF1ZGlvVHJhY2tQcm94eS5jcHAgKi8sCiAJCQkJMDcxQkM1N0YyM0NBNURCMTAwNjgwRDdDIC8q
IFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5oICovLAogCQkJCTA3MjVFRkFEMjM5QjAyNDUwMEE1MzhB
OSAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAgKi8sCkBAIC01NzYzLDYgKzU3
ODksNyBAQAogCQkJCUUxOEM5MkYzMTJEQjlFNzEwMENGMkFFQiAvKiBQcmludEluZm8uY3BwICov
LAogCQkJCUUxQ0MxQjhFMTJEN0VBREYwMDYyNTgzOCAvKiBQcmludEluZm8uaCAqLywKIAkJCQk0
NjNGRDQ4MTFFQjk0RUFEMDBBMjk4MkMgLyogUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggKi8s
CisJCQkJOUIxMjI5RDAyM0ZGMkE1RTAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25J
ZGVudGlmaWVyLmggKi8sCiAJCQkJRjZBMEMxM0YxMzI4MUU2RTAwNzA0MzBGIC8qIFJlc291cmNl
Q2FjaGVzVG9DbGVhci5oICovLAogCQkJCTVDQjdBRkU2MjNDNjgxQjAwMEU0OUNGMyAvKiBSZXNv
dXJjZUxvYWRJbmZvLmggKi8sCiAJCQkJNDEwNDgyQ0IxREREMkZCNTAwRjAwNkQwIC8qIFJUQ05l
dHdvcmsuY3BwICovLApAQCAtMTA1NTksNiArMTA1ODYsOSBAQAogCQkJCTgzMDQ4QUU2MUFDQTQ1
REMwMDgyQzgzMiAvKiBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBMUU2ODg3MDFGNkUyQkFCMDA3MDA2QTYgLyogUXVhcmFudGluZVNQSS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTdGRDMxODIyMkIzNTE1RTAwOEQwRThCIC8qIFJlZGlyZWN0U09BdXRob3JpemF0
aW9uU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUIxMjI5RDIyM0ZGMkJDQzAwOENBNzUx
IC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5QjEyMjlDRDIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTlCNUJFQzJBMjQwMTAxNTgwMDcwQzZFRiAvKiBSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJENDdCNTZEMTgx
MDcxNEUwMDNBM0FFRSAvKiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMkRERjczMTUxOEU5NTA2MDAwNEY1QTY2IC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
Q29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCMTZBRUExNjRCM0E4ODAwMjkwRDYy
IC8qIFJlbW90ZUxheWVyVHJlZUNvbnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAtMTA4MTEsNiAr
MTA4NDEsNyBAQAogCQkJCUM5OEM0OEE2MUI2RkQ0QzMwMDE0NTEwMyAvKiBXZWJNZWRpYVNlc3Np
b25Gb2N1c01hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUM5QzE4MzNDMUI3NDAyNkQwMDcw
MzZBNyAvKiBXZWJNZWRpYVNlc3Npb25Gb2N1c01hbmFnZXJDbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUM5Q0Q0Mzk4MUI0QjAwMUQwMDIzOUUzMyAvKiBXZWJNZWRpYVNlc3Npb25NZXRhZGF0
YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUI1QkVDMjYyNDAwRjRBOTAwNzBDNkVGIC8qIFdlYk1l
ZGlhU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEM0VGNDQzMTkxNzY0NjMwMDAzNDE4
NCAvKiBXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkwOTg1
NEVEMTJCQzRFMTgwMDBBRDA4MCAvKiBXZWJNZW1vcnlTYW1wbGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MTNGRkI5MTIwMTQ1OUM2MDAyNTk2RUEgLyogV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJv
dmlkZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTIyNTYsNiArMTIyODcsNyBAQAogCQkJCUMxNUNC
QjM3MjNGMzdFQ0IwMDMwMENDNyAvKiBQcmVmZXJlbmNlT2JzZXJ2ZXIubW0gaW4gU291cmNlcyAq
LywKIAkJCQkyRDU0QzMxQjIxMkY0REE2MDA0OUMxNzQgLyogUHJvY2Vzc0xhdW5jaGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUNEMjg2NUVGMjI1NTU2MjAwMDYwNkFDNyAvKiBQcm9jZXNzVGFz
a1N0YXRlT2JzZXJ2ZXIubW0gaW4gU291cmNlcyAqLywKKwkJCQk5QjEyMjlDRTIzRkYyNUYyMDA4
Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMkQ3MkExRkEyMTJCRjQ2RTAwNTE3QTIwIC8qIFJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGMjRBMkQxODc5RTRCQzAwM0FCRjBDIC8qIFJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMkRDMThGQjQyMThBNkU5RTAwMjVBODhEIC8qIFJlbW90ZUxheWVyVHJlZVZp
ZXdzLm1tIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAkocmV2aXNpb24gMjU3NDEyKQor
KysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDggQEAKICNpbmNsdWRlICJMaWJXZWJSVENDb2Rl
Y3MuaCIKICNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaCIKICNpbmNs
dWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VzLmgiCkBAIC03Nyw2ICs3OSw5IEBAIFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllck1hbmFnZXImIEdQVVByb2MKIAogdm9pZCBHUFVQcm9jZXNzQ29ubmVj
dGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6
OkRlY29kZXImIGRlY29kZXIpCiB7CisgICAgaWYgKG1fcmVjZWl2ZXJNYXAuZGlzcGF0Y2hNZXNz
YWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpKQorICAgICAgICByZXR1cm47CisKICAgICBpZiAoZGVj
b2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLnN1cHBsZW1lbnQ8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyPigpLT5kaWRSZWNl
aXZlUGxheWVyTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwpJ
bmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24uaAkocmV2aXNpb24gMjU3NDEyKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3
IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgor
I2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlck1hcC5oIgogI2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXIuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNTYsNiArNTcsMTYgQEAgcHVibGljOgogICAg
IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXImIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXIoKTsKICNlbmRpZgogCisgICAgdm9pZCBhZGRNZXNzYWdlUmVjZWl2ZXIoSVBDOjpT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25J
RCwgSVBDOjpNZXNzYWdlUmVjZWl2ZXImIHJlY2VpdmVyKQorICAgIHsKKyAgICAgICAgbV9yZWNl
aXZlck1hcC5hZGRNZXNzYWdlUmVjZWl2ZXIobWVzc2FnZVJlY2VpdmVyTmFtZSwgZGVzdGluYXRp
b25JRCwgcmVjZWl2ZXIpOworICAgIH0KKworICAgIHZvaWQgcmVtb3ZlTWVzc2FnZVJlY2VpdmVy
KElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIHVpbnQ2NF90IGRlc3Rp
bmF0aW9uSUQpCisgICAgeworICAgICAgICBtX3JlY2VpdmVyTWFwLnJlbW92ZU1lc3NhZ2VSZWNl
aXZlcihtZXNzYWdlUmVjZWl2ZXJOYW1lLCBkZXN0aW5hdGlvbklEKTsKKyAgICB9CisKIHByaXZh
dGU6CiAgICAgR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
KTsKIApAQCAtNjYsNiArNzcsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gVGhlIGNvbm5lY3Rpb24g
ZnJvbSB0aGUgd2ViIHByb2Nlc3MgdG8gdGhlIEdQVSBwcm9jZXNzLgogICAgIFJlZjxJUEM6OkNv
bm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBJUEM6Ok1lc3NhZ2VSZWNlaXZlck1hcCBtX3Jl
Y2VpdmVyTWFwOwogCiAjaWYgSEFWRShBVURJVF9UT0tFTikKICAgICBPcHRpb25hbDxhdWRpdF90
b2tlbl90PiBtX2F1ZGl0VG9rZW47CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZUF1ZGlvQnVzRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9CdXNEYXRhLmgJKG5vbmV4aXN0ZW50KQor
KysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0J1c0RhdGEu
aAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNl
LmgiCisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIlNo
YXJlZE1lbW9yeS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgUmVtb3RlQXVkaW9CdXNEYXRhIHsKKyAgICB1aW50NjRf
dCBmcmFtZXNUb1Byb2Nlc3MgeyAwIH07CisgICAgVmVjdG9yPFJlZjxTaGFyZWRNZW1vcnk+PiBj
aGFubmVsQnVmZmVyczsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CisgICAgdm9p
ZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIg
PDwgZnJhbWVzVG9Qcm9jZXNzOworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2
NF90PihjaGFubmVsQnVmZmVycy5zaXplKCkpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IGNoYW5uZWxCdWZmZXJzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBTaGFyZWRNZW1v
cnk6OkhhbmRsZSBoYW5kbGU7CisgICAgICAgICAgICBjaGFubmVsQnVmZmVyc1tpXS0+Y3JlYXRl
SGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkV3JpdGUpOworICAg
ICAgICAgICAgZW5jb2RlciA8PCBoYW5kbGU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgorICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBSZW1vdGVBdWRpb0J1c0RhdGEmIHJlc3VsdCkKKyAgICB7CisgICAgICAgIHVpbnQ2
NF90IGZyYW1lc1RvUHJvY2VzczsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShmcmFtZXNU
b1Byb2Nlc3MpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXN1bHQuZnJh
bWVzVG9Qcm9jZXNzID0gZnJhbWVzVG9Qcm9jZXNzOworCisgICAgICAgIHVpbnQ2NF90IHNpemUg
PSAwOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUpKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7
CisgICAgICAgICAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7CisgICAgICAgICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKGhhbmRsZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICAgICAgYXV0byBtZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1hcChoYW5kbGUsIFNo
YXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZFdyaXRlKTsKKyAgICAgICAgICAgIGlmIChtZW1v
cnkpCisgICAgICAgICAgICAgICAgcmVzdWx0LmNoYW5uZWxCdWZmZXJzLmFwcGVuZCgqbWVtb3J5
KTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eS5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMTA5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCisjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUg
IlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbk1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0F1ZGlvQnVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb0Rlc3Rp
bmF0aW9uLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBBdWRpb0J1cyA9IFdlYkNv
cmU6OkF1ZGlvQnVzOwordXNpbmcgQXVkaW9EZXN0aW5hdGlvbiA9IFdlYkNvcmU6OkF1ZGlvRGVz
dGluYXRpb247Cit1c2luZyBBdWRpb0lPQ2FsbGJhY2sgPSBXZWJDb3JlOjpBdWRpb0lPQ2FsbGJh
Y2s7CisKK3N0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHk6OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLAorICAgIGNvbnN0
IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1
bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQoreworICAg
IHJldHVybiBtYWtlVW5pcXVlPFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eT4oY2FsbGJhY2ss
IGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFu
bmVscywgc2FtcGxlUmF0ZSk7Cit9CisKK1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6UmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5KEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0
IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1
bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQorICAgIDog
bV9jYWxsYmFjayhjYWxsYmFjaykKKyAgICAsIG1fc2FtcGxlUmF0ZShzYW1wbGVSYXRlKQorewor
ICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIGRlc3RpbmF0aW9uSUQ7CisKKyAg
ICBhdXRvJiBjb25uZWN0aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24oKTsKKyAgICBjb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5kU3luYygK
KyAgICAgICAgTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpDcmVhdGVB
dWRpb0Rlc3RpbmF0aW9uKGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVt
YmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSksCisgICAgICAgIE1lc3NhZ2VzOjpSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6Q3JlYXRlQXVkaW9EZXN0aW5hdGlvbjo6UmVwbHko
ZGVzdGluYXRpb25JRCksIDApOworICAgIGNvbm5lY3Rpb24uYWRkTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgZGVzdGluYXRpb25JRC50b1VJbnQ2NCgpLCAqdGhpcyk7CisKKyAgICBtX2Rlc3RpbmF0aW9u
SUQgPSBkZXN0aW5hdGlvbklEOworfQorCitSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6On5S
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkoKQoreworICAgIGF1dG8mIGNvbm5lY3Rpb24gPSAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyAg
ICBjb25uZWN0aW9uLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fZGVzdGluYXRpb25JRC50
b1VJbnQ2NCgpKTsKKworICAgIGNvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNS
ZXBseSgKKyAgICAgICAgTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpE
ZWxldGVBdWRpb0Rlc3RpbmF0aW9uKG1fZGVzdGluYXRpb25JRCksIFtdIHsKKyAgICAgICAgLy8g
Q2FuJ3QgcmVtb3ZlIHRoaXMgZnJvbSBwcm94eU1hcCgpIGhlcmUgYmVjYXVzZSB0aGUgb2JqZWN0
IHdvdWxkIGhhdmUgYmVlbiBhbHJlYWR5IGRlbGV0ZWQuCisgICAgfSk7Cit9CisKK3ZvaWQgUmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpzdGFydCgpCit7CisgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5
bmMoCisgICAgICAgIE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6U3Rh
cnRBdWRpb0Rlc3RpbmF0aW9uKG1fZGVzdGluYXRpb25JRCksCisgICAgICAgIE1lc3NhZ2VzOjpS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6U3RhcnRBdWRpb0Rlc3RpbmF0aW9uOjpSZXBs
eShtX2lzUGxheWluZyksIDApOworfQorCit2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eTo6c3RvcCgpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoCisgICAgICAgIE1lc3NhZ2VzOjpS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6U3RvcEF1ZGlvRGVzdGluYXRpb24obV9kZXN0
aW5hdGlvbklEKSwKKyAgICAgICAgTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyOjpTdG9wQXVkaW9EZXN0aW5hdGlvbjo6UmVwbHkobV9pc1BsYXlpbmcpLCAwKTsKK30KKwor
dm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnJlbmRlckJ1ZmZlcihjb25zdCBXZWJL
aXQ6OlJlbW90ZUF1ZGlvQnVzRGF0YSYgYXVkaW9CdXNEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKGF1ZGlvQnVzRGF0YS5m
cmFtZXNUb1Byb2Nlc3MpOworICAgIEFTU0VSVChhdWRpb0J1c0RhdGEuY2hhbm5lbEJ1ZmZlcnMu
c2l6ZSgpKTsKKyAgICBhdXRvIGF1ZGlvQnVzID0gQXVkaW9CdXM6OmNyZWF0ZShhdWRpb0J1c0Rh
dGEuY2hhbm5lbEJ1ZmZlcnMuc2l6ZSgpLCBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzLCBm
YWxzZSk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGF1ZGlvQnVzRGF0YS5jaGFubmVs
QnVmZmVycy5zaXplKCk7ICsraSkKKyAgICAgICAgYXVkaW9CdXMtPnNldENoYW5uZWxNZW1vcnko
aSwgKGZsb2F0KilhdWRpb0J1c0RhdGEuY2hhbm5lbEJ1ZmZlcnNbaV0tPmRhdGEoKSwgYXVkaW9C
dXNEYXRhLmZyYW1lc1RvUHJvY2Vzcyk7CisKKyAgICBtX2NhbGxiYWNrLnJlbmRlcigwLCBhdWRp
b0J1cy5nZXQoKSwgYXVkaW9CdXNEYXRhLmZyYW1lc1RvUHJvY2Vzcyk7CisKKyAgICBjb21wbGV0
aW9uSGFuZGxlcigpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6ZGlk
Q2hhbmdlSXNQbGF5aW5nKGJvb2wgaXNQbGF5aW5nKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmgJKG5v
bmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNp
bmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9CdXNEYXRhLmgiCisj
aW5jbHVkZSAiUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJX
ZWJQcm9jZXNzU3VwcGxlbWVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9EZXN0aW5hdGlv
bi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9JT0NhbGxiYWNrLmg+CisKKyNpZiBQTEFURk9S
TShDT0NPQSkKKyNpbmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5oPgorI2VuZGlmCisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgOiBw
dWJsaWMgV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbiwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNl
aXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5KTsKK3B1YmxpYzoKKyAgICB1c2luZyBB
dWRpb0J1cyA9IFdlYkNvcmU6OkF1ZGlvQnVzOworICAgIHVzaW5nIEF1ZGlvSU9DYWxsYmFjayA9
IFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjazsKKworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYg
aW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBu
dW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsKKworICAgIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmIGlucHV0
RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVy
T2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSk7CisgICAgflJlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eSgpOworCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21HUFVQcm9j
ZXNzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKSB7
IGRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOyB9CisKKyAgICB2b2lkIHJl
bmRlckJ1ZmZlcihjb25zdCBXZWJLaXQ6OlJlbW90ZUF1ZGlvQnVzRGF0YSYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBkaWRDaGFuZ2VJc1BsYXlpbmcoYm9vbCBpc1Bs
YXlpbmcpOworCitwcml2YXRlOgorICAgIC8vIFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24KKyAg
ICB2b2lkIHN0YXJ0KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CisgICAg
Ym9vbCBpc1BsYXlpbmcoKSBvdmVycmlkZSB7IHJldHVybiBtX2lzUGxheWluZzsgfQorICAgIGZs
b2F0IHNhbXBsZVJhdGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3NhbXBsZVJhdGU7IH0K
KworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIEF1ZGlvSU9D
YWxsYmFjayYgbV9jYWxsYmFjazsKKyAgICBmbG9hdCBtX3NhbXBsZVJhdGU7CisgICAgUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgbV9kZXN0aW5hdGlvbklEOworICAgIGJvb2wgbV9p
c1BsYXlpbmcgeyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkubWVzc2FnZXMu
aW4JKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwzMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
IyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5IE5vdFJlZkNvdW50ZWQgeworCisgICAgUmVuZGVyQnVmZmVyKHN0cnVjdCBXZWJLaXQ6
OlJlbW90ZUF1ZGlvQnVzRGF0YSBkYXRhKSAtPiAoKSBBc3luYworICAgIERpZENoYW5nZUlzUGxh
eWluZyhib29sIGlzUGxheWluZykKKworfQorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRl
UmVtb3RlLmNwcAkocmV2aXNpb24gMjU3NDEyKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTM3LDIxICsxMzcsMjEgQEAgdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjphZGREYXRhQ3Vl
VwogewogICAgIEFTU0VSVChjbGllbnQoKSk7CiAgICAgaWYgKGF1dG8qIGNsaWVudCA9IHRoaXMt
PmNsaWVudCgpKQotICAgICAgICBjbGllbnQtPmFkZERhdGFDdWUoV1RGTW92ZShzdGFydCksIFdU
Rk1vdmUoZW5kKSwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6Y3JlYXRlKFdURk1vdmUoZGF0
YVZhbHVlKSksIHR5cGUpOworICAgICAgICBjbGllbnQtPmFkZERhdGFDdWUoV1RGTW92ZShzdGFy
dCksIFdURk1vdmUoZW5kKSwgV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6Y3Jl
YXRlKFdURk1vdmUoZGF0YVZhbHVlKSksIHR5cGUpOwogfQogCiB2b2lkIFRleHRUcmFja1ByaXZh
dGVSZW1vdGU6OnVwZGF0ZURhdGFDdWUoTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVu
ZCwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlJiYgZGF0YVZhbHVlKQogewogICAgIEFT
U0VSVChjbGllbnQoKSk7CiAgICAgaWYgKGF1dG8qIGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKQot
ICAgICAgICBjbGllbnQtPnVwZGF0ZURhdGFDdWUoV1RGTW92ZShzdGFydCksIFdURk1vdmUoZW5k
KSwgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6Y3JlYXRlKFdURk1vdmUoZGF0YVZhbHVlKSkp
OworICAgICAgICBjbGllbnQtPnVwZGF0ZURhdGFDdWUoV1RGTW92ZShzdGFydCksIFdURk1vdmUo
ZW5kKSwgV2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6Y3JlYXRlKFdURk1vdmUo
ZGF0YVZhbHVlKSkpOwogfQogCiB2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnJlbW92ZURh
dGFDdWUoTWVkaWFUaW1lJiYgc3RhcnQsIE1lZGlhVGltZSYmIGVuZCwgU2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZVZhbHVlJiYgZGF0YVZhbHVlKQogewogICAgIEFTU0VSVChjbGllbnQoKSk7CiAg
ICAgaWYgKGF1dG8qIGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKQotICAgICAgICBjbGllbnQtPnJl
bW92ZURhdGFDdWUoV1RGTW92ZShzdGFydCksIFdURk1vdmUoZW5kKSwgU2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZTo6Y3JlYXRlKFdURk1vdmUoZGF0YVZhbHVlKSkpOworICAgICAgICBjbGllbnQt
PnJlbW92ZURhdGFDdWUoV1RGTW92ZShzdGFydCksIFdURk1vdmUoZW5kKSwgV2ViQ29yZTo6U2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZTo6Y3JlYXRlKFdURk1vdmUoZGF0YVZhbHVlKSkpOwogfQog
I2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRy
YWNrUHJpdmF0ZVJlbW90ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oCShyZXZpc2lvbiAyNTc0MTIpCisr
KyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1v
dGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQogCisjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIlRleHRUcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVt
b3RlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZS5oPgpAQCAtNDQsNiArNDUsMTAgQEAgY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOwog
Y2xhc3MgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpJbmJh
bmRUZXh0VHJhY2tQcml2YXRlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShUZXh0VHJhY2tQ
cml2YXRlUmVtb3RlKQogcHVibGljOgorICAgIHVzaW5nIEdlbmVyaWNDdWVEYXRhID0gV2ViQ29y
ZTo6R2VuZXJpY0N1ZURhdGE7CisgICAgdXNpbmcgSVNPV2ViVlRUQ3VlID0gV2ViQ29yZTo6SVNP
V2ViVlRUQ3VlOworICAgIHVzaW5nIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSA9IFdl
YkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTsKKwogICAgIHN0YXRpYyBSZWY8
VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZT4gY3JlYXRlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSYg
cGxheWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRleHRUcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKICAgICB7CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHRUcmFja1ByaXZhdGVSZW1vdGUocGxheWVyLCBp
ZGVuZGlmaWVyLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAJ
KG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJN
ZWRpYVN0cmF0ZWd5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYk1lZGlhU3RyYXRlZ3kuaCIK
KworI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVk
aW9EZXN0aW5hdGlvblByb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb0Rlc3RpbmF0aW9u
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb0lPQ2FsbGJhY2suaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK1dlYk1lZGlhU3RyYXRlZ3k6On5XZWJNZWRpYVN0cmF0ZWd5KCkgPSBkZWZhdWx0
OworCisjaWYgRU5BQkxFKFdFQl9BVURJTykKK3N0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpBdWRp
b0Rlc3RpbmF0aW9uPiBXZWJNZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKFdl
YkNvcmU6OkF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZp
Y2VJZCwKKyAgICB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJl
ck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCit7CisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQorICAgIGlmIChtX3VzZUdQVVByb2Nlc3MpCisgICAgICAgIHJldHVybiBSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uUHJveHk6OmNyZWF0ZShjYWxsYmFjaywgaW5wdXREZXZpY2VJZCwgbnVt
YmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsK
KyNlbmRpZgorICAgIHJldHVybiBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoY2Fs
bGJhY2ssIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRw
dXRDaGFubmVscywgc2FtcGxlUmF0ZSk7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3Ry
YXRlZ3kuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1dlYk1lZGlhU3RyYXRlZ3kuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJDb3Jl
L01lZGlhU3RyYXRlZ3kuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYk1lZGlh
U3RyYXRlZ3kgOiBwdWJsaWMgV2ViQ29yZTo6TWVkaWFTdHJhdGVneSB7CitwdWJsaWM6CisgICAg
dmlydHVhbCB+V2ViTWVkaWFTdHJhdGVneSgpOworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQor
ICAgIHZvaWQgc2V0VXNlR1BVUHJvY2Vzcyhib29sIHVzZUdQVVByb2Nlc3MpIHsgbV91c2VHUFVQ
cm9jZXNzID0gdXNlR1BVUHJvY2VzczsgfQorI2VuZGlmCisKK3ByaXZhdGU6CisjaWYgRU5BQkxF
KFdFQl9BVURJTykKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlv
bj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbihXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2smLAorICAg
ICAgICBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRD
aGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0
ZSkgb3ZlcnJpZGU7CisjZW5kaWYKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBib29s
IG1fdXNlR1BVUHJvY2VzcyB7IGZhbHNlIH07CisjZW5kaWYKKworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlci5jcHAJKHJldmlzaW9uIDI1NzQxMikKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNiw2ICsyNiw5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oIgogCisjaW5jbHVkZSAiRGVjb2Rlci5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvSW50U2l6ZS5oPgorCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVO
QUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFf
U1RSRUFNKQogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwCShyZXZpc2lvbiAyNTc0MTIpCisrKyBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzksMTYgKzM5LDE5IEBACiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNs
dWRlICJXZWJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIldlYkxvYWRlclN0cmF0ZWd5
LmgiCisjaW5jbHVkZSAiV2ViTWVkaWFTdHJhdGVneS5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIK
ICNpbmNsdWRlICJXZWJQYXN0ZWJvYXJkT3ZlcnJpZGVzLmgiCiAjaW5jbHVkZSAiV2ViUGFzdGVi
b2FyZFByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGlu
YXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9E
b2N1bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2FkZXJTdHJhdGVneS5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTdHJhdGVneS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QYWdlR3JvdXAuaD4KQEAgLTczLDYgKzc2LDggQEAKIG5hbWVzcGFjZSBXZWJL
aXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKK2NsYXNzIFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb247CisKIHZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjppbml0aWFsaXplKCkKIHsKICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V2ViUGxhdGZvcm1TdHJhdGVnaWVzPiBwbGF0Zm9ybVN0
cmF0ZWdpZXM7CkBAIC05Myw2ICs5OCwxMSBAQCBQYXN0ZWJvYXJkU3RyYXRlZ3kqIFdlYlBsYXRm
b3JtU3RyYXRlZ2llCiAgICAgcmV0dXJuIHRoaXM7CiB9CiAKK01lZGlhU3RyYXRlZ3kqIFdlYlBs
YXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFTdHJhdGVneSgpCit7CisgICAgcmV0dXJuIG5l
dyBXZWJNZWRpYVN0cmF0ZWd5OworfQorCiBCbG9iUmVnaXN0cnkqIFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKIHsKICAgICByZXR1cm4gbmV3IEJsb2JSZWdpc3Ry
eVByb3h5OwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkocmV2aXNpb24gMjU3
NDEyKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIHByaXZhdGU6
CiAgICAgLy8gV2ViQ29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzCiAgICAgV2ViQ29yZTo6TG9hZGVy
U3RyYXRlZ3kqIGNyZWF0ZUxvYWRlclN0cmF0ZWd5KCkgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6
UGFzdGVib2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKSBvdmVycmlkZTsK
KyAgICBXZWJDb3JlOjpNZWRpYVN0cmF0ZWd5KiBjcmVhdGVNZWRpYVN0cmF0ZWd5KCkgb3ZlcnJp
ZGU7CiAgICAgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSBvdmVy
cmlkZTsKIAogICAgIC8vIFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVneQpJbmRleDogU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDI1NzQx
MikKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDEsNiArMTAxLDcgQEAKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JVSU1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViTG9hZGVyU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJXZWJN
ZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViTWVkaWFTdHJhdGVneS5oIgog
I2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIldlYk9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5o
IgpAQCAtMTk5LDYgKzIwMCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QaW5nTG9hZGVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGxh
dGZvcm1TdHJhdGVnaWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5Eb2N1bWVudC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUG9pbnRlckNhcHR1cmVDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QcmludENvbnRleHQuaD4KQEAgLTM2ODYsNiArMzY4OCw4IEBAIHZvaWQgV2ViUGFn
ZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2UKICAgICAgICAgbV9kcmF3aW5nQXJlYS0+dXBk
YXRlUHJlZmVyZW5jZXMoc3RvcmUpOwogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIC8v
IEZJWE1FOiB1c2VHUFVQcm9jZXNzRm9yTWVkaWEgc2hvdWxkIGJlIGEgUnVudGltZUVuYWJsZWRG
ZWF0dXJlIHNpbmNlIGl0J3MgZ2xvYmFsLgorICAgIHN0YXRpY19jYXN0PFdlYk1lZGlhU3RyYXRl
Z3kmPihwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bWVkaWFTdHJhdGVneSgpKS5zZXRVc2VHUFVQcm9j
ZXNzKHNldHRpbmdzLnVzZUdQVVByb2Nlc3NGb3JNZWRpYSgpKTsKICAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5zdXBwbGVtZW50PFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcj4oKS0+dXBkYXRl
UHJlZmVyZW5jZXMoc2V0dGluZ3MpOwogI2VuZGlmCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCShyZXZpc2lvbiAyNTc0MTIpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0wMi0yNiAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBDcmVhdGUgQXVkaW9EZXN0
aW5hdGlvbiBpbiB0aGUgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwODE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZGVkIFdlYk1lZGlhU3RyYXRlZ3kgd2hpY2ggaXMgYSB3cmFw
cGVyIGFyb3VuZCBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUuCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW06CisgICAgICAgIChXZWJNZWRpYVN0cmF0ZWd5KTog
QWRkZWQuCisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRl
Z3kpOgorCiAyMDIwLTAyLTI1ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5j
b20+CiAKICAgICAgICAgQnVpbGQgRml4CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
aAkocmV2aXNpb24gMjU3NDEyKQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQz
LDcgQEAgcHJpdmF0ZToKICAgICAvLyBXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXMKICAgICBX
ZWJDb3JlOjpMb2FkZXJTdHJhdGVneSogY3JlYXRlTG9hZGVyU3RyYXRlZ3koKSBvdmVycmlkZTsK
ICAgICBXZWJDb3JlOjpQYXN0ZWJvYXJkU3RyYXRlZ3kqIGNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVn
eSgpIG92ZXJyaWRlOworICAgIFdlYkNvcmU6Ok1lZGlhU3RyYXRlZ3kqIGNyZWF0ZU1lZGlhU3Ry
YXRlZ3koKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpCbG9iUmVnaXN0cnkqIGNyZWF0ZUJsb2JS
ZWdpc3RyeSgpIG92ZXJyaWRlOwogCiAgICAgLy8gV2ViQ29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5
CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCShyZXZpc2lvbiAyNTc0MTIpCisr
KyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4LDkgKzI4LDExIEBACiAjaW1wb3J0ICJXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW1wb3J0ICJXZWJQbHVnaW5QYWNrYWdlLmgiCiAj
aW1wb3J0ICJXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKKyNpbXBvcnQgPFdlYkNvcmUvQXVk
aW9EZXN0aW5hdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9CbG9iUmVnaXN0cnlJbXBsLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0NvbG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CisjaW1w
b3J0IDxXZWJDb3JlL01lZGlhU3RyYXRlZ3kuaD4KICNpbXBvcnQgPFdlYkNvcmUvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Bhc3RlYm9hcmRJdGVtSW5mby5oPgog
I2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVBhc3RlYm9hcmQuaD4KQEAgLTYyLDYgKzY0LDIyIEBA
IFBhc3RlYm9hcmRTdHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVnaWUKICAgICByZXR1cm4gdGhp
czsKIH0KIAorY2xhc3MgV2ViTWVkaWFTdHJhdGVneSBmaW5hbCA6IHB1YmxpYyBNZWRpYVN0cmF0
ZWd5IHsKK3ByaXZhdGU6CisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJh
Y2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCisgICAgICAgIHVuc2ln
bmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVs
cywgZmxvYXQgc2FtcGxlUmF0ZSkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIHJldHVybiBBdWRp
b0Rlc3RpbmF0aW9uOjpjcmVhdGUoY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5w
dXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7CisgICAgfQor
I2VuZGlmCit9OworCitNZWRpYVN0cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0
ZU1lZGlhU3RyYXRlZ3koKQoreworICAgIHJldHVybiBuZXcgV2ViTWVkaWFTdHJhdGVneTsKK30K
KwogY2xhc3MgV2ViQmxvYlJlZ2lzdHJ5IGZpbmFsIDogcHVibGljIEJsb2JSZWdpc3RyeSB7CiBw
cml2YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmIHVybCwgUmVm
PEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4mJiByZWZlcmVuY2UsIGNvbnN0IFN0cmluZyYgY29udGVu
dFR5cGUpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0ZXJGaWxlQmxvYlVSTCh1cmwsIFdU
Rk1vdmUocmVmZXJlbmNlKSwgY29udGVudFR5cGUpOyB9CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4v
Q2hhbmdlTG9nCShyZXZpc2lvbiAyNTc0MTIpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0wMi0yNiAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBDcmVhdGUgQXVkaW9EZXN0
aW5hdGlvbiBpbiB0aGUgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwODE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZGVkIFdlYk1lZGlhU3RyYXRlZ3kgd2hpY2ggaXMgYSB3cmFw
cGVyIGFyb3VuZCBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUuCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViTWVkaWFTdHJh
dGVneSk6IEFkZGVkLgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVNZWRp
YVN0cmF0ZWd5KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaDoKKwogMjAyMC0wMi0xMyAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjU1MTU4LCAyNTU0MDUgYW5kIHIy
NTU0ODYKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkocmV2aXNpb24gMjU3
NDEyKQorKysgU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsOSArMjcsMTEgQEAKIAogI2lu
Y2x1ZGUgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24uaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0Jsb2JSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQmxv
YlJlZ2lzdHJ5SW1wbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL01lZGlhU3RyYXRlZ3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUGFnZUdyb3VwLmg+CkBAIC02MCw2ICs2MiwyMiBAQCBQYXN0ZWJvYXJkU3RyYXRlZ3kq
IFdlYlBsYXRmb3JtU3RyYXRlZ2llCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK2NsYXNzIFdl
Yk1lZGlhU3RyYXRlZ3kgZmluYWwgOiBwdWJsaWMgTWVkaWFTdHJhdGVneSB7Citwcml2YXRlOgor
I2lmIEVOQUJMRShXRUJfQVVESU8pCisgICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRp
b24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29u
c3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAorICAgICAgICB1bnNpZ25lZCBudW1iZXJPZklucHV0
Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJh
dGUpIG92ZXJyaWRlCisgICAgeworICAgICAgICByZXR1cm4gQXVkaW9EZXN0aW5hdGlvbjo6Y3Jl
YXRlKGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJl
ck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOworICAgIH0KKyNlbmRpZgorfTsKKworTWVk
aWFTdHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVNZWRpYVN0cmF0ZWd5KCkK
K3sKKyAgICByZXR1cm4gbmV3IFdlYk1lZGlhU3RyYXRlZ3k7Cit9CisKIGNsYXNzIFdlYkJsb2JS
ZWdpc3RyeSBmaW5hbCA6IHB1YmxpYyBCbG9iUmVnaXN0cnkgewogcHJpdmF0ZToKICAgICB2b2lk
IHJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIFJlZjxCbG9iRGF0YUZpbGVSZWZl
cmVuY2U+JiYgcmVmZXJlbmNlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbCB7IG1f
YmxvYlJlZ2lzdHJ5LnJlZ2lzdGVyRmlsZUJsb2JVUkwodXJsLCBXVEZNb3ZlKHJlZmVyZW5jZSks
IGNvbnRlbnRUeXBlKTsgfQpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHJldmlz
aW9uIDI1NzQxMikKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw4IEBAIHBy
aXZhdGU6CiAgICAgV2ViUGxhdGZvcm1TdHJhdGVnaWVzKCk7CiAKICAgICAvLyBXZWJDb3JlOjpQ
bGF0Zm9ybVN0cmF0ZWdpZXMKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkxvYWRlclN0cmF0ZWd5KiBj
cmVhdGVMb2FkZXJTdHJhdGVneSgpOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6UGFzdGVib2FyZFN0
cmF0ZWd5KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6
OkJsb2JSZWdpc3RyeSogY3JlYXRlQmxvYlJlZ2lzdHJ5KCk7CisgICAgV2ViQ29yZTo6TG9hZGVy
U3RyYXRlZ3kqIGNyZWF0ZUxvYWRlclN0cmF0ZWd5KCkgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6
UGFzdGVib2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKSBvdmVycmlkZTsK
KyAgICBXZWJDb3JlOjpNZWRpYVN0cmF0ZWd5KiBjcmVhdGVNZWRpYVN0cmF0ZWd5KCkgb3ZlcnJp
ZGU7CisgICAgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSBvdmVy
cmlkZTsKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391826</attachid>
            <date>2020-02-26 18:22:10 -0800</date>
            <delta_ts>2020-02-26 18:37:34 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-208179-20200226182209.patch</filename>
            <type>text/plain</type>
            <size>95566</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NzU0NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDIwLTAyLTI2ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIENyZWF0ZSBBdWRpb0Rlc3RpbmF0
aW9uIGluIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA4MTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmVyIE5vYmxlLgor
CisgICAgICAgIEFkZCBhbiBhYnN0cmFjdGlvbiBhcm91bmQgdGhlIGNyZWF0aW9uIG9mIEF1ZGlv
RGVzdGluYXRpb24gdXNpbmcgbmV3bHkgaW50cm9kdWNlZCBtZWRpYVN0cmF0ZWd5LgorCisgICAg
ICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRB
dWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9E
ZXN0aW5hdGlvbk5vZGU6OmNyZWF0ZURlc3RpbmF0aW9uKTogVXNlIE1lZGlhU3RyYXRlZ3k6OmNy
ZWF0ZUF1ZGlvRGVzdGluYXRpb24KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyYXRlZ3kpOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9QbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRl
Z2llczo6bWVkaWFTdHJhdGVneSk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1
ZGlvQnVzLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oOgor
CiAyMDIwLTAyLTI2ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+
CiAKICAgICAgICAgSW1wbGVtZW50IHRoZSByZW1vdGUgUmVuZGVyaW5nQmFja2VuZApJbmRleDog
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCShyZXZpc2lvbiAyNTc1NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC05NTAsNiArOTUwLDcgQEAgc2V0KFdlYkNvcmVf
UFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnku
aAogICAgIHBsYXRmb3JtL01lZGlhU2FtcGxlLmgKICAgICBwbGF0Zm9ybS9NZWRpYVNlbGVjdGlv
bk9wdGlvbi5oCisgICAgcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5oCiAgICAgcGxhdGZvcm0vTm90
SW1wbGVtZW50ZWQuaAogICAgIHBsYXRmb3JtL09yaWVudGF0aW9uTm90aWZpZXIuaAogICAgIHBs
YXRmb3JtL1BPREludGVydmFsLmgKQEAgLTEwMjEsNyArMTAyMiwxMiBAQCBzZXQoV2ViQ29yZV9Q
UklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlv
blV0aWxpdGllcy5oCiAgICAgcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmgKIAor
ICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvQXJyYXkuaAorICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlv
QnVzLmgKKyAgICBwbGF0Zm9ybS9hdWRpby9BdWRpb0NoYW5uZWwuaAorICAgIHBsYXRmb3JtL2F1
ZGlvL0F1ZGlvRGVzdGluYXRpb24uaAogICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvSGFyZHdhcmVM
aXN0ZW5lci5oCisgICAgcGxhdGZvcm0vYXVkaW8vQXVkaW9JT0NhbGxiYWNrLmgKICAgICBwbGF0
Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaAogICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU291cmNl
UHJvdmlkZXIuaAogICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaApJ
bmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5h
dGlvbk5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAkocmV2aXNpb24gMjU3NTQ3KQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5v
ZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw4IEBACiAjaW5jbHVkZSAiQXVkaW9D
b250ZXh0LmgiCiAjaW5jbHVkZSAiQXVkaW9EZXN0aW5hdGlvbi5oIgogI2luY2x1ZGUgIkxvZ2dp
bmcuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmF0ZWd5LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJh
dGVnaWVzLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUg
PHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KQEAg
LTg0LDggKzg2LDggQEAgdm9pZCBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OmNyZWF0ZQog
ewogICAgIGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSA9IEF1ZGlvRGVzdGluYXRpb246OmhhcmR3
YXJlU2FtcGxlUmF0ZSgpOwogICAgIExPRyhXZWJBdWRpbywgIj4+Pj4gaGFyZHdhcmVTYW1wbGVS
YXRlID0gJWZcbiIsIGhhcmR3YXJlU2FtcGxlUmF0ZSk7Ci0gICAgCi0gICAgbV9kZXN0aW5hdGlv
biA9IEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZSgqdGhpcywgbV9pbnB1dERldmljZUlkLCBtX251
bWJlck9mSW5wdXRDaGFubmVscywgY2hhbm5lbENvdW50KCksIGhhcmR3YXJlU2FtcGxlUmF0ZSk7
CisKKyAgICBtX2Rlc3RpbmF0aW9uID0gcGxhdGZvcm1TdHJhdGVnaWVzKCktPm1lZGlhU3RyYXRl
Z3koKS5jcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKCp0aGlzLCBtX2lucHV0RGV2aWNlSWQsIG1fbnVt
YmVyT2ZJbnB1dENoYW5uZWxzLCBjaGFubmVsQ291bnQoKSwgaGFyZHdhcmVTYW1wbGVSYXRlKTsK
IH0KIAogdm9pZCBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OmVuYWJsZUlucHV0KGNvbnN0
IFN0cmluZyYgaW5wdXREZXZpY2VJZCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1NzU0NykKKysrIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5
KQpAQCAtMjg4OSw2ICsyODg5LDggQEAKIAkJOUFCMUYzODAxOEUyNDg5QTAwNTM0NzQzIC8qIENT
U1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDlBQjFGMzdFMThFMjQ4OUEwMDUzNDc0MyAvKiBDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOUIwMkUwQzgyMzVFQUQyQTAwNDA0NEIyIC8qIFRleHRNYW5pcHVsYXRpb25Db250
cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
QjAyRTBDMzIzNUU3NkFBMDA0MDQ0QjIgLyogVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjBBQkNB
RTIzNkJCNDMxMDBCNDUwODUgLyogVGFza1NvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwQUJDQUMyMzZCQjQwQTAwQjQ1MDg1IC8qIFRhc2tT
b3VyY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk5QjEyMjlDNDIzRkU0QkQyMDA4Q0E3NTEgLyogQXVkaW9EZXN0aW5hdGlvbkNvY29hLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTMxNTE4NjIzNTc3
NDVFMDAxMTVFNkUgLyogQXVkaW9EZXN0aW5hdGlvbkNvY29hLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOUIxMjI5QzcyM0ZFNEQ2QTAwOENBNzUx
IC8qIE1lZGlhU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDlCMTIyOUM2MjNGRTRENUYwMDhDQTc1MSAvKiBNZWRpYVN0cmF0ZWd5LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIyNERFOEUx
NTE5NEI5NTAwQzU5QzI3IC8qIEhUTUxCRElFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjI0REU4QzE1MTk0Qjk1MDBDNTlDMjcgLyogSFRN
TEJESUVsZW1lbnQuaCAqLzsgfTsKIAkJOUIyN0ZDNjAyMzREOUFEQjAwMzk0QTQ2IC8qIFdpbmRv
d0V2ZW50TG9vcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOUIyN0ZDNUUyMzREOUFEQTAwMzk0QTQ2IC8qIFdpbmRvd0V2ZW50TG9vcC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMkQ4QTc5MTQ5OTdD
Q0YwMEVDRUYzRSAvKiBVbmRvU3RlcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOUIyRDhBNzgxNDk5N0NDRjAwRUNFRjNFIC8qIFVuZG9TdGVwLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTUwNjcsMTAg
KzUwNjksMTAgQEAKIAkJRkQzMTYwMzYxMkIwMjY3NjAwQzFBMzU5IC8qIFNjcmlwdFByb2Nlc3Nv
ck5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZE
MzE1RkVDMTJCMDI2NzYwMEMxQTM1OSAvKiBTY3JpcHRQcm9jZXNzb3JOb2RlLmggKi87IH07CiAJ
CUZEMzE2MDNDMTJCMDI2NzYwMEMxQTM1OSAvKiBSZWFsdGltZUFuYWx5c2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNUZGMjEyQjAyNjc2MDBD
MUEzNTkgLyogUmVhbHRpbWVBbmFseXNlci5oICovOyB9OwogCQlGRDMxNjAzRTEyQjAyNjc2MDBD
MUEzNTkgLyogQW5hbHlzZXJOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGRDMxNUZGNDEyQjAyNjc2MDBDMUEzNTkgLyogQW5hbHlzZXJOb2RlLmgg
Ki87IH07Ci0JCUZEMzE2MDdBMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0FycmF5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA0NDEyQjAyNkY3
MDBDMUEzNTkgLyogQXVkaW9BcnJheS5oICovOyB9OwotCQlGRDMxNjA3QzEyQjAyNkY3MDBDMUEz
NTkgLyogQXVkaW9CdXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEZEMzE2MDQ2MTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0J1cy5oICovOyB9OwotCQlG
RDMxNjA3RTEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9DaGFubmVsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA0ODEyQjAyNkY3MDBDMUEzNTkg
LyogQXVkaW9DaGFubmVsLmggKi87IH07Ci0JCUZEMzE2MDdGMTJCMDI2RjcwMEMxQTM1OSAvKiBB
dWRpb0Rlc3RpbmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGRDMxNjA0OTEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9EZXN0aW5hdGlvbi5oICov
OyB9OworCQlGRDMxNjA3QTEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9BcnJheS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNDQxMkIwMjZGNzAw
QzFBMzU5IC8qIEF1ZGlvQXJyYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQlGRDMxNjA3QzEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9CdXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDQ2MTJC
MDI2RjcwMEMxQTM1OSAvKiBBdWRpb0J1cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCUZEMzE2MDdFMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0No
YW5uZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZE
MzE2MDQ4MTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0NoYW5uZWwuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlGRDMxNjA3RjEyQjAyNkY3MDBDMUEz
NTkgLyogQXVkaW9EZXN0aW5hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkQzMTYwNDkxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRp
b24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlG
RDMxNjA4MDEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9EU1BLZXJuZWwuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDRBMTJCMDI2RjcwMEMxQTM1
OSAvKiBBdWRpb0RTUEtlcm5lbC5oICovOyB9OwogCQlGRDMxNjA4MjEyQjAyNkY3MDBDMUEzNTkg
LyogQXVkaW9EU1BLZXJuZWxQcm9jZXNzb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDRDMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0RTUEtl
cm5lbFByb2Nlc3Nvci5oICovOyB9OwogCQlGRDMxNjA4MzEyQjAyNkY3MDBDMUEzNTkgLyogQXVk
aW9GaWxlUmVhZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGRDMxNjA0RDEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9GaWxlUmVhZGVyLmggKi87IH07
CkBAIC01MTQ4LDcgKzUxNTAsNyBAQAogCQlGREIxNzAwNjE0QTJCQUIyMDBBMkI1RDkgLyogTXVs
dGlDaGFubmVsUmVzYW1wbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGREIxNzAwNDE0QTJCQUIyMDBBMkI1RDkgLyogTXVsdGlDaGFubmVsUmVzYW1w
bGVyLmggKi87IH07CiAJCUZEQkQ0ODBEMTU5QkM2ODcwMDkzRUI0RiAvKiBKU01lZGlhU3RyZWFt
QXVkaW9Tb3VyY2VOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGREJENDgwQjE1OUJDNjg3MDA5M0VCNEYgLyogSlNNZWRpYVN0cmVhbUF1ZGlvU291
cmNlTm9kZS5oICovOyB9OwogCQlGREM1NEYwNTEzOTlCMERBMDA4RDkxMTcgLyogQmlxdWFkRmls
dGVyTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkRDNTRGMDIxMzk5QjBEQTAwOEQ5MTE3IC8qIEJpcXVhZEZpbHRlck5vZGUuaCAqLzsgfTsKLQkJ
RkRFMkQ1NUIxNTlFNjZFQjAwRENDQ0Y4IC8qIEF1ZGlvSU9DYWxsYmFjay5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRFMkQ1NUExNTlFNjZFQjAwREND
Q0Y4IC8qIEF1ZGlvSU9DYWxsYmFjay5oICovOyB9OworCQlGREUyRDU1QjE1OUU2NkVCMDBEQ0ND
RjggLyogQXVkaW9JT0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGREUyRDU1QTE1OUU2NkVCMDBEQ0NDRjggLyogQXVkaW9JT0NhbGxiYWNr
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkRF
QTYyNDMxNTIxMDJFMjAwNDc5REYwIC8qIEpTT3NjaWxsYXRvck5vZGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZERUE2MjQxMTUyMTAyRTIwMDQ3OURG
MCAvKiBKU09zY2lsbGF0b3JOb2RlLmggKi87IH07CiAJCUZERUE2MjQ3MTUyMTAyRkMwMDQ3OURG
MCAvKiBKU1BlcmlvZGljV2F2ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRkRFQTYyNDUxNTIxMDJGQzAwNDc5REYwIC8qIEpTUGVyaW9kaWNXYXZlLmgg
Ki87IH07CiAJCUZERjA5REM5MTM5OUI2MjIwMDY4OEU1QiAvKiBKU0JpcXVhZEZpbHRlck5vZGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZERjA5REM3
MTM5OUI2MjIwMDY4OEU1QiAvKiBKU0JpcXVhZEZpbHRlck5vZGUuaCAqLzsgfTsKQEAgLTExMjAz
LDYgKzExMjA1LDcgQEAKIAkJOUIwQUJDQTQyMzY3OUFDRjAwQjQ1MDg1IC8qIFdvcmtlckV2ZW50
TG9vcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrZXJFdmVudExvb3Au
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwQUJDQUMyMzZCQjQwQTAwQjQ1MDg1
IC8qIFRhc2tTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFza1NvdXJjZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5QjBGRTg3MzFEOUUwMkRGMDA0QThBQ0IgLyogRG9jdW1lbnRP
clNoYWRvd1Jvb3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERvY3VtZW50T3JTaGFkb3dS
b290LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUIxMjI5QzYyM0ZFNEQ1RjAw
OENBNzUxIC8qIE1lZGlhU3RyYXRlZ3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJhdGVneS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjEzMjU3QjFGM0QyQUJBMDBEQUFCNjkg
LyogRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5QjE5QjY3RTFCOTY0RTUyMDAzNDg3NDUgLyogU2hhZG93Um9vdC5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gU2hhZG93Um9vdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTlCMUFCMDc5MTY0OEM2OUQwMDUxRjNGMiAvKiBIVE1MRm9ybUNvbnRyb2xzQ29sbGVj
dGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjU5MzEsNiArMjU5MzQsNyBAQAogCQkJCUNERjJCMDAzMTgx
RjA1OUMwMEYyQjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggKi8sCiAJCQkJQ0Q2NDFFQzcxODFF
RDYwMTAwRUU0QzQxIC8qIE1lZGlhU2FtcGxlLmggKi8sCiAJCQkJQTE3RDI3NUQxRUFDNTc5ODAw
QkYwMUU3IC8qIE1lZGlhU2VsZWN0aW9uT3B0aW9uLmggKi8sCisJCQkJOUIxMjI5QzYyM0ZFNEQ1
RjAwOENBNzUxIC8qIE1lZGlhU3RyYXRlZ3kuaCAqLywKIAkJCQlCQzc3MkM0QzBDNEVCMzA0MDA4
MzI4NUYgLyogTUlNRVR5cGVSZWdpc3RyeS5jcHAgKi8sCiAJCQkJQkM3NzJDNEQwQzRFQjMwNDAw
ODMyODVGIC8qIE1JTUVUeXBlUmVnaXN0cnkuaCAqLywKIAkJCQlFMTUxM0Q1MDE2NzdGMDg4MDAx
NDlGQ0IgLyogTm90SW1wbGVtZW50ZWQuY3BwICovLApAQCAtMjkwNTYsNiArMjkwNjAsNyBAQAog
CQkJCUZEMzE2MDdFMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0NoYW5uZWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUZEMzE2MDA1MTJCMDI2NzYwMEMxQTM1OSAvKiBBdWRpb0NvbnRleHQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUZEMzE2MDdGMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0Rlc3RpbmF0
aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5QjEyMjlDNDIzRkU0QkQyMDA4Q0E3NTEgLyogQXVk
aW9EZXN0aW5hdGlvbkNvY29hLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjBCRDEyQjAyNzJB
MDBDMUEzNTkgLyogQXVkaW9EZXN0aW5hdGlvbk1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQz
MTYwMDgxMkIwMjY3NjAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGRDMxNjA4MDEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9EU1BLZXJuZWwuaCBp
biBIZWFkZXJzICovLApAQCAtMzE0ODksNiArMzE0OTQsNyBAQAogCQkJCUNENjQxRUIzMTgxOEY1
RUQwMEVFNEM0MSAvKiBNZWRpYVNvdXJjZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNE
QzhCNUE3MTgwNDc0RjcwMDE2RTY4NSAvKiBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDRERDMUU3QTE4QTk1MkYzMDAyN0E5RDQgLyogTWVkaWFTb3VyY2VQ
cml2YXRlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5QjEyMjlDNzIzRkU0RDZBMDA4Q0E3
NTEgLyogTWVkaWFTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MTUxN0QxNEQx
QzAwNDIwQUExIC8qIE1lZGlhU3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDk0QzE3
RDE3MDk2MDA0MjBBQTEgLyogTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMDc4MzIyODUxODAxM0VEODAwOTk5RTBDIC8qIE1lZGlhU3RyZWFtQXVk
aW9Tb3VyY2UuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TWVkaWFTdHJhdGVneS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01l
ZGlhU3RyYXRlZ3kuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9N
ZWRpYVN0cmF0ZWd5LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBBdWRpb0Rlc3RpbmF0aW9uOworY2xhc3MgQXVkaW9JT0NhbGxi
YWNrOworCitjbGFzcyBXRUJDT1JFX0VYUE9SVCBNZWRpYVN0cmF0ZWd5IHsKK3B1YmxpYzoKKyNp
ZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVz
dGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oCisgICAgICAgIEF1ZGlvSU9DYWxsYmFj
ayYsIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENo
YW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRl
KSA9IDA7CisjZW5kaWYKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIH5NZWRpYVN0cmF0ZWd5KCkg
PSBkZWZhdWx0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHJldmlzaW9uIDI1NzU0NykK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQmxv
YlJlZ2lzdHJ5OwogY2xhc3MgTG9hZGVyU3RyYXRlZ3k7CitjbGFzcyBNZWRpYVN0cmF0ZWd5Owog
Y2xhc3MgUGFzdGVib2FyZFN0cmF0ZWd5OwogCiBjbGFzcyBQbGF0Zm9ybVN0cmF0ZWdpZXMgewpA
QCAtMzksNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2xvYWRlclN0cmF0ZWd5ID0g
Y3JlYXRlTG9hZGVyU3RyYXRlZ3koKTsKICAgICAgICAgcmV0dXJuIG1fbG9hZGVyU3RyYXRlZ3k7
CiAgICAgfQotICAgIAorCiAgICAgUGFzdGVib2FyZFN0cmF0ZWd5KiBwYXN0ZWJvYXJkU3RyYXRl
Z3koKQogICAgIHsKICAgICAgICAgaWYgKCFtX3Bhc3RlYm9hcmRTdHJhdGVneSkKQEAgLTQ3LDYg
KzQ4LDEzIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fcGFzdGVib2FyZFN0cmF0ZWd5Owog
ICAgIH0KIAorICAgIE1lZGlhU3RyYXRlZ3kmIG1lZGlhU3RyYXRlZ3koKQorICAgIHsKKyAgICAg
ICAgaWYgKCFtX21lZGlhU3RyYXRlZ3kpCisgICAgICAgICAgICBtX21lZGlhU3RyYXRlZ3kgPSBj
cmVhdGVNZWRpYVN0cmF0ZWd5KCk7CisgICAgICAgIHJldHVybiAqbV9tZWRpYVN0cmF0ZWd5Owor
ICAgIH0KKwogICAgIEJsb2JSZWdpc3RyeSogYmxvYlJlZ2lzdHJ5KCkKICAgICB7CiAgICAgICAg
IGlmICghbV9ibG9iUmVnaXN0cnkpCkBAIC02NCwxMCArNzIsMTIgQEAgcHJvdGVjdGVkOgogcHJp
dmF0ZToKICAgICB2aXJ0dWFsIExvYWRlclN0cmF0ZWd5KiBjcmVhdGVMb2FkZXJTdHJhdGVneSgp
ID0gMDsKICAgICB2aXJ0dWFsIFBhc3RlYm9hcmRTdHJhdGVneSogY3JlYXRlUGFzdGVib2FyZFN0
cmF0ZWd5KCkgPSAwOworICAgIHZpcnR1YWwgTWVkaWFTdHJhdGVneSogY3JlYXRlTWVkaWFTdHJh
dGVneSgpID0gMDsKICAgICB2aXJ0dWFsIEJsb2JSZWdpc3RyeSogY3JlYXRlQmxvYlJlZ2lzdHJ5
KCkgPSAwOwogCiAgICAgTG9hZGVyU3RyYXRlZ3kqIG1fbG9hZGVyU3RyYXRlZ3kgeyB9OwogICAg
IFBhc3RlYm9hcmRTdHJhdGVneSogbV9wYXN0ZWJvYXJkU3RyYXRlZ3kgeyB9OworICAgIE1lZGlh
U3RyYXRlZ3kqIG1fbWVkaWFTdHJhdGVneSB7IH07CiAgICAgQmxvYlJlZ2lzdHJ5KiBtX2Jsb2JS
ZWdpc3RyeSB7IH07CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9B
dWRpb0J1cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1
ZGlvQnVzLmgJKHJldmlzaW9uIDI1NzU0NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0F1ZGlvQnVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTY2LDEwICs2NiwxMCBAQCBwdWJsaWM6
CiAgICAgLy8gYWxsb2NhdGUgaW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRvIGluaXRpYWxseSBo
YXZlIHRoZSBBdWRpb0NoYW5uZWxzIGNyZWF0ZWQgd2l0aCBtYW5hZ2VkIHN0b3JhZ2UuCiAgICAg
Ly8gTm9ybWFsIHVzYWdlIGlzIHRvIHBhc3MgdHJ1ZSBoZXJlLCBpbiB3aGljaCBjYXNlIHRoZSBB
dWRpb0NoYW5uZWxzIHdpbGwgbWVtb3J5LW1hbmFnZSB0aGVpciBvd24gc3RvcmFnZS4KICAgICAv
LyBJZiBhbGxvY2F0ZSBpcyBmYWxzZSB0aGVuIHNldENoYW5uZWxNZW1vcnkoKSBoYXMgdG8gYmUg
Y2FsbGVkIGxhdGVyIG9uIGZvciBlYWNoIGNoYW5uZWwgYmVmb3JlIHRoZSBBdWRpb0J1cyBpcyB1
c2VhYmxlLi4uCi0gICAgc3RhdGljIFJlZlB0cjxBdWRpb0J1cz4gY3JlYXRlKHVuc2lnbmVkIG51
bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBsZW5ndGgsIGJvb2wgYWxsb2NhdGUgPSB0cnVlKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmUHRyPEF1ZGlvQnVzPiBjcmVhdGUodW5zaWduZWQg
bnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IGxlbmd0aCwgYm9vbCBhbGxvY2F0ZSA9IHRydWUpOwog
CiAgICAgLy8gVGVsbHMgdGhlIGdpdmVuIGNoYW5uZWwgdG8gdXNlIGFuIGV4dGVybmFsbHkgYWxs
b2NhdGVkIGJ1ZmZlci4KLSAgICB2b2lkIHNldENoYW5uZWxNZW1vcnkodW5zaWduZWQgY2hhbm5l
bEluZGV4LCBmbG9hdCogc3RvcmFnZSwgc2l6ZV90IGxlbmd0aCk7CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRDaGFubmVsTWVtb3J5KHVuc2lnbmVkIGNoYW5uZWxJbmRleCwgZmxvYXQqIHN0
b3JhZ2UsIHNpemVfdCBsZW5ndGgpOwogCiAgICAgLy8gQ2hhbm5lbHMKICAgICB1bnNpZ25lZCBu
dW1iZXJPZkNoYW5uZWxzKCkgY29uc3QgeyByZXR1cm4gbV9jaGFubmVscy5zaXplKCk7IH0KQEAg
LTEyNiw3ICsxMjYsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBDb3BpZXMgdGhlIHNhbXBsZXMgZnJv
bSB0aGUgc291cmNlIGJ1cyB0byB0aGlzIG9uZS4KICAgICAvLyBUaGlzIGlzIGp1c3QgYSBzaW1w
bGUgcGVyLWNoYW5uZWwgY29weSBpZiB0aGUgbnVtYmVyIG9mIGNoYW5uZWxzIG1hdGNoLCBvdGhl
cndpc2UgYW4gdXAtbWl4IG9yIGRvd24tbWl4IGlzIGRvbmUuCi0gICAgdm9pZCBjb3B5RnJvbShj
b25zdCBBdWRpb0J1cyYgc291cmNlQnVzLCBDaGFubmVsSW50ZXJwcmV0YXRpb24gPSBTcGVha2Vy
cyk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb3B5RnJvbShjb25zdCBBdWRpb0J1cyYgc291
cmNlQnVzLCBDaGFubmVsSW50ZXJwcmV0YXRpb24gPSBTcGVha2Vycyk7CiAKICAgICAvLyBTdW1z
IHRoZSBzYW1wbGVzIGZyb20gdGhlIHNvdXJjZSBidXMgdG8gdGhpcyBvbmUuCiAgICAgLy8gVGhp
cyBpcyBqdXN0IGEgc2ltcGxlIHBlci1jaGFubmVsIHN1bW1pbmcgaWYgdGhlIG51bWJlciBvZiBj
aGFubmVscyBtYXRjaCwgb3RoZXJ3aXNlIGFuIHVwLW1peCBvciBkb3duLW1peCBpcyBkb25lLgpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRp
b24uaAkocmV2aXNpb24gMjU3NTQ3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
QXVkaW9EZXN0aW5hdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3IEBAIGNsYXNz
IEF1ZGlvRGVzdGluYXRpb24gewogcHVibGljOgogICAgIC8vIFBhc3MgaW4gKG51bWJlck9mSW5w
dXRDaGFubmVscyA+IDApIGlmIGxpdmUvbG9jYWwgYXVkaW8gaW5wdXQgaXMgZGVzaXJlZC4KICAg
ICAvLyBQb3J0LXNwZWNpZmljIGRldmljZSBpZGVudGlmaWNhdGlvbiBpbmZvcm1hdGlvbiBmb3Ig
bGl2ZS9sb2NhbCBpbnB1dCBzdHJlYW1zIGNhbiBiZSBwYXNzZWQgaW4gdGhlIGlucHV0RGV2aWNl
SWQuCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUo
QXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBu
dW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZs
b2F0IHNhbXBsZVJhdGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmlu
ZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25l
ZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsKIAogICAgIHZpcnR1
YWwgfkF1ZGlvRGVzdGluYXRpb24oKSA9IGRlZmF1bHQ7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lv
biAyNTc1NDcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDExMyBAQAorMjAyMC0wMi0yNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9y
Zz4KKworICAgICAgICBDcmVhdGUgQXVkaW9EZXN0aW5hdGlvbiBpbiB0aGUgR1BVIHByb2Nlc3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODE3OQor
CisgICAgICAgIFJldmlld2VkIGJ5IEplciBOb2JsZS4KKworICAgICAgICBDcmVhdGUgQXVkaW9E
ZXN0aW5hdGlvbiBpbiB0aGUgR1BVIHByb2Nlc3MgaW5zdGVhZCBvZiB0aGUgV2ViQ29udGVudCBw
cm9jZXNzIGZvciBXZWJBdWRpbyBBUEkgd2hlbgorICAgICAgICB0aGUgTWVkaWEtaW4tR1BVLXBy
b2Nlc3MgZmVhdHVyZSBpcyBlbmFibGVkLgorCisgICAgICAgIFRvIGRvIHRoaXMsIFdlYk1lZGlh
U3RyYXRlZ3ksIGEgY29uY3JldGUgaW1wbGVtZW50YXRpb24gb2YgTWVkaWFTdHJhdGVneSwgaW4g
dGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBnZXRzCisgICAgICAgIGEgYm9vbGVhbiBmbGFnIGluZGlj
YXRpbmcgd2hldGhlciB0aGUgR1BVIHByb2Nlc3Mgc2hvdWxkIGJlIHVzZWQgZm9yIEF1ZGlvRGVz
dGluYXRpb24gb3Igbm90LiBXaGVuIHRoZSBmbGFnCisgICAgICAgIGlzIHNldCwgd2UgY3JlYXRl
IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSBpbnN0ZWFkIG9mIEF1ZGlvRGVzdGluYXRpb24g
aW4gV2ViQ29udGVudCBwcm9jZXNzLgorCisgICAgICAgIEVhY2ggUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5IHRhbGtzIHRvIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyIGluIHRoZSBH
UFUgcHJvY2VzcyBhbmQgY3JlYXRlcworICAgICAgICBhIGNvcnJlc3BvbmRpbmcgUmVtb3RlQXVk
aW9EZXN0aW5hdGlvbiB3aGljaCBpbiB0dXJuIGNyZWF0ZXMgV2ViQ29yZSdzIEF1ZGlvRGVzdGlu
YXRpb24gaW4gdGhlIEdQVSBwcm9jZXNzLgorCisgICAgICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRp
b24gaXMgaXRzZWxmIGFuIEF1ZGlvSU9DYWxsYmFjayBmb3IgQXVkaW9EZXN0aW5hdGlvbiBpdCBj
cmVhdGVzLCBhbmQgZGVsZWdhdGVzCisgICAgICAgIGl0cyBjYWxsYmFjayB0byBXZWJDb250ZW50
IHByb2Nlc3MnIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSBhcyBuZWVkZWQuCisKKyAgICAg
ICAgSW4gdGhpcyBpbml0aWFsIHBhdGNoLCB3ZSBzZW5kIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Q
cm94eTo6UmVuZGVyQnVmZmVyIElQQyBjYWxsIHRvIHRoZSBXZWJDb250ZW50IHByb2Nlc3MKKyAg
ICAgICAgZm9yIGVhY2ggcmVuZGVyIGNhbGwgd2UgZ2V0IGZyb20gQ29yZUF1ZGlvIGZvciBzaW1w
bGljaXR5IHVzaW5nIG5ld2x5IGludHJvZHVjZWQgUmVtb3RlQXVkaW9CdXNEYXRhLAorICAgICAg
ICB3aGljaCBob2xkcyBhIFNoYXJlZE1lbW9yeSBmb3IgZWFjaCBjaGFubmVsIGluIHRoZSBhdWRp
byBidXMuCisKKyAgICAgICAgV2Ugd2lsbCBlbGltaW5hdGUgdGhpcyBJUEMgb3ZlcmhlYWQgaW4g
YSBmb2xsb3cgdXAgcGF0Y2ggdXNpbmcgQ0FSaW5nQnVmZmVyLgorCisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAq
IEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmRpZFJlY2VpdmVNZXNzYWdlKTogQWRkZWQgdGhlIGNvZGUgdG8gZGlzcGF0Y2ggbWVzc2FnZXMg
dG8KKyAgICAgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuCisgICAgICAgIChXZWJL
aXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6IERp
dHRvLgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbik6IEFk
ZGVkLiBUaGlzIGNsYXNzIGlzIHRoZSBiYWNraW5nIG9iamVjdCB3aGljaCBjcmVhdGVzIFdlYkNv
cmUncworICAgICAgICBBdWRpb0Rlc3RpbmF0aW9uIGFuZCBhY3R1YWxseSB0YWxrcyB0byBDb3Jl
QXVkaW8gaW4gR1BVIHByb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb246OmNyZWF0ZSk6IEFkZGVkLgorCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVz
dGluYXRpb246On5SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OnNjaGVkdWxlR3JhY2VmdWxTaHV0ZG93bklmTmVl
ZGVkKTogRGVsYXlzIHRoZSBkZWxldGlvbiBvZiB0aGlzIG9iamVjdAorICAgICAgICB1bnRpbCB0
aGUgYXVkaW8gdGhyZWFkcyBzdG9wcyBydW5uaW5nLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uOjpzdGFydCk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uOjpzdG9wKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1
ZGlvRGVzdGluYXRpb246OmlzUGxheWluZyk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uKTogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OnJlbmRlcik6IFNlbmRzIGEgc3lu
YyBJUEMgdG8gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcycKKyAgICAgICAgUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5IHRvIGZpbGwgdGhlIGF1ZGlvIGJ1ZmZlci4gTm90ZSB0aGF0IHRoaXMgZnVu
Y3Rpb24gZ2V0cyBjYWxsZWQgaW4gYXVkaW8gdGhyZWFkLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uOjppc1BsYXlpbmdEaWRDaGFuZ2UpOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIpOiBBZGRlZC4gVGhpcyBjbGFz
cyBtYW5hZ2VzIGFsbCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uIG9iamVjdHMgb3duZWQKKyAgICAg
ICAgYnkgYSBzaW5nbGUgV2ViQ29udGVudCBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIp
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6
On5SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcik6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbik6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6
ZGVsZXRlQXVkaW9EZXN0aW5hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6c3RhcnRBdWRpb0Rlc3RpbmF0aW9uKTogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpzdG9wQXVkaW9E
ZXN0aW5hdGlvbik6IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVk
aW9EZXN0aW5hdGlvbk1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlU3luY01lc3NhZ2VGcm9tV2ViUHJvY2Vz
cyk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
cjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vzcyk6IEFkZGVkLgorICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW46
IEFkZGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0
cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3kpOiBBZGRlZC4gUmV0dXJucyBudWxscHRyIHNp
bmNlIE5ldHdvcmtpbmcKKyAgICAgICAgcHJvY2VzcyBoYXMgbm8gYnVzaW5lc3MgcnVubmluZyBB
dWRpb0Rlc3RpbmF0aW9uLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
UGxhdGZvcm1TdHJhdGVnaWVzLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUGxh
dGZvcm1TdHJhdGVnaWVzKToKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTaGFyZWQvUmVtb3RlQXVk
aW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyVHlwZSk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllcik6IEFkZGVkLiBUaGUgaWRlbnRpZmll
ciBmb3IgZWFjaCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uCisgICAgICAgIGFuZCBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkgKGNvcnJlc3BvbmRpbmcgb2JqZWN0cyBvZiBlYWNoIGNsYXNzIHVz
ZSB0aGUgc2FtZSBJRCB0byBjb21tdW5pY2F0ZSkuCisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRp
b0J1c0RhdGEuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvQnVzRGF0YSk6
IEFkZGVkLiBFbmNvZGVzIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBlYWNoIHJlbmRlciBjYWxsLgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0J1c0RhdGE6OmVuY29kZSBjb25zdCk6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0J1c0RhdGE6OmRlY29kZSk6IEFkZGVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJv
eHkpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5
OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkpOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Ojp+UmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Q
cm94eTo6c3RhcnQpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5OjpzdG9wKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eTo6cmVuZGVyQnVmZmVyKTogQWRkZWQuIENhbGxzIFdlYkNvcmUncyBBdWRp
b0lPQ2FsbGJhY2sgdG8gZmlsbAorICAgICAgICB0aGUgYXVkaW8gYnVmZmVyIGdpdmVuIGJ5IHRo
ZSBHUFUgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5OjpkaWRDaGFuZ2VJc1BsYXlpbmcpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZUZyb21HUFVQcm9j
ZXNzKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eTo6aXNQbGF5aW5nKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eTo6c2FtcGxlUmF0ZSk6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHA6
IEZpeGVkIHRoZSB1bmlmaWVkIGJ1aWxkcy4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmg6IERpdHRvLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViTWVkaWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbik6IEFkZGVkLgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyYXRlZ3kpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViTWVkaWFTdHJhdGVneTo6c2V0VXNlR1BVUHJvY2Vzcyk6IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcDog
Rml4ZWQgdGhlIHVuaWZpZWQgYnVpbGRzLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVNZWRpYVN0cmF0ZWd5KTogQWRkZWQuCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKTogU2V0cyBXZWJNZWRpYVN0cmF0ZWd5J3MgZmxhZyB0
byB1c2UgR1BVIHByb2Nlc3MuCisKIDIwMjAtMDItMjYgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fi
b3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgdGhlIHJlbW90ZSBSZW5k
ZXJpbmdCYWNrZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CShyZXZpc2lvbiAyNTc1NDcpCisrKyBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QJKHdvcmtpbmcgY29weSkKQEAgLTE3LDYgKzE3LDcgQEAg
JChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVAogJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbgogJChQ
Uk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNi
LmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVz
c2FnZXMuaW4KQEAgLTExMCw2ICsxMTEsNyBAQCAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0Z1
bGxTY3JlZW4vV2ViCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCisk
KFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5tZXNzYWdlcy5p
bgpJbmRleDogU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CShyZXZpc2lvbiAyNTc1NDcpCisrKyBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0xMjMsNiArMTIzLDEwIEBAICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWIKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1BsdWdpblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUGx1Z2luUHJveHlN
ZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9Q
bHVnaW5Qcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VzLmNw
cAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVk
aW9EZXN0aW5hdGlvbk1hbmFnZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHlNZXNzYWdlcy5j
cHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlck1l
c3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5o
CkluZGV4OiBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAyNTc1NDcpCisrKyBT
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTE0Niw2
ICsxNDYsOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBQbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbk1hbmFnZXIgXAogICAgIFBsdWdpblByb2Nlc3NQcm94eSBcCiAgICAgUGx1Z2luUHJveHkg
XAorICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyIFwKKyAgICBSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHkgXAogICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
TWFuYWdlciBcCiAgICAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIgXAogICAg
IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkgXApJbmRleDogU291cmNlL1dlYktpdC9Q
bGF0Zm9ybU1hYy5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtTWFj
LmNtYWtlCShyZXZpc2lvbiAyNTc1NDcpCisrKyBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtTWFjLmNt
YWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xNjEsNiArMTYxLDExIEBAIGxpc3QoQVBQRU5EIFdlYktp
dF9NRVNTQUdFU19JTl9GSUxFUwogICAgIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbgogICAgIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbgog
CisgICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5tZXNz
YWdlcy5pbgorICAgIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4KKyAgICBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkubWVzc2FnZXMuaW4KKyAgICBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyLm1lc3NhZ2VzLmluCisKICAgICBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2Rl
Y3NQcm94eS5tZXNzYWdlcy5pbgogICAgIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllck1hbmFnZXIubWVzc2FnZXMuaW4KICAgICBHUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIubWVzc2FnZXMuaW4K
QEAgLTE3MSwxMCArMTc2LDYgQEAgbGlzdChBUFBFTkQgV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVT
CiAgICAgR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXIubWVzc2FnZXMuaW4KICAgICBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCiAKLSAgICBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KLSAgICBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCi0gICAgR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgotICAgIAogICAgIE5l
dHdvcmtQcm9jZXNzL0N1c3RvbVByb3RvY29scy9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXIu
bWVzc2FnZXMuaW4KIAogICAgIFNoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQ
cm94eS5tZXNzYWdlcy5pbgpJbmRleDogU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CShyZXZpc2lvbiAyNTc1NDcpCisrKyBT
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01MzgsMTEgKzUzOCwx
MyBAQCBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKK1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
TUlNRVR5cGVDYWNoZS5jcHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVN
ZWRpYVJlc291cmNlUHJveHkuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2
YXRlUmVtb3RlLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1v
dGUuY3BwCitXZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcAogV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKIFdlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJl
Y29yZGVyUHJvdmlkZXIuY3BwCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CShyZXZpc2lvbiAy
NTc1NDcpCisrKyBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTY1MCw2ICs2NTAsOCBAQCBHUFVQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBH
UFVQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcAogTGliV2ViUlRDQ29kZWNzUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwCiBMaWJXZWJSVENDb2RlY3NNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlTWVkaWFSZWNvcmRl
ck1lc3NhZ2VSZWNlaXZlci5jcHAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDI1NzU0NykK
KysrIFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgIkxpYldlYlJUQ0Nv
ZGVjc1Byb3h5LmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNzUHJveHlNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlci5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIu
aCIKICNpbmNsdWRlICJSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXJN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
TWVzc2FnZXMuaCIKQEAgLTEyNyw2ICsxMjksMTQgQEAgdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpkaWRSZWNlaQogICAgIENSQVNIKCk7CiB9CiAKK1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyJiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2Vy
KQorICAgICAgICBtX3JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyID0gbWFrZVVuaXF1ZTxS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcj4oKnRoaXMpOworCisgICAgcmV0dXJuICptX3Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOworfQorCiBSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlciYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIoKQogewogICAgIGlmICghbV9yZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcikKQEAgLTIwNSw2
ICsyMTUsMTAgQEAgdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZWxlYXNlUgogCiBi
b29sIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKIHsKKyAgICBpZiAoZGVj
b2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25NYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgcmVtb3RlQXVk
aW9EZXN0aW5hdGlvbk1hbmFnZXIoKS5kaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNv
bm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAgICAgaWYg
KGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIHJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCkuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vz
cyhjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0yNjAsNiAr
Mjc0LDExIEBAIGJvb2wgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2gKIAogYm9v
bCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaXNwYXRjaFN5bmNNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9w
dHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogeworICAgIGlmIChkZWNvZGVyLm1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICByZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uTWFuYWdlcigpLmRpZFJlY2VpdmVTeW5jTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNvbm5lY3Rp
b24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAg
ICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAg
cmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKS5kaWRSZWNlaXZlU3luY01lc3NhZ2VGcm9t
V2ViUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAkocmV2aXNpb24gMjU3NTQ3KQorKysgU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAkod29ya2luZyBjb3B5
KQpAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgR1BVUHJvY2Vz
czsKIGNsYXNzIExpYldlYlJUQ0NvZGVjc1Byb3h5OworY2xhc3MgUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXI7CiBjbGFzcyBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1h
bmFnZXI7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKIGNsYXNzIFJlbW90
ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOwpAQCAtODcsNiArODgsNyBAQCBwdWJsaWM6CiBwcml2YXRl
OgogICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoR1BVUHJvY2VzcyYsIFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGlmaWVyLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFBBTDo6U2Vzc2lv
bklEKTsKIAorICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyJiByZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlcigpOwogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiBy
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpOwogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBV
U0UoTElCV0VCUlRDKQogICAgIExpYldlYlJUQ0NvZGVjc1Byb3h5JiBsaWJXZWJSVENDb2RlY3NQ
cm94eSgpOwpAQCAtMTE3LDYgKzExOSw3IEBAIHByaXZhdGU6CiAgICAgSVBDOjpNZXNzYWdlUmVj
ZWl2ZXJNYXAgbV9tZXNzYWdlUmVjZWl2ZXJNYXA7CiAgICAgUmVmPEdQVVByb2Nlc3M+IG1fZ3B1
UHJvY2VzczsKICAgICBjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBtX3dlYlByb2Nl
c3NJZGVudGlmaWVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
TWFuYWdlcj4gbV9yZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjsKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI+IG1fcmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
PiBtX3JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OwogICAgIFBBTDo6U2Vzc2lvbklEIG1f
c2Vzc2lvbklEOwpJbmRleDogU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwCShub25leGlz
dGVudCkKKysrIFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNzcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIkdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0J1c0RhdGEu
aCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHlNZXNzYWdlcy5oIgorI2lu
Y2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9CdXMuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0F1
ZGlvSU9DYWxsYmFjay5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CisjaW5j
bHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL3RocmVhZHMv
QmluYXJ5U2VtYXBob3JlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFJlbW90ZUF1ZGlv
RGVzdGluYXRpb24+LCBwdWJsaWMgV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrIHsKK3B1YmxpYzoK
KyAgICB1c2luZyBBdWRpb0J1cyA9IFdlYkNvcmU6OkF1ZGlvQnVzOworICAgIHVzaW5nIEF1ZGlv
RGVzdGluYXRpb24gPSBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uOworICAgIHVzaW5nIFNoYXJl
ZEJ1ZmZlciA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjsKKworICAgIHN0YXRpYyBSZWY8UmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5l
Y3Rpb24sIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIGlkLAorICAgICAgICBjb25z
dCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVpbnQzMl90IG51bWJlck9mSW5wdXRDaGFubmVscywg
dWludDMyX3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZUF1ZGlvRGVzdGluYXRpb24oY29u
bmVjdGlvbiwgaWQsIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVy
T2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSkpOworICAgIH0KKworICAgIHZpcnR1YWwgflJl
bW90ZUF1ZGlvRGVzdGluYXRpb24oKQorICAgIHsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoIW1f
ZGVzdGluYXRpb24tPmlzUGxheWluZygpKTsKKyAgICB9CisKKyAgICB2b2lkIHNjaGVkdWxlR3Jh
Y2VmdWxTaHV0ZG93bklmTmVlZGVkKCkKKyAgICB7CisgICAgICAgIGlmICghaXNQbGF5aW5nKCkp
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fcHJvdGVjdFRoaXNEdXJpbmdHcmFjZWZ1
bFNodXRkb3duID0gdGhpczsKKyAgICAgICAgc3RvcCgpOworICAgIH0KKworICAgIHZvaWQgc3Rh
cnQoKSB7IG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7IH0KKyAgICB2b2lkIHN0b3AoKSB7IG1fZGVz
dGluYXRpb24tPnN0b3AoKTsgfQorICAgIGJvb2wgaXNQbGF5aW5nKCkgeyByZXR1cm4gbV9kZXN0
aW5hdGlvbi0+aXNQbGF5aW5nKCk7IH0KKworcHJpdmF0ZToKKyAgICBSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25JZGVudGlmaWVyIGlkLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVp
bnQzMl90IG51bWJlck9mSW5wdXRDaGFubmVscywgdWludDMyX3QgbnVtYmVyT2ZPdXRwdXRDaGFu
bmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKKyAgICAgICAgOiBtX2Nvbm5lY3Rpb24oY29ubmVjdGlv
bikKKyAgICAgICAgLCBtX2lkKGlkKQorICAgICAgICAsIG1fZGVzdGluYXRpb24oQXVkaW9EZXN0
aW5hdGlvbjo6Y3JlYXRlKCp0aGlzLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5l
bHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpKQorICAgIHsKKyAgICB9CisK
KyAgICB2b2lkIHJlbmRlcihBdWRpb0J1cyogc291cmNlQnVzLCBBdWRpb0J1cyogZGVzdGluYXRp
b25CdXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIG92ZXJyaWRlCisgICAgeworICAgICAgICBp
ZiAobV9wcm90ZWN0VGhpc0R1cmluZ0dyYWNlZnVsU2h1dGRvd24pCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CisgICAg
ICAgIEJpbmFyeVNlbWFwaG9yZSByZW5kZXJTZW1hcGhvcmU7CisKKyAgICAgICAgVmVjdG9yPFJl
ZjxTaGFyZWRNZW1vcnk+PiBidWZmZXJzOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgZGVzdGluYXRpb25CdXMtPm51bWJlck9mQ2hhbm5lbHMoKTsgKytpKSB7CisgICAgICAgICAg
ICBhdXRvIG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6YWxsb2NhdGUoc2l6ZW9mKGZsb2F0KSAqIGZy
YW1lc1RvUHJvY2Vzcyk7CisgICAgICAgICAgICBidWZmZXJzLmFwcGVuZCgqbWVtb3J5KTsKKyAg
ICAgICAgfQorCisgICAgICAgIC8vIEZJWE1FOiBSZXBsYWNlIHRoaXMgY29kZSB3aXRoIGEgcmlu
ZyBidWZmZXIuIEF0IGxlYXN0IHRoaXMgaGFwcGVucyBpbiBhdWRpbyB0aHJlYWQuCisgICAgICAg
IEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlz
LCBmcmFtZXNUb1Byb2Nlc3MsICZidWZmZXJzLCAmcmVuZGVyU2VtYXBob3JlXSB7CisgICAgICAg
ICAgICBSZW1vdGVBdWRpb0J1c0RhdGEgYnVzRGF0YSB7IGZyYW1lc1RvUHJvY2VzcywgYnVmZmVy
cy5tYXAoW10oYXV0byYgbWVtb3J5KSB7IHJldHVybiBtZW1vcnkuY29weVJlZigpOyB9KSB9Owor
ICAgICAgICAgICAgQVNTRVJUKGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAgICAgICBtX2Nvbm5l
Y3Rpb24uY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlQXVk
aW9EZXN0aW5hdGlvblByb3h5OjpSZW5kZXJCdWZmZXIoYnVzRGF0YSksIFsmXSgpIHsKKyAgICAg
ICAgICAgICAgICByZW5kZXJTZW1hcGhvcmUuc2lnbmFsKCk7CisgICAgICAgICAgICB9LCBtX2lk
LnRvVUludDY0KCkpOworICAgICAgICB9KTsKKyAgICAgICAgcmVuZGVyU2VtYXBob3JlLndhaXQo
KTsKKworICAgICAgICBhdXRvIGF1ZGlvQnVzID0gQXVkaW9CdXM6OmNyZWF0ZShidWZmZXJzLnNp
emUoKSwgZnJhbWVzVG9Qcm9jZXNzLCBmYWxzZSk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBidWZmZXJzLnNpemUoKTsgKytpKQorICAgICAgICAgICAgYXVkaW9CdXMtPnNldENo
YW5uZWxNZW1vcnkoaSwgKGZsb2F0KilidWZmZXJzW2ldLT5kYXRhKCksIGZyYW1lc1RvUHJvY2Vz
cyk7CisgICAgICAgIGRlc3RpbmF0aW9uQnVzLT5jb3B5RnJvbSgqYXVkaW9CdXMpOworICAgIH0K
KworICAgIHZvaWQgaXNQbGF5aW5nRGlkQ2hhbmdlKCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAg
IGlmIChtX3Byb3RlY3RUaGlzRHVyaW5nR3JhY2VmdWxTaHV0ZG93bikgeworICAgICAgICAgICAg
UkVMRUFTRV9BU1NFUlQoIW1fZGVzdGluYXRpb24tPmlzUGxheWluZygpKTsKKyAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKHJlZkNvdW50KCkgPT0gMSk7CisgICAgICAgICAgICBtX3Byb3RlY3RU
aGlzRHVyaW5nR3JhY2VmdWxTaHV0ZG93biA9IG51bGxwdHI7IC8vIERlbGV0ZXMgInRoaXMiLgor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQo
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaXNQbGF5aW5nID0gbV9kZXN0
aW5hdGlvbi0+aXNQbGF5aW5nKCksIGlkID0gbV9pZC50b1VJbnQ2NCgpXSB7CisgICAgICAgICAg
ICBtX2Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eTo6RGlkQ2hhbmdlSXNQbGF5aW5nKGlzUGxheWluZyksIGlkKTsKKyAgICAg
ICAgfSk7CisgICAgfQorCisgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9jb25uZWN0
aW9uOworICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIG1faWQ7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IG1fZGVzdGluYXRpb247CisgICAgUmVmUHRy
PFJlbW90ZUF1ZGlvRGVzdGluYXRpb24+IG1fcHJvdGVjdFRoaXNEdXJpbmdHcmFjZWZ1bFNodXRk
b3duOworfTsKKworUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OlJlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24pCisg
ICAgOiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVjdGlvbikKK3sKK30KKworUmVt
b3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6On5SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
cigpID0gZGVmYXVsdDsKKwordm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6Y3Jl
YXRlQXVkaW9EZXN0aW5hdGlvbihjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVpbnQzMl90
IG51bWJlck9mSW5wdXRDaGFubmVscywgdWludDMyX3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywg
ZmxvYXQgc2FtcGxlUmF0ZSwKKyAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25JZGVudGlmaWVyKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRv
IG5ld0lEID0gUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFk
U2FmZSgpOworICAgIGF1dG8gY2FsbGJhY2sgPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uOjpjcmVh
dGUobV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBuZXdJRCwgaW5wdXREZXZpY2VJZCwgbnVt
YmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsK
KyAgICBtX2F1ZGlvRGVzdGluYXRpb25zLmFkZChuZXdJRCwgV1RGTW92ZShjYWxsYmFjaykpOwor
ICAgIGNvbXBsZXRpb25IYW5kbGVyKG5ld0lEKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uTWFuYWdlcjo6ZGVsZXRlQXVkaW9EZXN0aW5hdGlvbihSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uSWRlbnRpZmllciBpZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIGF1dG8gZGVzdGluYXRpb24gPSBtX2F1ZGlvRGVzdGluYXRpb25zLnRh
a2UoaWQpOworICAgIGlmIChkZXN0aW5hdGlvbikKKyAgICAgICAgZGVzdGluYXRpb24udmFsdWUo
KS0+c2NoZWR1bGVHcmFjZWZ1bFNodXRkb3duSWZOZWVkZWQoKTsKKyAgICBjb21wbGV0aW9uSGFu
ZGxlcigpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpzdGFydEF1
ZGlvRGVzdGluYXRpb24oUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgaWQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYm9v
bCBpc1BsYXlpbmcgPSBmYWxzZTsKKyAgICBpZiAoYXV0byogaXRlbSA9IG1fYXVkaW9EZXN0aW5h
dGlvbnMuZ2V0KGlkKSkgeworICAgICAgICBpdGVtLT5zdGFydCgpOworICAgICAgICBpc1BsYXlp
bmcgPSBpdGVtLT5pc1BsYXlpbmcoKTsKKyAgICB9CisgICAgY29tcGxldGlvbkhhbmRsZXIoaXNQ
bGF5aW5nKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6c3RvcEF1
ZGlvRGVzdGluYXRpb24oUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgaWQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYm9v
bCBpc1BsYXlpbmcgPSBmYWxzZTsKKyAgICBpZiAoYXV0byogaXRlbSA9IG1fYXVkaW9EZXN0aW5h
dGlvbnMuZ2V0KGlkKSkgeworICAgICAgICBpdGVtLT5zdG9wKCk7CisgICAgICAgIGlzUGxheWlu
ZyA9IGl0ZW0tPmlzUGxheWluZygpOworICAgIH0KKyAgICBjb21wbGV0aW9uSGFuZGxlcihpc1Bs
YXlpbmcpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVk
aW9EZXN0aW5hdGlvbk1hbmFnZXIuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAi
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRNZW1v
cnkuaCIKKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVy
Lmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CitjbGFzcyBSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uOworCitjbGFzcyBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlciA6IHByaXZhdGUgSVBD
OjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKTsKK3B1Ymxp
YzoKKyAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcihHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJik7CisgICAgflJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKCk7CisKKyAgICB2
b2lkIGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1
aW50MzJfdCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVpbnQzMl90IG51bWJlck9mT3V0cHV0Q2hh
bm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVtb3RlQXVk
aW9EZXN0aW5hdGlvbklkZW50aWZpZXIpPiYmKTsKKyAgICB2b2lkIGRlbGV0ZUF1ZGlvRGVzdGlu
YXRpb24oUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CisgICAgdm9pZCBzdGFydEF1ZGlvRGVzdGluYXRpb24oUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwor
ICAgIHZvaWQgc3RvcEF1ZGlvRGVzdGluYXRpb24oUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworCisgICAgdm9pZCBkaWRS
ZWNlaXZlU3luY01lc3NhZ2VGcm9tV2ViUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4m
IGVuY29kZXIpCisgICAgeworICAgICAgICBkaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlv
biwgZGVjb2RlciwgZW5jb2Rlcik7CisgICAgfQorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VG
cm9tV2ViUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYg
ZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQorCitw
cml2YXRlOgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKTsKKwor
ICAgIEhhc2hNYXA8UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIsIFJlZjxSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uPj4gbV9hdWRpb0Rlc3RpbmF0aW9uczsKKyAgICBHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzJiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlOworCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXIubWVzc2FnZXMuaW4JKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmlu
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzcgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworCisgICAgQ3JlYXRl
QXVkaW9EZXN0aW5hdGlvbihTdHJpbmcgaW5wdXREZXZpY2VJZCwgdWludDMyX3QgbnVtYmVyT2ZJ
bnB1dENoYW5uZWxzLCB1aW50MzJfdCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1w
bGVSYXRlKSAtPiAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBpZCkg
U3luY2hyb25vdXMKKworICAgIERlbGV0ZUF1ZGlvRGVzdGluYXRpb24oV2ViS2l0OjpSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBpZCkgLT4gKCkgQXN5bmMKKworICAgIFN0YXJ0QXVk
aW9EZXN0aW5hdGlvbihXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIGlk
KSAtPiAoYm9vbCBpc1BsYXlpbmcpIFN5bmNocm9ub3VzCisgICAgU3RvcEF1ZGlvRGVzdGluYXRp
b24oV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBpZCkgLT4gKGJvb2wg
aXNQbGF5aW5nKSBTeW5jaHJvbm91cworCit9CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1Bs
YXRmb3JtU3RyYXRlZ2llcy5jcHAJKHJldmlzaW9uIDI1NzU0NykKKysrIFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00OCw2ICs0OCwxMSBAQCBQYXN0ZWJvYXJkU3RyYXRlZ3kqIE5ldHdvcmtQ
cm9jZXNzUGxhdGZvCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK01lZGlhU3RyYXRlZ3kqIE5l
dHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVNZWRpYVN0cmF0ZWd5KCkKK3sK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogQmxvYlJlZ2lzdHJ5KiBOZXR3b3JrUHJvY2Vzc1Bs
YXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKIHsKICAgICB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHJldmlz
aW9uIDI1NzU0NykKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQCBw
cml2YXRlOgogICAgIC8vIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcwogICAgIFdlYkNvcmU6
OkxvYWRlclN0cmF0ZWd5KiBjcmVhdGVMb2FkZXJTdHJhdGVneSgpIG92ZXJyaWRlOwogICAgIFdl
YkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVneSogY3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkgb3Zl
cnJpZGU7CisgICAgV2ViQ29yZTo6TWVkaWFTdHJhdGVneSogY3JlYXRlTWVkaWFTdHJhdGVneSgp
IG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkJsb2JSZWdpc3RyeSogY3JlYXRlQmxvYlJlZ2lzdHJ5
KCkgb3ZlcnJpZGU7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkJKHJldmlzaW9uIDI1NzU0NykKKysrIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkJKHdvcmtpbmcgY29weSkKQEAgLTIzMSw2ICsyMzEsNyBAQCBkZWYgdHlw
ZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlCiAgICAgICAgICdXZWJLaXQ6Ok1ETlNS
ZWdpc3RlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6TWVkaWFSZWNvcmRlcklkZW50aWZp
ZXInLAorICAgICAgICAnV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllcics
CiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyJywKICAgICAg
ICAgJ1dlYktpdDo6UmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0
OjpSVENEZWNvZGVySWRlbnRpZmllcicsCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvU2hhcmVkL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmgJKG5vbmV4aXN0ZW50
KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZp
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0
SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uSWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgUmVtb3RlQXVkaW9EZXN0aW5hdGlv
bklkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVu
dGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNp
b24gMjU3NTQ3KQorKysgU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTQxMCw4ICsxNDEwLDE0IEBACiAJCTlCMDJFMENCMjM1
RUI5NTMwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDJFMEM5MjM1RUI2MkQwMDQw
NDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjAyRTBDQzIzNUVCOTU3MDA0MDQ0QjIg
LyogX1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDJFMENBMjM1RUI4ODQwMDQwNDRCMiAvKiBfV0tUZXh0TWFu
aXB1bGF0aW9uSXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTlCMDJFMEQ3MjM1RkM5NEYwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9u
VG9rZW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlC
MDJFMENEMjM1RUI5NjcwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5QjEyMjlDRDIz
RkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMTIyOUNCMjNGRjI1RjIw
MDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oICovOyB9OworCQk5QjEy
MjlDRTIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIxMjI5Q0My
M0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCAqLzsg
fTsKKwkJOUIxMjI5RDIyM0ZGMkJDQzAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25J
ZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5QjEyMjlEMDIzRkYyQTVFMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50
aWZpZXIuaCAqLzsgfTsKIAkJOUI1NDk5QUQyMzYyQTZGOTAwREY4QkE1IC8qIF9XS1RleHRNYW5p
cHVsYXRpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5QjU0OTlBQzIzNjJBNkY2MDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxh
dGlvbkNvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5QjU0OTlCMjIzNjJBN0VDMDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxh
dGlvbkV4Y2x1c2lvblJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDlCNTQ5OUIwMjM2MkE3RUMwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1bGF0aW9u
RXhjbHVzaW9uUnVsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTlCNUJFQzI2MjQwMEY0QTkwMDcwQzZFRiAvKiBXZWJNZWRpYVN0cmF0ZWd5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjVCRUMyNDI0
MDBGNEE5MDA3MEM2RUYgLyogV2ViTWVkaWFTdHJhdGVneS5oICovOyB9OworCQk5QjVCRUMyQTI0
MDEwMTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjVCRUMyODI0MDEwMTU4MDA3
MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmggKi87IH07CisJCTlCNUJFQzMx
MjQwMTAyMjIwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0J1c0RhdGEuaCBpbiBDb3B5RmlsZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI1QkVDMzAyNDAxMDIyMjAwNzBDNkVG
IC8qIFJlbW90ZUF1ZGlvQnVzRGF0YS5oICovOyB9OwogCQk5RkI1RjM5NTE2OUU2QTgwMDAyQzI1
QkYgLyogV0tDb250ZXh0UHJpdmF0ZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUZCNUYzOTMxNjlFNkE4MDAwMkMyNUJGIC8qIFdLQ29udGV4dFBy
aXZhdGVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlBMTAyQTcwODFFQzBFRUU5MDBEODFEODIgLyogY29tLm1hY3JvbWVkaWEuRmxhc2ggUGxh
eWVyIEVTUi5wbHVnaW4uc2IgaW4gQ29weSBQbHVnLWluIFNhbmRib3ggUHJvZmlsZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E1RTM5NDkxRDVCRDhBNzAwQjRCN0NFIC8q
IGNvbS5tYWNyb21lZGlhLkZsYXNoIFBsYXllciBFU1IucGx1Z2luLnNiICovOyB9OwogCQlBMTA0
NkVBMTIwNzkyNjMxMDBGMEM1RDggLyogV0tQREZWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTA0NkU5RjIwNzkyNjMxMDBGMEM1RDggLyogV0tQ
REZWaWV3LmggKi87IH07CkBAIC0yMDY2LDYgKzIwNzIsNyBAQAogCQkJCTJEQjk2MDUzMjM5ODg2
QzEwMDEwMjc5MSAvKiBjb20uYXBwbGUuV2ViS2l0LkdQVS5zYiBpbiBDb3B5RmlsZXMgKi8sCiAJ
CQkJQTc4Q0NEREIxOTNBQzlGODAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2lu
Zy5zYiBpbiBDb3B5RmlsZXMgKi8sCiAJCQkJQTc4Q0NEREMxOTNBQzlGQjAwNUVDQzI1IC8qIGNv
bS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYiBpbiBDb3B5RmlsZXMgKi8sCisJCQkJOUI1QkVD
MzEyNDAxMDIyMjAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvQnVzRGF0YS5oIGluIENvcHlGaWxlcyAq
LywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJ
fTsKQEAgLTQ0MDMsMTAgKzQ0MTAsMjAgQEAKIAkJOUIwMkUwQ0QyMzVFQjk2NzAwNDA0NEIyIC8q
IF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUZXh0TWFuaXB1
bGF0aW9uVG9rZW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwMkUwQ0UyMzVF
QkIxNDAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOUIwMkUwRDAyMzVFQkNDQTAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRp
b25JdGVtLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0u
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCMTIyOUNCMjNGRjI1RjIwMDhDQTc1
MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5QjEyMjlDQzIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjEyMjlDRjIzRkYyODE0MDA4Q0E3
NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVt
b3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTlCMTIyOUQwMjNGRjJBNUUwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
SWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjU0OTlBQzIzNjJB
NkY2MDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOUI1NDk5QUUyMzYyQTdBNzAwREY4QkE1IC8qIF9XS1RleHRNYW5p
cHVsYXRpb25Db25maWd1cmF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLVGV4dE1h
bmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTlCNTQ5OUIwMjM2MkE3RUMwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9u
UnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjU0OTlCMTIzNjJBN0VDMDBERjhCQTUg
LyogX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZS5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOUI1QkVDMjQyNDAwRjRBOTAwNzBDNkVGIC8qIFdlYk1lZGlhU3RyYXRl
Z3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTWVkaWFTdHJhdGVneS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5QjVCRUMyNTI0MDBGNEE5MDA3MEM2RUYgLyogV2ViTWVkaWFTdHJhdGVn
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJNZWRpYVN0cmF0ZWd5LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUI1QkVDMjgyNDAxMDE1ODAwNzBDNkVGIC8qIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUI1QkVDMjkyNDAxMDE1
ODAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5QjVCRUMyRTI0MDEwMThDMDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUI1QkVDMzAyNDAx
MDIyMjAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvQnVzRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1v
dGVBdWRpb0J1c0RhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUJDNTlENkMx
RUZDQ0NCNjAwMUU4RDA5IC8qIENhbGxiYWNrSUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ2FsbGJhY2tJRC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QkM1
OUQ2RDFFRkNEQzZEMDAxRThEMDkgLyogT3B0aW9uYWxDYWxsYmFja0lELmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9wdGlvbmFsQ2FsbGJhY2tJRC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5RjU0Rjg4RTE2NDg4RTg3MDA3REY4MUEgLyogQXV4aWxpYXJ5UHJv
Y2Vzc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEF1eGls
aWFyeVByb2Nlc3NNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01Mjg4LDYg
KzUzMDUsMTAgQEAKIAkJCQkwNzkyMzEzMjIzOUIzQjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlLmggKi8sCiAJCQkJMDdCMUQwNEIyM0QzOEZDRTAwMzk5QTZFIC8qIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbiAqLywKIAkJCQkwNzkyMzE0RTIzOUQ1RjUz
MDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oICovLAorCQkJ
CTlCNUJFQzMwMjQwMTAyMjIwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0J1c0RhdGEuaCAqLywKKwkJ
CQk5QjVCRUMyOTI0MDEwMTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5
LmNwcCAqLywKKwkJCQk5QjVCRUMyODI0MDEwMTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5LmggKi8sCisJCQkJOUI1QkVDMkUyNDAxMDE4QzAwNzBDNkVGIC8qIFJlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQkwN0I5M0ZGNTIzQUYw
Q0I4MDAzNkY4RUEgLyogUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJ
MDc5MjMxMzAyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAg
Ki8sCiAJCQkJMDc5MjMxMzQyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlci5oICovLApAQCAtNTMwMyw2ICs1MzI0LDggQEAKIAkJCQkxREZERDBFMjIzRjYxMEYwMDBF
OUI0OTAgLyogVmlkZW9MYXllclJlbW90ZS5oICovLAogCQkJCTA3MUJDNTgzMjNDQzJCRDUwMDY4
MEQ3QyAvKiBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCiAJCQkJMDcxQkM1ODIyM0ND
MkJEMzAwNjgwRDdDIC8qIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmggKi8sCisJCQkJOUI1QkVD
MjUyNDAwRjRBOTAwNzBDNkVGIC8qIFdlYk1lZGlhU3RyYXRlZ3kuY3BwICovLAorCQkJCTlCNUJF
QzI0MjQwMEY0QTkwMDcwQzZFRiAvKiBXZWJNZWRpYVN0cmF0ZWd5LmggKi8sCiAJCQkpOwogCQkJ
cGF0aCA9IG1lZGlhOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTUzMTEsNiArNTMz
NCw5IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTFEMEVDRUE5
MjNGQzg0QkIwMEQxNzJGNiAvKiBjb2NvYSAqLywKKwkJCQk5QjEyMjlDQzIzRkYyNUYyMDA4Q0E3
NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwICovLAorCQkJCTlCMTIyOUNC
MjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oICovLAor
CQkJCTlCMTIyOUNGMjNGRjI4MTQwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCQkwNzFCQzU3RTIzQ0E1REIxMDA2ODBEN0MgLyogUmVt
b3RlQXVkaW9UcmFja1Byb3h5LmNwcCAqLywKIAkJCQkwNzFCQzU3RjIzQ0E1REIxMDA2ODBEN0Mg
LyogUmVtb3RlQXVkaW9UcmFja1Byb3h5LmggKi8sCiAJCQkJMDcyNUVGQUQyMzlCMDI0NTAwQTUz
OEE5IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcCAqLywKQEAgLTU3NzEsNiAr
NTc5Nyw3IEBACiAJCQkJRTE4QzkyRjMxMkRCOUU3MTAwQ0YyQUVCIC8qIFByaW50SW5mby5jcHAg
Ki8sCiAJCQkJRTFDQzFCOEUxMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5mby5oICovLAogCQkJ
CTQ2M0ZENDgxMUVCOTRFQUQwMEEyOTgyQyAvKiBQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCAq
LywKKwkJCQk5QjEyMjlEMDIzRkYyQTVFMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlv
bklkZW50aWZpZXIuaCAqLywKIAkJCQlGNkEwQzEzRjEzMjgxRTZFMDA3MDQzMEYgLyogUmVzb3Vy
Y2VDYWNoZXNUb0NsZWFyLmggKi8sCiAJCQkJNUNCN0FGRTYyM0M2ODFCMDAwRTQ5Q0YzIC8qIFJl
c291cmNlTG9hZEluZm8uaCAqLywKIAkJCQk0MTA0ODJDQjFEREQyRkI1MDBGMDA2RDAgLyogUlRD
TmV0d29yay5jcHAgKi8sCkBAIC0xMDU5MSw2ICsxMDYxOCw5IEBACiAJCQkJODMwNDhBRTYxQUNB
NDVEQzAwODJDODMyIC8qIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUExRTY4ODcwMUY2RTJCQUIwMDcwMDZBNiAvKiBRdWFyYW50aW5lU1BJLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1N0ZEMzE4MjIyQjM1MTVFMDA4RDBFOEIgLyogUmVkaXJlY3RTT0F1dGhvcml6
YXRpb25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5QjEyMjlEMjIzRkYyQkNDMDA4Q0E3
NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTlCMTIyOUNEMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUI1QkVDMkEyNDAxMDE1ODAwNzBDNkVGIC8qIFJl
bW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ0N0I1NkQx
ODEwNzE0RTAwM0EzQUVFIC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkyRERGNzMxNTE4RTk1MDYwMDA0RjVBNjYgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3Rv
cmVDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUIxNkFFQTE2NEIzQTg4MDAyOTBE
NjIgLyogUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDg0Myw2
ICsxMDg3Myw3IEBACiAJCQkJQzk4QzQ4QTYxQjZGRDRDMzAwMTQ1MTAzIC8qIFdlYk1lZGlhU2Vz
c2lvbkZvY3VzTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzlDMTgzM0MxQjc0MDI2RDAw
NzAzNkE3IC8qIFdlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQzlDRDQzOTgxQjRCMDAxRDAwMjM5RTMzIC8qIFdlYk1lZGlhU2Vzc2lvbk1ldGFk
YXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQk5QjVCRUMyNjI0MDBGNEE5MDA3MEM2RUYgLyogV2Vi
TWVkaWFTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQzRUY0NDMxOTE3NjQ2MzAwMDM0
MTg0IC8qIFdlYk1lbW9yeVByZXNzdXJlSGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTA5
ODU0RUQxMkJDNEUxODAwMEFEMDgwIC8qIFdlYk1lbW9yeVNhbXBsZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUxM0ZGQjkxMjAxNDU5QzYwMDI1OTZFQSAvKiBXZWJNZXNzYWdlUG9ydENoYW5uZWxQ
cm92aWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjI4OCw2ICsxMjMxOSw3IEBACiAJCQkJQzE1
Q0JCMzcyM0YzN0VDQjAwMzAwQ0M3IC8qIFByZWZlcmVuY2VPYnNlcnZlci5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTJENTRDMzFCMjEyRjREQTYwMDQ5QzE3NCAvKiBQcm9jZXNzTGF1bmNoZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QyODY1RUYyMjU1NTYyMDAwNjA2QUM3IC8qIFByb2Nlc3NU
YXNrU3RhdGVPYnNlcnZlci5tbSBpbiBTb3VyY2VzICovLAorCQkJCTlCMTIyOUNFMjNGRjI1RjIw
MDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkyRDcyQTFGQTIxMkJGNDZFMDA1MTdBMjAgLyogUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWEubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRkYyNEEyRDE4NzlFNEJDMDAzQUJGMEMgLyog
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkyREMxOEZCNDIxOEE2RTlFMDAyNUE4OEQgLyogUmVtb3RlTGF5ZXJUcmVl
Vmlld3MubW0gaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9CdXNEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0J1c0RhdGEuaAkobm9uZXhpc3RlbnQp
CisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvQnVzRGF0
YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIkRhdGFSZWZlcmVu
Y2UuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAi
U2hhcmVkTWVtb3J5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBSZW1vdGVBdWRpb0J1c0RhdGEgeworICAgIHVpbnQ2
NF90IGZyYW1lc1RvUHJvY2VzcyB7IDAgfTsKKyAgICBWZWN0b3I8UmVmPFNoYXJlZE1lbW9yeT4+
IGNoYW5uZWxCdWZmZXJzOworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KKyAgICB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2Rl
ciA8PCBmcmFtZXNUb1Byb2Nlc3M7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWlu
dDY0X3Q+KGNoYW5uZWxCdWZmZXJzLnNpemUoKSk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgY2hhbm5lbEJ1ZmZlcnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIFNoYXJlZE1l
bW9yeTo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgICAgIGNoYW5uZWxCdWZmZXJzW2ldLT5jcmVh
dGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRXcml0ZSk7Cisg
ICAgICAgICAgICBlbmNvZGVyIDw8IGhhbmRsZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHRl
bXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFJlbW90ZUF1ZGlvQnVzRGF0YSYgcmVzdWx0KQorICAgIHsKKyAgICAgICAgdWlu
dDY0X3QgZnJhbWVzVG9Qcm9jZXNzOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGZyYW1l
c1RvUHJvY2VzcykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJlc3VsdC5m
cmFtZXNUb1Byb2Nlc3MgPSBmcmFtZXNUb1Byb2Nlc3M7CisKKyAgICAgICAgdWludDY0X3Qgc2l6
ZSA9IDA7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZSkpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kp
IHsKKyAgICAgICAgICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoaGFuZGxlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgICAgICBhdXRvIG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRsZSwg
U2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkV3JpdGUpOworICAgICAgICAgICAgaWYgKG1l
bW9yeSkKKyAgICAgICAgICAgICAgICByZXN1bHQuY2hhbm5lbEJ1ZmZlcnMuYXBwZW5kKCptZW1v
cnkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5LmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxMDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKKyNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVk
ZSAiUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9CdXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVz
dGluYXRpb24uaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIEF1ZGlvQnVzID0gV2Vi
Q29yZTo6QXVkaW9CdXM7Cit1c2luZyBBdWRpb0Rlc3RpbmF0aW9uID0gV2ViQ29yZTo6QXVkaW9E
ZXN0aW5hdGlvbjsKK3VzaW5nIEF1ZGlvSU9DYWxsYmFjayA9IFdlYkNvcmU6OkF1ZGlvSU9DYWxs
YmFjazsKKworc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IFJlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eTo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssCisgICAgY29u
c3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMs
IHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCit7Cisg
ICAgcmV0dXJuIG1ha2VVbmlxdWU8UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5PihjYWxsYmFj
aywgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENo
YW5uZWxzLCBzYW1wbGVSYXRlKTsKK30KKworUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29u
c3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMs
IHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCisgICAg
OiBtX2NhbGxiYWNrKGNhbGxiYWNrKQorICAgICwgbV9zYW1wbGVSYXRlKHNhbXBsZVJhdGUpCit7
CisgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgZGVzdGluYXRpb25JRDsKKwor
ICAgIGF1dG8mIGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQ
cm9jZXNzQ29ubmVjdGlvbigpOworICAgIGNvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmRTeW5j
KAorICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OkNyZWF0
ZUF1ZGlvRGVzdGluYXRpb24oaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBu
dW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKSwKKyAgICAgICAgTWVzc2FnZXM6OlJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpDcmVhdGVBdWRpb0Rlc3RpbmF0aW9uOjpSZXBs
eShkZXN0aW5hdGlvbklEKSwgMCk7CisgICAgY29ubmVjdGlvbi5tZXNzYWdlUmVjZWl2ZXJNYXAo
KS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBkZXN0aW5hdGlvbklELnRvVUludDY0KCksICp0aGlz
KTsKKworICAgIG1fZGVzdGluYXRpb25JRCA9IGRlc3RpbmF0aW9uSUQ7Cit9CisKK1JlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eTo6flJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSgpCit7Cisg
ICAgYXV0byYgY29ubmVjdGlvbiA9ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQ
cm9jZXNzQ29ubmVjdGlvbigpOworICAgIGNvbm5lY3Rpb24ubWVzc2FnZVJlY2VpdmVyTWFwKCku
cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJv
eHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9kZXN0aW5hdGlvbklELnRvVUludDY0KCkpOwor
CisgICAgY29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KAorICAgICAg
ICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OkRlbGV0ZUF1ZGlvRGVz
dGluYXRpb24obV9kZXN0aW5hdGlvbklEKSwgW10geworICAgICAgICAvLyBDYW4ndCByZW1vdmUg
dGhpcyBmcm9tIHByb3h5TWFwKCkgaGVyZSBiZWNhdXNlIHRoZSBvYmplY3Qgd291bGQgaGF2ZSBi
ZWVuIGFscmVhZHkgZGVsZXRlZC4KKyAgICB9KTsKK30KKwordm9pZCBSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHk6OnN0YXJ0KCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1
cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYygKKyAgICAgICAg
TWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpTdGFydEF1ZGlvRGVzdGlu
YXRpb24obV9kZXN0aW5hdGlvbklEKSwKKyAgICAgICAgTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyOjpTdGFydEF1ZGlvRGVzdGluYXRpb246OlJlcGx5KG1faXNQbGF5aW5n
KSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpzdG9wKCkKK3sK
KyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigp
LmNvbm5lY3Rpb24oKS5zZW5kU3luYygKKyAgICAgICAgTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyOjpTdG9wQXVkaW9EZXN0aW5hdGlvbihtX2Rlc3RpbmF0aW9uSUQpLAor
ICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OlN0b3BBdWRp
b0Rlc3RpbmF0aW9uOjpSZXBseShtX2lzUGxheWluZyksIDApOworfQorCit2b2lkIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eTo6cmVuZGVyQnVmZmVyKGNvbnN0IFdlYktpdDo6UmVtb3RlQXVk
aW9CdXNEYXRhJiBhdWRpb0J1c0RhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoYXVkaW9CdXNEYXRhLmZyYW1lc1RvUHJvY2Vz
cyk7CisgICAgQVNTRVJUKGF1ZGlvQnVzRGF0YS5jaGFubmVsQnVmZmVycy5zaXplKCkpOworICAg
IGF1dG8gYXVkaW9CdXMgPSBBdWRpb0J1czo6Y3JlYXRlKGF1ZGlvQnVzRGF0YS5jaGFubmVsQnVm
ZmVycy5zaXplKCksIGF1ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3MsIGZhbHNlKTsKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYXVkaW9CdXNEYXRhLmNoYW5uZWxCdWZmZXJzLnNpemUo
KTsgKytpKQorICAgICAgICBhdWRpb0J1cy0+c2V0Q2hhbm5lbE1lbW9yeShpLCAoZmxvYXQqKWF1
ZGlvQnVzRGF0YS5jaGFubmVsQnVmZmVyc1tpXS0+ZGF0YSgpLCBhdWRpb0J1c0RhdGEuZnJhbWVz
VG9Qcm9jZXNzKTsKKworICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIGF1ZGlvQnVzLmdldCgpLCBh
dWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzKTsKKworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7
Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpkaWRDaGFuZ2VJc1BsYXlp
bmcoYm9vbCBpc1BsYXlpbmcpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaAkobm9uZXhpc3RlbnQpCisr
KyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIkNvbm5l
Y3Rpb24uaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0J1c0RhdGEuaCIKKyNpbmNsdWRlICJSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NTdXBw
bGVtZW50LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb0Rlc3RpbmF0aW9uLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9BdWRpb0lPQ2FsbGJhY2suaD4KKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2lu
Y2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSA6IHB1YmxpYyBXZWJDb3Jl
OjpBdWRpb0Rlc3RpbmF0aW9uLCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uUHJveHkpOworcHVibGljOgorICAgIHVzaW5nIEF1ZGlvQnVzID0gV2Vi
Q29yZTo6QXVkaW9CdXM7CisgICAgdXNpbmcgQXVkaW9JT0NhbGxiYWNrID0gV2ViQ29yZTo6QXVk
aW9JT0NhbGxiYWNrOworCisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0
aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlk
LCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0
Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpOworCisgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5KEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5z
aWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5u
ZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsKKyAgICB+UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5
KCk7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUdQVVByb2Nlc3MoSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpIHsgZGlkUmVjZWl2ZU1l
c3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7IH0KKworICAgIHZvaWQgcmVuZGVyQnVmZmVyKGNv
bnN0IFdlYktpdDo6UmVtb3RlQXVkaW9CdXNEYXRhJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKKyAgICB2b2lkIGRpZENoYW5nZUlzUGxheWluZyhib29sIGlzUGxheWluZyk7CisKK3By
aXZhdGU6CisgICAgLy8gV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbgorICAgIHZvaWQgc3RhcnQo
KSBvdmVycmlkZTsKKyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICBib29sIGlzUGxheWlu
ZygpIG92ZXJyaWRlIHsgcmV0dXJuIG1faXNQbGF5aW5nOyB9CisgICAgZmxvYXQgc2FtcGxlUmF0
ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2FtcGxlUmF0ZTsgfQorCisgICAgLy8gSVBD
OjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgQXVkaW9JT0NhbGxiYWNrJiBtX2Nh
bGxiYWNrOworICAgIGZsb2F0IG1fc2FtcGxlUmF0ZTsKKyAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uSWRlbnRpZmllciBtX2Rlc3RpbmF0aW9uSUQ7CisgICAgYm9vbCBtX2lzUGxheWluZyB7IGZh
bHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbgkobm9uZXhpc3Rl
bnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMzIEBA
CisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgTm90UmVm
Q291bnRlZCB7CisKKyAgICBSZW5kZXJCdWZmZXIoc3RydWN0IFdlYktpdDo6UmVtb3RlQXVkaW9C
dXNEYXRhIGRhdGEpIC0+ICgpIEFzeW5jCisgICAgRGlkQ2hhbmdlSXNQbGF5aW5nKGJvb2wgaXNQ
bGF5aW5nKQorCit9CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuY3BwCShy
ZXZpc2lvbiAyNTc1NDcpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Rl
eHRUcmFja1ByaXZhdGVSZW1vdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzksMjEgKzEzOSwy
MSBAQCB2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OmFkZERhdGFDdWVXCiB7CiAgICAgQVNT
RVJUKGNsaWVudCgpKTsKICAgICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCi0g
ICAgICAgIGNsaWVudC0+YWRkRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShkYXRhVmFsdWUpKSwgdHlw
ZSk7CisgICAgICAgIGNsaWVudC0+YWRkRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShl
bmQpLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShk
YXRhVmFsdWUpKSwgdHlwZSk7CiB9CiAKIHZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6dXBk
YXRlRGF0YUN1ZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiBkYXRhVmFsdWUpCiB7CiAgICAgQVNTRVJUKGNsaWVudCgp
KTsKICAgICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCi0gICAgICAgIGNsaWVu
dC0+dXBkYXRlRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShkYXRhVmFsdWUpKSk7CisgICAgICAgIGNs
aWVudC0+dXBkYXRlRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBXZWJDb3Jl
OjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShkYXRhVmFsdWUpKSk7
CiB9CiAKIHZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlRGF0YUN1ZShNZWRpYVRp
bWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWUmJiBkYXRhVmFsdWUpCiB7CiAgICAgQVNTRVJUKGNsaWVudCgpKTsKICAgICBpZiAoYXV0byog
Y2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCi0gICAgICAgIGNsaWVudC0+cmVtb3ZlRGF0YUN1ZShX
VEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpj
cmVhdGUoV1RGTW92ZShkYXRhVmFsdWUpKSk7CisgICAgICAgIGNsaWVudC0+cmVtb3ZlRGF0YUN1
ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShkYXRhVmFsdWUpKSk7CiB9CiAjZW5kaWYKIApJbmRl
eDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVt
b3RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9U
ZXh0VHJhY2tQcml2YXRlUmVtb3RlLmgJKHJldmlzaW9uIDI1NzU0NykKKysrIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKKyNp
bmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNrUHJpdmF0ZVJlbW90
ZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVy
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JbmJhbmRUZXh0VHJhY2tQcml2YXRlLmg+CkBAIC00OCw2
ICs0OSwxMCBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU7CiBjbGFzcyBUZXh0VHJh
Y2tQcml2YXRlUmVtb3RlIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1By
aXZhdGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRleHRUcmFja1ByaXZhdGVSZW1vdGUp
CiBwdWJsaWM6CisgICAgdXNpbmcgR2VuZXJpY0N1ZURhdGEgPSBXZWJDb3JlOjpHZW5lcmljQ3Vl
RGF0YTsKKyAgICB1c2luZyBJU09XZWJWVFRDdWUgPSBXZWJDb3JlOjpJU09XZWJWVFRDdWU7Cisg
ICAgdXNpbmcgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlID0gV2ViQ29yZTo6U2VyaWFs
aXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOworCiAgICAgc3RhdGljIFJlZjxUZXh0VHJhY2tQcml2
YXRlUmVtb3RlPiBjcmVhdGUoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlJiBwbGF5ZXIsIFRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVGV4dFRyYWNrUHJpdmF0ZVJlbW90
ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZShwbGF5ZXIsIGlkZW5kaWZpZXIsIFdU
Rk1vdmUoY29uZmlndXJhdGlvbikpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcAkobm9uZXhpc3RlbnQp
CisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3ku
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViTWVkaWFTdHJhdGVneS5oIgorCisjaW5jbHVkZSAi
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24uaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0F1ZGlvSU9DYWxsYmFjay5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2Vi
TWVkaWFTdHJhdGVneTo6fldlYk1lZGlhU3RyYXRlZ3koKSA9IGRlZmF1bHQ7CisKKyNpZiBFTkFC
TEUoV0VCX0FVRElPKQorc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+
IFdlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oV2ViQ29yZTo6QXVkaW9J
T0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAorICAgIHVu
c2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFu
bmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKK3sKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAg
aWYgKG1fdXNlR1BVUHJvY2VzcykKKyAgICAgICAgcmV0dXJuIFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eTo6Y3JlYXRlKGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hh
bm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOworI2VuZGlmCisgICAg
cmV0dXJuIFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShjYWxsYmFjaywgaW5wdXRE
ZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBz
YW1wbGVSYXRlKTsKK30KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJh
dGVneS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvV2ViTWVkaWFTdHJhdGVneS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTdHJhdGVn
eS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViTWVkaWFTdHJhdGVneSA6IHB1
YmxpYyBXZWJDb3JlOjpNZWRpYVN0cmF0ZWd5IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5XZWJN
ZWRpYVN0cmF0ZWd5KCk7CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgdm9pZCBzZXRV
c2VHUFVQcm9jZXNzKGJvb2wgdXNlR1BVUHJvY2VzcykgeyBtX3VzZUdQVVByb2Nlc3MgPSB1c2VH
UFVQcm9jZXNzOyB9CisjZW5kaWYKKworcHJpdmF0ZToKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRp
b0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjayYsCisgICAgICAgIGNvbnN0IFN0
cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNp
Z25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKSBvdmVycmlkZTsK
KyNlbmRpZgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIGJvb2wgbV91c2VHUFVQcm9j
ZXNzIHsgZmFsc2UgfTsKKyNlbmRpZgorCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAkocmV2
aXNpb24gMjU3NTQ3KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYg
KzI2LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyLmgiCiAKKyNpbmNsdWRlICJEZWNvZGVyLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9JbnRTaXplLmg+CisKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9D
RVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKIG5h
bWVzcGFjZSBXZWJLaXQgewpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAJ
KHJldmlzaW9uIDI1NzU0NykKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSwxNiAr
MzksMTkgQEAKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lTG9hZGVy
Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViTG9hZGVyU3RyYXRlZ3kuaCIKKyNpbmNsdWRlICJXZWJN
ZWRpYVN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlBhc3Rl
Ym9hcmRPdmVycmlkZXMuaCIKICNpbmNsdWRlICJXZWJQYXN0ZWJvYXJkUHJveHlNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNz
YWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9EZXN0aW5hdGlvbi5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvQ29sb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0xvYWRlclN0cmF0ZWd5Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9N
ZWRpYVN0cmF0ZWd5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24u
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VHcm91
cC5oPgpAQCAtNzMsNiArNzYsOCBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAorY2xhc3MgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbjsKKwogdm9pZCBXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxpemUoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM+IHBsYXRmb3JtU3RyYXRlZ2llczsKQEAgLTkzLDYg
Kzk4LDExIEBAIFBhc3RlYm9hcmRTdHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVnaWUKICAgICBy
ZXR1cm4gdGhpczsKIH0KIAorTWVkaWFTdHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpj
cmVhdGVNZWRpYVN0cmF0ZWd5KCkKK3sKKyAgICByZXR1cm4gbmV3IFdlYk1lZGlhU3RyYXRlZ3k7
Cit9CisKIEJsb2JSZWdpc3RyeSogV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVCbG9iUmVn
aXN0cnkoKQogewogICAgIHJldHVybiBuZXcgQmxvYlJlZ2lzdHJ5UHJveHk7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCShyZXZpc2lvbiAyNTc1NDcpCisrKyBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcgQEAgcHJpdmF0ZToKICAgICAvLyBXZWJDb3JlOjpQ
bGF0Zm9ybVN0cmF0ZWdpZXMKICAgICBXZWJDb3JlOjpMb2FkZXJTdHJhdGVneSogY3JlYXRlTG9h
ZGVyU3RyYXRlZ3koKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpQYXN0ZWJvYXJkU3RyYXRlZ3kq
IGNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVneSgpIG92ZXJyaWRlOworICAgIFdlYkNvcmU6Ok1lZGlh
U3RyYXRlZ3kqIGNyZWF0ZU1lZGlhU3RyYXRlZ3koKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpC
bG9iUmVnaXN0cnkqIGNyZWF0ZUJsb2JSZWdpc3RyeSgpIG92ZXJyaWRlOwogCiAgICAgLy8gV2Vi
Q29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gMjU3NTQ3KQorKysgU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMSw2
ICsxMDEsNyBAQAogI2luY2x1ZGUgIldlYkluc3BlY3RvclVJTWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJXZWJMb2FkZXJTdHJhdGVneS5oIgogI2luY2x1ZGUgIldlYk1lZGlhS2V5U3RvcmFnZU1hbmFn
ZXIuaCIKKyNpbmNsdWRlICJXZWJNZWRpYVN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiV2ViTm90aWZp
Y2F0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuaCIK
ICNpbmNsdWRlICJXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCkBAIC0xOTksNiArMjAwLDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL1BpbmdMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bs
YXRmb3JtS2V5Ym9hcmRFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVN0cmF0ZWdpZXMuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRvY3VtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
b2ludGVyQ2FwdHVyZUNvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ByaW50Q29udGV4
dC5oPgpAQCAtMzY5Niw2ICszNjk4LDggQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNl
cyhjb25zdCBXZQogICAgICAgICBtX2RyYXdpbmdBcmVhLT51cGRhdGVQcmVmZXJlbmNlcyhzdG9y
ZSk7CiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgLy8gRklYTUU6IHVzZUdQVVByb2Nl
c3NGb3JNZWRpYSBzaG91bGQgYmUgYSBSdW50aW1lRW5hYmxlZEZlYXR1cmUgc2luY2UgaXQncyBn
bG9iYWwuCisgICAgc3RhdGljX2Nhc3Q8V2ViTWVkaWFTdHJhdGVneSY+KHBsYXRmb3JtU3RyYXRl
Z2llcygpLT5tZWRpYVN0cmF0ZWd5KCkpLnNldFVzZUdQVVByb2Nlc3Moc2V0dGluZ3MudXNlR1BV
UHJvY2Vzc0Zvck1lZGlhKCkpOwogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnN1cHBsZW1l
bnQ8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyPigpLT51cGRhdGVQcmVmZXJlbmNlcyhzZXR0aW5n
cyk7CiAjZW5kaWYKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDI1NzU0NykKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAyLTI2ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3
ZWJraXQub3JnPgorCisgICAgICAgIENyZWF0ZSBBdWRpb0Rlc3RpbmF0aW9uIGluIHRoZSBHUFUg
cHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA4MTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmVyIE5vYmxlLgorCisgICAgICAgIEFkZGVk
IFdlYk1lZGlhU3RyYXRlZ3kgd2hpY2ggaXMgYSB3cmFwcGVyIGFyb3VuZCBBdWRpb0Rlc3RpbmF0
aW9uOjpjcmVhdGUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
bW06CisgICAgICAgIChXZWJNZWRpYVN0cmF0ZWd5KTogQWRkZWQuCisgICAgICAgIChXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3kpOgorCiAyMDIwLTAyLTI1ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQgRml4
CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkocmV2aXNpb24gMjU3NTQ3KQorKysg
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVn
aWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDcgQEAgcHJpdmF0ZToKICAgICAvLyBX
ZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXMKICAgICBXZWJDb3JlOjpMb2FkZXJTdHJhdGVneSog
Y3JlYXRlTG9hZGVyU3RyYXRlZ3koKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpQYXN0ZWJvYXJk
U3RyYXRlZ3kqIGNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVneSgpIG92ZXJyaWRlOworICAgIFdlYkNv
cmU6Ok1lZGlhU3RyYXRlZ3kqIGNyZWF0ZU1lZGlhU3RyYXRlZ3koKSBvdmVycmlkZTsKICAgICBX
ZWJDb3JlOjpCbG9iUmVnaXN0cnkqIGNyZWF0ZUJsb2JSZWdpc3RyeSgpIG92ZXJyaWRlOwogCiAg
ICAgLy8gV2ViQ29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLm1tCShyZXZpc2lvbiAyNTc1NDcpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0JKHdvcmtpbmcgY29weSkK
QEAgLTI4LDkgKzI4LDExIEBACiAjaW1wb3J0ICJXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmgi
CiAjaW1wb3J0ICJXZWJQbHVnaW5QYWNrYWdlLmgiCiAjaW1wb3J0ICJXZWJSZXNvdXJjZUxvYWRT
Y2hlZHVsZXIuaCIKKyNpbXBvcnQgPFdlYkNvcmUvQXVkaW9EZXN0aW5hdGlvbi5oPgogI2ltcG9y
dCA8V2ViQ29yZS9CbG9iUmVnaXN0cnlJbXBsLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CisjaW1wb3J0IDxXZWJDb3JlL01lZGlhU3RyYXRl
Z3kuaD4KICNpbXBvcnQgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1Bhc3RlYm9hcmRJdGVtSW5mby5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9y
bVBhc3RlYm9hcmQuaD4KQEAgLTYyLDYgKzY0LDIyIEBAIFBhc3RlYm9hcmRTdHJhdGVneSogV2Vi
UGxhdGZvcm1TdHJhdGVnaWUKICAgICByZXR1cm4gdGhpczsKIH0KIAorY2xhc3MgV2ViTWVkaWFT
dHJhdGVneSBmaW5hbCA6IHB1YmxpYyBNZWRpYVN0cmF0ZWd5IHsKK3ByaXZhdGU6CisjaWYgRU5B
QkxFKFdFQl9BVURJTykKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3Jl
YXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJp
bmcmIGlucHV0RGV2aWNlSWQsCisgICAgICAgIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVs
cywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkgb3Zl
cnJpZGUKKyAgICB7CisgICAgICAgIHJldHVybiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoY2Fs
bGJhY2ssIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRw
dXRDaGFubmVscywgc2FtcGxlUmF0ZSk7CisgICAgfQorI2VuZGlmCit9OworCitNZWRpYVN0cmF0
ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3koKQoreworICAg
IHJldHVybiBuZXcgV2ViTWVkaWFTdHJhdGVneTsKK30KKwogY2xhc3MgV2ViQmxvYlJlZ2lzdHJ5
IGZpbmFsIDogcHVibGljIEJsb2JSZWdpc3RyeSB7CiBwcml2YXRlOgogICAgIHZvaWQgcmVnaXN0
ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmIHVybCwgUmVmPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4m
JiByZWZlcmVuY2UsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFsIHsgbV9ibG9iUmVn
aXN0cnkucmVnaXN0ZXJGaWxlQmxvYlVSTCh1cmwsIFdURk1vdmUocmVmZXJlbmNlKSwgY29udGVu
dFR5cGUpOyB9CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTc1
NDcpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxNyBAQAorMjAyMC0wMi0yNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0
Lm9yZz4KKworICAgICAgICBDcmVhdGUgQXVkaW9EZXN0aW5hdGlvbiBpbiB0aGUgR1BVIHByb2Nl
c3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODE3
OQorCisgICAgICAgIFJldmlld2VkIGJ5IEplciBOb2JsZS4KKworICAgICAgICBBZGRlZCBXZWJN
ZWRpYVN0cmF0ZWd5IHdoaWNoIGlzIGEgd3JhcHBlciBhcm91bmQgQXVkaW9EZXN0aW5hdGlvbjo6
Y3JlYXRlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcDoKKyAgICAgICAgKFdlYk1lZGlhU3RyYXRlZ3kpOiBBZGRlZC4KKyAgICAgICAgKFdlYlBs
YXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFTdHJhdGVneSk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmg6CisKIDIwMjAtMDItMjYgIEFudHRpIEtv
aXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB0aHJvdHRsaW5nIGNv
ZGUgZnJvbSBSZW5kZXJMYXllckNvbXBvc2l0b3IKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcAkocmV2aXNpb24gMjU3NTQ3KQorKysgU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjcsOSArMjcsMTEgQEAKIAogI2luY2x1ZGUgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
aCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0F1ZGlvRGVzdGluYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Jsb2JSZWdpc3RyeS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvQmxvYlJlZ2lzdHJ5SW1wbC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRnJhbWVMb2FkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU3RyYXRlZ3kuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUdyb3VwLmg+CkBAIC02MCw2ICs2Miwy
MiBAQCBQYXN0ZWJvYXJkU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2llCiAgICAgcmV0dXJu
IG51bGxwdHI7CiB9CiAKK2NsYXNzIFdlYk1lZGlhU3RyYXRlZ3kgZmluYWwgOiBwdWJsaWMgTWVk
aWFTdHJhdGVneSB7Citwcml2YXRlOgorI2lmIEVOQUJMRShXRUJfQVVESU8pCisgICAgc3RkOjp1
bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oQXVkaW9J
T0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAorICAgICAg
ICB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0
Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpIG92ZXJyaWRlCisgICAgeworICAgICAgICByZXR1
cm4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1i
ZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOwor
ICAgIH0KKyNlbmRpZgorfTsKKworTWVkaWFTdHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVnaWVz
OjpjcmVhdGVNZWRpYVN0cmF0ZWd5KCkKK3sKKyAgICByZXR1cm4gbmV3IFdlYk1lZGlhU3RyYXRl
Z3k7Cit9CisKIGNsYXNzIFdlYkJsb2JSZWdpc3RyeSBmaW5hbCA6IHB1YmxpYyBCbG9iUmVnaXN0
cnkgewogcHJpdmF0ZToKICAgICB2b2lkIHJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiB1
cmwsIFJlZjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYgcmVmZXJlbmNlLCBjb25zdCBTdHJpbmcm
IGNvbnRlbnRUeXBlKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnJlZ2lzdGVyRmlsZUJsb2JVUkwo
dXJsLCBXVEZNb3ZlKHJlZmVyZW5jZSksIGNvbnRlbnRUeXBlKTsgfQpJbmRleDogU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmgJKHJldmlzaW9uIDI1NzU0NykKKysrIFNvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zOCw3ICszOCw4IEBAIHByaXZhdGU6CiAgICAgV2ViUGxhdGZvcm1TdHJhdGVnaWVz
KCk7CiAKICAgICAvLyBXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXMKLSAgICB2aXJ0dWFsIFdl
YkNvcmU6OkxvYWRlclN0cmF0ZWd5KiBjcmVhdGVMb2FkZXJTdHJhdGVneSgpOwotICAgIHZpcnR1
YWwgV2ViQ29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3ko
KTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkJsb2JSZWdpc3RyeSogY3JlYXRlQmxvYlJlZ2lzdHJ5
KCk7CisgICAgV2ViQ29yZTo6TG9hZGVyU3RyYXRlZ3kqIGNyZWF0ZUxvYWRlclN0cmF0ZWd5KCkg
b3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0ZWJv
YXJkU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpNZWRpYVN0cmF0ZWd5KiBjcmVh
dGVNZWRpYVN0cmF0ZWd5KCkgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5KiBj
cmVhdGVCbG9iUmVnaXN0cnkoKSBvdmVycmlkZTsKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391829</attachid>
            <date>2020-02-26 18:37:36 -0800</date>
            <delta_ts>2020-02-26 19:05:22 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-208179-20200226183735.patch</filename>
            <type>text/plain</type>
            <size>95569</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NzU0NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDIwLTAyLTI2ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIENyZWF0ZSBBdWRpb0Rlc3RpbmF0
aW9uIGluIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA4MTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmVyIE5vYmxlLgor
CisgICAgICAgIEFkZCBhbiBhYnN0cmFjdGlvbiBhcm91bmQgdGhlIGNyZWF0aW9uIG9mIEF1ZGlv
RGVzdGluYXRpb24gdXNpbmcgbmV3bHkgaW50cm9kdWNlZCBtZWRpYVN0cmF0ZWd5LgorCisgICAg
ICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRB
dWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9E
ZXN0aW5hdGlvbk5vZGU6OmNyZWF0ZURlc3RpbmF0aW9uKTogVXNlIE1lZGlhU3RyYXRlZ3k6OmNy
ZWF0ZUF1ZGlvRGVzdGluYXRpb24KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyYXRlZ3kpOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9QbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRl
Z2llczo6bWVkaWFTdHJhdGVneSk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1
ZGlvQnVzLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oOgor
CiAyMDIwLTAyLTI2ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+
CiAKICAgICAgICAgSW1wbGVtZW50IHRoZSByZW1vdGUgUmVuZGVyaW5nQmFja2VuZApJbmRleDog
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCShyZXZpc2lvbiAyNTc1NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC05NTAsNiArOTUwLDcgQEAgc2V0KFdlYkNvcmVf
UFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnku
aAogICAgIHBsYXRmb3JtL01lZGlhU2FtcGxlLmgKICAgICBwbGF0Zm9ybS9NZWRpYVNlbGVjdGlv
bk9wdGlvbi5oCisgICAgcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5oCiAgICAgcGxhdGZvcm0vTm90
SW1wbGVtZW50ZWQuaAogICAgIHBsYXRmb3JtL09yaWVudGF0aW9uTm90aWZpZXIuaAogICAgIHBs
YXRmb3JtL1BPREludGVydmFsLmgKQEAgLTEwMjEsNyArMTAyMiwxMiBAQCBzZXQoV2ViQ29yZV9Q
UklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlv
blV0aWxpdGllcy5oCiAgICAgcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmgKIAor
ICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvQXJyYXkuaAorICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlv
QnVzLmgKKyAgICBwbGF0Zm9ybS9hdWRpby9BdWRpb0NoYW5uZWwuaAorICAgIHBsYXRmb3JtL2F1
ZGlvL0F1ZGlvRGVzdGluYXRpb24uaAogICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvSGFyZHdhcmVM
aXN0ZW5lci5oCisgICAgcGxhdGZvcm0vYXVkaW8vQXVkaW9JT0NhbGxiYWNrLmgKICAgICBwbGF0
Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaAogICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU291cmNl
UHJvdmlkZXIuaAogICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaApJ
bmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5h
dGlvbk5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAkocmV2aXNpb24gMjU3NTQ3KQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5v
ZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw4IEBACiAjaW5jbHVkZSAiQXVkaW9D
b250ZXh0LmgiCiAjaW5jbHVkZSAiQXVkaW9EZXN0aW5hdGlvbi5oIgogI2luY2x1ZGUgIkxvZ2dp
bmcuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmF0ZWd5LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJh
dGVnaWVzLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUg
PHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KQEAg
LTg0LDggKzg2LDggQEAgdm9pZCBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OmNyZWF0ZQog
ewogICAgIGZsb2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSA9IEF1ZGlvRGVzdGluYXRpb246OmhhcmR3
YXJlU2FtcGxlUmF0ZSgpOwogICAgIExPRyhXZWJBdWRpbywgIj4+Pj4gaGFyZHdhcmVTYW1wbGVS
YXRlID0gJWZcbiIsIGhhcmR3YXJlU2FtcGxlUmF0ZSk7Ci0gICAgCi0gICAgbV9kZXN0aW5hdGlv
biA9IEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZSgqdGhpcywgbV9pbnB1dERldmljZUlkLCBtX251
bWJlck9mSW5wdXRDaGFubmVscywgY2hhbm5lbENvdW50KCksIGhhcmR3YXJlU2FtcGxlUmF0ZSk7
CisKKyAgICBtX2Rlc3RpbmF0aW9uID0gcGxhdGZvcm1TdHJhdGVnaWVzKCktPm1lZGlhU3RyYXRl
Z3koKS5jcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKCp0aGlzLCBtX2lucHV0RGV2aWNlSWQsIG1fbnVt
YmVyT2ZJbnB1dENoYW5uZWxzLCBjaGFubmVsQ291bnQoKSwgaGFyZHdhcmVTYW1wbGVSYXRlKTsK
IH0KIAogdm9pZCBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OmVuYWJsZUlucHV0KGNvbnN0
IFN0cmluZyYgaW5wdXREZXZpY2VJZCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1NzU0NykKKysrIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5
KQpAQCAtMjg4OSw2ICsyODg5LDggQEAKIAkJOUFCMUYzODAxOEUyNDg5QTAwNTM0NzQzIC8qIENT
U1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDlBQjFGMzdFMThFMjQ4OUEwMDUzNDc0MyAvKiBDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOUIwMkUwQzgyMzVFQUQyQTAwNDA0NEIyIC8qIFRleHRNYW5pcHVsYXRpb25Db250
cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
QjAyRTBDMzIzNUU3NkFBMDA0MDQ0QjIgLyogVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjBBQkNB
RTIzNkJCNDMxMDBCNDUwODUgLyogVGFza1NvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwQUJDQUMyMzZCQjQwQTAwQjQ1MDg1IC8qIFRhc2tT
b3VyY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk5QjEyMjlDNDIzRkU0QkQyMDA4Q0E3NTEgLyogQXVkaW9EZXN0aW5hdGlvbkNvY29hLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTMxNTE4NjIzNTc3
NDVFMDAxMTVFNkUgLyogQXVkaW9EZXN0aW5hdGlvbkNvY29hLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOUIxMjI5QzcyM0ZFNEQ2QTAwOENBNzUx
IC8qIE1lZGlhU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDlCMTIyOUM2MjNGRTRENUYwMDhDQTc1MSAvKiBNZWRpYVN0cmF0ZWd5LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIyNERFOEUx
NTE5NEI5NTAwQzU5QzI3IC8qIEhUTUxCRElFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjI0REU4QzE1MTk0Qjk1MDBDNTlDMjcgLyogSFRN
TEJESUVsZW1lbnQuaCAqLzsgfTsKIAkJOUIyN0ZDNjAyMzREOUFEQjAwMzk0QTQ2IC8qIFdpbmRv
d0V2ZW50TG9vcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOUIyN0ZDNUUyMzREOUFEQTAwMzk0QTQ2IC8qIFdpbmRvd0V2ZW50TG9vcC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMkQ4QTc5MTQ5OTdD
Q0YwMEVDRUYzRSAvKiBVbmRvU3RlcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOUIyRDhBNzgxNDk5N0NDRjAwRUNFRjNFIC8qIFVuZG9TdGVwLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTUwNjcsMTAg
KzUwNjksMTAgQEAKIAkJRkQzMTYwMzYxMkIwMjY3NjAwQzFBMzU5IC8qIFNjcmlwdFByb2Nlc3Nv
ck5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZE
MzE1RkVDMTJCMDI2NzYwMEMxQTM1OSAvKiBTY3JpcHRQcm9jZXNzb3JOb2RlLmggKi87IH07CiAJ
CUZEMzE2MDNDMTJCMDI2NzYwMEMxQTM1OSAvKiBSZWFsdGltZUFuYWx5c2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNUZGMjEyQjAyNjc2MDBD
MUEzNTkgLyogUmVhbHRpbWVBbmFseXNlci5oICovOyB9OwogCQlGRDMxNjAzRTEyQjAyNjc2MDBD
MUEzNTkgLyogQW5hbHlzZXJOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGRDMxNUZGNDEyQjAyNjc2MDBDMUEzNTkgLyogQW5hbHlzZXJOb2RlLmgg
Ki87IH07Ci0JCUZEMzE2MDdBMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0FycmF5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA0NDEyQjAyNkY3
MDBDMUEzNTkgLyogQXVkaW9BcnJheS5oICovOyB9OwotCQlGRDMxNjA3QzEyQjAyNkY3MDBDMUEz
NTkgLyogQXVkaW9CdXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEZEMzE2MDQ2MTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0J1cy5oICovOyB9OwotCQlG
RDMxNjA3RTEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9DaGFubmVsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA0ODEyQjAyNkY3MDBDMUEzNTkg
LyogQXVkaW9DaGFubmVsLmggKi87IH07Ci0JCUZEMzE2MDdGMTJCMDI2RjcwMEMxQTM1OSAvKiBB
dWRpb0Rlc3RpbmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGRDMxNjA0OTEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9EZXN0aW5hdGlvbi5oICov
OyB9OworCQlGRDMxNjA3QTEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9BcnJheS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNDQxMkIwMjZGNzAw
QzFBMzU5IC8qIEF1ZGlvQXJyYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQlGRDMxNjA3QzEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9CdXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDQ2MTJC
MDI2RjcwMEMxQTM1OSAvKiBBdWRpb0J1cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCUZEMzE2MDdFMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0No
YW5uZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZE
MzE2MDQ4MTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0NoYW5uZWwuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlGRDMxNjA3RjEyQjAyNkY3MDBDMUEz
NTkgLyogQXVkaW9EZXN0aW5hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkQzMTYwNDkxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRp
b24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlG
RDMxNjA4MDEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9EU1BLZXJuZWwuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDRBMTJCMDI2RjcwMEMxQTM1
OSAvKiBBdWRpb0RTUEtlcm5lbC5oICovOyB9OwogCQlGRDMxNjA4MjEyQjAyNkY3MDBDMUEzNTkg
LyogQXVkaW9EU1BLZXJuZWxQcm9jZXNzb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDRDMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0RTUEtl
cm5lbFByb2Nlc3Nvci5oICovOyB9OwogCQlGRDMxNjA4MzEyQjAyNkY3MDBDMUEzNTkgLyogQXVk
aW9GaWxlUmVhZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGRDMxNjA0RDEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9GaWxlUmVhZGVyLmggKi87IH07
CkBAIC01MTQ4LDcgKzUxNTAsNyBAQAogCQlGREIxNzAwNjE0QTJCQUIyMDBBMkI1RDkgLyogTXVs
dGlDaGFubmVsUmVzYW1wbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGREIxNzAwNDE0QTJCQUIyMDBBMkI1RDkgLyogTXVsdGlDaGFubmVsUmVzYW1w
bGVyLmggKi87IH07CiAJCUZEQkQ0ODBEMTU5QkM2ODcwMDkzRUI0RiAvKiBKU01lZGlhU3RyZWFt
QXVkaW9Tb3VyY2VOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGREJENDgwQjE1OUJDNjg3MDA5M0VCNEYgLyogSlNNZWRpYVN0cmVhbUF1ZGlvU291
cmNlTm9kZS5oICovOyB9OwogCQlGREM1NEYwNTEzOTlCMERBMDA4RDkxMTcgLyogQmlxdWFkRmls
dGVyTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkRDNTRGMDIxMzk5QjBEQTAwOEQ5MTE3IC8qIEJpcXVhZEZpbHRlck5vZGUuaCAqLzsgfTsKLQkJ
RkRFMkQ1NUIxNTlFNjZFQjAwRENDQ0Y4IC8qIEF1ZGlvSU9DYWxsYmFjay5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRFMkQ1NUExNTlFNjZFQjAwREND
Q0Y4IC8qIEF1ZGlvSU9DYWxsYmFjay5oICovOyB9OworCQlGREUyRDU1QjE1OUU2NkVCMDBEQ0ND
RjggLyogQXVkaW9JT0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGREUyRDU1QTE1OUU2NkVCMDBEQ0NDRjggLyogQXVkaW9JT0NhbGxiYWNr
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkRF
QTYyNDMxNTIxMDJFMjAwNDc5REYwIC8qIEpTT3NjaWxsYXRvck5vZGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZERUE2MjQxMTUyMTAyRTIwMDQ3OURG
MCAvKiBKU09zY2lsbGF0b3JOb2RlLmggKi87IH07CiAJCUZERUE2MjQ3MTUyMTAyRkMwMDQ3OURG
MCAvKiBKU1BlcmlvZGljV2F2ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRkRFQTYyNDUxNTIxMDJGQzAwNDc5REYwIC8qIEpTUGVyaW9kaWNXYXZlLmgg
Ki87IH07CiAJCUZERjA5REM5MTM5OUI2MjIwMDY4OEU1QiAvKiBKU0JpcXVhZEZpbHRlck5vZGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZERjA5REM3
MTM5OUI2MjIwMDY4OEU1QiAvKiBKU0JpcXVhZEZpbHRlck5vZGUuaCAqLzsgfTsKQEAgLTExMjAz
LDYgKzExMjA1LDcgQEAKIAkJOUIwQUJDQTQyMzY3OUFDRjAwQjQ1MDg1IC8qIFdvcmtlckV2ZW50
TG9vcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrZXJFdmVudExvb3Au
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwQUJDQUMyMzZCQjQwQTAwQjQ1MDg1
IC8qIFRhc2tTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFza1NvdXJjZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5QjBGRTg3MzFEOUUwMkRGMDA0QThBQ0IgLyogRG9jdW1lbnRP
clNoYWRvd1Jvb3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERvY3VtZW50T3JTaGFkb3dS
b290LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUIxMjI5QzYyM0ZFNEQ1RjAw
OENBNzUxIC8qIE1lZGlhU3RyYXRlZ3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJhdGVneS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjEzMjU3QjFGM0QyQUJBMDBEQUFCNjkg
LyogRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5QjE5QjY3RTFCOTY0RTUyMDAzNDg3NDUgLyogU2hhZG93Um9vdC5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gU2hhZG93Um9vdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTlCMUFCMDc5MTY0OEM2OUQwMDUxRjNGMiAvKiBIVE1MRm9ybUNvbnRyb2xzQ29sbGVj
dGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjU5MzEsNiArMjU5MzQsNyBAQAogCQkJCUNERjJCMDAzMTgx
RjA1OUMwMEYyQjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggKi8sCiAJCQkJQ0Q2NDFFQzcxODFF
RDYwMTAwRUU0QzQxIC8qIE1lZGlhU2FtcGxlLmggKi8sCiAJCQkJQTE3RDI3NUQxRUFDNTc5ODAw
QkYwMUU3IC8qIE1lZGlhU2VsZWN0aW9uT3B0aW9uLmggKi8sCisJCQkJOUIxMjI5QzYyM0ZFNEQ1
RjAwOENBNzUxIC8qIE1lZGlhU3RyYXRlZ3kuaCAqLywKIAkJCQlCQzc3MkM0QzBDNEVCMzA0MDA4
MzI4NUYgLyogTUlNRVR5cGVSZWdpc3RyeS5jcHAgKi8sCiAJCQkJQkM3NzJDNEQwQzRFQjMwNDAw
ODMyODVGIC8qIE1JTUVUeXBlUmVnaXN0cnkuaCAqLywKIAkJCQlFMTUxM0Q1MDE2NzdGMDg4MDAx
NDlGQ0IgLyogTm90SW1wbGVtZW50ZWQuY3BwICovLApAQCAtMjkwNTYsNiArMjkwNjAsNyBAQAog
CQkJCUZEMzE2MDdFMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0NoYW5uZWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUZEMzE2MDA1MTJCMDI2NzYwMEMxQTM1OSAvKiBBdWRpb0NvbnRleHQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUZEMzE2MDdGMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0Rlc3RpbmF0
aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5QjEyMjlDNDIzRkU0QkQyMDA4Q0E3NTEgLyogQXVk
aW9EZXN0aW5hdGlvbkNvY29hLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjBCRDEyQjAyNzJB
MDBDMUEzNTkgLyogQXVkaW9EZXN0aW5hdGlvbk1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQz
MTYwMDgxMkIwMjY3NjAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGRDMxNjA4MDEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9EU1BLZXJuZWwuaCBp
biBIZWFkZXJzICovLApAQCAtMzE0ODksNiArMzE0OTQsNyBAQAogCQkJCUNENjQxRUIzMTgxOEY1
RUQwMEVFNEM0MSAvKiBNZWRpYVNvdXJjZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNE
QzhCNUE3MTgwNDc0RjcwMDE2RTY4NSAvKiBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDRERDMUU3QTE4QTk1MkYzMDAyN0E5RDQgLyogTWVkaWFTb3VyY2VQ
cml2YXRlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5QjEyMjlDNzIzRkU0RDZBMDA4Q0E3
NTEgLyogTWVkaWFTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MTUxN0QxNEQx
QzAwNDIwQUExIC8qIE1lZGlhU3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDk0QzE3
RDE3MDk2MDA0MjBBQTEgLyogTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMDc4MzIyODUxODAxM0VEODAwOTk5RTBDIC8qIE1lZGlhU3RyZWFtQXVk
aW9Tb3VyY2UuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TWVkaWFTdHJhdGVneS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01l
ZGlhU3RyYXRlZ3kuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9N
ZWRpYVN0cmF0ZWd5LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBBdWRpb0Rlc3RpbmF0aW9uOworY2xhc3MgQXVkaW9JT0NhbGxi
YWNrOworCitjbGFzcyBXRUJDT1JFX0VYUE9SVCBNZWRpYVN0cmF0ZWd5IHsKK3B1YmxpYzoKKyNp
ZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVz
dGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oCisgICAgICAgIEF1ZGlvSU9DYWxsYmFj
ayYsIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENo
YW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRl
KSA9IDA7CisjZW5kaWYKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIH5NZWRpYVN0cmF0ZWd5KCkg
PSBkZWZhdWx0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHJldmlzaW9uIDI1NzU0NykK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQmxv
YlJlZ2lzdHJ5OwogY2xhc3MgTG9hZGVyU3RyYXRlZ3k7CitjbGFzcyBNZWRpYVN0cmF0ZWd5Owog
Y2xhc3MgUGFzdGVib2FyZFN0cmF0ZWd5OwogCiBjbGFzcyBQbGF0Zm9ybVN0cmF0ZWdpZXMgewpA
QCAtMzksNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2xvYWRlclN0cmF0ZWd5ID0g
Y3JlYXRlTG9hZGVyU3RyYXRlZ3koKTsKICAgICAgICAgcmV0dXJuIG1fbG9hZGVyU3RyYXRlZ3k7
CiAgICAgfQotICAgIAorCiAgICAgUGFzdGVib2FyZFN0cmF0ZWd5KiBwYXN0ZWJvYXJkU3RyYXRl
Z3koKQogICAgIHsKICAgICAgICAgaWYgKCFtX3Bhc3RlYm9hcmRTdHJhdGVneSkKQEAgLTQ3LDYg
KzQ4LDEzIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fcGFzdGVib2FyZFN0cmF0ZWd5Owog
ICAgIH0KIAorICAgIE1lZGlhU3RyYXRlZ3kmIG1lZGlhU3RyYXRlZ3koKQorICAgIHsKKyAgICAg
ICAgaWYgKCFtX21lZGlhU3RyYXRlZ3kpCisgICAgICAgICAgICBtX21lZGlhU3RyYXRlZ3kgPSBj
cmVhdGVNZWRpYVN0cmF0ZWd5KCk7CisgICAgICAgIHJldHVybiAqbV9tZWRpYVN0cmF0ZWd5Owor
ICAgIH0KKwogICAgIEJsb2JSZWdpc3RyeSogYmxvYlJlZ2lzdHJ5KCkKICAgICB7CiAgICAgICAg
IGlmICghbV9ibG9iUmVnaXN0cnkpCkBAIC02NCwxMCArNzIsMTIgQEAgcHJvdGVjdGVkOgogcHJp
dmF0ZToKICAgICB2aXJ0dWFsIExvYWRlclN0cmF0ZWd5KiBjcmVhdGVMb2FkZXJTdHJhdGVneSgp
ID0gMDsKICAgICB2aXJ0dWFsIFBhc3RlYm9hcmRTdHJhdGVneSogY3JlYXRlUGFzdGVib2FyZFN0
cmF0ZWd5KCkgPSAwOworICAgIHZpcnR1YWwgTWVkaWFTdHJhdGVneSogY3JlYXRlTWVkaWFTdHJh
dGVneSgpID0gMDsKICAgICB2aXJ0dWFsIEJsb2JSZWdpc3RyeSogY3JlYXRlQmxvYlJlZ2lzdHJ5
KCkgPSAwOwogCiAgICAgTG9hZGVyU3RyYXRlZ3kqIG1fbG9hZGVyU3RyYXRlZ3kgeyB9OwogICAg
IFBhc3RlYm9hcmRTdHJhdGVneSogbV9wYXN0ZWJvYXJkU3RyYXRlZ3kgeyB9OworICAgIE1lZGlh
U3RyYXRlZ3kqIG1fbWVkaWFTdHJhdGVneSB7IH07CiAgICAgQmxvYlJlZ2lzdHJ5KiBtX2Jsb2JS
ZWdpc3RyeSB7IH07CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9B
dWRpb0J1cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1
ZGlvQnVzLmgJKHJldmlzaW9uIDI1NzU0NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0F1ZGlvQnVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTY2LDEwICs2NiwxMCBAQCBwdWJsaWM6
CiAgICAgLy8gYWxsb2NhdGUgaW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRvIGluaXRpYWxseSBo
YXZlIHRoZSBBdWRpb0NoYW5uZWxzIGNyZWF0ZWQgd2l0aCBtYW5hZ2VkIHN0b3JhZ2UuCiAgICAg
Ly8gTm9ybWFsIHVzYWdlIGlzIHRvIHBhc3MgdHJ1ZSBoZXJlLCBpbiB3aGljaCBjYXNlIHRoZSBB
dWRpb0NoYW5uZWxzIHdpbGwgbWVtb3J5LW1hbmFnZSB0aGVpciBvd24gc3RvcmFnZS4KICAgICAv
LyBJZiBhbGxvY2F0ZSBpcyBmYWxzZSB0aGVuIHNldENoYW5uZWxNZW1vcnkoKSBoYXMgdG8gYmUg
Y2FsbGVkIGxhdGVyIG9uIGZvciBlYWNoIGNoYW5uZWwgYmVmb3JlIHRoZSBBdWRpb0J1cyBpcyB1
c2VhYmxlLi4uCi0gICAgc3RhdGljIFJlZlB0cjxBdWRpb0J1cz4gY3JlYXRlKHVuc2lnbmVkIG51
bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBsZW5ndGgsIGJvb2wgYWxsb2NhdGUgPSB0cnVlKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmUHRyPEF1ZGlvQnVzPiBjcmVhdGUodW5zaWduZWQg
bnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IGxlbmd0aCwgYm9vbCBhbGxvY2F0ZSA9IHRydWUpOwog
CiAgICAgLy8gVGVsbHMgdGhlIGdpdmVuIGNoYW5uZWwgdG8gdXNlIGFuIGV4dGVybmFsbHkgYWxs
b2NhdGVkIGJ1ZmZlci4KLSAgICB2b2lkIHNldENoYW5uZWxNZW1vcnkodW5zaWduZWQgY2hhbm5l
bEluZGV4LCBmbG9hdCogc3RvcmFnZSwgc2l6ZV90IGxlbmd0aCk7CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRDaGFubmVsTWVtb3J5KHVuc2lnbmVkIGNoYW5uZWxJbmRleCwgZmxvYXQqIHN0
b3JhZ2UsIHNpemVfdCBsZW5ndGgpOwogCiAgICAgLy8gQ2hhbm5lbHMKICAgICB1bnNpZ25lZCBu
dW1iZXJPZkNoYW5uZWxzKCkgY29uc3QgeyByZXR1cm4gbV9jaGFubmVscy5zaXplKCk7IH0KQEAg
LTEyNiw3ICsxMjYsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBDb3BpZXMgdGhlIHNhbXBsZXMgZnJv
bSB0aGUgc291cmNlIGJ1cyB0byB0aGlzIG9uZS4KICAgICAvLyBUaGlzIGlzIGp1c3QgYSBzaW1w
bGUgcGVyLWNoYW5uZWwgY29weSBpZiB0aGUgbnVtYmVyIG9mIGNoYW5uZWxzIG1hdGNoLCBvdGhl
cndpc2UgYW4gdXAtbWl4IG9yIGRvd24tbWl4IGlzIGRvbmUuCi0gICAgdm9pZCBjb3B5RnJvbShj
b25zdCBBdWRpb0J1cyYgc291cmNlQnVzLCBDaGFubmVsSW50ZXJwcmV0YXRpb24gPSBTcGVha2Vy
cyk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb3B5RnJvbShjb25zdCBBdWRpb0J1cyYgc291
cmNlQnVzLCBDaGFubmVsSW50ZXJwcmV0YXRpb24gPSBTcGVha2Vycyk7CiAKICAgICAvLyBTdW1z
IHRoZSBzYW1wbGVzIGZyb20gdGhlIHNvdXJjZSBidXMgdG8gdGhpcyBvbmUuCiAgICAgLy8gVGhp
cyBpcyBqdXN0IGEgc2ltcGxlIHBlci1jaGFubmVsIHN1bW1pbmcgaWYgdGhlIG51bWJlciBvZiBj
aGFubmVscyBtYXRjaCwgb3RoZXJ3aXNlIGFuIHVwLW1peCBvciBkb3duLW1peCBpcyBkb25lLgpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRp
b24uaAkocmV2aXNpb24gMjU3NTQ3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
QXVkaW9EZXN0aW5hdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3IEBAIGNsYXNz
IEF1ZGlvRGVzdGluYXRpb24gewogcHVibGljOgogICAgIC8vIFBhc3MgaW4gKG51bWJlck9mSW5w
dXRDaGFubmVscyA+IDApIGlmIGxpdmUvbG9jYWwgYXVkaW8gaW5wdXQgaXMgZGVzaXJlZC4KICAg
ICAvLyBQb3J0LXNwZWNpZmljIGRldmljZSBpZGVudGlmaWNhdGlvbiBpbmZvcm1hdGlvbiBmb3Ig
bGl2ZS9sb2NhbCBpbnB1dCBzdHJlYW1zIGNhbiBiZSBwYXNzZWQgaW4gdGhlIGlucHV0RGV2aWNl
SWQuCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGUo
QXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBu
dW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZs
b2F0IHNhbXBsZVJhdGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmlu
ZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25l
ZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsKIAogICAgIHZpcnR1
YWwgfkF1ZGlvRGVzdGluYXRpb24oKSA9IGRlZmF1bHQ7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lv
biAyNTc1NDcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDExMyBAQAorMjAyMC0wMi0yNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9y
Zz4KKworICAgICAgICBDcmVhdGUgQXVkaW9EZXN0aW5hdGlvbiBpbiB0aGUgR1BVIHByb2Nlc3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODE3OQor
CisgICAgICAgIFJldmlld2VkIGJ5IEplciBOb2JsZS4KKworICAgICAgICBDcmVhdGUgQXVkaW9E
ZXN0aW5hdGlvbiBpbiB0aGUgR1BVIHByb2Nlc3MgaW5zdGVhZCBvZiB0aGUgV2ViQ29udGVudCBw
cm9jZXNzIGZvciBXZWJBdWRpbyBBUEkgd2hlbgorICAgICAgICB0aGUgTWVkaWEtaW4tR1BVLXBy
b2Nlc3MgZmVhdHVyZSBpcyBlbmFibGVkLgorCisgICAgICAgIFRvIGRvIHRoaXMsIFdlYk1lZGlh
U3RyYXRlZ3ksIGEgY29uY3JldGUgaW1wbGVtZW50YXRpb24gb2YgTWVkaWFTdHJhdGVneSwgaW4g
dGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBnZXRzCisgICAgICAgIGEgYm9vbGVhbiBmbGFnIGluZGlj
YXRpbmcgd2hldGhlciB0aGUgR1BVIHByb2Nlc3Mgc2hvdWxkIGJlIHVzZWQgZm9yIEF1ZGlvRGVz
dGluYXRpb24gb3Igbm90LiBXaGVuIHRoZSBmbGFnCisgICAgICAgIGlzIHNldCwgd2UgY3JlYXRl
IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSBpbnN0ZWFkIG9mIEF1ZGlvRGVzdGluYXRpb24g
aW4gV2ViQ29udGVudCBwcm9jZXNzLgorCisgICAgICAgIEVhY2ggUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5IHRhbGtzIHRvIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyIGluIHRoZSBH
UFUgcHJvY2VzcyBhbmQgY3JlYXRlcworICAgICAgICBhIGNvcnJlc3BvbmRpbmcgUmVtb3RlQXVk
aW9EZXN0aW5hdGlvbiB3aGljaCBpbiB0dXJuIGNyZWF0ZXMgV2ViQ29yZSdzIEF1ZGlvRGVzdGlu
YXRpb24gaW4gdGhlIEdQVSBwcm9jZXNzLgorCisgICAgICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRp
b24gaXMgaXRzZWxmIGFuIEF1ZGlvSU9DYWxsYmFjayBmb3IgQXVkaW9EZXN0aW5hdGlvbiBpdCBj
cmVhdGVzLCBhbmQgZGVsZWdhdGVzCisgICAgICAgIGl0cyBjYWxsYmFjayB0byBXZWJDb250ZW50
IHByb2Nlc3MnIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSBhcyBuZWVkZWQuCisKKyAgICAg
ICAgSW4gdGhpcyBpbml0aWFsIHBhdGNoLCB3ZSBzZW5kIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Q
cm94eTo6UmVuZGVyQnVmZmVyIElQQyBjYWxsIHRvIHRoZSBXZWJDb250ZW50IHByb2Nlc3MKKyAg
ICAgICAgZm9yIGVhY2ggcmVuZGVyIGNhbGwgd2UgZ2V0IGZyb20gQ29yZUF1ZGlvIGZvciBzaW1w
bGljaXR5IHVzaW5nIG5ld2x5IGludHJvZHVjZWQgUmVtb3RlQXVkaW9CdXNEYXRhLAorICAgICAg
ICB3aGljaCBob2xkcyBhIFNoYXJlZE1lbW9yeSBmb3IgZWFjaCBjaGFubmVsIGluIHRoZSBhdWRp
byBidXMuCisKKyAgICAgICAgV2Ugd2lsbCBlbGltaW5hdGUgdGhpcyBJUEMgb3ZlcmhlYWQgaW4g
YSBmb2xsb3cgdXAgcGF0Y2ggdXNpbmcgQ0FSaW5nQnVmZmVyLgorCisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAq
IEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmRpZFJlY2VpdmVNZXNzYWdlKTogQWRkZWQgdGhlIGNvZGUgdG8gZGlzcGF0Y2ggbWVzc2FnZXMg
dG8KKyAgICAgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuCisgICAgICAgIChXZWJL
aXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6IERp
dHRvLgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbik6IEFk
ZGVkLiBUaGlzIGNsYXNzIGlzIHRoZSBiYWNraW5nIG9iamVjdCB3aGljaCBjcmVhdGVzIFdlYkNv
cmUncworICAgICAgICBBdWRpb0Rlc3RpbmF0aW9uIGFuZCBhY3R1YWxseSB0YWxrcyB0byBDb3Jl
QXVkaW8gaW4gR1BVIHByb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb246OmNyZWF0ZSk6IEFkZGVkLgorCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVz
dGluYXRpb246On5SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OnNjaGVkdWxlR3JhY2VmdWxTaHV0ZG93bklmTmVl
ZGVkKTogRGVsYXlzIHRoZSBkZWxldGlvbiBvZiB0aGlzIG9iamVjdAorICAgICAgICB1bnRpbCB0
aGUgYXVkaW8gdGhyZWFkcyBzdG9wcyBydW5uaW5nLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uOjpzdGFydCk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uOjpzdG9wKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1
ZGlvRGVzdGluYXRpb246OmlzUGxheWluZyk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uKTogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OnJlbmRlcik6IFNlbmRzIGEgc3lu
YyBJUEMgdG8gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcycKKyAgICAgICAgUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5IHRvIGZpbGwgdGhlIGF1ZGlvIGJ1ZmZlci4gTm90ZSB0aGF0IHRoaXMgZnVu
Y3Rpb24gZ2V0cyBjYWxsZWQgaW4gYXVkaW8gdGhyZWFkLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uOjppc1BsYXlpbmdEaWRDaGFuZ2UpOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIpOiBBZGRlZC4gVGhpcyBjbGFz
cyBtYW5hZ2VzIGFsbCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uIG9iamVjdHMgb3duZWQKKyAgICAg
ICAgYnkgYSBzaW5nbGUgV2ViQ29udGVudCBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIp
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6
On5SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcik6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbik6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6
ZGVsZXRlQXVkaW9EZXN0aW5hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6c3RhcnRBdWRpb0Rlc3RpbmF0aW9uKTogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpzdG9wQXVkaW9E
ZXN0aW5hdGlvbik6IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVk
aW9EZXN0aW5hdGlvbk1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlU3luY01lc3NhZ2VGcm9tV2ViUHJvY2Vz
cyk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
cjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vzcyk6IEFkZGVkLgorICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW46
IEFkZGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0
cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3kpOiBBZGRlZC4gUmV0dXJucyBudWxscHRyIHNp
bmNlIE5ldHdvcmtpbmcKKyAgICAgICAgcHJvY2VzcyBoYXMgbm8gYnVzaW5lc3MgcnVubmluZyBB
dWRpb0Rlc3RpbmF0aW9uLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
UGxhdGZvcm1TdHJhdGVnaWVzLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUGxh
dGZvcm1TdHJhdGVnaWVzKToKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTaGFyZWQvUmVtb3RlQXVk
aW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyVHlwZSk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllcik6IEFkZGVkLiBUaGUgaWRlbnRpZmll
ciBmb3IgZWFjaCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uCisgICAgICAgIGFuZCBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkgKGNvcnJlc3BvbmRpbmcgb2JqZWN0cyBvZiBlYWNoIGNsYXNzIHVz
ZSB0aGUgc2FtZSBJRCB0byBjb21tdW5pY2F0ZSkuCisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRp
b0J1c0RhdGEuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvQnVzRGF0YSk6
IEFkZGVkLiBFbmNvZGVzIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBlYWNoIHJlbmRlciBjYWxsLgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0J1c0RhdGE6OmVuY29kZSBjb25zdCk6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0J1c0RhdGE6OmRlY29kZSk6IEFkZGVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJv
eHkpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5
OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkpOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Ojp+UmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Q
cm94eTo6c3RhcnQpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5OjpzdG9wKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eTo6cmVuZGVyQnVmZmVyKTogQWRkZWQuIENhbGxzIFdlYkNvcmUncyBBdWRp
b0lPQ2FsbGJhY2sgdG8gZmlsbAorICAgICAgICB0aGUgYXVkaW8gYnVmZmVyIGdpdmVuIGJ5IHRo
ZSBHUFUgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5OjpkaWRDaGFuZ2VJc1BsYXlpbmcpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZUZyb21HUFVQcm9j
ZXNzKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eTo6aXNQbGF5aW5nKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eTo6c2FtcGxlUmF0ZSk6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHA6
IEZpeGVkIHRoZSB1bmlmaWVkIGJ1aWxkcy4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmg6IERpdHRvLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViTWVkaWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbik6IEFkZGVkLgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyYXRlZ3kpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViTWVkaWFTdHJhdGVneTo6c2V0VXNlR1BVUHJvY2Vzcyk6IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcDog
Rml4ZWQgdGhlIHVuaWZpZWQgYnVpbGRzLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVNZWRpYVN0cmF0ZWd5KTogQWRkZWQuCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKTogU2V0cyBXZWJNZWRpYVN0cmF0ZWd5J3MgZmxhZyB0
byB1c2UgR1BVIHByb2Nlc3MuCisKIDIwMjAtMDItMjYgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fi
b3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgdGhlIHJlbW90ZSBSZW5k
ZXJpbmdCYWNrZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CShyZXZpc2lvbiAyNTc1NDcpCisrKyBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QJKHdvcmtpbmcgY29weSkKQEAgLTE3LDYgKzE3LDcgQEAg
JChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVAogJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbgogJChQ
Uk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNi
LmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVz
c2FnZXMuaW4KQEAgLTExMCw2ICsxMTEsNyBAQCAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0Z1
bGxTY3JlZW4vV2ViCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCisk
KFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5tZXNzYWdlcy5p
bgpJbmRleDogU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CShyZXZpc2lvbiAyNTc1NDcpCisrKyBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0xMjMsNiArMTIzLDEwIEBAICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWIKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1BsdWdpblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUGx1Z2luUHJveHlN
ZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9Q
bHVnaW5Qcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VzLmNw
cAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVk
aW9EZXN0aW5hdGlvbk1hbmFnZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHlNZXNzYWdlcy5j
cHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlck1l
c3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5o
CkluZGV4OiBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAyNTc1NDcpCisrKyBT
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTE0Niw2
ICsxNDYsOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBQbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbk1hbmFnZXIgXAogICAgIFBsdWdpblByb2Nlc3NQcm94eSBcCiAgICAgUGx1Z2luUHJveHkg
XAorICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyIFwKKyAgICBSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHkgXAogICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
TWFuYWdlciBcCiAgICAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIgXAogICAg
IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkgXApJbmRleDogU291cmNlL1dlYktpdC9Q
bGF0Zm9ybU1hYy5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtTWFj
LmNtYWtlCShyZXZpc2lvbiAyNTc1NDcpCisrKyBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtTWFjLmNt
YWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xNjEsNiArMTYxLDExIEBAIGxpc3QoQVBQRU5EIFdlYktp
dF9NRVNTQUdFU19JTl9GSUxFUwogICAgIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbgogICAgIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbgog
CisgICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5tZXNz
YWdlcy5pbgorICAgIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4KKyAgICBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkubWVzc2FnZXMuaW4KKyAgICBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyLm1lc3NhZ2VzLmluCisKICAgICBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2Rl
Y3NQcm94eS5tZXNzYWdlcy5pbgogICAgIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllck1hbmFnZXIubWVzc2FnZXMuaW4KICAgICBHUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIubWVzc2FnZXMuaW4K
QEAgLTE3MSwxMCArMTc2LDYgQEAgbGlzdChBUFBFTkQgV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVT
CiAgICAgR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXIubWVzc2FnZXMuaW4KICAgICBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCiAKLSAgICBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KLSAgICBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCi0gICAgR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgotICAgIAogICAgIE5l
dHdvcmtQcm9jZXNzL0N1c3RvbVByb3RvY29scy9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXIu
bWVzc2FnZXMuaW4KIAogICAgIFNoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQ
cm94eS5tZXNzYWdlcy5pbgpJbmRleDogU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CShyZXZpc2lvbiAyNTc1NDcpCisrKyBT
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01MzgsMTEgKzUzOCwx
MyBAQCBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKK1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
TUlNRVR5cGVDYWNoZS5jcHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVN
ZWRpYVJlc291cmNlUHJveHkuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2
YXRlUmVtb3RlLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1v
dGUuY3BwCitXZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcAogV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKIFdlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJl
Y29yZGVyUHJvdmlkZXIuY3BwCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CShyZXZpc2lvbiAy
NTc1NDcpCisrKyBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTY1MCw2ICs2NTAsOCBAQCBHUFVQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBH
UFVQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcAogTGliV2ViUlRDQ29kZWNzUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwCiBMaWJXZWJSVENDb2RlY3NNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlTWVkaWFSZWNvcmRl
ck1lc3NhZ2VSZWNlaXZlci5jcHAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDI1NzU0NykK
KysrIFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgIkxpYldlYlJUQ0Nv
ZGVjc1Byb3h5LmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNzUHJveHlNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlci5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIu
aCIKICNpbmNsdWRlICJSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXJN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
TWVzc2FnZXMuaCIKQEAgLTEyNyw2ICsxMjksMTQgQEAgdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpkaWRSZWNlaQogICAgIENSQVNIKCk7CiB9CiAKK1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyJiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2Vy
KQorICAgICAgICBtX3JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyID0gbWFrZVVuaXF1ZTxS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcj4oKnRoaXMpOworCisgICAgcmV0dXJuICptX3Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOworfQorCiBSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlciYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIoKQogewogICAgIGlmICghbV9yZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcikKQEAgLTIwNSw2
ICsyMTUsMTAgQEAgdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZWxlYXNlUgogCiBi
b29sIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKIHsKKyAgICBpZiAoZGVj
b2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25NYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgcmVtb3RlQXVk
aW9EZXN0aW5hdGlvbk1hbmFnZXIoKS5kaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNv
bm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAgICAgaWYg
KGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIHJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCkuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vz
cyhjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0yNjAsNiAr
Mjc0LDEwIEBAIGJvb2wgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2gKIAogYm9v
bCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaXNwYXRjaFN5bmNNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9w
dHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogeworICAgIGlmIChkZWNvZGVyLm1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICByZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uTWFuYWdlcigpLmRpZFJlY2VpdmVTeW5jTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNvbm5lY3Rp
b24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
ICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAgICAg
ICAgcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKS5kaWRSZWNlaXZlU3luY01lc3NhZ2VG
cm9tV2ViUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAkocmV2aXNpb24gMjU3NTQ3KQorKysgU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAkod29ya2luZyBj
b3B5KQpAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgR1BVUHJv
Y2VzczsKIGNsYXNzIExpYldlYlJUQ0NvZGVjc1Byb3h5OworY2xhc3MgUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXI7CiBjbGFzcyBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ck1hbmFnZXI7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKIGNsYXNzIFJl
bW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOwpAQCAtODcsNiArODgsNyBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoR1BVUHJvY2VzcyYsIFdlYkNvcmU6
OlByb2Nlc3NJZGVudGlmaWVyLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFBBTDo6U2Vz
c2lvbklEKTsKIAorICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyJiByZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlcigpOwogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
JiByZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpOwogI2lmIFBMQVRGT1JNKENPQ09BKSAm
JiBVU0UoTElCV0VCUlRDKQogICAgIExpYldlYlJUQ0NvZGVjc1Byb3h5JiBsaWJXZWJSVENDb2Rl
Y3NQcm94eSgpOwpAQCAtMTE3LDYgKzExOSw3IEBAIHByaXZhdGU6CiAgICAgSVBDOjpNZXNzYWdl
UmVjZWl2ZXJNYXAgbV9tZXNzYWdlUmVjZWl2ZXJNYXA7CiAgICAgUmVmPEdQVVByb2Nlc3M+IG1f
Z3B1UHJvY2VzczsKICAgICBjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBtX3dlYlBy
b2Nlc3NJZGVudGlmaWVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uTWFuYWdlcj4gbV9yZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI+IG1fcmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5PiBtX3JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OwogICAgIFBBTDo6U2Vzc2lvbklE
IG1fc2Vzc2lvbklEOwpJbmRleDogU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwCShub25l
eGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNzcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUg
IkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0J1c0Rh
dGEuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHlNZXNzYWdlcy5oIgor
I2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9CdXMuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0F1ZGlvSU9DYWxsYmFjay5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+Cisj
aW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL3RocmVh
ZHMvQmluYXJ5U2VtYXBob3JlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFJlbW90ZUF1
ZGlvRGVzdGluYXRpb24+LCBwdWJsaWMgV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrIHsKK3B1Ymxp
YzoKKyAgICB1c2luZyBBdWRpb0J1cyA9IFdlYkNvcmU6OkF1ZGlvQnVzOworICAgIHVzaW5nIEF1
ZGlvRGVzdGluYXRpb24gPSBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uOworICAgIHVzaW5nIFNo
YXJlZEJ1ZmZlciA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjsKKworICAgIHN0YXRpYyBSZWY8UmVt
b3RlQXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNv
bm5lY3Rpb24sIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIGlkLAorICAgICAgICBj
b25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVpbnQzMl90IG51bWJlck9mSW5wdXRDaGFubmVs
cywgdWludDMyX3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZUF1ZGlvRGVzdGluYXRpb24o
Y29ubmVjdGlvbiwgaWQsIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVt
YmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSkpOworICAgIH0KKworICAgIHZpcnR1YWwg
flJlbW90ZUF1ZGlvRGVzdGluYXRpb24oKQorICAgIHsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQo
IW1fZGVzdGluYXRpb24tPmlzUGxheWluZygpKTsKKyAgICB9CisKKyAgICB2b2lkIHNjaGVkdWxl
R3JhY2VmdWxTaHV0ZG93bklmTmVlZGVkKCkKKyAgICB7CisgICAgICAgIGlmICghaXNQbGF5aW5n
KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fcHJvdGVjdFRoaXNEdXJpbmdHcmFj
ZWZ1bFNodXRkb3duID0gdGhpczsKKyAgICAgICAgc3RvcCgpOworICAgIH0KKworICAgIHZvaWQg
c3RhcnQoKSB7IG1fZGVzdGluYXRpb24tPnN0YXJ0KCk7IH0KKyAgICB2b2lkIHN0b3AoKSB7IG1f
ZGVzdGluYXRpb24tPnN0b3AoKTsgfQorICAgIGJvb2wgaXNQbGF5aW5nKCkgeyByZXR1cm4gbV9k
ZXN0aW5hdGlvbi0+aXNQbGF5aW5nKCk7IH0KKworcHJpdmF0ZToKKyAgICBSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIGlkLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQs
IHVpbnQzMl90IG51bWJlck9mSW5wdXRDaGFubmVscywgdWludDMyX3QgbnVtYmVyT2ZPdXRwdXRD
aGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKKyAgICAgICAgOiBtX2Nvbm5lY3Rpb24oY29ubmVj
dGlvbikKKyAgICAgICAgLCBtX2lkKGlkKQorICAgICAgICAsIG1fZGVzdGluYXRpb24oQXVkaW9E
ZXN0aW5hdGlvbjo6Y3JlYXRlKCp0aGlzLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hh
bm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpKQorICAgIHsKKyAgICB9
CisKKyAgICB2b2lkIHJlbmRlcihBdWRpb0J1cyogc291cmNlQnVzLCBBdWRpb0J1cyogZGVzdGlu
YXRpb25CdXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIG92ZXJyaWRlCisgICAgeworICAgICAg
ICBpZiAobV9wcm90ZWN0VGhpc0R1cmluZ0dyYWNlZnVsU2h1dGRvd24pCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7Cisg
ICAgICAgIEJpbmFyeVNlbWFwaG9yZSByZW5kZXJTZW1hcGhvcmU7CisKKyAgICAgICAgVmVjdG9y
PFJlZjxTaGFyZWRNZW1vcnk+PiBidWZmZXJzOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgZGVzdGluYXRpb25CdXMtPm51bWJlck9mQ2hhbm5lbHMoKTsgKytpKSB7CisgICAgICAg
ICAgICBhdXRvIG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6YWxsb2NhdGUoc2l6ZW9mKGZsb2F0KSAq
IGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAgICAgICBidWZmZXJzLmFwcGVuZCgqbWVtb3J5KTsK
KyAgICAgICAgfQorCisgICAgICAgIC8vIEZJWE1FOiBSZXBsYWNlIHRoaXMgY29kZSB3aXRoIGEg
cmluZyBidWZmZXIuIEF0IGxlYXN0IHRoaXMgaGFwcGVucyBpbiBhdWRpbyB0aHJlYWQuCisgICAg
ICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0
aGlzLCBmcmFtZXNUb1Byb2Nlc3MsICZidWZmZXJzLCAmcmVuZGVyU2VtYXBob3JlXSB7CisgICAg
ICAgICAgICBSZW1vdGVBdWRpb0J1c0RhdGEgYnVzRGF0YSB7IGZyYW1lc1RvUHJvY2VzcywgYnVm
ZmVycy5tYXAoW10oYXV0byYgbWVtb3J5KSB7IHJldHVybiBtZW1vcnkuY29weVJlZigpOyB9KSB9
OworICAgICAgICAgICAgQVNTRVJUKGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAgICAgICBtX2Nv
bm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5OjpSZW5kZXJCdWZmZXIoYnVzRGF0YSksIFsmXSgpIHsKKyAg
ICAgICAgICAgICAgICByZW5kZXJTZW1hcGhvcmUuc2lnbmFsKCk7CisgICAgICAgICAgICB9LCBt
X2lkLnRvVUludDY0KCkpOworICAgICAgICB9KTsKKyAgICAgICAgcmVuZGVyU2VtYXBob3JlLndh
aXQoKTsKKworICAgICAgICBhdXRvIGF1ZGlvQnVzID0gQXVkaW9CdXM6OmNyZWF0ZShidWZmZXJz
LnNpemUoKSwgZnJhbWVzVG9Qcm9jZXNzLCBmYWxzZSk7CisgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBidWZmZXJzLnNpemUoKTsgKytpKQorICAgICAgICAgICAgYXVkaW9CdXMtPnNl
dENoYW5uZWxNZW1vcnkoaSwgKGZsb2F0KilidWZmZXJzW2ldLT5kYXRhKCksIGZyYW1lc1RvUHJv
Y2Vzcyk7CisgICAgICAgIGRlc3RpbmF0aW9uQnVzLT5jb3B5RnJvbSgqYXVkaW9CdXMpOworICAg
IH0KKworICAgIHZvaWQgaXNQbGF5aW5nRGlkQ2hhbmdlKCkgb3ZlcnJpZGUKKyAgICB7CisgICAg
ICAgIGlmIChtX3Byb3RlY3RUaGlzRHVyaW5nR3JhY2VmdWxTaHV0ZG93bikgeworICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlQoIW1fZGVzdGluYXRpb24tPmlzUGxheWluZygpKTsKKyAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKHJlZkNvdW50KCkgPT0gMSk7CisgICAgICAgICAgICBtX3Byb3Rl
Y3RUaGlzRHVyaW5nR3JhY2VmdWxTaHV0ZG93biA9IG51bGxwdHI7IC8vIERlbGV0ZXMgInRoaXMi
LgorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGNhbGxPbk1haW5UaHJl
YWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaXNQbGF5aW5nID0gbV9k
ZXN0aW5hdGlvbi0+aXNQbGF5aW5nKCksIGlkID0gbV9pZC50b1VJbnQ2NCgpXSB7CisgICAgICAg
ICAgICBtX2Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eTo6RGlkQ2hhbmdlSXNQbGF5aW5nKGlzUGxheWluZyksIGlkKTsKKyAg
ICAgICAgfSk7CisgICAgfQorCisgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9jb25u
ZWN0aW9uOworICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIG1faWQ7CisgICAg
c3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IG1fZGVzdGluYXRpb247CisgICAgUmVm
UHRyPFJlbW90ZUF1ZGlvRGVzdGluYXRpb24+IG1fcHJvdGVjdFRoaXNEdXJpbmdHcmFjZWZ1bFNo
dXRkb3duOworfTsKKworUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OlJlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24p
CisgICAgOiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVjdGlvbikKK3sKK30KKwor
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6On5SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlcigpID0gZGVmYXVsdDsKKwordm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6
Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVpbnQz
Ml90IG51bWJlck9mSW5wdXRDaGFubmVscywgdWludDMyX3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVs
cywgZmxvYXQgc2FtcGxlUmF0ZSwKKyAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBh
dXRvIG5ld0lEID0gUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXI6OmdlbmVyYXRlVGhy
ZWFkU2FmZSgpOworICAgIGF1dG8gY2FsbGJhY2sgPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uOjpj
cmVhdGUobV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBuZXdJRCwgaW5wdXREZXZpY2VJZCwg
bnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRl
KTsKKyAgICBtX2F1ZGlvRGVzdGluYXRpb25zLmFkZChuZXdJRCwgV1RGTW92ZShjYWxsYmFjaykp
OworICAgIGNvbXBsZXRpb25IYW5kbGVyKG5ld0lEKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlcjo6ZGVsZXRlQXVkaW9EZXN0aW5hdGlvbihSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uSWRlbnRpZmllciBpZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIGF1dG8gZGVzdGluYXRpb24gPSBtX2F1ZGlvRGVzdGluYXRpb25z
LnRha2UoaWQpOworICAgIGlmIChkZXN0aW5hdGlvbikKKyAgICAgICAgZGVzdGluYXRpb24udmFs
dWUoKS0+c2NoZWR1bGVHcmFjZWZ1bFNodXRkb3duSWZOZWVkZWQoKTsKKyAgICBjb21wbGV0aW9u
SGFuZGxlcigpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpzdGFy
dEF1ZGlvRGVzdGluYXRpb24oUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgaWQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAg
Ym9vbCBpc1BsYXlpbmcgPSBmYWxzZTsKKyAgICBpZiAoYXV0byogaXRlbSA9IG1fYXVkaW9EZXN0
aW5hdGlvbnMuZ2V0KGlkKSkgeworICAgICAgICBpdGVtLT5zdGFydCgpOworICAgICAgICBpc1Bs
YXlpbmcgPSBpdGVtLT5pc1BsYXlpbmcoKTsKKyAgICB9CisgICAgY29tcGxldGlvbkhhbmRsZXIo
aXNQbGF5aW5nKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6c3Rv
cEF1ZGlvRGVzdGluYXRpb24oUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgaWQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAg
Ym9vbCBpc1BsYXlpbmcgPSBmYWxzZTsKKyAgICBpZiAoYXV0byogaXRlbSA9IG1fYXVkaW9EZXN0
aW5hdGlvbnMuZ2V0KGlkKSkgeworICAgICAgICBpdGVtLT5zdG9wKCk7CisgICAgICAgIGlzUGxh
eWluZyA9IGl0ZW0tPmlzUGxheWluZygpOworICAgIH0KKyAgICBjb21wbGV0aW9uSGFuZGxlcihp
c1BsYXlpbmcpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCkluZGV4OiBT
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVk
ZSAiUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRN
ZW1vcnkuaCIKKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5k
bGVyLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CitjbGFzcyBSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uOworCitjbGFzcyBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlciA6IHByaXZhdGUg
SVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKTsKK3B1
YmxpYzoKKyAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcihHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJik7CisgICAgflJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKCk7CisKKyAg
ICB2b2lkIGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlk
LCB1aW50MzJfdCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVpbnQzMl90IG51bWJlck9mT3V0cHV0
Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIpPiYmKTsKKyAgICB2b2lkIGRlbGV0ZUF1ZGlvRGVz
dGluYXRpb24oUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzdGFydEF1ZGlvRGVzdGluYXRpb24oUmVtb3RlQXVk
aW9EZXN0aW5hdGlvbklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OworICAgIHZvaWQgc3RvcEF1ZGlvRGVzdGluYXRpb24oUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworCisgICAgdm9pZCBk
aWRSZWNlaXZlU3luY01lc3NhZ2VGcm9tV2ViUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rl
cj4mIGVuY29kZXIpCisgICAgeworICAgICAgICBkaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVj
dGlvbiwgZGVjb2RlciwgZW5jb2Rlcik7CisgICAgfQorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2VGcm9tV2ViUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2Rl
ciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQor
Citwcml2YXRlOgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKTsK
KworICAgIEhhc2hNYXA8UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIsIFJlZjxSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uPj4gbV9hdWRpb0Rlc3RpbmF0aW9uczsKKyAgICBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzJiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlOworCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4JKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2Vz
LmluCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzcgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+
IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworCisgICAgQ3Jl
YXRlQXVkaW9EZXN0aW5hdGlvbihTdHJpbmcgaW5wdXREZXZpY2VJZCwgdWludDMyX3QgbnVtYmVy
T2ZJbnB1dENoYW5uZWxzLCB1aW50MzJfdCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBz
YW1wbGVSYXRlKSAtPiAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBp
ZCkgU3luY2hyb25vdXMKKworICAgIERlbGV0ZUF1ZGlvRGVzdGluYXRpb24oV2ViS2l0OjpSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBpZCkgLT4gKCkgQXN5bmMKKworICAgIFN0YXJ0
QXVkaW9EZXN0aW5hdGlvbihXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVy
IGlkKSAtPiAoYm9vbCBpc1BsYXlpbmcpIFN5bmNocm9ub3VzCisgICAgU3RvcEF1ZGlvRGVzdGlu
YXRpb24oV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBpZCkgLT4gKGJv
b2wgaXNQbGF5aW5nKSBTeW5jaHJvbm91cworCit9CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
c1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAJKHJldmlzaW9uIDI1NzU0NykKKysrIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0OCwxMSBAQCBQYXN0ZWJvYXJkU3RyYXRlZ3kqIE5ldHdv
cmtQcm9jZXNzUGxhdGZvCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK01lZGlhU3RyYXRlZ3kq
IE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVNZWRpYVN0cmF0ZWd5KCkK
K3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogQmxvYlJlZ2lzdHJ5KiBOZXR3b3JrUHJvY2Vz
c1BsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKIHsKICAgICB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHJl
dmlzaW9uIDI1NzU0NykKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBA
QCBwcml2YXRlOgogICAgIC8vIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcwogICAgIFdlYkNv
cmU6OkxvYWRlclN0cmF0ZWd5KiBjcmVhdGVMb2FkZXJTdHJhdGVneSgpIG92ZXJyaWRlOwogICAg
IFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVneSogY3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkg
b3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6TWVkaWFTdHJhdGVneSogY3JlYXRlTWVkaWFTdHJhdGVn
eSgpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkJsb2JSZWdpc3RyeSogY3JlYXRlQmxvYlJlZ2lz
dHJ5KCkgb3ZlcnJpZGU7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkJKHJldmlzaW9uIDI1NzU0NykKKysrIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXMucHkJKHdvcmtpbmcgY29weSkKQEAgLTIzMSw2ICsyMzEsNyBAQCBkZWYg
dHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlCiAgICAgICAgICdXZWJLaXQ6Ok1E
TlNSZWdpc3RlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6TWVkaWFSZWNvcmRlcklkZW50
aWZpZXInLAorICAgICAgICAnV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmll
cicsCiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyJywKICAg
ICAgICAgJ1dlYktpdDo6UmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXInLAogICAgICAgICAnV2Vi
S2l0OjpSVENEZWNvZGVySWRlbnRpZmllcicsCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9S
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvU2hhcmVkL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmgJKG5vbmV4aXN0
ZW50KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50
aWZpZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDx3dGYvT2Jq
ZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uSWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbklkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFJlbW90ZUF1ZGlvRGVzdGluYXRpb25J
ZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gMjU3NTQ3KQorKysgU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTQxMCw4ICsxNDEwLDE0IEBACiAJCTlCMDJFMENC
MjM1RUI5NTMwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDJFMEM5MjM1RUI2MkQw
MDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjAyRTBDQzIzNUVCOTU3MDA0MDQ0
QjIgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDJFMENBMjM1RUI4ODQwMDQwNDRCMiAvKiBfV0tUZXh0
TWFuaXB1bGF0aW9uSXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTlCMDJFMEQ3MjM1RkM5NEYwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0
aW9uVG9rZW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDlCMDJFMENEMjM1RUI5NjcwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5QjEyMjlD
RDIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMTIyOUNCMjNGRjI1
RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oICovOyB9OworCQk5
QjEyMjlDRTIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIxMjI5
Q0MyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCAq
LzsgfTsKKwkJOUIxMjI5RDIyM0ZGMkJDQzAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25JZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5QjEyMjlEMDIzRkYyQTVFMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklk
ZW50aWZpZXIuaCAqLzsgfTsKIAkJOUI1NDk5QUQyMzYyQTZGOTAwREY4QkE1IC8qIF9XS1RleHRN
YW5pcHVsYXRpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5QjU0OTlBQzIzNjJBNkY2MDBERjhCQTUgLyogX1dLVGV4dE1hbmlw
dWxhdGlvbkNvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5QjU0OTlCMjIzNjJBN0VDMDBERjhCQTUgLyogX1dLVGV4dE1hbmlw
dWxhdGlvbkV4Y2x1c2lvblJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDlCNTQ5OUIwMjM2MkE3RUMwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1bGF0
aW9uRXhjbHVzaW9uUnVsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTlCNUJFQzI2MjQwMEY0QTkwMDcwQzZFRiAvKiBXZWJNZWRpYVN0cmF0ZWd5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjVCRUMy
NDI0MDBGNEE5MDA3MEM2RUYgLyogV2ViTWVkaWFTdHJhdGVneS5oICovOyB9OworCQk5QjVCRUMy
QTI0MDEwMTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjVCRUMyODI0MDEwMTU4
MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmggKi87IH07CisJCTlCNUJF
QzMxMjQwMTAyMjIwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0J1c0RhdGEuaCBpbiBDb3B5RmlsZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI1QkVDMzAyNDAxMDIyMjAwNzBD
NkVGIC8qIFJlbW90ZUF1ZGlvQnVzRGF0YS5oICovOyB9OwogCQk5RkI1RjM5NTE2OUU2QTgwMDAy
QzI1QkYgLyogV0tDb250ZXh0UHJpdmF0ZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOUZCNUYzOTMxNjlFNkE4MDAwMkMyNUJGIC8qIFdLQ29udGV4
dFByaXZhdGVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlBMTAyQTcwODFFQzBFRUU5MDBEODFEODIgLyogY29tLm1hY3JvbWVkaWEuRmxhc2gg
UGxheWVyIEVTUi5wbHVnaW4uc2IgaW4gQ29weSBQbHVnLWluIFNhbmRib3ggUHJvZmlsZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E1RTM5NDkxRDVCRDhBNzAwQjRCN0NF
IC8qIGNvbS5tYWNyb21lZGlhLkZsYXNoIFBsYXllciBFU1IucGx1Z2luLnNiICovOyB9OwogCQlB
MTA0NkVBMTIwNzkyNjMxMDBGMEM1RDggLyogV0tQREZWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTA0NkU5RjIwNzkyNjMxMDBGMEM1RDggLyog
V0tQREZWaWV3LmggKi87IH07CkBAIC0yMDY2LDYgKzIwNzIsNyBAQAogCQkJCTJEQjk2MDUzMjM5
ODg2QzEwMDEwMjc5MSAvKiBjb20uYXBwbGUuV2ViS2l0LkdQVS5zYiBpbiBDb3B5RmlsZXMgKi8s
CiAJCQkJQTc4Q0NEREIxOTNBQzlGODAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29y
a2luZy5zYiBpbiBDb3B5RmlsZXMgKi8sCiAJCQkJQTc4Q0NEREMxOTNBQzlGQjAwNUVDQzI1IC8q
IGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYiBpbiBDb3B5RmlsZXMgKi8sCisJCQkJOUI1
QkVDMzEyNDAxMDIyMjAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvQnVzRGF0YS5oIGluIENvcHlGaWxl
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKQEAgLTQ0MDMsMTAgKzQ0MTAsMjAgQEAKIAkJOUIwMkUwQ0QyMzVFQjk2NzAwNDA0NEIy
IC8qIF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUZXh0TWFu
aXB1bGF0aW9uVG9rZW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwMkUwQ0Uy
MzVFQkIxNDAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOUIwMkUwRDAyMzVFQkNDQTAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVs
YXRpb25JdGVtLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLVGV4dE1hbmlwdWxhdGlvbkl0
ZW0ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCMTIyOUNCMjNGRjI1RjIwMDhD
QTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5QjEyMjlDQzIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjEyMjlDRjIzRkYyODE0MDA4
Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTlCMTIyOUQwMjNGRjJBNUUwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjU0OTlBQzIz
NjJBNkY2MDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI1NDk5QUUyMzYyQTdBNzAwREY4QkE1IC8qIF9XS1RleHRN
YW5pcHVsYXRpb25Db25maWd1cmF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLVGV4
dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTlCNTQ5OUIwMjM2MkE3RUMwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVz
aW9uUnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVs
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjU0OTlCMTIzNjJBN0VDMDBERjhC
QTUgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOUI1QkVDMjQyNDAwRjRBOTAwNzBDNkVGIC8qIFdlYk1lZGlhU3Ry
YXRlZ3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTWVkaWFTdHJhdGVneS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5QjVCRUMyNTI0MDBGNEE5MDA3MEM2RUYgLyogV2ViTWVkaWFTdHJh
dGVneS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJNZWRpYVN0cmF0ZWd5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUI1QkVDMjgyNDAxMDE1ODAwNzBDNkVGIC8qIFJlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUI1QkVDMjkyNDAx
MDE1ODAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5QjVCRUMyRTI0MDEwMThDMDA3MEM2RUYgLyogUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Q
cm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUI1QkVDMzAy
NDAxMDIyMjAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvQnVzRGF0YS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW1vdGVBdWRpb0J1c0RhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUJDNTlE
NkMxRUZDQ0NCNjAwMUU4RDA5IC8qIENhbGxiYWNrSUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ2FsbGJhY2tJRC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
QkM1OUQ2RDFFRkNEQzZEMDAxRThEMDkgLyogT3B0aW9uYWxDYWxsYmFja0lELmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9wdGlvbmFsQ2FsbGJhY2tJRC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5RjU0Rjg4RTE2NDg4RTg3MDA3REY4MUEgLyogQXV4aWxpYXJ5
UHJvY2Vzc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEF1
eGlsaWFyeVByb2Nlc3NNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01Mjg4
LDYgKzUzMDUsMTAgQEAKIAkJCQkwNzkyMzEzMjIzOUIzQjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmggKi8sCiAJCQkJMDdCMUQwNEIyM0QzOEZDRTAwMzk5QTZFIC8qIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbiAqLywKIAkJCQkwNzkyMzE0RTIzOUQ1
RjUzMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oICovLAor
CQkJCTlCNUJFQzMwMjQwMTAyMjIwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0J1c0RhdGEuaCAqLywK
KwkJCQk5QjVCRUMyOTI0MDEwMTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5LmNwcCAqLywKKwkJCQk5QjVCRUMyODI0MDEwMTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5LmggKi8sCisJCQkJOUI1QkVDMkUyNDAxMDE4QzAwNzBDNkVGIC8qIFJl
bW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQkwN0I5M0ZGNTIz
QUYwQ0I4MDAzNkY4RUEgLyogUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmggKi8sCiAJ
CQkJMDc5MjMxMzAyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5j
cHAgKi8sCiAJCQkJMDc5MjMxMzQyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlci5oICovLApAQCAtNTMwMyw2ICs1MzI0LDggQEAKIAkJCQkxREZERDBFMjIzRjYxMEYw
MDBFOUI0OTAgLyogVmlkZW9MYXllclJlbW90ZS5oICovLAogCQkJCTA3MUJDNTgzMjNDQzJCRDUw
MDY4MEQ3QyAvKiBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCiAJCQkJMDcxQkM1ODIy
M0NDMkJEMzAwNjgwRDdDIC8qIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmggKi8sCisJCQkJOUI1
QkVDMjUyNDAwRjRBOTAwNzBDNkVGIC8qIFdlYk1lZGlhU3RyYXRlZ3kuY3BwICovLAorCQkJCTlC
NUJFQzI0MjQwMEY0QTkwMDcwQzZFRiAvKiBXZWJNZWRpYVN0cmF0ZWd5LmggKi8sCiAJCQkpOwog
CQkJcGF0aCA9IG1lZGlhOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTUzMTEsNiAr
NTMzNCw5IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTFEMEVD
RUE5MjNGQzg0QkIwMEQxNzJGNiAvKiBjb2NvYSAqLywKKwkJCQk5QjEyMjlDQzIzRkYyNUYyMDA4
Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwICovLAorCQkJCTlCMTIy
OUNCMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oICov
LAorCQkJCTlCMTIyOUNGMjNGRjI4MTQwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
TWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCQkwNzFCQzU3RTIzQ0E1REIxMDA2ODBEN0MgLyog
UmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcCAqLywKIAkJCQkwNzFCQzU3RjIzQ0E1REIxMDA2ODBE
N0MgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5LmggKi8sCiAJCQkJMDcyNUVGQUQyMzlCMDI0NTAw
QTUzOEE5IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcCAqLywKQEAgLTU3NzEs
NiArNTc5Nyw3IEBACiAJCQkJRTE4QzkyRjMxMkRCOUU3MTAwQ0YyQUVCIC8qIFByaW50SW5mby5j
cHAgKi8sCiAJCQkJRTFDQzFCOEUxMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5mby5oICovLAog
CQkJCTQ2M0ZENDgxMUVCOTRFQUQwMEEyOTgyQyAvKiBQcm9jZXNzVGVybWluYXRpb25SZWFzb24u
aCAqLywKKwkJCQk5QjEyMjlEMDIzRkYyQTVFMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbklkZW50aWZpZXIuaCAqLywKIAkJCQlGNkEwQzEzRjEzMjgxRTZFMDA3MDQzMEYgLyogUmVz
b3VyY2VDYWNoZXNUb0NsZWFyLmggKi8sCiAJCQkJNUNCN0FGRTYyM0M2ODFCMDAwRTQ5Q0YzIC8q
IFJlc291cmNlTG9hZEluZm8uaCAqLywKIAkJCQk0MTA0ODJDQjFEREQyRkI1MDBGMDA2RDAgLyog
UlRDTmV0d29yay5jcHAgKi8sCkBAIC0xMDU5MSw2ICsxMDYxOCw5IEBACiAJCQkJODMwNDhBRTYx
QUNBNDVEQzAwODJDODMyIC8qIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUExRTY4ODcwMUY2RTJCQUIwMDcwMDZBNiAvKiBRdWFyYW50aW5lU1BJLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1N0ZEMzE4MjIyQjM1MTVFMDA4RDBFOEIgLyogUmVkaXJlY3RTT0F1dGhv
cml6YXRpb25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5QjEyMjlEMjIzRkYyQkNDMDA4
Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaCBpbiBIZWFkZXJzICov
LAorCQkJCTlCMTIyOUNEMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
TWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUI1QkVDMkEyNDAxMDE1ODAwNzBDNkVGIC8q
IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ0N0I1
NkQxODEwNzE0RTAwM0EzQUVFIC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkyRERGNzMxNTE4RTk1MDYwMDA0RjVBNjYgLyogUmVtb3RlTGF5ZXJCYWNraW5n
U3RvcmVDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUIxNkFFQTE2NEIzQTg4MDAy
OTBENjIgLyogUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDg0
Myw2ICsxMDg3Myw3IEBACiAJCQkJQzk4QzQ4QTYxQjZGRDRDMzAwMTQ1MTAzIC8qIFdlYk1lZGlh
U2Vzc2lvbkZvY3VzTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzlDMTgzM0MxQjc0MDI2
RDAwNzAzNkE3IC8qIFdlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlckNsaWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQzlDRDQzOTgxQjRCMDAxRDAwMjM5RTMzIC8qIFdlYk1lZGlhU2Vzc2lvbk1l
dGFkYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQk5QjVCRUMyNjI0MDBGNEE5MDA3MEM2RUYgLyog
V2ViTWVkaWFTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQzRUY0NDMxOTE3NjQ2MzAw
MDM0MTg0IC8qIFdlYk1lbW9yeVByZXNzdXJlSGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTA5ODU0RUQxMkJDNEUxODAwMEFEMDgwIC8qIFdlYk1lbW9yeVNhbXBsZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUxM0ZGQjkxMjAxNDU5QzYwMDI1OTZFQSAvKiBXZWJNZXNzYWdlUG9ydENoYW5u
ZWxQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjI4OCw2ICsxMjMxOSw3IEBACiAJCQkJ
QzE1Q0JCMzcyM0YzN0VDQjAwMzAwQ0M3IC8qIFByZWZlcmVuY2VPYnNlcnZlci5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTJENTRDMzFCMjEyRjREQTYwMDQ5QzE3NCAvKiBQcm9jZXNzTGF1bmNoZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QyODY1RUYyMjU1NTYyMDAwNjA2QUM3IC8qIFByb2Nl
c3NUYXNrU3RhdGVPYnNlcnZlci5tbSBpbiBTb3VyY2VzICovLAorCQkJCTlCMTIyOUNFMjNGRjI1
RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyRDcyQTFGQTIxMkJGNDZFMDA1MTdBMjAgLyogUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWEubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRkYyNEEyRDE4NzlFNEJDMDAzQUJGMEMg
LyogUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkyREMxOEZCNDIxOEE2RTlFMDAyNUE4OEQgLyogUmVtb3RlTGF5ZXJU
cmVlVmlld3MubW0gaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9CdXNEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0J1c0RhdGEuaAkobm9uZXhpc3Rl
bnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvQnVz
RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIkRhdGFSZWZl
cmVuY2UuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVk
ZSAiU2hhcmVkTWVtb3J5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBSZW1vdGVBdWRpb0J1c0RhdGEgeworICAgIHVp
bnQ2NF90IGZyYW1lc1RvUHJvY2VzcyB7IDAgfTsKKyAgICBWZWN0b3I8UmVmPFNoYXJlZE1lbW9y
eT4+IGNoYW5uZWxCdWZmZXJzOworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KKyAg
ICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5j
b2RlciA8PCBmcmFtZXNUb1Byb2Nlc3M7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8
dWludDY0X3Q+KGNoYW5uZWxCdWZmZXJzLnNpemUoKSk7CisgICAgICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgY2hhbm5lbEJ1ZmZlcnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIFNoYXJl
ZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgICAgIGNoYW5uZWxCdWZmZXJzW2ldLT5j
cmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRXcml0ZSk7
CisgICAgICAgICAgICBlbmNvZGVyIDw8IGhhbmRsZTsKKyAgICAgICAgfQorICAgIH0KKworICAg
IHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29k
ZXImIGRlY29kZXIsIFJlbW90ZUF1ZGlvQnVzRGF0YSYgcmVzdWx0KQorICAgIHsKKyAgICAgICAg
dWludDY0X3QgZnJhbWVzVG9Qcm9jZXNzOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGZy
YW1lc1RvUHJvY2VzcykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJlc3Vs
dC5mcmFtZXNUb1Byb2Nlc3MgPSBmcmFtZXNUb1Byb2Nlc3M7CisKKyAgICAgICAgdWludDY0X3Qg
c2l6ZSA9IDA7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZSkpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyAr
K2kpIHsKKyAgICAgICAgICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAg
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFuZGxlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgICAgICBhdXRvIG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRs
ZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkV3JpdGUpOworICAgICAgICAgICAgaWYg
KG1lbW9yeSkKKyAgICAgICAgICAgICAgICByZXN1bHQuY2hhbm5lbEJ1ZmZlcnMuYXBwZW5kKCpt
ZW1vcnkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5LmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxMDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmgiCisKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCisKKyNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5j
bHVkZSAiUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9CdXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlv
RGVzdGluYXRpb24uaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIEF1ZGlvQnVzID0g
V2ViQ29yZTo6QXVkaW9CdXM7Cit1c2luZyBBdWRpb0Rlc3RpbmF0aW9uID0gV2ViQ29yZTo6QXVk
aW9EZXN0aW5hdGlvbjsKK3VzaW5nIEF1ZGlvSU9DYWxsYmFjayA9IFdlYkNvcmU6OkF1ZGlvSU9D
YWxsYmFjazsKKworc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eTo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssCisgICAg
Y29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5l
bHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCit7
CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5PihjYWxs
YmFjaywgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1
dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKK30KKworUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5
OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywg
Y29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5l
bHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCisg
ICAgOiBtX2NhbGxiYWNrKGNhbGxiYWNrKQorICAgICwgbV9zYW1wbGVSYXRlKHNhbXBsZVJhdGUp
Cit7CisgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgZGVzdGluYXRpb25JRDsK
KworICAgIGF1dG8mIGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVH
UFVQcm9jZXNzQ29ubmVjdGlvbigpOworICAgIGNvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmRT
eW5jKAorICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OkNy
ZWF0ZUF1ZGlvRGVzdGluYXRpb24oaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxz
LCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKSwKKyAgICAgICAgTWVzc2FnZXM6
OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpDcmVhdGVBdWRpb0Rlc3RpbmF0aW9uOjpS
ZXBseShkZXN0aW5hdGlvbklEKSwgMCk7CisgICAgY29ubmVjdGlvbi5tZXNzYWdlUmVjZWl2ZXJN
YXAoKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Q
cm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBkZXN0aW5hdGlvbklELnRvVUludDY0KCksICp0
aGlzKTsKKworICAgIG1fZGVzdGluYXRpb25JRCA9IGRlc3RpbmF0aW9uSUQ7Cit9CisKK1JlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6flJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSgpCit7
CisgICAgYXV0byYgY29ubmVjdGlvbiA9ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVH
UFVQcm9jZXNzQ29ubmVjdGlvbigpOworICAgIGNvbm5lY3Rpb24ubWVzc2FnZVJlY2VpdmVyTWFw
KCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9kZXN0aW5hdGlvbklELnRvVUludDY0KCkp
OworCisgICAgY29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KAorICAg
ICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OkRlbGV0ZUF1ZGlv
RGVzdGluYXRpb24obV9kZXN0aW5hdGlvbklEKSwgW10geworICAgICAgICAvLyBDYW4ndCByZW1v
dmUgdGhpcyBmcm9tIHByb3h5TWFwKCkgaGVyZSBiZWNhdXNlIHRoZSBvYmplY3Qgd291bGQgaGF2
ZSBiZWVuIGFscmVhZHkgZGVsZXRlZC4KKyAgICB9KTsKK30KKwordm9pZCBSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHk6OnN0YXJ0KCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5l
bnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYygKKyAgICAg
ICAgTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpTdGFydEF1ZGlvRGVz
dGluYXRpb24obV9kZXN0aW5hdGlvbklEKSwKKyAgICAgICAgTWVzc2FnZXM6OlJlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyOjpTdGFydEF1ZGlvRGVzdGluYXRpb246OlJlcGx5KG1faXNQbGF5
aW5nKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpzdG9wKCkK
K3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlv
bigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYygKKyAgICAgICAgTWVzc2FnZXM6OlJlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyOjpTdG9wQXVkaW9EZXN0aW5hdGlvbihtX2Rlc3RpbmF0aW9uSUQp
LAorICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OlN0b3BB
dWRpb0Rlc3RpbmF0aW9uOjpSZXBseShtX2lzUGxheWluZyksIDApOworfQorCit2b2lkIFJlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6cmVuZGVyQnVmZmVyKGNvbnN0IFdlYktpdDo6UmVtb3Rl
QXVkaW9CdXNEYXRhJiBhdWRpb0J1c0RhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoYXVkaW9CdXNEYXRhLmZyYW1lc1RvUHJv
Y2Vzcyk7CisgICAgQVNTRVJUKGF1ZGlvQnVzRGF0YS5jaGFubmVsQnVmZmVycy5zaXplKCkpOwor
ICAgIGF1dG8gYXVkaW9CdXMgPSBBdWRpb0J1czo6Y3JlYXRlKGF1ZGlvQnVzRGF0YS5jaGFubmVs
QnVmZmVycy5zaXplKCksIGF1ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3MsIGZhbHNlKTsKKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYXVkaW9CdXNEYXRhLmNoYW5uZWxCdWZmZXJzLnNp
emUoKTsgKytpKQorICAgICAgICBhdWRpb0J1cy0+c2V0Q2hhbm5lbE1lbW9yeShpLCAoZmxvYXQq
KWF1ZGlvQnVzRGF0YS5jaGFubmVsQnVmZmVyc1tpXS0+ZGF0YSgpLCBhdWRpb0J1c0RhdGEuZnJh
bWVzVG9Qcm9jZXNzKTsKKworICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIGF1ZGlvQnVzLmdldCgp
LCBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzKTsKKworICAgIGNvbXBsZXRpb25IYW5kbGVy
KCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpkaWRDaGFuZ2VJc1Bs
YXlpbmcoYm9vbCBpc1BsYXlpbmcpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVk
aW9EZXN0aW5hdGlvblByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaAkobm9uZXhpc3RlbnQp
CisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIkNv
bm5lY3Rpb24uaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0J1c0RhdGEuaCIKKyNpbmNsdWRlICJS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NT
dXBwbGVtZW50LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb0Rlc3RpbmF0aW9uLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9BdWRpb0lPQ2FsbGJhY2suaD4KKworI2lmIFBMQVRGT1JNKENPQ09BKQor
I2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSA6IHB1YmxpYyBXZWJD
b3JlOjpBdWRpb0Rlc3RpbmF0aW9uLCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkpOworcHVibGljOgorICAgIHVzaW5nIEF1ZGlvQnVzID0g
V2ViQ29yZTo6QXVkaW9CdXM7CisgICAgdXNpbmcgQXVkaW9JT0NhbGxiYWNrID0gV2ViQ29yZTo6
QXVkaW9JT0NhbGxiYWNrOworCisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3Rp
bmF0aW9uPiBjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmlj
ZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0
cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpOworCisgICAgUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5KEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwg
dW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENo
YW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsKKyAgICB+UmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5KCk7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUdQVVByb2Nlc3MoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpIHsgZGlkUmVjZWl2
ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7IH0KKworICAgIHZvaWQgcmVuZGVyQnVmZmVy
KGNvbnN0IFdlYktpdDo6UmVtb3RlQXVkaW9CdXNEYXRhJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKKyAgICB2b2lkIGRpZENoYW5nZUlzUGxheWluZyhib29sIGlzUGxheWluZyk7CisK
K3ByaXZhdGU6CisgICAgLy8gV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbgorICAgIHZvaWQgc3Rh
cnQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICBib29sIGlzUGxh
eWluZygpIG92ZXJyaWRlIHsgcmV0dXJuIG1faXNQbGF5aW5nOyB9CisgICAgZmxvYXQgc2FtcGxl
UmF0ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2FtcGxlUmF0ZTsgfQorCisgICAgLy8g
SVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgQXVkaW9JT0NhbGxiYWNrJiBt
X2NhbGxiYWNrOworICAgIGZsb2F0IG1fc2FtcGxlUmF0ZTsKKyAgICBSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uSWRlbnRpZmllciBtX2Rlc3RpbmF0aW9uSUQ7CisgICAgYm9vbCBtX2lzUGxheWluZyB7
IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Q
cm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbgkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMz
IEBACisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorCittZXNzYWdlcyAtPiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgTm90
UmVmQ291bnRlZCB7CisKKyAgICBSZW5kZXJCdWZmZXIoc3RydWN0IFdlYktpdDo6UmVtb3RlQXVk
aW9CdXNEYXRhIGRhdGEpIC0+ICgpIEFzeW5jCisgICAgRGlkQ2hhbmdlSXNQbGF5aW5nKGJvb2wg
aXNQbGF5aW5nKQorCit9CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuY3Bw
CShyZXZpc2lvbiAyNTc1NDcpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1RleHRUcmFja1ByaXZhdGVSZW1vdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzksMjEgKzEz
OSwyMSBAQCB2b2lkIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OmFkZERhdGFDdWVXCiB7CiAgICAg
QVNTRVJUKGNsaWVudCgpKTsKICAgICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkp
Ci0gICAgICAgIGNsaWVudC0+YWRkRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQp
LCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShkYXRhVmFsdWUpKSwg
dHlwZSk7CisgICAgICAgIGNsaWVudC0+YWRkRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92
ZShlbmQpLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92
ZShkYXRhVmFsdWUpKSwgdHlwZSk7CiB9CiAKIHZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6
dXBkYXRlRGF0YUN1ZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiBkYXRhVmFsdWUpCiB7CiAgICAgQVNTRVJUKGNsaWVu
dCgpKTsKICAgICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCi0gICAgICAgIGNs
aWVudC0+dXBkYXRlRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBTZXJpYWxp
emVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShkYXRhVmFsdWUpKSk7CisgICAgICAg
IGNsaWVudC0+dXBkYXRlRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBXZWJD
b3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShkYXRhVmFsdWUp
KSk7CiB9CiAKIHZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlRGF0YUN1ZShNZWRp
YVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3Vl
VmFsdWUmJiBkYXRhVmFsdWUpCiB7CiAgICAgQVNTRVJUKGNsaWVudCgpKTsKICAgICBpZiAoYXV0
byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCi0gICAgICAgIGNsaWVudC0+cmVtb3ZlRGF0YUN1
ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3Vl
OjpjcmVhdGUoV1RGTW92ZShkYXRhVmFsdWUpKSk7CisgICAgICAgIGNsaWVudC0+cmVtb3ZlRGF0
YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShkYXRhVmFsdWUpKSk7CiB9CiAjZW5kaWYKIApJ
bmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRl
UmVtb3RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmgJKHJldmlzaW9uIDI1NzU0NykKKysrIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAK
KyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlm
aWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JbmJhbmRUZXh0VHJhY2tQcml2YXRlLmg+CkBAIC00
OCw2ICs0OSwxMCBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU7CiBjbGFzcyBUZXh0
VHJhY2tQcml2YXRlUmVtb3RlIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkluYmFuZFRleHRUcmFj
a1ByaXZhdGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRleHRUcmFja1ByaXZhdGVSZW1v
dGUpCiBwdWJsaWM6CisgICAgdXNpbmcgR2VuZXJpY0N1ZURhdGEgPSBXZWJDb3JlOjpHZW5lcmlj
Q3VlRGF0YTsKKyAgICB1c2luZyBJU09XZWJWVFRDdWUgPSBXZWJDb3JlOjpJU09XZWJWVFRDdWU7
CisgICAgdXNpbmcgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlID0gV2ViQ29yZTo6U2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOworCiAgICAgc3RhdGljIFJlZjxUZXh0VHJhY2tQ
cml2YXRlUmVtb3RlPiBjcmVhdGUoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlJiBwbGF5ZXIsIFRy
YWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVGV4dFRyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogICAgIHsKICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZShwbGF5ZXIsIGlkZW5kaWZpZXIs
IFdURk1vdmUoY29uZmlndXJhdGlvbikpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcAkobm9uZXhpc3Rl
bnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRl
Z3kuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViTWVkaWFTdHJhdGVneS5oIgorCisjaW5jbHVk
ZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24uaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL0F1ZGlvSU9DYWxsYmFjay5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
V2ViTWVkaWFTdHJhdGVneTo6fldlYk1lZGlhU3RyYXRlZ3koKSA9IGRlZmF1bHQ7CisKKyNpZiBF
TkFCTEUoV0VCX0FVRElPKQorc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRp
b24+IFdlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oV2ViQ29yZTo6QXVk
aW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAorICAg
IHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRD
aGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKK3sKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisg
ICAgaWYgKG1fdXNlR1BVUHJvY2VzcykKKyAgICAgICAgcmV0dXJuIFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eTo6Y3JlYXRlKGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0
Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOworI2VuZGlmCisg
ICAgcmV0dXJuIFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShjYWxsYmFjaywgaW5w
dXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxz
LCBzYW1wbGVSYXRlKTsKK30KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFT
dHJhdGVneS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvV2ViTWVkaWFTdHJhdGVneS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTdHJh
dGVneS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViTWVkaWFTdHJhdGVneSA6
IHB1YmxpYyBXZWJDb3JlOjpNZWRpYVN0cmF0ZWd5IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5X
ZWJNZWRpYVN0cmF0ZWd5KCk7CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgdm9pZCBz
ZXRVc2VHUFVQcm9jZXNzKGJvb2wgdXNlR1BVUHJvY2VzcykgeyBtX3VzZUdQVVByb2Nlc3MgPSB1
c2VHUFVQcm9jZXNzOyB9CisjZW5kaWYKKworcHJpdmF0ZToKKyNpZiBFTkFCTEUoV0VCX0FVRElP
KQorICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVB
dWRpb0Rlc3RpbmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjayYsCisgICAgICAgIGNvbnN0
IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1
bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKSBvdmVycmlk
ZTsKKyNlbmRpZgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIGJvb2wgbV91c2VHUFVQ
cm9jZXNzIHsgZmFsc2UgfTsKKyNlbmRpZgorCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAko
cmV2aXNpb24gMjU3NTQ3KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2
LDYgKzI2LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyLmgiCiAKKyNpbmNsdWRlICJEZWNvZGVyLmgiCisjaW5jbHVkZSA8
V2ViQ29yZS9JbnRTaXplLmg+CisKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAK
IG5hbWVzcGFjZSBXZWJLaXQgewpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5j
cHAJKHJldmlzaW9uIDI1NzU0NykKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSwx
NiArMzksMTkgQEAKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lTG9h
ZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViTG9hZGVyU3RyYXRlZ3kuaCIKKyNpbmNsdWRlICJX
ZWJNZWRpYVN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlBh
c3RlYm9hcmRPdmVycmlkZXMuaCIKICNpbmNsdWRlICJXZWJQYXN0ZWJvYXJkUHJveHlNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlN
ZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9EZXN0aW5hdGlvbi5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvQ29sb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0xvYWRlclN0cmF0ZWd5Lmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9NZWRpYVN0cmF0ZWd5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Np
b24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VH
cm91cC5oPgpAQCAtNzMsNiArNzYsOCBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAorY2xhc3MgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbjsKKwogdm9pZCBX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxpemUoKQogewogICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM+IHBsYXRmb3JtU3RyYXRlZ2llczsKQEAgLTkz
LDYgKzk4LDExIEBAIFBhc3RlYm9hcmRTdHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVnaWUKICAg
ICByZXR1cm4gdGhpczsKIH0KIAorTWVkaWFTdHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVnaWVz
OjpjcmVhdGVNZWRpYVN0cmF0ZWd5KCkKK3sKKyAgICByZXR1cm4gbmV3IFdlYk1lZGlhU3RyYXRl
Z3k7Cit9CisKIEJsb2JSZWdpc3RyeSogV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVCbG9i
UmVnaXN0cnkoKQogewogICAgIHJldHVybiBuZXcgQmxvYlJlZ2lzdHJ5UHJveHk7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVn
aWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCShyZXZpc2lvbiAyNTc1NDcpCisrKyBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcgQEAgcHJpdmF0ZToKICAgICAvLyBXZWJDb3Jl
OjpQbGF0Zm9ybVN0cmF0ZWdpZXMKICAgICBXZWJDb3JlOjpMb2FkZXJTdHJhdGVneSogY3JlYXRl
TG9hZGVyU3RyYXRlZ3koKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpQYXN0ZWJvYXJkU3RyYXRl
Z3kqIGNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVneSgpIG92ZXJyaWRlOworICAgIFdlYkNvcmU6Ok1l
ZGlhU3RyYXRlZ3kqIGNyZWF0ZU1lZGlhU3RyYXRlZ3koKSBvdmVycmlkZTsKICAgICBXZWJDb3Jl
OjpCbG9iUmVnaXN0cnkqIGNyZWF0ZUJsb2JSZWdpc3RyeSgpIG92ZXJyaWRlOwogCiAgICAgLy8g
V2ViQ29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gMjU3NTQ3KQorKysgU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEw
MSw2ICsxMDEsNyBAQAogI2luY2x1ZGUgIldlYkluc3BlY3RvclVJTWVzc2FnZXMuaCIKICNpbmNs
dWRlICJXZWJMb2FkZXJTdHJhdGVneS5oIgogI2luY2x1ZGUgIldlYk1lZGlhS2V5U3RvcmFnZU1h
bmFnZXIuaCIKKyNpbmNsdWRlICJXZWJNZWRpYVN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiV2ViTm90
aWZpY2F0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIu
aCIKICNpbmNsdWRlICJXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCkBAIC0xOTksNiArMjAw
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BpbmdMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVN0cmF0ZWdpZXMu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRvY3VtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9Qb2ludGVyQ2FwdHVyZUNvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ByaW50Q29u
dGV4dC5oPgpAQCAtMzY5Niw2ICszNjk4LDggQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJl
bmNlcyhjb25zdCBXZQogICAgICAgICBtX2RyYXdpbmdBcmVhLT51cGRhdGVQcmVmZXJlbmNlcyhz
dG9yZSk7CiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgLy8gRklYTUU6IHVzZUdQVVBy
b2Nlc3NGb3JNZWRpYSBzaG91bGQgYmUgYSBSdW50aW1lRW5hYmxlZEZlYXR1cmUgc2luY2UgaXQn
cyBnbG9iYWwuCisgICAgc3RhdGljX2Nhc3Q8V2ViTWVkaWFTdHJhdGVneSY+KHBsYXRmb3JtU3Ry
YXRlZ2llcygpLT5tZWRpYVN0cmF0ZWd5KCkpLnNldFVzZUdQVVByb2Nlc3Moc2V0dGluZ3MudXNl
R1BVUHJvY2Vzc0Zvck1lZGlhKCkpOwogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnN1cHBs
ZW1lbnQ8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyPigpLT51cGRhdGVQcmVmZXJlbmNlcyhzZXR0
aW5ncyk7CiAjZW5kaWYKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDI1NzU0NykKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAyLTI2ICBSeW9zdWtlIE5pd2EgIDxybml3
YUB3ZWJraXQub3JnPgorCisgICAgICAgIENyZWF0ZSBBdWRpb0Rlc3RpbmF0aW9uIGluIHRoZSBH
UFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA4MTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmVyIE5vYmxlLgorCisgICAgICAgIEFk
ZGVkIFdlYk1lZGlhU3RyYXRlZ3kgd2hpY2ggaXMgYSB3cmFwcGVyIGFyb3VuZCBBdWRpb0Rlc3Rp
bmF0aW9uOjpjcmVhdGUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMubW06CisgICAgICAgIChXZWJNZWRpYVN0cmF0ZWd5KTogQWRkZWQuCisgICAgICAgIChXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3kpOgorCiAyMDIwLTAyLTI1ICBN
ZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQg
Rml4CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkocmV2aXNpb24gMjU3NTQ3KQor
KysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDcgQEAgcHJpdmF0ZToKICAgICAv
LyBXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXMKICAgICBXZWJDb3JlOjpMb2FkZXJTdHJhdGVn
eSogY3JlYXRlTG9hZGVyU3RyYXRlZ3koKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpQYXN0ZWJv
YXJkU3RyYXRlZ3kqIGNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVneSgpIG92ZXJyaWRlOworICAgIFdl
YkNvcmU6Ok1lZGlhU3RyYXRlZ3kqIGNyZWF0ZU1lZGlhU3RyYXRlZ3koKSBvdmVycmlkZTsKICAg
ICBXZWJDb3JlOjpCbG9iUmVnaXN0cnkqIGNyZWF0ZUJsb2JSZWdpc3RyeSgpIG92ZXJyaWRlOwog
CiAgICAgLy8gV2ViQ29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5CkluZGV4OiBTb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLm1tCShyZXZpc2lvbiAyNTc1NDcpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTI4LDkgKzI4LDExIEBACiAjaW1wb3J0ICJXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmgiCiAjaW1wb3J0ICJXZWJQbHVnaW5QYWNrYWdlLmgiCiAjaW1wb3J0ICJXZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXIuaCIKKyNpbXBvcnQgPFdlYkNvcmUvQXVkaW9EZXN0aW5hdGlvbi5oPgogI2lt
cG9ydCA8V2ViQ29yZS9CbG9iUmVnaXN0cnlJbXBsLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9y
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CisjaW1wb3J0IDxXZWJDb3JlL01lZGlhU3Ry
YXRlZ3kuaD4KICNpbXBvcnQgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1Bhc3RlYm9hcmRJdGVtSW5mby5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0
Zm9ybVBhc3RlYm9hcmQuaD4KQEAgLTYyLDYgKzY0LDIyIEBAIFBhc3RlYm9hcmRTdHJhdGVneSog
V2ViUGxhdGZvcm1TdHJhdGVnaWUKICAgICByZXR1cm4gdGhpczsKIH0KIAorY2xhc3MgV2ViTWVk
aWFTdHJhdGVneSBmaW5hbCA6IHB1YmxpYyBNZWRpYVN0cmF0ZWd5IHsKK3ByaXZhdGU6CisjaWYg
RU5BQkxFKFdFQl9BVURJTykKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4g
Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBT
dHJpbmcmIGlucHV0RGV2aWNlSWQsCisgICAgICAgIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFu
bmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkg
b3ZlcnJpZGUKKyAgICB7CisgICAgICAgIHJldHVybiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUo
Y2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZP
dXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7CisgICAgfQorI2VuZGlmCit9OworCitNZWRpYVN0
cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3koKQorewor
ICAgIHJldHVybiBuZXcgV2ViTWVkaWFTdHJhdGVneTsKK30KKwogY2xhc3MgV2ViQmxvYlJlZ2lz
dHJ5IGZpbmFsIDogcHVibGljIEJsb2JSZWdpc3RyeSB7CiBwcml2YXRlOgogICAgIHZvaWQgcmVn
aXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmIHVybCwgUmVmPEJsb2JEYXRhRmlsZVJlZmVyZW5j
ZT4mJiByZWZlcmVuY2UsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFsIHsgbV9ibG9i
UmVnaXN0cnkucmVnaXN0ZXJGaWxlQmxvYlVSTCh1cmwsIFdURk1vdmUocmVmZXJlbmNlKSwgY29u
dGVudFR5cGUpOyB9CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiAy
NTc1NDcpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0wMi0yNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Vi
a2l0Lm9yZz4KKworICAgICAgICBDcmVhdGUgQXVkaW9EZXN0aW5hdGlvbiBpbiB0aGUgR1BVIHBy
b2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
ODE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IEplciBOb2JsZS4KKworICAgICAgICBBZGRlZCBX
ZWJNZWRpYVN0cmF0ZWd5IHdoaWNoIGlzIGEgd3JhcHBlciBhcm91bmQgQXVkaW9EZXN0aW5hdGlv
bjo6Y3JlYXRlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVn
aWVzLmNwcDoKKyAgICAgICAgKFdlYk1lZGlhU3RyYXRlZ3kpOiBBZGRlZC4KKyAgICAgICAgKFdl
YlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFTdHJhdGVneSk6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmg6CisKIDIwMjAtMDItMjYgIEFudHRp
IEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB0aHJvdHRsaW5n
IGNvZGUgZnJvbSBSZW5kZXJMYXllckNvbXBvc2l0b3IKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcAkocmV2aXNpb24gMjU3NTQ3KQorKysgU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjcsOSArMjcsMTEgQEAKIAogI2luY2x1ZGUgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Jsb2JSZWdpc3Ry
eS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQmxvYlJlZ2lzdHJ5SW1wbC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvRnJhbWVMb2FkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU3RyYXRlZ3kuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUdyb3VwLmg+CkBAIC02MCw2ICs2
MiwyMiBAQCBQYXN0ZWJvYXJkU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2llCiAgICAgcmV0
dXJuIG51bGxwdHI7CiB9CiAKK2NsYXNzIFdlYk1lZGlhU3RyYXRlZ3kgZmluYWwgOiBwdWJsaWMg
TWVkaWFTdHJhdGVneSB7Citwcml2YXRlOgorI2lmIEVOQUJMRShXRUJfQVVESU8pCisgICAgc3Rk
Ojp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oQXVk
aW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAorICAg
ICAgICB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0
cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpIG92ZXJyaWRlCisgICAgeworICAgICAgICBy
ZXR1cm4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBu
dW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUp
OworICAgIH0KKyNlbmRpZgorfTsKKworTWVkaWFTdHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVn
aWVzOjpjcmVhdGVNZWRpYVN0cmF0ZWd5KCkKK3sKKyAgICByZXR1cm4gbmV3IFdlYk1lZGlhU3Ry
YXRlZ3k7Cit9CisKIGNsYXNzIFdlYkJsb2JSZWdpc3RyeSBmaW5hbCA6IHB1YmxpYyBCbG9iUmVn
aXN0cnkgewogcHJpdmF0ZToKICAgICB2b2lkIHJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJM
JiB1cmwsIFJlZjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYgcmVmZXJlbmNlLCBjb25zdCBTdHJp
bmcmIGNvbnRlbnRUeXBlKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnJlZ2lzdGVyRmlsZUJsb2JV
UkwodXJsLCBXVEZNb3ZlKHJlZmVyZW5jZSksIGNvbnRlbnRUeXBlKTsgfQpJbmRleDogU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmgJKHJldmlzaW9uIDI1NzU0NykKKysrIFNvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zOCw3ICszOCw4IEBAIHByaXZhdGU6CiAgICAgV2ViUGxhdGZvcm1TdHJhdGVn
aWVzKCk7CiAKICAgICAvLyBXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXMKLSAgICB2aXJ0dWFs
IFdlYkNvcmU6OkxvYWRlclN0cmF0ZWd5KiBjcmVhdGVMb2FkZXJTdHJhdGVneSgpOwotICAgIHZp
cnR1YWwgV2ViQ29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRl
Z3koKTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkJsb2JSZWdpc3RyeSogY3JlYXRlQmxvYlJlZ2lz
dHJ5KCk7CisgICAgV2ViQ29yZTo6TG9hZGVyU3RyYXRlZ3kqIGNyZWF0ZUxvYWRlclN0cmF0ZWd5
KCkgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0
ZWJvYXJkU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpNZWRpYVN0cmF0ZWd5KiBj
cmVhdGVNZWRpYVN0cmF0ZWd5KCkgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5
KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSBvdmVycmlkZTsKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391832</attachid>
            <date>2020-02-26 19:05:24 -0800</date>
            <delta_ts>2020-02-26 19:05:24 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-208179-20200226190523.patch</filename>
            <type>text/plain</type>
            <size>99618</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODYwMTc0ZGE0YWI3ODJk
YTk5NDE0ODQzOGFkNGU3MjdmMzExODVlYS4uYzc4YWFhMjY4Y2YzOThiMDZiZDY1YjgzYjE1Yzdm
MjI1YWY4NzhkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTAyLTI2ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIENyZWF0ZSBBdWRpb0Rlc3Rp
bmF0aW9uIGluIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA4MTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmVyIE5vYmxl
LgorCisgICAgICAgIEFkZCBhbiBhYnN0cmFjdGlvbiBhcm91bmQgdGhlIGNyZWF0aW9uIG9mIEF1
ZGlvRGVzdGluYXRpb24gdXNpbmcgbmV3bHkgaW50cm9kdWNlZCBtZWRpYVN0cmF0ZWd5LgorCisg
ICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0RlZmF1
bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVk
aW9EZXN0aW5hdGlvbk5vZGU6OmNyZWF0ZURlc3RpbmF0aW9uKTogVXNlIE1lZGlhU3RyYXRlZ3k6
OmNyZWF0ZUF1ZGlvRGVzdGluYXRpb24KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyYXRlZ3kpOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3Ry
YXRlZ2llczo6bWVkaWFTdHJhdGVneSk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlv
L0F1ZGlvQnVzLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5o
OgorCiAyMDIwLTAyLTI2ICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4K
IAogICAgICAgICBBWElzb2xhdGVkT2JqZWN0IHN1cHBvcnQgZm9yIHRhYmxlIGNlbGxzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCAxYTliODcwYmQwMjY1NDQ3ZTc5NTczZjZjZjE3NDFjZjQ4OTcxMTQ0Li4yYTU4ZTk4
YTk2NGVlYjY2MTgxMDc3ZmZiZjY0ZDJiY2U3NzU4MGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEx
NCBAQAorMjAyMC0wMi0yNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAg
ICAgICBDcmVhdGUgQXVkaW9EZXN0aW5hdGlvbiBpbiB0aGUgR1BVIHByb2Nlc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODE3OQorCisgICAgICAg
IFJldmlld2VkIGJ5IEplciBOb2JsZS4KKworICAgICAgICBDcmVhdGUgQXVkaW9EZXN0aW5hdGlv
biBpbiB0aGUgR1BVIHByb2Nlc3MgaW5zdGVhZCBvZiB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGZv
ciBXZWJBdWRpbyBBUEkgd2hlbgorICAgICAgICB0aGUgTWVkaWEtaW4tR1BVLXByb2Nlc3MgZmVh
dHVyZSBpcyBlbmFibGVkLgorCisgICAgICAgIFRvIGRvIHRoaXMsIFdlYk1lZGlhU3RyYXRlZ3ks
IGEgY29uY3JldGUgaW1wbGVtZW50YXRpb24gb2YgTWVkaWFTdHJhdGVneSwgaW4gdGhlIFdlYkNv
bnRlbnQgcHJvY2VzcyBnZXRzCisgICAgICAgIGEgYm9vbGVhbiBmbGFnIGluZGljYXRpbmcgd2hl
dGhlciB0aGUgR1BVIHByb2Nlc3Mgc2hvdWxkIGJlIHVzZWQgZm9yIEF1ZGlvRGVzdGluYXRpb24g
b3Igbm90LiBXaGVuIHRoZSBmbGFnCisgICAgICAgIGlzIHNldCwgd2UgY3JlYXRlIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eSBpbnN0ZWFkIG9mIEF1ZGlvRGVzdGluYXRpb24gaW4gV2ViQ29u
dGVudCBwcm9jZXNzLgorCisgICAgICAgIEVhY2ggUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5
IHRhbGtzIHRvIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyIGluIHRoZSBHUFUgcHJvY2Vz
cyBhbmQgY3JlYXRlcworICAgICAgICBhIGNvcnJlc3BvbmRpbmcgUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbiB3aGljaCBpbiB0dXJuIGNyZWF0ZXMgV2ViQ29yZSdzIEF1ZGlvRGVzdGluYXRpb24gaW4g
dGhlIEdQVSBwcm9jZXNzLgorCisgICAgICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb24gaXMgaXRz
ZWxmIGFuIEF1ZGlvSU9DYWxsYmFjayBmb3IgQXVkaW9EZXN0aW5hdGlvbiBpdCBjcmVhdGVzLCBh
bmQgZGVsZWdhdGVzCisgICAgICAgIGl0cyBjYWxsYmFjayB0byBXZWJDb250ZW50IHByb2Nlc3Mn
IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSBhcyBuZWVkZWQuCisKKyAgICAgICAgSW4gdGhp
cyBpbml0aWFsIHBhdGNoLCB3ZSBzZW5kIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6UmVu
ZGVyQnVmZmVyIElQQyBjYWxsIHRvIHRoZSBXZWJDb250ZW50IHByb2Nlc3MKKyAgICAgICAgZm9y
IGVhY2ggcmVuZGVyIGNhbGwgd2UgZ2V0IGZyb20gQ29yZUF1ZGlvIGZvciBzaW1wbGljaXR5IHVz
aW5nIG5ld2x5IGludHJvZHVjZWQgUmVtb3RlQXVkaW9CdXNEYXRhLAorICAgICAgICB3aGljaCBo
b2xkcyBhIFNoYXJlZE1lbW9yeSBmb3IgZWFjaCBjaGFubmVsIGluIHRoZSBhdWRpbyBidXMuCisK
KyAgICAgICAgV2Ugd2lsbCBlbGltaW5hdGUgdGhpcyBJUEMgb3ZlcmhlYWQgaW4gYSBmb2xsb3cg
dXAgcGF0Y2ggdXNpbmcgQ0FSaW5nQnVmZmVyLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdQVVByb2Nl
c3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKTogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2Vp
dmVNZXNzYWdlKTogQWRkZWQgdGhlIGNvZGUgdG8gZGlzcGF0Y2ggbWVzc2FnZXMgdG8KKyAgICAg
ICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuCisgICAgICAgIChXZWJLaXQ6OkdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6IERpdHRvLgorICAg
ICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbik6IEFkZGVkLiBUaGlz
IGNsYXNzIGlzIHRoZSBiYWNraW5nIG9iamVjdCB3aGljaCBjcmVhdGVzIFdlYkNvcmUncworICAg
ICAgICBBdWRpb0Rlc3RpbmF0aW9uIGFuZCBhY3R1YWxseSB0YWxrcyB0byBDb3JlQXVkaW8gaW4g
R1BVIHByb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OmNy
ZWF0ZSk6IEFkZGVkLgorCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246
On5SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvRGVzdGluYXRpb246OnNjaGVkdWxlR3JhY2VmdWxTaHV0ZG93bklmTmVlZGVkKTogRGVs
YXlzIHRoZSBkZWxldGlvbiBvZiB0aGlzIG9iamVjdAorICAgICAgICB1bnRpbCB0aGUgYXVkaW8g
dGhyZWFkcyBzdG9wcyBydW5uaW5nLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uOjpzdGFydCk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uOjpzdG9wKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb246OmlzUGxheWluZyk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OnJlbmRlcik6IFNlbmRzIGEgc3luYyBJUEMgdG8g
dGhlIFdlYkNvbnRlbnQgcHJvY2VzcycKKyAgICAgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5IHRvIGZpbGwgdGhlIGF1ZGlvIGJ1ZmZlci4gTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gZ2V0
cyBjYWxsZWQgaW4gYXVkaW8gdGhyZWFkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uOjppc1BsYXlpbmdEaWRDaGFuZ2UpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIpOiBBZGRlZC4gVGhpcyBjbGFzcyBtYW5hZ2Vz
IGFsbCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uIG9iamVjdHMgb3duZWQKKyAgICAgICAgYnkgYSBz
aW5nbGUgV2ViQ29udGVudCBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlcjo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIpOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6On5SZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uTWFuYWdlcik6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbik6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6ZGVsZXRlQXVk
aW9EZXN0aW5hdGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uTWFuYWdlcjo6c3RhcnRBdWRpb0Rlc3RpbmF0aW9uKTogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpzdG9wQXVkaW9EZXN0aW5hdGlv
bik6IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25NYW5hZ2VyKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlU3luY01lc3NhZ2VGcm9tV2ViUHJvY2Vzcyk6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6ZGlkUmVj
ZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vzcyk6IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXM6
OmNyZWF0ZU1lZGlhU3RyYXRlZ3kpOiBBZGRlZC4gUmV0dXJucyBudWxscHRyIHNpbmNlIE5ldHdv
cmtpbmcKKyAgICAgICAgcHJvY2VzcyBoYXMgbm8gYnVzaW5lc3MgcnVubmluZyBBdWRpb0Rlc3Rp
bmF0aW9uLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1T
dHJhdGVnaWVzLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJh
dGVnaWVzKToKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTaGFyZWQvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbklkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVz
dGluYXRpb25JZGVudGlmaWVyVHlwZSk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllcik6IEFkZGVkLiBUaGUgaWRlbnRpZmllciBmb3IgZWFj
aCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uCisgICAgICAgIGFuZCBSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHkgKGNvcnJlc3BvbmRpbmcgb2JqZWN0cyBvZiBlYWNoIGNsYXNzIHVzZSB0aGUgc2Ft
ZSBJRCB0byBjb21tdW5pY2F0ZSkuCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICog
U291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0J1c0RhdGEu
aDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvQnVzRGF0YSk6IEFkZGVkLiBF
bmNvZGVzIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBlYWNoIHJlbmRlciBjYWxsLgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb0J1c0RhdGE6OmVuY29kZSBjb25zdCk6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVBdWRpb0J1c0RhdGE6OmRlY29kZSk6IEFkZGVkLgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpjcmVhdGUp
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Ojp+UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5KTog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3Rh
cnQpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5
OjpzdG9wKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Q
cm94eTo6cmVuZGVyQnVmZmVyKTogQWRkZWQuIENhbGxzIFdlYkNvcmUncyBBdWRpb0lPQ2FsbGJh
Y2sgdG8gZmlsbAorICAgICAgICB0aGUgYXVkaW8gYnVmZmVyIGdpdmVuIGJ5IHRoZSBHUFUgcHJv
Y2Vzcy4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpkaWRD
aGFuZ2VJc1BsYXlpbmcpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9EZXN0aW5hdGlvblByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZUZyb21HUFVQcm9jZXNzKTogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6aXNQbGF5
aW5nKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eTo6c2FtcGxlUmF0ZSk6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHA6IEZpeGVkIHRo
ZSB1bmlmaWVkIGJ1aWxkcy4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJh
Y2tQcml2YXRlUmVtb3RlLmg6IERpdHRvLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlh
L1dlYk1lZGlhU3RyYXRlZ3kuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFT
dHJhdGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbik6IEFkZGVkLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYk1lZGlhU3RyYXRlZ3kpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFT
dHJhdGVneTo6c2V0VXNlR1BVUHJvY2Vzcyk6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwOiBGaXhlZCB0aGUgdW5pZmll
ZCBidWlsZHMuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXIuY3BwOiBGaXhlZCB0aGUgdW5pZmllZCBidWlsZHMuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRl
Z3kpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOiBTZXRzIFdl
Yk1lZGlhU3RyYXRlZ3kncyBmbGFnIHRvIHVzZSBHUFUgcHJvY2Vzcy4KKwogMjAyMC0wMi0yNiAg
U2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIElt
cGxlbWVudCB0aGUgcmVtb3RlIFJlbmRlcmluZ0JhY2tlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZwppbmRleCAwN2M2NWFiZTEzZGJlZGUwZTQ4Yjk3NWQxMjdlY2Y1NWQ2N2M4Y2E2Li5iZDRk
MGZlM2I2YWQwY2IxNjYyN2I2ZmI0ZTVmYjllYjQ0MTY1Y2UzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMDItMjYgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ3JlYXRlIEF1ZGlvRGVzdGluYXRpb24gaW4gdGhl
IEdQVSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDgxNzkKKworICAgICAgICBSZXZpZXdlZCBieSBKZXIgTm9ibGUuCisKKyAgICAgICAg
QWRkZWQgV2ViTWVkaWFTdHJhdGVneSB3aGljaCBpcyBhIHdyYXBwZXIgYXJvdW5kIEF1ZGlvRGVz
dGluYXRpb246OmNyZWF0ZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5tbToKKyAgICAgICAgKFdlYk1lZGlhU3RyYXRlZ3kpOiBBZGRlZC4KKyAgICAgICAgKFdl
YlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFTdHJhdGVneSk6CisKIDIwMjAtMDItMjUg
IE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBCdWls
ZCBGaXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCA3ZGRhYjFjNjFmZjc3MjU1ZDAz
ZjNlMjIzNDQ4MjgwYTA0MzkzNmNiLi41YjQ2OGI2ODk0ZmUzZWJjODFjOWM4NThhZGQyMGQ5Zjc5
ZGY2YjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MjAtMDItMjYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ3Jl
YXRlIEF1ZGlvRGVzdGluYXRpb24gaW4gdGhlIEdQVSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDgxNzkKKworICAgICAgICBSZXZpZXdl
ZCBieSBKZXIgTm9ibGUuCisKKyAgICAgICAgQWRkZWQgV2ViTWVkaWFTdHJhdGVneSB3aGljaCBp
cyBhIHdyYXBwZXIgYXJvdW5kIEF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZS4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChXZWJN
ZWRpYVN0cmF0ZWd5KTogQWRkZWQuCisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNy
ZWF0ZU1lZGlhU3RyYXRlZ3kpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5oOgorCiAyMDIwLTAyLTI2ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZW1vdmUgdGhyb3R0bGluZyBjb2RlIGZyb20gUmVuZGVyTGF5ZXJD
b21wb3NpdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA2ZGI1Y2UwZjBkNjllYTY4NGEyYTA1NzE0
Nzk0NDAwYjIzOTY0MjI5Li5kYzEzYThjMDNkOGNmNDVmMjgyMWZjYzZhZTIyODdjYmUwYWZiMzU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTk1MCw2ICs5NTAsNyBAQCBzZXQoV2ViQ29yZV9QUklW
QVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5oCiAg
ICAgcGxhdGZvcm0vTWVkaWFTYW1wbGUuaAogICAgIHBsYXRmb3JtL01lZGlhU2VsZWN0aW9uT3B0
aW9uLmgKKyAgICBwbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmgKICAgICBwbGF0Zm9ybS9Ob3RJbXBs
ZW1lbnRlZC5oCiAgICAgcGxhdGZvcm0vT3JpZW50YXRpb25Ob3RpZmllci5oCiAgICAgcGxhdGZv
cm0vUE9ESW50ZXJ2YWwuaApAQCAtMTAyMSw3ICsxMDIyLDEyIEBAIHNldChXZWJDb3JlX1BSSVZB
VEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uVXRp
bGl0aWVzLmgKICAgICBwbGF0Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uaAogCisgICAg
cGxhdGZvcm0vYXVkaW8vQXVkaW9BcnJheS5oCisgICAgcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMu
aAorICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvQ2hhbm5lbC5oCisgICAgcGxhdGZvcm0vYXVkaW8v
QXVkaW9EZXN0aW5hdGlvbi5oCiAgICAgcGxhdGZvcm0vYXVkaW8vQXVkaW9IYXJkd2FyZUxpc3Rl
bmVyLmgKKyAgICBwbGF0Zm9ybS9hdWRpby9BdWRpb0lPQ2FsbGJhY2suaAogICAgIHBsYXRmb3Jt
L2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCiAgICAgcGxhdGZvcm0vYXVkaW8vQXVkaW9Tb3VyY2VQcm92
aWRlci5oCiAgICAgcGxhdGZvcm0vYXVkaW8vQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3Rp
bmF0aW9uTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRB
dWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKaW5kZXggMjY3MmQ2NWU2OGZlYjAxNjI4YmVmMGYwZTBi
MGFkNGQzMWY0NWI3Yy4uMTc1OWFlNGE1YTYzNWJjMDU4ZTMwYzM2NWMxMzQ0ZmJiMzk3OWUxNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9E
ZXN0aW5hdGlvbk5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcApAQCAtMzEsNiArMzEsOCBAQAogI2luY2x1
ZGUgIkF1ZGlvQ29udGV4dC5oIgogI2luY2x1ZGUgIkF1ZGlvRGVzdGluYXRpb24uaCIKICNpbmNs
dWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJhdGVneS5oIgorI2luY2x1ZGUgIlBs
YXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIK
ICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhy
ZWFkLmg+CkBAIC04NCw4ICs4Niw4IEBAIHZvaWQgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2Rl
OjpjcmVhdGVEZXN0aW5hdGlvbigpCiB7CiAgICAgZmxvYXQgaGFyZHdhcmVTYW1wbGVSYXRlID0g
QXVkaW9EZXN0aW5hdGlvbjo6aGFyZHdhcmVTYW1wbGVSYXRlKCk7CiAgICAgTE9HKFdlYkF1ZGlv
LCAiPj4+PiBoYXJkd2FyZVNhbXBsZVJhdGUgPSAlZlxuIiwgaGFyZHdhcmVTYW1wbGVSYXRlKTsK
LSAgICAKLSAgICBtX2Rlc3RpbmF0aW9uID0gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKCp0aGlz
LCBtX2lucHV0RGV2aWNlSWQsIG1fbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBjaGFubmVsQ291bnQo
KSwgaGFyZHdhcmVTYW1wbGVSYXRlKTsKKworICAgIG1fZGVzdGluYXRpb24gPSBwbGF0Zm9ybVN0
cmF0ZWdpZXMoKS0+bWVkaWFTdHJhdGVneSgpLmNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oKnRoaXMs
IG1faW5wdXREZXZpY2VJZCwgbV9udW1iZXJPZklucHV0Q2hhbm5lbHMsIGNoYW5uZWxDb3VudCgp
LCBoYXJkd2FyZVNhbXBsZVJhdGUpOwogfQogCiB2b2lkIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9u
Tm9kZTo6ZW5hYmxlSW5wdXQoY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY1MWIz
M2RhNGM4MDU1NTZlMDI3YjI4ZjRkNTQ5ZmNlZTdkYmU3MmIuLjk3ZTAwZGIwM2FkMGQ1YjQ3Y2Yy
YjRhYTgxNDIyNjJhMjAyZGExYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4ODksNiArMjg4OSw4IEBACiAJCTlBQjFGMzgw
MThFMjQ4OUEwMDUzNDc0MyAvKiBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QUIxRjM3RTE4RTI0ODlBMDA1
MzQ3NDMgLyogQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMDJFMEM4MjM1RUFEMkEwMDQwNDRCMiAv
KiBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwMkUwQzMyMzVFNzZBQTAwNDA0NEIyIC8qIFRleHRNYW5p
cHVsYXRpb25Db250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJOUIwQUJDQUUyMzZCQjQzMTAwQjQ1MDg1IC8qIFRhc2tTb3VyY2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMEFCQ0FDMjM2
QkI0MEEwMEI0NTA4NSAvKiBUYXNrU291cmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOUIxMjI5QzQyM0ZFNEJEMjAwOENBNzUxIC8qIEF1ZGlv
RGVzdGluYXRpb25Db2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDEzMTUxODYyMzU3NzQ1RTAwMTE1RTZFIC8qIEF1ZGlvRGVzdGluYXRpb25Db2Nv
YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTlC
MTIyOUM3MjNGRTRENkEwMDhDQTc1MSAvKiBNZWRpYVN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjEyMjlDNjIzRkU0RDVGMDA4Q0E3NTEg
LyogTWVkaWFTdHJhdGVneS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTlCMjRERThFMTUxOTRCOTUwMEM1OUMyNyAvKiBIVE1MQkRJRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIyNERFOEMx
NTE5NEI5NTAwQzU5QzI3IC8qIEhUTUxCRElFbGVtZW50LmggKi87IH07CiAJCTlCMjdGQzYwMjM0
RDlBREIwMDM5NEE0NiAvKiBXaW5kb3dFdmVudExvb3AuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMjdGQzVFMjM0RDlBREEwMDM5NEE0NiAvKiBXaW5k
b3dFdmVudExvb3AuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5QjJEOEE3OTE0OTk3Q0NGMDBFQ0VGM0UgLyogVW5kb1N0ZXAuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMkQ4QTc4MTQ5OTdDQ0YwMEVD
RUYzRSAvKiBVbmRvU3RlcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC01MDY3LDEwICs1MDY5LDEwIEBACiAJCUZEMzE2MDM2MTJCMDI2NzYwMEMx
QTM1OSAvKiBTY3JpcHRQcm9jZXNzb3JOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNUZFQzEyQjAyNjc2MDBDMUEzNTkgLyogU2NyaXB0UHJv
Y2Vzc29yTm9kZS5oICovOyB9OwogCQlGRDMxNjAzQzEyQjAyNjc2MDBDMUEzNTkgLyogUmVhbHRp
bWVBbmFseXNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRkQzMTVGRjIxMkIwMjY3NjAwQzFBMzU5IC8qIFJlYWx0aW1lQW5hbHlzZXIuaCAqLzsgfTsK
IAkJRkQzMTYwM0UxMkIwMjY3NjAwQzFBMzU5IC8qIEFuYWx5c2VyTm9kZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTVGRjQxMkIwMjY3NjAwQzFB
MzU5IC8qIEFuYWx5c2VyTm9kZS5oICovOyB9OwotCQlGRDMxNjA3QTEyQjAyNkY3MDBDMUEzNTkg
LyogQXVkaW9BcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRkQzMTYwNDQxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvQXJyYXkuaCAqLzsgfTsKLQkJ
RkQzMTYwN0MxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvQnVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA0NjEyQjAyNkY3MDBDMUEzNTkgLyog
QXVkaW9CdXMuaCAqLzsgfTsKLQkJRkQzMTYwN0UxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvQ2hh
bm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQz
MTYwNDgxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvQ2hhbm5lbC5oICovOyB9OwotCQlGRDMxNjA3
RjEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9EZXN0aW5hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNDkxMkIwMjZGNzAwQzFBMzU5IC8q
IEF1ZGlvRGVzdGluYXRpb24uaCAqLzsgfTsKKwkJRkQzMTYwN0ExMkIwMjZGNzAwQzFBMzU5IC8q
IEF1ZGlvQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEZEMzE2MDQ0MTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0FycmF5LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRkQzMTYwN0MxMkIwMjZGNzAw
QzFBMzU5IC8qIEF1ZGlvQnVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGRDMxNjA0NjEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9CdXMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlGRDMxNjA3RTEyQjAy
NkY3MDBDMUEzNTkgLyogQXVkaW9DaGFubmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA0ODEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9DaGFu
bmVsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
RkQzMTYwN0YxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDQ5MTJCMDI2RjcwMEMx
QTM1OSAvKiBBdWRpb0Rlc3RpbmF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkQzMTYwODAxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRFNQ
S2VybmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
RDMxNjA0QTEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9EU1BLZXJuZWwuaCAqLzsgfTsKIAkJRkQz
MTYwODIxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRFNQS2VybmVsUHJvY2Vzc29yLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA0QzEyQjAyNkY3
MDBDMUEzNTkgLyogQXVkaW9EU1BLZXJuZWxQcm9jZXNzb3IuaCAqLzsgfTsKIAkJRkQzMTYwODMx
MkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRmlsZVJlYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNEQxMkIwMjZGNzAwQzFBMzU5IC8qIEF1
ZGlvRmlsZVJlYWRlci5oICovOyB9OwpAQCAtNTE0OCw3ICs1MTUwLDcgQEAKIAkJRkRCMTcwMDYx
NEEyQkFCMjAwQTJCNUQ5IC8qIE11bHRpQ2hhbm5lbFJlc2FtcGxlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRCMTcwMDQxNEEyQkFCMjAwQTJCNUQ5
IC8qIE11bHRpQ2hhbm5lbFJlc2FtcGxlci5oICovOyB9OwogCQlGREJENDgwRDE1OUJDNjg3MDA5
M0VCNEYgLyogSlNNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRCRDQ4MEIxNTlCQzY4NzAwOTNFQjRGIC8q
IEpTTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuaCAqLzsgfTsKIAkJRkRDNTRGMDUxMzk5QjBE
QTAwOEQ5MTE3IC8qIEJpcXVhZEZpbHRlck5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEQzU0RjAyMTM5OUIwREEwMDhEOTExNyAvKiBCaXF1YWRG
aWx0ZXJOb2RlLmggKi87IH07Ci0JCUZERTJENTVCMTU5RTY2RUIwMERDQ0NGOCAvKiBBdWRpb0lP
Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEZERTJENTVBMTU5RTY2RUIwMERDQ0NGOCAvKiBBdWRpb0lPQ2FsbGJhY2suaCAqLzsgfTsKKwkJ
RkRFMkQ1NUIxNTlFNjZFQjAwRENDQ0Y4IC8qIEF1ZGlvSU9DYWxsYmFjay5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRFMkQ1NUExNTlFNjZFQjAwREND
Q0Y4IC8qIEF1ZGlvSU9DYWxsYmFjay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUZERUE2MjQzMTUyMTAyRTIwMDQ3OURGMCAvKiBKU09zY2lsbGF0
b3JOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
REVBNjI0MTE1MjEwMkUyMDA0NzlERjAgLyogSlNPc2NpbGxhdG9yTm9kZS5oICovOyB9OwogCQlG
REVBNjI0NzE1MjEwMkZDMDA0NzlERjAgLyogSlNQZXJpb2RpY1dhdmUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZERUE2MjQ1MTUyMTAyRkMwMDQ3OURG
MCAvKiBKU1BlcmlvZGljV2F2ZS5oICovOyB9OwogCQlGREYwOURDOTEzOTlCNjIyMDA2ODhFNUIg
LyogSlNCaXF1YWRGaWx0ZXJOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGREYwOURDNzEzOTlCNjIyMDA2ODhFNUIgLyogSlNCaXF1YWRGaWx0ZXJO
b2RlLmggKi87IH07CkBAIC0xMTIwMyw2ICsxMTIwNSw3IEBACiAJCTlCMEFCQ0E0MjM2NzlBQ0Yw
MEI0NTA4NSAvKiBXb3JrZXJFdmVudExvb3AuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV29ya2VyRXZlbnRMb29wLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlC
MEFCQ0FDMjM2QkI0MEEwMEI0NTA4NSAvKiBUYXNrU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRh
c2tTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwRkU4NzMxRDlFMDJE
RjAwNEE4QUNCIC8qIERvY3VtZW50T3JTaGFkb3dSb290LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBEb2N1bWVudE9yU2hhZG93Um9vdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTlCMTIyOUM2MjNGRTRENUYwMDhDQTc1MSAvKiBNZWRpYVN0cmF0ZWd5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lZGlhU3RyYXRlZ3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIx
MzI1N0IxRjNEMkFCQTAwREFBQjY5IC8qIERhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIxOUI2N0UxQjk2NEU1MjAwMzQ4NzQ1IC8q
IFNoYWRvd1Jvb3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1Jvb3QuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjFBQjA3OTE2NDhDNjlEMDA1MUYzRjIgLyog
SFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxGb3JtQ29udHJvbHNDb2xs
ZWN0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1OTMxLDYgKzI1OTM0
LDcgQEAKIAkJCQlDREYyQjAwMzE4MUYwNTlDMDBGMkI0MjQgLyogTWVkaWFEZXNjcmlwdGlvbi5o
ICovLAogCQkJCUNENjQxRUM3MTgxRUQ2MDEwMEVFNEM0MSAvKiBNZWRpYVNhbXBsZS5oICovLAog
CQkJCUExN0QyNzVEMUVBQzU3OTgwMEJGMDFFNyAvKiBNZWRpYVNlbGVjdGlvbk9wdGlvbi5oICov
LAorCQkJCTlCMTIyOUM2MjNGRTRENUYwMDhDQTc1MSAvKiBNZWRpYVN0cmF0ZWd5LmggKi8sCiAJ
CQkJQkM3NzJDNEMwQzRFQjMwNDAwODMyODVGIC8qIE1JTUVUeXBlUmVnaXN0cnkuY3BwICovLAog
CQkJCUJDNzcyQzREMEM0RUIzMDQwMDgzMjg1RiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmggKi8sCiAJ
CQkJRTE1MTNENTAxNjc3RjA4ODAwMTQ5RkNCIC8qIE5vdEltcGxlbWVudGVkLmNwcCAqLywKQEAg
LTI5MDU2LDYgKzI5MDYwLDcgQEAKIAkJCQlGRDMxNjA3RTEyQjAyNkY3MDBDMUEzNTkgLyogQXVk
aW9DaGFubmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjAwNTEyQjAyNjc2MDBDMUEzNTkg
LyogQXVkaW9Db250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA3RjEyQjAyNkY3MDBD
MUEzNTkgLyogQXVkaW9EZXN0aW5hdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUIxMjI5QzQy
M0ZFNEJEMjAwOENBNzUxIC8qIEF1ZGlvRGVzdGluYXRpb25Db2NvYS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkQzMTYwQkQxMkIwMjcyQTAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb25NYWMuaCBp
biBIZWFkZXJzICovLAogCQkJCUZEMzE2MDA4MTJCMDI2NzYwMEMxQTM1OSAvKiBBdWRpb0Rlc3Rp
bmF0aW9uTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwODAxMkIwMjZGNzAwQzFBMzU5
IC8qIEF1ZGlvRFNQS2VybmVsLmggaW4gSGVhZGVycyAqLywKQEAgLTMxNDg5LDYgKzMxNDk0LDcg
QEAKIAkJCQlDRDY0MUVCMzE4MThGNUVEMDBFRTRDNDEgLyogTWVkaWFTb3VyY2VQcml2YXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDREM4QjVBNzE4MDQ3NEY3MDAxNkU2ODUgLyogTWVkaWFTb3Vy
Y2VQcml2YXRlQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0REQzFFN0ExOEE5NTJGMzAw
MjdBOUQ0IC8qIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
OUIxMjI5QzcyM0ZFNEQ2QTAwOENBNzUxIC8qIE1lZGlhU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICov
LAogCQkJCTA3OEUwOTE1MTdEMTREMUMwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDc4RTA5NEMxN0QxNzA5NjAwNDIwQUExIC8qIE1lZGlhU3RyZWFtQXVkaW9E
ZXN0aW5hdGlvbk5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3ODMyMjg1MTgwMTNFRDgwMDk5
OUUwQyAvKiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZWQwNGM0Y2M4ZThlY2M4
NDQ4ZmUwNTNhNGI2NmJjNjdhODExN2RkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgQXVkaW9EZXN0aW5hdGlvbjsKK2NsYXNzIEF1ZGlvSU9DYWxsYmFj
azsKKworY2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFTdHJhdGVneSB7CitwdWJsaWM6CisjaWYg
RU5BQkxFKFdFQl9BVURJTykKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3Rp
bmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKAorICAgICAgICBBdWRpb0lPQ2FsbGJhY2sm
LCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFu
bmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkg
PSAwOworI2VuZGlmCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+TWVkaWFTdHJhdGVneSgpID0g
ZGVmYXVsdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmgKaW5kZXggZTNkYjcxNzljOWZhYzc0ZGQ2ZjQ5
M2U2NWEzZjhlMDRiOGIzMDc2NS4uNzI3MzE2MjFjZjIyNTNmZjc0MjQ0ZTY1ODhhMTlkZWNjMjI4
MWYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVn
aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmgK
QEAgLTI5LDYgKzI5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBCbG9iUmVnaXN0
cnk7CiBjbGFzcyBMb2FkZXJTdHJhdGVneTsKK2NsYXNzIE1lZGlhU3RyYXRlZ3k7CiBjbGFzcyBQ
YXN0ZWJvYXJkU3RyYXRlZ3k7CiAKIGNsYXNzIFBsYXRmb3JtU3RyYXRlZ2llcyB7CkBAIC0zOSw3
ICs0MCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fbG9hZGVyU3RyYXRlZ3kgPSBjcmVhdGVM
b2FkZXJTdHJhdGVneSgpOwogICAgICAgICByZXR1cm4gbV9sb2FkZXJTdHJhdGVneTsKICAgICB9
Ci0gICAgCisKICAgICBQYXN0ZWJvYXJkU3RyYXRlZ3kqIHBhc3RlYm9hcmRTdHJhdGVneSgpCiAg
ICAgewogICAgICAgICBpZiAoIW1fcGFzdGVib2FyZFN0cmF0ZWd5KQpAQCAtNDcsNiArNDgsMTMg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9wYXN0ZWJvYXJkU3RyYXRlZ3k7CiAgICAgfQog
CisgICAgTWVkaWFTdHJhdGVneSYgbWVkaWFTdHJhdGVneSgpCisgICAgeworICAgICAgICBpZiAo
IW1fbWVkaWFTdHJhdGVneSkKKyAgICAgICAgICAgIG1fbWVkaWFTdHJhdGVneSA9IGNyZWF0ZU1l
ZGlhU3RyYXRlZ3koKTsKKyAgICAgICAgcmV0dXJuICptX21lZGlhU3RyYXRlZ3k7CisgICAgfQor
CiAgICAgQmxvYlJlZ2lzdHJ5KiBibG9iUmVnaXN0cnkoKQogICAgIHsKICAgICAgICAgaWYgKCFt
X2Jsb2JSZWdpc3RyeSkKQEAgLTY0LDEwICs3MiwxMiBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgog
ICAgIHZpcnR1YWwgTG9hZGVyU3RyYXRlZ3kqIGNyZWF0ZUxvYWRlclN0cmF0ZWd5KCkgPSAwOwog
ICAgIHZpcnR1YWwgUGFzdGVib2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3ko
KSA9IDA7CisgICAgdmlydHVhbCBNZWRpYVN0cmF0ZWd5KiBjcmVhdGVNZWRpYVN0cmF0ZWd5KCkg
PSAwOwogICAgIHZpcnR1YWwgQmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSA9IDA7
CiAKICAgICBMb2FkZXJTdHJhdGVneSogbV9sb2FkZXJTdHJhdGVneSB7IH07CiAgICAgUGFzdGVi
b2FyZFN0cmF0ZWd5KiBtX3Bhc3RlYm9hcmRTdHJhdGVneSB7IH07CisgICAgTWVkaWFTdHJhdGVn
eSogbV9tZWRpYVN0cmF0ZWd5IHsgfTsKICAgICBCbG9iUmVnaXN0cnkqIG1fYmxvYlJlZ2lzdHJ5
IHsgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1
ZGlvQnVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5oCmluZGV4
IGJiYjNkMmFjZDIyYzU3MmJjOTIzYTQ4YjFmNzBhZjg1NGMwY2IwMGEuLjIyNDM3NDdhYzM3ZWZi
NTAzNTU5N2YwMmI2NDhjYzE4MGE5NjYzMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vQXVkaW9CdXMuaApAQCAtNjYsMTAgKzY2LDEwIEBAIHB1YmxpYzoKICAgICAvLyBhbGxvY2F0
ZSBpbmRpY2F0ZXMgd2hldGhlciBvciBub3QgdG8gaW5pdGlhbGx5IGhhdmUgdGhlIEF1ZGlvQ2hh
bm5lbHMgY3JlYXRlZCB3aXRoIG1hbmFnZWQgc3RvcmFnZS4KICAgICAvLyBOb3JtYWwgdXNhZ2Ug
aXMgdG8gcGFzcyB0cnVlIGhlcmUsIGluIHdoaWNoIGNhc2UgdGhlIEF1ZGlvQ2hhbm5lbHMgd2ls
bCBtZW1vcnktbWFuYWdlIHRoZWlyIG93biBzdG9yYWdlLgogICAgIC8vIElmIGFsbG9jYXRlIGlz
IGZhbHNlIHRoZW4gc2V0Q2hhbm5lbE1lbW9yeSgpIGhhcyB0byBiZSBjYWxsZWQgbGF0ZXIgb24g
Zm9yIGVhY2ggY2hhbm5lbCBiZWZvcmUgdGhlIEF1ZGlvQnVzIGlzIHVzZWFibGUuLi4KLSAgICBz
dGF0aWMgUmVmUHRyPEF1ZGlvQnVzPiBjcmVhdGUodW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywg
c2l6ZV90IGxlbmd0aCwgYm9vbCBhbGxvY2F0ZSA9IHRydWUpOworICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBSZWZQdHI8QXVkaW9CdXM+IGNyZWF0ZSh1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxz
LCBzaXplX3QgbGVuZ3RoLCBib29sIGFsbG9jYXRlID0gdHJ1ZSk7CiAKICAgICAvLyBUZWxscyB0
aGUgZ2l2ZW4gY2hhbm5lbCB0byB1c2UgYW4gZXh0ZXJuYWxseSBhbGxvY2F0ZWQgYnVmZmVyLgot
ICAgIHZvaWQgc2V0Q2hhbm5lbE1lbW9yeSh1bnNpZ25lZCBjaGFubmVsSW5kZXgsIGZsb2F0KiBz
dG9yYWdlLCBzaXplX3QgbGVuZ3RoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENoYW5u
ZWxNZW1vcnkodW5zaWduZWQgY2hhbm5lbEluZGV4LCBmbG9hdCogc3RvcmFnZSwgc2l6ZV90IGxl
bmd0aCk7CiAKICAgICAvLyBDaGFubmVscwogICAgIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMo
KSBjb25zdCB7IHJldHVybiBtX2NoYW5uZWxzLnNpemUoKTsgfQpAQCAtMTI2LDcgKzEyNiw3IEBA
IHB1YmxpYzoKIAogICAgIC8vIENvcGllcyB0aGUgc2FtcGxlcyBmcm9tIHRoZSBzb3VyY2UgYnVz
IHRvIHRoaXMgb25lLgogICAgIC8vIFRoaXMgaXMganVzdCBhIHNpbXBsZSBwZXItY2hhbm5lbCBj
b3B5IGlmIHRoZSBudW1iZXIgb2YgY2hhbm5lbHMgbWF0Y2gsIG90aGVyd2lzZSBhbiB1cC1taXgg
b3IgZG93bi1taXggaXMgZG9uZS4KLSAgICB2b2lkIGNvcHlGcm9tKGNvbnN0IEF1ZGlvQnVzJiBz
b3VyY2VCdXMsIENoYW5uZWxJbnRlcnByZXRhdGlvbiA9IFNwZWFrZXJzKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGNvcHlGcm9tKGNvbnN0IEF1ZGlvQnVzJiBzb3VyY2VCdXMsIENoYW5uZWxJ
bnRlcnByZXRhdGlvbiA9IFNwZWFrZXJzKTsKIAogICAgIC8vIFN1bXMgdGhlIHNhbXBsZXMgZnJv
bSB0aGUgc291cmNlIGJ1cyB0byB0aGlzIG9uZS4KICAgICAvLyBUaGlzIGlzIGp1c3QgYSBzaW1w
bGUgcGVyLWNoYW5uZWwgc3VtbWluZyBpZiB0aGUgbnVtYmVyIG9mIGNoYW5uZWxzIG1hdGNoLCBv
dGhlcndpc2UgYW4gdXAtbWl4IG9yIGRvd24tbWl4IGlzIGRvbmUuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmgKaW5kZXggMmNiYWY0OGViNTBm
NTVkNmRhYWVmOWI0M2E2ODZiZjRkYzdhNzkxNy4uNDMwYjgwZjMzOWJjYWM5N2I4M2VkY2UyMDZl
ZjU3ZWE3MDdkMGY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
QXVkaW9EZXN0aW5hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1
ZGlvRGVzdGluYXRpb24uaApAQCAtNDUsNyArNDUsNyBAQCBjbGFzcyBBdWRpb0Rlc3RpbmF0aW9u
IHsKIHB1YmxpYzoKICAgICAvLyBQYXNzIGluIChudW1iZXJPZklucHV0Q2hhbm5lbHMgPiAwKSBp
ZiBsaXZlL2xvY2FsIGF1ZGlvIGlucHV0IGlzIGRlc2lyZWQuCiAgICAgLy8gUG9ydC1zcGVjaWZp
YyBkZXZpY2UgaWRlbnRpZmljYXRpb24gaW5mb3JtYXRpb24gZm9yIGxpdmUvbG9jYWwgaW5wdXQg
c3RyZWFtcyBjYW4gYmUgcGFzc2VkIGluIHRoZSBpbnB1dERldmljZUlkLgotICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYs
IGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5u
ZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRp
b24+IGNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQs
IHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRD
aGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSk7CiAKICAgICB2aXJ0dWFsIH5BdWRpb0Rlc3RpbmF0
aW9uKCkgPSBkZWZhdWx0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QKaW5kZXggZDI5OTA2NzllMzVmYzI5ODM1NDgzMjRkYTUzZmE3NGQ1YzdiNDVl
Ny4uODZmMDFiMzlhMDQ3MjhjMmMwYmZmNjdlNWJkMzkzZjA5MWI3N2Y5ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTcsNiArMTcsNyBA
QCAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWFjL2NvbS5h
cHBsZS5XZWJLaXQuR1BVUHJvY2Vzcy5zYi5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
clByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0xMTAsNiArMTExLDcgQEAgJChQ
Uk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1l
c3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVj
dGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCiskKFBS
T0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJv
eHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5tZXNzYWdlcy5pbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXgg
OWU3YzkwZTE4ODJkZjFjZmZiODY3MjUzMjAzMjZmMTRmZWU5N2ZhZi4uNjQ2NGQ4Mzg5ZmI1M2Y1
Mjc1MDcwNTM5Yzk4MTBmYjJkOGNjYjMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xMjMsNiArMTIzLDE0IEBAICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1BsdWdpblByb2Nlc3NQcm94eU1lc3Nh
Z2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9QbHVnaW5Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1BsdWdpblByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUGx1Z2luUHJveHlNZXNzYWdlc1JlcGxp
ZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlck1lc3NhZ2VzLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uUHJveHlNZXNzYWdlcy5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eU1lc3NhZ2Vz
LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1h
bmFnZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXJNZXNzYWdlc1Jl
cGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDJmYTMzYzZiZDg1OGMwNmY5
YjRhNDlmYTAwMmFmMzk3ZDY3ODUzYjMuLjQzNmU0YjQyMjRjYjA0NWM5ZWFiM2E2YzcwNTQzMGJk
NTI1MzMzMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQor
KysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE0Niw2ICsxNDYsOCBA
QCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXIgXAogICAgIFBsdWdpblByb2Nlc3NQcm94eSBcCiAgICAgUGx1Z2luUHJveHkgXAorICAgIFJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyIFwKKyAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkgXAogICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlciBc
CiAgICAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIgXAogICAgIFJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDUxMWE3NzRhNWFiMTk2
ZTNiNDE4Nzk2NWIyOGFjMTQwODg5NjUwYWYuLjZhMmM4NzBmN2FhYTFiMGRiMDAwZWY4ODgyN2M5
YTBmNjFkY2YyNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlICJM
aWJXZWJSVENDb2RlY3NQcm94eS5oIgogI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjc1Byb3h5TWVz
c2FnZXMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
ck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlck1lc3NhZ2VzLmgiCkBAIC0xMjcsNiArMTI5LDE0IEBAIHZvaWQgR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYgY29ubmVjCiAgICAgQ1JBU0goKTsKIH0KIAorUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXImIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyKCkKK3sKKyAgICBpZiAoIW1fcmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIpCisgICAg
ICAgIG1fcmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIgPSBtYWtlVW5pcXVlPFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyPigqdGhpcyk7CisKKyAgICByZXR1cm4gKm1fcmVtb3RlQXVk
aW9EZXN0aW5hdGlvbk1hbmFnZXI7Cit9CisKIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyJiBH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcigpCiB7
CiAgICAgaWYgKCFtX3JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKQpAQCAtMjA1LDYgKzIxNSwx
MCBAQCB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbGVhc2VSZW5kZXJpbmdCYWNr
ZW5kKFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaQogCiBib29sIEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OmRpc3BhdGNoTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6
RGVjb2RlciYgZGVjb2RlcikKIHsKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1l
KCkgPT0gTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgcmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIoKS5k
aWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVy
TmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIHJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
KCkuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyKTsK
ICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0yNjAsNiArMjc0LDEwIEBAIGJvb2wgR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgSVBDCiAKIGJvb2wgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hTeW5j
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rl
ciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKKyAgICBp
ZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgcmVt
b3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIoKS5kaWRSZWNlaXZlU3luY01lc3NhZ2VGcm9tV2Vi
UHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOworICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09
IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpKSB7CiAgICAgICAgIHJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCkuZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlF
bmNvZGVyKTsKICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCA2YTIyOGM0NDI2MzY4
ZjRhMTA0NDM5NDg2MzliNGUzNjFkOTQwM2M5Li43NDcxNWM4MGM1NDViZWFmZWMzZjZiN2UwOTg0
ZWNhNTBjYmEyNjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiAKIGNsYXNzIEdQVVByb2Nlc3M7CiBjbGFzcyBMaWJXZWJSVENDb2RlY3NQcm94eTsKK2Ns
YXNzIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOwogY2xhc3MgUmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOwogY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHk7CiBjbGFzcyBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjsKQEAgLTg3LDYgKzg4
LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKEdQ
VVByb2Nlc3MmLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgSVBDOjpDb25uZWN0aW9uOjpJ
ZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCk7CiAKKyAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
TWFuYWdlciYgcmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIoKTsKICAgICBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eSYgcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKTsKICNp
ZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykKICAgICBMaWJXZWJSVENDb2RlY3NQ
cm94eSYgbGliV2ViUlRDQ29kZWNzUHJveHkoKTsKQEAgLTExNyw2ICsxMTksNyBAQCBwcml2YXRl
OgogICAgIElQQzo6TWVzc2FnZVJlY2VpdmVyTWFwIG1fbWVzc2FnZVJlY2VpdmVyTWFwOwogICAg
IFJlZjxHUFVQcm9jZXNzPiBtX2dwdVByb2Nlc3M7CiAgICAgY29uc3QgV2ViQ29yZTo6UHJvY2Vz
c0lkZW50aWZpZXIgbV93ZWJQcm9jZXNzSWRlbnRpZmllcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI+IG1fcmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyPiBt
X3JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eT4gbV9yZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsK
ICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjFkZWMzZTNiYTU3OTEyNGYyNzIyMDQ5NGRkMGZjNWVhMmRiZDBi
M2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTc3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9CdXNEYXRhLmgi
CisjaW5jbHVkZSAiUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5TWVzc2FnZXMuaCIKKyNpbmNs
dWRlICJTaGFyZWRNZW1vcnkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvQnVzLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9BdWRpb0Rlc3RpbmF0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9BdWRp
b0lPQ2FsbGJhY2suaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgorI2luY2x1
ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90aHJlYWRzL0Jp
bmFyeVNlbWFwaG9yZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlQXVk
aW9EZXN0aW5hdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uPiwgcHVibGljIFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjayB7CitwdWJsaWM6Cisg
ICAgdXNpbmcgQXVkaW9CdXMgPSBXZWJDb3JlOjpBdWRpb0J1czsKKyAgICB1c2luZyBBdWRpb0Rl
c3RpbmF0aW9uID0gV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbjsKKyAgICB1c2luZyBTaGFyZWRC
dWZmZXIgPSBXZWJDb3JlOjpTaGFyZWRCdWZmZXI7CisKKyAgICBzdGF0aWMgUmVmPFJlbW90ZUF1
ZGlvRGVzdGluYXRpb24+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0
aW9uLCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBpZCwKKyAgICAgICAgY29uc3Qg
U3RyaW5nJiBpbnB1dERldmljZUlkLCB1aW50MzJfdCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVp
bnQzMl90IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uKGNvbm5l
Y3Rpb24sIGlkLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9m
T3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uKCkKKyAgICB7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFtX2Rl
c3RpbmF0aW9uLT5pc1BsYXlpbmcoKSk7CisgICAgfQorCisgICAgdm9pZCBzY2hlZHVsZUdyYWNl
ZnVsU2h1dGRvd25JZk5lZWRlZCgpCisgICAgeworICAgICAgICBpZiAoIWlzUGxheWluZygpKQor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX3Byb3RlY3RUaGlzRHVyaW5nR3JhY2VmdWxT
aHV0ZG93biA9IHRoaXM7CisgICAgICAgIHN0b3AoKTsKKyAgICB9CisKKyAgICB2b2lkIHN0YXJ0
KCkgeyBtX2Rlc3RpbmF0aW9uLT5zdGFydCgpOyB9CisgICAgdm9pZCBzdG9wKCkgeyBtX2Rlc3Rp
bmF0aW9uLT5zdG9wKCk7IH0KKyAgICBib29sIGlzUGxheWluZygpIHsgcmV0dXJuIG1fZGVzdGlu
YXRpb24tPmlzUGxheWluZygpOyB9CisKK3ByaXZhdGU6CisgICAgUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbihHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uSWRlbnRpZmllciBpZCwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1aW50
MzJfdCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVpbnQzMl90IG51bWJlck9mT3V0cHV0Q2hhbm5l
bHMsIGZsb2F0IHNhbXBsZVJhdGUpCisgICAgICAgIDogbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24p
CisgICAgICAgICwgbV9pZChpZCkKKyAgICAgICAgLCBtX2Rlc3RpbmF0aW9uKEF1ZGlvRGVzdGlu
YXRpb246OmNyZWF0ZSgqdGhpcywgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxz
LCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKSkKKyAgICB7CisgICAgfQorCisg
ICAgdm9pZCByZW5kZXIoQXVkaW9CdXMqIHNvdXJjZUJ1cywgQXVkaW9CdXMqIGRlc3RpbmF0aW9u
QnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgaWYg
KG1fcHJvdGVjdFRoaXNEdXJpbmdHcmFjZWZ1bFNodXRkb3duKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOworICAgICAg
ICBCaW5hcnlTZW1hcGhvcmUgcmVuZGVyU2VtYXBob3JlOworCisgICAgICAgIFZlY3RvcjxSZWY8
U2hhcmVkTWVtb3J5Pj4gYnVmZmVyczsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGRlc3RpbmF0aW9uQnVzLT5udW1iZXJPZkNoYW5uZWxzKCk7ICsraSkgeworICAgICAgICAgICAg
YXV0byBtZW1vcnkgPSBTaGFyZWRNZW1vcnk6OmFsbG9jYXRlKHNpemVvZihmbG9hdCkgKiBmcmFt
ZXNUb1Byb2Nlc3MpOworICAgICAgICAgICAgYnVmZmVycy5hcHBlbmQoKm1lbW9yeSk7CisgICAg
ICAgIH0KKworICAgICAgICAvLyBGSVhNRTogUmVwbGFjZSB0aGlzIGNvZGUgd2l0aCBhIHJpbmcg
YnVmZmVyLiBBdCBsZWFzdCB0aGlzIGhhcHBlbnMgaW4gYXVkaW8gdGhyZWFkLgorICAgICAgICBB
U1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywg
ZnJhbWVzVG9Qcm9jZXNzLCAmYnVmZmVycywgJnJlbmRlclNlbWFwaG9yZV0geworICAgICAgICAg
ICAgUmVtb3RlQXVkaW9CdXNEYXRhIGJ1c0RhdGEgeyBmcmFtZXNUb1Byb2Nlc3MsIGJ1ZmZlcnMu
bWFwKFtdKGF1dG8mIG1lbW9yeSkgeyByZXR1cm4gbWVtb3J5LmNvcHlSZWYoKTsgfSkgfTsKKyAg
ICAgICAgICAgIEFTU0VSVChmcmFtZXNUb1Byb2Nlc3MpOworICAgICAgICAgICAgbV9jb25uZWN0
aW9uLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eTo6UmVuZGVyQnVmZmVyKGJ1c0RhdGEpLCBbJl0oKSB7CisgICAgICAg
ICAgICAgICAgcmVuZGVyU2VtYXBob3JlLnNpZ25hbCgpOworICAgICAgICAgICAgfSwgbV9pZC50
b1VJbnQ2NCgpKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJlbmRlclNlbWFwaG9yZS53YWl0KCk7
CisKKyAgICAgICAgYXV0byBhdWRpb0J1cyA9IEF1ZGlvQnVzOjpjcmVhdGUoYnVmZmVycy5zaXpl
KCksIGZyYW1lc1RvUHJvY2VzcywgZmFsc2UpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgYnVmZmVycy5zaXplKCk7ICsraSkKKyAgICAgICAgICAgIGF1ZGlvQnVzLT5zZXRDaGFu
bmVsTWVtb3J5KGksIChmbG9hdCopYnVmZmVyc1tpXS0+ZGF0YSgpLCBmcmFtZXNUb1Byb2Nlc3Mp
OworICAgICAgICBkZXN0aW5hdGlvbkJ1cy0+Y29weUZyb20oKmF1ZGlvQnVzKTsKKyAgICB9CisK
KyAgICB2b2lkIGlzUGxheWluZ0RpZENoYW5nZSgpIG92ZXJyaWRlCisgICAgeworICAgICAgICBp
ZiAobV9wcm90ZWN0VGhpc0R1cmluZ0dyYWNlZnVsU2h1dGRvd24pIHsKKyAgICAgICAgICAgIFJF
TEVBU0VfQVNTRVJUKCFtX2Rlc3RpbmF0aW9uLT5pc1BsYXlpbmcoKSk7CisgICAgICAgICAgICBS
RUxFQVNFX0FTU0VSVChyZWZDb3VudCgpID09IDEpOworICAgICAgICAgICAgbV9wcm90ZWN0VGhp
c0R1cmluZ0dyYWNlZnVsU2h1dGRvd24gPSBudWxscHRyOyAvLyBEZWxldGVzICJ0aGlzIi4KKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGlzUGxheWluZyA9IG1fZGVzdGlu
YXRpb24tPmlzUGxheWluZygpLCBpZCA9IG1faWQudG9VSW50NjQoKV0geworICAgICAgICAgICAg
bV9jb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHk6OkRpZENoYW5nZUlzUGxheWluZyhpc1BsYXlpbmcpLCBpZCk7CisgICAgICAg
IH0pOworICAgIH0KKworICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIG1fY29ubmVjdGlv
bjsKKyAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBtX2lkOworICAgIHN0ZDo6
dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBtX2Rlc3RpbmF0aW9uOworICAgIFJlZlB0cjxS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uPiBtX3Byb3RlY3RUaGlzRHVyaW5nR3JhY2VmdWxTaHV0ZG93
bjsKK307CisKK1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uTWFuYWdlcihHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uKQorICAg
IDogbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rpb24pCit7Cit9CisKK1JlbW90
ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjp+UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIo
KSA9IGRlZmF1bHQ7CisKK3ZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OmNyZWF0
ZUF1ZGlvRGVzdGluYXRpb24oY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1aW50MzJfdCBu
dW1iZXJPZklucHV0Q2hhbm5lbHMsIHVpbnQzMl90IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZs
b2F0IHNhbXBsZVJhdGUsCisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uSWRlbnRpZmllcik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byBu
ZXdJRCA9IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNh
ZmUoKTsKKyAgICBhdXRvIGNhbGxiYWNrID0gUmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRl
KG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgbmV3SUQsIGlucHV0RGV2aWNlSWQsIG51bWJl
ck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7Cisg
ICAgbV9hdWRpb0Rlc3RpbmF0aW9ucy5hZGQobmV3SUQsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAg
ICBjb21wbGV0aW9uSGFuZGxlcihuZXdJRCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXI6OmRlbGV0ZUF1ZGlvRGVzdGluYXRpb24oUmVtb3RlQXVkaW9EZXN0aW5hdGlv
bklkZW50aWZpZXIgaWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3sKKyAgICBhdXRvIGRlc3RpbmF0aW9uID0gbV9hdWRpb0Rlc3RpbmF0aW9ucy50YWtl
KGlkKTsKKyAgICBpZiAoZGVzdGluYXRpb24pCisgICAgICAgIGRlc3RpbmF0aW9uLnZhbHVlKCkt
PnNjaGVkdWxlR3JhY2VmdWxTaHV0ZG93bklmTmVlZGVkKCk7CisgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6c3RhcnRBdWRp
b0Rlc3RpbmF0aW9uKFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIGlkLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGJvb2wg
aXNQbGF5aW5nID0gZmFsc2U7CisgICAgaWYgKGF1dG8qIGl0ZW0gPSBtX2F1ZGlvRGVzdGluYXRp
b25zLmdldChpZCkpIHsKKyAgICAgICAgaXRlbS0+c3RhcnQoKTsKKyAgICAgICAgaXNQbGF5aW5n
ID0gaXRlbS0+aXNQbGF5aW5nKCk7CisgICAgfQorICAgIGNvbXBsZXRpb25IYW5kbGVyKGlzUGxh
eWluZyk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OnN0b3BBdWRp
b0Rlc3RpbmF0aW9uKFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIGlkLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGJvb2wg
aXNQbGF5aW5nID0gZmFsc2U7CisgICAgaWYgKGF1dG8qIGl0ZW0gPSBtX2F1ZGlvRGVzdGluYXRp
b25zLmdldChpZCkpIHsKKyAgICAgICAgaXRlbS0+c3RvcCgpOworICAgICAgICBpc1BsYXlpbmcg
PSBpdGVtLT5pc1BsYXlpbmcoKTsKKyAgICB9CisgICAgY29tcGxldGlvbkhhbmRsZXIoaXNQbGF5
aW5nKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODRjYTEwZTA0MWNkYjMwNTlhM2UwNDlmMjQyYjU1
ZjlhZWExYzEyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmgKQEAgLTAsMCArMSw3MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5j
bHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVu
dGlmaWVyLmgiCisjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCisjaW5jbHVkZSA8bWVtb3J5Pgor
I2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOworY2xhc3MgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbjsKKworY2xhc3MgUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbk1hbmFnZXIgOiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uTWFuYWdlcik7CitwdWJsaWM6CisgICAgUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXIoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYpOworICAgIH5SZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlcigpOworCisgICAgdm9pZCBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9u
KGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdWludDMyX3QgbnVtYmVyT2ZJbnB1dENoYW5u
ZWxzLCB1aW50MzJfdCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyKT4m
Jik7CisgICAgdm9pZCBkZWxldGVBdWRpb0Rlc3RpbmF0aW9uKFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25JZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc3Rh
cnRBdWRpb0Rlc3RpbmF0aW9uKFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHN0b3BBdWRpb0Rlc3RpbmF0
aW9uKFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlRnJvbVdlYlBy
b2Nlc3MoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIs
IHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiBlbmNvZGVyKQorICAgIHsKKyAgICAgICAg
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIsIGVuY29kZXIpOworICAg
IH0KKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3MoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpIHsgZGlkUmVjZWl2ZU1lc3Nh
Z2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworICAgIHZvaWQgZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6
dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jik7CisKKyAgICBIYXNoTWFwPFJlbW90ZUF1ZGlvRGVz
dGluYXRpb25JZGVudGlmaWVyLCBSZWY8UmVtb3RlQXVkaW9EZXN0aW5hdGlvbj4+IG1fYXVkaW9E
ZXN0aW5hdGlvbnM7CisgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9ncHVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZTsKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODFkOTU4NzQ0ODllMzY1OTk3MWQ4MWFiMjkzYmZjZmE1MTYzMzcyOQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM3IEBACisjIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdl
cyAtPiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKKworICAg
IENyZWF0ZUF1ZGlvRGVzdGluYXRpb24oU3RyaW5nIGlucHV0RGV2aWNlSWQsIHVpbnQzMl90IG51
bWJlck9mSW5wdXRDaGFubmVscywgdWludDMyX3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxv
YXQgc2FtcGxlUmF0ZSkgLT4gKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZp
ZXIgaWQpIFN5bmNocm9ub3VzCisKKyAgICBEZWxldGVBdWRpb0Rlc3RpbmF0aW9uKFdlYktpdDo6
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgaWQpIC0+ICgpIEFzeW5jCisKKyAgICBT
dGFydEF1ZGlvRGVzdGluYXRpb24oV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRp
ZmllciBpZCkgLT4gKGJvb2wgaXNQbGF5aW5nKSBTeW5jaHJvbm91cworICAgIFN0b3BBdWRpb0Rl
c3RpbmF0aW9uKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgaWQpIC0+
IChib29sIGlzUGxheWluZykgU3luY2hyb25vdXMKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0
ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1Bs
YXRmb3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggZDRmODc1MzM2MDljZGRjNDljOWRjYjU0YTFkZGZi
ZjU4MzNlMGE1YS4uZjY5NjAxY2VmMGVmYzkzZGJlZDNlMDUzZDUzNDA4MTQ3YmUzZWQ5NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRm
b3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTQ4LDYgKzQ4LDExIEBAIFBhc3Rl
Ym9hcmRTdHJhdGVneSogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZVBh
c3RlYm9hcmRTdHJhdGVneSgpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK01lZGlhU3RyYXRl
Z3kqIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVNZWRpYVN0cmF0ZWd5
KCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogQmxvYlJlZ2lzdHJ5KiBOZXR3b3JrUHJv
Y2Vzc1BsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKIHsKICAgICB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaAppbmRleCBk
MzcxZDM4YWZlYWNiOWMyM2IzNTYwOWEyNWEzNTVjMjQzZjA0OWMwLi5hNDM4NzFkNDkxNThjZjY0
YTg3MTViMzRjZTNiMDBmOTE3MmE4NDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5o
CkBAIC0zOCw2ICszOCw3IEBAIHByaXZhdGU6CiAgICAgLy8gV2ViQ29yZTo6UGxhdGZvcm1TdHJh
dGVnaWVzCiAgICAgV2ViQ29yZTo6TG9hZGVyU3RyYXRlZ3kqIGNyZWF0ZUxvYWRlclN0cmF0ZWd5
KCkgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0
ZWJvYXJkU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpNZWRpYVN0cmF0ZWd5KiBj
cmVhdGVNZWRpYVN0cmF0ZWd5KCkgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5
KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSBvdmVycmlkZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtTWFjLmNt
YWtlCmluZGV4IDIyYzJlOGJkYzEzMGUzMDZlMjM5ZWI0NjY3YWE3YzQ4MmQxYzc3NmEuLmE5ZDRl
ODExNzExZTA3YmYyOTFiYmI3MWQ0ZTA2NGM2OThkNzQ1MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybU1hYy5j
bWFrZQpAQCAtMTYxLDYgKzE2MSwxMSBAQCBsaXN0KEFQUEVORCBXZWJLaXRfTUVTU0FHRVNfSU5f
RklMRVMKICAgICBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMu
aW4KICAgICBHUFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KIAorICAgIEdQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KKyAgICBH
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CisgICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmlu
CisgICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdl
cy5pbgorCiAgICAgR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2Fn
ZXMuaW4KICAgICBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCiAgICAgR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0xNzEsMTAgKzE3
Niw2IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIEdQVVByb2Nl
c3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLm1lc3NhZ2VzLmlu
CiAgICAgR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlci5tZXNzYWdlcy5pbgogCi0gICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
clByb3h5Lm1lc3NhZ2VzLmluCi0gICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlci5tZXNzYWdlcy5pbgotICAgIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KLSAgICAKICAgICBOZXR3b3JrUHJvY2Vzcy9D
dXN0b21Qcm90b2NvbHMvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluCiAK
ICAgICBTaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMu
aW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkg
Yi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDkyYjQxZjY3
MDdmNzJiYjM4NzU3ZjExNzA5ODZhZjM2MzdkMmUwZmEuLjVkNDMyZjI4ZGFkMzExZDM1YWJiMDE2
OTQyNmNmYmJiNzE5ZTFmMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weQpAQCAtMjMxLDYgKzIzMSw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJk
X2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJLaXQ6Ok1ETlNSZWdpc3RlcklkZW50aWZpZXInLAog
ICAgICAgICAnV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyJywKICAg
ICAgICAgJ1dlYktpdDo6TWVkaWFSZWNvcmRlcklkZW50aWZpZXInLAorICAgICAgICAnV2ViS2l0
OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJl
bW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6UmVuZGVyaW5n
QmFja2VuZElkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpSVENEZWNvZGVySWRlbnRpZmll
cicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uSWRlbnRpZmllci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbklkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMTg4YTgyZTdjNjdjOWUzZTZkMjgyZWNjNzA3
NzkyZDhmN2Y2ODdjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVt
b3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaApAQCAtMCwwICsxLDM5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRl
IDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgUmVtb3RlQXVk
aW9EZXN0aW5hdGlvbklkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFJlbW90ZUF1ZGlvRGVz
dGluYXRpb25JZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0CmluZGV4IGVlZjAwN2U3NzBiMTkxODQyMjg4YzE3Yzk0Y2NkNDk5NTBjNWYz
ZTguLjAzNjQzZTQ0NjI5MTY3NTg0ZTJjY2MwZDk0YTIwYTFlYzQzZDJhZTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4
dApAQCAtNTM4LDExICs1MzgsMTMgQEAgV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwCiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNw
cAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCiBXZWJQ
cm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCitXZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCiBXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuY3BwIEBuby11bmlmeQogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcAogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1Zp
ZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAorV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFT
dHJhdGVneS5jcHAKIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCiBX
ZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCiBXZWJQcm9jZXNz
L0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
CmluZGV4IDVhYmMyY2ZjMWNlNTczOTU0YzZjMGJhMTA0ZDUxODQyZDBhYWE3YzAuLmIwMDcwZjJk
MDYxZDNmZGU4MzUyNTRmZjQwYWY2NjAxNzk2NjdiZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQK
QEAgLTY1MCw2ICs2NTAsOCBAQCBHUFVQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBH
UFVQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcAogTGliV2ViUlRDQ29kZWNzUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwCiBMaWJXZWJSVENDb2RlY3NNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlTWVkaWFSZWNvcmRl
ck1lc3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGNkMzE1ZmRlZjc1YzViM2VlZDRiMjhmMWE4NjViZGM3N2Rj
Y2IwMzYuLmVlOGMwY2QyMzcxM2ExNmJjZDU4MmQ5Mzc1Y2U4MjM5NjM4N2ViNTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQxMCw4
ICsxNDEwLDE0IEBACiAJCTlCMDJFMENCMjM1RUI5NTMwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1
bGF0aW9uRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDlCMDJFMEM5MjM1RUI2MkQwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRGVs
ZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk5QjAyRTBDQzIzNUVCOTU3MDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDJFMENBMjM1
RUI4ODQwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uSXRlbS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMDJFMEQ3MjM1RkM5NEYwMDQw
NDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDJFMENEMjM1RUI5NjcwMDQwNDRCMiAvKiBfV0tU
ZXh0TWFuaXB1bGF0aW9uVG9rZW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQk5QjEyMjlDRDIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDlCMTIyOUNCMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uTWFuYWdlci5oICovOyB9OworCQk5QjEyMjlDRTIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUIxMjI5Q0MyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyLmNwcCAqLzsgfTsKKwkJOUIxMjI5RDIyM0ZGMkJDQzAwOENBNzUx
IC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjEyMjlEMDIzRkYyQTVFMDA4Q0E3NTEgLyog
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaCAqLzsgfTsKIAkJOUI1NDk5QUQyMzYy
QTZGOTAwREY4QkE1IC8qIF9XS1RleHRNYW5pcHVsYXRpb25Db25maWd1cmF0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjU0OTlBQzIzNjJBNkY2
MDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjU0OTlCMjIzNjJBN0VD
MDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCNTQ5OUIwMjM2MkE3RUMwMERG
OEJBNSAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTlCNUJFQzI2MjQwMEY0QTkwMDcw
QzZFRiAvKiBXZWJNZWRpYVN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5QjVCRUMyNDI0MDBGNEE5MDA3MEM2RUYgLyogV2ViTWVkaWFTdHJh
dGVneS5oICovOyB9OworCQk5QjVCRUMyQTI0MDEwMTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5QjVCRUMyODI0MDEwMTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5LmggKi87IH07CisJCTlCNUJFQzMxMjQwMTAyMjIwMDcwQzZFRiAvKiBSZW1vdGVBdWRp
b0J1c0RhdGEuaCBpbiBDb3B5RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOUI1QkVDMzAyNDAxMDIyMjAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvQnVzRGF0YS5oICovOyB9
OwogCQk5RkI1RjM5NTE2OUU2QTgwMDAyQzI1QkYgLyogV0tDb250ZXh0UHJpdmF0ZU1hYy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUZCNUYzOTMxNjlF
NkE4MDAwMkMyNUJGIC8qIFdLQ29udGV4dFByaXZhdGVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTAyQTcwODFFQzBFRUU5MDBEODFEODIg
LyogY29tLm1hY3JvbWVkaWEuRmxhc2ggUGxheWVyIEVTUi5wbHVnaW4uc2IgaW4gQ29weSBQbHVn
LWluIFNhbmRib3ggUHJvZmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0E1RTM5NDkxRDVCRDhBNzAwQjRCN0NFIC8qIGNvbS5tYWNyb21lZGlhLkZsYXNoIFBsYXllciBF
U1IucGx1Z2luLnNiICovOyB9OwogCQlBMTA0NkVBMTIwNzkyNjMxMDBGMEM1RDggLyogV0tQREZW
aWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTA0
NkU5RjIwNzkyNjMxMDBGMEM1RDggLyogV0tQREZWaWV3LmggKi87IH07CkBAIC0yMDY2LDYgKzIw
NzIsNyBAQAogCQkJCTJEQjk2MDUzMjM5ODg2QzEwMDEwMjc5MSAvKiBjb20uYXBwbGUuV2ViS2l0
LkdQVS5zYiBpbiBDb3B5RmlsZXMgKi8sCiAJCQkJQTc4Q0NEREIxOTNBQzlGODAwNUVDQzI1IC8q
IGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYiBpbiBDb3B5RmlsZXMgKi8sCiAJCQkJQTc4
Q0NEREMxOTNBQzlGQjAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYiBp
biBDb3B5RmlsZXMgKi8sCisJCQkJOUI1QkVDMzEyNDAxMDIyMjAwNzBDNkVGIC8qIFJlbW90ZUF1
ZGlvQnVzRGF0YS5oIGluIENvcHlGaWxlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTQ0MDMsMTAgKzQ0MTAsMjAgQEAKIAkJ
OUIwMkUwQ0QyMzVFQjk2NzAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOUIwMkUwQ0UyMzVFQkIxNDAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVs
YXRpb25Ub2tlbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25U
b2tlbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwMkUwRDAyMzVFQkNDQTAw
NDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25JdGVtLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gX1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTlCMTIyOUNCMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjEyMjlDQzIzRkYyNUYyMDA4Q0E3NTEgLyog
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVt
b3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5QjEyMjlDRjIzRkYyODE0MDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVz
c2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCMTIyOUQwMjNGRjJBNUUw
MDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5QjU0OTlBQzIzNjJBNkY2MDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxh
dGlvbkNvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVGV4dE1hbmlwdWxhdGlvbkNv
bmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI1NDk5QUUyMzYy
QTdBNzAwREY4QkE1IC8qIF9XS1RleHRNYW5pcHVsYXRpb25Db25maWd1cmF0aW9uLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24ubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCNTQ5OUIwMjM2MkE3RUMwMERGOEJBNSAvKiBf
V0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUZXh0
TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5QjU0OTlCMTIzNjJBN0VDMDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lv
blJ1bGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVz
aW9uUnVsZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUI1QkVDMjQyNDAwRjRB
OTAwNzBDNkVGIC8qIFdlYk1lZGlhU3RyYXRlZ3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTWVkaWFT
dHJhdGVneS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjVCRUMyNTI0MDBGNEE5
MDA3MEM2RUYgLyogV2ViTWVkaWFTdHJhdGVneS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJN
ZWRpYVN0cmF0ZWd5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUI1QkVDMjgy
NDAxMDE1ODAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOUI1QkVDMjkyNDAxMDE1ODAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjVCRUMyRTI0MDEwMThD
MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Lm1lc3NhZ2VzLmluICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOUI1QkVDMzAyNDAxMDIyMjAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvQnVz
RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb0J1c0RhdGEuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOUJDNTlENkMxRUZDQ0NCNjAwMUU4RDA5IC8qIENhbGxiYWNrSUQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FsbGJhY2tJRC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5QkM1OUQ2RDFFRkNEQzZEMDAxRThEMDkgLyogT3B0aW9u
YWxDYWxsYmFja0lELmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9wdGlvbmFs
Q2FsbGJhY2tJRC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5RjU0Rjg4RTE2NDg4
RTg3MDA3REY4MUEgLyogQXV4aWxpYXJ5UHJvY2Vzc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEF1eGlsaWFyeVByb2Nlc3NNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC01Mjg4LDYgKzUzMDUsMTAgQEAKIAkJCQkwNzkyMzEzMjIzOUIz
QjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggKi8sCiAJCQkJMDdCMUQw
NEIyM0QzOEZDRTAwMzk5QTZFIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5p
biAqLywKIAkJCQkwNzkyMzE0RTIzOUQ1RjUzMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlSWRlbnRpZmllci5oICovLAorCQkJCTlCNUJFQzMwMjQwMTAyMjIwMDcwQzZFRiAvKiBS
ZW1vdGVBdWRpb0J1c0RhdGEuaCAqLywKKwkJCQk5QjVCRUMyOTI0MDEwMTU4MDA3MEM2RUYgLyog
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcCAqLywKKwkJCQk5QjVCRUMyODI0MDEwMTU4
MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmggKi8sCisJCQkJOUI1QkVD
MkUyNDAxMDE4QzAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5tZXNzYWdl
cy5pbiAqLywKIAkJCQkwN0I5M0ZGNTIzQUYwQ0I4MDAzNkY4RUEgLyogUmVtb3RlTWVkaWFQbGF5
ZXJDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJMDc5MjMxMzAyMzlCM0IwQzAwOTU5OEUyIC8qIFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgKi8sCiAJCQkJMDc5MjMxMzQyMzlCM0IwQzAwOTU5
OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oICovLApAQCAtNTMwMyw2ICs1MzI0LDgg
QEAKIAkJCQkxREZERDBFMjIzRjYxMEYwMDBFOUI0OTAgLyogVmlkZW9MYXllclJlbW90ZS5oICov
LAogCQkJCTA3MUJDNTgzMjNDQzJCRDUwMDY4MEQ3QyAvKiBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90
ZS5jcHAgKi8sCiAJCQkJMDcxQkM1ODIyM0NDMkJEMzAwNjgwRDdDIC8qIFZpZGVvVHJhY2tQcml2
YXRlUmVtb3RlLmggKi8sCisJCQkJOUI1QkVDMjUyNDAwRjRBOTAwNzBDNkVGIC8qIFdlYk1lZGlh
U3RyYXRlZ3kuY3BwICovLAorCQkJCTlCNUJFQzI0MjQwMEY0QTkwMDcwQzZFRiAvKiBXZWJNZWRp
YVN0cmF0ZWd5LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IG1lZGlhOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTUzMTEsNiArNTMzNCw5IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAogCQkJCTFEMEVDRUE5MjNGQzg0QkIwMEQxNzJGNiAvKiBjb2NvYSAqLywK
KwkJCQk5QjEyMjlDQzIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXIuY3BwICovLAorCQkJCTlCMTIyOUNCMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlci5oICovLAorCQkJCTlCMTIyOUNGMjNGRjI4MTQwMDhDQTc1MSAv
KiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCQkwNzFC
QzU3RTIzQ0E1REIxMDA2ODBEN0MgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcCAqLywKIAkJ
CQkwNzFCQzU3RjIzQ0E1REIxMDA2ODBEN0MgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5LmggKi8s
CiAJCQkJMDcyNUVGQUQyMzlCMDI0NTAwQTUzOEE5IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5LmNwcCAqLywKQEAgLTU3NzEsNiArNTc5Nyw3IEBACiAJCQkJRTE4QzkyRjMxMkRCOUU3
MTAwQ0YyQUVCIC8qIFByaW50SW5mby5jcHAgKi8sCiAJCQkJRTFDQzFCOEUxMkQ3RUFERjAwNjI1
ODM4IC8qIFByaW50SW5mby5oICovLAogCQkJCTQ2M0ZENDgxMUVCOTRFQUQwMEEyOTgyQyAvKiBQ
cm9jZXNzVGVybWluYXRpb25SZWFzb24uaCAqLywKKwkJCQk5QjEyMjlEMDIzRkYyQTVFMDA4Q0E3
NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaCAqLywKIAkJCQlGNkEwQzEz
RjEzMjgxRTZFMDA3MDQzMEYgLyogUmVzb3VyY2VDYWNoZXNUb0NsZWFyLmggKi8sCiAJCQkJNUNC
N0FGRTYyM0M2ODFCMDAwRTQ5Q0YzIC8qIFJlc291cmNlTG9hZEluZm8uaCAqLywKIAkJCQk0MTA0
ODJDQjFEREQyRkI1MDBGMDA2RDAgLyogUlRDTmV0d29yay5jcHAgKi8sCkBAIC0xMDU5MSw2ICsx
MDYxOCw5IEBACiAJCQkJODMwNDhBRTYxQUNBNDVEQzAwODJDODMyIC8qIFByb2Nlc3NUaHJvdHRs
ZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUExRTY4ODcwMUY2RTJCQUIwMDcwMDZBNiAv
KiBRdWFyYW50aW5lU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0ZEMzE4MjIyQjM1MTVFMDA4
RDBFOEIgLyogUmVkaXJlY3RTT0F1dGhvcml6YXRpb25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywK
KwkJCQk5QjEyMjlEMjIzRkYyQkNDMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklk
ZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTlCMTIyOUNEMjNGRjI1RjIwMDhDQTc1MSAv
KiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUI1
QkVDMkEyNDAxMDE1ODAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMkQ0N0I1NkQxODEwNzE0RTAwM0EzQUVFIC8qIFJlbW90ZUxheWVy
QmFja2luZ1N0b3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRERGNzMxNTE4RTk1MDYwMDA0RjVB
NjYgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQUIxNkFFQTE2NEIzQTg4MDAyOTBENjIgLyogUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5o
IGluIEhlYWRlcnMgKi8sCkBAIC0xMDg0Myw2ICsxMDg3Myw3IEBACiAJCQkJQzk4QzQ4QTYxQjZG
RDRDMzAwMTQ1MTAzIC8qIFdlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQzlDMTgzM0MxQjc0MDI2RDAwNzAzNkE3IC8qIFdlYk1lZGlhU2Vzc2lvbkZvY3Vz
TWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzlDRDQzOTgxQjRCMDAxRDAwMjM5
RTMzIC8qIFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQk5QjVC
RUMyNjI0MDBGNEE5MDA3MEM2RUYgLyogV2ViTWVkaWFTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMkQzRUY0NDMxOTE3NjQ2MzAwMDM0MTg0IC8qIFdlYk1lbW9yeVByZXNzdXJlSGFuZGxl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTA5ODU0RUQxMkJDNEUxODAwMEFEMDgwIC8qIFdlYk1l
bW9yeVNhbXBsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxM0ZGQjkxMjAxNDU5QzYwMDI1OTZF
QSAvKiBXZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0x
MjI4OCw2ICsxMjMxOSw3IEBACiAJCQkJQzE1Q0JCMzcyM0YzN0VDQjAwMzAwQ0M3IC8qIFByZWZl
cmVuY2VPYnNlcnZlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJENTRDMzFCMjEyRjREQTYwMDQ5
QzE3NCAvKiBQcm9jZXNzTGF1bmNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QyODY1RUYy
MjU1NTYyMDAwNjA2QUM3IC8qIFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5tbSBpbiBTb3VyY2Vz
ICovLAorCQkJCTlCMTIyOUNFMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDcyQTFGQTIxMkJGNDZFMDA1MTdB
MjAgLyogUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gaW4gU291cmNlcyAqLywKIAkJCQkw
RkYyNEEyRDE4NzlFNEJDMDAzQUJGMEMgLyogUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREMxOEZCNDIxOEE2RTlF
MDAyNUE4OEQgLyogUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0gaW4gU291cmNlcyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9CdXNE
YXRhLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvQnVz
RGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjE5MWY5N2M5YjExNThkYjQyYjQzMjcxM2ZkNmQ3NzFhMmZjZmZi
ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvQnVzRGF0YS5oCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIkRhdGFSZWZl
cmVuY2UuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVk
ZSAiU2hhcmVkTWVtb3J5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBSZW1vdGVBdWRpb0J1c0RhdGEgeworICAgIHVp
bnQ2NF90IGZyYW1lc1RvUHJvY2VzcyB7IDAgfTsKKyAgICBWZWN0b3I8UmVmPFNoYXJlZE1lbW9y
eT4+IGNoYW5uZWxCdWZmZXJzOworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KKyAg
ICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5j
b2RlciA8PCBmcmFtZXNUb1Byb2Nlc3M7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8
dWludDY0X3Q+KGNoYW5uZWxCdWZmZXJzLnNpemUoKSk7CisgICAgICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgY2hhbm5lbEJ1ZmZlcnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIFNoYXJl
ZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgICAgIGNoYW5uZWxCdWZmZXJzW2ldLT5j
cmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRXcml0ZSk7
CisgICAgICAgICAgICBlbmNvZGVyIDw8IGhhbmRsZTsKKyAgICAgICAgfQorICAgIH0KKworICAg
IHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29k
ZXImIGRlY29kZXIsIFJlbW90ZUF1ZGlvQnVzRGF0YSYgcmVzdWx0KQorICAgIHsKKyAgICAgICAg
dWludDY0X3QgZnJhbWVzVG9Qcm9jZXNzOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGZy
YW1lc1RvUHJvY2VzcykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJlc3Vs
dC5mcmFtZXNUb1Byb2Nlc3MgPSBmcmFtZXNUb1Byb2Nlc3M7CisKKyAgICAgICAgdWludDY0X3Qg
c2l6ZSA9IDA7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZSkpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyAr
K2kpIHsKKyAgICAgICAgICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAg
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFuZGxlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgICAgICBhdXRvIG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRs
ZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkV3JpdGUpOworICAgICAgICAgICAgaWYg
KG1lbW9yeSkKKyAgICAgICAgICAgICAgICByZXN1bHQuY2hhbm5lbEJ1ZmZlcnMuYXBwZW5kKCpt
ZW1vcnkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExNjA5ZTBhNjY1YTYwMjAzNTU5NWIwZjkwMjAxZWM0NTUx
YWM0ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAKQEAgLTAsMCArMSwxMTAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5TWVzc2FnZXMu
aCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb0J1cy5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9EZXN0aW5hdGlvbi5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKwordXNpbmcgQXVkaW9CdXMgPSBXZWJDb3JlOjpBdWRpb0J1czsKK3VzaW5nIEF1ZGlv
RGVzdGluYXRpb24gPSBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uOwordXNpbmcgQXVkaW9JT0Nh
bGxiYWNrID0gV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrOworCitzdGQ6OnVuaXF1ZV9wdHI8QXVk
aW9EZXN0aW5hdGlvbj4gUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpjcmVhdGUoQXVkaW9J
T0NhbGxiYWNrJiBjYWxsYmFjaywKKyAgICBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVu
c2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFu
bmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKK3sKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uUHJveHk+KGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklu
cHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOworfQorCitS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eShB
dWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVu
c2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFu
bmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKKyAgICA6IG1fY2FsbGJhY2soY2FsbGJhY2spCisgICAg
LCBtX3NhbXBsZVJhdGUoc2FtcGxlUmF0ZSkKK3sKKyAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
SWRlbnRpZmllciBkZXN0aW5hdGlvbklEOworCisgICAgYXV0byYgY29ubmVjdGlvbiA9IFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCk7CisgICAgY29u
bmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZFN5bmMoCisgICAgICAgIE1lc3NhZ2VzOjpSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6Q3JlYXRlQXVkaW9EZXN0aW5hdGlvbihpbnB1dERldmlj
ZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBs
ZVJhdGUpLAorICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6
OkNyZWF0ZUF1ZGlvRGVzdGluYXRpb246OlJlcGx5KGRlc3RpbmF0aW9uSUQpLCAwKTsKKyAgICBj
b25uZWN0aW9uLm1lc3NhZ2VSZWNlaXZlck1hcCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGRl
c3RpbmF0aW9uSUQudG9VSW50NjQoKSwgKnRoaXMpOworCisgICAgbV9kZXN0aW5hdGlvbklEID0g
ZGVzdGluYXRpb25JRDsKK30KKworUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Ojp+UmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5KCkKK3sKKyAgICBhdXRvJiBjb25uZWN0aW9uID0gIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCk7CisgICAgY29u
bmVjdGlvbi5tZXNzYWdlUmVjZWl2ZXJNYXAoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBt
X2Rlc3RpbmF0aW9uSUQudG9VSW50NjQoKSk7CisKKyAgICBjb25uZWN0aW9uLmNvbm5lY3Rpb24o
KS5zZW5kV2l0aEFzeW5jUmVwbHkoCisgICAgICAgIE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uTWFuYWdlcjo6RGVsZXRlQXVkaW9EZXN0aW5hdGlvbihtX2Rlc3RpbmF0aW9uSUQpLCBb
XSB7CisgICAgICAgIC8vIENhbid0IHJlbW92ZSB0aGlzIGZyb20gcHJveHlNYXAoKSBoZXJlIGJl
Y2F1c2UgdGhlIG9iamVjdCB3b3VsZCBoYXZlIGJlZW4gYWxyZWFkeSBkZWxldGVkLgorICAgIH0p
OworfQorCit2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RhcnQoKQoreworICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29u
bmVjdGlvbigpLnNlbmRTeW5jKAorICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXI6OlN0YXJ0QXVkaW9EZXN0aW5hdGlvbihtX2Rlc3RpbmF0aW9uSUQpLAorICAg
ICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OlN0YXJ0QXVkaW9E
ZXN0aW5hdGlvbjo6UmVwbHkobV9pc1BsYXlpbmcpLCAwKTsKK30KKwordm9pZCBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHk6OnN0b3AoKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKAorICAg
ICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OlN0b3BBdWRpb0Rl
c3RpbmF0aW9uKG1fZGVzdGluYXRpb25JRCksCisgICAgICAgIE1lc3NhZ2VzOjpSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlcjo6U3RvcEF1ZGlvRGVzdGluYXRpb246OlJlcGx5KG1faXNQbGF5
aW5nKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpyZW5kZXJC
dWZmZXIoY29uc3QgV2ViS2l0OjpSZW1vdGVBdWRpb0J1c0RhdGEmIGF1ZGlvQnVzRGF0YSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VS
VChhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICBBU1NFUlQoYXVkaW9CdXNEYXRh
LmNoYW5uZWxCdWZmZXJzLnNpemUoKSk7CisgICAgYXV0byBhdWRpb0J1cyA9IEF1ZGlvQnVzOjpj
cmVhdGUoYXVkaW9CdXNEYXRhLmNoYW5uZWxCdWZmZXJzLnNpemUoKSwgYXVkaW9CdXNEYXRhLmZy
YW1lc1RvUHJvY2VzcywgZmFsc2UpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhdWRp
b0J1c0RhdGEuY2hhbm5lbEJ1ZmZlcnMuc2l6ZSgpOyArK2kpCisgICAgICAgIGF1ZGlvQnVzLT5z
ZXRDaGFubmVsTWVtb3J5KGksIChmbG9hdCopYXVkaW9CdXNEYXRhLmNoYW5uZWxCdWZmZXJzW2ld
LT5kYXRhKCksIGF1ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3MpOworCisgICAgbV9jYWxsYmFj
ay5yZW5kZXIoMCwgYXVkaW9CdXMuZ2V0KCksIGF1ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3Mp
OworCisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHk6OmRpZENoYW5nZUlzUGxheWluZyhib29sIGlzUGxheWluZykKK3sKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTQyMDZmZTE4ZmJmMzBjZWMxNzkxOWZkZmFiMjdhODhiMzY0ZDhl
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmgKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAi
Q29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvQnVzRGF0YS5oIgorI2luY2x1ZGUg
IlJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vz
c1N1cHBsZW1lbnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24uaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0F1ZGlvSU9DYWxsYmFjay5oPgorCisjaWYgUExBVEZPUk0oQ09DT0Ep
CisjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KKyNlbmRpZgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IDogcHVibGljIFdl
YkNvcmU6OkF1ZGlvRGVzdGluYXRpb24sIHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewor
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJl
bW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSk7CitwdWJsaWM6CisgICAgdXNpbmcgQXVkaW9CdXMg
PSBXZWJDb3JlOjpBdWRpb0J1czsKKyAgICB1c2luZyBBdWRpb0lPQ2FsbGJhY2sgPSBXZWJDb3Jl
OjpBdWRpb0lPQ2FsbGJhY2s7CisKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVz
dGluYXRpb24+IGNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2
aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZP
dXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSk7CisKKyAgICBSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHkoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlk
LCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0
Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpOworICAgIH5SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2VzcyhJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikgeyBkaWRSZWNl
aXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQorCisgICAgdm9pZCByZW5kZXJCdWZm
ZXIoY29uc3QgV2ViS2l0OjpSZW1vdGVBdWRpb0J1c0RhdGEmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOworICAgIHZvaWQgZGlkQ2hhbmdlSXNQbGF5aW5nKGJvb2wgaXNQbGF5aW5nKTsK
KworcHJpdmF0ZToKKyAgICAvLyBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uCisgICAgdm9pZCBz
dGFydCgpIG92ZXJyaWRlOworICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworICAgIGJvb2wgaXNQ
bGF5aW5nKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9pc1BsYXlpbmc7IH0KKyAgICBmbG9hdCBzYW1w
bGVSYXRlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zYW1wbGVSYXRlOyB9CisKKyAgICAv
LyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICBBdWRpb0lPQ2FsbGJhY2sm
IG1fY2FsbGJhY2s7CisgICAgZmxvYXQgbV9zYW1wbGVSYXRlOworICAgIFJlbW90ZUF1ZGlvRGVz
dGluYXRpb25JZGVudGlmaWVyIG1fZGVzdGluYXRpb25JRDsKKyAgICBib29sIG1faXNQbGF5aW5n
IHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzBhYzYxNDkwNjkxNzNmNDk4MDVjNzhiNTUyMzI0NGFkYTRhNWYyMQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzMgQEAKKyMgQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
IyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2Vz
IC0+IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSBOb3RSZWZDb3VudGVkIHsKKworICAgIFJl
bmRlckJ1ZmZlcihzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVBdWRpb0J1c0RhdGEgZGF0YSkgLT4gKCkg
QXN5bmMKKyAgICBEaWRDaGFuZ2VJc1BsYXlpbmcoYm9vbCBpc1BsYXlpbmcpCisKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRU
cmFja1ByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcAppbmRleCA5ZmFiZWY4NGEwM2ZhODdlMDYzYmFl
Mzg1MjYzNDAyN2E3NGVhNDY0Li5iODA3YWZjMDA1ZjgwMmJjZDEwOWZiNTVjNWRkYTc5MjBhMWZi
OGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRU
cmFja1ByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTEzOSwyMSArMTM5LDIxIEBAIHZv
aWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6YWRkRGF0YUN1ZVdpdGhUeXBlKE1lZGlhVGltZSYm
IHN0YXJ0LCBNZWRpYVRpbWUmJiBlCiB7CiAgICAgQVNTRVJUKGNsaWVudCgpKTsKICAgICBpZiAo
YXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCi0gICAgICAgIGNsaWVudC0+YWRkRGF0YUN1
ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3Vl
OjpjcmVhdGUoV1RGTW92ZShkYXRhVmFsdWUpKSwgdHlwZSk7CisgICAgICAgIGNsaWVudC0+YWRk
RGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBXZWJDb3JlOjpTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShkYXRhVmFsdWUpKSwgdHlwZSk7CiB9CiAK
IHZvaWQgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlRGF0YUN1ZShNZWRpYVRpbWUmJiBz
dGFydCwgTWVkaWFUaW1lJiYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiBk
YXRhVmFsdWUpCiB7CiAgICAgQVNTRVJUKGNsaWVudCgpKTsKICAgICBpZiAoYXV0byogY2xpZW50
ID0gdGhpcy0+Y2xpZW50KCkpCi0gICAgICAgIGNsaWVudC0+dXBkYXRlRGF0YUN1ZShXVEZNb3Zl
KHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUo
V1RGTW92ZShkYXRhVmFsdWUpKSk7CisgICAgICAgIGNsaWVudC0+dXBkYXRlRGF0YUN1ZShXVEZN
b3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlOjpjcmVhdGUoV1RGTW92ZShkYXRhVmFsdWUpKSk7CiB9CiAKIHZvaWQgVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZTo6cmVtb3ZlRGF0YUN1ZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYg
ZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUmJiBkYXRhVmFsdWUpCiB7CiAgICAg
QVNTRVJUKGNsaWVudCgpKTsKICAgICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkp
Ci0gICAgICAgIGNsaWVudC0+cmVtb3ZlRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShl
bmQpLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92ZShkYXRhVmFsdWUp
KSk7CisgICAgICAgIGNsaWVudC0+cmVtb3ZlRGF0YUN1ZShXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92
ZShlbmQpLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlOjpjcmVhdGUoV1RGTW92
ZShkYXRhVmFsdWUpKSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuaAppbmRleCA0
ZTFiOTk3MzM0Y2Y3M2Y1YjhiODY4OGI5MDdlMmE3NmI1M2ZmMDQ5Li5hMDdkZDk5NGNjZDgwOWU3
NTNlY2UyOGYzYjU2MmFkMjNlOWNiYTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuaApAQCAtMjgs
NiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCisjaW5jbHVkZSAiRGF0YVJl
ZmVyZW5jZS5oIgogI2luY2x1ZGUgIlRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
LmgiCiAjaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oPgpAQCAtNDgsNiArNDksMTAgQEAgY2xh
c3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOwogY2xhc3MgVGV4dFRyYWNrUHJpdmF0ZVJlbW90
ZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlIHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShUZXh0VHJhY2tQcml2YXRlUmVtb3RlKQogcHVibGljOgorICAg
IHVzaW5nIEdlbmVyaWNDdWVEYXRhID0gV2ViQ29yZTo6R2VuZXJpY0N1ZURhdGE7CisgICAgdXNp
bmcgSVNPV2ViVlRUQ3VlID0gV2ViQ29yZTo6SVNPV2ViVlRUQ3VlOworICAgIHVzaW5nIFNlcmlh
bGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZSA9IFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWVWYWx1ZTsKKwogICAgIHN0YXRpYyBSZWY8VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZT4gY3Jl
YXRlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSYgcGxheWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
JiYgY29uZmlndXJhdGlvbikKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRl
eHRUcmFja1ByaXZhdGVSZW1vdGUocGxheWVyLCBpZGVuZGlmaWVyLCBXVEZNb3ZlKGNvbmZpZ3Vy
YXRpb24pKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1dlYk1lZGlhU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9XZWJNZWRpYVN0cmF0ZWd5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOTEyYjQwMTRhMTEwMWIzZjIxNDA0
NzgyMDFiNTNiMWM3M2ExNDQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcApAQCAtMCwwICsxLDUwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYk1lZGlhU3RyYXRl
Z3kuaCIKKworI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiUmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb0Rlc3Rp
bmF0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb0lPQ2FsbGJhY2suaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK1dlYk1lZGlhU3RyYXRlZ3k6On5XZWJNZWRpYVN0cmF0ZWd5KCkgPSBk
ZWZhdWx0OworCisjaWYgRU5BQkxFKFdFQl9BVURJTykKK3N0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpBdWRpb0Rlc3RpbmF0aW9uPiBXZWJNZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0
aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5w
dXREZXZpY2VJZCwKKyAgICB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVk
IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpCit7CisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorICAgIGlmIChtX3VzZUdQVVByb2Nlc3MpCisgICAgICAgIHJldHVybiBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OmNyZWF0ZShjYWxsYmFjaywgaW5wdXREZXZpY2VJ
ZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVS
YXRlKTsKKyNlbmRpZgorICAgIHJldHVybiBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uOjpjcmVh
dGUoY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVy
T2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1dlYk1lZGlhU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
V2ViTWVkaWFTdHJhdGVneS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxOWE1M2FmZmM4YWJlNDMyMWRlZWRhZTUx
YjgyMjNiYTEyYjcxM2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaApAQCAtMCwwICsxLDU0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU3RyYXRlZ3kuaD4K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYk1lZGlhU3RyYXRlZ3kgOiBwdWJsaWMg
V2ViQ29yZTo6TWVkaWFTdHJhdGVneSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V2ViTWVkaWFT
dHJhdGVneSgpOworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIHZvaWQgc2V0VXNlR1BV
UHJvY2Vzcyhib29sIHVzZUdQVVByb2Nlc3MpIHsgbV91c2VHUFVQcm9jZXNzID0gdXNlR1BVUHJv
Y2VzczsgfQorI2VuZGlmCisKK3ByaXZhdGU6CisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0
aW5hdGlvbihXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2smLAorICAgICAgICBjb25zdCBTdHJpbmcm
IGlucHV0RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQg
bnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkgb3ZlcnJpZGU7CisjZW5k
aWYKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBib29sIG1fdXNlR1BVUHJvY2VzcyB7
IGZhbHNlIH07CisjZW5kaWYKKworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1Nh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKaW5kZXggNjI5Y2YzN2FkMGUwYjFmY2U4ZjY0ZDk0
Y2U2OTQyMjg2MWRjZDc0Yi4uMWY0Zjc0MDE3NzcwMzYwOTdkMDM0NGMxMTljZDQ1ZWNkYjIzMzE4
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCkBAIC0yOCwxMiArMjgsMTUgQEAK
IAogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShW
SURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAorI2luY2x1ZGUgIkdQVVByb2Nl
c3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTGF5ZXJIb3N0aW5nQ29udGV4dC5oIgogI2luY2x1
ZGUgIlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXJNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXJNZXNzYWdlc1JlcGxp
ZXMuaCIKICNpbmNsdWRlICJSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaCIKICNpbmNsdWRl
ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyLmNwcAppbmRleCAwNzI5NzVhYzJjOTRmOGQwMDIyMWU0NTk0NGE2OTYxNzdiMWU0
YjFlLi5mNDg2MzMxMWNkMTc1YTYwMGZiNmE3NDkyNGE3ZmMzZmNkYzY3YTc3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcApAQCAtMjYsNiArMjYsOSBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1h
bmFnZXIuaCIKIAorI2luY2x1ZGUgIkRlY29kZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ludFNp
emUuaD4KKwogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVO
QUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogbmFtZXNwYWNlIFdl
YktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDg4YzY5NWY1ZGI2
NzA3ZjFiYWUwYzRkNjgyZDk0ZjUzMDI0MGRmZjIuLjRhYTcxMGEyNTljNmY2YmNlNDU2YmMzYWY1
Mjc2NzVlMjZhMDFmMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC0z
OSwxNiArMzksMTkgQEAKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1l
TG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViTG9hZGVyU3RyYXRlZ3kuaCIKKyNpbmNsdWRl
ICJXZWJNZWRpYVN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgIldl
YlBhc3RlYm9hcmRPdmVycmlkZXMuaCIKICNpbmNsdWRlICJXZWJQYXN0ZWJvYXJkUHJveHlNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJv
eHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9EZXN0aW5hdGlvbi5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQ29sb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJh
bWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xvYWRlclN0cmF0ZWd5Lmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9NZWRpYVN0cmF0ZWd5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNl
c3Npb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bh
Z2VHcm91cC5oPgpAQCAtNzMsNiArNzYsOCBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAorY2xhc3MgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbjsKKwogdm9p
ZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxpemUoKQogewogICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM+IHBsYXRmb3JtU3RyYXRlZ2llczsKQEAg
LTkzLDYgKzk4LDExIEBAIFBhc3RlYm9hcmRTdHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVnaWVz
OjpjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKQogICAgIHJldHVybiB0aGlzOwogfQogCitNZWRp
YVN0cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3koKQor
eworICAgIHJldHVybiBuZXcgV2ViTWVkaWFTdHJhdGVneTsKK30KKwogQmxvYlJlZ2lzdHJ5KiBX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUJsb2JSZWdpc3RyeSgpCiB7CiAgICAgcmV0dXJu
IG5ldyBCbG9iUmVnaXN0cnlQcm94eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAppbmRl
eCA2YzBiNTU1M2M0MmVhZjUxYTM3OTk5YTRmZGNlODE0NTY4NDZiNDM3Li40YTU1NTRiOGQzNzk2
OWM2M2ZmZTAwYmUyYjExNTU5Nzc1NTg0MTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5oCkBAIC00Miw2ICs0Miw3IEBAIHByaXZhdGU6CiAgICAgLy8gV2ViQ29yZTo6UGxhdGZvcm1T
dHJhdGVnaWVzCiAgICAgV2ViQ29yZTo6TG9hZGVyU3RyYXRlZ3kqIGNyZWF0ZUxvYWRlclN0cmF0
ZWd5KCkgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5KiBjcmVhdGVQ
YXN0ZWJvYXJkU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpNZWRpYVN0cmF0ZWd5
KiBjcmVhdGVNZWRpYVN0cmF0ZWd5KCkgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6QmxvYlJlZ2lz
dHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSBvdmVycmlkZTsKIAogICAgIC8vIFdlYkNvcmU6OlBh
c3RlYm9hcmRTdHJhdGVneQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAppbmRleCBkOTAzY2U1ZTk0Mzk1ZTYxZWQ5MWJjMGIxMmMzYzNhMDEyOWVmYjdmLi4x
NGUxOTUwOTg5YTdkZTI2OWU1NGYyM2NkMTY1YWFiZmNjNzQxMTQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTAxLDYgKzEwMSw3IEBACiAj
aW5jbHVkZSAiV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkxvYWRlclN0
cmF0ZWd5LmgiCiAjaW5jbHVkZSAiV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oIgorI2luY2x1
ZGUgIldlYk1lZGlhU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25DbGllbnQu
aCIKICNpbmNsdWRlICJXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIldl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCIKQEAgLTE5OSw2ICsyMDAsNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvUGluZ0xvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU3RyYXRlZ2llcy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUGx1Z2luRG9jdW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BvaW50ZXJDYXB0dXJl
Q29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJpbnRDb250ZXh0Lmg+CkBAIC0zNjk2
LDYgKzM2OTgsOCBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlBy
ZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogICAgICAgICBtX2RyYXdpbmdBcmVhLT51cGRhdGVQcmVm
ZXJlbmNlcyhzdG9yZSk7CiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgLy8gRklYTUU6
IHVzZUdQVVByb2Nlc3NGb3JNZWRpYSBzaG91bGQgYmUgYSBSdW50aW1lRW5hYmxlZEZlYXR1cmUg
c2luY2UgaXQncyBnbG9iYWwuCisgICAgc3RhdGljX2Nhc3Q8V2ViTWVkaWFTdHJhdGVneSY+KHBs
YXRmb3JtU3RyYXRlZ2llcygpLT5tZWRpYVN0cmF0ZWd5KCkpLnNldFVzZUdQVVByb2Nlc3Moc2V0
dGluZ3MudXNlR1BVUHJvY2Vzc0Zvck1lZGlhKCkpOwogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLnN1cHBsZW1lbnQ8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyPigpLT51cGRhdGVQcmVmZXJl
bmNlcyhzZXR0aW5ncyk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKaW5k
ZXggNGMzNjFhYTc5ZDJhMzc1MDI3NDFkMmI4NmQxMDVmY2VhMDkwNDBiZS4uMWYxZDYyY2MwNjY3
OGFlNzFkOWNhM2QyY2ViZmEzODM2MjJjZTJjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmgKQEAgLTQzLDYgKzQzLDcgQEAgcHJpdmF0ZToKICAgICAvLyBXZWJDb3JlOjpQbGF0Zm9ybVN0
cmF0ZWdpZXMKICAgICBXZWJDb3JlOjpMb2FkZXJTdHJhdGVneSogY3JlYXRlTG9hZGVyU3RyYXRl
Z3koKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpQYXN0ZWJvYXJkU3RyYXRlZ3kqIGNyZWF0ZVBh
c3RlYm9hcmRTdHJhdGVneSgpIG92ZXJyaWRlOworICAgIFdlYkNvcmU6Ok1lZGlhU3RyYXRlZ3kq
IGNyZWF0ZU1lZGlhU3RyYXRlZ3koKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpCbG9iUmVnaXN0
cnkqIGNyZWF0ZUJsb2JSZWdpc3RyeSgpIG92ZXJyaWRlOwogCiAgICAgLy8gV2ViQ29yZTo6UGFz
dGVib2FyZFN0cmF0ZWd5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KaW5kZXggMTY1OWU2
ZDBkZDdkZTcyM2Y2ZGQ5NjU0YjZmMGI4YzE2OTI5MTE5NC4uNjBmMzQ1MTc5ZjQ5MTRiNzc5YTBh
MmI3YWE3NWVmNDNkYjZlMWYzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQpAQCAt
MjgsOSArMjgsMTEgQEAKICNpbXBvcnQgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNp
bXBvcnQgIldlYlBsdWdpblBhY2thZ2UuaCIKICNpbXBvcnQgIldlYlJlc291cmNlTG9hZFNjaGVk
dWxlci5oIgorI2ltcG9ydCA8V2ViQ29yZS9BdWRpb0Rlc3RpbmF0aW9uLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0Jsb2JSZWdpc3RyeUltcGwuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ29sb3IuaD4KICNp
bXBvcnQgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTWVkaWFTdHJhdGVneS5o
PgogI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbXBvcnQgPFdl
YkNvcmUvUGFzdGVib2FyZEl0ZW1JbmZvLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtUGFz
dGVib2FyZC5oPgpAQCAtNjIsNiArNjQsMjIgQEAgUGFzdGVib2FyZFN0cmF0ZWd5KiBXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVneSgpCiAgICAgcmV0dXJuIHRo
aXM7CiB9CiAKK2NsYXNzIFdlYk1lZGlhU3RyYXRlZ3kgZmluYWwgOiBwdWJsaWMgTWVkaWFTdHJh
dGVneSB7Citwcml2YXRlOgorI2lmIEVOQUJMRShXRUJfQVVESU8pCisgICAgc3RkOjp1bmlxdWVf
cHRyPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oQXVkaW9JT0NhbGxi
YWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAorICAgICAgICB1bnNp
Z25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5l
bHMsIGZsb2F0IHNhbXBsZVJhdGUpIG92ZXJyaWRlCisgICAgeworICAgICAgICByZXR1cm4gQXVk
aW9EZXN0aW5hdGlvbjo6Y3JlYXRlKGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklu
cHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOworICAgIH0K
KyNlbmRpZgorfTsKKworTWVkaWFTdHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVh
dGVNZWRpYVN0cmF0ZWd5KCkKK3sKKyAgICByZXR1cm4gbmV3IFdlYk1lZGlhU3RyYXRlZ3k7Cit9
CisKIGNsYXNzIFdlYkJsb2JSZWdpc3RyeSBmaW5hbCA6IHB1YmxpYyBCbG9iUmVnaXN0cnkgewog
cHJpdmF0ZToKICAgICB2b2lkIHJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIFJl
ZjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYgcmVmZXJlbmNlLCBjb25zdCBTdHJpbmcmIGNvbnRl
bnRUeXBlKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnJlZ2lzdGVyRmlsZUJsb2JVUkwodXJsLCBX
VEZNb3ZlKHJlZmVyZW5jZSksIGNvbnRlbnRUeXBlKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5jcHAKaW5kZXggY2NlMGM5NGIyYzkxODFiMGQ0MWNiMzlkMWMyMjZiZjY3OThjZjYyZi4u
OWIyNTdmNGYyNTUyZWZmMDJlZDQ3YmNlODUzN2RkNDQ3MGE0MzE3ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC0yNyw5ICsyNywxMSBAQAogCiAjaW5jbHVkZSAiV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFNjaGVkdWxl
ci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9EZXN0aW5hdGlvbi5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvQmxvYlJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9CbG9iUmVnaXN0cnlJbXBs
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
TWVkaWFTdHJhdGVneS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlR3Jv
dXAuaD4KQEAgLTYwLDYgKzYyLDIyIEBAIFBhc3RlYm9hcmRTdHJhdGVneSogV2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjpjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKQogICAgIHJldHVybiBudWxscHRy
OwogfQogCitjbGFzcyBXZWJNZWRpYVN0cmF0ZWd5IGZpbmFsIDogcHVibGljIE1lZGlhU3RyYXRl
Z3kgeworcHJpdmF0ZToKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIHN0ZDo6dW5pcXVlX3B0
cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKEF1ZGlvSU9DYWxsYmFj
ayYgY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKKyAgICAgICAgdW5zaWdu
ZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxz
LCBmbG9hdCBzYW1wbGVSYXRlKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgcmV0dXJuIEF1ZGlv
RGVzdGluYXRpb246OmNyZWF0ZShjYWxsYmFjaywgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1
dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKKyAgICB9Cisj
ZW5kaWYKK307CisKK01lZGlhU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRl
TWVkaWFTdHJhdGVneSgpCit7CisgICAgcmV0dXJuIG5ldyBXZWJNZWRpYVN0cmF0ZWd5OworfQor
CiBjbGFzcyBXZWJCbG9iUmVnaXN0cnkgZmluYWwgOiBwdWJsaWMgQmxvYlJlZ2lzdHJ5IHsKIHBy
aXZhdGU6CiAgICAgdm9pZCByZWdpc3RlckZpbGVCbG9iVVJMKGNvbnN0IFVSTCYgdXJsLCBSZWY8
QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmIHJlZmVyZW5jZSwgY29uc3QgU3RyaW5nJiBjb250ZW50
VHlwZSkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckZpbGVCbG9iVVJMKHVybCwgV1RG
TW92ZShyZWZlcmVuY2UpLCBjb250ZW50VHlwZSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmgKaW5kZXggOTdhYTY5NzUyNDMyYWZhNTViMTU0YjE4ODIyZjdkN2QxNjUzYWVhNS4uOWNlNjEw
MjZhMjcxNGEwNjgxYjU1ZWQ5NTcwNTIzNTMwOTg3NTZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmgKQEAgLTM4LDcgKzM4LDggQEAgcHJpdmF0ZToKICAgICBXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMoKTsKIAogICAgIC8vIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcwotICAgIHZpcnR1
YWwgV2ViQ29yZTo6TG9hZGVyU3RyYXRlZ3kqIGNyZWF0ZUxvYWRlclN0cmF0ZWd5KCk7Ci0gICAg
dmlydHVhbCBXZWJDb3JlOjpQYXN0ZWJvYXJkU3RyYXRlZ3kqIGNyZWF0ZVBhc3RlYm9hcmRTdHJh
dGVneSgpOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVn
aXN0cnkoKTsKKyAgICBXZWJDb3JlOjpMb2FkZXJTdHJhdGVneSogY3JlYXRlTG9hZGVyU3RyYXRl
Z3koKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpQYXN0ZWJvYXJkU3RyYXRlZ3kqIGNyZWF0ZVBh
c3RlYm9hcmRTdHJhdGVneSgpIG92ZXJyaWRlOworICAgIFdlYkNvcmU6Ok1lZGlhU3RyYXRlZ3kq
IGNyZWF0ZU1lZGlhU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpCbG9iUmVnaXN0
cnkqIGNyZWF0ZUJsb2JSZWdpc3RyeSgpIG92ZXJyaWRlOwogfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>