<?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>230714</bug_id>
          
          <creation_ts>2021-09-23 12:55:05 -0700</creation_ts>
          <short_desc>[WebKit2] Refactor some IPC argument encoder logic to work with StreamConnectionEncoder</short_desc>
          <delta_ts>2021-10-07 13:02:45 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=230743</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=230776</see_also>
          <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>230860</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>achristensen</cc>
    
    <cc>aperez</cc>
    
    <cc>cdumez</cc>
    
    <cc>clord</cc>
    
    <cc>ehutchison</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>lmoura</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>pnormand</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1796635</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-09-23 12:55:05 -0700</bug_when>
    <thetext>Work towards using StreamConnectionEncoder for concurrent display list item processing between web/GPU processes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796641</commentid>
    <comment_count>1</comment_count>
      <attachid>439086</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-09-23 13:26:22 -0700</bug_when>
    <thetext>Created attachment 439086
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796653</commentid>
    <comment_count>2</comment_count>
      <attachid>439089</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-09-23 14:00:09 -0700</bug_when>
    <thetext>Created attachment 439089
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796700</commentid>
    <comment_count>3</comment_count>
      <attachid>439099</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-09-23 15:39:42 -0700</bug_when>
    <thetext>Created attachment 439099
Try to fix WPE build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796716</commentid>
    <comment_count>4</comment_count>
      <attachid>439104</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-09-23 16:25:50 -0700</bug_when>
    <thetext>Created attachment 439104
Try to fix WPE build again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796736</commentid>
    <comment_count>5</comment_count>
      <attachid>439104</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-09-23 17:28:27 -0700</bug_when>
    <thetext>Comment on attachment 439104
Try to fix WPE build again

Nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796754</commentid>
    <comment_count>6</comment_count>
      <attachid>439104</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-09-23 19:40:20 -0700</bug_when>
    <thetext>Comment on attachment 439104
Try to fix WPE build again

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796756</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-23 20:02:21 -0700</bug_when>
    <thetext>Committed r283024 (242085@main): &lt;https://commits.webkit.org/242085@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 439104.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796757</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-23 20:03:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/83477591&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796822</commentid>
    <comment_count>9</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-24 01:46:31 -0700</bug_when>
    <thetext>What is &quot;POD&quot; is a fuzzy abstraction of &quot;trivially copyable&quot;, so it&apos;s sometimes thought wrong.
I think originally the intention of the IPC encoding was that encoder wouldn&apos;t read padding bits that would alert ASAN/MSAN.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796827</commentid>
    <comment_count>10</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-24 01:53:59 -0700</bug_when>
    <thetext>David, do you remember if there&apos;s a problem with IPC encoding and memcpy reading arbitrary types? E.g. the types might have fields padded and the padding would be uninitialised and some sanitisers would report read of uninitialised memory?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796899</commentid>
    <comment_count>11</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-09-24 08:58:58 -0700</bug_when>
    <thetext>(In reply to Kimmo Kinnunen from comment #10)
&gt; David, do you remember if there&apos;s a problem with IPC encoding and memcpy
&gt; reading arbitrary types? E.g. the types might have fields padded and the
&gt; padding would be uninitialised and some sanitisers would report read of
&gt; uninitialised memory?

Note that we were already using SimpleArgumentCoder for most of the WebCore types that I modified here (just hard-coded to use `IPC::Encoder`) — the only new ones are some CG structs (namely CGRect, CGPoint, CGSize, CGAffineTransform), which are only comprised of CGFloats that *should* be safe to memcpy.

That said, it does look like a couple of webanimation tests are failing.. I&apos;m looking into these to see if they&apos;re actually related to the changes here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796900</commentid>
    <comment_count>12</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-24 09:00:37 -0700</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #11)
&gt; That said, it does look like a couple of webanimation tests are failing..
&gt; I&apos;m looking into these to see if they&apos;re actually related to the changes
&gt; here.

Only Length fails is_trivially_constructible, so everything this patch adds should be memcpyable</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796951</commentid>
    <comment_count>13</comment_count>
      <attachid>439163</attachid>
    <who name="Eric Hutchison">ehutchison</who>
    <bug_when>2021-09-24 10:53:30 -0700</bug_when>
    <thetext>Created attachment 439163
Related Crash Log</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796963</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Hutchison">ehutchison</who>
    <bug_when>2021-09-24 11:02:02 -0700</bug_when>
    <thetext>Reverted r283024 for reason:

Causes slowdown and crash on EWS

Committed r283048 (242108@main): &lt;https://commits.webkit.org/242108@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796998</commentid>
    <comment_count>15</comment_count>
      <attachid>439104</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-09-24 12:14:33 -0700</bug_when>
    <thetext>Comment on attachment 439104
Try to fix WPE build again

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

&gt; Source/WebKit/Shared/WebCoreArgumentCoders.h:241
&gt; +DEFINE_SIMPLE_ARGUMENT_CODER(WebCore::TransformationMatrix)

Using SimpleArgumentCoder for WebCore::TransformationMatrix seems to be the (immediate) cause of the crashes, though it&apos;s not obvious to me why.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797062</commentid>
    <comment_count>16</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-09-24 15:59:22 -0700</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #15)
&gt; Comment on attachment 439104 [details]
&gt; Try to fix WPE build again
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=439104&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/Shared/WebCoreArgumentCoders.h:241
&gt; &gt; +DEFINE_SIMPLE_ARGUMENT_CODER(WebCore::TransformationMatrix)
&gt; 
&gt; Using SimpleArgumentCoder for WebCore::TransformationMatrix seems to be the
&gt; (immediate) cause of the crashes, though it&apos;s not obvious to me why.

Alright, I think I&apos;ve figured it out.

Some logging demonstrates that we sometimes fail to properly decode transformation matrices, due to alignment adjustment logic in IPC::Encoder and IPC::Decoder being inconsistent:

```
Web process:

  Encoding TransformationMatrix #214
    [1.00 0.00 0.00 0.00]
    [0.00 1.00 0.00 0.00]
    [0.00 0.00 1.00 0.00]
    [50.00 0.00 0.00 1.00]
  Rounding up size: 56 to 64 (for alignment: 16)

UI process:

  Decoding TransformationMatrix #214
  Rounding up offset: 0x1373f8500 to 0x1373f8500 (for alignment: 16)
      got
    [0.00 1.00 0.00 0.00]
    [0.00 0.00 1.00 0.00]
    [0.00 0.00 0.00 1.00]
    [0.00 50.00 0.00 0.00]
```

On the Encoder side, we round the buffer size (in this particular case, 56) up to 64 to match the 16-byte align of TransformationMatrix:

```
uint8_t* Encoder::grow(size_t alignment, size_t size)
{
    size_t alignedSize = roundUpToAlignment(m_bufferSize, alignment);
```

..on the Decoder side, however, we don&apos;t end up rounding the read offset at all, since we round the _buffer pointer address_ up to the alignment of 16 rather than the offset relative to the start of the buffer.

```
bool Decoder::alignBufferPosition(size_t alignment, size_t size)
{
    const uint8_t* alignedPosition = roundUpToAlignment(m_bufferPos, alignment);
    if (UNLIKELY(!alignedBufferIsLargeEnoughToContain(alignedPosition, m_buffer, m_bufferEnd, size))) {

```

This diff &quot;fixes&quot; this discrepancy by making Decoder-side rounding logic consistent with Encoder-side rounding logic:

```
diff --git a/Source/WebKit/Platform/IPC/Decoder.cpp b/Source/WebKit/Platform/IPC/Decoder.cpp
index 743cb481561b..45a0e7d43cb5 100644
--- a/Source/WebKit/Platform/IPC/Decoder.cpp
+++ b/Source/WebKit/Platform/IPC/Decoder.cpp
@@ -179,6 +179,11 @@ static inline const uint8_t* roundUpToAlignment(const uint8_t* ptr, size_t align
     return reinterpret_cast&lt;uint8_t*&gt;((reinterpret_cast&lt;uintptr_t&gt;(ptr) + alignmentMask) &amp; ~alignmentMask);
 }

+static inline size_t roundUpToAlignment(size_t value, size_t alignment)
+{
+    return ((value + alignment - 1) / alignment) * alignment;
+}
+
 static inline bool alignedBufferIsLargeEnoughToContain(const uint8_t* alignedPosition, const uint8_t* bufferStart, const uint8_t* bufferEnd, size_t size)
 {
     // When size == 0 for the last argument and it&apos;s a variable length byte array,
@@ -190,7 +195,9 @@ static inline bool alignedBufferIsLargeEnoughToContain(const uint8_t* alignedPos

 bool Decoder::alignBufferPosition(size_t alignment, size_t size)
 {
-    const uint8_t* alignedPosition = roundUpToAlignment(m_bufferPos, alignment);
+    size_t currentSize = m_bufferPos - m_buffer;
+    auto alignedSize = roundUpToAlignment(currentSize, alignment);
+    auto* alignedPosition = m_buffer + alignedSize;
     if (UNLIKELY(!alignedBufferIsLargeEnoughToContain(alignedPosition, m_buffer, m_bufferEnd, size))) {
         // We&apos;ve walked off the end of this buffer.
         markInvalid();
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797065</commentid>
    <comment_count>17</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-09-24 16:04:21 -0700</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #16)
&gt; (In reply to Wenson Hsieh from comment #15)
&gt; &gt; Comment on attachment 439104 [details]
&gt; &gt; Try to fix WPE build again
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=439104&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/Shared/WebCoreArgumentCoders.h:241
&gt; &gt; &gt; +DEFINE_SIMPLE_ARGUMENT_CODER(WebCore::TransformationMatrix)
&gt; &gt; 
&gt; &gt; Using SimpleArgumentCoder for WebCore::TransformationMatrix seems to be the
&gt; &gt; (immediate) cause of the crashes, though it&apos;s not obvious to me why.
&gt; 
&gt; Alright, I think I&apos;ve figured it out.
&gt; 
&gt; Some logging demonstrates that we sometimes fail to properly decode
&gt; transformation matrices, due to alignment adjustment logic in IPC::Encoder
&gt; and IPC::Decoder being inconsistent:
&gt; […]

...let&apos;s deal with this separately: filed https://bugs.webkit.org/show_bug.cgi?id=230776</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797069</commentid>
    <comment_count>18</comment_count>
      <attachid>439205</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-09-24 16:16:57 -0700</bug_when>
    <thetext>Created attachment 439205
Take two</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797078</commentid>
    <comment_count>19</comment_count>
      <attachid>439208</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-09-24 16:44:59 -0700</bug_when>
    <thetext>Created attachment 439208
Actual take two</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797103</commentid>
    <comment_count>20</comment_count>
      <attachid>439222</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-09-24 17:46:41 -0700</bug_when>
    <thetext>Created attachment 439222
Try to fix WPE (again)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797112</commentid>
    <comment_count>21</comment_count>
      <attachid>439226</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-09-24 18:42:39 -0700</bug_when>
    <thetext>Created attachment 439226
Try to fix WPE?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797113</commentid>
    <comment_count>22</comment_count>
      <attachid>439227</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-09-24 18:53:14 -0700</bug_when>
    <thetext>Created attachment 439227
Test WPE fix?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797129</commentid>
    <comment_count>23</comment_count>
      <attachid>439235</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-09-24 22:24:27 -0700</bug_when>
    <thetext>Created attachment 439235
Test WPE fix?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797135</commentid>
    <comment_count>24</comment_count>
      <attachid>439238</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-09-24 23:14:15 -0700</bug_when>
    <thetext>Created attachment 439238
Fix WPE build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800376</commentid>
    <comment_count>25</comment_count>
      <attachid>440153</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-04 21:01:43 -0700</bug_when>
    <thetext>Created attachment 440153
Rebase on trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800570</commentid>
    <comment_count>26</comment_count>
      <attachid>440218</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-05 08:41:56 -0700</bug_when>
    <thetext>Created attachment 440218
Try to fix WPE again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800580</commentid>
    <comment_count>27</comment_count>
      <attachid>440219</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-05 09:03:24 -0700</bug_when>
    <thetext>Created attachment 440219
Try to fix WPE again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800649</commentid>
    <comment_count>28</comment_count>
      <attachid>440237</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-05 11:09:42 -0700</bug_when>
    <thetext>Created attachment 440237
Does this build on WPE?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800653</commentid>
    <comment_count>29</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-05 11:13:22 -0700</bug_when>
    <thetext>(Adding a few folks who might be familiar with WPE)

Would anyone happen to know why attempts to templatize the `encode(Encoder&amp;)` function several WebCore structs (e.g. FloatRect, IntSize, and a few others) could cause linker errors on WPE only?

Link to build failure: &lt;https://ews-build.webkit.org/#/builders/8/builds/63759&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800673</commentid>
    <comment_count>30</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-10-05 11:35:58 -0700</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #29)
&gt; Would anyone happen to know why attempts to templatize the
&gt; `encode(Encoder&amp;)` function several WebCore structs (e.g. FloatRect,
&gt; IntSize, and a few others) could cause linker errors on WPE only?

Guess: it&apos;s probably because the code is defining template functions in the C++ source file, which requires special care. If the functions are called from outside the translation unit, they have to be either (a) defined in the header file instead, so they&apos;re guaranteed to be available in the translation unit they are called from, or else (b) explicitly instantiated using &apos;extern template&apos;. This is documented here: https://gcc.gnu.org/onlinedocs/gcc/Template-Instantiation.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800685</commentid>
    <comment_count>31</comment_count>
      <attachid>440242</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-05 11:51:46 -0700</bug_when>
    <thetext>Created attachment 440242
Does *this* build on WPE?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800719</commentid>
    <comment_count>32</comment_count>
      <attachid>440253</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-05 12:56:25 -0700</bug_when>
    <thetext>Created attachment 440253
Does *this* build on WPE?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800723</commentid>
    <comment_count>33</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-05 13:08:57 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #30)
&gt; (In reply to Wenson Hsieh from comment #29)
&gt; &gt; Would anyone happen to know why attempts to templatize the
&gt; &gt; `encode(Encoder&amp;)` function several WebCore structs (e.g. FloatRect,
&gt; &gt; IntSize, and a few others) could cause linker errors on WPE only?
&gt; 
&gt; Guess: it&apos;s probably because the code is defining template functions in the
&gt; C++ source file, which requires special care. If the functions are called
&gt; from outside the translation unit, they have to be either (a) defined in the
&gt; header file instead, so they&apos;re guaranteed to be available in the
&gt; translation unit they are called from, or else (b) explicitly instantiated
&gt; using &apos;extern template&apos;. This is documented here:
&gt; https://gcc.gnu.org/onlinedocs/gcc/Template-Instantiation.html

Hm...so my patch moves the definitions of the template functions to the header file (WebCoreArgumentCoders.h), which I thought would be okay because the header file is included in all the places that currently try to encode or decode these objects. That said, I also tried explicit template instantiation (with and without the `extern` keyword), but that didn&apos;t seem to have any effect :/

Maybe the template instantiation needs to be in the CPP source instead of the header, though? Going to try this next, and see if it makes any difference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800752</commentid>
    <comment_count>34</comment_count>
      <attachid>440263</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-05 14:13:14 -0700</bug_when>
    <thetext>Created attachment 440263
Try to fix WPE again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800805</commentid>
    <comment_count>35</comment_count>
      <attachid>440281</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-05 15:28:43 -0700</bug_when>
    <thetext>Created attachment 440281
Does this build on WPE??</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800815</commentid>
    <comment_count>36</comment_count>
      <attachid>440284</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-05 15:45:04 -0700</bug_when>
    <thetext>Created attachment 440284
Try to fix the WPE build again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800829</commentid>
    <comment_count>37</comment_count>
      <attachid>440288</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-05 16:14:01 -0700</bug_when>
    <thetext>Created attachment 440288
Another test patch for WPE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800861</commentid>
    <comment_count>38</comment_count>
      <attachid>440300</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-05 17:00:07 -0700</bug_when>
    <thetext>Created attachment 440300
Another test patch for WPE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800882</commentid>
    <comment_count>39</comment_count>
      <attachid>440306</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-05 17:22:09 -0700</bug_when>
    <thetext>Created attachment 440306
Try to fix the WPE build again? (1)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800883</commentid>
    <comment_count>40</comment_count>
      <attachid>440307</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-05 17:23:29 -0700</bug_when>
    <thetext>Created attachment 440307
Try to fix the WPE build again? (2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800887</commentid>
    <comment_count>41</comment_count>
      <attachid>440308</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-05 17:24:06 -0700</bug_when>
    <thetext>Created attachment 440308
Try to fix the WPE build again? (3)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800890</commentid>
    <comment_count>42</comment_count>
      <attachid>440309</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-05 17:27:31 -0700</bug_when>
    <thetext>Created attachment 440309
Try to fix the WPE build again? (4)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800895</commentid>
    <comment_count>43</comment_count>
      <attachid>440311</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-05 17:29:52 -0700</bug_when>
    <thetext>Created attachment 440311
Try to fix the WPE build again? (5)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800899</commentid>
    <comment_count>44</comment_count>
      <attachid>440312</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-05 17:34:10 -0700</bug_when>
    <thetext>Created attachment 440312
Try to fix the WPE build again? (6)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800901</commentid>
    <comment_count>45</comment_count>
      <attachid>440313</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-05 17:34:42 -0700</bug_when>
    <thetext>Created attachment 440313
Try to fix the WPE build again? (7)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800903</commentid>
    <comment_count>46</comment_count>
      <attachid>440314</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-05 17:35:29 -0700</bug_when>
    <thetext>Created attachment 440314
Try to fix the WPE build again? (8)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800904</commentid>
    <comment_count>47</comment_count>
      <attachid>440315</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-05 17:36:02 -0700</bug_when>
    <thetext>Created attachment 440315
Try to fix the WPE build again? (9)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801068</commentid>
    <comment_count>48</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-06 07:56:41 -0700</bug_when>
    <thetext>Committed r283617 (242569@main): &lt;https://commits.webkit.org/242569@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 440309.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801069</commentid>
    <comment_count>49</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-06 07:57:34 -0700</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #42)
&gt; Created attachment 440309 [details]
&gt; Try to fix the WPE build again? (4)

After some trial and error yesterday, I figured out that this patch fails for WPE in EWS when the bot used to build the patch is `aperez-wpe-ews`; however, it does not fail when `igalia-wpe-ews` is used instead. As far as I can tell, these both use incremental builds, so it&apos;s a bit of a mystery to me why it fails for `aperez-wpe-ews`.

Tim Horton also helped confirm that all of the patches labeled &quot;Try to fix the WPE build again? (1-9)&quot; build successfully (locally) against WPE on an Arch Linux machine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801737</commentid>
    <comment_count>50</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-07 13:02:45 -0700</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #49)
&gt; (In reply to Wenson Hsieh from comment #42)
&gt; &gt; Created attachment 440309 [details]
&gt; &gt; Try to fix the WPE build again? (4)
&gt; 
&gt; After some trial and error yesterday, I figured out that this patch fails
&gt; for WPE in EWS when the bot used to build the patch is `aperez-wpe-ews`;
&gt; however, it does not fail when `igalia-wpe-ews` is used instead. As far as I
&gt; can tell, these both use incremental builds, so it&apos;s a bit of a mystery to
&gt; me why it fails for `aperez-wpe-ews`.

I also am not sure why the build failed there, but I forced a fresh full
build by removing the build directory for the EWS and it seems to be
chugging along nicely now.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439086</attachid>
            <date>2021-09-23 13:26:22 -0700</date>
            <delta_ts>2021-09-23 14:00:07 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-230714-20210923132621.patch</filename>
            <type>text/plain</type>
            <size>46263</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyOTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc0YjJhNTIwYzc0NWQzMjBi
ZGQ5YTg5NTIyM2Q3NzkzMTYzMTY2NDQuLmNlMmViMjY0M2M5NGFhMjZjNTdmODI1ZTViNGRkNDU5
NDA0ZjNkY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTEgQEAKKzIwMjEtMDktMjMgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIFJlZmFj
dG9yIHNvbWUgSVBDIGFyZ3VtZW50IGVuY29kZXIgbG9naWMgdG8gd29yayB3aXRoIFN0cmVhbUNv
bm5lY3Rpb25FbmNvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA3MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBNYWtlIGl0IHBvc3NpYmxlIHRvIHVzZSBgSVBDOjpTdHJlYW1Db25uZWN0aW9uRW5j
b2RlcmAgdG8gZW5jb2RlIGRpc3BsYXkgbGlzdCBpdGVtcyAoYW5kIHRoZWlyIG1lbWJlcnMpIGlu
IGFuCisgICAgICAgIElQQyBzdHJlYW0uIFRoaXMgcGF0Y2ggY29tcHJpc2VzIHR3byBtYWluIHNl
dHMgb2YgY2hhbmdlcyBpbiBgQXJndW1lbnRDb2RlcnNgLCBhbmQgYFdlYkNvcmVBcmd1bWVudENv
ZGVyc2AuIFNlZQorICAgICAgICBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICog
UGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxhdWRpdF90b2tlbl90Pjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxXYWxsVGltZT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8V2FsbFRpbWU+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPEF0b21TdHJpbmc+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVu
dENvZGVyPEF0b21TdHJpbmc+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPFN0cmluZz46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OmRlY29k
ZVN0cmluZ1RleHQpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFN0cmlu
Zz46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TW9ub3N0
YXRlPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNb25v
c3RhdGU+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9EZWNvZGVy
Lmg6CisgICAgICAgIChJUEM6OkRlY29kZXI6Om9wZXJhdG9yPj4pOgorCisgICAgICAgIE1ha2Ug
YSBtaW5vciBhZGp1c3RtZW50IGhlcmUgdG8gYWxsb3cgV2ViQ29yZSB0eXBlcyB0aGF0IGRvbid0
IGhhdmUgZGVmYXVsdCBjb25zdHJ1Y3RvcnMgdG8gd29yayB3aXRoCisgICAgICAgIElQQzo6U3Ry
ZWFtQ29ubmVjdGlvbkVuY29kZXIsIGJ5IHBhc3NpbmcgYSByZWZlcmVuY2UgdG8gdGhlIG9wdGlv
bmFsIGRlY29kaW5nIHJlc3VsdCBpbnN0ZWFkIG9mIGNyZWF0aW5nIGEgbmV3CisgICAgICAgIGlu
c3RhbmNlIG9mIHRoZSB0eXBlIG9uIHRoZSBzdGFjayBhbmQgZGVjb2RpbmcgaW50byB0aGF0IG9i
amVjdC4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAg
ICAoSVBDOjpBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxXYWxsVGltZT46OmRlY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8QXRvbVN0cmluZz46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8
QXRvbVN0cmluZz46OmRlY29kZSk6CisgICAgICAgIChJUEM6OmRlY29kZVN0cmluZ1RleHQpOgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFN0cmluZz46OmVuY29kZSk6CisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8U3RyaW5nPjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxNb25vc3RhdGU+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVy
PE1vbm9zdGF0ZT46OmRlY29kZSk6CisKKyAgICAgICAgTWFueSBvZiB0aGVzZSBgZW5jb2RlKClg
IG1ldGhvZHMgYXJlIGN1cnJlbnRseSBub24tdGVtcGxhdGVkLCB3aGljaCBtZWFucyB0aGF0IEVu
Y29kZXIgYW5kIERlY29kZXIgdXNlZCBoZXJlCisgICAgICAgIHJlZmVyIHNvbGVseSB0byBJUEM6
OkVuY29kZXIgYW5kIElQQzo6RGVjb2RlciAocmVzcGVjdGl2ZWx5KSBpbnN0ZWFkIG9mIG90aGVy
IHR5cGVzIG9mIGVuY29kZXJzIChuYW1lbHksCisgICAgICAgIFN0cmVhbUNvbm5lY3Rpb25FbmNv
ZGVyKS4KKworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAg
ICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmVuY29kZSk6IERlbGV0
ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1hdGlvbk1h
dHJpeD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8VHJh
bnNmb3JtYXRpb25NYXRyaXg+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPEZsb2F0UG9pbnQ+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpB
cmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAg
IChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUpOiBEZWxldGVkLgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZSk6IERlbGV0ZWQu
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUpOiBE
ZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVj
b2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFNpemU+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0U2l6ZT46
OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRSb3Vu
ZGVkUmVjdD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8
RmxvYXRSb3VuZGVkUmVjdD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8SW50UG9pbnQ+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPEludFBvaW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxJbnRTaXplPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxJbnRTaXplPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxMYXlvdXRTaXplPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxMYXlvdXRTaXplPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAg
IChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+OjpkZWNvZGUpOiBEZWxldGVkLgorCisg
ICAgICAgIFRoZXNlIFdlYkNvcmUgYXJndW1lbnQgY29kZXJzIGFyZSBhbHNvIGN1cnJlbnRseSBp
bmNvbXBhdGlibGUgd2l0aCBTdHJlYW1Db25uZWN0aW9uRW5jb2Rlciwgc2luY2UgdGhleSBhcmUg
bm9uLQorICAgICAgICB0ZW1wbGF0ZWQgKGFuZCB0aHVzIG9ubHkgd29yayB3aXRoIElQQzo6RW5j
b2RlcikuIFNpbmNlIHRoZXNlIGFyZSBhbGwgZW5jb2RhYmxlIGFzIFBPRCB0eXBlcywgd2UgY2Fu
IGp1c3QgdXNlCisgICAgICAgIFNpbXBsZUFyZ3VtZW50Q29kZXIgZm9yIGFsbCBvZiB0aGVzZS4g
V2UgYWxzbyBhZGQgYSBuZXcgYERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJgIG1hY3JvIHRv
IG1ha2UgdGhpcyBjb2RlIGEKKyAgICAgICAgYml0IGVhc2llciB0byByZWFkLgorCisgICAgICAg
ICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9tYWMv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVy
PENHUmVjdD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8
Q0dSZWN0Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxD
R1NpemU+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENH
U2l6ZT46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dQ
b2ludD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dQ
b2ludD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dB
ZmZpbmVUcmFuc2Zvcm0+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVu
dENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKTogRGVsZXRlZC4KKwogMjAyMS0wOS0y
MyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBzaG91
bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrIHNob3VsZCB1c2UgV2ViQ29yZSdz
IGxpbmtlZE9uT3JBZnRlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQ
Qy9Bcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVu
dENvZGVycy5jcHAKaW5kZXggYTMyMDU1MTg3OThiNzRkY2VkYjhhMDEzZjljOWM5ODg1YWFlNjYx
Ni4uM2RmYzMwNTgwZWE5ZjFlYWNjY2MyMzAxMGQ2ODE2MGVmNTMzNGI5ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcApAQCAtMzUsNTUgKzM1LDYg
QEAKIAogbmFtZXNwYWNlIElQQyB7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+Ci12b2lk
IEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qg
V2FsbFRpbWUmIHRpbWUpCi17Ci0gICAgZW5jb2RlciA8PCB0aW1lLnNlY29uZHNTaW5jZUVwb2No
KCkudmFsdWUoKTsKLX0KLXRlbXBsYXRlCi12b2lkIEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+Ojpl
bmNvZGU8RW5jb2Rlcj4oRW5jb2RlciYsIGNvbnN0IFdhbGxUaW1lJik7Ci10ZW1wbGF0ZQotdm9p
ZCBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZW5jb2RlPFdlYktpdDo6UENNOjpFbmNvZGVyPihX
ZWJLaXQ6OlBDTTo6RW5jb2RlciYsIGNvbnN0IFdhbGxUaW1lJik7Ci0KLVdBUk5fVU5VU0VEX1JF
VFVSTiBib29sIEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgV2FsbFRpbWUmIHRpbWUpCi17Ci0gICAgZG91YmxlIHZhbHVlOwotICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUodmFsdWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICB0aW1lID0gV2Fs
bFRpbWU6OmZyb21SYXdTZWNvbmRzKHZhbHVlKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdGVt
cGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KLVdBUk5fVU5VU0VEX1JFVFVSTiBzdGQ6Om9wdGlvbmFs
PFdhbGxUaW1lPiBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCi17Ci0gICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IHRpbWU7Ci0gICAgZGVjb2RlciA+PiB0
aW1lOwotICAgIGlmICghdGltZSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICBy
ZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKCp0aW1lKTsKLX0KLXRlbXBsYXRlCi1zdGQ6
Om9wdGlvbmFsPFdhbGxUaW1lPiBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlPERlY29k
ZXI+KERlY29kZXImKTsKLXRlbXBsYXRlCi1zdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBBcmd1bWVu
dENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlPFdlYktpdDo6UENNOjpEZWNvZGVyPihXZWJLaXQ6OlBD
TTo6RGVjb2RlciYpOwotCi12b2lkIEFyZ3VtZW50Q29kZXI8QXRvbVN0cmluZz46OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBBdG9tU3RyaW5nJiBhdG9tU3RyaW5nKQotewotICAgIGVu
Y29kZXIgPDwgYXRvbVN0cmluZy5zdHJpbmcoKTsKLX0KLQotV0FSTl9VTlVTRURfUkVUVVJOIGJv
b2wgQXJndW1lbnRDb2RlcjxBdG9tU3RyaW5nPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEF0
b21TdHJpbmcmIGF0b21TdHJpbmcpCi17Ci0gICAgU3RyaW5nIHN0cmluZzsKLSAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHN0cmluZykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGF0b21T
dHJpbmcgPSBzdHJpbmc7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1l
IEVuY29kZXI+CiB2b2lkIEFyZ3VtZW50Q29kZXI8Q1N0cmluZz46OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBDU3RyaW5nJiBzdHJpbmcpCiB7CkBAIC0xMjksODQgKzgwLDYgQEAgc3Rk
OjpvcHRpb25hbDxDU3RyaW5nPiBBcmd1bWVudENvZGVyPENTdHJpbmc+OjpkZWNvZGU8RGVjb2Rl
cj4oRGVjb2RlciYpOwogdGVtcGxhdGUKIHN0ZDo6b3B0aW9uYWw8Q1N0cmluZz4gQXJndW1lbnRD
b2RlcjxDU3RyaW5nPjo6ZGVjb2RlPFdlYktpdDo6UENNOjpEZWNvZGVyPihXZWJLaXQ6OlBDTTo6
RGVjb2RlciYpOwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgotdm9pZCBBcmd1bWVudENv
ZGVyPFN0cmluZz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTdHJpbmcmIHN0cmlu
ZykKLXsKLSAgICAvLyBTcGVjaWFsIGNhc2UgdGhlIG51bGwgc3RyaW5nLgotICAgIGlmIChzdHJp
bmcuaXNOdWxsKCkpIHsKLSAgICAgICAgZW5jb2RlciA8PCBzdGQ6Om51bWVyaWNfbGltaXRzPHVp
bnQzMl90Pjo6bWF4KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICB1aW50MzJfdCBs
ZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7Ci0gICAgYm9vbCBpczhCaXQgPSBzdHJpbmcuaXM4Qml0
KCk7Ci0KLSAgICBlbmNvZGVyIDw8IGxlbmd0aCA8PCBpczhCaXQ7Ci0KLSAgICBpZiAoaXM4Qml0
KQotICAgICAgICBlbmNvZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0YShzdHJpbmcuY2hhcmFjdGVy
czgoKSwgbGVuZ3RoICogc2l6ZW9mKExDaGFyKSwgYWxpZ25vZihMQ2hhcikpOwotICAgIGVsc2UK
LSAgICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDxj
b25zdCB1aW50OF90Kj4oc3RyaW5nLmNoYXJhY3RlcnMxNigpKSwgbGVuZ3RoICogc2l6ZW9mKFVD
aGFyKSwgYWxpZ25vZihVQ2hhcikpOwotfQotdGVtcGxhdGUKLXZvaWQgQXJndW1lbnRDb2RlcjxT
dHJpbmc+OjplbmNvZGU8RW5jb2Rlcj4oRW5jb2RlciYsIGNvbnN0IFN0cmluZyYpOwotdGVtcGxh
dGUKLXZvaWQgQXJndW1lbnRDb2RlcjxTdHJpbmc+OjplbmNvZGU8U3RyZWFtQ29ubmVjdGlvbkVu
Y29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwgY29uc3QgU3RyaW5nJik7Ci10ZW1wbGF0
ZQotdm9pZCBBcmd1bWVudENvZGVyPFN0cmluZz46OmVuY29kZTxXZWJLaXQ6OlBDTTo6RW5jb2Rl
cj4oV2ViS2l0OjpQQ006OkVuY29kZXImLCBjb25zdCBTdHJpbmcmKTsKLQotdGVtcGxhdGU8dHlw
ZW5hbWUgQ2hhcmFjdGVyVHlwZSwgdHlwZW5hbWUgRGVjb2Rlcj4KLXN0YXRpYyBpbmxpbmUgc3Rk
OjpvcHRpb25hbDxTdHJpbmc+IGRlY29kZVN0cmluZ1RleHQoRGVjb2RlciYgZGVjb2RlciwgdWlu
dDMyX3QgbGVuZ3RoKQotewotICAgIC8vIEJlZm9yZSBhbGxvY2F0aW5nIHRoZSBzdHJpbmcsIG1h
a2Ugc3VyZSB0aGF0IHRoZSBkZWNvZGVyIGJ1ZmZlciBpcyBiaWcgZW5vdWdoLgotICAgIGlmICgh
ZGVjb2Rlci50ZW1wbGF0ZSBidWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluPENoYXJhY3RlclR5
cGU+KGxlbmd0aCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgCi0gICAgQ2hh
cmFjdGVyVHlwZSogYnVmZmVyOwotICAgIFN0cmluZyBzdHJpbmcgPSBTdHJpbmc6OmNyZWF0ZVVu
aW5pdGlhbGl6ZWQobGVuZ3RoLCBidWZmZXIpOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGVGaXhl
ZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oYnVmZmVyKSwgbGVuZ3RoICog
c2l6ZW9mKENoYXJhY3RlclR5cGUpLCBhbGlnbm9mKENoYXJhY3RlclR5cGUpKSkKLSAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICAKLSAgICByZXR1cm4gc3RyaW5nOwotfQotCi10ZW1w
bGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgotV0FSTl9VTlVTRURfUkVUVVJOIHN0ZDo6b3B0aW9uYWw8
U3RyaW5nPiBBcmd1bWVudENvZGVyPFN0cmluZz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQot
ewotICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IGxlbmd0aDsKLSAgICBkZWNvZGVyID4+IGxl
bmd0aDsKLSAgICBpZiAoIWxlbmd0aCkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAg
ICAKLSAgICBpZiAoKmxlbmd0aCA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4
KCkpIHsKLSAgICAgICAgLy8gVGhpcyBpcyB0aGUgbnVsbCBzdHJpbmcuCi0gICAgICAgIHJldHVy
biBTdHJpbmcoKTsKLSAgICB9Ci0gICAgCi0gICAgc3RkOjpvcHRpb25hbDxib29sPiBpczhCaXQ7
Ci0gICAgZGVjb2RlciA+PiBpczhCaXQ7Ci0gICAgaWYgKCFpczhCaXQpCi0gICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7Ci0gICAgCi0gICAgaWYgKCppczhCaXQpCi0gICAgICAgIHJldHVybiBk
ZWNvZGVTdHJpbmdUZXh0PExDaGFyPihkZWNvZGVyLCAqbGVuZ3RoKTsKLSAgICByZXR1cm4gZGVj
b2RlU3RyaW5nVGV4dDxVQ2hhcj4oZGVjb2RlciwgKmxlbmd0aCk7Ci19Ci10ZW1wbGF0ZQotc3Rk
OjpvcHRpb25hbDxTdHJpbmc+IEFyZ3VtZW50Q29kZXI8U3RyaW5nPjo6ZGVjb2RlPERlY29kZXI+
KERlY29kZXImKTsKLXRlbXBsYXRlCi1zdGQ6Om9wdGlvbmFsPFN0cmluZz4gQXJndW1lbnRDb2Rl
cjxTdHJpbmc+OjpkZWNvZGU8V2ViS2l0OjpQQ006OkRlY29kZXI+KFdlYktpdDo6UENNOjpEZWNv
ZGVyJik7Ci0KLVdBUk5fVU5VU0VEX1JFVFVSTiBib29sIEFyZ3VtZW50Q29kZXI8U3RyaW5nPjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFN0cmluZyYgcmVzdWx0KQotewotICAgIHN0ZDo6b3B0
aW9uYWw8U3RyaW5nPiBzdHJpbmc7Ci0gICAgZGVjb2RlciA+PiBzdHJpbmc7Ci0gICAgaWYgKCFz
dHJpbmcpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXN1bHQgPSBXVEZNb3ZlKCpzdHJp
bmcpOwotICAgIHJldHVybiB0cnVlOwotfQotCiB2b2lkIEFyZ3VtZW50Q29kZXI8U0hBMTo6RGln
ZXN0Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNIQTE6OkRpZ2VzdCYgZGlnZXN0
KQogewogICAgIGVuY29kZXIuZW5jb2RlRml4ZWRMZW5ndGhEYXRhKGRpZ2VzdC5kYXRhKCksIHNp
emVvZihkaWdlc3QpLCAxKTsKQEAgLTIxOCw2ICs5MSw3IEBAIFdBUk5fVU5VU0VEX1JFVFVSTiBi
b29sIEFyZ3VtZW50Q29kZXI8U0hBMTo6RGlnZXN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IFNICiB9CiAKICNpZiBIQVZFKEFVRElUX1RPS0VOKQorCiB2b2lkIEFyZ3VtZW50Q29kZXI8YXVk
aXRfdG9rZW5fdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBhdWRpdF90b2tlbl90
JiBhdWRpdFRva2VuKQogewogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBXVEZfQVJSQVlf
TEVOR1RIKGF1ZGl0VG9rZW4udmFsKTsgaSsrKQpAQCAtMjMyLDE1ICsxMDYsNyBAQCBXQVJOX1VO
VVNFRF9SRVRVUk4gYm9vbCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rva2VuX3Q+OjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlciwgYQogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKIH0KLSNlbmRpZgogCi12
b2lkIEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2RlKEVuY29kZXImLCBjb25zdCBNb25v
c3RhdGUmKQotewotfQotCi1XQVJOX1VOVVNFRF9SRVRVUk4gc3RkOjpvcHRpb25hbDxNb25vc3Rh
dGU+IEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2RlKERlY29kZXImKQotewotICAgIHJl
dHVybiBNb25vc3RhdGUgeyB9OwotfQorI2VuZGlmIC8vIEhBVkUoQVVESVRfVE9LRU4pCiAKIH0g
Ly8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMv
QXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29k
ZXJzLmgKaW5kZXggYThjODkzZjBjNTI0MGE4ODg5YzM0NTE0ZjlmYjFlZmVlMGQ2MjcwYS4uZWM4
Y2JkMzJkZjFiOWQ3N2M5ZTYwZjM5MTkwMWYxYWZlMDljMjljZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCkBAIC0zNyw5ICszNywxMyBAQAogI2luY2x1
ZGUgPHd0Zi9VbmV4cGVjdGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KICNpbmNsdWRl
IDx3dGYvV2FsbFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBJUEMgewogCisjZGVmaW5l
IERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoY2xhc3NOYW1lKSB0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPGNsYXNzTmFtZT4gOiBTaW1wbGVBcmd1bWVudENvZGVyPGNsYXNzTmFt
ZT4geyB9OworCiAvLyBBbiBhcmd1bWVudCBjb2RlciB3b3JrcyBvbiBQT0QgdHlwZXMKIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBTaW1wbGVBcmd1bWVudENvZGVyIHsKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBFbmNvZGVyPgpAQCAtNDgsNiArNTIsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBzdHJ1Y3QgU2ltcGxlQXJndW1lbnRDb2RlciB7CiAgICAgICAgIGVuY29kZXIuZW5jb2RlRml4
ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KCZ0KSwgc2l6ZW9m
KFQpLCBhbGlnbm9mKFQpKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVy
PgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgVCYgdCkKICAgICB7CiAgICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29kZUZpeGVkTGVu
Z3RoRGF0YShyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPigmdCksIHNpemVvZihUKSwgYWxpZ25v
ZihUKSk7CkBAIC0xMDcsMTIgKzExMiwxNCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxBcnJheVJlZmVyZW5jZTxULCBhcnJheVJlZmVyZW5jZUR5bmFtaQogfTsK
IAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8T3B0aW9uU2V0PFQ+
PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgT3B0aW9uU2V0PFQ+JiBvcHRpb25TZXQpCiAgICAg
ewogICAgICAgICBBU1NFUlQoV1RGOjppc1ZhbGlkT3B0aW9uU2V0KG9wdGlvblNldCkpOwogICAg
ICAgICBlbmNvZGVyIDw8IG9wdGlvblNldC50b1JhdygpOwogICAgIH0KIAorICAgIHRlbXBsYXRl
PHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCBPcHRpb25TZXQ8VD4mIG9wdGlvblNldCkKICAgICB7CiAg
ICAgICAgIHR5cGVuYW1lIE9wdGlvblNldDxUPjo6U3RvcmFnZVR5cGUgdmFsdWU7CkBAIC0xMjQs
NiArMTMxLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8T3B0
aW9uU2V0PFQ+PiB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRl
PHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8T3B0aW9uU2V0PFQ+
PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8
dHlwZW5hbWUgT3B0aW9uU2V0PFQ+OjpTdG9yYWdlVHlwZT4gdmFsdWU7CkBAIC0xODcsNiArMTk1
LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpvcHRp
b25hbDxUPj4gewogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8Qm94PFQ+PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgQm94PFQ+JiBib3gpCiAgICAgewog
ICAgICAgICBpZiAoIWJveCkgewpAQCAtMTk4LDYgKzIwNyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPEJveDxUPj4gewogICAgICAgICBlbmNvZGVyIDw8ICpi
b3guZ2V0KCk7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBz
dGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEJv
eDxUPiYgYm94KQogICAgIHsKICAgICAgICAgYm9vbCBpc0VuZ2FnZWQ7CkBAIC0yMTcsNiArMjI3
LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERl
Y29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Qm94PFQ+PiBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gaXNFbmdhZ2VkOwpA
QCAtMjM1LDExICsyNDYsMTMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8Qm94PFQ+PiB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxzdGQ6OnBhaXI8VCwgVT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBzdGQ6OnBhaXI8VCwgVT4mIHBhaXIpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHBh
aXIuZmlyc3QgPDwgcGFpci5zZWNvbmQ7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
RGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29k
ZXImIGRlY29kZXIsIHN0ZDo6cGFpcjxULCBVPiYgcGFpcikKICAgICB7CiAgICAgICAgIFQgZmly
c3Q7CkBAIC0yNTUsNiArMjY4LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpwYWlyPFQsIFU+PiB7CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWlyPFQsIFU+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
ICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8VD4gZmlyc3Q7CkBAIC0zNjUsMTEgKzM3OSwx
MyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBFbGVtZW50cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8
c3RkOjp0dXBsZTxFbGVtZW50cy4uLj4+IHsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEtleVR5
cGUsIHR5cGVuYW1lIFZhbHVlVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpLZXlWYWx1
ZVBhaXI8S2V5VHlwZSwgVmFsdWVUeXBlPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29k
ZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6
S2V5VmFsdWVQYWlyPEtleVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAgICAgewogICAgICAgICBl
bmNvZGVyIDw8IHBhaXIua2V5IDw8IHBhaXIudmFsdWU7CiAgICAgfQogCisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFdURjo6S2V5VmFsdWVQYWlyPEtleVR5cGUsIFZhbHVlVHlw
ZT4mIHBhaXIpCiAgICAgewogICAgICAgICBLZXlUeXBlIGtleTsKQEAgLTM5Nyw2ICs0MTMsNyBA
QCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92
ZXJmbG93SGFuZGxlciwgc2l6ZV90IG1pbgogICAgICAgICAgICAgZW5jb2RlciA8PCB2ZWN0b3Jb
aV07CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMg
V0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxU
LCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4mIHZlY3RvcikK
ICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBP
dmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5Pj4gb3B0aW9uYWw7CkBAIC00MzYsNiArNDUzLDcg
QEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBP
dmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KICAgICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExl
bmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4odmVjdG9yLmRhdGEoKSks
IHZlY3Rvci5zaXplKCkgKiBzaXplb2YoVCksIGFsaWdub2YoVCkpOwogICAgIH0KICAgICAKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRV
Uk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5
LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5PiYgdmVjdG9yKQogICAgIHsKICAgICAgICAg
dWludDY0X3QgZGVjb2RlZFNpemU7CkBAIC00NTAsNyArNDY4LDcgQEAgdGVtcGxhdGU8dHlwZW5h
bWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNp
emVfdCBtaW4KICAgICAgICAgLy8gU2luY2Ugd2Uga25vdyB0aGUgdG90YWwgc2l6ZSBvZiB0aGUg
ZWxlbWVudHMsIHdlIGNhbiBhbGxvY2F0ZSB0aGUgdmVjdG9yIGluCiAgICAgICAgIC8vIG9uZSBm
ZWxsIHN3b29wLiBCZWZvcmUgYWxsb2NhdGluZyB3ZSBtdXN0IGhvd2V2ZXIgbWFrZSBzdXJlIHRo
YXQgdGhlIGRlY29kZXIgYnVmZmVyCiAgICAgICAgIC8vIGlzIGJpZyBlbm91Z2guCi0gICAgICAg
IGlmICghZGVjb2Rlci5idWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluPFQ+KHNpemUpKQorICAg
ICAgICBpZiAoIWRlY29kZXIudGVtcGxhdGUgYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbjxU
PihzaXplKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBWZWN0b3I8VCwg
aW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+IHRlbXA7CkBAIC00
OTcsNiArNTE1LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5
LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KIHRlbXBsYXRlPHR5cGVuYW1l
IEtleUFyZywgdHlwZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBL
ZXlUcmFpdHNBcmcsIHR5cGVuYW1lIE1hcHBlZFRyYWl0c0FyZywgdHlwZW5hbWUgSGFzaFRhYmxl
VHJhaXRzPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBI
YXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPj4g
ewogICAgIHR5cGVkZWYgSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJh
aXRzQXJnLCBNYXBwZWRUcmFpdHNBcmcsIEhhc2hUYWJsZVRyYWl0cz4gSGFzaE1hcFR5cGU7CiAK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBIYXNoTWFwVHlwZSYgaGFzaE1hcCkKICAgICB7CiAgICAg
ICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGhhc2hNYXAuc2l6ZSgpKTsKQEAg
LTUwNCw2ICs1MjMsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBl
ZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogICAgICAgICAgICAgZW5j
b2RlciA8PCAqaXQ7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAg
ICBzdGF0aWMgc3RkOjpvcHRpb25hbDxIYXNoTWFwVHlwZT4gZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCiAgICAgewogICAgICAgICB1aW50MzJfdCBoYXNoTWFwU2l6ZTsKQEAgLTUzNCw2ICs1NTQs
NyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5h
bWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogICAgICAgICByZXR1cm4gaGFzaE1hcDsKICAg
ICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VO
VVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSGFzaE1hcFR5cGUmIGhh
c2hNYXApCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPEhhc2hNYXBUeXBlPiB0ZW1wSGFz
aE1hcDsKQEAgLTU0OCw2ICs1NjksNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVu
YW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogdGVtcGxh
dGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNB
cmcsIHR5cGVuYW1lIEhhc2hUYWJsZVRyYWl0cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaFNl
dDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPj4gewogICAg
IHR5cGVkZWYgSGFzaFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgSGFzaFRhYmxl
VHJhaXRzPiBIYXNoU2V0VHlwZTsKIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAg
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEhhc2hTZXRUeXBl
JiBoYXNoU2V0KQogICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRf
dD4oaGFzaFNldC5zaXplKCkpOwpAQCAtNTU1LDYgKzU3Nyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IEtleUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFt
ZSBIYXNoCiAgICAgICAgICAgICBlbmNvZGVyIDw8ICppdDsKICAgICB9CiAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSGFzaFNldFR5cGUmIGhhc2hTZXQpCiAgICAgewogICAg
ICAgICBzdGQ6Om9wdGlvbmFsPEhhc2hTZXRUeXBlPiB0ZW1wSGFzaFNldDsKQEAgLTU2Niw2ICs1
ODksNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVu
YW1lIEtleVRyYWl0c0FyZywgdHlwZW5hbWUgSGFzaAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPEhhc2hTZXRUeXBlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAg
ICAgIHVpbnQ2NF90IGhhc2hTZXRTaXplOwpAQCAtNTk1LDYgKzYxOSw3IEBAIHRlbXBsYXRlPHR5
cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0
eXBlbmFtZSBIYXNoCiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcs
IHR5cGVuYW1lIEtleVRyYWl0c0FyZz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaENvdW50ZWRT
ZXQ8S2V5QXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmc+PiB7CiAgICAgdHlwZWRlZiBIYXNoQ291
bnRlZFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZz4gSGFzaENvdW50ZWRTZXRUeXBl
OwogICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENv
dW50ZWRTZXQpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90
PihoYXNoQ291bnRlZFNldC5zaXplKCkpOwpAQCAtNjA1LDYgKzYzMCw3IEBAIHRlbXBsYXRlPHR5
cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnPiBz
dHJ1Y3QgQXJndW1lCiAgICAgICAgIH0KICAgICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERl
Y29kZXImIGRlY29kZXIsIEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENvdW50ZWRTZXQpCiAgICAg
ewogICAgICAgICB1aW50NjRfdCBoYXNoQ291bnRlZFNldFNpemU7CkBAIC02MzYsNiArNjYyLDcg
QEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBL
ZXlUcmFpdHNBcmc+IHN0cnVjdCBBcmd1bWUKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVl
VHlwZSwgdHlwZW5hbWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxW
YWx1ZVR5cGUsIEVycm9yVHlwZT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgog
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBFeHBlY3RlZDxW
YWx1ZVR5cGUsIEVycm9yVHlwZT4mIGV4cGVjdGVkKQogICAgIHsKICAgICAgICAgaWYgKCFleHBl
Y3RlZC5oYXNfdmFsdWUoKSkgewpAQCAtNjQ3LDYgKzY3NCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IFZhbHVlVHlwZSwgdHlwZW5hbWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBl
Y3RlZDxWCiAgICAgICAgIGVuY29kZXIgPDwgZXhwZWN0ZWQudmFsdWUoKTsKICAgICB9CiAKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4
cGVjdGVkPFZhbHVlVHlwZSwgRXJyb3JUeXBlPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAg
ICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGhhc1ZhbHVlOwpAQCAtNjczLDYgKzcw
MSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUgRXJyb3JUeXBlPiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWCiAKIHRlbXBsYXRlPHNpemVfdCBpbmRleCwg
dHlwZW5hbWUuLi4gVHlwZXM+CiBzdHJ1Y3QgVmFyaWFudENvZGVyIHsKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+JiB2YXJpYW50LCB1bnNpZ25lZCBpKQogICAg
IHsKICAgICAgICAgaWYgKGkgPT0gaW5kZXgpIHsKQEAgLTY4Miw2ICs3MTEsNyBAQCBzdHJ1Y3Qg
VmFyaWFudENvZGVyIHsKICAgICAgICAgVmFyaWFudENvZGVyPGluZGV4IC0gMSwgVHlwZXMuLi4+
OjplbmNvZGUoZW5jb2RlciwgdmFyaWFudCwgaSk7CiAgICAgfQogICAgIAorICAgIHRlbXBsYXRl
PHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V1RGOjpWYXJpYW50
PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIsIHVuc2lnbmVkIGkpCiAgICAgewog
ICAgICAgICBpZiAoaSA9PSBpbmRleCkgewpAQCAtNjk3LDEyICs3MjcsMTQgQEAgc3RydWN0IFZh
cmlhbnRDb2RlciB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPgogc3RydWN0IFZhcmlh
bnRDb2RlcjwwLCBUeXBlcy4uLj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAg
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6VmFyaWFu
dDxUeXBlcy4uLj4mIHZhcmlhbnQsIHVuc2lnbmVkIGkpCiAgICAgewogICAgICAgICBBU1NFUlRf
VU5VU0VEKGksICFpKTsKICAgICAgICAgZW5jb2RlciA8PCBXVEY6OmdldDwwPih2YXJpYW50KTsK
ICAgICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMg
c3RkOjpvcHRpb25hbDxXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+PiBkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgdW5zaWduZWQgaSkKICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQoaSwgIWkpOwpA
QCAtNzE1LDYgKzc0Nyw3IEBAIHN0cnVjdCBWYXJpYW50Q29kZXI8MCwgVHlwZXMuLi4+IHsKIH07
CiAKIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXVEY6
OlZhcmlhbnQ8VHlwZXMuLi4+PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV1RGOjpWYXJpYW50
PFR5cGVzLi4uPiYgdmFyaWFudCkKICAgICB7CiAgICAgICAgIHVuc2lnbmVkIGkgPSB2YXJpYW50
LmluZGV4KCk7CkBAIC03MjIsNiArNzU1LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gVHlwZXM+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IHsKICAgICAgICAg
VmFyaWFudENvZGVyPHNpemVvZi4uLihUeXBlcykgLSAxLCBUeXBlcy4uLj46OmVuY29kZShlbmNv
ZGVyLCB2YXJpYW50LCBpKTsKICAgICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVj
b2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+PiBk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8dW5z
aWduZWQ+IGk7CkBAIC03MzQsMzAgKzc2OCwxMjkgQEAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gVHlw
ZXM+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IHsKICAgICAK
IHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+IHsKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBFbmNvZGVyPgotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29u
c3QgV2FsbFRpbWUmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2Rl
KERlY29kZXImLCBXYWxsVGltZSYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBXYWxsVGltZSYgdGltZSkKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwg
dGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCk7CisgICAgfQorCiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgRGVjb2Rlcj4KLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXYWxsVGltZT4gZGVj
b2RlKERlY29kZXImKTsKKyAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIFdhbGxUaW1lJiB0aW1lKQorICAgIHsKKyAgICAgICAgZG91Ymxl
IHZhbHVlOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHZhbHVlKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgICAgICB0aW1lID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRz
KHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRGVjb2Rlcj4KKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXYWxsVGltZT4gZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4g
dGltZTsKKyAgICAgICAgZGVjb2RlciA+PiB0aW1lOworICAgICAgICBpZiAoIXRpbWUpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICByZXR1cm4gV2FsbFRpbWU6OmZy
b21SYXdTZWNvbmRzKCp0aW1lKTsKKyAgICB9CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPEF0b21TdHJpbmc+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYs
IGNvbnN0IEF0b21TdHJpbmcmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wg
ZGVjb2RlKERlY29kZXImLCBBdG9tU3RyaW5nJik7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5j
b2Rlcj4KKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgQXRv
bVN0cmluZyYgYXRvbVN0cmluZykKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgYXRvbVN0cmlu
Zy5zdHJpbmcoKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgorICAg
IHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2Rlciwg
QXRvbVN0cmluZyYgYXRvbVN0cmluZykKKyAgICB7CisgICAgICAgIFN0cmluZyBzdHJpbmc7Cisg
ICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RyaW5nKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgICAgICBhdG9tU3RyaW5nID0gc3RyaW5nOworICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENTdHJpbmc+
IHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgY29uc3QgQ1N0cmluZyYpOworCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVj
b2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDU3RyaW5nPiBkZWNvZGUoRGVjb2RlciYp
OwogfTsKIAordGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZSwgdHlwZW5hbWUgRGVjb2Rl
cj4KK3N0YXRpYyBpbmxpbmUgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGRlY29kZVN0cmluZ1RleHQo
RGVjb2RlciYgZGVjb2RlciwgdWludDMyX3QgbGVuZ3RoKQoreworICAgIC8vIEJlZm9yZSBhbGxv
Y2F0aW5nIHRoZSBzdHJpbmcsIG1ha2Ugc3VyZSB0aGF0IHRoZSBkZWNvZGVyIGJ1ZmZlciBpcyBi
aWcgZW5vdWdoLgorICAgIGlmICghZGVjb2Rlci50ZW1wbGF0ZSBidWZmZXJJc0xhcmdlRW5vdWdo
VG9Db250YWluPENoYXJhY3RlclR5cGU+KGxlbmd0aCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICBDaGFyYWN0ZXJUeXBlKiBidWZmZXI7CisgICAgU3RyaW5nIHN0cmluZyA9
IFN0cmluZzo6Y3JlYXRlVW5pbml0aWFsaXplZChsZW5ndGgsIGJ1ZmZlcik7CisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihi
dWZmZXIpLCBsZW5ndGggKiBzaXplb2YoQ2hhcmFjdGVyVHlwZSksIGFsaWdub2YoQ2hhcmFjdGVy
VHlwZSkpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIHN0cmlu
ZzsKK30KKwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxTdHJpbmc+IHsKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVy
JiwgY29uc3QgU3RyaW5nJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRl
Y29kZShEZWNvZGVyJiwgU3RyaW5nJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgLy8gU3BlY2lh
bCBjYXNlIHRoZSBudWxsIHN0cmluZy4KKyAgICAgICAgaWYgKHN0cmluZy5pc051bGwoKSkgewor
ICAgICAgICAgICAgZW5jb2RlciA8PCBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4
KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB1aW50MzJfdCBs
ZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7CisgICAgICAgIGJvb2wgaXM4Qml0ID0gc3RyaW5nLmlz
OEJpdCgpOworCisgICAgICAgIGVuY29kZXIgPDwgbGVuZ3RoIDw8IGlzOEJpdDsKKworICAgICAg
ICBpZiAoaXM4Qml0KQorICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEo
c3RyaW5nLmNoYXJhY3RlcnM4KCksIGxlbmd0aCAqIHNpemVvZihMQ2hhciksIGFsaWdub2YoTENo
YXIpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0
aERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oc3RyaW5nLmNoYXJhY3RlcnMx
NigpKSwgbGVuZ3RoICogc2l6ZW9mKFVDaGFyKSwgYWxpZ25vZihVQ2hhcikpOworICAgIH0KKwog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
U3RyaW5nPiBkZWNvZGUoRGVjb2RlciYpOworICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU3RyaW5nJiByZXN1bHQpCisgICAgeworICAg
ICAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gc3RyaW5nOworICAgICAgICBkZWNvZGVyID4+IHN0
cmluZzsKKyAgICAgICAgaWYgKCFzdHJpbmcpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIHJlc3VsdCA9IFdURk1vdmUoKnN0cmluZyk7CisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CisgICAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8U3RyaW5nPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAg
IHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IGxlbmd0aDsKKyAgICAgICAgZGVjb2RlciA+PiBsZW5n
dGg7CisgICAgICAgIGlmICghbGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgICAgICBpZiAoKmxlbmd0aCA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90
Pjo6bWF4KCkpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIG51bGwgc3RyaW5nLgorICAg
ICAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgICAgICB9CisKKyAgICAgICAgc3RkOjpvcHRp
b25hbDxib29sPiBpczhCaXQ7CisgICAgICAgIGRlY29kZXIgPj4gaXM4Qml0OworICAgICAgICBp
ZiAoIWlzOEJpdCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
aWYgKCppczhCaXQpCisgICAgICAgICAgICByZXR1cm4gZGVjb2RlU3RyaW5nVGV4dDxMQ2hhcj4o
ZGVjb2RlciwgKmxlbmd0aCk7CisgICAgICAgIHJldHVybiBkZWNvZGVTdHJpbmdUZXh0PFVDaGFy
PihkZWNvZGVyLCAqbGVuZ3RoKTsKKyAgICB9CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFNIQTE6OkRpZ2VzdD4gewpAQCAtNzczLDggKzkwNiwxNCBAQCB0ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rva2VuX3Q+IHsKICNlbmRpZgogCiB0ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT4gewotICAgIHN0YXRpYyB2b2lkIGVu
Y29kZShFbmNvZGVyJiwgY29uc3QgTW9ub3N0YXRlJik7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8TW9ub3N0YXRlPiBkZWNvZGUoRGVjb2RlciYpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVu
Y29kZXI+CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBNb25vc3RhdGUm
KSB7IH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CisgICAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8TW9ub3N0YXRlPiBkZWNvZGUoRGVjb2RlciYpCisgICAgeworICAgICAgICByZXR1
cm4gTW9ub3N0YXRlIHsgfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RlY29kZXIuaCBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL0RlY29kZXIuaAppbmRleCA1ZjRlMmE2YWEzYzRkNzM2MThkZGY0ZTkw
MzA1ZTdmOTFhMTY3MjNjLi4xMTkxYTFmYTQwMTM2MzFhODUwM2ViODFjYjUxMjMzMWVjZmFjYmUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9EZWNvZGVyLmgKKysrIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGVjb2Rlci5oCkBAIC0xMTUsMTAgKzExNSw3IEBA
IHB1YmxpYzoKICAgICAgICAgICAgIGlmIChVTkxJS0VMWSghdCkpCiAgICAgICAgICAgICAgICAg
bWFya0ludmFsaWQoKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIFQgdjsKLSAgICAg
ICAgICAgIGlmIChMSUtFTFkoSW1wbDo6ZGVjb2RlKCp0aGlzLCB2KSkpCi0gICAgICAgICAgICAg
ICAgdCA9IFdURk1vdmUodik7Ci0gICAgICAgICAgICBlbHNlCisgICAgICAgICAgICBpZiAoVU5M
SUtFTFkoIUltcGw6OmRlY29kZSgqdGhpcywgdC52YWx1ZSgpKSkpCiAgICAgICAgICAgICAgICAg
bWFya0ludmFsaWQoKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gKnRoaXM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBmYWJjZWY2
YzIxMjUyM2VmMDFjYzg5YTQ5ODQ2MDA2ZDhlYTJkZjkzLi4xZDVhNmQ2YTE4ZjZlN2M3MTI2Y2Nh
YTc5ZTYyZTNjZTc3MDQ2NGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHAKQEAgLTg4LDcgKzg4LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Rl
eHRDaGVja2VyQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9UaW1pbmdGdW5jdGlvbi5oPgotI2luY2x1ZGUgPFdlYkNvcmUvVHJh
bnNmb3JtYXRpb25NYXRyaXguaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJTdHlsZVNoZWV0Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9WZWxvY2l0eURhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Zp
ZXdwb3J0QXJndW1lbnRzLmg+CkBAIC0yMzEsMTYgKzIzMCw2IEBAIHN0YXRpYyBXQVJOX1VOVVNF
RF9SRVRVUk4gYm9vbCBkZWNvZGVUeXBlc0FuZERhdGEoRGVjb2RlciYgZGVjb2RlciwgVmVjdG9y
PFN0cmluCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxBZmZpbmVU
cmFuc2Zvcm0+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiBhZmZpbmVUcmFuc2Zvcm0pCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxBZmZpbmVUcmFu
c2Zvcm0+OjplbmNvZGUoZW5jb2RlciwgYWZmaW5lVHJhbnNmb3JtKTsKLX0KLQotYm9vbCBBcmd1
bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBBZmZp
bmVUcmFuc2Zvcm0mIGFmZmluZVRyYW5zZm9ybSkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1l
bnRDb2RlcjxBZmZpbmVUcmFuc2Zvcm0+OjpkZWNvZGUoZGVjb2RlciwgYWZmaW5lVHJhbnNmb3Jt
KTsKLX0KLQogdm9pZCBBcmd1bWVudENvZGVyPENhY2hlUXVlcnlPcHRpb25zPjo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IENhY2hlUXVlcnlPcHRpb25zJiBvcHRpb25zKQogewogICAg
IGVuY29kZXIgPDwgb3B0aW9ucy5pZ25vcmVTZWFyY2g7CkBAIC00MjUsODcgKzQxNCw2IEBAIGJv
b2wgQXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBFdmVudFRyYWNraW5nCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1l
bnRDb2RlcjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtYXRpb25NYXRyaXgpCi17Ci0gICAg
ZW5jb2RlciA8PCB0cmFuc2Zvcm1hdGlvbk1hdHJpeC5tMTEoKTsKLSAgICBlbmNvZGVyIDw8IHRy
YW5zZm9ybWF0aW9uTWF0cml4Lm0xMigpOwotICAgIGVuY29kZXIgPDwgdHJhbnNmb3JtYXRpb25N
YXRyaXgubTEzKCk7Ci0gICAgZW5jb2RlciA8PCB0cmFuc2Zvcm1hdGlvbk1hdHJpeC5tMTQoKTsK
LQotICAgIGVuY29kZXIgPDwgdHJhbnNmb3JtYXRpb25NYXRyaXgubTIxKCk7Ci0gICAgZW5jb2Rl
ciA8PCB0cmFuc2Zvcm1hdGlvbk1hdHJpeC5tMjIoKTsKLSAgICBlbmNvZGVyIDw8IHRyYW5zZm9y
bWF0aW9uTWF0cml4Lm0yMygpOwotICAgIGVuY29kZXIgPDwgdHJhbnNmb3JtYXRpb25NYXRyaXgu
bTI0KCk7Ci0KLSAgICBlbmNvZGVyIDw8IHRyYW5zZm9ybWF0aW9uTWF0cml4Lm0zMSgpOwotICAg
IGVuY29kZXIgPDwgdHJhbnNmb3JtYXRpb25NYXRyaXgubTMyKCk7Ci0gICAgZW5jb2RlciA8PCB0
cmFuc2Zvcm1hdGlvbk1hdHJpeC5tMzMoKTsKLSAgICBlbmNvZGVyIDw8IHRyYW5zZm9ybWF0aW9u
TWF0cml4Lm0zNCgpOwotCi0gICAgZW5jb2RlciA8PCB0cmFuc2Zvcm1hdGlvbk1hdHJpeC5tNDEo
KTsKLSAgICBlbmNvZGVyIDw8IHRyYW5zZm9ybWF0aW9uTWF0cml4Lm00MigpOwotICAgIGVuY29k
ZXIgPDwgdHJhbnNmb3JtYXRpb25NYXRyaXgubTQzKCk7Ci0gICAgZW5jb2RlciA8PCB0cmFuc2Zv
cm1hdGlvbk1hdHJpeC5tNDQoKTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0
aW9uTWF0cml4Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFRyYW5zZm9ybWF0aW9uTWF0cml4
JiB0cmFuc2Zvcm1hdGlvbk1hdHJpeCkKLXsKLSAgICBkb3VibGUgbTExOwotICAgIGlmICghZGVj
b2Rlci5kZWNvZGUobTExKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGRvdWJsZSBtMTI7
Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShtMTIpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgZG91YmxlIG0xMzsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG0xMykpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICBkb3VibGUgbTE0OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUobTE0
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgZG91YmxlIG0yMTsKLSAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKG0yMSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBkb3VibGUgbTIy
OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUobTIyKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIGRvdWJsZSBtMjM7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShtMjMpKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgZG91YmxlIG0yNDsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG0y
NCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGRvdWJsZSBtMzE7Ci0gICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShtMzEpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgZG91YmxlIG0z
MjsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG0zMikpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICBkb3VibGUgbTMzOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUobTMzKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIGRvdWJsZSBtMzQ7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZSht
MzQpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBkb3VibGUgbTQxOwotICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUobTQxKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGRvdWJsZSBt
NDI7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShtNDIpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgZG91YmxlIG00MzsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG00MykpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICBkb3VibGUgbTQ0OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
bTQ0KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgdHJhbnNmb3JtYXRpb25NYXRyaXgu
c2V0TWF0cml4KG0xMSwgbTEyLCBtMTMsIG0xNCwgbTIxLCBtMjIsIG0yMywgbTI0LCBtMzEsIG0z
MiwgbTMzLCBtMzQsIG00MSwgbTQyLCBtNDMsIG00NCk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0K
IHZvaWQgQXJndW1lbnRDb2RlcjxMaW5lYXJUaW1pbmdGdW5jdGlvbj46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBMaW5lYXJUaW1pbmdGdW5jdGlvbiYgdGltaW5nRnVuY3Rpb24pCiB7
CiAgICAgZW5jb2RlciA8PCB0aW1pbmdGdW5jdGlvbi50eXBlKCk7CkBAIC02MTcsODYgKzUyNSw2
IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxTcHJpbmdUaW1pbmdGdW5jdGlvbj46OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyLCBTcHJpbmdUaW1pbmdGCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQg
QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IEZsb2F0UG9pbnQmIGZsb2F0UG9pbnQpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9h
dFBvaW50Pjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0UG9pbnQpOwotfQotCi1ib29sIEFyZ3VtZW50
Q29kZXI8RmxvYXRQb2ludD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFBvaW50JiBm
bG9hdFBvaW50KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+
OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRQb2ludCk7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8RmxvYXRQ
b2ludD4gQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIp
Ci17Ci0gICAgRmxvYXRQb2ludCBmbG9hdFBvaW50OwotICAgIGlmICghU2ltcGxlQXJndW1lbnRD
b2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0UG9pbnQpKQotICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBmbG9hdFBvaW50OwotfQotCi12b2lkIEFy
Z3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IEZsb2F0UG9pbnQzRCYgZmxvYXRQb2ludCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZs
b2F0UG9pbnQzRD46OmVuY29kZShlbmNvZGVyLCBmbG9hdFBvaW50KTsKLX0KLQotYm9vbCBBcmd1
bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFBv
aW50M0QmIGZsb2F0UG9pbnQpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8Rmxv
YXRQb2ludDNEPjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0UG9pbnQpOwotfQotCi0KLXZvaWQgQXJn
dW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxv
YXRSZWN0JiBmbG9hdFJlY3QpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+
OjplbmNvZGUoZW5jb2RlciwgZmxvYXRSZWN0KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZs
b2F0UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFJlY3QmIGZsb2F0UmVjdCkK
LXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjpkZWNvZGUoZGVj
b2RlciwgZmxvYXRSZWN0KTsKLX0KLQotc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+IEFyZ3VtZW50
Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgRmxvYXRS
ZWN0IGZsb2F0UmVjdDsKLSAgICBpZiAoIVNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6
ZGVjb2RlKGRlY29kZXIsIGZsb2F0UmVjdCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
Ci0gICAgcmV0dXJuIGZsb2F0UmVjdDsKLX0KLQotCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRC
b3hFeHRlbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRCb3hFeHRlbnQm
IGZsb2F0Qm94RXh0ZW50KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRCb3hFeHRl
bnQ+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRCb3hFeHRlbnQpOwotfQotICAgIAotYm9vbCBBcmd1
bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEZsb2F0
Qm94RXh0ZW50JiBmbG9hdEJveEV4dGVudCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRD
b2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZShkZWNvZGVyLCBmbG9hdEJveEV4dGVudCk7Ci19
Ci0gICAgCi0KLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgRmxvYXRTaXplJiBmbG9hdFNpemUpCi17Ci0gICAgU2ltcGxlQXJndW1l
bnRDb2RlcjxGbG9hdFNpemU+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRTaXplKTsKLX0KLQotYm9v
bCBBcmd1bWVudENvZGVyPEZsb2F0U2l6ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9h
dFNpemUmIGZsb2F0U2l6ZSkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9h
dFNpemU+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRTaXplKTsKLX0KLQotCi12b2lkIEFyZ3VtZW50
Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBG
bG9hdFJvdW5kZWRSZWN0JiByb3VuZGVkUmVjdCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVy
PEZsb2F0Um91bmRlZFJlY3Q+OjplbmNvZGUoZW5jb2Rlciwgcm91bmRlZFJlY3QpOwotfQotCi1i
b29sIEFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyLCBGbG9hdFJvdW5kZWRSZWN0JiByb3VuZGVkUmVjdCkKLXsKLSAgICByZXR1cm4gU2ltcGxl
QXJndW1lbnRDb2RlcjxGbG9hdFJvdW5kZWRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIHJvdW5kZWRS
ZWN0KTsKLX0KLQogI2lmIEVOQUJMRShNRVRBX1ZJRVdQT1JUKQogdm9pZCBBcmd1bWVudENvZGVy
PFZpZXdwb3J0QXJndW1lbnRzPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFZpZXdw
b3J0QXJndW1lbnRzJiB2aWV3cG9ydEFyZ3VtZW50cykKIHsKQEAgLTcyOCw4NyArNTU2LDYgQEAg
Ym9vbCBBcmd1bWVudENvZGVyPFZpZXdwb3J0QXR0cmlidXRlcz46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBWaWV3cG9ydEF0dHJpYnUKICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxW
aWV3cG9ydEF0dHJpYnV0ZXM+OjpkZWNvZGUoZGVjb2Rlciwgdmlld3BvcnRBdHRyaWJ1dGVzKTsK
IH0KIAotdm9pZCBBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IEludFBvaW50JiBpbnRQb2ludCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVy
PEludFBvaW50Pjo6ZW5jb2RlKGVuY29kZXIsIGludFBvaW50KTsKLX0KLQotYm9vbCBBcmd1bWVu
dENvZGVyPEludFBvaW50Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEludFBvaW50JiBpbnRQ
b2ludCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29k
ZShkZWNvZGVyLCBpbnRQb2ludCk7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UG9p
bnQ+IEFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsK
LSAgICBJbnRQb2ludCBpbnRQb2ludDsKLSAgICBpZiAoIVNpbXBsZUFyZ3VtZW50Q29kZXI8SW50
UG9pbnQ+OjpkZWNvZGUoZGVjb2RlciwgaW50UG9pbnQpKQotICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwotICAgIHJldHVybiBpbnRQb2ludDsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPElu
dFJlY3Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgSW50UmVjdCYgaW50UmVjdCkK
LXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEludFJlY3Q+OjplbmNvZGUoZW5jb2RlciwgaW50
UmVjdCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIEludFJlY3QmIGludFJlY3QpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50
Q29kZXI8SW50UmVjdD46OmRlY29kZShkZWNvZGVyLCBpbnRSZWN0KTsKLX0KLQotc3RkOjpvcHRp
b25hbDxJbnRSZWN0PiBBcmd1bWVudENvZGVyPEludFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKLXsKLSAgICBJbnRSZWN0IHJlY3Q7Ci0gICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgcmVj
dCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIHJlY3Q7Ci19Ci0K
LXRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+Ci12b2lkIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJbnRTaXplJiBpbnRTaXplKQotewotICAg
IFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZShlbmNvZGVyLCBpbnRTaXplKTsK
LX0KLQotdGVtcGxhdGUKLXZvaWQgQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZW5jb2RlPEVuY29k
ZXI+KEVuY29kZXImLCBjb25zdCBJbnRTaXplJik7Ci10ZW1wbGF0ZQotdm9pZCBBcmd1bWVudENv
ZGVyPEludFNpemU+OjplbmNvZGU8U3RyZWFtQ29ubmVjdGlvbkVuY29kZXI+KFN0cmVhbUNvbm5l
Y3Rpb25FbmNvZGVyJiwgY29uc3QgSW50U2l6ZSYpOwotCi1ib29sIEFyZ3VtZW50Q29kZXI8SW50
U2l6ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBJbnRTaXplJiBpbnRTaXplKQotewotICAg
IHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEludFNpemU+OjpkZWNvZGUoZGVjb2RlciwgaW50
U2l6ZSk7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8SW50U2l6ZT4gQXJndW1lbnRDb2RlcjxJbnRTaXpl
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgSW50U2l6ZSBpbnRTaXplOwotICAg
IGlmICghU2ltcGxlQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZGVjb2RlKGRlY29kZXIsIGludFNp
emUpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBpbnRTaXplOwot
fQotCi12b2lkIEFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBMYXlvdXRTaXplJiBsYXlvdXRTaXplKQotewotICAgIFNpbXBsZUFyZ3VtZW50
Q29kZXI8TGF5b3V0U2l6ZT46OmVuY29kZShlbmNvZGVyLCBsYXlvdXRTaXplKTsKLX0KLQotYm9v
bCBBcmd1bWVudENvZGVyPExheW91dFNpemU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTGF5
b3V0U2l6ZSYgbGF5b3V0U2l6ZSkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxM
YXlvdXRTaXplPjo6ZGVjb2RlKGRlY29kZXIsIGxheW91dFNpemUpOwotfQotCi0KLXZvaWQgQXJn
dW1lbnRDb2RlcjxMYXlvdXRQb2ludD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBM
YXlvdXRQb2ludCYgbGF5b3V0UG9pbnQpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxMYXlv
dXRQb2ludD46OmVuY29kZShlbmNvZGVyLCBsYXlvdXRQb2ludCk7Ci19Ci0KLWJvb2wgQXJndW1l
bnRDb2RlcjxMYXlvdXRQb2ludD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBMYXlvdXRQb2lu
dCYgbGF5b3V0UG9pbnQpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0
UG9pbnQ+OjpkZWNvZGUoZGVjb2RlciwgbGF5b3V0UG9pbnQpOwotfQotCiB2b2lkIEFyZ3VtZW50
Q29kZXI8UmVjZW50U2VhcmNoPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlY2Vu
dFNlYXJjaCYgcmVjZW50U2VhcmNoKQogewogICAgIGVuY29kZXIgPDwgcmVjZW50U2VhcmNoLnN0
cmluZyA8PCByZWNlbnRTZWFyY2gudGltZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggNTQ1OTc1YTBkZjE1MDFiZTg4MTM1NDlhOTAxYWRkMDcx
YmUwMWY5Ni4uMDA1NjRhYmU2ZTIzYWE1ZjY4YjQ2OTAyOTM2NzcxZWUzMjM1MWRhZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTQyLDYgKzQy
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TdG9yZWRDcmVkZW50aWFsc1BvbGljeS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVHJhbnNm
b3JtYXRpb25NYXRyaXguaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dvcmtlclR5cGUuaD4KICNpbmNs
dWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCkBAIC0xNDAsNyArMTQxLDYgQEAgY2xhc3MgU3ByaW5n
VGltaW5nRnVuY3Rpb247CiBjbGFzcyBTdGVwc1RpbWluZ0Z1bmN0aW9uOwogY2xhc3MgU3RpY2t5
UG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzOwogY2xhc3MgVGV4dENoZWNraW5nUmVxdWVzdERh
dGE7Ci1jbGFzcyBUcmFuc2Zvcm1hdGlvbk1hdHJpeDsKIGNsYXNzIFVzZXJTdHlsZVNoZWV0Owog
CiBzdHJ1Y3QgQXR0cmlidXRlZFN0cmluZzsKQEAgLTIyNywxMCArMjI3LDI2IEBAIHN0cnVjdCBS
ZWNvcmQ7CiAKIG5hbWVzcGFjZSBJUEMgewogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShF
bmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJik7Ci0gICAgc3RhdGljIFdB
Uk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6QWZmaW5lVHJh
bnNmb3JtJik7Ci19OworREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpBZmZp
bmVUcmFuc2Zvcm0pCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6OkZsb2F0
UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6OkZsb2F0UG9pbnQz
RCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6RmxvYXRSZWN0KQorREVG
SU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpGbG9hdEJveEV4dGVudCkKK0RFRklO
RV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6RmxvYXRTaXplKQorREVGSU5FX1NJTVBM
RV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0KQorREVGSU5FX1NJTVBM
RV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpJbnRQb2ludCkKK0RFRklORV9TSU1QTEVfQVJHVU1F
TlRfQ09ERVIoV2ViQ29yZTo6SW50UmVjdCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIo
V2ViQ29yZTo6SW50U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6
TGF5b3V0U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6TGF5b3V0
UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6OlRyYW5zZm9ybWF0
aW9uTWF0cml4KQorCisjaWYgVVNFKENHKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihD
R1JlY3QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKENHU2l6ZSkKK0RFRklORV9TSU1Q
TEVfQVJHVU1FTlRfQ09ERVIoQ0dQb2ludCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIo
Q0dBZmZpbmVUcmFuc2Zvcm0pCisjZW5kaWYKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpBdHRyaWJ1dGVkU3RyaW5nPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpBdHRyaWJ1dGVkU3RyaW5nJik7CkBAIC0yNjcsMTEg
KzI4Myw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RXZlbnRU
cmFja2luZ1JlZ2lvbnM+IHsKICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlKERlY29kZXImLCBXZWJDb3JlOjpFdmVudFRyYWNraW5nUmVnaW9ucyYpOwogfTsKIAotdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJp
eD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VHJh
bnNmb3JtYXRpb25NYXRyaXgmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wg
ZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwotfTsKLQog
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMaW5lYXJUaW1pbmdGdW5j
dGlvbj4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6
TGluZWFyVGltaW5nRnVuY3Rpb24mKTsKICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJv
b2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpMaW5lYXJUaW1pbmdGdW5jdGlvbiYpOwpAQCAt
Mjk5LDM4ICszMTAsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OkNlcnRpZmljYXRlSW5mbz4gewogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNl
cnRpZmljYXRlSW5mbz4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVu
Y29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwotICAgIHN0YXRpYyBX
QVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UG9p
bnQmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBkZWNv
ZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpGbG9hdFBvaW50M0Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRV
Uk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotfTsKLQot
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFJlY3Q+IHsKLSAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYp
OwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdl
YkNvcmU6OkZsb2F0UmVjdCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZs
b2F0UmVjdD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0gICAgCi10ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50PiB7Ci0gICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYpOwotICAgIHN0
YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZs
b2F0Qm94RXh0ZW50Jik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkZsb2F0U2l6ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBi
b29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6RmxvYXRTaXplJik7Ci19OwotCi10ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q+IHsKLSAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Um91bmRl
ZFJlY3QmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29k
ZXImLCBXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0Jik7Ci19OwotCiAjaWYgRU5BQkxFKE1FVEFf
VklFV1BPUlQpCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlZpZXdw
b3J0QXJndW1lbnRzPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBX
ZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYpOwpAQCAtMzQ1LDM1ICszMjQsNiBAQCB0ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcz4gewog
ICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNv
cmU6OlZpZXdwb3J0QXR0cmlidXRlcyYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpJbnRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNv
ZGVyJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURf
UkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpJbnRQb2ludCYpOwotICAgIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiBkZWNvZGUoRGVjb2RlciYpOwot
fTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRSZWN0PiB7
Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
Jik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwg
V2ViQ29yZTo6SW50UmVjdCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Oklu
dFJlY3Q+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OkludFNpemU+IHsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
PgotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYs
IFdlYkNvcmU6OkludFNpemUmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJ
bnRTaXplPiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpMYXlvdXRTaXplPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVu
Y29kZXImLCBjb25zdCBXZWJDb3JlOjpMYXlvdXRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5V
U0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6TGF5b3V0U2l6ZSYpOwot
fTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMYXlvdXRQb2lu
dD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6TGF5
b3V0UG9pbnQmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERl
Y29kZXImLCBXZWJDb3JlOjpMYXlvdXRQb2ludCYpOwotfTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMZW5ndGg+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6Okxlbmd0aCYpOwogICAgIHN0YXRpYyBXQVJOX1VOVVNF
RF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6Okxlbmd0aCYpOwpAQCAtNDUy
LDYgKzQwMiw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RHJh
Z0RhdGE+IHsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisKIHRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpNYWNoU2VuZFJpZ2h0PiB7CiAgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImLCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmKTsKICAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYsIFdURjo6TWFjaFNlbmRSaWdodCYmKTsKQEAgLTQ2MywyNiAr
NDE0LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpLZXlwcmVz
c0NvbW1hbmQ+IHsKICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpLZXlwcmVzc0Nv
bW1hbmQ+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPENHUG9pbnQ+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIENHUG9p
bnQpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENHUG9pbnQ+IGRlY29kZShEZWNvZGVyJik7
Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHU2l6ZT4gewotICAgIHN0
YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dTaXplKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRp
b25hbDxDR1NpemU+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPENHUmVjdD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwg
Q0dSZWN0KTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDR1JlY3Q+IGRlY29kZShEZWNvZGVy
Jik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNm
b3JtPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBDR0FmZmluZVRyYW5zZm9y
bSk7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q0dBZmZpbmVUcmFuc2Zvcm0+IGRlY29kZShE
ZWNvZGVyJik7Ci19OwotI2VuZGlmCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpTZWxlY3Rpb25HZW9tZXRyeT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KaW5kZXggOGU0ZDVmMTMxZDgyZjFkZWZl
MjZkMTVhYmZlZTA2NGEzYjk4OTBmOC4uNmE0MzQwNjcxNDYzZDk0NzA3MTkyMzEwYjFmN2JhMGJk
MDNhNzZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1
bWVudENvZGVyc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzTWFjLm1tCkBAIC0zMjEsNzkgKzMyMSw2IEBAIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6S2V5cHJlc3NDb21tYW5kPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OktleXByZXNzQ29t
bWFuZD46CiAgICAgcmV0dXJuIFdURk1vdmUoY29tbWFuZCk7CiB9CiAKLXZvaWQgQXJndW1lbnRD
b2RlcjxDR1JlY3Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0dSZWN0IHJlY3QpCi17Ci0g
ICAgZW5jb2RlciA8PCByZWN0Lm9yaWdpbiA8PCByZWN0LnNpemU7Ci19Ci0KLXN0ZDo6b3B0aW9u
YWw8Q0dSZWN0PiBBcmd1bWVudENvZGVyPENHUmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQotewotICAgIHN0ZDo6b3B0aW9uYWw8Q0dQb2ludD4gb3JpZ2luOwotICAgIGRlY29kZXIgPj4g
b3JpZ2luOwotICAgIGlmICghb3JpZ2luKQotICAgICAgICByZXR1cm4geyB9OwotCi0gICAgc3Rk
OjpvcHRpb25hbDxDR1NpemU+IHNpemU7Ci0gICAgZGVjb2RlciA+PiBzaXplOwotICAgIGlmICgh
c2l6ZSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLQotICAgIHJldHVybiBDR1JlY3QgeyAqb3JpZ2lu
LCAqc2l6ZSB9OwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIENHU2l6ZSBzaXplKQotewotICAgIGVuY29kZXIgPDwgc2l6ZS53aWR0aCA8
PCBzaXplLmhlaWdodDsKLX0KLQotc3RkOjpvcHRpb25hbDxDR1NpemU+IEFyZ3VtZW50Q29kZXI8
Q0dTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgQ0dTaXplIHNpemU7Ci0g
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaXplLndpZHRoKSkKLSAgICAgICAgcmV0dXJuIHsgfTsK
LSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUuaGVpZ2h0KSkKLSAgICAgICAgcmV0dXJuIHsg
fTsKLSAgICByZXR1cm4gc2l6ZTsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPENHUG9pbnQ+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0dQb2ludCBwb2ludCkKLXsKLSAgICBlbmNvZGVyIDw8
IHBvaW50LnggPDwgcG9pbnQueTsKLX0KLQotc3RkOjpvcHRpb25hbDxDR1BvaW50PiBBcmd1bWVu
dENvZGVyPENHUG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBDR1BvaW50
IHBvaW50OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9pbnQueCkpCi0gICAgICAgIHJldHVy
biB7IH07Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb2ludC55KSkKLSAgICAgICAgcmV0dXJu
IHsgfTsKLSAgICByZXR1cm4gcG9pbnQ7Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxDR0FmZmlu
ZVRyYW5zZm9ybT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR0FmZmluZVRyYW5zZm9ybSB0
cmFuc2Zvcm0pCi17Ci0gICAgZW5jb2RlciA8PCB0cmFuc2Zvcm0uYSA8PCB0cmFuc2Zvcm0uYiA8
PCB0cmFuc2Zvcm0uYyA8PCB0cmFuc2Zvcm0uZCA8PCB0cmFuc2Zvcm0udHggPDwgdHJhbnNmb3Jt
LnR5OwotfQotCi1zdGQ6Om9wdGlvbmFsPENHQWZmaW5lVHJhbnNmb3JtPiBBcmd1bWVudENvZGVy
PENHQWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgQ0dB
ZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNm
b3JtLmEpKQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJh
bnNmb3JtLmIpKQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
dHJhbnNmb3JtLmMpKQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUodHJhbnNmb3JtLmQpKQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUodHJhbnNmb3JtLnR4KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHRyYW5zZm9ybS50eSkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgcmV0dXJu
IHRyYW5zZm9ybTsKLX0KLQogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKIAogdm9pZCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcj46OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hh
bmRsZXImIGNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439089</attachid>
            <date>2021-09-23 14:00:09 -0700</date>
            <delta_ts>2021-09-23 15:39:40 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-230714-20210923140008.patch</filename>
            <type>text/plain</type>
            <size>45257</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyOTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc0YjJhNTIwYzc0NWQzMjBi
ZGQ5YTg5NTIyM2Q3NzkzMTYzMTY2NDQuLjA5ODQ0ZDAzNjBkNjExMDE1Nzk5NmNlOGY1OTk5ODYw
MDlkOTEyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODQgQEAKKzIwMjEtMDktMjMgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIFJlZmFj
dG9yIHNvbWUgSVBDIGFyZ3VtZW50IGVuY29kZXIgbG9naWMgdG8gd29yayB3aXRoIFN0cmVhbUNv
bm5lY3Rpb25FbmNvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA3MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBNYWtlIGl0IHBvc3NpYmxlIHRvIHVzZSBgSVBDOjpTdHJlYW1Db25uZWN0aW9uRW5j
b2RlcmAgdG8gZW5jb2RlIGRpc3BsYXkgbGlzdCBpdGVtcyAoYW5kIHRoZWlyIG1lbWJlcnMpIGlu
IGFuCisgICAgICAgIElQQyBzdHJlYW0uIFRoaXMgcGF0Y2ggY29tcHJpc2VzIHR3byBtYWluIHNl
dHMgb2YgY2hhbmdlcyBpbiBgQXJndW1lbnRDb2RlcnNgLCBhbmQgYFdlYkNvcmVBcmd1bWVudENv
ZGVyc2AuIFNlZQorICAgICAgICBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICog
UGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxhdWRpdF90b2tlbl90Pjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxXYWxsVGltZT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8V2FsbFRpbWU+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPEF0b21TdHJpbmc+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVu
dENvZGVyPEF0b21TdHJpbmc+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPFN0cmluZz46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OmRlY29k
ZVN0cmluZ1RleHQpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFN0cmlu
Zz46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TW9ub3N0
YXRlPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNb25v
c3RhdGU+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVu
dENvZGVycy5oOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZW5jb2Rl
KToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxXYWxsVGltZT46OmRlY29kZSk6CisgICAg
ICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QXRvbVN0cmluZz46OmVuY29kZSk6CisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8QXRvbVN0cmluZz46OmRlY29kZSk6CisgICAgICAgIChJUEM6OmRl
Y29kZVN0cmluZ1RleHQpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFN0cmluZz46OmVu
Y29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8U3RyaW5nPjo6ZGVjb2RlKToKKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNb25vc3RhdGU+OjplbmNvZGUpOgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT46OmRlY29kZSk6CisKKyAgICAgICAgTWFueSBv
ZiB0aGVzZSBgZW5jb2RlKClgIG1ldGhvZHMgYXJlIGN1cnJlbnRseSBub24tdGVtcGxhdGVkLCB3
aGljaCBtZWFucyB0aGF0IEVuY29kZXIgYW5kIERlY29kZXIgdXNlZCBoZXJlCisgICAgICAgIHJl
ZmVyIHNvbGVseSB0byBJUEM6OkVuY29kZXIgYW5kIElQQzo6RGVjb2RlciAocmVzcGVjdGl2ZWx5
KSBpbnN0ZWFkIG9mIG90aGVyIHR5cGVzIG9mIGVuY29kZXJzIChuYW1lbHksCisgICAgICAgIFN0
cmVhbUNvbm5lY3Rpb25FbmNvZGVyKS4KKworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9y
bT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QWZmaW5l
VHJhbnNmb3JtPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+OjpkZWNvZGUpOiBEZWxldGVkLgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjplbmNvZGUpOiBEZWxldGVk
LgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUpOiBEZWxl
dGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZGVj
b2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46
OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRCb3hF
eHRlbnQ+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZs
b2F0Qm94RXh0ZW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxGbG9hdFNpemU+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVu
dENvZGVyPEZsb2F0U2l6ZT46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46OmRlY29kZSk6IERlbGV0ZWQuCisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjplbmNvZGUpOiBEZWxldGVkLgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZW5jb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZGVjb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZW5jb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZGVjb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxMYXlvdXRTaXplPjo6ZW5jb2RlKTogRGVsZXRl
ZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxMYXlvdXRTaXplPjo6ZGVjb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+OjpkZWNv
ZGUpOiBEZWxldGVkLgorCisgICAgICAgIFRoZXNlIFdlYkNvcmUgYXJndW1lbnQgY29kZXJzIGFy
ZSBhbHNvIGN1cnJlbnRseSBpbmNvbXBhdGlibGUgd2l0aCBTdHJlYW1Db25uZWN0aW9uRW5jb2Rl
ciwgc2luY2UgdGhleSBhcmUgbm9uLQorICAgICAgICB0ZW1wbGF0ZWQgKGFuZCB0aHVzIG9ubHkg
d29yayB3aXRoIElQQzo6RW5jb2RlcikuIFNpbmNlIHRoZXNlIGFyZSBhbGwgZW5jb2RhYmxlIGFz
IFBPRCB0eXBlcywgd2UgY2FuIGp1c3QgdXNlCisgICAgICAgIFNpbXBsZUFyZ3VtZW50Q29kZXIg
Zm9yIGFsbCBvZiB0aGVzZS4gV2UgYWxzbyBhZGQgYSBuZXcgYERFRklORV9TSU1QTEVfQVJHVU1F
TlRfQ09ERVJgIG1hY3JvIHRvIG1ha2UgdGhpcyBjb2RlIGEKKyAgICAgICAgYml0IGVhc2llciB0
byByZWFkLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAg
ICAgICAqIFNoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tOgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPENHUmVjdD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8Q0dSZWN0Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxDR1NpemU+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPENHU2l6ZT46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+OjplbmNvZGUpOiBEZWxldGVkLgorICAg
ICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKTogRGVs
ZXRlZC4KKwogMjAyMS0wOS0yMyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNv
bT4KIAogICAgICAgICBzaG91bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrIHNo
b3VsZCB1c2UgV2ViQ29yZSdzIGxpbmtlZE9uT3JBZnRlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKaW5kZXggYTMyMDU1MTg3OThiNzRkY2VkYjhh
MDEzZjljOWM5ODg1YWFlNjYxNi4uM2RmYzMwNTgwZWE5ZjFlYWNjY2MyMzAxMGQ2ODE2MGVmNTMz
NGI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2Rl
cnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNw
cApAQCAtMzUsNTUgKzM1LDYgQEAKIAogbmFtZXNwYWNlIElQQyB7CiAKLXRlbXBsYXRlPHR5cGVu
YW1lIEVuY29kZXI+Ci12b2lkIEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgV2FsbFRpbWUmIHRpbWUpCi17Ci0gICAgZW5jb2RlciA8PCB0aW1l
LnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKTsKLX0KLXRlbXBsYXRlCi12b2lkIEFyZ3VtZW50
Q29kZXI8V2FsbFRpbWU+OjplbmNvZGU8RW5jb2Rlcj4oRW5jb2RlciYsIGNvbnN0IFdhbGxUaW1l
Jik7Ci10ZW1wbGF0ZQotdm9pZCBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZW5jb2RlPFdlYktp
dDo6UENNOjpFbmNvZGVyPihXZWJLaXQ6OlBDTTo6RW5jb2RlciYsIGNvbnN0IFdhbGxUaW1lJik7
Ci0KLVdBUk5fVU5VU0VEX1JFVFVSTiBib29sIEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgV2FsbFRpbWUmIHRpbWUpCi17Ci0gICAgZG91YmxlIHZhbHVl
OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodmFsdWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICB0aW1lID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHZhbHVlKTsKLSAgICByZXR1
cm4gdHJ1ZTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KLVdBUk5fVU5VU0VEX1JF
VFVSTiBzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IHRpbWU7
Ci0gICAgZGVjb2RlciA+PiB0aW1lOwotICAgIGlmICghdGltZSkKLSAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKLSAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKCp0aW1lKTsK
LX0KLXRlbXBsYXRlCi1zdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBBcmd1bWVudENvZGVyPFdhbGxU
aW1lPjo6ZGVjb2RlPERlY29kZXI+KERlY29kZXImKTsKLXRlbXBsYXRlCi1zdGQ6Om9wdGlvbmFs
PFdhbGxUaW1lPiBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlPFdlYktpdDo6UENNOjpE
ZWNvZGVyPihXZWJLaXQ6OlBDTTo6RGVjb2RlciYpOwotCi12b2lkIEFyZ3VtZW50Q29kZXI8QXRv
bVN0cmluZz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBBdG9tU3RyaW5nJiBhdG9t
U3RyaW5nKQotewotICAgIGVuY29kZXIgPDwgYXRvbVN0cmluZy5zdHJpbmcoKTsKLX0KLQotV0FS
Tl9VTlVTRURfUkVUVVJOIGJvb2wgQXJndW1lbnRDb2RlcjxBdG9tU3RyaW5nPjo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIsIEF0b21TdHJpbmcmIGF0b21TdHJpbmcpCi17Ci0gICAgU3RyaW5nIHN0
cmluZzsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0cmluZykpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLQotICAgIGF0b21TdHJpbmcgPSBzdHJpbmc7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0K
IHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiB2b2lkIEFyZ3VtZW50Q29kZXI8Q1N0cmluZz46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDU3RyaW5nJiBzdHJpbmcpCiB7CkBAIC0x
MjksODQgKzgwLDYgQEAgc3RkOjpvcHRpb25hbDxDU3RyaW5nPiBBcmd1bWVudENvZGVyPENTdHJp
bmc+OjpkZWNvZGU8RGVjb2Rlcj4oRGVjb2RlciYpOwogdGVtcGxhdGUKIHN0ZDo6b3B0aW9uYWw8
Q1N0cmluZz4gQXJndW1lbnRDb2RlcjxDU3RyaW5nPjo6ZGVjb2RlPFdlYktpdDo6UENNOjpEZWNv
ZGVyPihXZWJLaXQ6OlBDTTo6RGVjb2RlciYpOwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
Pgotdm9pZCBBcmd1bWVudENvZGVyPFN0cmluZz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBTdHJpbmcmIHN0cmluZykKLXsKLSAgICAvLyBTcGVjaWFsIGNhc2UgdGhlIG51bGwgc3Ry
aW5nLgotICAgIGlmIChzdHJpbmcuaXNOdWxsKCkpIHsKLSAgICAgICAgZW5jb2RlciA8PCBzdGQ6
Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICB1aW50MzJfdCBsZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7Ci0gICAgYm9vbCBpczhC
aXQgPSBzdHJpbmcuaXM4Qml0KCk7Ci0KLSAgICBlbmNvZGVyIDw8IGxlbmd0aCA8PCBpczhCaXQ7
Ci0KLSAgICBpZiAoaXM4Qml0KQotICAgICAgICBlbmNvZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0
YShzdHJpbmcuY2hhcmFjdGVyczgoKSwgbGVuZ3RoICogc2l6ZW9mKExDaGFyKSwgYWxpZ25vZihM
Q2hhcikpOwotICAgIGVsc2UKLSAgICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEo
cmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oc3RyaW5nLmNoYXJhY3RlcnMxNigpKSwg
bGVuZ3RoICogc2l6ZW9mKFVDaGFyKSwgYWxpZ25vZihVQ2hhcikpOwotfQotdGVtcGxhdGUKLXZv
aWQgQXJndW1lbnRDb2RlcjxTdHJpbmc+OjplbmNvZGU8RW5jb2Rlcj4oRW5jb2RlciYsIGNvbnN0
IFN0cmluZyYpOwotdGVtcGxhdGUKLXZvaWQgQXJndW1lbnRDb2RlcjxTdHJpbmc+OjplbmNvZGU8
U3RyZWFtQ29ubmVjdGlvbkVuY29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwgY29uc3Qg
U3RyaW5nJik7Ci10ZW1wbGF0ZQotdm9pZCBBcmd1bWVudENvZGVyPFN0cmluZz46OmVuY29kZTxX
ZWJLaXQ6OlBDTTo6RW5jb2Rlcj4oV2ViS2l0OjpQQ006OkVuY29kZXImLCBjb25zdCBTdHJpbmcm
KTsKLQotdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZSwgdHlwZW5hbWUgRGVjb2Rlcj4K
LXN0YXRpYyBpbmxpbmUgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGRlY29kZVN0cmluZ1RleHQoRGVj
b2RlciYgZGVjb2RlciwgdWludDMyX3QgbGVuZ3RoKQotewotICAgIC8vIEJlZm9yZSBhbGxvY2F0
aW5nIHRoZSBzdHJpbmcsIG1ha2Ugc3VyZSB0aGF0IHRoZSBkZWNvZGVyIGJ1ZmZlciBpcyBiaWcg
ZW5vdWdoLgotICAgIGlmICghZGVjb2Rlci50ZW1wbGF0ZSBidWZmZXJJc0xhcmdlRW5vdWdoVG9D
b250YWluPENoYXJhY3RlclR5cGU+KGxlbmd0aCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7Ci0gICAgCi0gICAgQ2hhcmFjdGVyVHlwZSogYnVmZmVyOwotICAgIFN0cmluZyBzdHJpbmcg
PSBTdHJpbmc6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQobGVuZ3RoLCBidWZmZXIpOwotICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4o
YnVmZmVyKSwgbGVuZ3RoICogc2l6ZW9mKENoYXJhY3RlclR5cGUpLCBhbGlnbm9mKENoYXJhY3Rl
clR5cGUpKSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICAKLSAgICByZXR1cm4g
c3RyaW5nOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgotV0FSTl9VTlVTRURfUkVU
VVJOIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBBcmd1bWVudENvZGVyPFN0cmluZz46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQotewotICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IGxlbmd0aDsK
LSAgICBkZWNvZGVyID4+IGxlbmd0aDsKLSAgICBpZiAoIWxlbmd0aCkKLSAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKLSAgICAKLSAgICBpZiAoKmxlbmd0aCA9PSBzdGQ6Om51bWVyaWNfbGlt
aXRzPHVpbnQzMl90Pjo6bWF4KCkpIHsKLSAgICAgICAgLy8gVGhpcyBpcyB0aGUgbnVsbCBzdHJp
bmcuCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICB9Ci0gICAgCi0gICAgc3RkOjpvcHRp
b25hbDxib29sPiBpczhCaXQ7Ci0gICAgZGVjb2RlciA+PiBpczhCaXQ7Ci0gICAgaWYgKCFpczhC
aXQpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgCi0gICAgaWYgKCppczhCaXQp
Ci0gICAgICAgIHJldHVybiBkZWNvZGVTdHJpbmdUZXh0PExDaGFyPihkZWNvZGVyLCAqbGVuZ3Ro
KTsKLSAgICByZXR1cm4gZGVjb2RlU3RyaW5nVGV4dDxVQ2hhcj4oZGVjb2RlciwgKmxlbmd0aCk7
Ci19Ci10ZW1wbGF0ZQotc3RkOjpvcHRpb25hbDxTdHJpbmc+IEFyZ3VtZW50Q29kZXI8U3RyaW5n
Pjo6ZGVjb2RlPERlY29kZXI+KERlY29kZXImKTsKLXRlbXBsYXRlCi1zdGQ6Om9wdGlvbmFsPFN0
cmluZz4gQXJndW1lbnRDb2RlcjxTdHJpbmc+OjpkZWNvZGU8V2ViS2l0OjpQQ006OkRlY29kZXI+
KFdlYktpdDo6UENNOjpEZWNvZGVyJik7Ci0KLVdBUk5fVU5VU0VEX1JFVFVSTiBib29sIEFyZ3Vt
ZW50Q29kZXI8U3RyaW5nPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFN0cmluZyYgcmVzdWx0
KQotewotICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBzdHJpbmc7Ci0gICAgZGVjb2RlciA+PiBz
dHJpbmc7Ci0gICAgaWYgKCFzdHJpbmcpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXN1
bHQgPSBXVEZNb3ZlKCpzdHJpbmcpOwotICAgIHJldHVybiB0cnVlOwotfQotCiB2b2lkIEFyZ3Vt
ZW50Q29kZXI8U0hBMTo6RGlnZXN0Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNI
QTE6OkRpZ2VzdCYgZGlnZXN0KQogewogICAgIGVuY29kZXIuZW5jb2RlRml4ZWRMZW5ndGhEYXRh
KGRpZ2VzdC5kYXRhKCksIHNpemVvZihkaWdlc3QpLCAxKTsKQEAgLTIxOCw2ICs5MSw3IEBAIFdB
Uk5fVU5VU0VEX1JFVFVSTiBib29sIEFyZ3VtZW50Q29kZXI8U0hBMTo6RGlnZXN0Pjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIFNICiB9CiAKICNpZiBIQVZFKEFVRElUX1RPS0VOKQorCiB2b2lk
IEFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBhdWRpdF90b2tlbl90JiBhdWRpdFRva2VuKQogewogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGF1ZGl0VG9rZW4udmFsKTsgaSsrKQpAQCAtMjMyLDE1
ICsxMDYsNyBAQCBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rv
a2VuX3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgYQogICAgIH0KICAgICByZXR1cm4gdHJ1
ZTsKIH0KLSNlbmRpZgogCi12b2lkIEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2RlKEVu
Y29kZXImLCBjb25zdCBNb25vc3RhdGUmKQotewotfQotCi1XQVJOX1VOVVNFRF9SRVRVUk4gc3Rk
OjpvcHRpb25hbDxNb25vc3RhdGU+IEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2RlKERl
Y29kZXImKQotewotICAgIHJldHVybiBNb25vc3RhdGUgeyB9OwotfQorI2VuZGlmIC8vIEhBVkUo
QVVESVRfVE9LRU4pCiAKIH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKaW5kZXggYThjODkzZjBjNTI0MGE4ODg5YzM0NTE0Zjlm
YjFlZmVlMGQ2MjcwYS4uZWM4Y2JkMzJkZjFiOWQ3N2M5ZTYwZjM5MTkwMWYxYWZlMDljMjljZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCkBAIC0zNyw5
ICszNywxMyBAQAogI2luY2x1ZGUgPHd0Zi9VbmV4cGVjdGVkLmg+CiAjaW5jbHVkZSA8d3RmL1Zh
cmlhbnQuaD4KICNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9B
dG9tU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFj
ZSBJUEMgewogCisjZGVmaW5lIERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoY2xhc3NOYW1l
KSB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPGNsYXNzTmFtZT4gOiBTaW1wbGVBcmd1
bWVudENvZGVyPGNsYXNzTmFtZT4geyB9OworCiAvLyBBbiBhcmd1bWVudCBjb2RlciB3b3JrcyBv
biBQT0QgdHlwZXMKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBTaW1wbGVBcmd1bWVudENv
ZGVyIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgpAQCAtNDgsNiArNTIsNyBAQCB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgU2ltcGxlQXJndW1lbnRDb2RlciB7CiAgICAgICAg
IGVuY29kZXIuZW5jb2RlRml4ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWlu
dDhfdCo+KCZ0KSwgc2l6ZW9mKFQpLCBhbGlnbm9mKFQpKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVCYgdCkKICAgICB7CiAgICAgICAgIHJldHVybiBkZWNv
ZGVyLmRlY29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPigmdCks
IHNpemVvZihUKSwgYWxpZ25vZihUKSk7CkBAIC0xMDcsMTIgKzExMiwxNCBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxBcnJheVJlZmVyZW5jZTxULCBhcnJheVJl
ZmVyZW5jZUR5bmFtaQogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8T3B0aW9uU2V0PFQ+PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgT3B0aW9uU2V0PFQ+
JiBvcHRpb25TZXQpCiAgICAgewogICAgICAgICBBU1NFUlQoV1RGOjppc1ZhbGlkT3B0aW9uU2V0
KG9wdGlvblNldCkpOwogICAgICAgICBlbmNvZGVyIDw8IG9wdGlvblNldC50b1JhdygpOwogICAg
IH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5V
U0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBPcHRpb25TZXQ8VD4mIG9w
dGlvblNldCkKICAgICB7CiAgICAgICAgIHR5cGVuYW1lIE9wdGlvblNldDxUPjo6U3RvcmFnZVR5
cGUgdmFsdWU7CkBAIC0xMjQsNiArMTMxLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8T3B0aW9uU2V0PFQ+PiB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0
aW9uYWw8T3B0aW9uU2V0PFQ+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgT3B0aW9uU2V0PFQ+OjpTdG9yYWdlVHlwZT4gdmFs
dWU7CkBAIC0xODcsNiArMTk1LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8c3RkOjpvcHRpb25hbDxUPj4gewogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5j
b2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgQm94
PFQ+JiBib3gpCiAgICAgewogICAgICAgICBpZiAoIWJveCkgewpAQCAtMTk4LDYgKzIwNyw3IEBA
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPEJveDxUPj4gewogICAg
ICAgICBlbmNvZGVyIDw8ICpib3guZ2V0KCk7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERl
Y29kZXImIGRlY29kZXIsIEJveDxUPiYgYm94KQogICAgIHsKICAgICAgICAgYm9vbCBpc0VuZ2Fn
ZWQ7CkBAIC0yMTcsNiArMjI3LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8Qm94PFQ+PiB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHRl
bXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Qm94PFQ+
PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8
Ym9vbD4gaXNFbmdhZ2VkOwpAQCAtMjM1LDExICsyNDYsMTMgQEAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBULCB0eXBlbmFtZSBVPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxzdGQ6OnBhaXI8VCwgVT4+IHsK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBzdGQ6OnBhaXI8VCwgVT4mIHBhaXIpCiAgICAgewogICAg
ICAgICBlbmNvZGVyIDw8IHBhaXIuZmlyc3QgPDwgcGFpci5zZWNvbmQ7CiAgICAgfQogCisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJO
IGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIHN0ZDo6cGFpcjxULCBVPiYgcGFpcikKICAg
ICB7CiAgICAgICAgIFQgZmlyc3Q7CkBAIC0yNTUsNiArMjY4LDcgQEAgdGVtcGxhdGU8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgVT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpwYWlyPFQsIFU+PiB7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERl
Y29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWlyPFQsIFU+PiBkZWNvZGUo
RGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8VD4gZmlyc3Q7
CkBAIC0zNjUsMTEgKzM3OSwxMyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBFbGVtZW50cz4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8c3RkOjp0dXBsZTxFbGVtZW50cy4uLj4+IHsKIH07CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIEtleVR5cGUsIHR5cGVuYW1lIFZhbHVlVHlwZT4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8V1RGOjpLZXlWYWx1ZVBhaXI8S2V5VHlwZSwgVmFsdWVUeXBlPj4geworICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IFdURjo6S2V5VmFsdWVQYWlyPEtleVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIp
CiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHBhaXIua2V5IDw8IHBhaXIudmFsdWU7CiAgICAg
fQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVT
RURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFdURjo6S2V5VmFsdWVQYWly
PEtleVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAgICAgewogICAgICAgICBLZXlUeXBlIGtleTsK
QEAgLTM5Nyw2ICs0MTMsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2Fw
YWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlciwgc2l6ZV90IG1pbgogICAgICAgICAgICAg
ZW5jb2RlciA8PCB2ZWN0b3JbaV07CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVj
b2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5D
YXBhY2l0eT4mIHZlY3RvcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFQs
IGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5Pj4gb3B0aW9uYWw7
CkBAIC00MzYsNiArNDUzLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNh
cGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KICAgICAgICAgZW5j
b2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90
Kj4odmVjdG9yLmRhdGEoKSksIHZlY3Rvci5zaXplKCkgKiBzaXplb2YoVCksIGFsaWdub2YoVCkp
OwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVmVjdG9y
PFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5PiYgdmVjdG9y
KQogICAgIHsKICAgICAgICAgdWludDY0X3QgZGVjb2RlZFNpemU7CkBAIC00NTAsNyArNDY4LDcg
QEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBP
dmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KICAgICAgICAgLy8gU2luY2Ugd2Uga25vdyB0aGUg
dG90YWwgc2l6ZSBvZiB0aGUgZWxlbWVudHMsIHdlIGNhbiBhbGxvY2F0ZSB0aGUgdmVjdG9yIGlu
CiAgICAgICAgIC8vIG9uZSBmZWxsIHN3b29wLiBCZWZvcmUgYWxsb2NhdGluZyB3ZSBtdXN0IGhv
d2V2ZXIgbWFrZSBzdXJlIHRoYXQgdGhlIGRlY29kZXIgYnVmZmVyCiAgICAgICAgIC8vIGlzIGJp
ZyBlbm91Z2guCi0gICAgICAgIGlmICghZGVjb2Rlci5idWZmZXJJc0xhcmdlRW5vdWdoVG9Db250
YWluPFQ+KHNpemUpKQorICAgICAgICBpZiAoIWRlY29kZXIudGVtcGxhdGUgYnVmZmVySXNMYXJn
ZUVub3VnaFRvQ29udGFpbjxUPihzaXplKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgICAgICBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2Fw
YWNpdHk+IHRlbXA7CkBAIC00OTcsNiArNTE1LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6
ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4K
IHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBI
YXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1lIE1hcHBlZFRyYWl0c0FyZywg
dHlwZW5hbWUgSGFzaFRhYmxlVHJhaXRzPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxIYXNoTWFwPEtl
eUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZywg
SGFzaFRhYmxlVHJhaXRzPj4gewogICAgIHR5cGVkZWYgSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFy
ZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBwZWRUcmFpdHNBcmcsIEhhc2hUYWJsZVRyYWl0
cz4gSGFzaE1hcFR5cGU7CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0
YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBIYXNoTWFwVHlwZSYgaGFz
aE1hcCkKICAgICB7CiAgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGhh
c2hNYXAuc2l6ZSgpKTsKQEAgLTUwNCw2ICs1MjMsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlB
cmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJh
aQogICAgICAgICAgICAgZW5jb2RlciA8PCAqaXQ7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxIYXNoTWFwVHlwZT4gZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAgICB1aW50MzJfdCBoYXNoTWFwU2l6
ZTsKQEAgLTUzNCw2ICs1NTQsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1l
IE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogICAgICAgICBy
ZXR1cm4gaGFzaE1hcDsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgog
ICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgSGFzaE1hcFR5cGUmIGhhc2hNYXApCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPEhh
c2hNYXBUeXBlPiB0ZW1wSGFzaE1hcDsKQEAgLTU0OCw2ICs1NjksNyBAQCB0ZW1wbGF0ZTx0eXBl
bmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5h
bWUgS2V5VHJhaQogdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0
eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1lIEhhc2hUYWJsZVRyYWl0cz4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8SGFzaFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgSGFzaFRh
YmxlVHJhaXRzPj4gewogICAgIHR5cGVkZWYgSGFzaFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRy
YWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPiBIYXNoU2V0VHlwZTsKIAorICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IEhhc2hTZXRUeXBlJiBoYXNoU2V0KQogICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBz
dGF0aWNfY2FzdDx1aW50NjRfdD4oaGFzaFNldC5zaXplKCkpOwpAQCAtNTU1LDYgKzU3Nyw3IEBA
IHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5
VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNoCiAgICAgICAgICAgICBlbmNvZGVyIDw8ICppdDsKICAg
ICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VO
VVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSGFzaFNldFR5cGUmIGhh
c2hTZXQpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPEhhc2hTZXRUeXBlPiB0ZW1wSGFz
aFNldDsKQEAgLTU2Niw2ICs1ODksNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVu
YW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZywgdHlwZW5hbWUgSGFzaAogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgog
ICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEhhc2hTZXRUeXBlPiBkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKICAgICB7CiAgICAgICAgIHVpbnQ2NF90IGhhc2hTZXRTaXplOwpAQCAtNTk1LDYgKzYx
OSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5h
bWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNoCiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcs
IHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZz4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8SGFzaENvdW50ZWRTZXQ8S2V5QXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmc+PiB7CiAg
ICAgdHlwZWRlZiBIYXNoQ291bnRlZFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZz4g
SGFzaENvdW50ZWRTZXRUeXBlOwogICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+
CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEhhc2hDb3Vu
dGVkU2V0VHlwZSYgaGFzaENvdW50ZWRTZXQpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHN0
YXRpY19jYXN0PHVpbnQ2NF90PihoYXNoQ291bnRlZFNldC5zaXplKCkpOwpAQCAtNjA1LDYgKzYz
MCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5h
bWUgS2V5VHJhaXRzQXJnPiBzdHJ1Y3QgQXJndW1lCiAgICAgICAgIH0KICAgICB9CiAgICAgCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVU
VVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEhhc2hDb3VudGVkU2V0VHlwZSYgaGFz
aENvdW50ZWRTZXQpCiAgICAgewogICAgICAgICB1aW50NjRfdCBoYXNoQ291bnRlZFNldFNpemU7
CkBAIC02MzYsNiArNjYyLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBI
YXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmc+IHN0cnVjdCBBcmd1bWUKIH07CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxFeHBlY3RlZDxWYWx1ZVR5cGUsIEVycm9yVHlwZT4+IHsKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBFeHBlY3RlZDxWYWx1ZVR5cGUsIEVycm9yVHlwZT4mIGV4cGVjdGVkKQogICAgIHsK
ICAgICAgICAgaWYgKCFleHBlY3RlZC5oYXNfdmFsdWUoKSkgewpAQCAtNjQ3LDYgKzY3NCw3IEBA
IHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUgRXJyb3JUeXBlPiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWCiAgICAgICAgIGVuY29kZXIgPDwgZXhwZWN0ZWQudmFs
dWUoKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPEV4cGVjdGVkPFZhbHVlVHlwZSwgRXJyb3JUeXBlPj4gZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGhhc1Zh
bHVlOwpAQCAtNjczLDYgKzcwMSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlw
ZW5hbWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWCiAKIHRlbXBs
YXRlPHNpemVfdCBpbmRleCwgdHlwZW5hbWUuLi4gVHlwZXM+CiBzdHJ1Y3QgVmFyaWFudENvZGVy
IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+JiB2YXJpYW50
LCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgaWYgKGkgPT0gaW5kZXgpIHsKQEAgLTY4Miw2
ICs3MTEsNyBAQCBzdHJ1Y3QgVmFyaWFudENvZGVyIHsKICAgICAgICAgVmFyaWFudENvZGVyPGlu
ZGV4IC0gMSwgVHlwZXMuLi4+OjplbmNvZGUoZW5jb2RlciwgdmFyaWFudCwgaSk7CiAgICAgfQog
ICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0
aW9uYWw8V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIsIHVu
c2lnbmVkIGkpCiAgICAgewogICAgICAgICBpZiAoaSA9PSBpbmRleCkgewpAQCAtNjk3LDEyICs3
MjcsMTQgQEAgc3RydWN0IFZhcmlhbnRDb2RlciB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFR5
cGVzPgogc3RydWN0IFZhcmlhbnRDb2RlcjwwLCBUeXBlcy4uLj4geworICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IFdURjo6VmFyaWFudDxUeXBlcy4uLj4mIHZhcmlhbnQsIHVuc2lnbmVkIGkpCiAgICAg
ewogICAgICAgICBBU1NFUlRfVU5VU0VEKGksICFpKTsKICAgICAgICAgZW5jb2RlciA8PCBXVEY6
OmdldDwwPih2YXJpYW50KTsKICAgICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVj
b2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+PiBk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgdW5zaWduZWQgaSkKICAgICB7CiAgICAgICAgIEFTU0VS
VF9VTlVTRUQoaSwgIWkpOwpAQCAtNzE1LDYgKzc0Nyw3IEBAIHN0cnVjdCBWYXJpYW50Q29kZXI8
MCwgVHlwZXMuLi4+IHsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+PiB7CisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgV1RGOjpWYXJpYW50PFR5cGVzLi4uPiYgdmFyaWFudCkKICAgICB7CiAgICAgICAgIHVu
c2lnbmVkIGkgPSB2YXJpYW50LmluZGV4KCk7CkBAIC03MjIsNiArNzU1LDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUuLi4gVHlwZXM+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdURjo6VmFyaWFudDxUeXBl
cy4uLj4+IHsKICAgICAgICAgVmFyaWFudENvZGVyPHNpemVvZi4uLihUeXBlcykgLSAxLCBUeXBl
cy4uLj46OmVuY29kZShlbmNvZGVyLCB2YXJpYW50LCBpKTsKICAgICB9CiAgICAgCisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXVEY6OlZh
cmlhbnQ8VHlwZXMuLi4+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAg
IHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGk7CkBAIC03MzQsMzAgKzc2OCwxMjkgQEAgdGVtcGxh
dGU8dHlwZW5hbWUuLi4gVHlwZXM+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdURjo6VmFyaWFudDxU
eXBlcy4uLj4+IHsKICAgICAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2FsbFRp
bWU+IHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgotICAgIHN0YXRpYyB2b2lkIGVu
Y29kZShFbmNvZGVyJiwgY29uc3QgV2FsbFRpbWUmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURf
UkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXYWxsVGltZSYpOworICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXYWxsVGltZSYgdGltZSkKKyAgICB7Cisg
ICAgICAgIGVuY29kZXIgPDwgdGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCk7CisgICAg
fQorCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KLSAgICBzdGF0aWMgc3RkOjpvcHRp
b25hbDxXYWxsVGltZT4gZGVjb2RlKERlY29kZXImKTsKKyAgICBzdGF0aWMgV0FSTl9VTlVTRURf
UkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFdhbGxUaW1lJiB0aW1lKQorICAg
IHsKKyAgICAgICAgZG91YmxlIHZhbHVlOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHZh
bHVlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICB0aW1lID0gV2FsbFRp
bWU6OmZyb21SYXdTZWNvbmRzKHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KKyAgICBzdGF0aWMgc3RkOjpvcHRpb25h
bDxXYWxsVGltZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBzdGQ6
Om9wdGlvbmFsPGRvdWJsZT4gdGltZTsKKyAgICAgICAgZGVjb2RlciA+PiB0aW1lOworICAgICAg
ICBpZiAoIXRpbWUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBy
ZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKCp0aW1lKTsKKyAgICB9CiB9OwogCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPEF0b21TdHJpbmc+IHsKLSAgICBzdGF0aWMgdm9p
ZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IEF0b21TdHJpbmcmKTsKLSAgICBzdGF0aWMgV0FSTl9V
TlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBBdG9tU3RyaW5nJik7CisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgQXRvbVN0cmluZyYgYXRvbVN0cmluZykKKyAgICB7CisgICAgICAgIGVu
Y29kZXIgPDwgYXRvbVN0cmluZy5zdHJpbmcoKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBEZWNvZGVyPgorICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgQXRvbVN0cmluZyYgYXRvbVN0cmluZykKKyAgICB7CisgICAgICAg
IFN0cmluZyBzdHJpbmc7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RyaW5nKSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBhdG9tU3RyaW5nID0gc3RyaW5nOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPENTdHJpbmc+IHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgQ1N0cmluZyYpOworCiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDU3RyaW5n
PiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAordGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlw
ZSwgdHlwZW5hbWUgRGVjb2Rlcj4KK3N0YXRpYyBpbmxpbmUgc3RkOjpvcHRpb25hbDxTdHJpbmc+
IGRlY29kZVN0cmluZ1RleHQoRGVjb2RlciYgZGVjb2RlciwgdWludDMyX3QgbGVuZ3RoKQorewor
ICAgIC8vIEJlZm9yZSBhbGxvY2F0aW5nIHRoZSBzdHJpbmcsIG1ha2Ugc3VyZSB0aGF0IHRoZSBk
ZWNvZGVyIGJ1ZmZlciBpcyBiaWcgZW5vdWdoLgorICAgIGlmICghZGVjb2Rlci50ZW1wbGF0ZSBi
dWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluPENoYXJhY3RlclR5cGU+KGxlbmd0aCkpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBDaGFyYWN0ZXJUeXBlKiBidWZmZXI7Cisg
ICAgU3RyaW5nIHN0cmluZyA9IFN0cmluZzo6Y3JlYXRlVW5pbml0aWFsaXplZChsZW5ndGgsIGJ1
ZmZlcik7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVycHJl
dF9jYXN0PHVpbnQ4X3QqPihidWZmZXIpLCBsZW5ndGggKiBzaXplb2YoQ2hhcmFjdGVyVHlwZSks
IGFsaWdub2YoQ2hhcmFjdGVyVHlwZSkpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgcmV0dXJuIHN0cmluZzsKK30KKwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxTdHJpbmc+IHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgotICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgU3RyaW5nJik7Ci0gICAgc3RhdGljIFdBUk5fVU5V
U0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgU3RyaW5nJik7CisgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsK
KyAgICAgICAgLy8gU3BlY2lhbCBjYXNlIHRoZSBudWxsIHN0cmluZy4KKyAgICAgICAgaWYgKHN0
cmluZy5pc051bGwoKSkgeworICAgICAgICAgICAgZW5jb2RlciA8PCBzdGQ6Om51bWVyaWNfbGlt
aXRzPHVpbnQzMl90Pjo6bWF4KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICB1aW50MzJfdCBsZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7CisgICAgICAgIGJvb2wg
aXM4Qml0ID0gc3RyaW5nLmlzOEJpdCgpOworCisgICAgICAgIGVuY29kZXIgPDwgbGVuZ3RoIDw8
IGlzOEJpdDsKKworICAgICAgICBpZiAoaXM4Qml0KQorICAgICAgICAgICAgZW5jb2Rlci5lbmNv
ZGVGaXhlZExlbmd0aERhdGEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGxlbmd0aCAqIHNpemVvZihM
Q2hhciksIGFsaWdub2YoTENoYXIpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZW5jb2Rl
ci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4o
c3RyaW5nLmNoYXJhY3RlcnMxNigpKSwgbGVuZ3RoICogc2l6ZW9mKFVDaGFyKSwgYWxpZ25vZihV
Q2hhcikpOworICAgIH0KKwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+Ci0gICAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBkZWNvZGUoRGVjb2RlciYpOworICAgIHN0YXRpYyBX
QVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU3RyaW5nJiBy
ZXN1bHQpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gc3RyaW5nOworICAg
ICAgICBkZWNvZGVyID4+IHN0cmluZzsKKyAgICAgICAgaWYgKCFzdHJpbmcpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJlc3VsdCA9IFdURk1vdmUoKnN0cmluZyk7CisgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+
CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IGxlbmd0aDsKKyAgICAg
ICAgZGVjb2RlciA+PiBsZW5ndGg7CisgICAgICAgIGlmICghbGVuZ3RoKQorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBpZiAoKmxlbmd0aCA9PSBzdGQ6Om51bWVy
aWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCkpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhl
IG51bGwgc3RyaW5nLgorICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgICAgICB9CisK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxib29sPiBpczhCaXQ7CisgICAgICAgIGRlY29kZXIgPj4g
aXM4Qml0OworICAgICAgICBpZiAoIWlzOEJpdCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAgICAgaWYgKCppczhCaXQpCisgICAgICAgICAgICByZXR1cm4gZGVjb2Rl
U3RyaW5nVGV4dDxMQ2hhcj4oZGVjb2RlciwgKmxlbmd0aCk7CisgICAgICAgIHJldHVybiBkZWNv
ZGVTdHJpbmdUZXh0PFVDaGFyPihkZWNvZGVyLCAqbGVuZ3RoKTsKKyAgICB9CiB9OwogCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFNIQTE6OkRpZ2VzdD4gewpAQCAtNzczLDggKzkw
NiwxNCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rva2VuX3Q+IHsK
ICNlbmRpZgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT4gewot
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgTW9ub3N0YXRlJik7Ci0gICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBkZWNvZGUoRGVjb2RlciYpOworICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBNb25vc3RhdGUmKSB7IH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+
CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBkZWNvZGUoRGVjb2RlciYpCisg
ICAgeworICAgICAgICByZXR1cm4gTW9ub3N0YXRlIHsgfTsKKyAgICB9CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwCmluZGV4IGZhYmNlZjZjMjEyNTIzZWYwMWNjODlhNDk4NDYwMDZkOGVhMmRmOTMuLjFk
NWE2ZDZhMThmNmU3YzcxMjZjY2FhNzllNjJlM2NlNzcwNDY0YzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtODgsNyArODgsNiBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1RleHRJbmRpY2F0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RpbWluZ0Z1bmN0aW9uLmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvVXNlclN0eWxlU2hlZXQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZlbG9jaXR5RGF0YS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvVmlld3BvcnRBcmd1bWVudHMuaD4KQEAgLTIzMSwxNiArMjMwLDYg
QEAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZVR5cGVzQW5kRGF0YShEZWNv
ZGVyJiBkZWNvZGVyLCBWZWN0b3I8U3RyaW4KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBB
cmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBBZmZpbmVUcmFuc2Zvcm0mIGFmZmluZVRyYW5zZm9ybSkKLXsKLSAgICBTaW1wbGVBcmd1
bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmVuY29kZShlbmNvZGVyLCBhZmZpbmVUcmFuc2Zv
cm0pOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIsIEFmZmluZVRyYW5zZm9ybSYgYWZmaW5lVHJhbnNmb3JtKQotewotICAg
IHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmRlY29kZShkZWNv
ZGVyLCBhZmZpbmVUcmFuc2Zvcm0pOwotfQotCiB2b2lkIEFyZ3VtZW50Q29kZXI8Q2FjaGVRdWVy
eU9wdGlvbnM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ2FjaGVRdWVyeU9wdGlv
bnMmIG9wdGlvbnMpCiB7CiAgICAgZW5jb2RlciA8PCBvcHRpb25zLmlnbm9yZVNlYXJjaDsKQEAg
LTQyNSw4NyArNDE0LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25z
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEV2ZW50VHJhY2tpbmcKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm1h
dGlvbk1hdHJpeCkKLXsKLSAgICBlbmNvZGVyIDw8IHRyYW5zZm9ybWF0aW9uTWF0cml4Lm0xMSgp
OwotICAgIGVuY29kZXIgPDwgdHJhbnNmb3JtYXRpb25NYXRyaXgubTEyKCk7Ci0gICAgZW5jb2Rl
ciA8PCB0cmFuc2Zvcm1hdGlvbk1hdHJpeC5tMTMoKTsKLSAgICBlbmNvZGVyIDw8IHRyYW5zZm9y
bWF0aW9uTWF0cml4Lm0xNCgpOwotCi0gICAgZW5jb2RlciA8PCB0cmFuc2Zvcm1hdGlvbk1hdHJp
eC5tMjEoKTsKLSAgICBlbmNvZGVyIDw8IHRyYW5zZm9ybWF0aW9uTWF0cml4Lm0yMigpOwotICAg
IGVuY29kZXIgPDwgdHJhbnNmb3JtYXRpb25NYXRyaXgubTIzKCk7Ci0gICAgZW5jb2RlciA8PCB0
cmFuc2Zvcm1hdGlvbk1hdHJpeC5tMjQoKTsKLQotICAgIGVuY29kZXIgPDwgdHJhbnNmb3JtYXRp
b25NYXRyaXgubTMxKCk7Ci0gICAgZW5jb2RlciA8PCB0cmFuc2Zvcm1hdGlvbk1hdHJpeC5tMzIo
KTsKLSAgICBlbmNvZGVyIDw8IHRyYW5zZm9ybWF0aW9uTWF0cml4Lm0zMygpOwotICAgIGVuY29k
ZXIgPDwgdHJhbnNmb3JtYXRpb25NYXRyaXgubTM0KCk7Ci0KLSAgICBlbmNvZGVyIDw8IHRyYW5z
Zm9ybWF0aW9uTWF0cml4Lm00MSgpOwotICAgIGVuY29kZXIgPDwgdHJhbnNmb3JtYXRpb25NYXRy
aXgubTQyKCk7Ci0gICAgZW5jb2RlciA8PCB0cmFuc2Zvcm1hdGlvbk1hdHJpeC5tNDMoKTsKLSAg
ICBlbmNvZGVyIDw8IHRyYW5zZm9ybWF0aW9uTWF0cml4Lm00NCgpOwotfQotCi1ib29sIEFyZ3Vt
ZW50Q29kZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rlciwg
VHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybWF0aW9uTWF0cml4KQotewotICAgIGRvdWJs
ZSBtMTE7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShtMTEpKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgZG91YmxlIG0xMjsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG0xMikpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICBkb3VibGUgbTEzOwotICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUobTEzKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGRvdWJsZSBtMTQ7Ci0gICAgaWYg
KCFkZWNvZGVyLmRlY29kZShtMTQpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBkb3Vi
bGUgbTIxOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUobTIxKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIGRvdWJsZSBtMjI7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShtMjIpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgZG91YmxlIG0yMzsKLSAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKG0yMykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBkb3VibGUgbTI0OwotICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUobTI0KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgZG91
YmxlIG0zMTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG0zMSkpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICBkb3VibGUgbTMyOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUobTMyKSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGRvdWJsZSBtMzM7Ci0gICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShtMzMpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgZG91YmxlIG0zNDsKLSAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKG0zNCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGRv
dWJsZSBtNDE7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShtNDEpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgZG91YmxlIG00MjsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG00MikpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBkb3VibGUgbTQzOwotICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUobTQzKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGRvdWJsZSBtNDQ7Ci0gICAg
aWYgKCFkZWNvZGVyLmRlY29kZShtNDQpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICB0
cmFuc2Zvcm1hdGlvbk1hdHJpeC5zZXRNYXRyaXgobTExLCBtMTIsIG0xMywgbTE0LCBtMjEsIG0y
MiwgbTIzLCBtMjQsIG0zMSwgbTMyLCBtMzMsIG0zNCwgbTQxLCBtNDIsIG00MywgbTQ0KTsKLSAg
ICByZXR1cm4gdHJ1ZTsKLX0KLQogdm9pZCBBcmd1bWVudENvZGVyPExpbmVhclRpbWluZ0Z1bmN0
aW9uPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IExpbmVhclRpbWluZ0Z1bmN0aW9u
JiB0aW1pbmdGdW5jdGlvbikKIHsKICAgICBlbmNvZGVyIDw8IHRpbWluZ0Z1bmN0aW9uLnR5cGUo
KTsKQEAgLTYxNyw4NiArNTI1LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPFNwcmluZ1RpbWluZ0Z1
bmN0aW9uPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNwcmluZ1RpbWluZ0YKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRQb2ludCYgZmxvYXRQb2ludCkKLXsKLSAgICBTaW1w
bGVBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRQb2ludCk7
Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIsIEZsb2F0UG9pbnQmIGZsb2F0UG9pbnQpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3Vt
ZW50Q29kZXI8RmxvYXRQb2ludD46OmRlY29kZShkZWNvZGVyLCBmbG9hdFBvaW50KTsKLX0KLQot
c3RkOjpvcHRpb25hbDxGbG9hdFBvaW50PiBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBGbG9hdFBvaW50IGZsb2F0UG9pbnQ7Ci0gICAg
aWYgKCFTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUoZGVjb2RlciwgZmxv
YXRQb2ludCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIGZsb2F0
UG9pbnQ7Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRQb2ludDNEJiBmbG9hdFBvaW50KQotewotICAgIFNp
bXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0UG9p
bnQpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIsIEZsb2F0UG9pbnQzRCYgZmxvYXRQb2ludCkKLXsKLSAgICByZXR1cm4gU2lt
cGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRQb2lu
dCk7Ci19Ci0KLQotdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBGbG9hdFJlY3QmIGZsb2F0UmVjdCkKLXsKLSAgICBTaW1wbGVBcmd1
bWVudENvZGVyPEZsb2F0UmVjdD46OmVuY29kZShlbmNvZGVyLCBmbG9hdFJlY3QpOwotfQotCi1i
b29sIEFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEZs
b2F0UmVjdCYgZmxvYXRSZWN0KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZs
b2F0UmVjdD46OmRlY29kZShkZWNvZGVyLCBmbG9hdFJlY3QpOwotfQotCi1zdGQ6Om9wdGlvbmFs
PEZsb2F0UmVjdD4gQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKLXsKLSAgICBGbG9hdFJlY3QgZmxvYXRSZWN0OwotICAgIGlmICghU2ltcGxlQXJndW1l
bnRDb2RlcjxGbG9hdFJlY3Q+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRSZWN0KSkKLSAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICByZXR1cm4gZmxvYXRSZWN0OwotfQotCi0KLXZvaWQg
QXJndW1lbnRDb2RlcjxGbG9hdEJveEV4dGVudD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBGbG9hdEJveEV4dGVudCYgZmxvYXRCb3hFeHRlbnQpCi17Ci0gICAgU2ltcGxlQXJndW1l
bnRDb2RlcjxGbG9hdEJveEV4dGVudD46OmVuY29kZShlbmNvZGVyLCBmbG9hdEJveEV4dGVudCk7
Ci19Ci0gICAgCi1ib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlciwgRmxvYXRCb3hFeHRlbnQmIGZsb2F0Qm94RXh0ZW50KQotewotICAgIHJl
dHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVjb2RlKGRlY29kZXIs
IGZsb2F0Qm94RXh0ZW50KTsKLX0KLSAgICAKLQotdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0U2l6
ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFNpemUmIGZsb2F0U2l6ZSkK
LXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0U2l6ZT46OmVuY29kZShlbmNvZGVyLCBm
bG9hdFNpemUpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIsIEZsb2F0U2l6ZSYgZmxvYXRTaXplKQotewotICAgIHJldHVybiBTaW1w
bGVBcmd1bWVudENvZGVyPEZsb2F0U2l6ZT46OmRlY29kZShkZWNvZGVyLCBmbG9hdFNpemUpOwot
fQotCi0KLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFJvdW5kZWRSZWN0Pjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIHJvdW5kZWRSZWN0KQotewotICAg
IFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46OmVuY29kZShlbmNvZGVyLCBy
b3VuZGVkUmVjdCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxGbG9hdFJvdW5kZWRSZWN0Pjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEZsb2F0Um91bmRlZFJlY3QmIHJvdW5kZWRSZWN0KQot
ewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjpkZWNv
ZGUoZGVjb2Rlciwgcm91bmRlZFJlY3QpOwotfQotCiAjaWYgRU5BQkxFKE1FVEFfVklFV1BPUlQp
CiB2b2lkIEFyZ3VtZW50Q29kZXI8Vmlld3BvcnRBcmd1bWVudHM+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgVmlld3BvcnRBcmd1bWVudHMmIHZpZXdwb3J0QXJndW1lbnRzKQogewpA
QCAtNzI4LDg3ICs1NTYsNiBAQCBib29sIEFyZ3VtZW50Q29kZXI8Vmlld3BvcnRBdHRyaWJ1dGVz
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFZpZXdwb3J0QXR0cmlidQogICAgIHJldHVybiBT
aW1wbGVBcmd1bWVudENvZGVyPFZpZXdwb3J0QXR0cmlidXRlcz46OmRlY29kZShkZWNvZGVyLCB2
aWV3cG9ydEF0dHJpYnV0ZXMpOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgSW50UG9pbnQmIGludFBvaW50KQotewotICAg
IFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjplbmNvZGUoZW5jb2RlciwgaW50UG9pbnQp
OwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgSW50UG9pbnQmIGludFBvaW50KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENv
ZGVyPEludFBvaW50Pjo6ZGVjb2RlKGRlY29kZXIsIGludFBvaW50KTsKLX0KLQotc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpJbnRQb2ludD4gQXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQotewotICAgIEludFBvaW50IGludFBvaW50OwotICAgIGlmICghU2lt
cGxlQXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZShkZWNvZGVyLCBpbnRQb2ludCkpCi0g
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIGludFBvaW50OwotfQotCi12
b2lkIEFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBJbnRSZWN0JiBpbnRSZWN0KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UmVjdD46
OmVuY29kZShlbmNvZGVyLCBpbnRSZWN0KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEludFJl
Y3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSW50UmVjdCYgaW50UmVjdCkKLXsKLSAgICBy
ZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIGludFJl
Y3QpOwotfQotCi1zdGQ6Om9wdGlvbmFsPEludFJlY3Q+IEFyZ3VtZW50Q29kZXI8SW50UmVjdD46
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIEludFJlY3QgcmVjdDsKLSAgICBpZiAo
IWRlY29kZShkZWNvZGVyLCByZWN0KSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAg
ICByZXR1cm4gcmVjdDsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KLXZvaWQgQXJn
dW1lbnRDb2RlcjxJbnRTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEludFNp
emUmIGludFNpemUpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZW5jb2Rl
KGVuY29kZXIsIGludFNpemUpOwotfQotCi10ZW1wbGF0ZQotdm9pZCBBcmd1bWVudENvZGVyPElu
dFNpemU+OjplbmNvZGU8RW5jb2Rlcj4oRW5jb2RlciYsIGNvbnN0IEludFNpemUmKTsKLXRlbXBs
YXRlCi12b2lkIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZTxTdHJlYW1Db25uZWN0aW9u
RW5jb2Rlcj4oU3RyZWFtQ29ubmVjdGlvbkVuY29kZXImLCBjb25zdCBJbnRTaXplJik7Ci0KLWJv
b2wgQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEludFNp
emUmIGludFNpemUpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50U2l6ZT46
OmRlY29kZShkZWNvZGVyLCBpbnRTaXplKTsKLX0KLQotc3RkOjpvcHRpb25hbDxJbnRTaXplPiBB
cmd1bWVudENvZGVyPEludFNpemU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBJ
bnRTaXplIGludFNpemU7Ci0gICAgaWYgKCFTaW1wbGVBcmd1bWVudENvZGVyPEludFNpemU+Ojpk
ZWNvZGUoZGVjb2RlciwgaW50U2l6ZSkpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0g
ICAgcmV0dXJuIGludFNpemU7Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxMYXlvdXRTaXplPjo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IExheW91dFNpemUmIGxheW91dFNpemUpCi17
Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxMYXlvdXRTaXplPjo6ZW5jb2RlKGVuY29kZXIsIGxh
eW91dFNpemUpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBMYXlvdXRTaXplJiBsYXlvdXRTaXplKQotewotICAgIHJldHVybiBT
aW1wbGVBcmd1bWVudENvZGVyPExheW91dFNpemU+OjpkZWNvZGUoZGVjb2RlciwgbGF5b3V0U2l6
ZSk7Ci19Ci0KLQotdm9pZCBBcmd1bWVudENvZGVyPExheW91dFBvaW50Pjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IExheW91dFBvaW50JiBsYXlvdXRQb2ludCkKLXsKLSAgICBTaW1w
bGVBcmd1bWVudENvZGVyPExheW91dFBvaW50Pjo6ZW5jb2RlKGVuY29kZXIsIGxheW91dFBvaW50
KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPExheW91dFBvaW50Pjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIExheW91dFBvaW50JiBsYXlvdXRQb2ludCkKLXsKLSAgICByZXR1cm4gU2ltcGxl
QXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46OmRlY29kZShkZWNvZGVyLCBsYXlvdXRQb2ludCk7
Ci19Ci0KIHZvaWQgQXJndW1lbnRDb2RlcjxSZWNlbnRTZWFyY2g+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgUmVjZW50U2VhcmNoJiByZWNlbnRTZWFyY2gpCiB7CiAgICAgZW5jb2Rl
ciA8PCByZWNlbnRTZWFyY2guc3RyaW5nIDw8IHJlY2VudFNlYXJjaC50aW1lOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCA1NDU5NzVhMGRmMTUw
MWJlODgxMzU0OWE5MDFhZGQwNzFiZTAxZjk2Li4wMDU2NGFiZTZlMjNhYTVmNjhiNDY5MDI5MzY3
NzFlZTMyMzUxZGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2VyaWFsaXplZFBs
YXRmb3JtRGF0YUN1ZVZhbHVlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlw
ZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N0b3JlZENyZWRlbnRpYWxzUG9saWN5Lmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
V29ya2VyVHlwZS5oPgogI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKQEAgLTE0MCw3ICsx
NDEsNiBAQCBjbGFzcyBTcHJpbmdUaW1pbmdGdW5jdGlvbjsKIGNsYXNzIFN0ZXBzVGltaW5nRnVu
Y3Rpb247CiBjbGFzcyBTdGlja3lQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHM7CiBjbGFzcyBU
ZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YTsKLWNsYXNzIFRyYW5zZm9ybWF0aW9uTWF0cml4OwogY2xh
c3MgVXNlclN0eWxlU2hlZXQ7CiAKIHN0cnVjdCBBdHRyaWJ1dGVkU3RyaW5nOwpAQCAtMjI3LDEw
ICsyMjcsMjYgQEAgc3RydWN0IFJlY29yZDsKIAogbmFtZXNwYWNlIElQQyB7CiAKLXRlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtPiB7Ci0gICAg
c3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zv
cm0mKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXIm
LCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mKTsKLX07CitERUZJTkVfU0lNUExFX0FSR1VNRU5U
X0NPREVSKFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRf
Q09ERVIoV2ViQ29yZTo6RmxvYXRQb2ludCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIo
V2ViQ29yZTo6RmxvYXRQb2ludDNEKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJD
b3JlOjpGbG9hdFJlY3QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6OkZs
b2F0Qm94RXh0ZW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpGbG9h
dFNpemUpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6OkZsb2F0Um91bmRl
ZFJlY3QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6OkludFBvaW50KQor
REVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpJbnRSZWN0KQorREVGSU5FX1NJ
TVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpJbnRTaXplKQorREVGSU5FX1NJTVBMRV9BUkdV
TUVOVF9DT0RFUihXZWJDb3JlOjpMYXlvdXRTaXplKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9D
T0RFUihXZWJDb3JlOjpMYXlvdXRQb2ludCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIo
V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgpCisKKyNpZiBVU0UoQ0cpCitERUZJTkVfU0lN
UExFX0FSR1VNRU5UX0NPREVSKENHUmVjdCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIo
Q0dTaXplKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihDR1BvaW50KQorREVGSU5FX1NJ
TVBMRV9BUkdVTUVOVF9DT0RFUihDR0FmZmluZVRyYW5zZm9ybSkKKyNlbmRpZgogCiB0ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmc+IHsKICAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkF0dHJpYnV0ZWRT
dHJpbmcmKTsKQEAgLTI2NywxMSArMjgzLDYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpFdmVudFRyYWNraW5nUmVnaW9ucz4gewogICAgIHN0YXRpYyBXQVJOX1VO
VVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkV2ZW50VHJhY2tpbmdS
ZWdpb25zJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlRyYW5zZm9ybWF0aW9uTWF0cml4PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwotICAgIHN0YXRpYyBXQVJO
X1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlRyYW5zZm9ybWF0
aW9uTWF0cml4Jik7Ci19OwotCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OkxpbmVhclRpbWluZ0Z1bmN0aW9uPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImLCBjb25zdCBXZWJDb3JlOjpMaW5lYXJUaW1pbmdGdW5jdGlvbiYpOwogICAgIHN0YXRpYyBX
QVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkxpbmVhclRp
bWluZ0Z1bmN0aW9uJik7CkBAIC0yOTksMzggKzMxMCw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPiB7CiAgICAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPiBkZWNvZGUoRGVjb2RlciYpOwogfTsK
IAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFBvaW50PiB7
Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBv
aW50Jik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVy
JiwgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OkZsb2F0UG9pbnQ+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0UG9pbnQzRD4gewotICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludDNEJik7Ci0gICAgc3Rh
dGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6Rmxv
YXRQb2ludDNEJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OkZsb2F0UmVjdD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0Jik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29s
IGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6RmxvYXRSZWN0Jik7Ci0gICAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLSAgICAK
LXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQ+
IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
Qm94RXh0ZW50Jik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShE
ZWNvZGVyJiwgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRTaXplPiB7Ci0gICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKTsKLSAgICBzdGF0aWMg
V0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpGbG9hdFNp
emUmKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Rmxv
YXRSb3VuZGVkUmVjdD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRV
Uk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3QmKTsKLX07
Ci0KICNpZiBFTkFCTEUoTUVUQV9WSUVXUE9SVCkKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHM+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJik7CkBAIC0zNDUs
MzUgKzMyNCw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Vmll
d3BvcnRBdHRyaWJ1dGVzPiB7CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRl
Y29kZShEZWNvZGVyJiwgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJik7CiB9OwogCi10ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkludFBvaW50PiB7Ci0gICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwotICAg
IHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6
OkludFBvaW50Jik7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+
IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OkludFJlY3Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJv
b2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0gICAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6SW50UmVjdD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0KLXRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW50U2l6ZT4gewotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEVuY29kZXI+Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBj
b25zdCBXZWJDb3JlOjpJbnRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBi
b29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6SW50U2l6ZSYpOwotICAgIHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OkludFNpemU+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkxheW91dFNpemU+IHsKLSAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkxheW91dFNpemUmKTsK
LSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJD
b3JlOjpMYXlvdXRTaXplJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OkxheW91dFBvaW50PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBXZWJDb3JlOjpMYXlvdXRQb2ludCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9S
RVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkxheW91dFBvaW50Jik7Ci19Owot
CiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Okxlbmd0aD4gewogICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6TGVuZ3RoJik7CiAg
ICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29y
ZTo6TGVuZ3RoJik7CkBAIC00NTIsNiArNDAyLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpEcmFnRGF0YT4gewogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NP
QSkKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXVEY6Ok1hY2hTZW5kUmlnaHQ+
IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdURjo6TWFjaFNlbmRS
aWdodCYpOwogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgV1RGOjpNYWNoU2VuZFJp
Z2h0JiYpOwpAQCAtNDYzLDI2ICs0MTQsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4gewogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKLXRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Q0dQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVu
Y29kZShFbmNvZGVyJiwgQ0dQb2ludCk7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q0dQb2lu
dD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8Q0dTaXplPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBDR1NpemUpOwot
ICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENHU2l6ZT4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0K
LXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Q0dSZWN0PiB7Ci0gICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBDR1JlY3QpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENH
UmVjdD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIENHQWZmaW5lVHJhbnNmb3JtKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDR0FmZmlu
ZVRyYW5zZm9ybT4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0jZW5kaWYKKyNlbmRpZiAvLyBQTEFU
Rk9STShDT0NPQSkKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiB0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNlbGVjdGlvbkdlb21ldHJ5PiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQppbmRl
eCA4ZTRkNWYxMzFkODJmMWRlZmUyNmQxNWFiZmVlMDY0YTNiOTg5MGY4Li42YTQzNDA2NzE0NjNk
OTQ3MDcxOTIzMTBiMWY3YmEwYmQwM2E3NmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KQEAgLTMyMSw3OSArMzIxLDYg
QEAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IEFyZ3VtZW50Q29kZXI8
V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPjoKICAgICByZXR1cm4gV1RGTW92ZShjb21tYW5kKTsK
IH0KIAotdm9pZCBBcmd1bWVudENvZGVyPENHUmVjdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBDR1JlY3QgcmVjdCkKLXsKLSAgICBlbmNvZGVyIDw8IHJlY3Qub3JpZ2luIDw8IHJlY3Quc2l6
ZTsKLX0KLQotc3RkOjpvcHRpb25hbDxDR1JlY3Q+IEFyZ3VtZW50Q29kZXI8Q0dSZWN0Pjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgc3RkOjpvcHRpb25hbDxDR1BvaW50PiBvcmln
aW47Ci0gICAgZGVjb2RlciA+PiBvcmlnaW47Ci0gICAgaWYgKCFvcmlnaW4pCi0gICAgICAgIHJl
dHVybiB7IH07Ci0KLSAgICBzdGQ6Om9wdGlvbmFsPENHU2l6ZT4gc2l6ZTsKLSAgICBkZWNvZGVy
ID4+IHNpemU7Ci0gICAgaWYgKCFzaXplKQotICAgICAgICByZXR1cm4geyB9OwotCi0gICAgcmV0
dXJuIENHUmVjdCB7ICpvcmlnaW4sICpzaXplIH07Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxD
R1NpemU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0dTaXplIHNpemUpCi17Ci0gICAgZW5j
b2RlciA8PCBzaXplLndpZHRoIDw8IHNpemUuaGVpZ2h0OwotfQotCi1zdGQ6Om9wdGlvbmFsPENH
U2l6ZT4gQXJndW1lbnRDb2RlcjxDR1NpemU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsK
LSAgICBDR1NpemUgc2l6ZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUud2lkdGgpKQot
ICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZS5oZWlnaHQp
KQotICAgICAgICByZXR1cm4geyB9OwotICAgIHJldHVybiBzaXplOwotfQotCi12b2lkIEFyZ3Vt
ZW50Q29kZXI8Q0dQb2ludD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR1BvaW50IHBvaW50
KQotewotICAgIGVuY29kZXIgPDwgcG9pbnQueCA8PCBwb2ludC55OwotfQotCi1zdGQ6Om9wdGlv
bmFsPENHUG9pbnQ+IEFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQotewotICAgIENHUG9pbnQgcG9pbnQ7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb2lu
dC54KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvaW50
LnkpKQotICAgICAgICByZXR1cm4geyB9OwotICAgIHJldHVybiBwb2ludDsKLX0KLQotdm9pZCBB
cmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIs
IENHQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSkKLXsKLSAgICBlbmNvZGVyIDw8IHRyYW5zZm9y
bS5hIDw8IHRyYW5zZm9ybS5iIDw8IHRyYW5zZm9ybS5jIDw8IHRyYW5zZm9ybS5kIDw8IHRyYW5z
Zm9ybS50eCA8PCB0cmFuc2Zvcm0udHk7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8Q0dBZmZpbmVUcmFu
c2Zvcm0+IEFyZ3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKLXsKLSAgICBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm07Ci0gICAgaWYgKCFk
ZWNvZGVyLmRlY29kZSh0cmFuc2Zvcm0uYSkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgaWYg
KCFkZWNvZGVyLmRlY29kZSh0cmFuc2Zvcm0uYikpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAg
aWYgKCFkZWNvZGVyLmRlY29kZSh0cmFuc2Zvcm0uYykpCi0gICAgICAgIHJldHVybiB7IH07Ci0g
ICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0cmFuc2Zvcm0uZCkpCi0gICAgICAgIHJldHVybiB7IH07
Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0cmFuc2Zvcm0udHgpKQotICAgICAgICByZXR1cm4g
eyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLnR5KSkKLSAgICAgICAgcmV0
dXJuIHsgfTsKLSAgICByZXR1cm4gdHJhbnNmb3JtOwotfQotCiAjaWYgRU5BQkxFKENPTlRFTlRf
RklMVEVSSU5HKQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q29udGVudEZpbHRlclVu
YmxvY2tIYW5kbGVyPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OkNv
bnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgY29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439099</attachid>
            <date>2021-09-23 15:39:42 -0700</date>
            <delta_ts>2021-09-23 17:10:38 -0700</delta_ts>
            <desc>Try to fix WPE build</desc>
            <filename>bug-230714-20210923153941.patch</filename>
            <type>text/plain</type>
            <size>47862</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyOTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc0YjJhNTIwYzc0NWQzMjBi
ZGQ5YTg5NTIyM2Q3NzkzMTYzMTY2NDQuLmZjMmYwNjVhODgzMWJkMDUxMmI4ODRhYWNmMzhjYTZl
OGNmNGUxNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODQgQEAKKzIwMjEtMDktMjMgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIFJlZmFj
dG9yIHNvbWUgSVBDIGFyZ3VtZW50IGVuY29kZXIgbG9naWMgdG8gd29yayB3aXRoIFN0cmVhbUNv
bm5lY3Rpb25FbmNvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA3MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBNYWtlIGl0IHBvc3NpYmxlIHRvIHVzZSBgSVBDOjpTdHJlYW1Db25uZWN0aW9uRW5j
b2RlcmAgdG8gZW5jb2RlIGRpc3BsYXkgbGlzdCBpdGVtcyAoYW5kIHRoZWlyIG1lbWJlcnMpIGlu
IGFuCisgICAgICAgIElQQyBzdHJlYW0uIFRoaXMgcGF0Y2ggY29tcHJpc2VzIHR3byBtYWluIHNl
dHMgb2YgY2hhbmdlcyBpbiBgQXJndW1lbnRDb2RlcnNgLCBhbmQgYFdlYkNvcmVBcmd1bWVudENv
ZGVyc2AuIFNlZQorICAgICAgICBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICog
UGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxhdWRpdF90b2tlbl90Pjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxXYWxsVGltZT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8V2FsbFRpbWU+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPEF0b21TdHJpbmc+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVu
dENvZGVyPEF0b21TdHJpbmc+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPFN0cmluZz46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OmRlY29k
ZVN0cmluZ1RleHQpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFN0cmlu
Zz46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TW9ub3N0
YXRlPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNb25v
c3RhdGU+OjpkZWNvZGUpOiBEZWxldGVkLgorCisgICAgICAgIE1hbnkgb2YgdGhlc2UgYGVuY29k
ZSgpYCBtZXRob2RzIGFyZSBjdXJyZW50bHkgbm9uLXRlbXBsYXRlZCwgd2hpY2ggbWVhbnMgdGhh
dCBFbmNvZGVyIGFuZCBEZWNvZGVyIHVzZWQgaGVyZQorICAgICAgICByZWZlciBzb2xlbHkgdG8g
SVBDOjpFbmNvZGVyIGFuZCBJUEM6OkRlY29kZXIgKHJlc3BlY3RpdmVseSkgaW5zdGVhZCBvZiBv
dGhlciB0eXBlcyBvZiBlbmNvZGVycyAobmFtZWx5LAorICAgICAgICBTdHJlYW1Db25uZWN0aW9u
RW5jb2RlcikuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaDoKKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxXYWxsVGltZT46OmVuY29kZSk6CisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPEF0b21TdHJpbmc+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPEF0b21TdHJpbmc+OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpkZWNvZGVTdHJpbmdUZXh0
KToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxTdHJpbmc+OjplbmNvZGUpOgorICAgICAg
ICAoSVBDOjpBcmd1bWVudENvZGVyPFN0cmluZz46OmRlY29kZSk6CisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxNb25vc3RhdGU+OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9y
bT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QWZmaW5l
VHJhbnNmb3JtPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+OjpkZWNvZGUpOiBEZWxldGVkLgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjplbmNvZGUpOiBEZWxldGVk
LgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUpOiBEZWxl
dGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZGVj
b2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46
OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRCb3hF
eHRlbnQ+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZs
b2F0Qm94RXh0ZW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxGbG9hdFNpemU+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVu
dENvZGVyPEZsb2F0U2l6ZT46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46OmRlY29kZSk6IERlbGV0ZWQuCisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjplbmNvZGUpOiBEZWxldGVkLgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZW5jb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZGVjb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZW5jb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZGVjb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxMYXlvdXRTaXplPjo6ZW5jb2RlKTogRGVsZXRl
ZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxMYXlvdXRTaXplPjo6ZGVjb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+OjpkZWNv
ZGUpOiBEZWxldGVkLgorCisgICAgICAgIFRoZXNlIFdlYkNvcmUgYXJndW1lbnQgY29kZXJzIGFy
ZSBhbHNvIGN1cnJlbnRseSBpbmNvbXBhdGlibGUgd2l0aCBTdHJlYW1Db25uZWN0aW9uRW5jb2Rl
ciwgc2luY2UgdGhleSBhcmUgbm9uLQorICAgICAgICB0ZW1wbGF0ZWQgKGFuZCB0aHVzIG9ubHkg
d29yayB3aXRoIElQQzo6RW5jb2RlcikuIFNpbmNlIHRoZXNlIGFyZSBhbGwgZW5jb2RhYmxlIGFz
IFBPRCB0eXBlcywgd2UgY2FuIGp1c3QgdXNlCisgICAgICAgIFNpbXBsZUFyZ3VtZW50Q29kZXIg
Zm9yIGFsbCBvZiB0aGVzZS4gV2UgYWxzbyBhZGQgYSBuZXcgYERFRklORV9TSU1QTEVfQVJHVU1F
TlRfQ09ERVJgIG1hY3JvIHRvIG1ha2UgdGhpcyBjb2RlIGEKKyAgICAgICAgYml0IGVhc2llciB0
byByZWFkLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAg
ICAgICAqIFNoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tOgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPENHUmVjdD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8Q0dSZWN0Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxDR1NpemU+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPENHU2l6ZT46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+OjplbmNvZGUpOiBEZWxldGVkLgorICAg
ICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKTogRGVs
ZXRlZC4KKwogMjAyMS0wOS0yMyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNv
bT4KIAogICAgICAgICBzaG91bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrIHNo
b3VsZCB1c2UgV2ViQ29yZSdzIGxpbmtlZE9uT3JBZnRlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKaW5kZXggYTMyMDU1MTg3OThiNzRkY2VkYjhh
MDEzZjljOWM5ODg1YWFlNjYxNi4uM2RmYzMwNTgwZWE5ZjFlYWNjY2MyMzAxMGQ2ODE2MGVmNTMz
NGI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2Rl
cnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNw
cApAQCAtMzUsNTUgKzM1LDYgQEAKIAogbmFtZXNwYWNlIElQQyB7CiAKLXRlbXBsYXRlPHR5cGVu
YW1lIEVuY29kZXI+Ci12b2lkIEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgV2FsbFRpbWUmIHRpbWUpCi17Ci0gICAgZW5jb2RlciA8PCB0aW1l
LnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKTsKLX0KLXRlbXBsYXRlCi12b2lkIEFyZ3VtZW50
Q29kZXI8V2FsbFRpbWU+OjplbmNvZGU8RW5jb2Rlcj4oRW5jb2RlciYsIGNvbnN0IFdhbGxUaW1l
Jik7Ci10ZW1wbGF0ZQotdm9pZCBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZW5jb2RlPFdlYktp
dDo6UENNOjpFbmNvZGVyPihXZWJLaXQ6OlBDTTo6RW5jb2RlciYsIGNvbnN0IFdhbGxUaW1lJik7
Ci0KLVdBUk5fVU5VU0VEX1JFVFVSTiBib29sIEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgV2FsbFRpbWUmIHRpbWUpCi17Ci0gICAgZG91YmxlIHZhbHVl
OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodmFsdWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICB0aW1lID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHZhbHVlKTsKLSAgICByZXR1
cm4gdHJ1ZTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KLVdBUk5fVU5VU0VEX1JF
VFVSTiBzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IHRpbWU7
Ci0gICAgZGVjb2RlciA+PiB0aW1lOwotICAgIGlmICghdGltZSkKLSAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKLSAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKCp0aW1lKTsK
LX0KLXRlbXBsYXRlCi1zdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBBcmd1bWVudENvZGVyPFdhbGxU
aW1lPjo6ZGVjb2RlPERlY29kZXI+KERlY29kZXImKTsKLXRlbXBsYXRlCi1zdGQ6Om9wdGlvbmFs
PFdhbGxUaW1lPiBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlPFdlYktpdDo6UENNOjpE
ZWNvZGVyPihXZWJLaXQ6OlBDTTo6RGVjb2RlciYpOwotCi12b2lkIEFyZ3VtZW50Q29kZXI8QXRv
bVN0cmluZz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBBdG9tU3RyaW5nJiBhdG9t
U3RyaW5nKQotewotICAgIGVuY29kZXIgPDwgYXRvbVN0cmluZy5zdHJpbmcoKTsKLX0KLQotV0FS
Tl9VTlVTRURfUkVUVVJOIGJvb2wgQXJndW1lbnRDb2RlcjxBdG9tU3RyaW5nPjo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIsIEF0b21TdHJpbmcmIGF0b21TdHJpbmcpCi17Ci0gICAgU3RyaW5nIHN0
cmluZzsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0cmluZykpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLQotICAgIGF0b21TdHJpbmcgPSBzdHJpbmc7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0K
IHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiB2b2lkIEFyZ3VtZW50Q29kZXI8Q1N0cmluZz46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDU3RyaW5nJiBzdHJpbmcpCiB7CkBAIC0x
MjksODQgKzgwLDYgQEAgc3RkOjpvcHRpb25hbDxDU3RyaW5nPiBBcmd1bWVudENvZGVyPENTdHJp
bmc+OjpkZWNvZGU8RGVjb2Rlcj4oRGVjb2RlciYpOwogdGVtcGxhdGUKIHN0ZDo6b3B0aW9uYWw8
Q1N0cmluZz4gQXJndW1lbnRDb2RlcjxDU3RyaW5nPjo6ZGVjb2RlPFdlYktpdDo6UENNOjpEZWNv
ZGVyPihXZWJLaXQ6OlBDTTo6RGVjb2RlciYpOwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
Pgotdm9pZCBBcmd1bWVudENvZGVyPFN0cmluZz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBTdHJpbmcmIHN0cmluZykKLXsKLSAgICAvLyBTcGVjaWFsIGNhc2UgdGhlIG51bGwgc3Ry
aW5nLgotICAgIGlmIChzdHJpbmcuaXNOdWxsKCkpIHsKLSAgICAgICAgZW5jb2RlciA8PCBzdGQ6
Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICB1aW50MzJfdCBsZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7Ci0gICAgYm9vbCBpczhC
aXQgPSBzdHJpbmcuaXM4Qml0KCk7Ci0KLSAgICBlbmNvZGVyIDw8IGxlbmd0aCA8PCBpczhCaXQ7
Ci0KLSAgICBpZiAoaXM4Qml0KQotICAgICAgICBlbmNvZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0
YShzdHJpbmcuY2hhcmFjdGVyczgoKSwgbGVuZ3RoICogc2l6ZW9mKExDaGFyKSwgYWxpZ25vZihM
Q2hhcikpOwotICAgIGVsc2UKLSAgICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEo
cmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oc3RyaW5nLmNoYXJhY3RlcnMxNigpKSwg
bGVuZ3RoICogc2l6ZW9mKFVDaGFyKSwgYWxpZ25vZihVQ2hhcikpOwotfQotdGVtcGxhdGUKLXZv
aWQgQXJndW1lbnRDb2RlcjxTdHJpbmc+OjplbmNvZGU8RW5jb2Rlcj4oRW5jb2RlciYsIGNvbnN0
IFN0cmluZyYpOwotdGVtcGxhdGUKLXZvaWQgQXJndW1lbnRDb2RlcjxTdHJpbmc+OjplbmNvZGU8
U3RyZWFtQ29ubmVjdGlvbkVuY29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwgY29uc3Qg
U3RyaW5nJik7Ci10ZW1wbGF0ZQotdm9pZCBBcmd1bWVudENvZGVyPFN0cmluZz46OmVuY29kZTxX
ZWJLaXQ6OlBDTTo6RW5jb2Rlcj4oV2ViS2l0OjpQQ006OkVuY29kZXImLCBjb25zdCBTdHJpbmcm
KTsKLQotdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZSwgdHlwZW5hbWUgRGVjb2Rlcj4K
LXN0YXRpYyBpbmxpbmUgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGRlY29kZVN0cmluZ1RleHQoRGVj
b2RlciYgZGVjb2RlciwgdWludDMyX3QgbGVuZ3RoKQotewotICAgIC8vIEJlZm9yZSBhbGxvY2F0
aW5nIHRoZSBzdHJpbmcsIG1ha2Ugc3VyZSB0aGF0IHRoZSBkZWNvZGVyIGJ1ZmZlciBpcyBiaWcg
ZW5vdWdoLgotICAgIGlmICghZGVjb2Rlci50ZW1wbGF0ZSBidWZmZXJJc0xhcmdlRW5vdWdoVG9D
b250YWluPENoYXJhY3RlclR5cGU+KGxlbmd0aCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7Ci0gICAgCi0gICAgQ2hhcmFjdGVyVHlwZSogYnVmZmVyOwotICAgIFN0cmluZyBzdHJpbmcg
PSBTdHJpbmc6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQobGVuZ3RoLCBidWZmZXIpOwotICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4o
YnVmZmVyKSwgbGVuZ3RoICogc2l6ZW9mKENoYXJhY3RlclR5cGUpLCBhbGlnbm9mKENoYXJhY3Rl
clR5cGUpKSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICAKLSAgICByZXR1cm4g
c3RyaW5nOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgotV0FSTl9VTlVTRURfUkVU
VVJOIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBBcmd1bWVudENvZGVyPFN0cmluZz46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQotewotICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IGxlbmd0aDsK
LSAgICBkZWNvZGVyID4+IGxlbmd0aDsKLSAgICBpZiAoIWxlbmd0aCkKLSAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKLSAgICAKLSAgICBpZiAoKmxlbmd0aCA9PSBzdGQ6Om51bWVyaWNfbGlt
aXRzPHVpbnQzMl90Pjo6bWF4KCkpIHsKLSAgICAgICAgLy8gVGhpcyBpcyB0aGUgbnVsbCBzdHJp
bmcuCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICB9Ci0gICAgCi0gICAgc3RkOjpvcHRp
b25hbDxib29sPiBpczhCaXQ7Ci0gICAgZGVjb2RlciA+PiBpczhCaXQ7Ci0gICAgaWYgKCFpczhC
aXQpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgCi0gICAgaWYgKCppczhCaXQp
Ci0gICAgICAgIHJldHVybiBkZWNvZGVTdHJpbmdUZXh0PExDaGFyPihkZWNvZGVyLCAqbGVuZ3Ro
KTsKLSAgICByZXR1cm4gZGVjb2RlU3RyaW5nVGV4dDxVQ2hhcj4oZGVjb2RlciwgKmxlbmd0aCk7
Ci19Ci10ZW1wbGF0ZQotc3RkOjpvcHRpb25hbDxTdHJpbmc+IEFyZ3VtZW50Q29kZXI8U3RyaW5n
Pjo6ZGVjb2RlPERlY29kZXI+KERlY29kZXImKTsKLXRlbXBsYXRlCi1zdGQ6Om9wdGlvbmFsPFN0
cmluZz4gQXJndW1lbnRDb2RlcjxTdHJpbmc+OjpkZWNvZGU8V2ViS2l0OjpQQ006OkRlY29kZXI+
KFdlYktpdDo6UENNOjpEZWNvZGVyJik7Ci0KLVdBUk5fVU5VU0VEX1JFVFVSTiBib29sIEFyZ3Vt
ZW50Q29kZXI8U3RyaW5nPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFN0cmluZyYgcmVzdWx0
KQotewotICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBzdHJpbmc7Ci0gICAgZGVjb2RlciA+PiBz
dHJpbmc7Ci0gICAgaWYgKCFzdHJpbmcpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXN1
bHQgPSBXVEZNb3ZlKCpzdHJpbmcpOwotICAgIHJldHVybiB0cnVlOwotfQotCiB2b2lkIEFyZ3Vt
ZW50Q29kZXI8U0hBMTo6RGlnZXN0Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNI
QTE6OkRpZ2VzdCYgZGlnZXN0KQogewogICAgIGVuY29kZXIuZW5jb2RlRml4ZWRMZW5ndGhEYXRh
KGRpZ2VzdC5kYXRhKCksIHNpemVvZihkaWdlc3QpLCAxKTsKQEAgLTIxOCw2ICs5MSw3IEBAIFdB
Uk5fVU5VU0VEX1JFVFVSTiBib29sIEFyZ3VtZW50Q29kZXI8U0hBMTo6RGlnZXN0Pjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIFNICiB9CiAKICNpZiBIQVZFKEFVRElUX1RPS0VOKQorCiB2b2lk
IEFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBhdWRpdF90b2tlbl90JiBhdWRpdFRva2VuKQogewogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGF1ZGl0VG9rZW4udmFsKTsgaSsrKQpAQCAtMjMyLDE1
ICsxMDYsNyBAQCBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rv
a2VuX3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgYQogICAgIH0KICAgICByZXR1cm4gdHJ1
ZTsKIH0KLSNlbmRpZgogCi12b2lkIEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2RlKEVu
Y29kZXImLCBjb25zdCBNb25vc3RhdGUmKQotewotfQotCi1XQVJOX1VOVVNFRF9SRVRVUk4gc3Rk
OjpvcHRpb25hbDxNb25vc3RhdGU+IEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2RlKERl
Y29kZXImKQotewotICAgIHJldHVybiBNb25vc3RhdGUgeyB9OwotfQorI2VuZGlmIC8vIEhBVkUo
QVVESVRfVE9LRU4pCiAKIH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKaW5kZXggYThjODkzZjBjNTI0MGE4ODg5YzM0NTE0Zjlm
YjFlZmVlMGQ2MjcwYS4uM2E3ODdiYTUyOTYxNjhmMzljYjdiYjczNGNkMjQ3NTNkZmVkYWRlNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCkBAIC0zNyw5
ICszNywxNSBAQAogI2luY2x1ZGUgPHd0Zi9VbmV4cGVjdGVkLmg+CiAjaW5jbHVkZSA8d3RmL1Zh
cmlhbnQuaD4KICNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9B
dG9tU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFj
ZSBJUEMgewogCisjZGVmaW5lIERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoY2xhc3NOYW1l
KSB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPGNsYXNzTmFtZT4gOiBTaW1wbGVBcmd1
bWVudENvZGVyPGNsYXNzTmFtZT4geyB9OyBcCisgICAgdGVtcGxhdGUgdm9pZCBBcmd1bWVudENv
ZGVyPGNsYXNzTmFtZT46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVyJiwgY29uc3QgY2xhc3NOYW1l
Jik7IFwKKyAgICB0ZW1wbGF0ZSBib29sIEFyZ3VtZW50Q29kZXI8Y2xhc3NOYW1lPjo6ZGVjb2Rl
PERlY29kZXI+KERlY29kZXImLCBjbGFzc05hbWUmKTsKKwogLy8gQW4gYXJndW1lbnQgY29kZXIg
d29ya3Mgb24gUE9EIHR5cGVzCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgU2ltcGxlQXJn
dW1lbnRDb2RlciB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KQEAgLTQ4LDYgKzU0
LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IFNpbXBsZUFyZ3VtZW50Q29kZXIgewog
ICAgICAgICBlbmNvZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVycHJldF9jYXN0PGNv
bnN0IHVpbnQ4X3QqPigmdCksIHNpemVvZihUKSwgYWxpZ25vZihUKSk7CiAgICAgfQogCisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJO
IGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFQmIHQpCiAgICAgewogICAgICAgICByZXR1
cm4gZGVjb2Rlci5kZWNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDx1aW50OF90
Kj4oJnQpLCBzaXplb2YoVCksIGFsaWdub2YoVCkpOwpAQCAtMTA3LDEyICsxMTQsMTQgQEAgdGVt
cGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8QXJyYXlSZWZlcmVuY2U8VCwg
YXJyYXlSZWZlcmVuY2VEeW5hbWkKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBB
cmd1bWVudENvZGVyPE9wdGlvblNldDxUPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29k
ZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IE9wdGlv
blNldDxUPiYgb3B0aW9uU2V0KQogICAgIHsKICAgICAgICAgQVNTRVJUKFdURjo6aXNWYWxpZE9w
dGlvblNldChvcHRpb25TZXQpKTsKICAgICAgICAgZW5jb2RlciA8PCBvcHRpb25TZXQudG9SYXco
KTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBX
QVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgT3B0aW9uU2V0
PFQ+JiBvcHRpb25TZXQpCiAgICAgewogICAgICAgICB0eXBlbmFtZSBPcHRpb25TZXQ8VD46OlN0
b3JhZ2VUeXBlIHZhbHVlOwpAQCAtMTI0LDYgKzEzMyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
IHN0cnVjdCBBcmd1bWVudENvZGVyPE9wdGlvblNldDxUPj4gewogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPE9wdGlvblNldDxUPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAg
ewogICAgICAgICBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIE9wdGlvblNldDxUPjo6U3RvcmFnZVR5
cGU+IHZhbHVlOwpAQCAtMTg3LDYgKzE5Nyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVj
dCBBcmd1bWVudENvZGVyPHN0ZDo6b3B0aW9uYWw8VD4+IHsKIH07CiAKIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPEJveDxUPj4geworICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IEJveDxUPiYgYm94KQogICAgIHsKICAgICAgICAgaWYgKCFib3gpIHsKQEAgLTE5OCw2ICsy
MDksNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxCb3g8VD4+
IHsKICAgICAgICAgZW5jb2RlciA8PCAqYm94LmdldCgpOwogICAgIH0KIAorICAgIHRlbXBsYXRl
PHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCBCb3g8VD4mIGJveCkKICAgICB7CiAgICAgICAgIGJvb2wg
aXNFbmdhZ2VkOwpAQCAtMjE3LDYgKzIyOSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVj
dCBBcmd1bWVudENvZGVyPEJveDxUPj4gewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PEJveDxUPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9w
dGlvbmFsPGJvb2w+IGlzRW5nYWdlZDsKQEAgLTIzNSwxMSArMjQ4LDEzIEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPEJveDxUPj4gewogfTsKIAogdGVtcGxhdGU8
dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpwYWlyPFQs
IFU+PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qgc3RkOjpwYWlyPFQsIFU+JiBwYWlyKQogICAg
IHsKICAgICAgICAgZW5jb2RlciA8PCBwYWlyLmZpcnN0IDw8IHBhaXIuc2Vjb25kOwogICAgIH0K
IAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VE
X1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnBhaXI8VCwgVT4mIHBh
aXIpCiAgICAgewogICAgICAgICBUIGZpcnN0OwpAQCAtMjU1LDYgKzI3MCw3IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IHN0cnVjdCBBcmd1bWVudENvZGVyPHN0ZDo6cGFpcjxU
LCBVPj4gewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxULCBVPj4g
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPFQ+
IGZpcnN0OwpAQCAtMzY1LDExICszODEsMTMgQEAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gRWxlbWVu
dHM+IHN0cnVjdCBBcmd1bWVudENvZGVyPHN0ZDo6dHVwbGU8RWxlbWVudHMuLi4+PiB7CiB9Owog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlUeXBlLCB0eXBlbmFtZSBWYWx1ZVR5cGU+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdURjo6S2V5VmFsdWVQYWlyPEtleVR5cGUsIFZhbHVlVHlwZT4+IHsKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdCBXVEY6OktleVZhbHVlUGFpcjxLZXlUeXBlLCBWYWx1ZVR5cGU+
JiBwYWlyKQogICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBwYWlyLmtleSA8PCBwYWlyLnZhbHVl
OwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdB
Uk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBXVEY6OktleVZh
bHVlUGFpcjxLZXlUeXBlLCBWYWx1ZVR5cGU+JiBwYWlyKQogICAgIHsKICAgICAgICAgS2V5VHlw
ZSBrZXk7CkBAIC0zOTcsNiArNDE1LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlu
bGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KICAgICAg
ICAgICAgIGVuY29kZXIgPDwgdmVjdG9yW2ldOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVu
YW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxl
ciwgbWluQ2FwYWNpdHk+JiB2ZWN0b3IpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4+IG9w
dGlvbmFsOwpAQCAtNDM2LDYgKzQ1NSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBp
bmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyLCBzaXplX3QgbWluCiAgICAg
ICAgIGVuY29kZXIuZW5jb2RlRml4ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
dWludDhfdCo+KHZlY3Rvci5kYXRhKCkpLCB2ZWN0b3Iuc2l6ZSgpICogc2l6ZW9mKFQpLCBhbGln
bm9mKFQpKTsKICAgICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAg
ICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4m
IHZlY3RvcikKICAgICB7CiAgICAgICAgIHVpbnQ2NF90IGRlY29kZWRTaXplOwpAQCAtNDUwLDcg
KzQ3MCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlw
ZW5hbWUgT3ZlcmZsb3dIYW5kbGVyLCBzaXplX3QgbWluCiAgICAgICAgIC8vIFNpbmNlIHdlIGtu
b3cgdGhlIHRvdGFsIHNpemUgb2YgdGhlIGVsZW1lbnRzLCB3ZSBjYW4gYWxsb2NhdGUgdGhlIHZl
Y3RvciBpbgogICAgICAgICAvLyBvbmUgZmVsbCBzd29vcC4gQmVmb3JlIGFsbG9jYXRpbmcgd2Ug
bXVzdCBob3dldmVyIG1ha2Ugc3VyZSB0aGF0IHRoZSBkZWNvZGVyIGJ1ZmZlcgogICAgICAgICAv
LyBpcyBiaWcgZW5vdWdoLgotICAgICAgICBpZiAoIWRlY29kZXIuYnVmZmVySXNMYXJnZUVub3Vn
aFRvQ29udGFpbjxUPihzaXplKSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLnRlbXBsYXRlIGJ1ZmZl
cklzTGFyZ2VFbm91Z2hUb0NvbnRhaW48VD4oc2l6ZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICAgICAgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIs
IG1pbkNhcGFjaXR5PiB0ZW1wOwpAQCAtNDk3LDYgKzUxNyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyLCBzaXpl
X3QgbWluCiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlw
ZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBNYXBwZWRUcmFp
dHNBcmcsIHR5cGVuYW1lIEhhc2hUYWJsZVRyYWl0cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFz
aE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBwZWRUcmFp
dHNBcmcsIEhhc2hUYWJsZVRyYWl0cz4+IHsKICAgICB0eXBlZGVmIEhhc2hNYXA8S2V5QXJnLCBN
YXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVkVHJhaXRzQXJnLCBIYXNoVGFi
bGVUcmFpdHM+IEhhc2hNYXBUeXBlOwogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4K
ICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgSGFzaE1hcFR5
cGUmIGhhc2hNYXApCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQz
Ml90PihoYXNoTWFwLnNpemUoKSk7CkBAIC01MDQsNiArNTI1LDcgQEAgdGVtcGxhdGU8dHlwZW5h
bWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1l
IEtleVRyYWkKICAgICAgICAgICAgIGVuY29kZXIgPDwgKml0OwogICAgIH0KIAorICAgIHRlbXBs
YXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8SGFzaE1hcFR5
cGU+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKICAgICAgICAgdWludDMyX3QgaGFz
aE1hcFNpemU7CkBAIC01MzQsNiArNTU2LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0
eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWkKICAg
ICAgICAgcmV0dXJuIGhhc2hNYXA7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVj
b2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIEhhc2hNYXBUeXBlJiBoYXNoTWFwKQogICAgIHsKICAgICAgICAgc3RkOjpvcHRp
b25hbDxIYXNoTWFwVHlwZT4gdGVtcEhhc2hNYXA7CkBAIC01NDgsNiArNTcxLDcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1lIEhhc2hBcmcs
IHR5cGVuYW1lIEtleVRyYWkKIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgSGFz
aEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNoVGFibGVUcmFpdHM+IHN0
cnVjdCBBcmd1bWVudENvZGVyPEhhc2hTZXQ8S2V5QXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcs
IEhhc2hUYWJsZVRyYWl0cz4+IHsKICAgICB0eXBlZGVmIEhhc2hTZXQ8S2V5QXJnLCBIYXNoQXJn
LCBLZXlUcmFpdHNBcmcsIEhhc2hUYWJsZVRyYWl0cz4gSGFzaFNldFR5cGU7CiAKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBIYXNoU2V0VHlwZSYgaGFzaFNldCkKICAgICB7CiAgICAgICAgIGVuY29k
ZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGhhc2hTZXQuc2l6ZSgpKTsKQEAgLTU1NSw2ICs1
NzksNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVu
YW1lIEtleVRyYWl0c0FyZywgdHlwZW5hbWUgSGFzaAogICAgICAgICAgICAgZW5jb2RlciA8PCAq
aXQ7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMg
V0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEhhc2hTZXRU
eXBlJiBoYXNoU2V0KQogICAgIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxIYXNoU2V0VHlwZT4g
dGVtcEhhc2hTZXQ7CkBAIC01NjYsNiArNTkxLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJn
LCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1lIEhhc2gK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVj
b2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxIYXNoU2V0VHlwZT4gZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCiAgICAgewogICAgICAgICB1aW50NjRfdCBoYXNoU2V0U2l6ZTsKQEAgLTU5
NSw2ICs2MjEsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcs
IHR5cGVuYW1lIEtleVRyYWl0c0FyZywgdHlwZW5hbWUgSGFzaAogdGVtcGxhdGU8dHlwZW5hbWUg
S2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmc+IHN0cnVjdCBB
cmd1bWVudENvZGVyPEhhc2hDb3VudGVkU2V0PEtleUFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJn
Pj4gewogICAgIHR5cGVkZWYgSGFzaENvdW50ZWRTZXQ8S2V5QXJnLCBIYXNoQXJnLCBLZXlUcmFp
dHNBcmc+IEhhc2hDb3VudGVkU2V0VHlwZTsKICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBF
bmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBI
YXNoQ291bnRlZFNldFR5cGUmIGhhc2hDb3VudGVkU2V0KQogICAgIHsKICAgICAgICAgZW5jb2Rl
ciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaGFzaENvdW50ZWRTZXQuc2l6ZSgpKTsKQEAgLTYw
NSw2ICs2MzIsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcs
IHR5cGVuYW1lIEtleVRyYWl0c0FyZz4gc3RydWN0IEFyZ3VtZQogICAgICAgICB9CiAgICAgfQog
ICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5V
U0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBIYXNoQ291bnRlZFNldFR5
cGUmIGhhc2hDb3VudGVkU2V0KQogICAgIHsKICAgICAgICAgdWludDY0X3QgaGFzaENvdW50ZWRT
ZXRTaXplOwpAQCAtNjM2LDYgKzY2NCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlw
ZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnPiBzdHJ1Y3QgQXJndW1lCiB9Owog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZVR5cGUsIHR5cGVuYW1lIEVycm9yVHlwZT4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8RXhwZWN0ZWQ8VmFsdWVUeXBlLCBFcnJvclR5cGU+PiB7CisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgRXhwZWN0ZWQ8VmFsdWVUeXBlLCBFcnJvclR5cGU+JiBleHBlY3RlZCkK
ICAgICB7CiAgICAgICAgIGlmICghZXhwZWN0ZWQuaGFzX3ZhbHVlKCkpIHsKQEAgLTY0Nyw2ICs2
NzYsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZVR5cGUsIHR5cGVuYW1lIEVycm9yVHlwZT4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8RXhwZWN0ZWQ8VgogICAgICAgICBlbmNvZGVyIDw8IGV4cGVj
dGVkLnZhbHVlKCk7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAg
ICBzdGF0aWMgc3RkOjpvcHRpb25hbDxFeHBlY3RlZDxWYWx1ZVR5cGUsIEVycm9yVHlwZT4+IGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxib29s
PiBoYXNWYWx1ZTsKQEAgLTY3Myw2ICs3MDMsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZVR5
cGUsIHR5cGVuYW1lIEVycm9yVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8RXhwZWN0ZWQ8Vgog
CiB0ZW1wbGF0ZTxzaXplX3QgaW5kZXgsIHR5cGVuYW1lLi4uIFR5cGVzPgogc3RydWN0IFZhcmlh
bnRDb2RlciB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9p
ZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV1RGOjpWYXJpYW50PFR5cGVzLi4uPiYg
dmFyaWFudCwgdW5zaWduZWQgaSkKICAgICB7CiAgICAgICAgIGlmIChpID09IGluZGV4KSB7CkBA
IC02ODIsNiArNzEzLDcgQEAgc3RydWN0IFZhcmlhbnRDb2RlciB7CiAgICAgICAgIFZhcmlhbnRD
b2RlcjxpbmRleCAtIDEsIFR5cGVzLi4uPjo6ZW5jb2RlKGVuY29kZXIsIHZhcmlhbnQsIGkpOwog
ICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IGRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyLCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgaWYgKGkgPT0gaW5kZXgpIHsKQEAgLTY5
NywxMiArNzI5LDE0IEBAIHN0cnVjdCBWYXJpYW50Q29kZXIgewogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZS4uLiBUeXBlcz4KIHN0cnVjdCBWYXJpYW50Q29kZXI8MCwgVHlwZXMuLi4+IHsKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+JiB2YXJpYW50LCB1bnNpZ25lZCBp
KQogICAgIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChpLCAhaSk7CiAgICAgICAgIGVuY29kZXIg
PDwgV1RGOjpnZXQ8MD4odmFyaWFudCk7CiAgICAgfQogICAgIAorICAgIHRlbXBsYXRlPHR5cGVu
YW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V1RGOjpWYXJpYW50PFR5cGVz
Li4uPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIsIHVuc2lnbmVkIGkpCiAgICAgewogICAgICAg
ICBBU1NFUlRfVU5VU0VEKGksICFpKTsKQEAgLTcxNSw2ICs3NDksNyBAQCBzdHJ1Y3QgVmFyaWFu
dENvZGVyPDAsIFR5cGVzLi4uPiB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4geworICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IFdURjo6VmFyaWFudDxUeXBlcy4uLj4mIHZhcmlhbnQpCiAgICAgewogICAg
ICAgICB1bnNpZ25lZCBpID0gdmFyaWFudC5pbmRleCgpOwpAQCAtNzIyLDYgKzc1Nyw3IEBAIHRl
bXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXVEY6OlZhcmlh
bnQ8VHlwZXMuLi4+PiB7CiAgICAgICAgIFZhcmlhbnRDb2RlcjxzaXplb2YuLi4oVHlwZXMpIC0g
MSwgVHlwZXMuLi4+OjplbmNvZGUoZW5jb2RlciwgdmFyaWFudCwgaSk7CiAgICAgfQogICAgIAor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewog
ICAgICAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBpOwpAQCAtNzM0LDMyICs3NzAsMTM5IEBA
IHRlbXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXVEY6OlZh
cmlhbnQ8VHlwZXMuLi4+PiB7CiAgICAgCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdhbGxUaW1lPiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KLSAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdhbGxUaW1lJik7Ci0gICAgc3RhdGljIFdBUk5f
VU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2FsbFRpbWUmKTsKKyAgICBzdGF0
aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2FsbFRpbWUmIHRpbWUpCisg
ICAgeworICAgICAgICBlbmNvZGVyIDw8IHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgp
OworICAgIH0KKwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+Ci0gICAgc3RhdGljIHN0
ZDo6b3B0aW9uYWw8V2FsbFRpbWU+IGRlY29kZShEZWNvZGVyJik7CisgICAgc3RhdGljIFdBUk5f
VU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBXYWxsVGltZSYgdGlt
ZSkKKyAgICB7CisgICAgICAgIGRvdWJsZSB2YWx1ZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZSh2YWx1ZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgdGltZSA9
IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh2YWx1ZSk7CisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CisgICAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8V2FsbFRpbWU+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IHRpbWU7CisgICAgICAgIGRlY29kZXIgPj4gdGltZTsK
KyAgICAgICAgaWYgKCF0aW1lKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAg
ICAgICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcygqdGltZSk7CisgICAgfQogfTsK
IAordGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZW5jb2RlPEVuY29kZXI+
KEVuY29kZXImLCBjb25zdCBXYWxsVGltZSYpOwordGVtcGxhdGUgc3RkOjpvcHRpb25hbDxXYWxs
VGltZT4gQXJndW1lbnRDb2RlcjxXYWxsVGltZT46OmRlY29kZTxEZWNvZGVyPihEZWNvZGVyJik7
Cit0ZW1wbGF0ZSBib29sIEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjpkZWNvZGU8RGVjb2Rlcj4o
RGVjb2RlciYsIFdhbGxUaW1lJik7CisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8
QXRvbVN0cmluZz4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgQXRv
bVN0cmluZyYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVj
b2RlciYsIEF0b21TdHJpbmcmKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgorICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBBdG9tU3RyaW5nJiBh
dG9tU3RyaW5nKQorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBhdG9tU3RyaW5nLnN0cmluZygp
OworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CisgICAgc3RhdGljIFdB
Uk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBBdG9tU3RyaW5n
JiBhdG9tU3RyaW5nKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHN0cmluZzsKKyAgICAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShzdHJpbmcpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgICAgIGF0b21TdHJpbmcgPSBzdHJpbmc7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
IH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Q1N0cmluZz4gewogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBDU3RyaW5nJik7CisKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAg
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENTdHJpbmc+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCit0
ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlLCB0eXBlbmFtZSBEZWNvZGVyPgorc3RhdGlj
IGlubGluZSBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gZGVjb2RlU3RyaW5nVGV4dChEZWNvZGVyJiBk
ZWNvZGVyLCB1aW50MzJfdCBsZW5ndGgpCit7CisgICAgLy8gQmVmb3JlIGFsbG9jYXRpbmcgdGhl
IHN0cmluZywgbWFrZSBzdXJlIHRoYXQgdGhlIGRlY29kZXIgYnVmZmVyIGlzIGJpZyBlbm91Z2gu
CisgICAgaWYgKCFkZWNvZGVyLnRlbXBsYXRlIGJ1ZmZlcklzTGFyZ2VFbm91Z2hUb0NvbnRhaW48
Q2hhcmFjdGVyVHlwZT4obGVuZ3RoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIENoYXJhY3RlclR5cGUqIGJ1ZmZlcjsKKyAgICBTdHJpbmcgc3RyaW5nID0gU3RyaW5nOjpj
cmVhdGVVbmluaXRpYWxpemVkKGxlbmd0aCwgYnVmZmVyKTsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlRml4ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGJ1ZmZlciksIGxl
bmd0aCAqIHNpemVvZihDaGFyYWN0ZXJUeXBlKSwgYWxpZ25vZihDaGFyYWN0ZXJUeXBlKSkpCisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gc3RyaW5nOworfQorCiB0
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFN0cmluZz4gewogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEVuY29kZXI+Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBT
dHJpbmcmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29k
ZXImLCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICAvLyBTcGVjaWFsIGNhc2UgdGhl
IG51bGwgc3RyaW5nLgorICAgICAgICBpZiAoc3RyaW5nLmlzTnVsbCgpKSB7CisgICAgICAgICAg
ICBlbmNvZGVyIDw8IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHVpbnQzMl90IGxlbmd0aCA9IHN0
cmluZy5sZW5ndGgoKTsKKyAgICAgICAgYm9vbCBpczhCaXQgPSBzdHJpbmcuaXM4Qml0KCk7CisK
KyAgICAgICAgZW5jb2RlciA8PCBsZW5ndGggPDwgaXM4Qml0OworCisgICAgICAgIGlmIChpczhC
aXQpCisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0YShzdHJpbmcuY2hh
cmFjdGVyczgoKSwgbGVuZ3RoICogc2l6ZW9mKExDaGFyKSwgYWxpZ25vZihMQ2hhcikpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0YShyZWlu
dGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihzdHJpbmcuY2hhcmFjdGVyczE2KCkpLCBsZW5n
dGggKiBzaXplb2YoVUNoYXIpLCBhbGlnbm9mKFVDaGFyKSk7CisgICAgfQorCiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRGVjb2Rlcj4KLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGRl
Y29kZShEZWNvZGVyJik7CisgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyLCBTdHJpbmcmIHJlc3VsdCkKKyAgICB7CisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8U3RyaW5nPiBzdHJpbmc7CisgICAgICAgIGRlY29kZXIgPj4gc3RyaW5nOworICAg
ICAgICBpZiAoIXN0cmluZykKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmVz
dWx0ID0gV1RGTW92ZSgqc3RyaW5nKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxT
dHJpbmc+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRp
b25hbDx1aW50MzJfdD4gbGVuZ3RoOworICAgICAgICBkZWNvZGVyID4+IGxlbmd0aDsKKyAgICAg
ICAgaWYgKCFsZW5ndGgpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgIGlmICgqbGVuZ3RoID09IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKSkg
eworICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgbnVsbCBzdHJpbmcuCisgICAgICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7CisgICAgICAgIH0KKworICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+
IGlzOEJpdDsKKyAgICAgICAgZGVjb2RlciA+PiBpczhCaXQ7CisgICAgICAgIGlmICghaXM4Qml0
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBpZiAoKmlzOEJp
dCkKKyAgICAgICAgICAgIHJldHVybiBkZWNvZGVTdHJpbmdUZXh0PExDaGFyLCBEZWNvZGVyPihk
ZWNvZGVyLCAqbGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIGRlY29kZVN0cmluZ1RleHQ8VUNoYXIs
IERlY29kZXI+KGRlY29kZXIsICpsZW5ndGgpOworICAgIH0KIH07CiAKK3RlbXBsYXRlIHZvaWQg
QXJndW1lbnRDb2RlcjxTdHJpbmc+OjplbmNvZGU8RW5jb2Rlcj4oRW5jb2RlciYsIGNvbnN0IFN0
cmluZyYpOwordGVtcGxhdGUgc3RkOjpvcHRpb25hbDxTdHJpbmc+IEFyZ3VtZW50Q29kZXI8U3Ry
aW5nPjo6ZGVjb2RlPERlY29kZXI+KERlY29kZXImKTsKK3RlbXBsYXRlIGJvb2wgQXJndW1lbnRD
b2RlcjxTdHJpbmc+OjpkZWNvZGU8RGVjb2Rlcj4oRGVjb2RlciYsIFN0cmluZyYpOworCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFNIQTE6OkRpZ2VzdD4gewogICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgU0hBMTo6RGlnZXN0Jik7CiAgICAgc3RhdGljIFdB
Uk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgU0hBMTo6RGlnZXN0Jik7CkBA
IC03NzMsOCArOTE2LDE0IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8YXVkaXRf
dG9rZW5fdD4gewogI2VuZGlmCiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8TW9u
b3N0YXRlPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBNb25vc3Rh
dGUmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxNb25vc3RhdGU+IGRlY29kZShEZWNvZGVy
Jik7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KKyAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoRW5jb2RlciYsIGNvbnN0IE1vbm9zdGF0ZSYpIHsgfQorCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgRGVjb2Rlcj4KKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxNb25vc3RhdGU+IGRlY29kZShE
ZWNvZGVyJikKKyAgICB7CisgICAgICAgIHJldHVybiBNb25vc3RhdGUgeyB9OworICAgIH0KIH07
CiAKIH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHAKaW5kZXggZmFiY2VmNmMyMTI1MjNlZjAxY2M4OWE0OTg0NjAwNmQ4
ZWEyZGY5My4uMWQ1YTZkNmExOGY2ZTdjNzEyNmNjYWE3OWU2MmUzY2U3NzA0NjRjOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC04OCw3
ICs4OCw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvVGV4dEluZGljYXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGltaW5nRnVu
Y3Rpb24uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1RyYW5zZm9ybWF0aW9uTWF0cml4Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9Vc2VyU3R5bGVTaGVldC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmVsb2Np
dHlEYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WaWV3cG9ydEFyZ3VtZW50cy5oPgpAQCAtMjMx
LDE2ICsyMzAsNiBAQCBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlVHlwZXNB
bmREYXRhKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxTdHJpbgogICAgIHJldHVybiB0cnVlOwog
fQogCi12b2lkIEFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgYWZmaW5lVHJhbnNmb3JtKQotewotICAg
IFNpbXBsZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2RlKGVuY29kZXIsIGFm
ZmluZVRyYW5zZm9ybSk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxBZmZpbmVUcmFuc2Zvcm0+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgQWZmaW5lVHJhbnNmb3JtJiBhZmZpbmVUcmFuc2Zv
cm0pCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6
ZGVjb2RlKGRlY29kZXIsIGFmZmluZVRyYW5zZm9ybSk7Ci19Ci0KIHZvaWQgQXJndW1lbnRDb2Rl
cjxDYWNoZVF1ZXJ5T3B0aW9ucz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDYWNo
ZVF1ZXJ5T3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBlbmNvZGVyIDw8IG9wdGlvbnMuaWdub3Jl
U2VhcmNoOwpAQCAtNDI1LDg3ICs0MTQsNiBAQCBib29sIEFyZ3VtZW50Q29kZXI8RXZlbnRUcmFj
a2luZ1JlZ2lvbnM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRXZlbnRUcmFja2luZwogICAg
IHJldHVybiB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtYXRpb25NYXRy
aXg+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgm
IHRyYW5zZm9ybWF0aW9uTWF0cml4KQotewotICAgIGVuY29kZXIgPDwgdHJhbnNmb3JtYXRpb25N
YXRyaXgubTExKCk7Ci0gICAgZW5jb2RlciA8PCB0cmFuc2Zvcm1hdGlvbk1hdHJpeC5tMTIoKTsK
LSAgICBlbmNvZGVyIDw8IHRyYW5zZm9ybWF0aW9uTWF0cml4Lm0xMygpOwotICAgIGVuY29kZXIg
PDwgdHJhbnNmb3JtYXRpb25NYXRyaXgubTE0KCk7Ci0KLSAgICBlbmNvZGVyIDw8IHRyYW5zZm9y
bWF0aW9uTWF0cml4Lm0yMSgpOwotICAgIGVuY29kZXIgPDwgdHJhbnNmb3JtYXRpb25NYXRyaXgu
bTIyKCk7Ci0gICAgZW5jb2RlciA8PCB0cmFuc2Zvcm1hdGlvbk1hdHJpeC5tMjMoKTsKLSAgICBl
bmNvZGVyIDw8IHRyYW5zZm9ybWF0aW9uTWF0cml4Lm0yNCgpOwotCi0gICAgZW5jb2RlciA8PCB0
cmFuc2Zvcm1hdGlvbk1hdHJpeC5tMzEoKTsKLSAgICBlbmNvZGVyIDw8IHRyYW5zZm9ybWF0aW9u
TWF0cml4Lm0zMigpOwotICAgIGVuY29kZXIgPDwgdHJhbnNmb3JtYXRpb25NYXRyaXgubTMzKCk7
Ci0gICAgZW5jb2RlciA8PCB0cmFuc2Zvcm1hdGlvbk1hdHJpeC5tMzQoKTsKLQotICAgIGVuY29k
ZXIgPDwgdHJhbnNmb3JtYXRpb25NYXRyaXgubTQxKCk7Ci0gICAgZW5jb2RlciA8PCB0cmFuc2Zv
cm1hdGlvbk1hdHJpeC5tNDIoKTsKLSAgICBlbmNvZGVyIDw8IHRyYW5zZm9ybWF0aW9uTWF0cml4
Lm00MygpOwotICAgIGVuY29kZXIgPDwgdHJhbnNmb3JtYXRpb25NYXRyaXgubTQ0KCk7Ci19Ci0K
LWJvb2wgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtYXRpb25NYXRyaXgpCi17
Ci0gICAgZG91YmxlIG0xMTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG0xMSkpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICBkb3VibGUgbTEyOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
bTEyKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGRvdWJsZSBtMTM7Ci0gICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShtMTMpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgZG91YmxlIG0x
NDsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG0xNCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgIGRvdWJsZSBtMjE7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShtMjEpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgZG91YmxlIG0yMjsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KG0yMikpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBkb3VibGUgbTIzOwotICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUobTIzKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGRvdWJsZSBt
MjQ7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShtMjQpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICBkb3VibGUgbTMxOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUobTMxKSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIGRvdWJsZSBtMzI7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShtMzIpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgZG91YmxlIG0zMzsKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKG0zMykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBkb3VibGUg
bTM0OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUobTM0KSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotCi0gICAgZG91YmxlIG00MTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG00MSkpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICBkb3VibGUgbTQyOwotICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUobTQyKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGRvdWJsZSBtNDM7Ci0gICAgaWYg
KCFkZWNvZGVyLmRlY29kZShtNDMpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgZG91Ymxl
IG00NDsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG00NCkpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIHRyYW5zZm9ybWF0aW9uTWF0cml4LnNldE1hdHJpeChtMTEsIG0xMiwgbTEzLCBt
MTQsIG0yMSwgbTIyLCBtMjMsIG0yNCwgbTMxLCBtMzIsIG0zMywgbTM0LCBtNDEsIG00MiwgbTQz
LCBtNDQpOwotICAgIHJldHVybiB0cnVlOwotfQotCiB2b2lkIEFyZ3VtZW50Q29kZXI8TGluZWFy
VGltaW5nRnVuY3Rpb24+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTGluZWFyVGlt
aW5nRnVuY3Rpb24mIHRpbWluZ0Z1bmN0aW9uKQogewogICAgIGVuY29kZXIgPDwgdGltaW5nRnVu
Y3Rpb24udHlwZSgpOwpAQCAtNjE3LDg2ICs1MjUsNiBAQCBib29sIEFyZ3VtZW50Q29kZXI8U3By
aW5nVGltaW5nRnVuY3Rpb24+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU3ByaW5nVGltaW5n
RgogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFBvaW50JiBmbG9hdFBvaW50KQot
ewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmVuY29kZShlbmNvZGVyLCBm
bG9hdFBvaW50KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgRmxvYXRQb2ludCYgZmxvYXRQb2ludCkKLXsKLSAgICByZXR1cm4g
U2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0UG9p
bnQpOwotfQotCi1zdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+IEFyZ3VtZW50Q29kZXI8RmxvYXRQ
b2ludD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIEZsb2F0UG9pbnQgZmxvYXRQ
b2ludDsKLSAgICBpZiAoIVNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmRlY29kZShk
ZWNvZGVyLCBmbG9hdFBvaW50KSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICBy
ZXR1cm4gZmxvYXRQb2ludDsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFBvaW50M0QmIGZsb2F0UG9pbnQp
Ci17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+OjplbmNvZGUoZW5jb2Rl
ciwgZmxvYXRQb2ludCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRQb2ludDNEJiBmbG9hdFBvaW50KQotewotICAg
IHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmRlY29kZShkZWNvZGVy
LCBmbG9hdFBvaW50KTsKLX0KLQotCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UmVjdCYgZmxvYXRSZWN0KQotewotICAg
IFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0UmVj
dCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlciwgRmxvYXRSZWN0JiBmbG9hdFJlY3QpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3Vt
ZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0UmVjdCk7Ci19Ci0KLXN0
ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiBBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQotewotICAgIEZsb2F0UmVjdCBmbG9hdFJlY3Q7Ci0gICAgaWYgKCFT
aW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZShkZWNvZGVyLCBmbG9hdFJlY3Qp
KQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBmbG9hdFJlY3Q7Ci19
Ci0KLQotdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IEZsb2F0Qm94RXh0ZW50JiBmbG9hdEJveEV4dGVudCkKLXsKLSAgICBT
aW1wbGVBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0
Qm94RXh0ZW50KTsKLX0KLSAgICAKLWJvb2wgQXJndW1lbnRDb2RlcjxGbG9hdEJveEV4dGVudD46
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdEJveEV4dGVudCYgZmxvYXRCb3hFeHRlbnQp
Ci17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjpkZWNv
ZGUoZGVjb2RlciwgZmxvYXRCb3hFeHRlbnQpOwotfQotICAgIAotCi12b2lkIEFyZ3VtZW50Q29k
ZXI8RmxvYXRTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0U2l6ZSYg
ZmxvYXRTaXplKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZW5jb2Rl
KGVuY29kZXIsIGZsb2F0U2l6ZSk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRTaXplJiBmbG9hdFNpemUpCi17Ci0gICAg
cmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZGVjb2RlKGRlY29kZXIsIGZs
b2F0U2l6ZSk7Ci19Ci0KLQotdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcm91bmRlZFJl
Y3QpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFJvdW5kZWRSZWN0Pjo6ZW5jb2Rl
KGVuY29kZXIsIHJvdW5kZWRSZWN0KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0Um91
bmRlZFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRSb3VuZGVkUmVjdCYgcm91
bmRlZFJlY3QpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVk
UmVjdD46OmRlY29kZShkZWNvZGVyLCByb3VuZGVkUmVjdCk7Ci19Ci0KICNpZiBFTkFCTEUoTUVU
QV9WSUVXUE9SVCkKIHZvaWQgQXJndW1lbnRDb2RlcjxWaWV3cG9ydEFyZ3VtZW50cz46OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgdmlld3BvcnRBcmd1
bWVudHMpCiB7CkBAIC03MjgsODcgKzU1Niw2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxWaWV3cG9y
dEF0dHJpYnV0ZXM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVmlld3BvcnRBdHRyaWJ1CiAg
ICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8Vmlld3BvcnRBdHRyaWJ1dGVzPjo6ZGVjb2Rl
KGRlY29kZXIsIHZpZXdwb3J0QXR0cmlidXRlcyk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxJ
bnRQb2ludD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJbnRQb2ludCYgaW50UG9p
bnQpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmVuY29kZShlbmNvZGVy
LCBpbnRQb2ludCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBJbnRQb2ludCYgaW50UG9pbnQpCi17Ci0gICAgcmV0dXJuIFNpbXBs
ZUFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoZGVjb2RlciwgaW50UG9pbnQpOwotfQot
Ci1zdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiBBcmd1bWVudENvZGVyPEludFBvaW50
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgSW50UG9pbnQgaW50UG9pbnQ7Ci0g
ICAgaWYgKCFTaW1wbGVBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZGVjb2RlKGRlY29kZXIsIGlu
dFBvaW50KSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICByZXR1cm4gaW50UG9p
bnQ7Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IEludFJlY3QmIGludFJlY3QpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2Rl
cjxJbnRSZWN0Pjo6ZW5jb2RlKGVuY29kZXIsIGludFJlY3QpOwotfQotCi1ib29sIEFyZ3VtZW50
Q29kZXI8SW50UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBJbnRSZWN0JiBpbnRSZWN0
KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEludFJlY3Q+OjpkZWNvZGUoZGVj
b2RlciwgaW50UmVjdCk7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8SW50UmVjdD4gQXJndW1lbnRDb2Rl
cjxJbnRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgSW50UmVjdCByZWN0
OwotICAgIGlmICghZGVjb2RlKGRlY29kZXIsIHJlY3QpKQotICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwotICAgIHJldHVybiByZWN0OwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
Pgotdm9pZCBBcmd1bWVudENvZGVyPEludFNpemU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgSW50U2l6ZSYgaW50U2l6ZSkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEludFNp
emU+OjplbmNvZGUoZW5jb2RlciwgaW50U2l6ZSk7Ci19Ci0KLXRlbXBsYXRlCi12b2lkIEFyZ3Vt
ZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVyJiwgY29uc3QgSW50U2l6
ZSYpOwotdGVtcGxhdGUKLXZvaWQgQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZW5jb2RlPFN0cmVh
bUNvbm5lY3Rpb25FbmNvZGVyPihTdHJlYW1Db25uZWN0aW9uRW5jb2RlciYsIGNvbnN0IEludFNp
emUmKTsKLQotYm9vbCBBcmd1bWVudENvZGVyPEludFNpemU+OjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgSW50U2l6ZSYgaW50U2l6ZSkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2Rl
cjxJbnRTaXplPjo6ZGVjb2RlKGRlY29kZXIsIGludFNpemUpOwotfQotCi1zdGQ6Om9wdGlvbmFs
PEludFNpemU+IEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQotewotICAgIEludFNpemUgaW50U2l6ZTsKLSAgICBpZiAoIVNpbXBsZUFyZ3VtZW50Q29kZXI8
SW50U2l6ZT46OmRlY29kZShkZWNvZGVyLCBpbnRTaXplKSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKLSAgICByZXR1cm4gaW50U2l6ZTsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPExh
eW91dFNpemU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTGF5b3V0U2l6ZSYgbGF5
b3V0U2l6ZSkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPExheW91dFNpemU+OjplbmNvZGUo
ZW5jb2RlciwgbGF5b3V0U2l6ZSk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxMYXlvdXRTaXpl
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIExheW91dFNpemUmIGxheW91dFNpemUpCi17Ci0g
ICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmRlY29kZShkZWNvZGVy
LCBsYXlvdXRTaXplKTsKLX0KLQotCi12b2lkIEFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTGF5b3V0UG9pbnQmIGxheW91dFBvaW50KQot
ewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+OjplbmNvZGUoZW5jb2Rlciwg
bGF5b3V0UG9pbnQpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+OjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgTGF5b3V0UG9pbnQmIGxheW91dFBvaW50KQotewotICAgIHJl
dHVybiBTaW1wbGVBcmd1bWVudENvZGVyPExheW91dFBvaW50Pjo6ZGVjb2RlKGRlY29kZXIsIGxh
eW91dFBvaW50KTsKLX0KLQogdm9pZCBBcmd1bWVudENvZGVyPFJlY2VudFNlYXJjaD46OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWNlbnRTZWFyY2gmIHJlY2VudFNlYXJjaCkKIHsK
ICAgICBlbmNvZGVyIDw8IHJlY2VudFNlYXJjaC5zdHJpbmcgPDwgcmVjZW50U2VhcmNoLnRpbWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDU0
NTk3NWEwZGYxNTAxYmU4ODEzNTQ5YTkwMWFkZDA3MWJlMDFmOTYuLjE2MGJjYTkxYTY3NTNhNDJi
YzUwZGM5NWMzNmM4OTMzZjQ0YTM0MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5oCkBAIC0yNiwxMiArMjYsMjQgQEAKICNwcmFnbWEgb25jZQogCiAj
aW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0FmZmluZVRyYW5z
Zm9ybS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0b3BsYXlFdmVudC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvQ29sb3JTcGFjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0Zsb2F0UG9pbnQzRC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9GbG9hdFJvdW5kZWRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9h
dFNpemUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0luZGV4ZWREQi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5wdXRNb2RlLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9JbnRQb2ludC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvSW50U2l6ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGF5b3V0
UG9pbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xheW91dFNpemUuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0xlbmd0aEJveC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTZWxlY3Rpb25PcHRpb24u
aD4KICNpbmNsdWRlIDxXZWJDb3JlL05hdGl2ZUltYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9O
ZXR3b3JrTG9hZE1ldHJpY3MuaD4KQEAgLTQyLDYgKzU0LDcgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vy
dmljZVdvcmtlclR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdG9yZWRDcmVkZW50aWFsc1Bv
bGljeS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVHJhbnNmb3JtYXRpb25NYXRyaXguaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1dvcmtlclR5cGUuaD4KICNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgog
CkBAIC05Niw3ICsxMDksNiBAQCB0eXBlZGVmIHN0cnVjdCBfX0NWQnVmZmVyKiBDVlBpeGVsQnVm
ZmVyUmVmOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBYnNvbHV0ZVBvc2l0aW9uQ29u
c3RyYWludHM7Ci1jbGFzcyBBZmZpbmVUcmFuc2Zvcm07CiBjbGFzcyBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZTsKIGNsYXNzIEJsb2JQYXJ0OwogY2xhc3MgQ2VydGlmaWNhdGVJbmZvOwpAQCAtMTA5
LDIxICsxMjEsMTEgQEAgY2xhc3MgRHJhZ0RhdGE7CiBjbGFzcyBGaWxlOwogY2xhc3MgRmlsdGVy
T3BlcmF0aW9uOwogY2xhc3MgRmlsdGVyT3BlcmF0aW9uczsKLWNsYXNzIEZsb2F0UG9pbnQ7Ci1j
bGFzcyBGbG9hdFBvaW50M0Q7Ci1jbGFzcyBGbG9hdFJlY3Q7Ci1jbGFzcyBGbG9hdFJvdW5kZWRS
ZWN0OwotY2xhc3MgRmxvYXRTaXplOwogY2xhc3MgRml4ZWRQb3NpdGlvblZpZXdwb3J0Q29uc3Ry
YWludHM7CiBjbGFzcyBGb250OwogY2xhc3MgRm9udFBsYXRmb3JtRGF0YTsKIGNsYXNzIEhUVFBI
ZWFkZXJNYXA7Ci1jbGFzcyBJbnRQb2ludDsKLWNsYXNzIEludFJlY3Q7Ci1jbGFzcyBJbnRTaXpl
OwogY2xhc3MgS2V5ZnJhbWVWYWx1ZUxpc3Q7Ci1jbGFzcyBMYXlvdXRTaXplOwotY2xhc3MgTGF5
b3V0UG9pbnQ7CiBjbGFzcyBMaW5lYXJUaW1pbmdGdW5jdGlvbjsKIGNsYXNzIE5vdGlmaWNhdGlv
bjsKIGNsYXNzIFBhc3RlYm9hcmRDdXN0b21EYXRhOwpAQCAtMTQwLDcgKzE0Miw2IEBAIGNsYXNz
IFNwcmluZ1RpbWluZ0Z1bmN0aW9uOwogY2xhc3MgU3RlcHNUaW1pbmdGdW5jdGlvbjsKIGNsYXNz
IFN0aWNreVBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50czsKIGNsYXNzIFRleHRDaGVja2luZ1Jl
cXVlc3REYXRhOwotY2xhc3MgVHJhbnNmb3JtYXRpb25NYXRyaXg7CiBjbGFzcyBVc2VyU3R5bGVT
aGVldDsKIAogc3RydWN0IEF0dHJpYnV0ZWRTdHJpbmc7CkBAIC0xNzQsOSArMTc1LDcgQEAgc3Ry
dWN0IFRvdWNoQWN0aW9uRGF0YTsKIHN0cnVjdCBWZWxvY2l0eURhdGE7CiBzdHJ1Y3QgVmlld3Bv
cnRBdHRyaWJ1dGVzOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwotICAgIAotdGVtcGxhdGU8dHlw
ZW5hbWU+IGNsYXNzIFJlY3RFZGdlczsKLXVzaW5nIEZsb2F0Qm94RXh0ZW50ID0gUmVjdEVkZ2Vz
PGZsb2F0PjsKKwogdXNpbmcgSURCS2V5UGF0aCA9IFZhcmlhbnQ8U3RyaW5nLCBWZWN0b3I8U3Ry
aW5nPj47CiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTIyNywxMCArMjI2LDI2IEBAIHN0cnVj
dCBSZWNvcmQ7CiAKIG5hbWVzcGFjZSBJUEMgewogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJik7Ci0gICAgc3RhdGlj
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6QWZmaW5l
VHJhbnNmb3JtJik7Ci19OworREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpB
ZmZpbmVUcmFuc2Zvcm0pCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6OkZs
b2F0Qm94RXh0ZW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpGbG9h
dFBvaW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpGbG9hdFBvaW50
M0QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6OkZsb2F0UmVjdCkKK0RF
RklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdCkKK0RF
RklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6RmxvYXRTaXplKQorREVGSU5FX1NJ
TVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpJbnRQb2ludCkKK0RFRklORV9TSU1QTEVfQVJH
VU1FTlRfQ09ERVIoV2ViQ29yZTo6SW50UmVjdCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09E
RVIoV2ViQ29yZTo6SW50U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29y
ZTo6TGF5b3V0U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6TGF5
b3V0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6OlRyYW5zZm9y
bWF0aW9uTWF0cml4KQorCisjaWYgVVNFKENHKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RF
UihDR1JlY3QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKENHU2l6ZSkKK0RFRklORV9T
SU1QTEVfQVJHVU1FTlRfQ09ERVIoQ0dQb2ludCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09E
RVIoQ0dBZmZpbmVUcmFuc2Zvcm0pCisjZW5kaWYKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpBdHRyaWJ1dGVkU3RyaW5nPiB7CiAgICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpBdHRyaWJ1dGVkU3RyaW5nJik7CkBAIC0yNjcs
MTEgKzI4Miw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RXZl
bnRUcmFja2luZ1JlZ2lvbnM+IHsKICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wg
ZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpFdmVudFRyYWNraW5nUmVnaW9ucyYpOwogfTsKIAot
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1h
dHJpeD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6
VHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJv
b2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwotfTsK
LQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMaW5lYXJUaW1pbmdG
dW5jdGlvbj4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29y
ZTo6TGluZWFyVGltaW5nRnVuY3Rpb24mKTsKICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJO
IGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpMaW5lYXJUaW1pbmdGdW5jdGlvbiYpOwpA
QCAtMjk5LDM4ICszMDksNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OkNlcnRpZmljYXRlSW5mbz4gewogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkNlcnRpZmljYXRlSW5mbz4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKLXRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRQb2ludD4gewotICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwotICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0
UG9pbnQmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBk
ZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpGbG9hdFBvaW50M0Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9S
RVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotfTsK
LQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFJlY3Q+IHsK
LSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYs
IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkZsb2F0UmVjdD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0gICAgCi10ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50PiB7Ci0gICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYpOwotICAg
IHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6
OkZsb2F0Qm94RXh0ZW50Jik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OkZsb2F0U2l6ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVS
TiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6RmxvYXRTaXplJik7Ci19OwotCi10ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q+IHsK
LSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Um91
bmRlZFJlY3QmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERl
Y29kZXImLCBXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0Jik7Ci19OwotCiAjaWYgRU5BQkxFKE1F
VEFfVklFV1BPUlQpCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlZp
ZXdwb3J0QXJndW1lbnRzPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25z
dCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYpOwpAQCAtMzQ1LDM1ICszMjMsNiBAQCB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcz4g
ewogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdl
YkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShF
bmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVT
RURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpJbnRQb2ludCYpOwotICAg
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiBkZWNvZGUoRGVjb2RlciYp
OwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRSZWN0
PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0Jik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVy
JiwgV2ViQ29yZTo6SW50UmVjdCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkludFJlY3Q+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkludFNpemU+IHsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNv
ZGVyPgotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2Rl
ciYsIFdlYkNvcmU6OkludFNpemUmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpJbnRTaXplPiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpMYXlvdXRTaXplPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpMYXlvdXRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5f
VU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6TGF5b3V0U2l6ZSYp
OwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMYXlvdXRQ
b2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6
TGF5b3V0UG9pbnQmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2Rl
KERlY29kZXImLCBXZWJDb3JlOjpMYXlvdXRQb2ludCYpOwotfTsKLQogdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMZW5ndGg+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6Okxlbmd0aCYpOwogICAgIHN0YXRpYyBXQVJOX1VO
VVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6Okxlbmd0aCYpOwpAQCAt
NDUyLDYgKzQwMSw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
RHJhZ0RhdGE+IHsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisKIHRlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpNYWNoU2VuZFJpZ2h0PiB7CiAgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmKTsKICAgICBzdGF0
aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIFdURjo6TWFjaFNlbmRSaWdodCYmKTsKQEAgLTQ2Mywy
NiArNDEzLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpLZXlw
cmVzc0NvbW1hbmQ+IHsKICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpLZXlwcmVz
c0NvbW1hbmQ+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPENHUG9pbnQ+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIENH
UG9pbnQpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENHUG9pbnQ+IGRlY29kZShEZWNvZGVy
Jik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHU2l6ZT4gewotICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dTaXplKTsKLSAgICBzdGF0aWMgc3RkOjpv
cHRpb25hbDxDR1NpemU+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPENHUmVjdD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVy
JiwgQ0dSZWN0KTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDR1JlY3Q+IGRlY29kZShEZWNv
ZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJh
bnNmb3JtPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBDR0FmZmluZVRyYW5z
Zm9ybSk7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q0dBZmZpbmVUcmFuc2Zvcm0+IGRlY29k
ZShEZWNvZGVyJik7Ci19OwotI2VuZGlmCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpTZWxlY3Rpb25HZW9tZXRyeT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KaW5kZXggOGU0ZDVmMTMxZDgyZjFk
ZWZlMjZkMTVhYmZlZTA2NGEzYjk4OTBmOC4uNmE0MzQwNjcxNDYzZDk0NzA3MTkyMzEwYjFmN2Jh
MGJkMDNhNzZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVB
cmd1bWVudENvZGVyc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzTWFjLm1tCkBAIC0zMjEsNzkgKzMyMSw2IEBAIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OktleXByZXNz
Q29tbWFuZD46CiAgICAgcmV0dXJuIFdURk1vdmUoY29tbWFuZCk7CiB9CiAKLXZvaWQgQXJndW1l
bnRDb2RlcjxDR1JlY3Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0dSZWN0IHJlY3QpCi17
Ci0gICAgZW5jb2RlciA8PCByZWN0Lm9yaWdpbiA8PCByZWN0LnNpemU7Ci19Ci0KLXN0ZDo6b3B0
aW9uYWw8Q0dSZWN0PiBBcmd1bWVudENvZGVyPENHUmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQotewotICAgIHN0ZDo6b3B0aW9uYWw8Q0dQb2ludD4gb3JpZ2luOwotICAgIGRlY29kZXIg
Pj4gb3JpZ2luOwotICAgIGlmICghb3JpZ2luKQotICAgICAgICByZXR1cm4geyB9OwotCi0gICAg
c3RkOjpvcHRpb25hbDxDR1NpemU+IHNpemU7Ci0gICAgZGVjb2RlciA+PiBzaXplOwotICAgIGlm
ICghc2l6ZSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLQotICAgIHJldHVybiBDR1JlY3QgeyAqb3Jp
Z2luLCAqc2l6ZSB9OwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIENHU2l6ZSBzaXplKQotewotICAgIGVuY29kZXIgPDwgc2l6ZS53aWR0
aCA8PCBzaXplLmhlaWdodDsKLX0KLQotc3RkOjpvcHRpb25hbDxDR1NpemU+IEFyZ3VtZW50Q29k
ZXI8Q0dTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgQ0dTaXplIHNpemU7
Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaXplLndpZHRoKSkKLSAgICAgICAgcmV0dXJuIHsg
fTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUuaGVpZ2h0KSkKLSAgICAgICAgcmV0dXJu
IHsgfTsKLSAgICByZXR1cm4gc2l6ZTsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPENHUG9pbnQ+
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0dQb2ludCBwb2ludCkKLXsKLSAgICBlbmNvZGVy
IDw8IHBvaW50LnggPDwgcG9pbnQueTsKLX0KLQotc3RkOjpvcHRpb25hbDxDR1BvaW50PiBBcmd1
bWVudENvZGVyPENHUG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBDR1Bv
aW50IHBvaW50OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9pbnQueCkpCi0gICAgICAgIHJl
dHVybiB7IH07Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb2ludC55KSkKLSAgICAgICAgcmV0
dXJuIHsgfTsKLSAgICByZXR1cm4gcG9pbnQ7Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxDR0Fm
ZmluZVRyYW5zZm9ybT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR0FmZmluZVRyYW5zZm9y
bSB0cmFuc2Zvcm0pCi17Ci0gICAgZW5jb2RlciA8PCB0cmFuc2Zvcm0uYSA8PCB0cmFuc2Zvcm0u
YiA8PCB0cmFuc2Zvcm0uYyA8PCB0cmFuc2Zvcm0uZCA8PCB0cmFuc2Zvcm0udHggPDwgdHJhbnNm
b3JtLnR5OwotfQotCi1zdGQ6Om9wdGlvbmFsPENHQWZmaW5lVHJhbnNmb3JtPiBBcmd1bWVudENv
ZGVyPENHQWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAg
Q0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJh
bnNmb3JtLmEpKQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
dHJhbnNmb3JtLmIpKQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUodHJhbnNmb3JtLmMpKQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUodHJhbnNmb3JtLmQpKQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUodHJhbnNmb3JtLnR4KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHRyYW5zZm9ybS50eSkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgcmV0
dXJuIHRyYW5zZm9ybTsKLX0KLQogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKIAogdm9p
ZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcj46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9j
a0hhbmRsZXImIGNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcikK
</data>
<flag name="commit-queue"
          id="462679"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439104</attachid>
            <date>2021-09-23 16:25:50 -0700</date>
            <delta_ts>2021-09-24 16:16:53 -0700</delta_ts>
            <desc>Try to fix WPE build again</desc>
            <filename>bug-230714-20210923162549.patch</filename>
            <type>text/plain</type>
            <size>37623</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyOTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc0YjJhNTIwYzc0NWQzMjBi
ZGQ5YTg5NTIyM2Q3NzkzMTYzMTY2NDQuLmViOTYyNTU5YTYwYjlmZjFjMDQ1OTIxOTVlMmE3MzZm
OTZhZWI2ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzAgQEAKKzIwMjEtMDktMjMgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIFJlZmFj
dG9yIHNvbWUgSVBDIGFyZ3VtZW50IGVuY29kZXIgbG9naWMgdG8gd29yayB3aXRoIFN0cmVhbUNv
bm5lY3Rpb25FbmNvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA3MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBNYWtlIGl0IHBvc3NpYmxlIHRvIHVzZSBgSVBDOjpTdHJlYW1Db25uZWN0aW9uRW5j
b2RlcmAgdG8gZW5jb2RlIGRpc3BsYXkgbGlzdCBpdGVtcyAoYW5kIHRoZWlyIG1lbWJlcnMpIGlu
IGFuCisgICAgICAgIElQQyBzdHJlYW0uIFRoaXMgcGF0Y2ggY29tcHJpc2VzIHR3byBtYWluIHNl
dHMgb2YgY2hhbmdlcyBpbiBgQXJndW1lbnRDb2RlcnNgLCBhbmQgYFdlYkNvcmVBcmd1bWVudENv
ZGVyc2AuIFNlZQorICAgICAgICBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICog
UGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxhdWRpdF90b2tlbl90Pjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxNb25vc3RhdGU+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPE1vbm9zdGF0ZT46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgICogUGxhdGZvcm0vSVBD
L0FyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TW9ub3N0YXRl
Pjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNb25vc3RhdGU+OjpkZWNv
ZGUpOgorCisgICAgICAgIE1hbnkgb2YgdGhlc2UgYGVuY29kZSgpYCBtZXRob2RzIGFyZSBjdXJy
ZW50bHkgbm9uLXRlbXBsYXRlZCwgd2hpY2ggbWVhbnMgdGhhdCBFbmNvZGVyIGFuZCBEZWNvZGVy
IHVzZWQgaGVyZQorICAgICAgICByZWZlciBzb2xlbHkgdG8gSVBDOjpFbmNvZGVyIGFuZCBJUEM6
OkRlY29kZXIgKHJlc3BlY3RpdmVseSkgaW5zdGVhZCBvZiBvdGhlciB0eXBlcyBvZiBlbmNvZGVy
cyAobmFtZWx5LAorICAgICAgICBTdHJlYW1Db25uZWN0aW9uRW5jb2RlcikuCisKKyAgICAgICAg
KiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxBZmZpbmVUcmFuc2Zvcm0+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmRlY29kZSk6IERlbGV0ZWQuCisgICAg
ICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+OjplbmNvZGUpOiBE
ZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBv
aW50Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9h
dFBvaW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxG
bG9hdFBvaW50M0Q+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPEZsb2F0UG9pbnQzRD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpB
cmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAg
KElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZSk6IERlbGV0ZWQuCisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZW5jb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjpkZWNvZGUpOiBEZWxldGVk
LgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjplbmNvZGUp
OiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+
OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEludFBvaW50
Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRQb2lu
dD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UmVj
dD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UmVj
dD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50U2l6
ZT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50U2l6
ZT46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0
U2l6ZT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5
b3V0U2l6ZT46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8
TGF5b3V0UG9pbnQ+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPExheW91dFBvaW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKworICAgICAgICBUaGVzZSBXZWJD
b3JlIGFyZ3VtZW50IGNvZGVycyBhcmUgYWxzbyBjdXJyZW50bHkgaW5jb21wYXRpYmxlIHdpdGgg
U3RyZWFtQ29ubmVjdGlvbkVuY29kZXIsIHNpbmNlIHRoZXkgYXJlIG5vbi0KKyAgICAgICAgdGVt
cGxhdGVkIChhbmQgdGh1cyBvbmx5IHdvcmsgd2l0aCBJUEM6OkVuY29kZXIpLiBTaW5jZSB0aGVz
ZSBhcmUgYWxsIGVuY29kYWJsZSBhcyBQT0QgdHlwZXMsIHdlIGNhbiBqdXN0IHVzZQorICAgICAg
ICBTaW1wbGVBcmd1bWVudENvZGVyIGZvciBhbGwgb2YgdGhlc2UuIFdlIGFsc28gYWRkIGEgbmV3
IGBERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSYCBtYWNybyB0byBtYWtlIHRoaXMgY29kZSBh
CisgICAgICAgIGJpdCBlYXNpZXIgdG8gcmVhZC4KKworICAgICAgICAqIFNoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENv
ZGVyc01hYy5tbToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDR1JlY3Q+OjplbmNvZGUp
OiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHUmVjdD46OmRlY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZW5jb2RlKTog
RGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDR1NpemU+OjpkZWNvZGUpOiBE
ZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHUG9pbnQ+OjplbmNvZGUpOiBE
ZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHUG9pbnQ+OjpkZWNvZGUpOiBE
ZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPjo6
ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDR0FmZmluZVRy
YW5zZm9ybT46OmRlY29kZSk6IERlbGV0ZWQuCisKIDIwMjEtMDktMjMgIFRpbSBIb3J0b24gIDx0
aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgc2hvdWxkQWxsb3dQaWN0dXJlSW5Q
aWN0dXJlTWVkaWFQbGF5YmFjayBzaG91bGQgdXNlIFdlYkNvcmUncyBsaW5rZWRPbk9yQWZ0ZXIo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMu
Y3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4
IGEzMjA1NTE4Nzk4Yjc0ZGNlZGI4YTAxM2Y5YzljOTg4NWFhZTY2MTYuLmU3ZjI3ODAzNjJkZDIw
Mzc0MzRjYTFjYjM5MGRkZTZlZjc5MTU5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L0lQQy9Bcmd1bWVudENvZGVycy5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaCIKICNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEVuY29kZXIuaCIKICNpbmNsdWRlICJTdHJlYW1Db25uZWN0aW9uRW5jb2Rlci5oIgor
I2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTIxOCw2ICsyMTks
NyBAQCBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBBcmd1bWVudENvZGVyPFNIQTE6OkRpZ2VzdD46
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTSAogfQogCiAjaWYgSEFWRShBVURJVF9UT0tFTikK
Kwogdm9pZCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rva2VuX3Q+OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgYXVkaXRfdG9rZW5fdCYgYXVkaXRUb2tlbikKIHsKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChhdWRpdFRva2VuLnZhbCk7IGkrKykKQEAg
LTIzMiwxNSArMjM0LDcgQEAgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgQXJndW1lbnRDb2Rlcjxh
dWRpdF90b2tlbl90Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIGEKICAgICB9CiAgICAgcmV0
dXJuIHRydWU7CiB9Ci0jZW5kaWYKLQotdm9pZCBBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT46OmVu
Y29kZShFbmNvZGVyJiwgY29uc3QgTW9ub3N0YXRlJikKLXsKLX0KIAotV0FSTl9VTlVTRURfUkVU
VVJOIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT46OmRl
Y29kZShEZWNvZGVyJikKLXsKLSAgICByZXR1cm4gTW9ub3N0YXRlIHsgfTsKLX0KKyNlbmRpZiAv
LyBIQVZFKEFVRElUX1RPS0VOKQogCiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCmluZGV4IGE4Yzg5M2YwYzUyNDBhODg4OWMz
NDUxNGY5ZmIxZWZlZTBkNjI3MGEuLjhlMDVmMThjYWQyN2MzN2YwN2RmNWRjMjU1YjIxN2M4NWM5
MjM2NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29k
ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaApA
QCAtNDAsNiArNDAsMTAgQEAKIAogbmFtZXNwYWNlIElQQyB7CiAKKyNkZWZpbmUgREVGSU5FX1NJ
TVBMRV9BUkdVTUVOVF9DT0RFUihjbGFzc05hbWUpIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8Y2xhc3NOYW1lPiA6IFNpbXBsZUFyZ3VtZW50Q29kZXI8Y2xhc3NOYW1lPiB7IH07IFwK
KyAgICB0ZW1wbGF0ZSB2b2lkIFNpbXBsZUFyZ3VtZW50Q29kZXI8Y2xhc3NOYW1lPjo6ZW5jb2Rl
PEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBjbGFzc05hbWUmKTsgXAorICAgIHRlbXBsYXRlIGJv
b2wgU2ltcGxlQXJndW1lbnRDb2RlcjxjbGFzc05hbWU+OjpkZWNvZGU8RGVjb2Rlcj4oRGVjb2Rl
ciYsIGNsYXNzTmFtZSYpOworCiAvLyBBbiBhcmd1bWVudCBjb2RlciB3b3JrcyBvbiBQT0QgdHlw
ZXMKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBTaW1wbGVBcmd1bWVudENvZGVyIHsKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgpAQCAtNDgsNiArNTIsNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBzdHJ1Y3QgU2ltcGxlQXJndW1lbnRDb2RlciB7CiAgICAgICAgIGVuY29kZXIu
ZW5jb2RlRml4ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KCZ0
KSwgc2l6ZW9mKFQpLCBhbGlnbm9mKFQpKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlciwgVCYgdCkKICAgICB7CiAgICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29k
ZUZpeGVkTGVuZ3RoRGF0YShyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPigmdCksIHNpemVvZihU
KSwgYWxpZ25vZihUKSk7CkBAIC0xMDcsMTIgKzExMiwxNCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxBcnJheVJlZmVyZW5jZTxULCBhcnJheVJlZmVyZW5jZUR5
bmFtaQogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8T3B0
aW9uU2V0PFQ+PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgT3B0aW9uU2V0PFQ+JiBvcHRpb25T
ZXQpCiAgICAgewogICAgICAgICBBU1NFUlQoV1RGOjppc1ZhbGlkT3B0aW9uU2V0KG9wdGlvblNl
dCkpOwogICAgICAgICBlbmNvZGVyIDw8IG9wdGlvblNldC50b1JhdygpOwogICAgIH0KIAorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVS
TiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBPcHRpb25TZXQ8VD4mIG9wdGlvblNldCkK
ICAgICB7CiAgICAgICAgIHR5cGVuYW1lIE9wdGlvblNldDxUPjo6U3RvcmFnZVR5cGUgdmFsdWU7
CkBAIC0xMjQsNiArMTMxLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8T3B0aW9uU2V0PFQ+PiB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8T3B0
aW9uU2V0PFQ+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6
b3B0aW9uYWw8dHlwZW5hbWUgT3B0aW9uU2V0PFQ+OjpTdG9yYWdlVHlwZT4gdmFsdWU7CkBAIC0x
ODcsNiArMTk1LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8
c3RkOjpvcHRpb25hbDxUPj4gewogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8Qm94PFQ+PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgQm94PFQ+JiBib3gp
CiAgICAgewogICAgICAgICBpZiAoIWJveCkgewpAQCAtMTk4LDYgKzIwNyw3IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPEJveDxUPj4gewogICAgICAgICBlbmNv
ZGVyIDw8ICpib3guZ2V0KCk7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rl
cj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRl
Y29kZXIsIEJveDxUPiYgYm94KQogICAgIHsKICAgICAgICAgYm9vbCBpc0VuZ2FnZWQ7CkBAIC0y
MTcsNiArMjI3LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8
Qm94PFQ+PiB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5
cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Qm94PFQ+PiBkZWNvZGUo
RGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gaXNF
bmdhZ2VkOwpAQCAtMjM1LDExICsyNDYsMTMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBl
bmFtZSBVPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxzdGQ6OnBhaXI8VCwgVT4+IHsKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBzdGQ6OnBhaXI8VCwgVT4mIHBhaXIpCiAgICAgewogICAgICAgICBlbmNv
ZGVyIDw8IHBhaXIuZmlyc3QgPDwgcGFpci5zZWNvbmQ7CiAgICAgfQogCisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIHN0ZDo6cGFpcjxULCBVPiYgcGFpcikKICAgICB7CiAgICAg
ICAgIFQgZmlyc3Q7CkBAIC0yNTUsNiArMjY4LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlw
ZW5hbWUgVT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpwYWlyPFQsIFU+PiB7CiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAg
ICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWlyPFQsIFU+PiBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8VD4gZmlyc3Q7CkBAIC0zNjUs
MTEgKzM3OSwxMyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBFbGVtZW50cz4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8c3RkOjp0dXBsZTxFbGVtZW50cy4uLj4+IHsKIH07CiAKIHRlbXBsYXRlPHR5cGVu
YW1lIEtleVR5cGUsIHR5cGVuYW1lIFZhbHVlVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RG
OjpLZXlWYWx1ZVBhaXI8S2V5VHlwZSwgVmFsdWVUeXBlPj4geworICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IFdURjo6S2V5VmFsdWVQYWlyPEtleVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAgICAgewog
ICAgICAgICBlbmNvZGVyIDw8IHBhaXIua2V5IDw8IHBhaXIudmFsdWU7CiAgICAgfQogCisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJO
IGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFdURjo6S2V5VmFsdWVQYWlyPEtleVR5cGUs
IFZhbHVlVHlwZT4mIHBhaXIpCiAgICAgewogICAgICAgICBLZXlUeXBlIGtleTsKQEAgLTM5Nyw2
ICs0MTMsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5
cGVuYW1lIE92ZXJmbG93SGFuZGxlciwgc2l6ZV90IG1pbgogICAgICAgICAgICAgZW5jb2RlciA8
PCB2ZWN0b3JbaV07CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAg
ICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4m
IHZlY3RvcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFQsIGlubGluZUNh
cGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5Pj4gb3B0aW9uYWw7CkBAIC00MzYs
NiArNDUzLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0
eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KICAgICAgICAgZW5jb2Rlci5lbmNv
ZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4odmVjdG9y
LmRhdGEoKSksIHZlY3Rvci5zaXplKCkgKiBzaXplb2YoVCksIGFsaWdub2YoVCkpOwogICAgIH0K
ICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VO
VVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVmVjdG9yPFQsIGlubGlu
ZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5PiYgdmVjdG9yKQogICAgIHsK
ICAgICAgICAgdWludDY0X3QgZGVjb2RlZFNpemU7CkBAIC00NTAsNyArNDY4LDcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hh
bmRsZXIsIHNpemVfdCBtaW4KICAgICAgICAgLy8gU2luY2Ugd2Uga25vdyB0aGUgdG90YWwgc2l6
ZSBvZiB0aGUgZWxlbWVudHMsIHdlIGNhbiBhbGxvY2F0ZSB0aGUgdmVjdG9yIGluCiAgICAgICAg
IC8vIG9uZSBmZWxsIHN3b29wLiBCZWZvcmUgYWxsb2NhdGluZyB3ZSBtdXN0IGhvd2V2ZXIgbWFr
ZSBzdXJlIHRoYXQgdGhlIGRlY29kZXIgYnVmZmVyCiAgICAgICAgIC8vIGlzIGJpZyBlbm91Z2gu
Ci0gICAgICAgIGlmICghZGVjb2Rlci5idWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluPFQ+KHNp
emUpKQorICAgICAgICBpZiAoIWRlY29kZXIudGVtcGxhdGUgYnVmZmVySXNMYXJnZUVub3VnaFRv
Q29udGFpbjxUPihzaXplKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBW
ZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+IHRl
bXA7CkBAIC00OTcsNiArNTE1LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGlu
ZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KIHRlbXBsYXRl
PHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0
eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1lIE1hcHBlZFRyYWl0c0FyZywgdHlwZW5hbWUg
SGFzaFRhYmxlVHJhaXRzPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxIYXNoTWFwPEtleUFyZywgTWFw
cGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZywgSGFzaFRhYmxl
VHJhaXRzPj4gewogICAgIHR5cGVkZWYgSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFy
ZywgS2V5VHJhaXRzQXJnLCBNYXBwZWRUcmFpdHNBcmcsIEhhc2hUYWJsZVRyYWl0cz4gSGFzaE1h
cFR5cGU7CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBIYXNoTWFwVHlwZSYgaGFzaE1hcCkKICAg
ICB7CiAgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGhhc2hNYXAuc2l6
ZSgpKTsKQEAgLTUwNCw2ICs1MjMsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVu
YW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogICAgICAg
ICAgICAgZW5jb2RlciA8PCAqaXQ7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVj
b2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxIYXNoTWFwVHlwZT4gZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCiAgICAgewogICAgICAgICB1aW50MzJfdCBoYXNoTWFwU2l6ZTsKQEAgLTUz
NCw2ICs1NTQsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogICAgICAgICByZXR1cm4gaGFz
aE1hcDsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSGFzaE1h
cFR5cGUmIGhhc2hNYXApCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPEhhc2hNYXBUeXBl
PiB0ZW1wSGFzaE1hcDsKQEAgLTU0OCw2ICs1NjksNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlB
cmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJh
aQogdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBL
ZXlUcmFpdHNBcmcsIHR5cGVuYW1lIEhhc2hUYWJsZVRyYWl0cz4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8SGFzaFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRz
Pj4gewogICAgIHR5cGVkZWYgSGFzaFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywg
SGFzaFRhYmxlVHJhaXRzPiBIYXNoU2V0VHlwZTsKIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVu
Y29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEhh
c2hTZXRUeXBlJiBoYXNoU2V0KQogICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2Fz
dDx1aW50NjRfdD4oaGFzaFNldC5zaXplKCkpOwpAQCAtNTU1LDYgKzU3Nyw3IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJn
LCB0eXBlbmFtZSBIYXNoCiAgICAgICAgICAgICBlbmNvZGVyIDw8ICppdDsKICAgICB9CiAKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRV
Uk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSGFzaFNldFR5cGUmIGhhc2hTZXQpCiAg
ICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPEhhc2hTZXRUeXBlPiB0ZW1wSGFzaFNldDsKQEAg
LTU2Niw2ICs1ODksNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hB
cmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZywgdHlwZW5hbWUgSGFzaAogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPEhhc2hTZXRUeXBlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAg
ICB7CiAgICAgICAgIHVpbnQ2NF90IGhhc2hTZXRTaXplOwpAQCAtNTk1LDYgKzYxOSw3IEBAIHRl
bXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJh
aXRzQXJnLCB0eXBlbmFtZSBIYXNoCiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1l
IEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFz
aENvdW50ZWRTZXQ8S2V5QXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmc+PiB7CiAgICAgdHlwZWRl
ZiBIYXNoQ291bnRlZFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZz4gSGFzaENvdW50
ZWRTZXRUeXBlOwogICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEhhc2hDb3VudGVkU2V0VHlw
ZSYgaGFzaENvdW50ZWRTZXQpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0
PHVpbnQ2NF90PihoYXNoQ291bnRlZFNldC5zaXplKCkpOwpAQCAtNjA1LDYgKzYzMCw3IEBAIHRl
bXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJh
aXRzQXJnPiBzdHJ1Y3QgQXJndW1lCiAgICAgICAgIH0KICAgICB9CiAgICAgCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wg
ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENvdW50ZWRT
ZXQpCiAgICAgewogICAgICAgICB1aW50NjRfdCBoYXNoQ291bnRlZFNldFNpemU7CkBAIC02MzYs
NiArNjYyLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0
eXBlbmFtZSBLZXlUcmFpdHNBcmc+IHN0cnVjdCBBcmd1bWUKIH07CiAKIHRlbXBsYXRlPHR5cGVu
YW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxF
eHBlY3RlZDxWYWx1ZVR5cGUsIEVycm9yVHlwZT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBF
bmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBF
eHBlY3RlZDxWYWx1ZVR5cGUsIEVycm9yVHlwZT4mIGV4cGVjdGVkKQogICAgIHsKICAgICAgICAg
aWYgKCFleHBlY3RlZC5oYXNfdmFsdWUoKSkgewpAQCAtNjQ3LDYgKzY3NCw3IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxFeHBlY3RlZDxWCiAgICAgICAgIGVuY29kZXIgPDwgZXhwZWN0ZWQudmFsdWUoKTsKICAg
ICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPEV4cGVjdGVkPFZhbHVlVHlwZSwgRXJyb3JUeXBlPj4gZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGhhc1ZhbHVlOwpAQCAt
NjczLDYgKzcwMSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUgRXJy
b3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWCiAKIHRlbXBsYXRlPHNpemVf
dCBpbmRleCwgdHlwZW5hbWUuLi4gVHlwZXM+CiBzdHJ1Y3QgVmFyaWFudENvZGVyIHsKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+JiB2YXJpYW50LCB1bnNpZ25l
ZCBpKQogICAgIHsKICAgICAgICAgaWYgKGkgPT0gaW5kZXgpIHsKQEAgLTY4Miw2ICs3MTEsNyBA
QCBzdHJ1Y3QgVmFyaWFudENvZGVyIHsKICAgICAgICAgVmFyaWFudENvZGVyPGluZGV4IC0gMSwg
VHlwZXMuLi4+OjplbmNvZGUoZW5jb2RlciwgdmFyaWFudCwgaSk7CiAgICAgfQogICAgIAorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V1RG
OjpWYXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIsIHVuc2lnbmVkIGkp
CiAgICAgewogICAgICAgICBpZiAoaSA9PSBpbmRleCkgewpAQCAtNjk3LDEyICs3MjcsMTQgQEAg
c3RydWN0IFZhcmlhbnRDb2RlciB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPgogc3Ry
dWN0IFZhcmlhbnRDb2RlcjwwLCBUeXBlcy4uLj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVu
Y29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdU
Rjo6VmFyaWFudDxUeXBlcy4uLj4mIHZhcmlhbnQsIHVuc2lnbmVkIGkpCiAgICAgewogICAgICAg
ICBBU1NFUlRfVU5VU0VEKGksICFpKTsKICAgICAgICAgZW5jb2RlciA8PCBXVEY6OmdldDwwPih2
YXJpYW50KTsKICAgICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAg
ICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+PiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlciwgdW5zaWduZWQgaSkKICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQo
aSwgIWkpOwpAQCAtNzE1LDYgKzc0Nyw3IEBAIHN0cnVjdCBWYXJpYW50Q29kZXI8MCwgVHlwZXMu
Li4+IHsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5j
b2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV1RG
OjpWYXJpYW50PFR5cGVzLi4uPiYgdmFyaWFudCkKICAgICB7CiAgICAgICAgIHVuc2lnbmVkIGkg
PSB2YXJpYW50LmluZGV4KCk7CkBAIC03MjIsNiArNzU1LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUu
Li4gVHlwZXM+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IHsK
ICAgICAgICAgVmFyaWFudENvZGVyPHNpemVvZi4uLihUeXBlcykgLSAxLCBUeXBlcy4uLj46OmVu
Y29kZShlbmNvZGVyLCB2YXJpYW50LCBpKTsKICAgICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXVEY6OlZhcmlhbnQ8VHlw
ZXMuLi4+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0
aW9uYWw8dW5zaWduZWQ+IGk7CkBAIC03NzMsOCArODA3LDE0IEBAIHRlbXBsYXRlPD4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD4gewogI2VuZGlmCiAKIHRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVu
Y29kZXImLCBjb25zdCBNb25vc3RhdGUmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxNb25v
c3RhdGU+IGRlY29kZShEZWNvZGVyJik7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4K
KyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IE1vbm9zdGF0ZSYpIHsgfQor
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KKyAgICBzdGF0aWMgc3RkOjpvcHRpb25h
bDxNb25vc3RhdGU+IGRlY29kZShEZWNvZGVyJikKKyAgICB7CisgICAgICAgIHJldHVybiBNb25v
c3RhdGUgeyB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggZmFiY2VmNmMyMTI1
MjNlZjAxY2M4OWE0OTg0NjAwNmQ4ZWEyZGY5My4uMWQ1YTZkNmExOGY2ZTdjNzEyNmNjYWE3OWU2
MmUzY2U3NzA0NjRjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwCkBAIC04OCw3ICs4OCw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0Q2hl
Y2tlckNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEluZGljYXRvci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvVGltaW5nRnVuY3Rpb24uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1RyYW5zZm9y
bWF0aW9uTWF0cml4Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyU3R5bGVTaGVldC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvVmVsb2NpdHlEYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WaWV3cG9y
dEFyZ3VtZW50cy5oPgpAQCAtMjMxLDE2ICsyMzAsNiBAQCBzdGF0aWMgV0FSTl9VTlVTRURfUkVU
VVJOIGJvb2wgZGVjb2RlVHlwZXNBbmREYXRhKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxTdHJp
bgogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNm
b3JtPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgYWZm
aW5lVHJhbnNmb3JtKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3Jt
Pjo6ZW5jb2RlKGVuY29kZXIsIGFmZmluZVRyYW5zZm9ybSk7Ci19Ci0KLWJvb2wgQXJndW1lbnRD
b2RlcjxBZmZpbmVUcmFuc2Zvcm0+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgQWZmaW5lVHJh
bnNmb3JtJiBhZmZpbmVUcmFuc2Zvcm0pCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29k
ZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKGRlY29kZXIsIGFmZmluZVRyYW5zZm9ybSk7Ci19
Ci0KIHZvaWQgQXJndW1lbnRDb2RlcjxDYWNoZVF1ZXJ5T3B0aW9ucz46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBDYWNoZVF1ZXJ5T3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBlbmNv
ZGVyIDw8IG9wdGlvbnMuaWdub3JlU2VhcmNoOwpAQCAtNDI1LDg3ICs0MTQsNiBAQCBib29sIEFy
Z3VtZW50Q29kZXI8RXZlbnRUcmFja2luZ1JlZ2lvbnM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgRXZlbnRUcmFja2luZwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29k
ZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qg
VHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybWF0aW9uTWF0cml4KQotewotICAgIGVuY29k
ZXIgPDwgdHJhbnNmb3JtYXRpb25NYXRyaXgubTExKCk7Ci0gICAgZW5jb2RlciA8PCB0cmFuc2Zv
cm1hdGlvbk1hdHJpeC5tMTIoKTsKLSAgICBlbmNvZGVyIDw8IHRyYW5zZm9ybWF0aW9uTWF0cml4
Lm0xMygpOwotICAgIGVuY29kZXIgPDwgdHJhbnNmb3JtYXRpb25NYXRyaXgubTE0KCk7Ci0KLSAg
ICBlbmNvZGVyIDw8IHRyYW5zZm9ybWF0aW9uTWF0cml4Lm0yMSgpOwotICAgIGVuY29kZXIgPDwg
dHJhbnNmb3JtYXRpb25NYXRyaXgubTIyKCk7Ci0gICAgZW5jb2RlciA8PCB0cmFuc2Zvcm1hdGlv
bk1hdHJpeC5tMjMoKTsKLSAgICBlbmNvZGVyIDw8IHRyYW5zZm9ybWF0aW9uTWF0cml4Lm0yNCgp
OwotCi0gICAgZW5jb2RlciA8PCB0cmFuc2Zvcm1hdGlvbk1hdHJpeC5tMzEoKTsKLSAgICBlbmNv
ZGVyIDw8IHRyYW5zZm9ybWF0aW9uTWF0cml4Lm0zMigpOwotICAgIGVuY29kZXIgPDwgdHJhbnNm
b3JtYXRpb25NYXRyaXgubTMzKCk7Ci0gICAgZW5jb2RlciA8PCB0cmFuc2Zvcm1hdGlvbk1hdHJp
eC5tMzQoKTsKLQotICAgIGVuY29kZXIgPDwgdHJhbnNmb3JtYXRpb25NYXRyaXgubTQxKCk7Ci0g
ICAgZW5jb2RlciA8PCB0cmFuc2Zvcm1hdGlvbk1hdHJpeC5tNDIoKTsKLSAgICBlbmNvZGVyIDw8
IHRyYW5zZm9ybWF0aW9uTWF0cml4Lm00MygpOwotICAgIGVuY29kZXIgPDwgdHJhbnNmb3JtYXRp
b25NYXRyaXgubTQ0KCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1hdGlvbk1h
dHJpeD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJh
bnNmb3JtYXRpb25NYXRyaXgpCi17Ci0gICAgZG91YmxlIG0xMTsKLSAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKG0xMSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBkb3VibGUgbTEyOwotICAg
IGlmICghZGVjb2Rlci5kZWNvZGUobTEyKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGRv
dWJsZSBtMTM7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShtMTMpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgZG91YmxlIG0xNDsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG0xNCkpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGRvdWJsZSBtMjE7Ci0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZShtMjEpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgZG91YmxlIG0yMjsKLSAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKG0yMikpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBk
b3VibGUgbTIzOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUobTIzKSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIGRvdWJsZSBtMjQ7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShtMjQpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBkb3VibGUgbTMxOwotICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUobTMxKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGRvdWJsZSBtMzI7Ci0g
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShtMzIpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ZG91YmxlIG0zMzsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG0zMykpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICBkb3VibGUgbTM0OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUobTM0KSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgZG91YmxlIG00MTsKLSAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKG00MSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBkb3VibGUgbTQyOwot
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUobTQyKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IGRvdWJsZSBtNDM7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShtNDMpKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgZG91YmxlIG00NDsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG00NCkp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHRyYW5zZm9ybWF0aW9uTWF0cml4LnNldE1h
dHJpeChtMTEsIG0xMiwgbTEzLCBtMTQsIG0yMSwgbTIyLCBtMjMsIG0yNCwgbTMxLCBtMzIsIG0z
MywgbTM0LCBtNDEsIG00MiwgbTQzLCBtNDQpOwotICAgIHJldHVybiB0cnVlOwotfQotCiB2b2lk
IEFyZ3VtZW50Q29kZXI8TGluZWFyVGltaW5nRnVuY3Rpb24+OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgTGluZWFyVGltaW5nRnVuY3Rpb24mIHRpbWluZ0Z1bmN0aW9uKQogewogICAg
IGVuY29kZXIgPDwgdGltaW5nRnVuY3Rpb24udHlwZSgpOwpAQCAtNjE3LDg2ICs1MjUsNiBAQCBi
b29sIEFyZ3VtZW50Q29kZXI8U3ByaW5nVGltaW5nRnVuY3Rpb24+OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlciwgU3ByaW5nVGltaW5nRgogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEFyZ3Vt
ZW50Q29kZXI8RmxvYXRQb2ludD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9h
dFBvaW50JiBmbG9hdFBvaW50KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2lu
dD46OmVuY29kZShlbmNvZGVyLCBmbG9hdFBvaW50KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVy
PEZsb2F0UG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRQb2ludCYgZmxvYXRQ
b2ludCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVj
b2RlKGRlY29kZXIsIGZsb2F0UG9pbnQpOwotfQotCi1zdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+
IEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewot
ICAgIEZsb2F0UG9pbnQgZmxvYXRQb2ludDsKLSAgICBpZiAoIVNpbXBsZUFyZ3VtZW50Q29kZXI8
RmxvYXRQb2ludD46OmRlY29kZShkZWNvZGVyLCBmbG9hdFBvaW50KSkKLSAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKLSAgICByZXR1cm4gZmxvYXRQb2ludDsKLX0KLQotdm9pZCBBcmd1bWVu
dENvZGVyPEZsb2F0UG9pbnQzRD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9h
dFBvaW50M0QmIGZsb2F0UG9pbnQpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBv
aW50M0Q+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRQb2ludCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRD
b2RlcjxGbG9hdFBvaW50M0Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRQb2ludDNE
JiBmbG9hdFBvaW50KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UG9p
bnQzRD46OmRlY29kZShkZWNvZGVyLCBmbG9hdFBvaW50KTsKLX0KLQotCi12b2lkIEFyZ3VtZW50
Q29kZXI8RmxvYXRSZWN0Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UmVj
dCYgZmxvYXRSZWN0KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZW5j
b2RlKGVuY29kZXIsIGZsb2F0UmVjdCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxGbG9hdFJl
Y3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRSZWN0JiBmbG9hdFJlY3QpCi17Ci0g
ICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIs
IGZsb2F0UmVjdCk7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiBBcmd1bWVudENvZGVy
PEZsb2F0UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIEZsb2F0UmVjdCBm
bG9hdFJlY3Q7Ci0gICAgaWYgKCFTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29k
ZShkZWNvZGVyLCBmbG9hdFJlY3QpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAg
IHJldHVybiBmbG9hdFJlY3Q7Ci19Ci0KLQotdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0
ZW50Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0Qm94RXh0ZW50JiBmbG9h
dEJveEV4dGVudCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6
ZW5jb2RlKGVuY29kZXIsIGZsb2F0Qm94RXh0ZW50KTsKLX0KLSAgICAKLWJvb2wgQXJndW1lbnRD
b2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdEJveEV4
dGVudCYgZmxvYXRCb3hFeHRlbnQpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8
RmxvYXRCb3hFeHRlbnQ+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRCb3hFeHRlbnQpOwotfQotICAg
IAotCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IEZsb2F0U2l6ZSYgZmxvYXRTaXplKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29k
ZXI8RmxvYXRTaXplPjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0U2l6ZSk7Ci19Ci0KLWJvb2wgQXJn
dW1lbnRDb2RlcjxGbG9hdFNpemU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRTaXpl
JiBmbG9hdFNpemUpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRTaXpl
Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0U2l6ZSk7Ci19Ci0KLQotdm9pZCBBcmd1bWVudENvZGVy
PEZsb2F0Um91bmRlZFJlY3Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRS
b3VuZGVkUmVjdCYgcm91bmRlZFJlY3QpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9h
dFJvdW5kZWRSZWN0Pjo6ZW5jb2RlKGVuY29kZXIsIHJvdW5kZWRSZWN0KTsKLX0KLQotYm9vbCBB
cmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rlciwg
RmxvYXRSb3VuZGVkUmVjdCYgcm91bmRlZFJlY3QpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3Vt
ZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46OmRlY29kZShkZWNvZGVyLCByb3VuZGVkUmVjdCk7
Ci19Ci0KICNpZiBFTkFCTEUoTUVUQV9WSUVXUE9SVCkKIHZvaWQgQXJndW1lbnRDb2RlcjxWaWV3
cG9ydEFyZ3VtZW50cz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBWaWV3cG9ydEFy
Z3VtZW50cyYgdmlld3BvcnRBcmd1bWVudHMpCiB7CkBAIC03MjgsODcgKzU1Niw2IEBAIGJvb2wg
QXJndW1lbnRDb2RlcjxWaWV3cG9ydEF0dHJpYnV0ZXM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgVmlld3BvcnRBdHRyaWJ1CiAgICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8Vmlld3Bv
cnRBdHRyaWJ1dGVzPjo6ZGVjb2RlKGRlY29kZXIsIHZpZXdwb3J0QXR0cmlidXRlcyk7CiB9CiAK
LXZvaWQgQXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBJbnRQb2ludCYgaW50UG9pbnQpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxJbnRQ
b2ludD46OmVuY29kZShlbmNvZGVyLCBpbnRQb2ludCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2Rl
cjxJbnRQb2ludD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBJbnRQb2ludCYgaW50UG9pbnQp
Ci17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoZGVj
b2RlciwgaW50UG9pbnQpOwotfQotCi1zdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiBB
cmd1bWVudENvZGVyPEludFBvaW50Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAg
SW50UG9pbnQgaW50UG9pbnQ7Ci0gICAgaWYgKCFTaW1wbGVBcmd1bWVudENvZGVyPEludFBvaW50
Pjo6ZGVjb2RlKGRlY29kZXIsIGludFBvaW50KSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKLSAgICByZXR1cm4gaW50UG9pbnQ7Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxJbnRSZWN0
Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEludFJlY3QmIGludFJlY3QpCi17Ci0g
ICAgU2ltcGxlQXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZW5jb2RlKGVuY29kZXIsIGludFJlY3Qp
OwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyLCBJbnRSZWN0JiBpbnRSZWN0KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVy
PEludFJlY3Q+OjpkZWNvZGUoZGVjb2RlciwgaW50UmVjdCk7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8
SW50UmVjdD4gQXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIp
Ci17Ci0gICAgSW50UmVjdCByZWN0OwotICAgIGlmICghZGVjb2RlKGRlY29kZXIsIHJlY3QpKQot
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiByZWN0OwotfQotCi10ZW1w
bGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgotdm9pZCBBcmd1bWVudENvZGVyPEludFNpemU+OjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgSW50U2l6ZSYgaW50U2l6ZSkKLXsKLSAgICBTaW1w
bGVBcmd1bWVudENvZGVyPEludFNpemU+OjplbmNvZGUoZW5jb2RlciwgaW50U2l6ZSk7Ci19Ci0K
LXRlbXBsYXRlCi12b2lkIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZTxFbmNvZGVyPihF
bmNvZGVyJiwgY29uc3QgSW50U2l6ZSYpOwotdGVtcGxhdGUKLXZvaWQgQXJndW1lbnRDb2RlcjxJ
bnRTaXplPjo6ZW5jb2RlPFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyPihTdHJlYW1Db25uZWN0aW9u
RW5jb2RlciYsIGNvbnN0IEludFNpemUmKTsKLQotYm9vbCBBcmd1bWVudENvZGVyPEludFNpemU+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSW50U2l6ZSYgaW50U2l6ZSkKLXsKLSAgICByZXR1
cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZGVjb2RlKGRlY29kZXIsIGludFNpemUp
OwotfQotCi1zdGQ6Om9wdGlvbmFsPEludFNpemU+IEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIEludFNpemUgaW50U2l6ZTsKLSAgICBpZiAo
IVNpbXBsZUFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZShkZWNvZGVyLCBpbnRTaXplKSkK
LSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICByZXR1cm4gaW50U2l6ZTsKLX0KLQot
dm9pZCBBcmd1bWVudENvZGVyPExheW91dFNpemU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgTGF5b3V0U2l6ZSYgbGF5b3V0U2l6ZSkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVy
PExheW91dFNpemU+OjplbmNvZGUoZW5jb2RlciwgbGF5b3V0U2l6ZSk7Ci19Ci0KLWJvb2wgQXJn
dW1lbnRDb2RlcjxMYXlvdXRTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIExheW91dFNp
emUmIGxheW91dFNpemUpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0
U2l6ZT46OmRlY29kZShkZWNvZGVyLCBsYXlvdXRTaXplKTsKLX0KLQotCi12b2lkIEFyZ3VtZW50
Q29kZXI8TGF5b3V0UG9pbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTGF5b3V0
UG9pbnQmIGxheW91dFBvaW50KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0UG9p
bnQ+OjplbmNvZGUoZW5jb2RlciwgbGF5b3V0UG9pbnQpOwotfQotCi1ib29sIEFyZ3VtZW50Q29k
ZXI8TGF5b3V0UG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTGF5b3V0UG9pbnQmIGxh
eW91dFBvaW50KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPExheW91dFBvaW50
Pjo6ZGVjb2RlKGRlY29kZXIsIGxheW91dFBvaW50KTsKLX0KLQogdm9pZCBBcmd1bWVudENvZGVy
PFJlY2VudFNlYXJjaD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWNlbnRTZWFy
Y2gmIHJlY2VudFNlYXJjaCkKIHsKICAgICBlbmNvZGVyIDw8IHJlY2VudFNlYXJjaC5zdHJpbmcg
PDwgcmVjZW50U2VhcmNoLnRpbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5oCmluZGV4IDU0NTk3NWEwZGYxNTAxYmU4ODEzNTQ5YTkwMWFkZDA3MWJlMDFm
OTYuLjE2MGJjYTkxYTY3NTNhNDJiYzUwZGM5NWMzNmM4OTMzZjQ0YTM0MGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0yNiwxMiArMjYsMjQg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL0FmZmluZVRyYW5zZm9ybS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0b3BsYXlF
dmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3JTcGFjZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9p
bnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQzRC5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvRmxvYXRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJvdW5kZWRSZWN0Lmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9GbG9hdFNpemUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9h
ZGVyVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0luZGV4ZWREQi5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvSW5wdXRNb2RlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRQb2ludC5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50U2l6ZS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvTGF5b3V0UG9pbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xheW91dFNp
emUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xlbmd0aEJveC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
TWVkaWFTZWxlY3Rpb25PcHRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL05hdGl2ZUltYWdlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrTG9hZE1ldHJpY3MuaD4KQEAgLTQyLDYgKzU0LDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TdG9yZWRDcmVkZW50aWFsc1BvbGljeS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVHJhbnNmb3Jt
YXRpb25NYXRyaXguaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dvcmtlclR5cGUuaD4KICNpbmNsdWRl
IDx3dGYvRW51bVRyYWl0cy5oPgogCkBAIC05Niw3ICsxMDksNiBAQCB0eXBlZGVmIHN0cnVjdCBf
X0NWQnVmZmVyKiBDVlBpeGVsQnVmZmVyUmVmOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBBYnNvbHV0ZVBvc2l0aW9uQ29uc3RyYWludHM7Ci1jbGFzcyBBZmZpbmVUcmFuc2Zvcm07CiBj
bGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTsKIGNsYXNzIEJsb2JQYXJ0OwogY2xhc3MgQ2Vy
dGlmaWNhdGVJbmZvOwpAQCAtMTA5LDIxICsxMjEsMTEgQEAgY2xhc3MgRHJhZ0RhdGE7CiBjbGFz
cyBGaWxlOwogY2xhc3MgRmlsdGVyT3BlcmF0aW9uOwogY2xhc3MgRmlsdGVyT3BlcmF0aW9uczsK
LWNsYXNzIEZsb2F0UG9pbnQ7Ci1jbGFzcyBGbG9hdFBvaW50M0Q7Ci1jbGFzcyBGbG9hdFJlY3Q7
Ci1jbGFzcyBGbG9hdFJvdW5kZWRSZWN0OwotY2xhc3MgRmxvYXRTaXplOwogY2xhc3MgRml4ZWRQ
b3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHM7CiBjbGFzcyBGb250OwogY2xhc3MgRm9udFBsYXRm
b3JtRGF0YTsKIGNsYXNzIEhUVFBIZWFkZXJNYXA7Ci1jbGFzcyBJbnRQb2ludDsKLWNsYXNzIElu
dFJlY3Q7Ci1jbGFzcyBJbnRTaXplOwogY2xhc3MgS2V5ZnJhbWVWYWx1ZUxpc3Q7Ci1jbGFzcyBM
YXlvdXRTaXplOwotY2xhc3MgTGF5b3V0UG9pbnQ7CiBjbGFzcyBMaW5lYXJUaW1pbmdGdW5jdGlv
bjsKIGNsYXNzIE5vdGlmaWNhdGlvbjsKIGNsYXNzIFBhc3RlYm9hcmRDdXN0b21EYXRhOwpAQCAt
MTQwLDcgKzE0Miw2IEBAIGNsYXNzIFNwcmluZ1RpbWluZ0Z1bmN0aW9uOwogY2xhc3MgU3RlcHNU
aW1pbmdGdW5jdGlvbjsKIGNsYXNzIFN0aWNreVBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50czsK
IGNsYXNzIFRleHRDaGVja2luZ1JlcXVlc3REYXRhOwotY2xhc3MgVHJhbnNmb3JtYXRpb25NYXRy
aXg7CiBjbGFzcyBVc2VyU3R5bGVTaGVldDsKIAogc3RydWN0IEF0dHJpYnV0ZWRTdHJpbmc7CkBA
IC0xNzQsOSArMTc1LDcgQEAgc3RydWN0IFRvdWNoQWN0aW9uRGF0YTsKIHN0cnVjdCBWZWxvY2l0
eURhdGE7CiBzdHJ1Y3QgVmlld3BvcnRBdHRyaWJ1dGVzOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVz
OwotICAgIAotdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIFJlY3RFZGdlczsKLXVzaW5nIEZsb2F0
Qm94RXh0ZW50ID0gUmVjdEVkZ2VzPGZsb2F0PjsKKwogdXNpbmcgSURCS2V5UGF0aCA9IFZhcmlh
bnQ8U3RyaW5nLCBWZWN0b3I8U3RyaW5nPj47CiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTIy
NywxMCArMjI2LDI2IEBAIHN0cnVjdCBSZWNvcmQ7CiAKIG5hbWVzcGFjZSBJUEMgewogCi10ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybT4gewot
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJh
bnNmb3JtJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNv
ZGVyJiwgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJik7Ci19OworREVGSU5FX1NJTVBMRV9BUkdV
TUVOVF9DT0RFUihXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0pCitERUZJTkVfU0lNUExFX0FSR1VN
RU5UX0NPREVSKFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVO
VF9DT0RFUihXZWJDb3JlOjpGbG9hdFBvaW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RF
UihXZWJDb3JlOjpGbG9hdFBvaW50M0QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFdl
YkNvcmU6OkZsb2F0UmVjdCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6
RmxvYXRSb3VuZGVkUmVjdCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6
RmxvYXRTaXplKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpJbnRQb2lu
dCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6SW50UmVjdCkKK0RFRklO
RV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6SW50U2l6ZSkKK0RFRklORV9TSU1QTEVf
QVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6TGF5b3V0U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1F
TlRfQ09ERVIoV2ViQ29yZTo6TGF5b3V0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NP
REVSKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4KQorCisjaWYgVVNFKENHKQorREVGSU5F
X1NJTVBMRV9BUkdVTUVOVF9DT0RFUihDR1JlY3QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NP
REVSKENHU2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoQ0dQb2ludCkKK0RFRklO
RV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoQ0dBZmZpbmVUcmFuc2Zvcm0pCisjZW5kaWYKIAogdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpBdHRyaWJ1dGVkU3RyaW5nPiB7
CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpBdHRyaWJ1
dGVkU3RyaW5nJik7CkBAIC0yNjcsMTEgKzI4Miw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6RXZlbnRUcmFja2luZ1JlZ2lvbnM+IHsKICAgICBzdGF0aWMgV0FS
Tl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpFdmVudFRyYWNr
aW5nUmVnaW9ucyYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNv
ZGVyJiwgY29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKLSAgICBzdGF0aWMg
V0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYpOwotfTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpMaW5lYXJUaW1pbmdGdW5jdGlvbj4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShF
bmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6TGluZWFyVGltaW5nRnVuY3Rpb24mKTsKICAgICBzdGF0
aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpMaW5l
YXJUaW1pbmdGdW5jdGlvbiYpOwpAQCAtMjk5LDM4ICszMDksNiBAQCB0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz4gewogICAgIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz4gZGVjb2RlKERlY29kZXImKTsK
IH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRQb2lu
dD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVj
b2RlciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpGbG9hdFBvaW50PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFBvaW50M0Q+IHsKLSAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotICAg
IHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6
OkZsb2F0UG9pbnQzRCYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpGbG9hdFJlY3Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UmVjdCYpOwotICAgIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0g
ICAgCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0Qm94RXh0
ZW50PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpG
bG9hdEJveEV4dGVudCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNv
ZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50Jik7Ci19OwotCi10ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0U2l6ZT4gewotICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7Ci0gICAgc3Rh
dGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6Rmxv
YXRTaXplJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OkZsb2F0Um91bmRlZFJlY3Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3QmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURf
UkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0Jik7
Ci19OwotCiAjaWYgRU5BQkxFKE1FVEFfVklFV1BPUlQpCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiB7CiAgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYpOwpAQCAt
MzQ1LDM1ICszMjMsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlZpZXdwb3J0QXR0cmlidXRlcz4gewogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9v
bCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYpOwogfTsKIAot
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRQb2ludD4gewotICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsK
LSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJD
b3JlOjpJbnRQb2ludCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFBv
aW50PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpJbnRSZWN0PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVS
TiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6SW50UmVjdCYpOwotICAgIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFJlY3Q+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkludFNpemU+IHsKLSAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVy
JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRV
Uk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkludFNpemUmKTsKLSAgICBzdGF0aWMg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRTaXplPiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQot
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMYXlvdXRTaXplPiB7Ci0g
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpMYXlvdXRTaXpl
Jik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwg
V2ViQ29yZTo6TGF5b3V0U2l6ZSYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpMYXlvdXRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNv
ZGVyJiwgY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVT
RURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpMYXlvdXRQb2ludCYpOwot
fTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMZW5ndGg+IHsK
ICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6Okxlbmd0aCYp
OwogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdl
YkNvcmU6Okxlbmd0aCYpOwpAQCAtNDUyLDYgKzQwMSw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6RHJhZ0RhdGE+IHsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0o
Q09DT0EpCisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpNYWNoU2VuZFJp
Z2h0PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXVEY6Ok1hY2hT
ZW5kUmlnaHQmKTsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIFdURjo6TWFjaFNl
bmRSaWdodCYmKTsKQEAgLTQ2MywyNiArNDEzLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IHsKICAgICBzdGF0aWMgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCi10
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHUG9pbnQ+IHsKLSAgICBzdGF0aWMgdm9p
ZCBlbmNvZGUoRW5jb2RlciYsIENHUG9pbnQpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENH
UG9pbnQ+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPENHU2l6ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dTaXpl
KTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDR1NpemU+IGRlY29kZShEZWNvZGVyJik7Ci19
OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHUmVjdD4gewotICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dSZWN0KTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25h
bDxDR1JlY3Q+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVu
Y29kZXImLCBDR0FmZmluZVRyYW5zZm9ybSk7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q0dB
ZmZpbmVUcmFuc2Zvcm0+IGRlY29kZShEZWNvZGVyJik7Ci19OwotI2VuZGlmCisjZW5kaWYgLy8g
UExBVEZPUk0oQ09DT0EpCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogdGVtcGxhdGU8PiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZWxlY3Rpb25HZW9tZXRyeT4gewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5t
bSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0K
aW5kZXggOGU0ZDVmMTMxZDgyZjFkZWZlMjZkMTVhYmZlZTA2NGEzYjk4OTBmOC4uNmE0MzQwNjcx
NDYzZDk0NzA3MTkyMzEwYjFmN2JhMGJkMDNhNzZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tCkBAIC0zMjEsNzkgKzMy
MSw2IEBAIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD46CiAgICAgcmV0dXJuIFdURk1vdmUoY29tbWFu
ZCk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxDR1JlY3Q+OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgQ0dSZWN0IHJlY3QpCi17Ci0gICAgZW5jb2RlciA8PCByZWN0Lm9yaWdpbiA8PCByZWN0
LnNpemU7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8Q0dSZWN0PiBBcmd1bWVudENvZGVyPENHUmVjdD46
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIHN0ZDo6b3B0aW9uYWw8Q0dQb2ludD4g
b3JpZ2luOwotICAgIGRlY29kZXIgPj4gb3JpZ2luOwotICAgIGlmICghb3JpZ2luKQotICAgICAg
ICByZXR1cm4geyB9OwotCi0gICAgc3RkOjpvcHRpb25hbDxDR1NpemU+IHNpemU7Ci0gICAgZGVj
b2RlciA+PiBzaXplOwotICAgIGlmICghc2l6ZSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLQotICAg
IHJldHVybiBDR1JlY3QgeyAqb3JpZ2luLCAqc2l6ZSB9OwotfQotCi12b2lkIEFyZ3VtZW50Q29k
ZXI8Q0dTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENHU2l6ZSBzaXplKQotewotICAg
IGVuY29kZXIgPDwgc2l6ZS53aWR0aCA8PCBzaXplLmhlaWdodDsKLX0KLQotc3RkOjpvcHRpb25h
bDxDR1NpemU+IEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIp
Ci17Ci0gICAgQ0dTaXplIHNpemU7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaXplLndpZHRo
KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUuaGVp
Z2h0KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4gc2l6ZTsKLX0KLQotdm9pZCBB
cmd1bWVudENvZGVyPENHUG9pbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0dQb2ludCBw
b2ludCkKLXsKLSAgICBlbmNvZGVyIDw8IHBvaW50LnggPDwgcG9pbnQueTsKLX0KLQotc3RkOjpv
cHRpb25hbDxDR1BvaW50PiBBcmd1bWVudENvZGVyPENHUG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKLXsKLSAgICBDR1BvaW50IHBvaW50OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cG9pbnQueCkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShw
b2ludC55KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4gcG9pbnQ7Ci19Ci0KLXZv
aWQgQXJndW1lbnRDb2RlcjxDR0FmZmluZVRyYW5zZm9ybT46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0pCi17Ci0gICAgZW5jb2RlciA8PCB0cmFu
c2Zvcm0uYSA8PCB0cmFuc2Zvcm0uYiA8PCB0cmFuc2Zvcm0uYyA8PCB0cmFuc2Zvcm0uZCA8PCB0
cmFuc2Zvcm0udHggPDwgdHJhbnNmb3JtLnR5OwotfQotCi1zdGQ6Om9wdGlvbmFsPENHQWZmaW5l
VHJhbnNmb3JtPiBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCi17Ci0gICAgQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtOwotICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmEpKQotICAgICAgICByZXR1cm4geyB9OwotICAg
IGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmIpKQotICAgICAgICByZXR1cm4geyB9Owot
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmMpKQotICAgICAgICByZXR1cm4geyB9
OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmQpKQotICAgICAgICByZXR1cm4g
eyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLnR4KSkKLSAgICAgICAgcmV0
dXJuIHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5zZm9ybS50eSkpCi0gICAgICAg
IHJldHVybiB7IH07Ci0gICAgcmV0dXJuIHRyYW5zZm9ybTsKLX0KLQogI2lmIEVOQUJMRShDT05U
RU5UX0ZJTFRFUklORykKIAogdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNvbnRlbnRGaWx0
ZXJVbmJsb2NrSGFuZGxlcj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3Jl
OjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIGNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxl
cikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>439163</attachid>
            <date>2021-09-24 10:53:30 -0700</date>
            <delta_ts>2021-09-24 10:53:30 -0700</delta_ts>
            <desc>Related Crash Log</desc>
            <filename>file_230714.txt</filename>
            <type>text/plain</type>
            <size>134165</size>
            <attacher name="Eric Hutchison">ehutchison</attacher>
            
              <data encoding="base64">UHJvY2VzczogICAgICAgICAgICAgICBXZWJLaXRUZXN0UnVubmVyQXBwIFs5NjM3Ml0NClBhdGg6
ICAgICAgICAgICAgICAgICAgL1VzZXJzL1VTRVIvTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVs
YXRvci9EZXZpY2VzL0U3RUEwODBFLThDQjEtNEQ4RS1CMDUyLTJFNzREODM1QTEyRi9kYXRhL0Nv
bnRhaW5lcnMvQnVuZGxlL0FwcGxpY2F0aW9uLzlCMzM4QkM2LTY0MTYtNEI5Mi04QkM1LUUwQjVG
Njk0RkExNi9XZWJLaXRUZXN0UnVubmVyQXBwLmFwcC9XZWJLaXRUZXN0UnVubmVyQXBwDQpJZGVu
dGlmaWVyOiAgICAgICAgICAgIFdlYktpdFRlc3RSdW5uZXJBcHANClZlcnNpb246ICAgICAgICAg
ICAgICAgMS4wICgxLjApDQpDb2RlIFR5cGU6ICAgICAgICAgICAgIFg4Ni02NCAoTmF0aXZlKQ0K
UGFyZW50IFByb2Nlc3M6ICAgICAgICBsYXVuY2hkX3NpbSBbODY2MzNdDQpSZXNwb25zaWJsZTog
ICAgICAgICAgIFNpbXVsYXRvclRyYW1wb2xpbmUgWzE4MjMxXQ0KVXNlciBJRDogICAgICAgICAg
ICAgICA1MDENCg0KRGF0ZS9UaW1lOiAgICAgICAgICAgICAyMDIxLTA5LTIzIDIyOjA2OjM0LjMx
MCAtMDcwMA0KT1MgVmVyc2lvbjogICAgICAgICAgICBtYWNPUyAxMS42ICgyMEcxNjUpDQpSZXBv
cnQgVmVyc2lvbjogICAgICAgIDEyDQpBbm9ueW1vdXMgVVVJRDogICAgICAgIDc3Qjk4MkI2LTI1
MTYtMzVGNS01M0M0LUU0RDJCNzY3QkExMA0KDQoNClRpbWUgQXdha2UgU2luY2UgQm9vdDogMjAw
MDAwIHNlY29uZHMNCg0KU3lzdGVtIEludGVncml0eSBQcm90ZWN0aW9uOiBlbmFibGVkDQoNCkNy
YXNoZWQgVGhyZWFkOiAgICAgICAgMCAgRGlzcGF0Y2ggcXVldWU6IGNvbS5hcHBsZS5tYWluLXRo
cmVhZA0KDQpFeGNlcHRpb24gVHlwZTogICAgICAgIEVYQ19CUkVBS1BPSU5UIChTSUdUUkFQKQ0K
RXhjZXB0aW9uIENvZGVzOiAgICAgICAweDAwMDAwMDAwMDAwMDAwMDIsIDB4MDAwMDAwMDAwMDAw
MDAwMA0KRXhjZXB0aW9uIE5vdGU6ICAgICAgICBFWENfQ09SUFNFX05PVElGWQ0KDQpUZXJtaW5h
dGlvbiBTaWduYWw6ICAgIFRyYWNlL0JQVCB0cmFwOiA1DQpUZXJtaW5hdGlvbiBSZWFzb246ICAg
IE5hbWVzcGFjZSBTSUdOQUwsIENvZGUgMHg1DQpUZXJtaW5hdGluZyBQcm9jZXNzOiAgIGV4YyBo
YW5kbGVyIFs5NjM3Ml0NCg0KQXBwbGljYXRpb24gU3BlY2lmaWMgSW5mb3JtYXRpb246DQpDUkFT
SElORyBURVNUOiB3ZWJhbmltYXRpb25zL2FjY2VsZXJhdGVkLWFuaW1hdGlvbi13aXRoLWRlbGF5
Lmh0bWwNCkNvcmVTaW11bGF0b3IgNzc2LjMgLSBEZXZpY2U6IE1hbmFnZWQgNiAoRTdFQTA4MEUt
OENCMS00RDhFLUIwNTItMkU3NEQ4MzVBMTJGKSAtIFJ1bnRpbWU6IGlPUyAxNC41ICgxOEUxODIp
IC0gRGV2aWNlVHlwZTogaVBhZCAoNXRoIGdlbmVyYXRpb24pDQoNClRocmVhZCAwIENyYXNoZWQ6
OiBEaXNwYXRjaCBxdWV1ZTogY29tLmFwcGxlLm1haW4tdGhyZWFkDQowICAgb3JnLndlYmtpdC5X
ZWJLaXRUZXN0UnVubmVyQXBwCTB4MDAwMDAwMDEwMWUwNTI3MyBXVEZDcmFzaFdpdGhJbmZvKGlu
dCwgY2hhciBjb25zdCosIGNoYXIgY29uc3QqLCBpbnQpICsgMTkNCjEgICBvcmcud2Via2l0Lldl
YktpdFRlc3RSdW5uZXJBcHAJMHgwMDAwMDAwMTAxZTA3NTFhIGludm9jYXRpb24gZnVuY3Rpb24g
Zm9yIGJsb2NrIGluIFdUUjo6UGxhdGZvcm1XZWJWaWV3Ojp3aW5kb3dTbmFwc2hvdEltYWdlKCkg
KyAyMDcNCjIgICBjb20uYXBwbGUuV2ViS2l0ICAgICAgICAgICAgICAJMHgwMDAwMDAwMTA1NTVj
MGFlIG9wZXJhdG9yKCkgKyA5IChCbG9ja1B0ci5oOjE5NikgW2lubGluZWRdDQozICAgY29tLmFw
cGxlLldlYktpdCAgICAgICAgICAgICAgCTB4MDAwMDAwMDEwNTU1YzBhZSBvcGVyYXRvcigpICsg
MzUgKFdLV2ViVmlldy5tbToxMjQzKSBbaW5saW5lZF0NCjQgICBjb20uYXBwbGUuV2ViS2l0ICAg
ICAgICAgICAgICAJMHgwMDAwMDAwMTA1NTVjMGFlIFdURjo6RGV0YWlsOjpDYWxsYWJsZVdyYXBw
ZXI8LVtXS1dlYlZpZXcgdGFrZVNuYXBzaG90V2l0aENvbmZpZ3VyYXRpb246Y29tcGxldGlvbkhh
bmRsZXI6XTo6JF8yNCwgdm9pZCwgV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yPjo6Y2FsbChX
ZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IpICsgNTYgKEZ1bmN0aW9uLmg6NTMpDQo1ICAgY29t
LmFwcGxlLldlYktpdCAgICAgICAgICAgICAgCTB4MDAwMDAwMDEwNTYzN2MyZSBvcGVyYXRvcigp
ICsgOSAoRnVuY3Rpb24uaDo4MikgW2lubGluZWRdDQo2ICAgY29tLmFwcGxlLldlYktpdCAgICAg
ICAgICAgICAgCTB4MDAwMDAwMDEwNTYzN2MyZSBXZWJLaXQ6OkdlbmVyaWNDYWxsYmFjazw+Ojpp
bnZhbGlkYXRlKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcikgKyAzOCAoR2VuZXJpY0NhbGxi
YWNrLmg6MTI1KQ0KNyAgIGNvbS5hcHBsZS5XZWJLaXQgICAgICAgICAgICAgIAkweDAwMDAwMDAx
MDU2MzY5NmUgdm9pZCBXZWJLaXQ6OmludmFsaWRhdGVDYWxsYmFja01hcDxXVEY6OlJlZlB0cjxX
ZWJLaXQ6OkNhbGxiYWNrQmFzZSwgV1RGOjpSYXdQdHJUcmFpdHM8V2ViS2l0OjpDYWxsYmFja0Jh
c2U+LCBXVEY6OkRlZmF1bHRSZWZEZXJlZlRyYWl0czxXZWJLaXQ6OkNhbGxiYWNrQmFzZT4gPiA+
KFdURjo6SGFzaE1hcDx1bnNpZ25lZCBsb25nIGxvbmcsIFdURjo6UmVmUHRyPFdlYktpdDo6Q2Fs
bGJhY2tCYXNlLCBXVEY6OlJhd1B0clRyYWl0czxXZWJLaXQ6OkNhbGxiYWNrQmFzZT4sIFdURjo6
RGVmYXVsdFJlZkRlcmVmVHJhaXRzPFdlYktpdDo6Q2FsbGJhY2tCYXNlPiA+LCBXVEY6OkRlZmF1
bHRIYXNoPHVuc2lnbmVkIGxvbmcgbG9uZz4sIFdURjo6SGFzaFRyYWl0czx1bnNpZ25lZCBsb25n
IGxvbmc+LCBXVEY6Okhhc2hUcmFpdHM8V1RGOjpSZWZQdHI8V2ViS2l0OjpDYWxsYmFja0Jhc2Us
IFdURjo6UmF3UHRyVHJhaXRzPFdlYktpdDo6Q2FsbGJhY2tCYXNlPiwgV1RGOjpEZWZhdWx0UmVm
RGVyZWZUcmFpdHM8V2ViS2l0OjpDYWxsYmFja0Jhc2U+ID4gPiwgV1RGOjpIYXNoVGFibGVUcmFp
dHM+JiwgV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yKSArIDg5IChHZW5lcmljQ2FsbGJhY2su
aDoxNTYpDQo4ICAgY29tLmFwcGxlLldlYktpdCAgICAgICAgICAgICAgCTB4MDAwMDAwMDEwNTYz
MzA1ZSBXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6On5SZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYVByb3h5KCkgKyA1NCAoUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eS5tbToxMzApDQo5ICAgY29tLmFwcGxlLldlYktpdCAgICAgICAgICAgICAgCTB4MDAwMDAw
MDEwNTYzMzFiYyB+UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eSArIDUgKFJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW06MTI5KSBbaW5saW5lZF0NCjEwICBjb20uYXBwbGUu
V2ViS2l0ICAgICAgICAgICAgICAJMHgwMDAwMDAwMTA1NjMzMWJjIFdlYktpdDo6UmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6flJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHko
KSArIDE0IChSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tOjEyOSkNCjExICBjb20u
YXBwbGUuV2ViS2l0ICAgICAgICAgICAgICAJMHgwMDAwMDAwMTA1Njg3Mjg2IG9wZXJhdG9yKCkg
KyA5IChtZW1vcnk6MjA4NCkgW2lubGluZWRdDQoxMiAgY29tLmFwcGxlLldlYktpdCAgICAgICAg
ICAgICAgCTB4MDAwMDAwMDEwNTY4NzI4NiByZXNldCArIDIwIChtZW1vcnk6MjM0NSkgW2lubGlu
ZWRdDQoxMyAgY29tLmFwcGxlLldlYktpdCAgICAgICAgICAgICAgCTB4MDAwMDAwMDEwNTY4NzI4
NiBvcGVyYXRvcj0gKyAyMCAobWVtb3J5OjIzMDMpIFtpbmxpbmVkXQ0KMTQgIGNvbS5hcHBsZS5X
ZWJLaXQgICAgICAgICAgICAgIAkweDAwMDAwMDAxMDU2ODcyODYgV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OnJlc2V0U3RhdGUoV2ViS2l0OjpXZWJQYWdlUHJveHk6OlJlc2V0U3RhdGVSZWFzb24pICsg
MjA0IChXZWJQYWdlUHJveHkuY3BwOjc4NDQpDQoxNSAgY29tLmFwcGxlLldlYktpdCAgICAgICAg
ICAgICAgCTB4MDAwMDAwMDEwNTY5ZmU3OSBXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVzZXRTdGF0
ZUFmdGVyUHJvY2Vzc0V4aXRlZChXZWJLaXQ6OlByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbikgKyAx
NjI3IChXZWJQYWdlUHJveHkuY3BwOjgwMTIpDQoxNiAgY29tLmFwcGxlLldlYktpdCAgICAgICAg
ICAgICAgCTB4MDAwMDAwMDEwNTY5MTU0YSBXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVzZXRTdGF0
ZUFmdGVyUHJvY2Vzc1Rlcm1pbmF0aW9uKFdlYktpdDo6UHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29u
KSArIDQ5OCAoV2ViUGFnZVByb3h5LmNwcDo3NzE5KQ0KMTcgIGNvbS5hcHBsZS5XZWJLaXQgICAg
ICAgICAgICAgIAkweDAwMDAwMDAxMDU2ZDM1MTAgV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnBy
b2Nlc3NEaWRUZXJtaW5hdGVPckZhaWxlZFRvTGF1bmNoKFdlYktpdDo6UHJvY2Vzc1Rlcm1pbmF0
aW9uUmVhc29uKSArIDEzOTIgKFdlYlByb2Nlc3NQcm94eS5jcHA6OTY2KQ0KMTggIGNvbS5hcHBs
ZS5XZWJLaXQgICAgICAgICAgICAgIAkweDAwMDAwMDAxMDU2ZDJmODUgV2ViS2l0OjpXZWJQcm9j
ZXNzUHJveHk6OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpICsgNTcgKFdlYlByb2Nlc3NQcm94
eS5jcHA6OTEzKQ0KMTkgIGNvbS5hcHBsZS5XZWJLaXQgICAgICAgICAgICAgIAkweDAwMDAwMDAx
MDUyZTA5MTkgSVBDOjpDb25uZWN0aW9uOjpkaXNwYXRjaE1lc3NhZ2Uoc3RkOjpfXzE6OnVuaXF1
ZV9wdHI8SVBDOjpEZWNvZGVyLCBzdGQ6Ol9fMTo6ZGVmYXVsdF9kZWxldGU8SVBDOjpEZWNvZGVy
PiA+KSArIDI5MSAoQ29ubmVjdGlvbi5jcHA6MTExNykNCjIwICBjb20uYXBwbGUuV2ViS2l0ICAg
ICAgICAgICAgICAJMHgwMDAwMDAwMTA1MmUwMDY5IElQQzo6Q29ubmVjdGlvbjo6ZGlzcGF0Y2hJ
bmNvbWluZ01lc3NhZ2VzKCkgKyAzMjMgKENvbm5lY3Rpb24uY3BwOjEyMDcpDQoyMSAgY29tLmFw
cGxlLkphdmFTY3JpcHRDb3JlICAgICAgCTB4MDAwMDAwMDEwMjg5MzVlMSBvcGVyYXRvcigpICsg
OSAoRnVuY3Rpb24uaDo4MikgW2lubGluZWRdDQoyMiAgY29tLmFwcGxlLkphdmFTY3JpcHRDb3Jl
ICAgICAgCTB4MDAwMDAwMDEwMjg5MzVlMSBXVEY6OlJ1bkxvb3A6OnBlcmZvcm1Xb3JrKCkgKyA1
NDUgKFJ1bkxvb3AuY3BwOjEzMykNCjIzICBjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUgICAgICAJ
MHgwMDAwMDAwMTAyODkzZTkyIFdURjo6UnVuTG9vcDo6cGVyZm9ybVdvcmsodm9pZCopICsgMzQg
KFJ1bkxvb3BDRi5jcHA6NDYpDQoyNCAgY29tLmFwcGxlLkNvcmVGb3VuZGF0aW9uICAgICAgCTB4
MDAwMDAwMDEwN2RjY2VkZSBfX0NGUlVOTE9PUF9JU19DQUxMSU5HX09VVF9UT19BX1NPVVJDRTBf
UEVSRk9STV9GVU5DVElPTl9fICsgMTcNCjI1ICBjb20uYXBwbGUuQ29yZUZvdW5kYXRpb24gICAg
ICAJMHgwMDAwMDAwMTA3ZGNjZGQ2IF9fQ0ZSdW5Mb29wRG9Tb3VyY2UwICsgMTgwDQoyNiAgY29t
LmFwcGxlLkNvcmVGb3VuZGF0aW9uICAgICAgCTB4MDAwMDAwMDEwN2RjYzI5ZSBfX0NGUnVuTG9v
cERvU291cmNlczAgKyAyNDINCjI3ICBjb20uYXBwbGUuQ29yZUZvdW5kYXRpb24gICAgICAJMHgw
MDAwMDAwMTA3ZGM2OWY3IF9fQ0ZSdW5Mb29wUnVuICsgODc1DQoyOCAgY29tLmFwcGxlLkNvcmVG
b3VuZGF0aW9uICAgICAgCTB4MDAwMDAwMDEwN2RjNjFhNyBDRlJ1bkxvb3BSdW5TcGVjaWZpYyAr
IDU2Nw0KMjkgIGNvbS5hcHBsZS5Gb3VuZGF0aW9uICAgICAgICAgIAkweDAwMDAwMDAxMDc1NGMy
MDQgLVtOU1J1bkxvb3AoTlNSdW5Mb29wKSBydW5Nb2RlOmJlZm9yZURhdGU6XSArIDIwOQ0KMzAg
IG9yZy53ZWJraXQuV2ViS2l0VGVzdFJ1bm5lckFwcAkweDAwMDAwMDAxMDFlMDcyNzIgV1RSOjpQ
bGF0Zm9ybVdlYlZpZXc6OndpbmRvd1NuYXBzaG90SW1hZ2UoKSArIDg2OA0KMzEgIG9yZy53ZWJr
aXQuV2ViS2l0VGVzdFJ1bm5lckFwcAkweDAwMDAwMDAxMDFlM2I2MTUgV1RSOjpUZXN0SW52b2Nh
dGlvbjo6ZHVtcFBpeGVsc0FuZENvbXBhcmVXaXRoRXhwZWN0ZWQoV1RSOjpUZXN0SW52b2NhdGlv
bjo6U25hcHNob3RSZXN1bHRUeXBlLCBPcGFxdWVXS0FycmF5IGNvbnN0KiwgT3BhcXVlV0tJbWFn
ZSBjb25zdCopICsgMTUxDQozMiAgb3JnLndlYmtpdC5XZWJLaXRUZXN0UnVubmVyQXBwCTB4MDAw
MDAwMDEwMWUzMzBhNiBXVFI6OlRlc3RJbnZvY2F0aW9uOjpkdW1wUmVzdWx0cygpICsgNjU4DQoz
MyAgb3JnLndlYmtpdC5XZWJLaXRUZXN0UnVubmVyQXBwCTB4MDAwMDAwMDEwMWUzMmQ3MyBXVFI6
OlRlc3RJbnZvY2F0aW9uOjppbnZva2UoKSArIDQxMQ0KMzQgIG9yZy53ZWJraXQuV2ViS2l0VGVz
dFJ1bm5lckFwcAkweDAwMDAwMDAxMDFlMWFiNDggV1RSOjpUZXN0Q29udHJvbGxlcjo6cnVuVGVz
dChjaGFyIGNvbnN0KikgKyAzMDINCjM1ICBvcmcud2Via2l0LldlYktpdFRlc3RSdW5uZXJBcHAJ
MHgwMDAwMDAwMTAxZTFhZGM4IFdUUjo6VGVzdENvbnRyb2xsZXI6OnJ1blRlc3RpbmdTZXJ2ZXJM
b29wKCkgKyAxMzINCjM2ICBvcmcud2Via2l0LldlYktpdFRlc3RSdW5uZXJBcHAJMHgwMDAwMDAw
MTAxZTE2MDM2IFdUUjo6VGVzdENvbnRyb2xsZXI6OlRlc3RDb250cm9sbGVyKGludCwgY2hhciBj
b25zdCoqKSArIDY3OA0KMzcgIG9yZy53ZWJraXQuV2ViS2l0VGVzdFJ1bm5lckFwcAkweDAwMDAw
MDAxMDFlMDUzNDggLVtXZWJLaXRUZXN0UnVubmVyQXBwIF9ydW5UZXN0Q29udHJvbGxlcl0gKyA0
MA0KMzggIGNvbS5hcHBsZS5Gb3VuZGF0aW9uICAgICAgICAgIAkweDAwMDAwMDAxMDc1NzRkMDgg
X19OU1RocmVhZFBlcmZvcm1QZXJmb3JtICsgMjA0DQozOSAgY29tLmFwcGxlLkNvcmVGb3VuZGF0
aW9uICAgICAgCTB4MDAwMDAwMDEwN2RjY2VkZSBfX0NGUlVOTE9PUF9JU19DQUxMSU5HX09VVF9U
T19BX1NPVVJDRTBfUEVSRk9STV9GVU5DVElPTl9fICsgMTcNCjQwICBjb20uYXBwbGUuQ29yZUZv
dW5kYXRpb24gICAgICAJMHgwMDAwMDAwMTA3ZGNjZGQ2IF9fQ0ZSdW5Mb29wRG9Tb3VyY2UwICsg
MTgwDQo0MSAgY29tLmFwcGxlLkNvcmVGb3VuZGF0aW9uICAgICAgCTB4MDAwMDAwMDEwN2RjYzMw
MCBfX0NGUnVuTG9vcERvU291cmNlczAgKyAzNDANCjQyICBjb20uYXBwbGUuQ29yZUZvdW5kYXRp
b24gICAgICAJMHgwMDAwMDAwMTA3ZGM2OWY3IF9fQ0ZSdW5Mb29wUnVuICsgODc1DQo0MyAgY29t
LmFwcGxlLkNvcmVGb3VuZGF0aW9uICAgICAgCTB4MDAwMDAwMDEwN2RjNjFhNyBDRlJ1bkxvb3BS
dW5TcGVjaWZpYyArIDU2Nw0KNDQgIGNvbS5hcHBsZS5HcmFwaGljc1NlcnZpY2VzICAgIAkweDAw
MDAwMDAxMDc5ZDNkODUgR1NFdmVudFJ1bk1vZGFsICsgMTM5DQo0NSAgY29tLmFwcGxlLlVJS2l0
Q29yZSAgICAgICAgICAgCTB4MDAwMDAwMDExN2E1NTRkZiAtW1VJQXBwbGljYXRpb24gX3J1bl0g
KyA5MTINCjQ2ICBjb20uYXBwbGUuVUlLaXRDb3JlICAgICAgICAgICAJMHgwMDAwMDAwMTE3YTVh
MzljIFVJQXBwbGljYXRpb25NYWluICsgMTAxDQo0NyAgb3JnLndlYmtpdC5XZWJLaXRUZXN0UnVu
bmVyQXBwCTB4MDAwMDAwMDEwMWUwNTQ0NiBtYWluICsgNjUNCjQ4ICBsaWJkeWxkLmR5bGliICAg
ICAgICAgICAgICAgICAJMHgwMDAwMDAwMTEwMDhiYmJkIHN0YXJ0ICsgMQ0KDQpUaHJlYWQgMTo6
IGNvbS5hcHBsZS51aWtpdC5ldmVudGZldGNoLXRocmVhZA0KMCAgIGxpYnN5c3RlbV9rZXJuZWwu
ZHlsaWIgICAgICAgIAkweDAwMDAwMDAxMTA0NGUyYmEgbWFjaF9tc2dfdHJhcCArIDEwDQoxICAg
bGlic3lzdGVtX2tlcm5lbC5keWxpYiAgICAgICAgCTB4MDAwMDAwMDExMDQ0ZTYyYyBtYWNoX21z
ZyArIDYwDQoyICAgY29tLmFwcGxlLkNvcmVGb3VuZGF0aW9uICAgICAgCTB4MDAwMDAwMDEwN2Rj
YzRmOSBfX0NGUnVuTG9vcFNlcnZpY2VNYWNoUG9ydCArIDMxNg0KMyAgIGNvbS5hcHBsZS5Db3Jl
Rm91bmRhdGlvbiAgICAgIAkweDAwMDAwMDAxMDdkYzZiOWMgX19DRlJ1bkxvb3BSdW4gKyAxMjk2
DQo0ICAgY29tLmFwcGxlLkNvcmVGb3VuZGF0aW9uICAgICAgCTB4MDAwMDAwMDEwN2RjNjFhNyBD
RlJ1bkxvb3BSdW5TcGVjaWZpYyArIDU2Nw0KNSAgIGNvbS5hcHBsZS5Gb3VuZGF0aW9uICAgICAg
ICAgIAkweDAwMDAwMDAxMDc1NGMyMDQgLVtOU1J1bkxvb3AoTlNSdW5Mb29wKSBydW5Nb2RlOmJl
Zm9yZURhdGU6XSArIDIwOQ0KNiAgIGNvbS5hcHBsZS5Gb3VuZGF0aW9uICAgICAgICAgIAkweDAw
MDAwMDAxMDc1NGM0NzMgLVtOU1J1bkxvb3AoTlNSdW5Mb29wKSBydW5VbnRpbERhdGU6XSArIDcy
DQo3ICAgY29tLmFwcGxlLlVJS2l0Q29yZSAgICAgICAgICAgCTB4MDAwMDAwMDExN2IwZGNjZCAt
W1VJRXZlbnRGZXRjaGVyIHRocmVhZE1haW5dICsgNDY0DQo4ICAgY29tLmFwcGxlLkZvdW5kYXRp
b24gICAgICAgICAgCTB4MDAwMDAwMDEwNzU3NDhhOSBfX05TVGhyZWFkX19zdGFydF9fICsgMTA2
OA0KOSAgIGxpYnN5c3RlbV9wdGhyZWFkLmR5bGliICAgICAgIAkweDAwMDAwMDAxMTA0ZDM4ZmMg
X3B0aHJlYWRfc3RhcnQgKyAyMjQNCjEwICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJ
MHgwMDAwMDAwMTEwNGNmNDQzIHRocmVhZF9zdGFydCArIDE1DQoNClRocmVhZCAyOjogSmF2YVNj
cmlwdENvcmUgYm1hbGxvYyBzY2F2ZW5nZXINCjAgICBsaWJzeXN0ZW1fa2VybmVsLmR5bGliICAg
ICAgICAJMHgwMDAwMDAwMTEwNDUwY2RlIF9fcHN5bmNoX2N2d2FpdCArIDEwDQoxICAgbGlic3lz
dGVtX3B0aHJlYWQuZHlsaWIgICAgICAgCTB4MDAwMDAwMDExMDRkM2U0OSBfcHRocmVhZF9jb25k
X3dhaXQgKyAxMjk4DQoyICAgbGliYysrLjEuZHlsaWIgICAgICAgICAgICAgICAgCTB4MDAwMDAw
MDEwN2M5YWY4MyBzdGQ6Ol9fMTo6Y29uZGl0aW9uX3ZhcmlhYmxlOjpfX2RvX3RpbWVkX3dhaXQo
c3RkOjpfXzE6OnVuaXF1ZV9sb2NrPHN0ZDo6X18xOjptdXRleD4mLCBzdGQ6Ol9fMTo6Y2hyb25v
Ojp0aW1lX3BvaW50PHN0ZDo6X18xOjpjaHJvbm86OnN5c3RlbV9jbG9jaywgc3RkOjpfXzE6OmNo
cm9ubzo6ZHVyYXRpb248bG9uZyBsb25nLCBzdGQ6Ol9fMTo6cmF0aW88MWwsIDEwMDAwMDAwMDBs
PiA+ID4pICsgOTMNCjMgICBjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUgICAgICAJMHgwMDAwMDAw
MTAyOGZlMDBiIHdhaXRfZm9yPGxvbmcgbG9uZywgc3RkOjpfXzE6OnJhdGlvPDEsIDEwMDAwMDAw
MDA+ID4gKyAxMTcgW2lubGluZWRdDQo0ICAgY29tLmFwcGxlLkphdmFTY3JpcHRDb3JlICAgICAg
CTB4MDAwMDAwMDEwMjhmZTAwYiBfX2RvX3RpbWVkX3dhaXQ8c3RkOjpfXzE6OmNocm9ubzo6c3Rl
YWR5X2Nsb2NrPiArIDEyMiAoX19tdXRleF9iYXNlOjUyMykgW2lubGluZWRdDQo1ICAgY29tLmFw
cGxlLkphdmFTY3JpcHRDb3JlICAgICAgCTB4MDAwMDAwMDEwMjhmZTAwYiBzdGQ6Ol9fMTo6Y3Zf
c3RhdHVzIHN0ZDo6X18xOjpjb25kaXRpb25fdmFyaWFibGU6OndhaXRfdW50aWw8c3RkOjpfXzE6
OmNocm9ubzo6c3RlYWR5X2Nsb2NrLCBzdGQ6Ol9fMTo6Y2hyb25vOjpkdXJhdGlvbjxsb25nIGxv
bmcsIHN0ZDo6X18xOjpyYXRpbzwxbCwgMTAwMDAwMDAwMGw+ID4gPihzdGQ6Ol9fMTo6dW5pcXVl
X2xvY2s8c3RkOjpfXzE6Om11dGV4PiYsIHN0ZDo6X18xOjpjaHJvbm86OnRpbWVfcG9pbnQ8c3Rk
OjpfXzE6OmNocm9ubzo6c3RlYWR5X2Nsb2NrLCBzdGQ6Ol9fMTo6Y2hyb25vOjpkdXJhdGlvbjxs
b25nIGxvbmcsIHN0ZDo6X18xOjpyYXRpbzwxbCwgMTAwMDAwMDAwMGw+ID4gPiBjb25zdCYpICsg
MTcxIChfX211dGV4X2Jhc2U6NDI2KQ0KNiAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAgICAg
IAkweDAwMDAwMDAxMDI4ZmRlOWYgc3RkOjpfXzE6OmN2X3N0YXR1cyBzdGQ6Ol9fMTo6Y29uZGl0
aW9uX3ZhcmlhYmxlX2FueTo6d2FpdF91bnRpbDxzdGQ6Ol9fMTo6dW5pcXVlX2xvY2s8Ym1hbGxv
Yzo6TXV0ZXg+LCBzdGQ6Ol9fMTo6Y2hyb25vOjpzdGVhZHlfY2xvY2ssIHN0ZDo6X18xOjpjaHJv
bm86OmR1cmF0aW9uPGxvbmcgbG9uZywgc3RkOjpfXzE6OnJhdGlvPDFsLCAxMDAwMDAwMDAwbD4g
PiA+KHN0ZDo6X18xOjp1bmlxdWVfbG9jazxibWFsbG9jOjpNdXRleD4mLCBzdGQ6Ol9fMTo6Y2hy
b25vOjp0aW1lX3BvaW50PHN0ZDo6X18xOjpjaHJvbm86OnN0ZWFkeV9jbG9jaywgc3RkOjpfXzE6
OmNocm9ubzo6ZHVyYXRpb248bG9uZyBsb25nLCBzdGQ6Ol9fMTo6cmF0aW88MWwsIDEwMDAwMDAw
MDBsPiA+ID4gY29uc3QmKSArIDk1IChjb25kaXRpb25fdmFyaWFibGU6MjI1KQ0KNyAgIGNvbS5h
cHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAxMDI4ZmNkMDUgd2FpdF91bnRpbDxz
dGQ6Ol9fMTo6dW5pcXVlX2xvY2s8Ym1hbGxvYzo6TXV0ZXg+LCBzdGQ6Ol9fMTo6Y2hyb25vOjpz
dGVhZHlfY2xvY2ssIHN0ZDo6X18xOjpjaHJvbm86OmR1cmF0aW9uPGxvbmcgbG9uZywgc3RkOjpf
XzE6OnJhdGlvPDEsIDEwMDAwMDAwMDA+ID4sIChsYW1iZGEgYXQgL1ZvbHVtZXMvRGF0YS93b3Jr
ZXIvaW9zLXNpbXVsYXRvci0xNC1yZWxlYXNlL2J1aWxkL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2Mv
U2NhdmVuZ2VyLmNwcDozMjE6NTIpPiArIDIxIChjb25kaXRpb25fdmFyaWFibGU6MjM2KSBbaW5s
aW5lZF0NCjggICBjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUgICAgICAJMHgwMDAwMDAwMTAyOGZj
ZDA1IHdhaXRfZm9yPHN0ZDo6X18xOjp1bmlxdWVfbG9jazxibWFsbG9jOjpNdXRleD4sIGxvbmcg
bG9uZywgc3RkOjpfXzE6OnJhdGlvPDEsIDEwMDA+LCAobGFtYmRhIGF0IC9Wb2x1bWVzL0RhdGEv
d29ya2VyL2lvcy1zaW11bGF0b3ItMTQtcmVsZWFzZS9idWlsZC9Tb3VyY2UvYm1hbGxvYy9ibWFs
bG9jL1NjYXZlbmdlci5jcHA6MzIxOjUyKT4gKyA0MSAoY29uZGl0aW9uX3ZhcmlhYmxlOjI1Nykg
W2lubGluZWRdDQo5ICAgY29tLmFwcGxlLkphdmFTY3JpcHRDb3JlICAgICAgCTB4MDAwMDAwMDEw
MjhmY2QwNSBibWFsbG9jOjpTY2F2ZW5nZXI6OnRocmVhZFJ1bkxvb3AoKSArIDIyOSAoU2NhdmVu
Z2VyLmNwcDozMjEpDQoxMCAgY29tLmFwcGxlLkphdmFTY3JpcHRDb3JlICAgICAgCTB4MDAwMDAw
MDEwMjhmY2E0OSBibWFsbG9jOjpTY2F2ZW5nZXI6OnRocmVhZEVudHJ5UG9pbnQoYm1hbGxvYzo6
U2NhdmVuZ2VyKikgKyA5IChTY2F2ZW5nZXIuY3BwOjI5NSkNCjExICBjb20uYXBwbGUuSmF2YVNj
cmlwdENvcmUgICAgICAJMHgwMDAwMDAwMTAyOGZkYzg3IF9faW52b2tlPHZvaWQgKCopKGJtYWxs
b2M6OlNjYXZlbmdlciAqKSBfX2F0dHJpYnV0ZV9fKChub3JldHVybikpLCBibWFsbG9jOjpTY2F2
ZW5nZXIgKj4gKyAzICh0eXBlX3RyYWl0czozNzQ3KSBbaW5saW5lZF0NCjEyICBjb20uYXBwbGUu
SmF2YVNjcmlwdENvcmUgICAgICAJMHgwMDAwMDAwMTAyOGZkYzg3IF9fdGhyZWFkX2V4ZWN1dGU8
c3RkOjpfXzE6OnVuaXF1ZV9wdHI8c3RkOjpfXzE6Ol9fdGhyZWFkX3N0cnVjdD4sIHZvaWQgKCop
KGJtYWxsb2M6OlNjYXZlbmdlciAqKSBfX2F0dHJpYnV0ZV9fKChub3JldHVybikpLCBibWFsbG9j
OjpTY2F2ZW5nZXIgKiwgMj4gKyAzICh0aHJlYWQ6MjgwKSBbaW5saW5lZF0NCjEzICBjb20uYXBw
bGUuSmF2YVNjcmlwdENvcmUgICAgICAJMHgwMDAwMDAwMTAyOGZkYzg3IHZvaWQqIHN0ZDo6X18x
OjpfX3RocmVhZF9wcm94eTxzdGQ6Ol9fMTo6dHVwbGU8c3RkOjpfXzE6OnVuaXF1ZV9wdHI8c3Rk
OjpfXzE6Ol9fdGhyZWFkX3N0cnVjdCwgc3RkOjpfXzE6OmRlZmF1bHRfZGVsZXRlPHN0ZDo6X18x
OjpfX3RocmVhZF9zdHJ1Y3Q+ID4sIHZvaWQgKCopKGJtYWxsb2M6OlNjYXZlbmdlciopLCBibWFs
bG9jOjpTY2F2ZW5nZXIqPiA+KHZvaWQqKSArIDM5ICh0aHJlYWQ6MjkxKQ0KMTQgIGxpYnN5c3Rl
bV9wdGhyZWFkLmR5bGliICAgICAgIAkweDAwMDAwMDAxMTA0ZDM4ZmMgX3B0aHJlYWRfc3RhcnQg
KyAyMjQNCjE1ICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwMDAwMTEwNGNm
NDQzIHRocmVhZF9zdGFydCArIDE1DQoNClRocmVhZCAzOjogRGlzcGF0Y2ggcXVldWU6IFByb2Nl
c3NBc3NlcnRpb24gUXVldWUNCjAgICBsaWJzeXN0ZW1fa2VybmVsLmR5bGliICAgICAgICAJMHgw
MDAwMDAwMTEwNDRlMmJhIG1hY2hfbXNnX3RyYXAgKyAxMA0KMSAgIGxpYnN5c3RlbV9rZXJuZWwu
ZHlsaWIgICAgICAgIAkweDAwMDAwMDAxMTA0NGU2MmMgbWFjaF9tc2cgKyA2MA0KMiAgIGxpYmRp
c3BhdGNoLmR5bGliICAgICAgICAgICAgIAkweDAwMDAwMDAxMTAwMTliYjkgX2Rpc3BhdGNoX21h
Y2hfc2VuZF9hbmRfd2FpdF9mb3JfcmVwbHkgKyA1NzQNCjMgICBsaWJkaXNwYXRjaC5keWxpYiAg
ICAgICAgICAgICAJMHgwMDAwMDAwMTEwMDE5ZmRlIGRpc3BhdGNoX21hY2hfc2VuZF93aXRoX3Jl
c3VsdF9hbmRfd2FpdF9mb3JfcmVwbHkgKyA1MA0KNCAgIGxpYnhwYy5keWxpYiAgICAgICAgICAg
ICAgICAgIAkweDAwMDAwMDAxMTAzZDhmMzkgeHBjX2Nvbm5lY3Rpb25fc2VuZF9tZXNzYWdlX3dp
dGhfcmVwbHlfc3luYyArIDIxOQ0KNSAgIGNvbS5hcHBsZS5SdW5uaW5nQm9hcmRTZXJ2aWNlcwkw
eDAwMDAwMDAxMTNhNmM5MGMgLVtSQlNYUENNZXNzYWdlIHNlbmRUb0Nvbm5lY3Rpb246ZXJyb3I6
XSArIDQyMg0KNiAgIGNvbS5hcHBsZS5SdW5uaW5nQm9hcmRTZXJ2aWNlcwkweDAwMDAwMDAxMTNh
NmNmNzggLVtSQlNYUENNZXNzYWdlIGludm9rZU9uQ29ubmVjdGlvbjp3aXRoUmV0dXJuQ29sbGVj
dGlvbkNsYXNzOmVudHJ5Q2xhc3M6ZXJyb3I6XSArIDg1DQo3ICAgY29tLmFwcGxlLlJ1bm5pbmdC
b2FyZFNlcnZpY2VzCTB4MDAwMDAwMDExM2E1MTgwMCAtW1JCU0Nvbm5lY3Rpb24gYWNxdWlyZUFz
c2VydGlvbjplcnJvcjpdICsgMzkzDQo4ICAgY29tLmFwcGxlLlJ1bm5pbmdCb2FyZFNlcnZpY2Vz
CTB4MDAwMDAwMDExM2E0ZWFiOCAtW1JCU0Fzc2VydGlvbiBhY3F1aXJlV2l0aEVycm9yOl0gKyAy
MzYNCjkgICBjb20uYXBwbGUuV2ViS2l0ICAgICAgICAgICAgICAJMHgwMDAwMDAwMTA1NjZiZjhl
IFdlYktpdDo6UHJvY2Vzc0Fzc2VydGlvbjo6YWNxdWlyZVN5bmMoKSArIDU4IChQcm9jZXNzQXNz
ZXJ0aW9uSU9TLm1tOjM3MSkNCjEwICBjb20uYXBwbGUuV2ViS2l0ICAgICAgICAgICAgICAJMHgw
MDAwMDAwMTA1Njc0YWY3IG9wZXJhdG9yKCkgKyA5IChQcm9jZXNzQXNzZXJ0aW9uSU9TLm1tOjM2
MCkgW2lubGluZWRdDQoxMSAgY29tLmFwcGxlLldlYktpdCAgICAgICAgICAgICAgCTB4MDAwMDAw
MDEwNTY3NGFmNyBXVEY6OkRldGFpbDo6Q2FsbGFibGVXcmFwcGVyPFdlYktpdDo6UHJvY2Vzc0Fz
c2VydGlvbjo6YWNxdWlyZUFzeW5jKFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCAoKT4mJik6
OiRfNywgdm9pZD46OmNhbGwoKSArIDI3IChGdW5jdGlvbi5oOjUzKQ0KMTIgIGNvbS5hcHBsZS5K
YXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAxMDI4ZTkzODMgb3BlcmF0b3IoKSArIDEwIChG
dW5jdGlvbi5oOjgyKSBbaW5saW5lZF0NCjEzICBjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUgICAg
ICAJMHgwMDAwMDAwMTAyOGU5MzgzIG9wZXJhdG9yKCkgKyAxMCAoV29ya1F1ZXVlQ29jb2EuY3Bw
OjQwKSBbaW5saW5lZF0NCjE0ICBjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUgICAgICAJMHgwMDAw
MDAwMTAyOGU5MzgzIHZvaWQgV1RGOjpkaXNwYXRjaFdvcmtJdGVtPFdURjo6KGFub255bW91cyBu
YW1lc3BhY2UpOjpEaXNwYXRjaFdvcmtJdGVtPih2b2lkKikgKyAxOSAoV29ya1F1ZXVlQ29jb2Eu
Y3BwOjQ4KQ0KMTUgIGxpYmRpc3BhdGNoLmR5bGliICAgICAgICAgICAgIAkweDAwMDAwMDAxMTAw
MDI4ZGYgX2Rpc3BhdGNoX2NsaWVudF9jYWxsb3V0ICsgOA0KMTYgIGxpYmRpc3BhdGNoLmR5bGli
ICAgICAgICAgICAgIAkweDAwMDAwMDAxMTAwMDhlMTUgX2Rpc3BhdGNoX2xhbmVfc2VyaWFsX2Ry
YWluICsgNzE1DQoxNyAgbGliZGlzcGF0Y2guZHlsaWIgICAgICAgICAgICAgCTB4MDAwMDAwMDEx
MDAwOTk4YyBfZGlzcGF0Y2hfbGFuZV9pbnZva2UgKyA0MDANCjE4ICBsaWJkaXNwYXRjaC5keWxp
YiAgICAgICAgICAgICAJMHgwMDAwMDAwMTEwMDEzZjgxIF9kaXNwYXRjaF93b3JrbG9vcF93b3Jr
ZXJfdGhyZWFkICsgNzcyDQoxOSAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAgICAgCTB4MDAw
MDAwMDExMDRkMDQ1ZCBfcHRocmVhZF93cXRocmVhZCArIDMxNA0KMjAgIGxpYnN5c3RlbV9wdGhy
ZWFkLmR5bGliICAgICAgIAkweDAwMDAwMDAxMTA0Y2Y0MmYgc3RhcnRfd3F0aHJlYWQgKyAxNQ0K
DQpUaHJlYWQgNDoNCjAgICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwMDAw
MTEwNGNmNDIwIHN0YXJ0X3dxdGhyZWFkICsgMA0KDQpUaHJlYWQgNToNCjAgICBsaWJzeXN0ZW1f
cHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwMDAwMTEwNGNmNDIwIHN0YXJ0X3dxdGhyZWFkICsg
MA0KDQpUaHJlYWQgNjoNCjAgICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAw
MDAwMTEwNGNmNDIwIHN0YXJ0X3dxdGhyZWFkICsgMA0KDQpUaHJlYWQgNzoNCjAgICBsaWJzeXN0
ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwMDAwMTEwNGNmNDIwIHN0YXJ0X3dxdGhyZWFk
ICsgMA0KDQpUaHJlYWQgODoNCjAgICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgw
MDAwMDAwMTEwNGNmNDIwIHN0YXJ0X3dxdGhyZWFkICsgMA0KDQpUaHJlYWQgOToNCjAgICBsaWJz
eXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwMDAwMTEwNGNmNDIwIHN0YXJ0X3dxdGhy
ZWFkICsgMA0KDQpUaHJlYWQgMTA6DQowICAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAgICAg
CTB4MDAwMDAwMDExMDRjZjQyMCBzdGFydF93cXRocmVhZCArIDANCg0KVGhyZWFkIDExOjogRGlz
cGF0Y2ggcXVldWU6IGNvbS5hcHBsZS5saWJ0cmFjZS5zdGF0ZS5ibG9jay1saXN0DQowICAgbGli
c3lzdGVtX2tlcm5lbC5keWxpYiAgICAgICAgCTB4MDAwMDAwMDExMDQ0ZjllZSBfX3Vsb2NrX3dh
aXQgKyAxMA0KMSAgIGxpYmRpc3BhdGNoLmR5bGliICAgICAgICAgICAgIAkweDAwMDAwMDAxMTAw
MDMwZGMgX2Rsb2NrX3dhaXQgKyA0NA0KMiAgIGxpYmRpc3BhdGNoLmR5bGliICAgICAgICAgICAg
IAkweDAwMDAwMDAxMTAwMDJmM2YgX2Rpc3BhdGNoX3RocmVhZF9ldmVudF93YWl0X3Nsb3cgKyA0
MA0KMyAgIGxpYmRpc3BhdGNoLmR5bGliICAgICAgICAgICAgIAkweDAwMDAwMDAxMTAwMTA4OTUg
X19ESVNQQVRDSF9XQUlUX0ZPUl9RVUVVRV9fICsgMzEzDQo0ICAgbGliZGlzcGF0Y2guZHlsaWIg
ICAgICAgICAgICAgCTB4MDAwMDAwMDExMDAxMDQxYyBfZGlzcGF0Y2hfc3luY19mX3Nsb3cgKyAx
OTkNCjUgICBsaWJzeXN0ZW1fdHJhY2UuZHlsaWIgICAgICAgICAJMHgwMDAwMDAwMTEwM2EzMmE4
IF9fX29zX3N0YXRlX3JlcXVlc3RfZm9yX3NlbGZfYmxvY2tfaW52b2tlICsgMzg5DQo2ICAgbGli
ZGlzcGF0Y2guZHlsaWIgICAgICAgICAgICAgCTB4MDAwMDAwMDExMDAwMTcwZCBfZGlzcGF0Y2hf
Y2FsbF9ibG9ja19hbmRfcmVsZWFzZSArIDEyDQo3ICAgbGliZGlzcGF0Y2guZHlsaWIgICAgICAg
ICAgICAgCTB4MDAwMDAwMDExMDAwMjhkZiBfZGlzcGF0Y2hfY2xpZW50X2NhbGxvdXQgKyA4DQo4
ICAgbGliZGlzcGF0Y2guZHlsaWIgICAgICAgICAgICAgCTB4MDAwMDAwMDExMDAwOGUxNSBfZGlz
cGF0Y2hfbGFuZV9zZXJpYWxfZHJhaW4gKyA3MTUNCjkgICBsaWJkaXNwYXRjaC5keWxpYiAgICAg
ICAgICAgICAJMHgwMDAwMDAwMTEwMDA5OWMzIF9kaXNwYXRjaF9sYW5lX2ludm9rZSArIDQ1NQ0K
MTAgIGxpYmRpc3BhdGNoLmR5bGliICAgICAgICAgICAgIAkweDAwMDAwMDAxMTAwMTNmODEgX2Rp
c3BhdGNoX3dvcmtsb29wX3dvcmtlcl90aHJlYWQgKyA3NzINCjExICBsaWJzeXN0ZW1fcHRocmVh
ZC5keWxpYiAgICAgICAJMHgwMDAwMDAwMTEwNGQwNDVkIF9wdGhyZWFkX3dxdGhyZWFkICsgMzE0
DQoxMiAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAgICAgCTB4MDAwMDAwMDExMDRjZjQyZiBz
dGFydF93cXRocmVhZCArIDE1DQoNClRocmVhZCAxMjoNCjAgICBsaWJzeXN0ZW1fcHRocmVhZC5k
eWxpYiAgICAgICAJMHgwMDAwMDAwMTEwNGNmNDIwIHN0YXJ0X3dxdGhyZWFkICsgMA0KDQpUaHJl
YWQgMTM6DQowICAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAgICAgCTB4MDAwMDAwMDExMDRj
ZjQyMCBzdGFydF93cXRocmVhZCArIDANCg0KVGhyZWFkIDE0Og0KMCAgIGxpYnN5c3RlbV9wdGhy
ZWFkLmR5bGliICAgICAgIAkweDAwMDAwMDAxMTA0Y2Y0MjAgc3RhcnRfd3F0aHJlYWQgKyAwDQoN
ClRocmVhZCAxNToNCjAgICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwMDAw
MTEwNGNmNDIwIHN0YXJ0X3dxdGhyZWFkICsgMA0KDQpUaHJlYWQgMTY6DQowICAgbGlic3lzdGVt
X3B0aHJlYWQuZHlsaWIgICAgICAgCTB4MDAwMDAwMDExMDRjZjQyMCBzdGFydF93cXRocmVhZCAr
IDANCg0KVGhyZWFkIDE3Og0KMCAgIGxpYnN5c3RlbV9wdGhyZWFkLmR5bGliICAgICAgIAkweDAw
MDAwMDAxMTA0Y2Y0MjAgc3RhcnRfd3F0aHJlYWQgKyAwDQoNClRocmVhZCAxODoNCjAgICBsaWJz
eXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwMDAwMTEwNGNmNDIwIHN0YXJ0X3dxdGhy
ZWFkICsgMA0KDQpUaHJlYWQgMTk6DQowICAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAgICAg
CTB4MDAwMDAwMDExMDRjZjQyMCBzdGFydF93cXRocmVhZCArIDANCg0KVGhyZWFkIDIwOg0KMCAg
IGxpYnN5c3RlbV9wdGhyZWFkLmR5bGliICAgICAgIAkweDAwMDAwMDAxMTA0Y2Y0MjAgc3RhcnRf
d3F0aHJlYWQgKyAwDQoNClRocmVhZCAyMToNCjAgICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAg
ICAgICAJMHgwMDAwMDAwMTEwNGNmNDIwIHN0YXJ0X3dxdGhyZWFkICsgMA0KDQpUaHJlYWQgMjI6
DQowICAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAgICAgCTB4MDAwMDAwMDExMDRjZjQyMCBz
dGFydF93cXRocmVhZCArIDANCg0KVGhyZWFkIDIzOg0KMCAgIGxpYnN5c3RlbV9wdGhyZWFkLmR5
bGliICAgICAgIAkweDAwMDAwMDAxMTA0Y2Y0MjAgc3RhcnRfd3F0aHJlYWQgKyAwDQoNClRocmVh
ZCAyNDoNCjAgICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwMDAwMTEwNGNm
NDIwIHN0YXJ0X3dxdGhyZWFkICsgMA0KDQpUaHJlYWQgMjU6DQowICAgbGlic3lzdGVtX3B0aHJl
YWQuZHlsaWIgICAgICAgCTB4MDAwMDAwMDExMDRjZjQyMCBzdGFydF93cXRocmVhZCArIDANCg0K
VGhyZWFkIDAgY3Jhc2hlZCB3aXRoIFg4NiBUaHJlYWQgU3RhdGUgKDY0LWJpdCk6DQogIHJheDog
MHgwMDAwN2ZmZWVkZGZiYmEwICByYng6IDB4MDAwMDAwMDEyNThlNjMyMCAgcmN4OiAweDAwMDAw
MDAwMDAwMDAwMGUgIHJkeDogMHgwMDAwMDAwMTAxZTU2MjBjDQogIHJkaTogMHgwMDAwMDAwMDAw
MDAwMWEzICByc2k6IDB4MDAwMDAwMDEwMWU1NjExNiAgcmJwOiAweDAwMDA3ZmZlZWRkZmJiMzAg
IHJzcDogMHgwMDAwN2ZmZWVkZGZiYjMwDQogICByODogMHgwMDAwN2ZjZGRjMDEyZmEwICAgcjk6
IDB4MDAwMDAwMDAwMDAwMDFmZiAgcjEwOiAweDAwMDAwMDAwMDAwMDAwMDYgIHIxMTogMHgwMDAw
N2ZjZGRjMDEyZmEwDQogIHIxMjogMHgwMDAwMDAwMTI1OGJlZWEwICByMTM6IDB4MDAwMDdmZmVl
ZGRmYmVjOCAgcjE0OiAweDAwMDA3ZmZlZWRkZmJiYTAgIHIxNTogMHgwMDAwMDAwMTI1OGJlZWEw
DQogIHJpcDogMHgwMDAwMDAwMTAxZTA1MjczICByZmw6IDB4MDAwMDAwMDAwMDAwMDIwNiAgY3Iy
OiAweDAwMDA3ZmNmOTAwMmMwMDANCiAgDQpMb2dpY2FsIENQVTogICAgIDkNCkVycm9yIENvZGU6
ICAgICAgMHgwMDAwMDAwMA0KVHJhcCBOdW1iZXI6ICAgICAzDQoNClRocmVhZCAwIGluc3RydWN0
aW9uIHN0cmVhbToNCiAgM2UgMDggMDAgNDggOGQgM2QgNTMgM2UtMDggMDAgZTggN2EgZGMgMDQg
MDAgZWIgID4uLkguPVM+Li4uei4uLi4NCiAgODUgNDggOGQgMzUgOWUgMGIgMDUgMDAtNDggOGQg
MTUgZmIgMGIgMDUgMDAgYmYgIC5ILjUuLi4uSC4uLi4uLi4NCiAgMjYgMDAgMDAgMDAgYjkgMDcg
MDAgMDAtMDAgZTggMWYgMDAgMDAgMDAgNDggODkgICYuLi4uLi4uLi4uLi4uSC4NCiAgYzMgNDgg
OGQgM2QgMjUgM2UgMDggMDAtZTggNDAgZGMgMDQgMDAgNDggODkgZGYgIC5ILj0lPi4uLkAuLi5I
Li4NCiAgZTggZDQgZDkgMDQgMDAgMGYgMGIgNjYtMGYgMWYgNDQgMDAgMDAgNTUgNDggODkgIC4u
Li4uLi5mLi5ELi5VSC4NCiAgZTUgODkgN2QgZjggNDggODkgNzUgZTgtNDggODkgNTUgZjAgODkg
NGQgZmMgY2MgIC4ufS5ILnUuSC5VLi5NLi4NCiBbMGZdMGIgNTUgNDggODkgZTUgNDggOGQtM2Qg
MjggMGMgMDUgMDAgYmUgMDIgMDAgIC4uVUguLkguPSguLi4uLi4JPD09DQogIDAwIDAwIGU4IDYw
IGRjIDA0IDAwIDQ4LTg1IGMwIDc0IDAyIDVkIGMzIDQ4IDhkICAuLi5gLi4uSC4udC5dLkguDQog
IDM1IDMxIDBiIDA1IDAwIDQ4IDhkIDE1LTU5IDBjIDA1IDAwIGJmIDI1IDAwIDAwICA1MS4uLkgu
LlkuLi4uJS4uDQogIDAwIGI5IDA2IDAwIDAwIDAwIGU4IGIyLWZmIGZmIGZmIDU1IDQ4IDg5IGU1
IDQ4ICAuLi4uLi4uLi4uLlVILi5IDQogIDgzIGVjIDIwIGYyIDBmIDExIDU1IGY4LWYyIDBmIDEx
IDQ1IGU4IGYyIDBmIDVjICAuLiAuLi5VLi4uLkUuLi5cDQogIGM4IGYyIDBmIDExIDRkIGYwIDY2
IDBmLTI4IGMyIGYyIDBmIDU5IDA1IDUzIGY0ICAuLi4uTS5mLiguLi5ZLlMuDQogIA0KVGhyZWFk
IDAgbGFzdCBicmFuY2ggcmVnaXN0ZXIgc3RhdGUgbm90IGF2YWlsYWJsZS4NCg0KDQpCaW5hcnkg
SW1hZ2VzOg0KICAgICAgIDB4MTAxZGZmMDAwIC0gICAgICAgIDB4MTAxZTdlZmZmICtvcmcud2Vi
a2l0LldlYktpdFRlc3RSdW5uZXJBcHAgKDEuMCAtIDEuMCkgPEFCNkFDMzAyLTRBRjYtMzg4RS04
MUNGLTU1NkIxQ0M5MUVFNj4gL1VzZXJzL1VTRVIvTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVs
YXRvci9EZXZpY2VzL0U3RUEwODBFLThDQjEtNEQ4RS1CMDUyLTJFNzREODM1QTEyRi9kYXRhL0Nv
bnRhaW5lcnMvQnVuZGxlL0FwcGxpY2F0aW9uLzlCMzM4QkM2LTY0MTYtNEI5Mi04QkM1LUUwQjVG
Njk0RkExNi9XZWJLaXRUZXN0UnVubmVyQXBwLmFwcC9XZWJLaXRUZXN0UnVubmVyQXBwDQogICAg
ICAgMHgxMDFmMzcwMDAgLSAgICAgICAgMHgxMDFmOTBmZmYgK2R5bGRfc2ltICg4NTEuMjgpIDwy
QTkyRkM5OS03MkE5LTM4RUQtOERERC1BRjRDMjUwODAxMjQ+IC9BcHBsaWNhdGlvbnMvWGNvZGUu
YXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFy
eS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGlt
ZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvdXNyL2xpYi9keWxkX3NpbQ0KICAgICAg
IDB4MTAxZmU0MDAwIC0gICAgICAgIDB4MTAyMTA3ZmZmICtsaWJXZWJDb3JlVGVzdFN1cHBvcnQu
ZHlsaWIgKDApIDw4NDZGNUQ2Qi02NTE2LTMzNkMtOTFGNi1FMjNEODUxN0NBNzU+IC9Wb2x1bWVz
L1ZPTFVNRS8qL2xpYldlYkNvcmVUZXN0U3VwcG9ydC5keWxpYg0KICAgICAgIDB4MTAyMjgwMDAw
IC0gICAgICAgIDB4MTAyNTA3ZmZmICBjb20uYXBwbGUuUXVhcnR6Q29yZSAoMS4xMSAtIDkyNy4x
NikgPEYxNDZGMzhGLTA2Q0MtMzVCNS1CMjk3LUU2N0YyNTMxNTZFRD4gL0FwcGxpY2F0aW9ucy9Y
Y29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9M
aWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1y
dW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9GcmFt
ZXdvcmtzL1F1YXJ0ekNvcmUuZnJhbWV3b3JrL1F1YXJ0ekNvcmUNCiAgICAgICAweDEwMjY1YTAw
MCAtICAgICAgICAweDEwMjZkZWZmZiAgY29tLmFwcGxlLmZyYW1ld29yay5JT0tpdCAoMi4wLjIg
LSAxODQ1LjEwMi4xKSA8MUIyNkRGQjYtQ0Q2Mi0zN0FGLUI5NUUtODU0Q0E5RUQyOTIwPiAvQXBw
bGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9T
LnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGlt
ZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9M
aWJyYXJ5L0ZyYW1ld29ya3MvSU9LaXQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvSU9LaXQNCiAgICAg
ICAweDEwMjczNjAwMCAtICAgICAgICAweDEwMjczNmZmZiAgY29tLmFwcGxlLlVJS2l0ICgxLjAg
LSA0MjE4LjEuMTAwKSA8MDE2RjcxMzMtRDc4RS0zNUFELTg3MDMtNDUxQUVEOTRGMDY3PiAvQXBw
bGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9T
LnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGlt
ZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9M
aWJyYXJ5L0ZyYW1ld29ya3MvVUlLaXQuZnJhbWV3b3JrL1VJS2l0DQogICAgICAgMHgxMDI3NDAw
MDAgLSAgICAgICAgMHgxMDI3ZGJmZmYgIGR5bGQgKDg1Mi4yKSA8MENDMTk0MTAtRkQ0My0zOUFF
LUEzMkEtNTAyNzNGODMwM0E0PiAvdXNyL2xpYi9keWxkDQogICAgICAgMHgxMDI4NTgwMDAgLSAg
ICAgICAgMHgxMDNiNjdmZmYgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAoNjEzKyAtIDYxMy4x
LjMrKSA8QzY0RTI4QkMtREQ3MS0zNEI4LTlCOUYtNjQzRTA3RTM3NTEzPiAvVm9sdW1lcy9WT0xV
TUUvKi9KYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsvSmF2YVNjcmlwdENvcmUNCiAgICAgICAweDEw
NDVlMDAwMCAtICAgICAgICAweDEwNGMzN2ZmZiAgY29tLmFwcGxlLkNvcmVHcmFwaGljcyAoMi4w
IC0gMTQ2My40LjEpIDw2MzdFMzZDQS04MjJELTNFNzctQTRBMi03RjA2MkUzMkI3NEU+IC9BcHBs
aWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1Mu
cGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1l
cy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xp
YnJhcnkvRnJhbWV3b3Jrcy9Db3JlR3JhcGhpY3MuZnJhbWV3b3JrL0NvcmVHcmFwaGljcw0KICAg
ICAgIDB4MTA0ZDZiMDAwIC0gICAgICAgIDB4MTA1MGVhZmZmICBjb20uYXBwbGUuSW1hZ2VJTyAo
My4zLjAgLSAyMTMwLjQuNikgPDRGQzAzRDNELTI5QUUtMzhEMS05RjRELTY2MjQ1MjI1ODgzMj4g
L0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhv
bmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1
bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0
ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0ltYWdlSU8uZnJhbWV3b3JrL0ltYWdlSU8NCiAgICAgICAw
eDEwNTJjMzAwMCAtICAgICAgICAweDEwNWM2YWZmZiAgY29tLmFwcGxlLldlYktpdCAoNjEzKyAt
IDYxMy4xLjMrKSA8RDNBRjY2NzYtNDE3RS0zRkU2LTkxMTAtRDYxN0E4NDc2MjU0PiAvVm9sdW1l
cy9WT0xVTUUvKi9XZWJLaXQuZnJhbWV3b3JrL1dlYktpdA0KICAgICAgIDB4MTA3NDM3MDAwIC0g
ICAgICAgIDB4MTA3NzBmZmZmICBjb20uYXBwbGUuRm91bmRhdGlvbiAoNi45IC0gMTc3NS4xMTgu
MTAxKSA8QzJBMTgyODgtNEFBMi0zMTg5LUExQzYtNTk2M0UzNzBERTRDPiAvQXBwbGljYXRpb25z
L1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3Jt
L0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNp
bXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L0Zy
YW1ld29ya3MvRm91bmRhdGlvbi5mcmFtZXdvcmsvRm91bmRhdGlvbg0KICAgICAgIDB4MTA3OWQw
MDAwIC0gICAgICAgIDB4MTA3OWQ4ZmZmICBjb20uYXBwbGUuR3JhcGhpY3NTZXJ2aWNlcyAoMS4w
IC0gMS4wKSA8RTBCNjdGM0YtQzc3My0zNDA4LTk0NjEtMzE5QzZFOTM2NjVFPiAvQXBwbGljYXRp
b25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRm
b3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9T
LnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5
L1ByaXZhdGVGcmFtZXdvcmtzL0dyYXBoaWNzU2VydmljZXMuZnJhbWV3b3JrL0dyYXBoaWNzU2Vy
dmljZXMNCiAgICAgICAweDEwNzllYzAwMCAtICAgICAgICAweDEwN2IyYWZmZiAgY29tLmFwcGxl
LlNlY3VyaXR5ICgxMC4wIC0gNTk3NTQuMTAwLjEwNikgPDI5RTI4MjJGLTVCOTgtM0FGMS1BQTVD
LTc2OUIxNTk3OUUwQj4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVy
L1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxh
dG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9S
dW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1NlY3VyaXR5LmZyYW1ld29yay9T
ZWN1cml0eQ0KICAgICAgIDB4MTA3YzM5MDAwIC0gICAgICAgIDB4MTA3YzZhZmZmICtsaWJvYmpj
LkEuZHlsaWIgKDgyNCkgPDU4M0U2NzQyLURFNTItM0U0MS04NjNDLUNEQzQzQUE3Njc2Nz4gL0Fw
cGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVP
Uy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRp
bWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC91c3IvbGli
L2xpYm9iamMuQS5keWxpYg0KICAgICAgIDB4MTA3YzkyMDAwIC0gICAgICAgIDB4MTA3Y2U0ZmZm
ICtsaWJjKysuMS5keWxpYiAoOTA1LjYpIDxBMERCQ0I4MS1BRTA4LTNGRUItQkNCRS1EMTBEQzhE
NDhCRkI+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9y
bXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9m
aWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJv
b3QvdXNyL2xpYi9saWJjKysuMS5keWxpYg0KICAgICAgIDB4MTA3ZDQyMDAwIC0gICAgICAgIDB4
MTA3ZDQzZmZmICtsaWJTeXN0ZW0uQi5keWxpYiAoMTI5Mi4xMDAuNSkgPEFBRERFMUMwLUFEQTUt
MzM3Ri1CRTBBLTYxMTE2ODA2NjcxQT4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMv
RGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9D
b3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jl
c291cmNlcy9SdW50aW1lUm9vdC91c3IvbGliL2xpYlN5c3RlbS5CLmR5bGliDQogICAgICAgMHgx
MDdkNGQwMDAgLSAgICAgICAgMHgxMDgxNGNmZmYgIGNvbS5hcHBsZS5Db3JlRm91bmRhdGlvbiAo
Ni45IC0gMTc3NS4xMTguMTAxKSA8OUJGQzg1NTYtQUYxNi0zMTFGLTg3NEUtMzc0RkE0ODVGRTJF
PiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQ
aG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMv
UnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5
c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrL0NvcmVGb3Vu
ZGF0aW9uDQogICAgICAgMHgxMDg1MDcwMDAgLSAgICAgICAgMHgxMDg1MWNmZmYgK2xpYmMrK2Fi
aS5keWxpYiAoOTA1LjYpIDwyRTMxRjdEMS0zREY5LTM5OUYtQTk2MC0zNzBCREFDRTI5MEM+IC9B
cHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25l
T1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50
aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvdXNyL2xp
Yi9saWJjKythYmkuZHlsaWINCiAgICAgICAweDEwODUzZTAwMCAtICAgICAgICAweDEwODU1OGZm
ZiArbGliQWNjZXNzaWJpbGl0eS5keWxpYiAoMjg4NS4zNCkgPDE3OUY3MjQ2LTYyMTQtMzQ2Ni1C
MTlBLURDODg3REU3OEY5ND4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxv
cGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2lt
dWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNl
cy9SdW50aW1lUm9vdC91c3IvbGliL2xpYkFjY2Vzc2liaWxpdHkuZHlsaWINCiAgICAgICAweDEw
ODU4YzAwMCAtICAgICAgICAweDEwODc1Y2ZmZiAgY29tLmFwcGxlLkNvcmVUZXh0ICg2NzcuNC4w
LjQgLSA2NzcuNC4wLjQpIDwzQzNGOTY2OS05QkEyLTMzREYtODc5NC0yNkM4MDQxNjkwNUI+IC9B
cHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25l
T1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50
aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVt
L0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlVGV4dC5mcmFtZXdvcmsvQ29yZVRleHQNCiAgICAgICAw
eDEwODg1NTAwMCAtICAgICAgICAweDEwODk0OGZmZiAgY29tLmFwcGxlLk1ldGFsICgyNDQuMTE2
LjEgLSAyNDQuMTE2LjEpIDwxNkVBOUFBQi03NzczLTM1QzUtOTU0NC05QTlDQzVBQUQ2Mjk+IC9B
cHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25l
T1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50
aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVt
L0xpYnJhcnkvRnJhbWV3b3Jrcy9NZXRhbC5mcmFtZXdvcmsvTWV0YWwNCiAgICAgICAweDEwOGIz
ZTAwMCAtICAgICAgICAweDEwOGYwOWZmZiArbGliQU5HTEUtc2hhcmVkLmR5bGliICgwKSA8Rjkz
MjA2N0YtNTExQS0zNzNGLUIyNEEtMDdEN0Y5QTUyQzIxPiAvVm9sdW1lcy9WT0xVTUUvKi9saWJB
TkdMRS1zaGFyZWQuZHlsaWINCiAgICAgICAweDEwOTM5MjAwMCAtICAgICAgICAweDEwOWJiZGZm
ZiArbGlid2VicnRjLmR5bGliICgwKSA8RDk0OUI5RjQtOTQyQi0zMjc5LTk5NEUtRDA0OEZFQUQ2
QTAxPiAvVm9sdW1lcy9WT0xVTUUvKi9saWJ3ZWJydGMuZHlsaWINCiAgICAgICAweDEwYTFmNjAw
MCAtICAgICAgICAweDEwYTY4NmZmZiAgY29tLmFwcGxlLkNGTmV0d29yayAoMTIzNyAtIDEyMzcp
IDw4OTRFOEQyQS1BMTM0LTM4N0ItQTA2QS02RUQxQTI1REYwN0U+IC9BcHBsaWNhdGlvbnMvWGNv
ZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGli
cmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVu
dGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvRnJhbWV3
b3Jrcy9DRk5ldHdvcmsuZnJhbWV3b3JrL0NGTmV0d29yaw0KICAgICAgIDB4MTBhN2E2MDAwIC0g
ICAgICAgIDB4MTBjOWQ5ZmZmICBjb20uYXBwbGUuV2ViQ29yZSAoNjEzKyAtIDYxMy4xLjMrKSA8
N0Y1NjVFRjAtRDg5Ri0zODQ3LUFDMjktRTVCMjFGRURCQTE2PiAvVm9sdW1lcy9WT0xVTUUvKi9X
ZWJDb3JlLmZyYW1ld29yay9XZWJDb3JlDQogICAgICAgMHgxMGYyOTYwMDAgLSAgICAgICAgMHgx
MGYyYmJmZmYgK2xpYk1vYmlsZUdlc3RhbHQuZHlsaWIgKDk3OC4xMDAuMzcpIDw0QkU2RjZFQy1E
MDA3LTNBMjItQTRFNS0xQzU3NEI5RkMwODc+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRl
bnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9w
ZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50
cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvdXNyL2xpYi9saWJNb2JpbGVHZXN0YWx0LmR5bGliDQog
ICAgICAgMHgxMGYzMWUwMDAgLSAgICAgICAgMHgxMGYzMmRmZmYgIGNvbS5hcHBsZS5hY2Nlc3Np
YmlsaXR5LkFYQ29yZVV0aWxpdGllcyAoMS4wIC0gMSkgPDdDQzAyMzFFLTMxN0ItM0NDNi1CRDZG
LTRFNDI1ODdFRUEzQz4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVy
L1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxh
dG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9S
dW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9BWENvcmVVdGlsaXRp
ZXMuZnJhbWV3b3JrL0FYQ29yZVV0aWxpdGllcw0KICAgICAgIDB4MTBmMzRlMDAwIC0gICAgICAg
IDB4MTBmMzU5ZmZmICBjb20uYXBwbGUuTWVkaWFBY2Nlc3NpYmlsaXR5ICgxLjAgLSAxMzApIDxC
Mjk2MEFGRi1GRDk2LTNCNTktQkJFQi0wNjIxMEMyOTMyRUQ+IC9BcHBsaWNhdGlvbnMvWGNvZGUu
YXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFy
eS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGlt
ZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jr
cy9NZWRpYUFjY2Vzc2liaWxpdHkuZnJhbWV3b3JrL01lZGlhQWNjZXNzaWJpbGl0eQ0KICAgICAg
IDB4MTBmMzZmMDAwIC0gICAgICAgIDB4MTBmMzZmZmZmICBjb20uYXBwbGUuU29mdExpbmtpbmcg
KDEuMCAtIDEpIDxFRUYwNDlFOC04N0I2LTM5NTgtOUQ4NS1CMTg4NzRFQkE5NjE+IC9BcHBsaWNh
dGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxh
dGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9p
T1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJh
cnkvUHJpdmF0ZUZyYW1ld29ya3MvU29mdExpbmtpbmcuZnJhbWV3b3JrL1NvZnRMaW5raW5nDQog
ICAgICAgMHgxMGYzNzcwMDAgLSAgICAgICAgMHgxMGYzZTZmZmYgIGNvbS5hcHBsZS5TeXN0ZW1D
b25maWd1cmF0aW9uICgxLjIwIC0gMS4yMCkgPDZBMzNGRTIxLTI2NTktMzlCNi04NDQ2LTg2MUJF
RjkxODJFRT4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRm
b3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1By
b2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1l
Um9vdC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1N5c3RlbUNvbmZpZ3VyYXRpb24uZnJhbWV3
b3JrL1N5c3RlbUNvbmZpZ3VyYXRpb24NCiAgICAgICAweDEwZjQyZDAwMCAtICAgICAgICAweDEw
ZjQzZGZmZiArbGliYnNtLjAuZHlsaWIgKDY4LjQwLjEpIDwzNEZGRTg3Qi00Q0NCLTNDOTMtQkQ1
OC1FMDVEOUM3Qzc0MjY+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Bl
ci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVs
YXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMv
UnVudGltZVJvb3QvdXNyL2xpYi9saWJic20uMC5keWxpYg0KICAgICAgIDB4MTBmNDRiMDAwIC0g
ICAgICAgIDB4MTBmYTA2ZmZmICtsaWJuZXR3b3JrLmR5bGliICgyMjg4LjEwMC4xMTEpIDwxMThC
RUYwMi1GQkZFLTNCOTgtQTUxMC00OTkxNDBEOEYwODQ+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBw
L0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9E
ZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9D
b250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvdXNyL2xpYi9saWJuZXR3b3JrLmR5bGliDQog
ICAgICAgMHgxMGZiODEwMDAgLSAgICAgICAgMHgxMGZkZGFmZmYgK2xpYmljdWNvcmUuQS5keWxp
YiAoNjYxMTIpIDwzRjEwQjRFRi0zMEE1LTMyRTUtQTY5Ni04OUZDMjEyRjZCMzA+IC9BcHBsaWNh
dGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxh
dGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9p
T1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvdXNyL2xpYi9saWJp
Y3Vjb3JlLkEuZHlsaWINCiAgICAgICAweDEwZmVlNzAwMCAtICAgICAgICAweDEwZmVlYmZmZiAr
bGliY2FjaGUuZHlsaWIgKDgzKSA8RDJBNzlCNjgtREE4Ri0zQjBFLThGODItNURDNkU3QTE4NkJE
PiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQ
aG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMv
UnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L3Vz
ci9saWIvc3lzdGVtL2xpYmNhY2hlLmR5bGliDQogICAgICAgMHgxMGZlZjQwMDAgLSAgICAgICAg
MHgxMGZlZmZmZmYgK2xpYmNvbW1vbkNyeXB0by5keWxpYiAoNjAxNzguMTAwLjEpIDxBNDFFMjYy
MC1EMzcyLTNFNkUtQUU3MC0xNDlCRTc3QTlERTg+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0Nv
bnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZl
bG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250
ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvdXNyL2xpYi9zeXN0ZW0vbGliY29tbW9uQ3J5cHRv
LmR5bGliDQogICAgICAgMHgxMGZmMTMwMDAgLSAgICAgICAgMHgxMGZmMWFmZmYgK2xpYmNvbXBp
bGVyX3J0LmR5bGliICgxMDIuMykgPDY0OEY4NjhGLTgzQzgtMzVBQi05REYxLTMxMEZBNzNCMzU0
RT4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9p
UGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVz
L1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC91
c3IvbGliL3N5c3RlbS9saWJjb21waWxlcl9ydC5keWxpYg0KICAgICAgIDB4MTBmZjI3MDAwIC0g
ICAgICAgIDB4MTBmZjMwZmZmICtsaWJjb3B5ZmlsZS5keWxpYiAoMTczLjQwLjIpIDwyNERCN0Y5
Ni1FNjZELTNEOUEtQkQzMy0wMDZEMzA2NjU1MzA+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0Nv
bnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZl
bG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250
ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvdXNyL2xpYi9zeXN0ZW0vbGliY29weWZpbGUuZHls
aWINCiAgICAgICAweDEwZmYzYjAwMCAtICAgICAgICAweDEwZmZkOGZmZiArbGliY29yZWNyeXB0
by5keWxpYiAoMTAwMC4xMDAuMzgpIDw5RTFENkVBRS05NEEzLTM3RDAtOUVCRi04QzE3QjEwRkMw
NzY+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMv
aVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxl
cy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3Qv
dXNyL2xpYi9zeXN0ZW0vbGliY29yZWNyeXB0by5keWxpYg0KICAgICAgIDB4MTBmZmZmMDAwIC0g
ICAgICAgIDB4MTEwMDQzZmZmICtsaWJkaXNwYXRjaC5keWxpYiAoMTI3MS4xMDAuNSkgPDM2Q0JC
MTFDLUYwRTMtM0QwRS04MjFGLTEwNzVGNTE3RTY4QT4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAv
Q29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0Rl
dmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0Nv
bnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC91c3IvbGliL3N5c3RlbS9saWJkaXNwYXRjaC5k
eWxpYg0KICAgICAgIDB4MTEwMDhiMDAwIC0gICAgICAgIDB4MTEwMGMxZmZmICtsaWJkeWxkLmR5
bGliICg4NTEuMjgpIDw3NUUwNDlDMS02RTBDLTMwMTUtQUNCQi0zMzlGRDFFNzkwNzc+IC9BcHBs
aWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1Mu
cGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1l
cy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvdXNyL2xpYi9z
eXN0ZW0vbGliZHlsZC5keWxpYg0KICAgICAgIDB4MTEwMGYwMDAwIC0gICAgICAgIDB4MTEwMGYw
ZmZmICtsaWJsYXVuY2guZHlsaWIgKDIwMzguMTAwLjQ4KSA8MjUzMkFDQkItODM4NS0zRjM5LUIw
MzctRDc3Q0JFQTU3Mzg0PiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9w
ZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11
bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2Vz
L1J1bnRpbWVSb290L3Vzci9saWIvc3lzdGVtL2xpYmxhdW5jaC5keWxpYg0KICAgICAgIDB4MTEw
MGY5MDAwIC0gICAgICAgIDB4MTEwMGZlZmZmICtsaWJtYWNoby5keWxpYiAoOTgwKSA8M0YwRTI5
NzQtNDlDQy0zQkNDLTlBNDEtRDA2QkJCREQ0OTBDPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9D
b250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2
ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29u
dGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L3Vzci9saWIvc3lzdGVtL2xpYm1hY2hvLmR5bGli
DQogICAgICAgMHgxMTAxMDgwMDAgLSAgICAgICAgMHgxMTAxMDlmZmYgK2xpYnJlbW92ZWZpbGUu
ZHlsaWIgKDQ5LjEwMi4xKSA8RTNGRTFCMEItQURFQy0zNUM0LTk5NzctOTdDNEM5M0Q5MjJGPiAv
QXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9u
ZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVu
dGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L3Vzci9s
aWIvc3lzdGVtL2xpYnJlbW92ZWZpbGUuZHlsaWINCiAgICAgICAweDExMDExMjAwMCAtICAgICAg
ICAweDExMDEyOGZmZiArbGlic3lzdGVtX2FzbC5keWxpYiAoMzg1KSA8NDQyQkY2NDctOTIyMC0z
RDFFLUE3NDEtRjQyOUE1RTQxNjMyPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9E
ZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0Nv
cmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVz
b3VyY2VzL1J1bnRpbWVSb290L3Vzci9saWIvc3lzdGVtL2xpYnN5c3RlbV9hc2wuZHlsaWINCiAg
ICAgICAweDExMDEzYTAwMCAtICAgICAgICAweDExMDEzYmZmZiArbGlic3lzdGVtX2Jsb2Nrcy5k
eWxpYiAoNzgpIDxEMkUwMEFDRi0xNENCLTNENEItODRBRS1CMkREMDY4NzNDQUI+IC9BcHBsaWNh
dGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxh
dGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9p
T1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvdXNyL2xpYi9zeXN0
ZW0vbGlic3lzdGVtX2Jsb2Nrcy5keWxpYg0KICAgICAgIDB4MTEwMTQ2MDAwIC0gICAgICAgIDB4
MTEwMWM4ZmZmICtsaWJzeXN0ZW1fYy5keWxpYiAoMTQzOS4xMDAuMykgPEJCMTA0M0ZDLUI0QUYt
MzNFNC1BMUY2LTQ5MDRFQzJFNTRGOD4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMv
RGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9D
b3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jl
c291cmNlcy9SdW50aW1lUm9vdC91c3IvbGliL3N5c3RlbS9saWJzeXN0ZW1fYy5keWxpYg0KICAg
ICAgIDB4MTEwMWY4MDAwIC0gICAgICAgIDB4MTEwMWZhZmZmICtsaWJzeXN0ZW1fY29sbGVjdGlv
bnMuZHlsaWIgKDE0MzkuMTAwLjMpIDwxMkJDRjczOC1GNzc2LTNERTEtOTU4My00RjdBMUEyNEFG
RDk+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMv
aVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxl
cy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3Qv
dXNyL2xpYi9zeXN0ZW0vbGlic3lzdGVtX2NvbGxlY3Rpb25zLmR5bGliDQogICAgICAgMHgxMTAy
MDUwMDAgLSAgICAgICAgMHgxMTAyMDhmZmYgK2xpYnN5c3RlbV9jb25maWd1cmF0aW9uLmR5bGli
ICgxMTA5LjEwMC40KSA8QUQzNTVEMkEtMTIyOS0zQzM5LUI1QTEtMkQ5QkQxOTc0NDJDPiAvQXBw
bGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9T
LnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGlt
ZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L3Vzci9saWIv
c3lzdGVtL2xpYnN5c3RlbV9jb25maWd1cmF0aW9uLmR5bGliDQogICAgICAgMHgxMTAyMTIwMDAg
LSAgICAgICAgMHgxMTAyMjFmZmYgK2xpYnN5c3RlbV9jb250YWluZXJtYW5hZ2VyLmR5bGliICgz
MTguMTAwLjQpIDxBNzUxNzgyMy02M0MwLTNCNjQtOTU4My03NzZEQkU4ODBDRkU+IC9BcHBsaWNh
dGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxh
dGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9p
T1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvdXNyL2xpYi9zeXN0
ZW0vbGlic3lzdGVtX2NvbnRhaW5lcm1hbmFnZXIuZHlsaWINCiAgICAgICAweDExMDIzMzAwMCAt
ICAgICAgICAweDExMDIzNGZmZiArbGlic3lzdGVtX2NvcmVzZXJ2aWNlcy5keWxpYiAoMTI1LjIp
IDwyQ0UwQjY4NC05QjA0LTMzQzgtQUU4QS0xMUVEMkQ3QjFDMEI+IC9BcHBsaWNhdGlvbnMvWGNv
ZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGli
cmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVu
dGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvdXNyL2xpYi9zeXN0ZW0vbGlic3lz
dGVtX2NvcmVzZXJ2aWNlcy5keWxpYg0KICAgICAgIDB4MTEwMjNkMDAwIC0gICAgICAgIDB4MTEw
MjQ0ZmZmICtsaWJzeXN0ZW1fZGFyd2luLmR5bGliICgxNDM5LjEwMC4zKSA8MTQ5QUIyODgtNDVD
NC0zQkQ1LUI1QkItOTU4QzIwMjY2MkUxPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50
cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVy
L0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMv
UmVzb3VyY2VzL1J1bnRpbWVSb290L3Vzci9saWIvc3lzdGVtL2xpYnN5c3RlbV9kYXJ3aW4uZHls
aWINCiAgICAgICAweDExMDI1NTAwMCAtICAgICAgICAweDExMDI1Y2ZmZiArbGlic3lzdGVtX2Ru
c3NkLmR5bGliICgxMzEwLjEwMC4xMCkgPDVBMEQ1NzE4LTEwMTktMzM3My05MzJCLTRGNzlEOEIx
NzlFQT4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jt
cy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2Zp
bGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9v
dC91c3IvbGliL3N5c3RlbS9saWJzeXN0ZW1fZG5zc2QuZHlsaWINCiAgICAgICAweDExMDI2NzAw
MCAtICAgICAgICAweDExMDI2OWZmZiArbGlic3lzdGVtX2ZlYXR1cmVmbGFncy5keWxpYiAoMjgu
NjAuMSkgPENGQTE2MzRBLTZEMDgtMzZFOS04ODhDLUE1RTE4NTUzQUE4QT4gL0FwcGxpY2F0aW9u
cy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9y
bS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5z
aW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC91c3IvbGliL3N5c3RlbS9s
aWJzeXN0ZW1fZmVhdHVyZWZsYWdzLmR5bGliDQogICAgICAgMHgxMTAyNzIwMDAgLSAgICAgICAg
MHgxMTAyOTZmZmYgK2xpYnN5c3RlbV9pbmZvLmR5bGliICg1NDIuNDAuMykgPDZBN0YwNkExLUE2
ODEtMzUwMS05MjJCLTJFNTM4OThBOTJENT4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVu
dHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Bl
ci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRz
L1Jlc291cmNlcy9SdW50aW1lUm9vdC91c3IvbGliL3N5c3RlbS9saWJzeXN0ZW1faW5mby5keWxp
Yg0KICAgICAgIDB4MTEwMmFmMDAwIC0gICAgICAgIDB4MTEwMmYzZmZmICtsaWJzeXN0ZW1fbS5k
eWxpYiAoMzE4Ni4xMDAuMykgPDAwNjYxNTlDLThBN0QtM0ExQy04MTc3LTM5QkVGOEU0MTZCNT4g
L0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhv
bmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1
bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC91c3Iv
bGliL3N5c3RlbS9saWJzeXN0ZW1fbS5keWxpYg0KICAgICAgIDB4MTEwMzAyMDAwIC0gICAgICAg
IDB4MTEwMzJjZmZmICtsaWJzeXN0ZW1fbWFsbG9jLmR5bGliICgzMTcuMTAwLjkpIDwyRjdGNjJD
RC0yQ0E0LTM1QzQtQkJEQy0xMzIxOTA2NjUzREQ+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0Nv
bnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZl
bG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250
ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvdXNyL2xpYi9zeXN0ZW0vbGlic3lzdGVtX21hbGxv
Yy5keWxpYg0KICAgICAgIDB4MTEwMzQ4MDAwIC0gICAgICAgIDB4MTEwMzUzZmZmICtsaWJzeXN0
ZW1fbm90aWZ5LmR5bGliICgyNzkuNDAuNCkgPDkzNkZDQjM4LUQ0REMtMzlGMy1CMEUyLThEREJF
OTM5RTUzQT4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRm
b3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1By
b2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1l
Um9vdC91c3IvbGliL3N5c3RlbS9saWJzeXN0ZW1fbm90aWZ5LmR5bGliDQogICAgICAgMHgxMTAz
NWUwMDAgLSAgICAgICAgMHgxMTAzNWVmZmYgK2xpYnN5c3RlbV9wcm9kdWN0X2luZm9fZmlsdGVy
LmR5bGliICg4LjQwLjEpIDwwQ0VERkIzNy1CNDY4LTMzNUEtOURCQy1CQjE1OEUyRDJDQzI+IC9B
cHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25l
T1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50
aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvdXNyL2xp
Yi9zeXN0ZW0vbGlic3lzdGVtX3Byb2R1Y3RfaW5mb19maWx0ZXIuZHlsaWINCiAgICAgICAweDEx
MDM2NDAwMCAtICAgICAgICAweDExMDM2N2ZmZiArbGlic3lzdGVtX3NhbmRib3guZHlsaWIgKDE0
NDEuMTAyLjEpIDxENTk2MTRBMy1CMkE3LTNFOEMtOUExQS0wQjk5QTBEODQ0NzQ+IC9BcHBsaWNh
dGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxh
dGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9p
T1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvdXNyL2xpYi9zeXN0
ZW0vbGlic3lzdGVtX3NhbmRib3guZHlsaWINCiAgICAgICAweDExMDM3MjAwMCAtICAgICAgICAw
eDExMDM3M2ZmZiArbGlic3lzdGVtX3NpbV9rZXJuZWwuZHlsaWIgKDIyNy4xMDAuMikgPDU3OENF
QTU0LUQ3NzAtMzc1Qi05NTBCLTJEMzVFRjdFNkNFOD4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAv
Q29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0Rl
dmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0Nv
bnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC91c3IvbGliL3N5c3RlbS9saWJzeXN0ZW1fc2lt
X2tlcm5lbC5keWxpYg0KICAgICAgIDB4MTEwMzdkMDAwIC0gICAgICAgIDB4MTEwMzdmZmZmICts
aWJzeXN0ZW1fc2ltX3BsYXRmb3JtLmR5bGliICgyMjcuMTAwLjIpIDwyQjRERkEzRi1FMzUwLTNB
NEUtODE5OS04NUEzNUM2NDJDNUQ+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0Rl
dmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29y
ZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNv
dXJjZXMvUnVudGltZVJvb3QvdXNyL2xpYi9zeXN0ZW0vbGlic3lzdGVtX3NpbV9wbGF0Zm9ybS5k
eWxpYg0KICAgICAgIDB4MTEwMzg4MDAwIC0gICAgICAgIDB4MTEwMzg4ZmZmICtsaWJzeXN0ZW1f
c2ltX3B0aHJlYWQuZHlsaWIgKDIyNy4xMDAuMikgPEFBMkRERDA0LTAxRkUtMzg4NC1BOTkyLTZB
MjY4ODQ5QzBFOD4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1Bs
YXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9y
L1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50
aW1lUm9vdC91c3IvbGliL3N5c3RlbS9saWJzeXN0ZW1fc2ltX3B0aHJlYWQuZHlsaWINCiAgICAg
ICAweDExMDM5MTAwMCAtICAgICAgICAweDExMDNhNmZmZiArbGlic3lzdGVtX3RyYWNlLmR5bGli
ICgxMjc3LjEwMC4yMSkgPDcyMTFFQjA5LUFBRTItMzJERS05ODRFLTEzNTk1RUNCOTQwOT4gL0Fw
cGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVP
Uy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRp
bWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC91c3IvbGli
L3N5c3RlbS9saWJzeXN0ZW1fdHJhY2UuZHlsaWINCiAgICAgICAweDExMDNiYzAwMCAtICAgICAg
ICAweDExMDNjM2ZmZiArbGlidW53aW5kLmR5bGliICgyMDEpIDw4RTFDQjIwMC0zQThGLTNCRDct
QTA2OC03QkI5MTUyQjM5NDY+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVs
b3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNp
bXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJj
ZXMvUnVudGltZVJvb3QvdXNyL2xpYi9zeXN0ZW0vbGlidW53aW5kLmR5bGliDQogICAgICAgMHgx
MTAzY2YwMDAgLSAgICAgICAgMHgxMTA0MDFmZmYgK2xpYnhwYy5keWxpYiAoMjAzOC4xMDAuNDgp
IDw0NTQwNTNDQS1CNjkwLTNCOTktQkUzMS0yMzY5QjA0RUE0OTM+IC9BcHBsaWNhdGlvbnMvWGNv
ZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGli
cmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVu
dGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvdXNyL2xpYi9zeXN0ZW0vbGlieHBj
LmR5bGliDQogICAgICAgMHgxMTA0MzcwMDAgLSAgICAgICAgMHgxMTA0MzdmZmYgK2xpYnN5c3Rl
bV9zaW1fcHRocmVhZF9ob3N0LmR5bGliICgyMjcuMTAwLjIpIDw0MDc2NEM4OS0zMjcxLTNEQzEt
QkM0Qi0xRjNEMkZDRUM2RjY+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVs
b3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNp
bXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJj
ZXMvUnVudGltZVJvb3QvdXNyL2xpYi9zeXN0ZW0vbGlic3lzdGVtX3NpbV9wdGhyZWFkX2hvc3Qu
ZHlsaWINCiAgICAgICAweDExMDQzZTAwMCAtICAgICAgICAweDExMDQzZWZmZiArbGlic3lzdGVt
X3NpbV9wbGF0Zm9ybV9ob3N0LmR5bGliICgyMjcuMTAwLjIpIDxDQkEyMUYyQS1GQzRELTM5Q0It
QjhBQS1DOTBGQ0YzOTlCNTk+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVs
b3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNp
bXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJj
ZXMvUnVudGltZVJvb3QvdXNyL2xpYi9zeXN0ZW0vbGlic3lzdGVtX3NpbV9wbGF0Zm9ybV9ob3N0
LmR5bGliDQogICAgICAgMHgxMTA0NDYwMDAgLSAgICAgICAgMHgxMTA0NDZmZmYgK2xpYnN5c3Rl
bV9zaW1fa2VybmVsX2hvc3QuZHlsaWIgKDIyNy4xMDAuMikgPDM0OEVFMDYwLTVCQkQtM0U2NC1C
OUQ1LTAyNDg1NTM3RDI1Nz4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxv
cGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2lt
dWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNl
cy9SdW50aW1lUm9vdC91c3IvbGliL3N5c3RlbS9saWJzeXN0ZW1fc2ltX2tlcm5lbF9ob3N0LmR5
bGliDQogICAgICAgMHgxMTA0NGQwMDAgLSAgICAgICAgMHgxMTA0N2NmZmYgIGxpYnN5c3RlbV9r
ZXJuZWwuZHlsaWIgKDcxOTUuMTQxLjYpIDw3ODI4OUFBRS02MUI1LTMzOUYtQTQ4NS04ODE5QkMy
Mzg4RjI+IC91c3IvbGliL3N5c3RlbS9saWJzeXN0ZW1fa2VybmVsLmR5bGliDQogICAgICAgMHgx
MTA0YTkwMDAgLSAgICAgICAgMHgxMTA0YjRmZmYgIGxpYnN5c3RlbV9wbGF0Zm9ybS5keWxpYiAo
MjU0LjgwLjIpIDxFRjUyRDU2OS0wOUY1LTMyRTEtQjFCMy0zNEUyQ0E1NUEwMTc+IC91c3IvbGli
L3N5c3RlbS9saWJzeXN0ZW1fcGxhdGZvcm0uZHlsaWINCiAgICAgICAweDExMDRjZDAwMCAtICAg
ICAgICAweDExMDRkOGZmZiAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgKDQ1NC4xMjAuMikgPDEy
NjhGRjJELUE1MTMtM0I1MS1CQTY1LUFGMkZGNTc4OUREQj4gL3Vzci9saWIvc3lzdGVtL2xpYnN5
c3RlbV9wdGhyZWFkLmR5bGliDQogICAgICAgMHgxMTA0ZjEwMDAgLSAgICAgICAgMHgxMTA1MDNm
ZmYgK2xpYnouMS5keWxpYiAoNzYpIDw5RjdCQjY2Ni02RDBCLTNCRjYtODkwMS1FMzc4NDY5RDk0
NDI+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMv
aVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxl
cy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3Qv
dXNyL2xpYi9saWJ6LjEuZHlsaWINCiAgICAgICAweDExMDUwZDAwMCAtICAgICAgICAweDExMDUw
ZWZmZiArbGliY29yZXRsc19jZmhlbHBlcnMuZHlsaWIgKDE2OS4xMDAuMSkgPDdFMDgyNzMyLUQz
NkYtMzkxNC04ODc1LUM4NkZFRjlCNDZFQj4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVu
dHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Bl
ci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRz
L1Jlc291cmNlcy9SdW50aW1lUm9vdC91c3IvbGliL2xpYmNvcmV0bHNfY2ZoZWxwZXJzLmR5bGli
DQogICAgICAgMHgxMTA1MTgwMDAgLSAgICAgICAgMHgxMTA1MmZmZmYgK2xpYmFwcGxlX25naHR0
cDIuZHlsaWIgKDEuNDEpIDxCN0RBNTgzQS1FRjIwLTM1QUYtQjM0QS05QkI1MzFDMjJEMjQ+IC9B
cHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25l
T1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50
aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvdXNyL2xp
Yi9saWJhcHBsZV9uZ2h0dHAyLmR5bGliDQogICAgICAgMHgxMTA1M2QwMDAgLSAgICAgICAgMHgx
MTA2ZDJmZmYgK2xpYnNxbGl0ZTMuZHlsaWIgKDMyMS4zKSA8NTY4RjdDMTMtQzIwMS0zQjAzLUE2
Q0EtRTU1N0JEMkY3NDBFPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9w
ZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11
bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2Vz
L1J1bnRpbWVSb290L3Vzci9saWIvbGlic3FsaXRlMy5keWxpYg0KICAgICAgIDB4MTEwNzBkMDAw
IC0gICAgICAgIDB4MTEwNzI5ZmZmICBjb20uYXBwbGUuU2VjdXJpdHlGb3VuZGF0aW9uICgxLjAg
LSAxKSA8MzBGMDVDREYtODBBMy0zMzQ2LTkwRDQtOEM5RDlFRDFCRjFCPiAvQXBwbGljYXRpb25z
L1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3Jt
L0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNp
bXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L1By
aXZhdGVGcmFtZXdvcmtzL1NlY3VyaXR5Rm91bmRhdGlvbi5mcmFtZXdvcmsvU2VjdXJpdHlGb3Vu
ZGF0aW9uDQogICAgICAgMHgxMTA3NzUwMDAgLSAgICAgICAgMHgxMTA3OGRmZmYgIGNvbS5hcHBs
ZS5Qcm90b2NvbEJ1ZmZlciAoMSAtIDI4NS4zNC4xMC4yMC4xKSA8MzJCQTIyRUItRkMyMy0zRUUw
LUFFNzktMUQwOTg1QkIzRTdDPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZl
bG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVT
aW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3Vy
Y2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1Byb3RvY29s
QnVmZmVyLmZyYW1ld29yay9Qcm90b2NvbEJ1ZmZlcg0KICAgICAgIDB4MTEwN2FiMDAwIC0gICAg
ICAgIDB4MTEwN2MxZmZmICtsaWJjb3JldGxzLmR5bGliICgxNjkuMTAwLjEpIDw0QUIyNTZDQy1D
Q0UxLTNCNUUtQTlBQy1DNTgzNUFCNzU4Qzk+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRl
bnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9w
ZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50
cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvdXNyL2xpYi9saWJjb3JldGxzLmR5bGliDQogICAgICAg
MHgxMTA3ZDEwMDAgLSAgICAgICAgMHgxMTA4MTZmZmYgIGNvbS5hcHBsZS5Db3JlQXV0b0xheW91
dCAoMS4wIC0gMjApIDxCMjkzNDZBMC1BRURBLTM0N0ItQjcwNy0wOEZDQUU2MDBGNzY+IC9BcHBs
aWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1Mu
cGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1l
cy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xp
YnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQ29yZUF1dG9MYXlvdXQuZnJhbWV3b3JrL0NvcmVBdXRv
TGF5b3V0DQogICAgICAgMHgxMTA4NWIwMDAgLSAgICAgICAgMHgxMTA4NzJmZmYgK2xpYmNvbXBy
ZXNzaW9uLmR5bGliICg5Ni4xMDAuNykgPENGNzZDNUQyLUIxNDktM0UwRS04NkVDLTM0QTE0MTI3
MDExQT4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jt
cy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2Zp
bGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9v
dC91c3IvbGliL2xpYmNvbXByZXNzaW9uLmR5bGliDQogICAgICAgMHgxMTA4N2UwMDAgLSAgICAg
ICAgMHgxMTA4ZWZmZmYgK2xpYmFyY2hpdmUuMi5keWxpYiAoODMuMTAwLjIpIDw4NkNGNEZBQi00
NjkyLTMwNjEtQjJBOS0wRjNBNjk0OUU2QjU+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRl
bnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9w
ZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50
cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvdXNyL2xpYi9saWJhcmNoaXZlLjIuZHlsaWINCiAgICAg
ICAweDExMDkwYTAwMCAtICAgICAgICAweDExMDllY2ZmZiArbGlieG1sMi4yLmR5bGliICgzNC45
KSA8OEJDQTI1MjktNTZFNC0zQ0UwLTkwQ0EtRjRDMEU0QjJFRjlBPiAvQXBwbGljYXRpb25zL1hj
b2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xp
YnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1
bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L3Vzci9saWIvbGlieG1sMi4yLmR5
bGliDQogICAgICAgMHgxMTBhMzIwMDAgLSAgICAgICAgMHgxMTBhMzNmZmYgK2xpYmxhbmdpZC5k
eWxpYiAoMTM2LjEpIDwxREVFQTkzMy03N0IyLTMxQzAtQUE2Ni1DRERDNjJERjBGRDM+IC9BcHBs
aWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1Mu
cGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1l
cy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvdXNyL2xpYi9s
aWJsYW5naWQuZHlsaWINCiAgICAgICAweDExMGEzYzAwMCAtICAgICAgICAweDExMGE2YWZmZiAr
bGliQ1JGU3VpdGUuZHlsaWIgKDUwKSA8MkIwREYxQTEtOEE3Qy0zNkExLTkwRTMtMUY3OUY3RjQz
RjhFPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1z
L2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmls
ZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290
L3Vzci9saWIvbGliQ1JGU3VpdGUuZHlsaWINCiAgICAgICAweDExMGE4NjAwMCAtICAgICAgICAw
eDExMGE5ZWZmZiArbGlibHptYS41LmR5bGliICgxNikgPEQwRDRFODBBLTlEQkEtMzk0OS04MTlE
LTI4REM4NDAxQUJDRD4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVy
L1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxh
dG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9S
dW50aW1lUm9vdC91c3IvbGliL2xpYmx6bWEuNS5keWxpYg0KICAgICAgIDB4MTEwYWFhMDAwIC0g
ICAgICAgIDB4MTEwYWI2ZmZmICtsaWJiejIuMS4wLmR5bGliICg0NCkgPDFCN0QxQTIxLTA4REEt
MzE5MS04RTdGLTIyNzkyRDhCMzExOT4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMv
RGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9D
b3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jl
c291cmNlcy9SdW50aW1lUm9vdC91c3IvbGliL2xpYmJ6Mi4xLjAuZHlsaWINCiAgICAgICAweDEx
MGFiZjAwMCAtICAgICAgICAweDExMGJhZmZmZiArbGliaWNvbnYuMi5keWxpYiAoNTkpIDwyOTJD
NEI0RC1GNzFGLTMxOTgtOTlERi0yQTg3Q0U0OTVFRDI+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBw
L0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9E
ZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9D
b250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvdXNyL2xpYi9saWJpY29udi4yLmR5bGliDQog
ICAgICAgMHgxMTBiYzUwMDAgLSAgICAgICAgMHgxMTBiYzVmZmYgK2xpYmNoYXJzZXQuMS5keWxp
YiAoNTkpIDwxQzM4NEI3RC0xRkZDLTNCNzAtOUVDQy1CMkI0MjNFRDM3MEQ+IC9BcHBsaWNhdGlv
bnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZv
cm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Mu
c2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvdXNyL2xpYi9saWJjaGFy
c2V0LjEuZHlsaWINCiAgICAgICAweDExMGJjZDAwMCAtICAgICAgICAweDExMGJkYmZmZiArbGli
cGVyZmNoZWNrLmR5bGliICg0MSkgPDFERkVFMEYyLTAxRjktMzJFQy04N0M2LTRGMzhCNzI5NzY0
Qj4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9p
UGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVz
L1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC91
c3IvbGliL2xpYnBlcmZjaGVjay5keWxpYg0KICAgICAgIDB4MTEwYmU5MDAwIC0gICAgICAgIDB4
MTEwYmY2ZmZmICBjb20uYXBwbGUucGVyZmRhdGEgKDEuMCAtIDY3LjQwLjEpIDw2NzMxMjc3Ni0y
REUwLTNEQTQtQUEwMS0xM0FGOUY2N0U4MjU+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRl
bnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9w
ZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50
cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3Mv
cGVyZmRhdGEuZnJhbWV3b3JrL3BlcmZkYXRhDQogICAgICAgMHgxMTBjMTEwMDAgLSAgICAgICAg
MHgxMTBjMWRmZmYgIGNvbS5hcHBsZS5JT1N1cmZhY2UgKDI5MC43IC0gMjkwLjcpIDwyQkZGMjYw
Qy05QzY4LTNDMzctOTM5QS01QUU2RjNCRDA5NDM+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0Nv
bnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZl
bG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250
ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9JT1N1
cmZhY2UuZnJhbWV3b3JrL0lPU3VyZmFjZQ0KICAgICAgIDB4MTEwYzM4MDAwIC0gICAgICAgIDB4
MTEwYzM4ZmZmICBjb20uYXBwbGUuQWNjZWxlcmF0ZSAoMS4xMSAtIEFjY2VsZXJhdGUgMS4xMSkg
PDgyQUNBNDdGLTc4MDAtMzI0MS04NDYxLThDRERDN0I3N0Q4OD4gL0FwcGxpY2F0aW9ucy9YY29k
ZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJy
YXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50
aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdv
cmtzL0FjY2VsZXJhdGUuZnJhbWV3b3JrL0FjY2VsZXJhdGUNCiAgICAgICAweDExMGMzZTAwMCAt
ICAgICAgICAweDExMGNmY2ZmZiAgY29tLmFwcGxlLkNvbG9yU3luYyAoNC4xMy4wIC0gMzQ3My40
LjEpIDxFRTk1NDFERi1FNkFCLTM1MkYtQjQ1Qy0xNERENEZGQUYxMUM+IC9BcHBsaWNhdGlvbnMv
WGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0v
TGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2lt
cnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvUHJp
dmF0ZUZyYW1ld29ya3MvQ29sb3JTeW5jLmZyYW1ld29yay9Db2xvclN5bmMNCiAgICAgICAweDEx
MGQ0NDAwMCAtICAgICAgICAweDExMGU2YmZmZiArbGliYXRlLmR5bGliICgzLjAuNikgPEJCMzhF
RkMyLTg3NDYtM0JGNS1CQUFFLTU1MTA3MDMwNEQxMD4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAv
Q29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0Rl
dmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0Nv
bnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC91c3IvbGliL2xpYmF0ZS5keWxpYg0KICAgICAg
IDB4MTEwZTgzMDAwIC0gICAgICAgIDB4MTEwZTliZmZmICtsaWJleHBhdC4xLmR5bGliICgyNikg
PDYzNjE3NDU1LUJGQjQtM0QyMi05MzUwLTlCMTAxRkYxOUU3OD4gL0FwcGxpY2F0aW9ucy9YY29k
ZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJy
YXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50
aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC91c3IvbGliL2xpYmV4cGF0LjEuZHls
aWINCiAgICAgICAweDExMGVhOTAwMCAtICAgICAgICAweDExMGVmMWZmZiAgY29tLmFwcGxlLkFw
cGxlSlBFRyAoMS4wIC0gMSkgPDk4QUI3Q0M3LTQxOTQtM0Q5RS1CMDFBLTJEQThDQjMyQ0RBNz4g
L0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhv
bmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1
bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0
ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9BcHBsZUpQRUcuZnJhbWV3b3JrL0FwcGxlSlBF
Rw0KICAgICAgIDB4MTEwZjA0MDAwIC0gICAgICAgIDB4MTExMDQ4ZmZmICtsaWJGb250UGFyc2Vy
LmR5bGliICgzMDUuNC4wLjIpIDxDNUZGQURENy0xRkNBLTMyNjMtOTE4RS1FQUE1MTBFNzJBRkM+
IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBo
b25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9S
dW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lz
dGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvRm9udFNlcnZpY2VzLmZyYW1ld29yay9saWJG
b250UGFyc2VyLmR5bGliDQogICAgICAgMHgxMTExNTIwMDAgLSAgICAgICAgMHgxMTExNjNmZmYg
K2xpYmh2Zi5keWxpYiAoMzA1LjQuMC4yKSA8NjE3RTlCM0EtOTk5OS0zNjE5LUE0NDUtMDg0RUU2
MjUzQ0NFPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZv
cm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJv
ZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVS
b290L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0ZvbnRTZXJ2aWNlcy5mcmFtZXdv
cmsvbGliaHZmLmR5bGliDQogICAgICAgMHgxMTExODIwMDAgLSAgICAgICAgMHgxMTFhZDVmZmYg
IGNvbS5hcHBsZS52SW1hZ2UgKDguMSAtIDU0NC40KSA8MTMxQTI3MDQtMjlENi0zMUFFLTkzMkMt
MEE2QkJDNjFFRTUxPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIv
UGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0
b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1
bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQWNjZWxlcmF0ZS5mcmFtZXdvcmsv
RnJhbWV3b3Jrcy92SW1hZ2UuZnJhbWV3b3JrL3ZJbWFnZQ0KICAgICAgIDB4MTExYjdmMDAwIC0g
ICAgICAgIDB4MTExYjdmZmZmICBjb20uYXBwbGUuQWNjZWxlcmF0ZS52ZWNMaWIgKDMuMTEgLSB2
ZWNMaWIgMy4xMSkgPEVGMDYzMUVCLTY4MzEtMzZDMC1CNzEyLTJGRDg2QkE3NDlCOD4gL0FwcGxp
Y2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5w
bGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVz
L2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGli
cmFyeS9GcmFtZXdvcmtzL0FjY2VsZXJhdGUuZnJhbWV3b3JrL0ZyYW1ld29ya3MvdmVjTGliLmZy
YW1ld29yay92ZWNMaWINCiAgICAgICAweDExMWI4NTAwMCAtICAgICAgICAweDExMWNjZGZmZiAr
bGlidk1pc2MuZHlsaWIgKDc2MC4xMDAuMykgPDA4RTcyMTM1LTdFMjMtMzM1QS05QjE2LTU5NUY5
RkQ0OENBMT4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRm
b3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1By
b2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1l
Um9vdC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FjY2VsZXJhdGUuZnJhbWV3b3JrL0ZyYW1l
d29ya3MvdmVjTGliLmZyYW1ld29yay9saWJ2TWlzYy5keWxpYg0KICAgICAgIDB4MTExY2VmMDAw
IC0gICAgICAgIDB4MTExZTZhZmZmICtsaWJ2RFNQLmR5bGliICg3NjAuMTAwLjMpIDw2NzFFRTI0
MC02MDFBLTMyNDgtQTEyRS1CNTM2OEZGRTIzNzI+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0Nv
bnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZl
bG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250
ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BY2Nl
bGVyYXRlLmZyYW1ld29yay9GcmFtZXdvcmtzL3ZlY0xpYi5mcmFtZXdvcmsvbGlidkRTUC5keWxp
Yg0KICAgICAgIDB4MTExZTgxMDAwIC0gICAgICAgIDB4MTEyMDA2ZmZmICtsaWJCTEFTLmR5bGli
ICgxMzM2LjEwMC4yKSA8Q0NCREE3NjQtRjAwNC0zN0E0LUFBNjktMjI2OUJCMkQ0RDQyPiAvQXBw
bGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9T
LnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGlt
ZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9M
aWJyYXJ5L0ZyYW1ld29ya3MvQWNjZWxlcmF0ZS5mcmFtZXdvcmsvRnJhbWV3b3Jrcy92ZWNMaWIu
ZnJhbWV3b3JrL2xpYkJMQVMuZHlsaWINCiAgICAgICAweDExMjAxYjAwMCAtICAgICAgICAweDEx
MjNjMGZmZiArbGliTEFQQUNLLmR5bGliICgxMzM2LjEwMC4yKSA8MTQxM0QxQUEtMjVBRi0zQzNC
LTkyNDktNDcxMTY0NTEzOUIwPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZl
bG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVT
aW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3Vy
Y2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQWNjZWxlcmF0ZS5mcmFt
ZXdvcmsvRnJhbWV3b3Jrcy92ZWNMaWIuZnJhbWV3b3JrL2xpYkxBUEFDSy5keWxpYg0KICAgICAg
IDB4MTEyNDA0MDAwIC0gICAgICAgIDB4MTEyNDE5ZmZmICtsaWJMaW5lYXJBbGdlYnJhLmR5bGli
ICgxMzM2LjEwMC4yKSA8RTY0NTk3OEItOTgzRS0zOEQxLThFRjYtOEE2ODA1Nzc5OUNBPiAvQXBw
bGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9T
LnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGlt
ZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9M
aWJyYXJ5L0ZyYW1ld29ya3MvQWNjZWxlcmF0ZS5mcmFtZXdvcmsvRnJhbWV3b3Jrcy92ZWNMaWIu
ZnJhbWV3b3JrL2xpYkxpbmVhckFsZ2VicmEuZHlsaWINCiAgICAgICAweDExMjQyNjAwMCAtICAg
ICAgICAweDExMjQzOGZmZiArbGliU3BhcnNlQkxBUy5keWxpYiAoMTMzNi4xMDAuMikgPDgxNkNC
NjJFLTFENjAtMzc3NC04QkFGLTFFMUI3M0I3Mjc1OT4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAv
Q29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0Rl
dmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0Nv
bnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0Fj
Y2VsZXJhdGUuZnJhbWV3b3JrL0ZyYW1ld29ya3MvdmVjTGliLmZyYW1ld29yay9saWJTcGFyc2VC
TEFTLmR5bGliDQogICAgICAgMHgxMTI0NDQwMDAgLSAgICAgICAgMHgxMTI0NDlmZmYgK2xpYlF1
YWRyYXR1cmUuZHlsaWIgKDcpIDwzOUIwQTcxMy0zN0UyLTMxMTQtODI4RS1ENDdENkM3Q0Y3RDM+
IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBo
b25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9S
dW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lz
dGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BY2NlbGVyYXRlLmZyYW1ld29yay9GcmFtZXdvcmtzL3Zl
Y0xpYi5mcmFtZXdvcmsvbGliUXVhZHJhdHVyZS5keWxpYg0KICAgICAgIDB4MTEyNDUyMDAwIC0g
ICAgICAgIDB4MTEyYWJhZmZmICtsaWJCTk5TLmR5bGliICgyODguMTAwLjUpIDw5NzBCQkFBMS01
NDIyLTM2RjYtQkEzMS02MTFENUE1QkRGM0M+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRl
bnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9w
ZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50
cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BY2NlbGVy
YXRlLmZyYW1ld29yay9GcmFtZXdvcmtzL3ZlY0xpYi5mcmFtZXdvcmsvbGliQk5OUy5keWxpYg0K
ICAgICAgIDB4MTEyYWYyMDAwIC0gICAgICAgIDB4MTEyYjYwZmZmICtsaWJTcGFyc2UuZHlsaWIg
KDEwNikgPDQ0M0ZFRjU2LTc3MkUtM0Q4OC1CNzVCLThDNzZBNEVERDg0MD4gL0FwcGxpY2F0aW9u
cy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9y
bS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5z
aW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9G
cmFtZXdvcmtzL0FjY2VsZXJhdGUuZnJhbWV3b3JrL0ZyYW1ld29ya3MvdmVjTGliLmZyYW1ld29y
ay9saWJTcGFyc2UuZHlsaWINCiAgICAgICAweDExMmI3OTAwMCAtICAgICAgICAweDExMmJiNmZm
ZiArbGliR1NGb250Q2FjaGUuZHlsaWIgKDE5Mi45LjQuMC40KSA8RUI3OTk2MjctOTcyRC0zRjEx
LTlGMUUtMTE0QUUzMzA0MkIyPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZl
bG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVT
aW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3Vy
Y2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0ZvbnRTZXJ2
aWNlcy5mcmFtZXdvcmsvbGliR1NGb250Q2FjaGUuZHlsaWINCiAgICAgICAweDExMmQyNDAwMCAt
ICAgICAgICAweDExMmQyY2ZmZiArbGliR1NGb250LmR5bGliICg4NC4zLjAuMSkgPEYzRUJDNjI3
LUE5N0QtM0QxNy05QTc2LUNBOThENUY1MDM4Mj4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29u
dGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVs
b3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRl
bnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jr
cy9Gb250U2VydmljZXMuZnJhbWV3b3JrL2xpYkdTRm9udC5keWxpYg0KICAgICAgIDB4MTEyZDNk
MDAwIC0gICAgICAgIDB4MTEyZDhlZmZmICBjb20uYXBwbGUuT1RTVkcgKDEuMCAtIDY3Ny40LjAu
NCkgPDFFREZDMTdELUEwMzItMzIwMC05MERBLUIyQTM3QjdFNTJFRT4gL0FwcGxpY2F0aW9ucy9Y
Y29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9M
aWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1y
dW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2
YXRlRnJhbWV3b3Jrcy9PVFNWRy5mcmFtZXdvcmsvT1RTVkcNCiAgICAgICAweDExMmRkYjAwMCAt
ICAgICAgICAweDExMmY5NWZmZiAgY29tLmFwcGxlLkNvcmVTZXJ2aWNlcyAoODM5IC0gODM5KSA8
RkI2ODdCNDYtM0E0Qy0zQjk5LUI0MDQtOTYzQTJDNzQ0NzMxPiAvQXBwbGljYXRpb25zL1hjb2Rl
LmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJh
cnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRp
bWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y
a3MvQ29yZVNlcnZpY2VzLmZyYW1ld29yay9Db3JlU2VydmljZXMNCiAgICAgICAweDExMzBmNTAw
MCAtICAgICAgICAweDExMzEwMmZmZiAgY29tLmFwcGxlLkZvbnRTZXJ2aWNlcyAoMS4wIC0gMSkg
PDkwNjQyMzFCLTBCODQtM0RFMi05ODJFLTFENTQ0NEIyQzg3OT4gL0FwcGxpY2F0aW9ucy9YY29k
ZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJy
YXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50
aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRl
RnJhbWV3b3Jrcy9Gb250U2VydmljZXMuZnJhbWV3b3JrL0ZvbnRTZXJ2aWNlcw0KICAgICAgIDB4
MTEzMTFmMDAwIC0gICAgICAgIDB4MTEzMTdhZmZmICBjb20uYXBwbGUuU3ByaW5nQm9hcmRTZXJ2
aWNlcyAoMS4wIC0gMS4wKSA8NUE3QkUwM0QtMzY0MC0zOTRBLTlGMzEtQUI1M0EzQjBDRjNDPiAv
QXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9u
ZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVu
dGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3Rl
bS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1NwcmluZ0JvYXJkU2VydmljZXMuZnJhbWV3b3Jr
L1NwcmluZ0JvYXJkU2VydmljZXMNCiAgICAgICAweDExMzIwOTAwMCAtICAgICAgICAweDExMzIx
MGZmZiAgY29tLmFwcGxlLmlzdC5JZGxlVGltZXJTZXJ2aWNlcyAoMS4wIC0gMSkgPDlFNjYzOTk4
LTI3RDUtMzJCQS1BRDE0LUQ1QzEzRUE3MjBERj4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29u
dGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVs
b3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRl
bnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jr
cy9JZGxlVGltZXJTZXJ2aWNlcy5mcmFtZXdvcmsvSWRsZVRpbWVyU2VydmljZXMNCiAgICAgICAw
eDExMzIyMzAwMCAtICAgICAgICAweDExMzI0ZWZmZiAgY29tLmFwcGxlLkJvYXJkU2VydmljZXMg
KDEuMCAtIDUyNikgPDc3MkY4NkFBLTdFMTQtM0YyNy04QkUzLTQ1RTRFMTUyRTlGND4gL0FwcGxp
Y2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5w
bGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVz
L2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGli
cmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9Cb2FyZFNlcnZpY2VzLmZyYW1ld29yay9Cb2FyZFNlcnZp
Y2VzDQogICAgICAgMHgxMTMyODAwMDAgLSAgICAgICAgMHgxMTMzMGFmZmYgIGNvbS5hcHBsZS5G
cm9udEJvYXJkU2VydmljZXMgKDcwMy4xNiAtIDcwMy4xNikgPDEwODZEMzRCLTcyMDEtMzFEQy05
NDQ0LTlFRTUwRjFEQzJGNj4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxv
cGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2lt
dWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNl
cy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9Gcm9udEJvYXJk
U2VydmljZXMuZnJhbWV3b3JrL0Zyb250Qm9hcmRTZXJ2aWNlcw0KICAgICAgIDB4MTEzM2MzMDAw
IC0gICAgICAgIDB4MTEzNDRhZmZmICBjb20uYXBwbGUuQmFzZUJvYXJkICg1MjYgLSA1MjYpIDxG
OTg4QzY4Qy1CNjU0LTNFNkUtODk2OC1CQzZERkVBM0JENkE+IC9BcHBsaWNhdGlvbnMvWGNvZGUu
YXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFy
eS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGlt
ZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZy
YW1ld29ya3MvQmFzZUJvYXJkLmZyYW1ld29yay9CYXNlQm9hcmQNCiAgICAgICAweDExMzRkZDAw
MCAtICAgICAgICAweDExMzU0YmZmZiAgY29tLmFwcGxlLkJhY2tCb2FyZFNlcnZpY2VzICgxLjAg
LSAxLjApIDw1OEJDRkY1Ri00QkNCLTM5QUQtQjNFMi02MTZBQjYwQUFGNkQ+IC9BcHBsaWNhdGlv
bnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZv
cm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Mu
c2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkv
UHJpdmF0ZUZyYW1ld29ya3MvQmFja0JvYXJkU2VydmljZXMuZnJhbWV3b3JrL0JhY2tCb2FyZFNl
cnZpY2VzDQogICAgICAgMHgxMTM1ZGEwMDAgLSAgICAgICAgMHgxMTM2MDFmZmYgIGNvbS5hcHBs
ZS5wZXJzaXN0ZW50Y29ubmVjdGlvbiAoMS4wIC0gMS4wKSA8NUJENEE2MUEtOTFEMS0zQjBELTk5
OUQtMUQ2QTFEQkVBMDUxPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9w
ZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11
bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2Vz
L1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1BlcnNpc3RlbnRD
b25uZWN0aW9uLmZyYW1ld29yay9QZXJzaXN0ZW50Q29ubmVjdGlvbg0KICAgICAgIDB4MTEzNjM1
MDAwIC0gICAgICAgIDB4MTEzNjRjZmZmICBjb20uYXBwbGUuY29tbW9udXRpbGl0aWVzICg4LjAg
LSA5MDApIDwwMTRDOTk5NS03RUU2LTM3NjgtOTcyNi1FRkFCRUE2NDczRDA+IC9BcHBsaWNhdGlv
bnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZv
cm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Mu
c2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkv
UHJpdmF0ZUZyYW1ld29ya3MvQ29tbW9uVXRpbGl0aWVzLmZyYW1ld29yay9Db21tb25VdGlsaXRp
ZXMNCiAgICAgICAweDExMzY2NjAwMCAtICAgICAgICAweDExMzc2MWZmZiAgY29tLmFwcGxlLkNv
cmVUZWxlcGhvbnkgKDExMyAtIDgyMjYpIDw2OTlGNDAzRi1BMTZFLTM3MUItQTQ2NS1BRDE4ODQ4
RkQ5MTE+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9y
bXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9m
aWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJv
b3QvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlVGVsZXBob255LmZyYW1ld29yay9Db3Jl
VGVsZXBob255DQogICAgICAgMHgxMTM4ODIwMDAgLSAgICAgICAgMHgxMTM4YjRmZmYgIGNvbS5h
cHBsZS5ib20gKDE0LjAgLSAyMzUpIDw3NUEwNDg3RC0wNkM0LTMzNzktOTFCNi0xNjlGMjJFQjhD
NkU+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMv
aVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxl
cy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3Qv
U3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQm9tLmZyYW1ld29yay9Cb20NCiAgICAg
ICAweDExMzhjZDAwMCAtICAgICAgICAweDExMzhkMmZmZiArbGliY3Vwb2xpY3kuZHlsaWIgKDgy
MjYpIDwwNUI2NDI1OC04ODEyLTM3NDEtOTAwMC0xQ0UyNDNDMDk3NTM+IC9BcHBsaWNhdGlvbnMv
WGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0v
TGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2lt
cnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvdXNyL2xpYi9saWJjdXBvbGlj
eS5keWxpYg0KICAgICAgIDB4MTEzOGRmMDAwIC0gICAgICAgIDB4MTEzOTI0ZmZmICtsaWJUZWxl
cGhvbnlVdGlsRHluYW1pYy5keWxpYiAoNTM1OS4xKSA8QjExQ0Y3QjYtNjU2NC0zMjNELUI1QUQt
M0EyRUQ3MDhDM0M3PiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIv
UGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0
b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1
bnRpbWVSb290L3Vzci9saWIvbGliVGVsZXBob255VXRpbER5bmFtaWMuZHlsaWINCiAgICAgICAw
eDExMzk4ZjAwMCAtICAgICAgICAweDExMzlkNWZmZiAgY29tLmFwcGxlLk1vYmlsZUluc3RhbGxh
dGlvbiAoMi4wIC0gMS4wKSA8NTcxM0I4NzMtRjgwQS0zNzA4LThGMEQtODRGMUVBRUQzNEQ5PiAv
QXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9u
ZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVu
dGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3Rl
bS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL01vYmlsZUluc3RhbGxhdGlvbi5mcmFtZXdvcmsv
TW9iaWxlSW5zdGFsbGF0aW9uDQogICAgICAgMHgxMTNhMGQwMDAgLSAgICAgICAgMHgxMTNhMWRm
ZmYgIGNvbS5hcHBsZS5Bc3NlcnRpb25TZXJ2aWNlcyAoMS4wIC0gNTA1LjEwMC43LjAuMSkgPDk5
NzlFMjI5LUJFN0ItM0Y3My1CRjVGLTYwNkUwODcwOENFNj4gL0FwcGxpY2F0aW9ucy9YY29kZS5h
cHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5
L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1l
L0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJh
bWV3b3Jrcy9Bc3NlcnRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvQXNzZXJ0aW9uU2VydmljZXMNCiAg
ICAgICAweDExM2EzODAwMCAtICAgICAgICAweDExM2E4NWZmZiAgY29tLmFwcGxlLlJ1bm5pbmdC
b2FyZFNlcnZpY2VzICgxLjAgLSA1MDUuMTAwLjcuMC4xKSA8NjAzOEZGMTctMzU4Qi0zMkVELUE5
QTctMjEyRDcyQTNFQzY3PiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9w
ZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11
bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2Vz
L1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1J1bm5pbmdCb2Fy
ZFNlcnZpY2VzLmZyYW1ld29yay9SdW5uaW5nQm9hcmRTZXJ2aWNlcw0KICAgICAgIDB4MTEzYWYy
MDAwIC0gICAgICAgIDB4MTEzYWY1ZmZmICBjb20uYXBwbGUuTW9iaWxlU3lzdGVtU2VydmljZXMg
KDEuMCAtIDEpIDxBNTRGMjk2Ny0yOTg3LTMzQzgtQTdGNS04NDRGRTE1ODhDNTA+IC9BcHBsaWNh
dGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxh
dGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9p
T1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJh
cnkvUHJpdmF0ZUZyYW1ld29ya3MvTW9iaWxlU3lzdGVtU2VydmljZXMuZnJhbWV3b3JrL01vYmls
ZVN5c3RlbVNlcnZpY2VzDQogICAgICAgMHgxMTNiMDAwMDAgLSAgICAgICAgMHgxMTNiMzlmZmYg
IGNvbS5hcHBsZS5DU1N0b3JlICgxMTIyLjMzIC0gMTEyMi4zMykgPDZCNkU3QjgxLUEyRjUtMzhG
RC1BMjlCLTJDRjg1MDBEMzlEMD4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2
ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3Jl
U2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291
cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9Db3JlU2Vy
dmljZXNTdG9yZS5mcmFtZXdvcmsvQ29yZVNlcnZpY2VzU3RvcmUNCiAgICAgICAweDExM2I2ODAw
MCAtICAgICAgICAweDExM2I2ZWZmZiArbGliQ29yZUZTQ2FjaGUuZHlsaWIgKDIwMC41KSA8MzZD
NEY2OUMtN0E5RC0zQTA1LUIzQTEtODQwQTU3QTk2MDA0PiAvQXBwbGljYXRpb25zL1hjb2RlLmFw
cC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkv
RGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUv
Q29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv
T3BlbkdMRVMuZnJhbWV3b3JrL2xpYkNvcmVGU0NhY2hlLmR5bGliDQogICAgICAgMHgxMTNiNzgw
MDAgLSAgICAgICAgMHgxMTNiYTdmZmYgIGNvbS5hcHBsZS5Db3JlVmlkZW8gKDEuOCAtIDQxNC43
KSA8ODlEOTZFRjEtMDRCQS0zNDNFLUJENDktRTBFODZGREUyRjVCPiAvQXBwbGljYXRpb25zL1hj
b2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xp
YnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1
bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L0ZyYW1l
d29ya3MvQ29yZVZpZGVvLmZyYW1ld29yay9Db3JlVmlkZW8NCiAgICAgICAweDExM2JkMzAwMCAt
ICAgICAgICAweDExM2JkZmZmZiAgY29tLmFwcGxlLm9wZW5nbGVzICgxOC41LjcgLSAxOC41Ljcp
IDw3NjY2Q0MxMS01RTYxLTNGRDAtQTgxNS0wRTM3RkY2QjE4RTI+IC9BcHBsaWNhdGlvbnMvWGNv
ZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGli
cmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVu
dGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvRnJhbWV3
b3Jrcy9PcGVuR0xFUy5mcmFtZXdvcmsvT3BlbkdMRVMNCiAgICAgICAweDExM2JmMDAwMCAtICAg
ICAgICAweDExM2JmZWZmZiAgY29tLmFwcGxlLkNvcmVTaW11bGF0b3IuU2ltRnJhbWVidWZmZXJD
bGllbnQgKDczMi44IC0gNzMyLjgpIDw2NkRDQzJEOS1GQjBDLTMwQzQtQUU3Ri00NEM0MTA4MjBF
QzI+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMv
aVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxl
cy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3Qv
U3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvU2ltRnJhbWVidWZmZXJDbGllbnQuZnJh
bWV3b3JrL1NpbUZyYW1lYnVmZmVyQ2xpZW50DQogICAgICAgMHgxMTNjMGUwMDAgLSAgICAgICAg
MHgxMTNjMTZmZmYgK2xpYkdGWFNoYXJlZC5keWxpYiAoMTguNS43KSA8OENGOEY2NTEtMjRGNi0z
MDk2LUI4REItNDc1NjExRDQyNDY4PiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9E
ZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0Nv
cmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVz
b3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvT3BlbkdMRVMuZnJh
bWV3b3JrL2xpYkdGWFNoYXJlZC5keWxpYg0KICAgICAgIDB4MTEzYzIyMDAwIC0gICAgICAgIDB4
MTEzYzVmZmZmICtsaWJHTEltYWdlLmR5bGliICgxOC41LjcpIDxGNjcwQ0YxOS0zREQ5LTM1NUIt
QjFBRS00REYzQ0YxREYyNDY+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVs
b3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNp
bXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJj
ZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9PcGVuR0xFUy5mcmFtZXdv
cmsvbGliR0xJbWFnZS5keWxpYg0KICAgICAgIDB4MTEzYzZlMDAwIC0gICAgICAgIDB4MTEzYzcw
ZmZmICtsaWJDVk1TUGx1Z2luU3VwcG9ydC5keWxpYiAoMTguNS43KSA8RjJBQUZFM0EtRjM4Qy0z
N0ZELUI3NDQtOTQ1ODMyREQyRDRGPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9E
ZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0Nv
cmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVz
b3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvT3BlbkdMRVMuZnJh
bWV3b3JrL2xpYkNWTVNQbHVnaW5TdXBwb3J0LmR5bGliDQogICAgICAgMHgxMTNjN2EwMDAgLSAg
ICAgICAgMHgxMTNjODJmZmYgK2xpYkNvcmVWTUNsaWVudC5keWxpYiAoMjAwLjUpIDxGNTcyQjhD
My02MzkxLTNCMDktODk0Qi0xNTdGMkY0RDE5MkE+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0Nv
bnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZl
bG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250
ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9PcGVu
R0xFUy5mcmFtZXdvcmsvbGliQ29yZVZNQ2xpZW50LmR5bGliDQogICAgICAgMHgxMTNjOGUwMDAg
LSAgICAgICAgMHgxMTQ5M2VmZmYgK2xpYkxMVk1Db250YWluZXIuZHlsaWIgKDYwMi4yLjQ4LjMp
IDxGRUMwQkE2Mi01MzE4LTNEQTYtQjVGOS1FMDZGRDRCRjQ5MDQ+IC9BcHBsaWNhdGlvbnMvWGNv
ZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGli
cmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVu
dGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvRnJhbWV3
b3Jrcy9PcGVuR0xFUy5mcmFtZXdvcmsvbGliTExWTUNvbnRhaW5lci5keWxpYg0KICAgICAgIDB4
MTE0Y2YyMDAwIC0gICAgICAgIDB4MTE0ZGFjZmZmICBjb20uYXBwbGUuQ29yZU1lZGlhICgxLjAg
LSAyNzcwLjMzLjEuNCkgPDE0ODVDNTBELTgzRDAtM0Y3OS05OUY0LTEyQzAzRDA0RDZDOT4gL0Fw
cGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVP
Uy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRp
bWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0v
TGlicmFyeS9GcmFtZXdvcmtzL0NvcmVNZWRpYS5mcmFtZXdvcmsvQ29yZU1lZGlhDQogICAgICAg
MHgxMTRlNDMwMDAgLSAgICAgICAgMHgxMTRmMzlmZmYgIGNvbS5hcHBsZS5WaWRlb1Rvb2xib3gg
KDEuMCAtIDI3NzAuMzMuMS40KSA8N0FFQjdCODQtNEU5OS0zMDU5LTkyQjUtN0NEMUFCMzcyMEM4
PiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQ
aG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMv
UnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5
c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvVmlkZW9Ub29sYm94LmZyYW1ld29yay9WaWRlb1Rvb2xi
b3gNCiAgICAgICAweDExNGY4YjAwMCAtICAgICAgICAweDExNTA0N2ZmZiAgY29tLmFwcGxlLmF1
ZGlvLkNvcmVBdWRpbyAoNS4wIC0gNS4wKSA8Q0JERTc0RTktM0Y4Qy0zNTRELUEyQTktODhDODZC
RjVCNEE2PiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZv
cm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJv
ZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVS
b290L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZUF1ZGlvLmZyYW1ld29yay9Db3JlQXVk
aW8NCiAgICAgICAweDExNTBiMzAwMCAtICAgICAgICAweDExNTBjZmZmZiAgY29tLmFwcGxlLmF1
ZGlvLmNhdWxrICgxLjAgLSA3MCkgPDlBOEY0NDNBLUY3NDEtMzRDNC1BNTcxLTU4ODIzNDlCQTNB
NT4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9p
UGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVz
L1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9T
eXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9jYXVsay5mcmFtZXdvcmsvY2F1bGsNCiAg
ICAgICAweDExNTExYjAwMCAtICAgICAgICAweDExNTE1YWZmZiAgY29tLmFwcGxlLkFwcFN1cHBv
cnQgKDEuMC4wIC0gMjkpIDwzMERGQUJDNi03NDI4LTMwRDEtOTFEMi1GOTM4NDJGODM5OUE+IC9B
cHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25l
T1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50
aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVt
L0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQXBwU3VwcG9ydC5mcmFtZXdvcmsvQXBwU3VwcG9y
dA0KICAgICAgIDB4MTE1MWExMDAwIC0gICAgICAgIDB4MTE1MWExZmZmICBjb20uYXBwbGUuTW9i
aWxlQ29yZVNlcnZpY2VzICgxMTIyLjMzIC0gMTEyMi4zMykgPEIyNEM4RUQ3LTMwNDItMzA2Qy05
Njc1LUUxOUZBMDc4QTQ4Nj4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxv
cGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2lt
dWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNl
cy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL01vYmlsZUNvcmVTZXJ2aWNl
cy5mcmFtZXdvcmsvTW9iaWxlQ29yZVNlcnZpY2VzDQogICAgICAgMHgxMTUxYTcwMDAgLSAgICAg
ICAgMHgxMTU0MjRmZmYgIGNvbS5hcHBsZS5OZXR3b3JrRXh0ZW5zaW9uICgxLjAgLSAxKSA8QUYz
Q0M4QjAtMDc1NS0zOTc4LTk2MUItQzE0NjRFNjk3NEQ3PiAvQXBwbGljYXRpb25zL1hjb2RlLmFw
cC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkv
RGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUv
Q29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv
TmV0d29ya0V4dGVuc2lvbi5mcmFtZXdvcmsvTmV0d29ya0V4dGVuc2lvbg0KICAgICAgIDB4MTE1
NjI2MDAwIC0gICAgICAgIDB4MTE1OThmZmZmICBjb20uYXBwbGUuQ29yZUltYWdlICgxNC41LjAg
LSAxMTQwLjMpIDxBNzg2OUZGRS1BMDczLTMxOUQtOEEwMy1FOEFCQzdEQkM1NDg+IC9BcHBsaWNh
dGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxh
dGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9p
T1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJh
cnkvRnJhbWV3b3Jrcy9Db3JlSW1hZ2UuZnJhbWV3b3JrL0NvcmVJbWFnZQ0KICAgICAgIDB4MTE1
YmZkMDAwIC0gICAgICAgIDB4MTE1YzAzZmZmICBjb20uYXBwbGUuVVJMRm9ybWF0dGluZyAoMTQ2
IC0gMTQ2LjIyKSA8MTg0MEJCMjEtQTZFNS0zNkNDLUIyOUQtRUFDMDZDOUI4NTM1PiAvQXBwbGlj
YXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBs
YXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMv
aU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJy
YXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1VSTEZvcm1hdHRpbmcuZnJhbWV3b3JrL1VSTEZvcm1hdHRp
bmcNCiAgICAgICAweDExNWMxMTAwMCAtICAgICAgICAweDExNWQ0NmZmZiAgY29tLmFwcGxlLmF1
ZGlvLnRvb2xib3guQXVkaW9Ub29sYm94ICgxLjggLSAxLjgpIDxEM0U1RDJDNC1DM0E4LTNFRUUt
QjdCMy0zMjM2NDY0NUU0QTI+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVs
b3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNp
bXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJj
ZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BdWRpb1Rvb2xib3guZnJh
bWV3b3JrL0F1ZGlvVG9vbGJveA0KICAgICAgIDB4MTE1ZTE3MDAwIC0gICAgICAgIDB4MTE1ZTFm
ZmZmICBjb20uYXBwbGUuQ29yZVBob25lTnVtYmVycyAoMS4wIC0gMSkgPDE0OTVGQUU4LTNCNEUt
MzlGMi1CRkRELUEzOTMxRjEwOEFBQj4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMv
RGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9D
b3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jl
c291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9Db3Jl
UGhvbmVOdW1iZXJzLmZyYW1ld29yay9Db3JlUGhvbmVOdW1iZXJzDQogICAgICAgMHgxMTVlMmMw
MDAgLSAgICAgICAgMHgxMTVlZDFmZmYgIGNvbS5hcHBsZS5OZXR3b3JrICgxLjAgLSAxKSA8MUYx
NTYzQTEtMzI3Ri0zNDlCLTk5N0YtNzQyNUU5MDk2MjNDPiAvQXBwbGljYXRpb25zL1hjb2RlLmFw
cC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkv
RGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUv
Q29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv
TmV0d29yay5mcmFtZXdvcmsvTmV0d29yaw0KICAgICAgIDB4MTE1ZjRhMDAwIC0gICAgICAgIDB4
MTE1ZjRjZmZmICBjb20uYXBwbGUuQ2FwdGl2ZU5ldHdvcmtTdXBwb3J0ICgxMy4wIC0gMSkgPEQ5
MDlGQjhCLTI1OEQtM0EyNC1CMUNCLUJEM0I3MEM0NUExNz4gL0FwcGxpY2F0aW9ucy9YY29kZS5h
cHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5
L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1l
L0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJh
bWV3b3Jrcy9DYXB0aXZlTmV0d29yay5mcmFtZXdvcmsvQ2FwdGl2ZU5ldHdvcmsNCiAgICAgICAw
eDExNWY1NjAwMCAtICAgICAgICAweDExNWY2ZGZmZiArbGlibmV0d29ya2V4dGVuc2lvbi5keWxp
YiAoMTI5NS4xMDIuMSkgPDM5NTJBQTc2LUE2QzgtM0U1Qy1BMEI2LTY4NjI0QThCMzMwOD4gL0Fw
cGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVP
Uy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRp
bWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC91c3IvbGli
L2xpYm5ldHdvcmtleHRlbnNpb24uZHlsaWINCiAgICAgICAweDExNWY3ZjAwMCAtICAgICAgICAw
eDExNWY4ZGZmZiAgY29tLmFwcGxlLkdyYXBoVmlzdWFsaXplciAoMS4wIC0gMjEwLjEpIDxFMkJB
RjUxOC1FMTRDLTMxM0MtQTkwQy00RDJCOTY0MEY4NEU+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBw
L0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9E
ZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9D
b250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1l
d29ya3MvR3JhcGhWaXN1YWxpemVyLmZyYW1ld29yay9HcmFwaFZpc3VhbGl6ZXINCiAgICAgICAw
eDExNWY5YjAwMCAtICAgICAgICAweDExNjNiM2ZmZiAgY29tLmFwcGxlLnZpc2lvbi5GYWNlQ29y
ZSAoNC4xLjIgLSA0LjEuMikgPENEQTQwQTIwLTY4OEUtM0E1NC1BRjkzLTY0Qzk4M0VCMzRCRj4g
L0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhv
bmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1
bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0
ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9GYWNlQ29yZS5mcmFtZXdvcmsvRmFjZUNvcmUN
CiAgICAgICAweDExNjVjMDAwMCAtICAgICAgICAweDExNjgyNWZmZiAgY29tLmFwcGxlLmF1ZGlv
LkF1ZGlvVG9vbGJveENvcmUgKDEuMCAtIDExODAuOTApIDwzNTM0QjVBNC05ODExLTNBMEQtOTcw
RC05NjA3M0E4NzU0NzI+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Bl
ci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVs
YXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMv
UnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQXVkaW9Ub29sYm94
Q29yZS5mcmFtZXdvcmsvQXVkaW9Ub29sYm94Q29yZQ0KICAgICAgIDB4MTE2YWM0MDAwIC0gICAg
ICAgIDB4MTE2YWM2ZmZmICBjb20uYXBwbGUuTWVkaWFFeHBlcmllbmNlICgxLjAgLSAxKSA8MjNE
MTMxRkEtOUZBRS0zQjUzLUEzM0QtNDc5RjQ2QkNEMjk4PiAvQXBwbGljYXRpb25zL1hjb2RlLmFw
cC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkv
RGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUv
Q29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFt
ZXdvcmtzL01lZGlhRXhwZXJpZW5jZS5mcmFtZXdvcmsvTWVkaWFFeHBlcmllbmNlDQogICAgICAg
MHgxMTZhZDUwMDAgLSAgICAgICAgMHgxMTZhZTNmZmYgIGNvbS5hcHBsZS5UQ0MgKDEuMCAtIDEp
IDxBNEVGNkI3My0wNDk2LTNEMEQtQUI4NC03QzNFQkJENEFDQUI+IC9BcHBsaWNhdGlvbnMvWGNv
ZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGli
cmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVu
dGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0
ZUZyYW1ld29ya3MvVENDLmZyYW1ld29yay9UQ0MNCiAgICAgICAweDExNmFmZDAwMCAtICAgICAg
ICAweDExNmIwYWZmZiArbGliQXVkaW9TdGF0aXN0aWNzLmR5bGliICgyNy42NCkgPDA2NDIzRjRD
LUJCNjctM0Y3MS1BMjRELTc1RUUwQzI0QTQ4QT4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29u
dGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVs
b3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRl
bnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC91c3IvbGliL2xpYkF1ZGlvU3RhdGlzdGljcy5keWxp
Yg0KICAgICAgIDB4MTE2YjIxMDAwIC0gICAgICAgIDB4MTE2YjUzZmZmICtsaWJBdWRpb1Rvb2xi
b3hVdGlsaXR5LmR5bGliICgxMTgwLjkwKSA8QzBERENGRTYtOEU0Ni0zREM3LTlGMjUtRjMwNEMw
Qjg5NzFCPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZv
cm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJv
ZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVS
b290L3Vzci9saWIvbGliQXVkaW9Ub29sYm94VXRpbGl0eS5keWxpYg0KICAgICAgIDB4MTE2Yjgz
MDAwIC0gICAgICAgIDB4MTE2Yjg2ZmZmICBjb20uYXBwbGUuaXBob25lc2ltdWxhdG9yLlNpbXVs
YXRvckNsaWVudCAoMS4wIC0gMSkgPDc4NEFBMjdELTlCODAtMzA0Qy1BQUE2LTVFQUE4RUU5NUVG
MD4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9p
UGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVz
L1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9T
eXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9TaW11bGF0b3JDbGllbnQuZnJhbWV3b3Jr
L1NpbXVsYXRvckNsaWVudA0KICAgICAgIDB4MTE2YjhmMDAwIC0gICAgICAgIDB4MTE2YmQyZmZm
ICBjb20uYXBwbGUuRG9jdW1lbnRNYW5hZ2VyICgxLjAgLSAyMDAuNS4yKSA8NUVENTYwRUQtNUFG
QS0zQ0E0LTg4NEMtRTc1NzZBMjkyMEM5PiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50
cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVy
L0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMv
UmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0Rv
Y3VtZW50TWFuYWdlci5mcmFtZXdvcmsvRG9jdW1lbnRNYW5hZ2VyDQogICAgICAgMHgxMTZjMjMw
MDAgLSAgICAgICAgMHgxMTZkNDNmZmYgIGNvbS5hcHBsZS5GaWxlUHJvdmlkZXIgKDI2OS41IC0g
MjY5LjUpIDxDMUJEOEZFOC00RjNCLTMyQzEtQTNDRS1CQjFBMDg0NzU5NjQ+IC9BcHBsaWNhdGlv
bnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZv
cm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Mu
c2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkv
RnJhbWV3b3Jrcy9GaWxlUHJvdmlkZXIuZnJhbWV3b3JrL0ZpbGVQcm92aWRlcg0KICAgICAgIDB4
MTE2ZTU2MDAwIC0gICAgICAgIDB4MTE4NTI3ZmZmICBjb20uYXBwbGUuVUlLaXRDb3JlICgxLjAg
LSA0MjE4LjEuMTAwKSA8OEZFOTlEMEEtODcwMy0zRjdFLUJCRDEtQkU4RDFENThGOTk0PiAvQXBw
bGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9T
LnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGlt
ZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9M
aWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1VJS2l0Q29yZS5mcmFtZXdvcmsvVUlLaXRDb3JlDQog
ICAgICAgMHgxMTk5NTIwMDAgLSAgICAgICAgMHgxMTlhMGJmZmYgIGNvbS5hcHBsZS5TaGFyZVNo
ZWV0ICgxNjE4LjIgLSAxNjE4LjIpIDxENDFCRjVBNC01MEQ4LTNGRTktOUI4NC0wODg5MDQwNkMw
NDE+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMv
aVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxl
cy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3Qv
U3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvU2hhcmVTaGVldC5mcmFtZXdvcmsvU2hh
cmVTaGVldA0KICAgICAgIDB4MTE5YWQwMDAwIC0gICAgICAgIDB4MTE5YWRjZmZmICBjb20uYXBw
bGUubW9iaWxlaWNvbnMuZnJhbWV3b3JrICgxLjAgLSAzNzIuMCkgPEQ5MEJCQURELTRDM0QtMzVD
MS1BRDk3LUExMUIzODEyMjYzNT4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2
ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3Jl
U2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291
cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9Nb2JpbGVJ
Y29ucy5mcmFtZXdvcmsvTW9iaWxlSWNvbnMNCiAgICAgICAweDExOWFmMDAwMCAtICAgICAgICAw
eDExOWIwM2ZmZiArbGlicHJlcXVlbGl0ZS5keWxpYiAoMTA2LjEwMC4zKSA8MTQ0QUUzODQtQzc5
NS0zQkZDLTlGMDQtNDM3MEZBQkQ1MTMwPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50
cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVy
L0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMv
UmVzb3VyY2VzL1J1bnRpbWVSb290L3Vzci9saWIvbGlicHJlcXVlbGl0ZS5keWxpYg0KICAgICAg
IDB4MTE5YjIwMDAwIC0gICAgICAgIDB4MTE5YjQyZmZmICBjb20uYXBwbGUuRG9jdW1lbnRNYW5h
Z2VyQ29yZSAoMS4wIC0gMjAwLjUuMikgPEM4QzhEMUVELTk3Q0YtMzUzMS1CMkZELTg2OTlBMTZF
MjM1Rj4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jt
cy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2Zp
bGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9v
dC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9Eb2N1bWVudE1hbmFnZXJDb3JlLmZy
YW1ld29yay9Eb2N1bWVudE1hbmFnZXJDb3JlDQogICAgICAgMHgxMTliNzIwMDAgLSAgICAgICAg
MHgxMTliODRmZmYgIGNvbS5hcHBsZS5Vbmlmb3JtVHlwZUlkZW50aWZpZXJzICg2MzYuOCAtIDYz
Ni44KSA8NUY5MzY3MzMtODBDNi0zNEVELTk0N0QtODAxNEQyNzdFN0U0PiAvQXBwbGljYXRpb25z
L1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3Jt
L0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNp
bXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L0Zy
YW1ld29ya3MvVW5pZm9ybVR5cGVJZGVudGlmaWVycy5mcmFtZXdvcmsvVW5pZm9ybVR5cGVJZGVu
dGlmaWVycw0KICAgICAgIDB4MTE5YjllMDAwIC0gICAgICAgIDB4MTE5YzdhZmZmICBjb20uYXBw
bGUuQ29yZVVJICgxLjAgLSA2OTEuMikgPEY1REYxRTlBLTlCQjgtM0ZBOS05NzU1LTMzQTg3MUI4
MDAwNj4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jt
cy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2Zp
bGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9v
dC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9Db3JlVUkuZnJhbWV3b3JrL0NvcmVV
SQ0KICAgICAgIDB4MTE5ZDQ1MDAwIC0gICAgICAgIDB4MTE5ZTE2ZmZmICBjb20uYXBwbGUuVGV4
dHVyZUlPICgzLjEwLjkgLSAzLjEwLjkpIDw2RUZDNzYzRC1CRUY5LTNCNzQtOTdENi0zNDAyNjI4
RDBGOEE+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9y
bXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9m
aWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJv
b3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvVGV4dHVyZUlPLmZyYW1ld29yay9U
ZXh0dXJlSU8NCiAgICAgICAweDExOWU0YTAwMCAtICAgICAgICAweDExOWU3MGZmZiAgY29tLmFw
cGxlLkNvcmVTVkcgKDEuMCAtIDE0OSkgPDFDMTMyRUY4LUIyNEYtMzVBNS1BNDdCLUNFM0Q1QzI2
MjI2RT4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jt
cy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2Zp
bGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9v
dC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9Db3JlU1ZHLmZyYW1ld29yay9Db3Jl
U1ZHDQogICAgICAgMHgxMTllOTMwMDAgLSAgICAgICAgMHgxMTllOWJmZmYgIGNvbS5hcHBsZS5J
bnRlcm5hdGlvbmFsU3VwcG9ydCAoMS4wIC0gNjEuMSkgPDEyNzg4RDE5LTY2QzMtMzcwMS04QTk4
LTA1NThDMzE1MzQ0OT4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVy
L1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxh
dG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9S
dW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9JbnRlcm5hdGlvbmFs
U3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQNCiAgICAgICAweDExOWVhOTAw
MCAtICAgICAgICAweDExYTA1YWZmZiAgY29tLmFwcGxlLkNvcmVVdGlscyAoNi42IC0gNjYwLjM2
KSA8RTI5QkMzNTctMUQ4QS0zNUNELTk2QjctODBCMzMwMTg1NDk2PiAvQXBwbGljYXRpb25zL1hj
b2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xp
YnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1
bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L1ByaXZh
dGVGcmFtZXdvcmtzL0NvcmVVdGlscy5mcmFtZXdvcmsvQ29yZVV0aWxzDQogICAgICAgMHgxMWEx
YTIwMDAgLSAgICAgICAgMHgxMWExZDFmZmYgIGNvbS5hcHBsZS5JY29uU2VydmljZXMgKDQ0MC4y
NCAtIDQ0MC4yNCkgPEFENkZDQUJGLUY5N0EtMzlDMS05RTdBLTUyRDcyMzJCOEVDQj4gL0FwcGxp
Y2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5w
bGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVz
L2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGli
cmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9JY29uU2VydmljZXMuZnJhbWV3b3JrL0ljb25TZXJ2aWNl
cw0KICAgICAgIDB4MTFhMjEwMDAwIC0gICAgICAgIDB4MTFhMzNlZmZmICBjb20uYXBwbGUuVUlG
b3VuZGF0aW9uICgxLjAgLSA3MjguMikgPDZEREYzMjE4LTg3QTYtMzhBOS05OUI2LTIzNDAzMTA0
MzUxMD4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jt
cy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2Zp
bGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9v
dC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9VSUZvdW5kYXRpb24uZnJhbWV3b3Jr
L1VJRm91bmRhdGlvbg0KICAgICAgIDB4MTFhNDIxMDAwIC0gICAgICAgIDB4MTFhNDI4ZmZmICBj
b20uYXBwbGUuUHVzaEtpdCAoMS4wIC0gMSkgPEJDMTkyODFELTFEMjYtMzE4RC05MDNCLUI3MjJD
OENENjdGRj4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRm
b3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1By
b2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1l
Um9vdC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1B1c2hLaXQuZnJhbWV3b3JrL1B1c2hLaXQN
CiAgICAgICAweDExYTQzYTAwMCAtICAgICAgICAweDExYTQzZGZmZiAgY29tLmFwcGxlLmR0LlhD
VFRhcmdldEJvb3RzdHJhcCAoMS4wIC0gMTgxMTkuMSkgPDM5RkNGRjAyLThGNjEtMzVGQi1COERD
LUQwMDg3MTA1NDM3MT4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVy
L1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxh
dG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9S
dW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9YQ1RUYXJnZXRCb290
c3RyYXAuZnJhbWV3b3JrL1hDVFRhcmdldEJvb3RzdHJhcA0KICAgICAgIDB4MTFhNDQ5MDAwIC0g
ICAgICAgIDB4MTFhNWZjZmZmICBjb20uYXBwbGUuV2ViS2l0TGVnYWN5ICg2MTMrIC0gNjEzLjEu
MyspIDxGNEE2RkZBNi1EMjM2LTMwQTItQjk0MS02Mzk0QjlFOUU0NDM+IC9Wb2x1bWVzL1ZPTFVN
RS8qL1dlYktpdExlZ2FjeS5mcmFtZXdvcmsvV2ViS2l0TGVnYWN5DQogICAgICAgMHgxMWE4Y2Qw
MDAgLSAgICAgICAgMHgxMWE4Y2ZmZmYgK2xpYmFwcF9sYXVuY2hfbWVhc3VyZW1lbnQuZHlsaWIg
KDE0KSA8QzM1OThCRTgtQTc3RC0zN0RBLTlEREItNkQyRDlFOENBMzFEPiAvQXBwbGljYXRpb25z
L1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3Jt
L0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNp
bXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L3Vzci9saWIvbGliYXBwX2xh
dW5jaF9tZWFzdXJlbWVudC5keWxpYg0KICAgICAgIDB4MTFhOGQ5MDAwIC0gICAgICAgIDB4MTFh
OGRkZmZmICBjb20uYXBwbGUuQWdncmVnYXRlRGljdGlvbmFyeSAoMS4wIC0gMSkgPDEwMDFCMEQz
LUQ5NjctM0YyQy05QjM4LTM0QUM3MDgxNTUwOD4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29u
dGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVs
b3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRl
bnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jr
cy9BZ2dyZWdhdGVEaWN0aW9uYXJ5LmZyYW1ld29yay9BZ2dyZWdhdGVEaWN0aW9uYXJ5DQogICAg
ICAgMHgxMWE4ZTkwMDAgLSAgICAgICAgMHgxMWFhMjBmZmYgIGNvbS5hcHBsZS5tYW5hZ2VkY29u
ZmlndXJhdGlvbiAoMS4wIC0gMS4wKSA8OTFEQzU0QTEtMDU5Qi0zRjhFLTlGQzItOTU2RTEzNjJC
MjFCPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1z
L2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmls
ZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290
L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL01hbmFnZWRDb25maWd1cmF0aW9uLmZy
YW1ld29yay9NYW5hZ2VkQ29uZmlndXJhdGlvbg0KICAgICAgIDB4MTFhYjNlMDAwIC0gICAgICAg
IDB4MTFhYjRhZmZmICBjb20uYXBwbGUuUG9pbnRlclVJU2VydmljZXMgKDEuMCAtIDEpIDw5OEYy
Q0NBMi1GRDlBLTM3OEItQTgyNC03RDlERjY5RTgwM0E+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBw
L0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9E
ZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9D
b250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1l
d29ya3MvUG9pbnRlclVJU2VydmljZXMuZnJhbWV3b3JrL1BvaW50ZXJVSVNlcnZpY2VzDQogICAg
ICAgMHgxMWFiNjUwMDAgLSAgICAgICAgMHgxMWFiODVmZmYgIGNvbS5hcHBsZS5Db3JlTWF0ZXJp
YWwgKDEuMCAtIDEpIDwzNjUzQjQ2Qy03QkNBLTM3RUYtOTQ3MC1DQ0U4MjZDMERGQ0M+IC9BcHBs
aWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1Mu
cGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1l
cy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xp
YnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQ29yZU1hdGVyaWFsLmZyYW1ld29yay9Db3JlTWF0ZXJp
YWwNCiAgICAgICAweDExYWJhZTAwMCAtICAgICAgICAweDExYWJkYWZmZiAgY29tLmFwcGxlLlBh
c3RlYm9hcmQgKDEuMCAtIDEwMDApIDwxOTczRUZEMi02MDg1LTNBRjktOTE0NS02ODdDMjdBRUQ0
OUI+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMv
aVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxl
cy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3Qv
U3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvUGFzdGVib2FyZC5mcmFtZXdvcmsvUGFz
dGVib2FyZA0KICAgICAgIDB4MTFhYzBiMDAwIC0gICAgICAgIDB4MTFhYzM3ZmZmICBjb20uYXBw
bGUuYW5hbHl0aWNzZCAoMS4wIC0gMSkgPDUyOEU3QjYzLTIyNzctM0MwOC1BRDcwLTM1NUZGMkQy
ODk0Nj4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jt
cy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2Zp
bGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9v
dC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9Db3JlQW5hbHl0aWNzLmZyYW1ld29y
ay9Db3JlQW5hbHl0aWNzDQogICAgICAgMHgxMWFjNjgwMDAgLSAgICAgICAgMHgxMWFjOWRmZmYg
IGNvbS5hcHBsZS5Vc2VyTm90aWZpY2F0aW9ucyAoMS4wIC0gMzQ4LjUpIDw2RkYwRUQ3Qy1BNUVC
LTMzODUtOTY0Ri0zQ0ExQjUzQThGREU+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRz
L0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIv
Q29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9S
ZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Vc2VyTm90aWZp
Y2F0aW9ucy5mcmFtZXdvcmsvVXNlck5vdGlmaWNhdGlvbnMNCiAgICAgICAweDExYWNlMTAwMCAt
ICAgICAgICAweDExYWQwOGZmZiAgY29tLmFwcGxlLk1vYmlsZUFzc2V0cyAoMS4wIC0gNjU5LjEw
MC4yMSkgPDY1MjE2QjM0LTg2MTItMzhGQS05MTc5LUNGODA0OEQ2M0NENT4gL0FwcGxpY2F0aW9u
cy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9y
bS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5z
aW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Q
cml2YXRlRnJhbWV3b3Jrcy9Nb2JpbGVBc3NldC5mcmFtZXdvcmsvTW9iaWxlQXNzZXQNCiAgICAg
ICAweDExYWQzNzAwMCAtICAgICAgICAweDExYWQ4ZGZmZiAgY29tLmFwcGxlLlBoeXNpY3NLaXQg
KDEuMCAtIDEpIDw1RjU5Q0UzRC0xQzU2LTNCM0EtOTNGQy00Mjg3MjkzQzkyREE+IC9BcHBsaWNh
dGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxh
dGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9p
T1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJh
cnkvUHJpdmF0ZUZyYW1ld29ya3MvUGh5c2ljc0tpdC5mcmFtZXdvcmsvUGh5c2ljc0tpdA0KICAg
ICAgIDB4MTFhZGM0MDAwIC0gICAgICAgIDB4MTFhZGU2ZmZmICBjb20uYXBwbGUuUHJvdG90eXBl
VG9vbHMgKDEuMCAtIDEpIDxGNTM3RjkyRi0yODVCLTNBNkYtQkE4MC02Q0M4RDBFRTI4MUM+IC9B
cHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25l
T1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50
aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVt
L0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3Rv
dHlwZVRvb2xzDQogICAgICAgMHgxMWFlMTUwMDAgLSAgICAgICAgMHgxMWFlYWJmZmYgIGNvbS5h
cHBsZS5UZXh0SW5wdXQgKDEuMCAtIDEuMCkgPEREN0NDRTdFLTVCOUUtMzk1QS04ODU3LUYwQ0Y1
QUZCNTEzNz4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRm
b3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1By
b2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1l
Um9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9UZXh0SW5wdXQuZnJhbWV3b3Jr
L1RleHRJbnB1dA0KICAgICAgIDB4MTFhZjk1MDAwIC0gICAgICAgIDB4MTFhZmIyZmZmICBjb20u
YXBwbGUuVUlLaXRTZXJ2aWNlcyAoMS4wIC0gMSkgPDE5QjhEQ0U4LTVDMDMtM0Q5Mi1CQjYwLTkz
QkUxMzQ2MkQ4MT4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1Bs
YXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9y
L1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50
aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9VSUtpdFNlcnZpY2VzLmZy
YW1ld29yay9VSUtpdFNlcnZpY2VzDQogICAgICAgMHgxMWFmZGUwMDAgLSAgICAgICAgMHgxMWIw
NTVmZmYgIGNvbS5hcHBsZS5BY2NvdW50cyAoMTEzIC0gMTEzKSA8QkUwRTVDQTktQ0FDQi0zQURE
LTkzMTMtOThCODEyQTgwNjE3PiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZl
bG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVT
aW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3Vy
Y2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQWNjb3VudHMuZnJhbWV3
b3JrL0FjY291bnRzDQogICAgICAgMHgxMWIwYzAwMDAgLSAgICAgICAgMHgxMWIwZDBmZmYgIGNv
bS5hcHBsZS5kYXRhbWlncmF0aW9uICgxLjAgLSAxLjApIDwwRDdBNTRDMi1DQzg5LTNCRDYtODJG
Qy04MzMwNkZFRTNBMTU+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Bl
ci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVs
YXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMv
UnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvRGF0YU1pZ3JhdGlv
bi5mcmFtZXdvcmsvRGF0YU1pZ3JhdGlvbg0KICAgICAgIDB4MTFiMGU4MDAwIC0gICAgICAgIDB4
MTFiMTA2ZmZmICBjb20uYXBwbGUuVXNlck1hbmFnZW1lbnQgKDEuMCAtIDEpIDw2QjczNEZGMi1G
RTdELTNDMjYtQUE0Qi04QzlCMUZDNjYwMkY+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRl
bnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9w
ZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50
cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3Mv
VXNlck1hbmFnZW1lbnQuZnJhbWV3b3JrL1VzZXJNYW5hZ2VtZW50DQogICAgICAgMHgxMWIxMzIw
MDAgLSAgICAgICAgMHgxMWI1MDBmZmYgK0NvcmVEYXRhICgxMDQ4KSA8QzE4NzZBNDQtNkYwNi0z
NUFFLThDNzYtODE5RDM1REU4RUU3PiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9E
ZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0Nv
cmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVz
b3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZURhdGEuZnJh
bWV3b3JrL0NvcmVEYXRhDQogICAgICAgMHgxMWI3ODMwMDAgLSAgICAgICAgMHgxMWI3ODVmZmYg
IGNvbS5hcHBsZS5EcmFnVUkgKDEuMCAtIDEpIDw4RUFBRjdFQS1GMTM0LTM4MTktQUFDRC0yNTA1
OTc2MkQwQ0I+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0
Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Q
cm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGlt
ZVJvb3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvRHJhZ1VJLmZyYW1ld29yay9E
cmFnVUkNCiAgICAgICAweDExYjc5MDAwMCAtICAgICAgICAweDExYjdiMGZmZiAgY29tLmFwcGxl
LkdlbmVyYXRpb25hbFN0b3JhZ2UgKDIuMCAtIDMyMykgPDEwMDQ4QkNFLTY4MDMtMzdFRi04MDcy
LUM5QzBENzdCQzY0Rj4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVy
L1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxh
dG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9S
dW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9HZW5lcmF0aW9uYWxT
dG9yYWdlLmZyYW1ld29yay9HZW5lcmF0aW9uYWxTdG9yYWdlDQogICAgICAgMHgxMWI3ZDEwMDAg
LSAgICAgICAgMHgxMWI4MWJmZmYgIGNvbS5hcHBsZS5DaHVua2luZ0xpYnJhcnkgKDMzNC4xIC0g
MzM0LjEpIDxDMkRGMUJBNi04RTc5LTMwNzktQTFCQy05OUE2OEVFQTVDNjE+IC9BcHBsaWNhdGlv
bnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZv
cm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Mu
c2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkv
UHJpdmF0ZUZyYW1ld29ya3MvQ2h1bmtpbmdMaWJyYXJ5LmZyYW1ld29yay9DaHVua2luZ0xpYnJh
cnkNCiAgICAgICAweDExYjg3MTAwMCAtICAgICAgICAweDExYjg5M2ZmZiAgY29tLmFwcGxlLmFw
cGxlc2F1Y2UgKDEuMCAtIDE2LjI4KSA8QjRGNTk5QzMtMjdEMi0zRkVBLUIxRkUtOTk3Qjc4RTk4
Njg4PiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1z
L2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmls
ZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290
L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0FwcGxlU2F1Y2UuZnJhbWV3b3JrL0Fw
cGxlU2F1Y2UNCiAgICAgICAweDExYjhhMzAwMCAtICAgICAgICAweDExYjhiZWZmZiAgY29tLmFw
cGxlLkV4dGVuc2lvbktpdCAoMTkuNiAtIDE5LjYpIDw2QjQwNUJCRi1CMzBCLTNDNDQtODJFMi0z
QjhENDg4NjlGMUU+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9Q
bGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRv
ci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVu
dGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvRXh0ZW5zaW9uS2l0LmZy
YW1ld29yay9FeHRlbnNpb25LaXQNCiAgICAgICAweDExYjhlODAwMCAtICAgICAgICAweDExYjkx
YWZmZiAgY29tLmFwcGxlLnBsdWdpbmtpdC5mcmFtZXdvcmsgKDEuMCAtIDEpIDw5Mzc5MkYyMi01
NjRBLTMxRTQtQkQyOS02QjRCMDc0NEM4NkY+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRl
bnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9w
ZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50
cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3Mv
UGx1Z0luS2l0LmZyYW1ld29yay9QbHVnSW5LaXQNCiAgICAgICAweDExYjkzYzAwMCAtICAgICAg
ICAweDExYjk0M2ZmZiAgY29tLmFwcGxlLkV4dGVuc2lvbkZvdW5kYXRpb24gKDE5LjYgLSAxOS42
KSA8QUQ4RDgyMTAtRDI0NS0zRTdBLTg2RkUtQ0E0RjVEMUMwNzg2PiAvQXBwbGljYXRpb25zL1hj
b2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xp
YnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1
bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L1ByaXZh
dGVGcmFtZXdvcmtzL0V4dGVuc2lvbkZvdW5kYXRpb24uZnJhbWV3b3JrL0V4dGVuc2lvbkZvdW5k
YXRpb24NCiAgICAgICAweDExYjk1MjAwMCAtICAgICAgICAweDExYjk5NGZmZiAgY29tLmFwcGxl
LlN0cmVhbWluZ1ppcCAoMS4wIC0gMSkgPDIxMkM5RUYwLTNFODQtMzY1QS05RDdGLUUyNEY0OUY5
NDAyND4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jt
cy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2Zp
bGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9v
dC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9TdHJlYW1pbmdaaXAuZnJhbWV3b3Jr
L1N0cmVhbWluZ1ppcA0KICAgICAgIDB4MTFiOWJmMDAwIC0gICAgICAgIDB4MTFiOWMxZmZmICBj
b20uYXBwbGUuQ29uc3RhbnRDbGFzc2VzICgxLjAgLSAxKSA8NkU4MzA0NkYtRTlGRi0zQUQ2LUI2
M0MtODVERTlGQjdFN0NDPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9w
ZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11
bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2Vz
L1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0NvbnN0YW50Q2xh
c3Nlcy5mcmFtZXdvcmsvQ29uc3RhbnRDbGFzc2VzDQogICAgICAgMHgxMWI5Y2QwMDAgLSAgICAg
ICAgMHgxMWJhNWFmZmYgIGNvbS5hcHBsZS5BdXRoS2l0ICgxLjAgLSAxKSA8RkQ1QzIxM0EtQkZE
OC0zMjU5LTg1RkUtRjVBREFDNzMyREZDPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50
cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVy
L0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMv
UmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0F1
dGhLaXQuZnJhbWV3b3JrL0F1dGhLaXQNCiAgICAgICAweDExYmIwOTAwMCAtICAgICAgICAweDEx
YmM2YmZmZiAgY29tLmFwcGxlLmNvbnRhY3RzICgxLjAgLSAzNDk4LjMpIDxEMDExMjFCMy0yMzBD
LTNBNTYtQjE1RS1DMENGRUVBRDZFOTM+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRz
L0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIv
Q29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9S
ZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db250YWN0cy5m
cmFtZXdvcmsvQ29udGFjdHMNCiAgICAgICAweDExYmUzNTAwMCAtICAgICAgICAweDExYmU4N2Zm
ZiAgY29tLmFwcGxlLkNvcmVQcmVkaWN0aW9uICgxLjAgLSAxKSA8NUQ1NEExNEYtMUQ4MC0zQ0NE
LUExNDctRDFBOERFRjM4MTExPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZl
bG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVT
aW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3Vy
Y2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0NvcmVQcmVk
aWN0aW9uLmZyYW1ld29yay9Db3JlUHJlZGljdGlvbg0KICAgICAgIDB4MTFiZWJhMDAwIC0gICAg
ICAgIDB4MTFiZmEzZmZmICBjb20uYXBwbGUuUERGS2l0ICgxLjAgLSA5NTAuMzAuNSkgPENBMkQ3
MzBCLTUzMkUtMzhBNC1BQjk2LUYzOUE1QTA1QkE1OT4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAv
Q29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0Rl
dmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0Nv
bnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1BE
RktpdC5mcmFtZXdvcmsvUERGS2l0DQogICAgICAgMHgxMWMwNWEwMDAgLSAgICAgICAgMHgxMWMw
YThmZmYgIGNvbS5hcHBsZS5TYWZhcmkuU2FmZUJyb3dzaW5nICgxNjYxMSAtIDE2NjExLjEuMjEu
MC42KSA8OEJFRTYxOUYtODc4NC0zNEMxLThGNjEtMUQ3MUZBREM2Q0MxPiAvQXBwbGljYXRpb25z
L1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3Jt
L0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNp
bXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L1By
aXZhdGVGcmFtZXdvcmtzL1NhZmFyaVNhZmVCcm93c2luZy5mcmFtZXdvcmsvU2FmYXJpU2FmZUJy
b3dzaW5nDQogICAgICAgMHgxMWMxMGEwMDAgLSAgICAgICAgMHgxMWMxMjFmZmYgIGNvbS5hcHBs
ZS5Mb2NhbEF1dGhlbnRpY2F0aW9uICgxLjAgLSA4MjcuMTAwLjIzKSA8ODZDNTkxMjktNzk4Ni0z
MzQwLUI2OEYtQkI4MDY3MDFFNjJBPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9E
ZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0Nv
cmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVz
b3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvTG9jYWxBdXRoZW50
aWNhdGlvbi5mcmFtZXdvcmsvTG9jYWxBdXRoZW50aWNhdGlvbg0KICAgICAgIDB4MTFjMTNkMDAw
IC0gICAgICAgIDB4MTFjMTQ5ZmZmICBjb20uYXBwbGUuQXBwbGVJREF1dGhTdXBwb3J0ICgxLjAg
LSAxKSA8OEE4QUQ1NkEtRDU4Mi0zMEEwLTlBRDQtOEVGRURCNDEzMkRCPiAvQXBwbGljYXRpb25z
L1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3Jt
L0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNp
bXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L1By
aXZhdGVGcmFtZXdvcmtzL0FwcGxlSURBdXRoU3VwcG9ydC5mcmFtZXdvcmsvQXBwbGVJREF1dGhT
dXBwb3J0DQogICAgICAgMHgxMWMxNWQwMDAgLSAgICAgICAgMHgxMWMxNWRmZmYgIGNvbS5hcHBs
ZS5QaG9uZU51bWJlcnMgKDEuMCAtIDEpIDxFMEQxQjRGOC1ERjk2LTM2OTMtQkVEQi04MDA3RTEw
NDg2MEY+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9y
bXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9m
aWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJv
b3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvUGhvbmVOdW1iZXJzLmZyYW1ld29y
ay9QaG9uZU51bWJlcnMNCiAgICAgICAweDExYzE2NjAwMCAtICAgICAgICAweDExYzE5OWZmZiAg
Y29tLmFwcGxlLkNvcmVBdXRoZW50aWNhdGlvbi5TaGFyZWRVdGlscyAoMS4wIC0gODI3LjEwMC4y
MykgPEJFMzAyMjI5LUJGMzYtMzdCMi05MTYzLTg2MDE0NDhEMzQxRj4gL0FwcGxpY2F0aW9ucy9Y
Y29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9M
aWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1y
dW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9GcmFt
ZXdvcmtzL0xvY2FsQXV0aGVudGljYXRpb24uZnJhbWV3b3JrL1N1cHBvcnQvU2hhcmVkVXRpbHMu
ZnJhbWV3b3JrL1NoYXJlZFV0aWxzDQogICAgICAgMHgxMWMxYmMwMDAgLSAgICAgICAgMHgxMWMy
NWFmZmYgIGNvbS5hcHBsZS5BZGRyZXNzQm9va0xlZ2FjeSAoMS4wIC0gMzApIDw0RENCNDdCMi04
NTA3LTMzMTQtOTVFOC0yMzNDMjI0RkZDOTc+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRl
bnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9w
ZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50
cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3Mv
QWRkcmVzc0Jvb2tMZWdhY3kuZnJhbWV3b3JrL0FkZHJlc3NCb29rTGVnYWN5DQogICAgICAgMHgx
MWMyZTEwMDAgLSAgICAgICAgMHgxMWMyZTJmZmYgK2xpYkNUR3JlZW5UZWFMb2dnZXIuZHlsaWIg
KDgyMjYpIDw1RUVDNzJDOS02Nzk5LTNDOTQtOUJCMi04QzNBNjEyMUFENzU+IC9BcHBsaWNhdGlv
bnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZv
cm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Mu
c2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvdXNyL2xpYi9saWJDVEdy
ZWVuVGVhTG9nZ2VyLmR5bGliDQogICAgICAgMHgxMWMyZWMwMDAgLSAgICAgICAgMHgxMWMzMTBm
ZmYgIGNvbS5hcHBsZS5DZWxsdWxhclBsYW5NYW5hZ2VyICgxLjAgLSA4MjI2KSA8MzVCQjczQjAt
NUE1NC0zQjk3LUFENDUtQzczNjYzQUMwNzAwPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250
ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxv
cGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVu
dHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtz
L0NlbGx1bGFyUGxhbk1hbmFnZXIuZnJhbWV3b3JrL0NlbGx1bGFyUGxhbk1hbmFnZXINCiAgICAg
ICAweDExYzM0NzAwMCAtICAgICAgICAweDExYzNjZGZmZiAgY29tLmFwcGxlLkNsYXNzS2l0ICgx
LjIgLSAxNDYuNC40NykgPDI4QkQ3RDQ1LUNDN0MtM0I3Mi1BMzg4LTYwRUVDRkYzNzM1RD4gL0Fw
cGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVP
Uy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRp
bWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0v
TGlicmFyeS9GcmFtZXdvcmtzL0NsYXNzS2l0LmZyYW1ld29yay9DbGFzc0tpdA0KICAgICAgIDB4
MTFjNDUwMDAwIC0gICAgICAgIDB4MTFjNTAxZmZmICBjb20uYXBwbGUuQ29yZVN1Z2dlc3Rpb25z
ICgxLjAgLSAxMTE1LjUxNSkgPDU4NDU3RDc1LUE5QzQtMzAwNy04M0E0LTcwNThCRUQxQjU2Mj4g
L0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhv
bmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1
bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0
ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9Db3JlU3VnZ2VzdGlvbnMuZnJhbWV3b3JrL0Nv
cmVTdWdnZXN0aW9ucw0KICAgICAgIDB4MTFjNWI1MDAwIC0gICAgICAgIDB4MTFjNjQ2ZmZmICBj
b20uYXBwbGUuQWRkcmVzc0Jvb2suQ29udGFjdHNGb3VuZGF0aW9uICg4LjAgLSAxMTUxLjAuMikg
PEQyRTUyODJBLThDREItMzkwQi04MEJCLUNDRDg5Q0FGODYzOD4gL0FwcGxpY2F0aW9ucy9YY29k
ZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJy
YXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50
aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRl
RnJhbWV3b3Jrcy9Db250YWN0c0ZvdW5kYXRpb24uZnJhbWV3b3JrL0NvbnRhY3RzRm91bmRhdGlv
bg0KICAgICAgIDB4MTFjNzJiMDAwIC0gICAgICAgIDB4MTFjNzVlZmZmICBjb20uYXBwbGUuY29u
dGFjdHMudkNhcmQgKDEuMCAtIDM0OTguMykgPDdGNkMwMEM0LUY5RTktM0M0Qi05NjRFLTBBNTND
QjJEMTAzQT4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRm
b3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1By
b2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1l
Um9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy92Q2FyZC5mcmFtZXdvcmsvdkNh
cmQNCiAgICAgICAweDExYzdhZTAwMCAtICAgICAgICAweDExYzdlN2ZmZiAgY29tLmFwcGxlLmRh
dGFhY2Nlc3MuZGF0YWFjY2Vzc2V4cHJlc3MuZnJhbWV3b3JrICgxLjAgLSAxLjApIDw5RDQ4OUJD
Qy04NjMyLTM2ODAtOEMyRC05NEUxNUUzOUQwODM+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0Nv
bnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZl
bG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250
ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29y
a3MvRGF0YUFjY2Vzc0V4cHJlc3MuZnJhbWV3b3JrL0RhdGFBY2Nlc3NFeHByZXNzDQogICAgICAg
MHgxMWM4MjgwMDAgLSAgICAgICAgMHgxMWM4NWZmZmYgIGNvbS5hcHBsZS5kYXRhZGV0ZWN0b3Jz
Y29yZSAoOC4wIC0gNjc0KSA8QUM5RTE3NzYtQTY2Ri0zQUMyLUI1NzMtOENBOTM2OTcwMTk1PiAv
QXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9u
ZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVu
dGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3Rl
bS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0RhdGFEZXRlY3RvcnNDb3JlLmZyYW1ld29yay9E
YXRhRGV0ZWN0b3JzQ29yZQ0KICAgICAgIDB4MTFjODkyMDAwIC0gICAgICAgIDB4MTFjOTBiZmZm
ICBjb20uYXBwbGUuQ29yZU5MUCAoMS4wIC0gMjQ1LjIpIDxGODA5NjgzNi02Q0FGLTNGQkUtQUFF
Ri05NzY5QUZDQzkwOEQ+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Bl
ci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVs
YXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMv
UnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQ29yZU5MUC5mcmFt
ZXdvcmsvQ29yZU5MUA0KICAgICAgIDB4MTFjOTdlMDAwIC0gICAgICAgIDB4MTFjOWQ4ZmZmICts
aWJtZWNhYi5keWxpYiAoOTI5LjkpIDw0OEYzMDVDNi1DM0I0LTMyMTgtOUEwRS0xRjY2QzE0RUE3
RkU+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMv
aVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxl
cy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3Qv
dXNyL2xpYi9saWJtZWNhYi5keWxpYg0KICAgICAgIDB4MTFjYTA0MDAwIC0gICAgICAgIDB4MTFj
YTA4ZmZmICtsaWJnZXJtYW50b2suZHlsaWIgKDI0KSA8MENDN0ZFRTktRjZDNy0zNzg2LUIzRTIt
MjJERERCNTY1RDI2PiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIv
UGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0
b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1
bnRpbWVSb290L3Vzci9saWIvbGliZ2VybWFudG9rLmR5bGliDQogICAgICAgMHgxMWNhMTEwMDAg
LSAgICAgICAgMHgxMWNhMTJmZmYgK2xpYlRoYWlUb2tlbml6ZXIuZHlsaWIgKDMpIDwzNjU0NTNB
My1CQUQ4LTNEMDItOUREMy0wRkE4ODQxOTVDQUY+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0Nv
bnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZl
bG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250
ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvdXNyL2xpYi9saWJUaGFpVG9rZW5pemVyLmR5bGli
DQogICAgICAgMHgxMWNhMWIwMDAgLSAgICAgICAgMHgxMWNhMjNmZmYgK2xpYkNoaW5lc2VUb2tl
bml6ZXIuZHlsaWIgKDM3KSA8QURDRjE5QzktQjc0Ny0zODc3LTk4REMtOTM3ODQ1QjhFM0MwPiAv
QXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9u
ZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVu
dGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L3Vzci9s
aWIvbGliQ2hpbmVzZVRva2VuaXplci5keWxpYg0KICAgICAgIDB4MTFjYTM0MDAwIC0gICAgICAg
IDB4MTFjYjFlZmZmICBjb20uYXBwbGUuTGFuZ3VhZ2VNb2RlbGluZyAoMS4wIC0gMjQ3LjMpIDxD
MzY2RDQ2NC0xN0Y5LTMyRjUtOEFDNS04MjMwMTRBQjQwNDg+IC9BcHBsaWNhdGlvbnMvWGNvZGUu
YXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFy
eS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGlt
ZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZy
YW1ld29ya3MvTGFuZ3VhZ2VNb2RlbGluZy5mcmFtZXdvcmsvTGFuZ3VhZ2VNb2RlbGluZw0KICAg
ICAgIDB4MTFjYjVmMDAwIC0gICAgICAgIDB4MTFjYjcwZmZmICBjb20uYXBwbGUuQ29yZUVtb2pp
ICgxLjAgLSAxMjguNCkgPDhGODIxQzBCLUZERjgtM0M1OS1CQkZGLTI4MTVFRjc4NzAwQj4gL0Fw
cGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVP
Uy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRp
bWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0v
TGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9Db3JlRW1vamkuZnJhbWV3b3JrL0NvcmVFbW9qaQ0K
ICAgICAgIDB4MTFjYjhhMDAwIC0gICAgICAgIDB4MTFjYjhlZmZmICBjb20uYXBwbGUuTGluZ3Vp
c3RpY0RhdGEgKDEuMCAtIDM5OSkgPDMxQTEyQkU5LTIzMjMtM0YyNC1BMjhDLTk2NTI0OURDQjA4
Rj4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9p
UGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVz
L1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9T
eXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9MaW5ndWlzdGljRGF0YS5mcmFtZXdvcmsv
TGluZ3Vpc3RpY0RhdGENCiAgICAgICAweDExY2I5OTAwMCAtICAgICAgICAweDExY2JlNmZmZiAg
Y29tLmFwcGxlLkxleGljb24tZnJhbWV3b3JrICgxLjAgLSA4Ni4yKSA8ODVEN0Q0RkYtODZCQy0z
QTRGLTgwMDEtNjNFNjJEQTRDNzMxPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9E
ZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0Nv
cmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVz
b3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0xleGlj
b24uZnJhbWV3b3JrL0xleGljb24NCiAgICAgICAweDExY2MwMDAwMCAtICAgICAgICAweDExY2Mx
MGZmZiArbGliY21waC5keWxpYiAoOCkgPDM0RjM2NUZFLUIyQkYtMzAzMS04MDNDLUYxMEI3OUNE
QjY3Qj4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jt
cy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2Zp
bGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9v
dC91c3IvbGliL2xpYmNtcGguZHlsaWINCiAgICAgICAweDExY2MxZTAwMCAtICAgICAgICAweDEx
Y2RkZGZmZiAgY29tLmFwcGxlLmNsb3Vka2l0LkNsb3VkS2l0ICg5ODIgLSA5ODIpIDxBRUU0OTBE
NS05NjNCLTNCM0EtOUY0OS00RUQ3Mzc5NUFFQjk+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0Nv
bnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZl
bG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250
ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9DbG91
ZEtpdC5mcmFtZXdvcmsvQ2xvdWRLaXQNCiAgICAgICAweDExY2Y5NjAwMCAtICAgICAgICAweDEx
ZDAyMGZmZiAgY29tLmFwcGxlLkNsb3VkRG9jcyAoMS4wIC0gNzM3KSA8RjQ0REZFOEMtQjA3Mi0z
QkFELTk5Q0UtN0NGNDEyRjJBMDYwPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9E
ZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0Nv
cmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVz
b3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0Nsb3Vk
RG9jcy5mcmFtZXdvcmsvQ2xvdWREb2NzDQogICAgICAgMHgxMWQwYTgwMDAgLSAgICAgICAgMHgx
MWQwZTlmZmYgIGNvbS5hcHBsZS5RdWlja0xvb2tUaHVtYm5haWxpbmcgKDEuMCAtIDEzNS4zKSA8
MzcyRDY0NUEtRThDOS0zRTM5LUE1MTItNTI2QTQyNDcwM0E4PiAvQXBwbGljYXRpb25zL1hjb2Rl
LmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJh
cnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRp
bWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y
a3MvUXVpY2tMb29rVGh1bWJuYWlsaW5nLmZyYW1ld29yay9RdWlja0xvb2tUaHVtYm5haWxpbmcN
CiAgICAgICAweDExZDEzODAwMCAtICAgICAgICAweDExZDE1NWZmZiAgY29tLmFwcGxlLmFwcy5m
cmFtZXdvcmsgKDQuMCAtIDQuMCkgPDcxQzg0N0YzLTBFQTctM0YyQS04MjgxLTQxOUM2M0Y4NzY0
Qj4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9p
UGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVz
L1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9T
eXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9BcHBsZVB1c2hTZXJ2aWNlLmZyYW1ld29y
ay9BcHBsZVB1c2hTZXJ2aWNlDQogICAgICAgMHgxMWQxN2EwMDAgLSAgICAgICAgMHgxMWQxYjZm
ZmYgIGNvbS5hcHBsZS5DMiAoMS4zIC0gNTczKSA8QkQ0REU1RjMtQzJDMS0zMTlGLTgzRUEtN0I1
NjlGNjZBODYxPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxh
dGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3Iv
UHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRp
bWVSb290L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0MyLmZyYW1ld29yay9DMg0K
ICAgICAgIDB4MTFkMWZiMDAwIC0gICAgICAgIDB4MTFkMjkwZmZmICBjb20uYXBwbGUuY29yZWxv
Y2F0aW9uICgyNDIwLjE2LjI0IC0gMjQyMC4xNi4yNCkgPEMzQzFEMEMwLTQ4MkQtMzdCOS05MjBC
LTQyOUQyMjJGNDI3RT4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVy
L1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxh
dG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9S
dW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVMb2NhdGlvbi5mcmFtZXdv
cmsvQ29yZUxvY2F0aW9uDQogICAgICAgMHgxMWQyZDMwMDAgLSAgICAgICAgMHgxMWQzMWVmZmYg
IGNvbS5hcHBsZS5Qcm90ZWN0ZWRDbG91ZFN0b3JhZ2UgKDEuMCAtIDEpIDxCOEM3Q0FENC0yOTE1
LTNENjMtOUNFMS1GNzdDNkNCQjU1NkE+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRz
L0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIv
Q29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9S
ZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvUHJv
dGVjdGVkQ2xvdWRTdG9yYWdlLmZyYW1ld29yay9Qcm90ZWN0ZWRDbG91ZFN0b3JhZ2UNCiAgICAg
ICAweDExZDM2YjAwMCAtICAgICAgICAweDExZDM3MmZmZiAgY29tLmFwcGxlLkNvcmVUaW1lICgy
ODQuMC4zKSA8OEZGM0Y3RjItMTZERS0zN0YzLUI4OUMtM0I3NERBMkE4MDM2PiAvQXBwbGljYXRp
b25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRm
b3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9T
LnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5
L1ByaXZhdGVGcmFtZXdvcmtzL0NvcmVUaW1lLmZyYW1ld29yay9Db3JlVGltZQ0KICAgICAgIDB4
MTFkMzgxMDAwIC0gICAgICAgIDB4MTFlOTkyZmZmICBjb20uYXBwbGUuR2VvU2VydmljZXMgKDEu
MCAtIDE3NTcuMzQuMTAuMjAuMTgpIDxBMjg2NzhDNi0yQzEyLTNDQzgtODQ4MC0xNUFGRTZCMDZC
NEM+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMv
aVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxl
cy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3Qv
U3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvR2VvU2VydmljZXMuZnJhbWV3b3JrL0dl
b1NlcnZpY2VzDQogICAgICAgMHgxMWY3YWMwMDAgLSAgICAgICAgMHgxMWY3ZDJmZmYgIGNvbS5h
cHBsZS5sb2NhdGlvbnN1cHBvcnQgKDI0MjAuMTYuMjQgLSAyNDIwLjE2LjI0KSA8RUVEMkRFQ0It
QTk0Ny0zMURGLTgyMzYtQ0U2MDI2QUY5RDNBPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250
ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxv
cGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVu
dHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtz
L0xvY2F0aW9uU3VwcG9ydC5mcmFtZXdvcmsvTG9jYXRpb25TdXBwb3J0DQogICAgICAgMHgxMWY3
ZjAwMDAgLSAgICAgICAgMHgxMWY4NTRmZmYgIGNvbS5hcHBsZS5Db3JlQmx1ZXRvb3RoICgxLjAg
LSAxKSA8Qjc1RjI4RjItRTZGOC0zNDQyLUJCOUYtODVGM0ZGQTFDNTI3PiAvQXBwbGljYXRpb25z
L1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3Jt
L0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNp
bXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L0Zy
YW1ld29ya3MvQ29yZUJsdWV0b290aC5mcmFtZXdvcmsvQ29yZUJsdWV0b290aA0KICAgICAgIDB4
MTFmOGI2MDAwIC0gICAgICAgIDB4MTFmOTE5ZmZmICBjb20uYXBwbGUuQ29yZUxvY2F0aW9uUHJv
dG9idWYgKDEgLSAxKSA8MEVDNDg5RjEtNkIxNS0zMzhELThFN0YtNkQzMjUyRjBBRjdDPiAvQXBw
bGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9T
LnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGlt
ZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9M
aWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0NvcmVMb2NhdGlvblByb3RvYnVmLmZyYW1ld29yay9D
b3JlTG9jYXRpb25Qcm90b2J1Zg0KICAgICAgIDB4MTFmOTdiMDAwIC0gICAgICAgIDB4MTFmOTdm
ZmZmICtsaWJoZWltZGFsLWFzbjEuZHlsaWIgKDU5Ny4xMDAuNikgPDMxNEQxM0ZFLTY2QzAtMzAw
Mi1BQ0JFLTEyM0YzNTkxMzBDOT4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2
ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3Jl
U2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291
cmNlcy9SdW50aW1lUm9vdC91c3IvbGliL2xpYmhlaW1kYWwtYXNuMS5keWxpYg0KICAgICAgIDB4
MTFmOThhMDAwIC0gICAgICAgIDB4MTFmOWY5ZmZmICBjb20uYXBwbGUucHJpdmF0ZS5OYW5vUmVn
aXN0cnkgKDEuMCAtIDEpIDwyMjhDNTZGOS04RUQ3LTM5NDYtQkQ5My1EQTEyMDFDNUI5QzM+IC9B
cHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25l
T1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50
aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVt
L0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvTmFub1JlZ2lzdHJ5LmZyYW1ld29yay9OYW5vUmVn
aXN0cnkNCiAgICAgICAweDExZmE2YTAwMCAtICAgICAgICAweDExZmNlYmZmZiAgY29tLmFwcGxl
Lm1vYmlsZXNwb3RsaWdodC5pbmRleCAoMTAuNy4wIC0gMjE1MC4xNSkgPDUzNkNDNzUxLTA4MzIt
MzExQS05Q0U1LTZFOENGQzQyNTlBND4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMv
RGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9D
b3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jl
c291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9Nb2Jp
bGVTcG90bGlnaHRJbmRleC5mcmFtZXdvcmsvTW9iaWxlU3BvdGxpZ2h0SW5kZXgNCiAgICAgICAw
eDExZmUwMzAwMCAtICAgICAgICAweDExZmUxMGZmZiAgY29tLmFwcGxlLm1ldGFkYXRhLlNwb3Rs
aWdodExpbmd1aXN0aWNzICgxLjAgLSAxKSA8NzA3QTg0RTctQjE5Ny0zQkQyLTlCODgtOTM2Mjk5
NzlCQTEwPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZv
cm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJv
ZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVS
b290L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1Nwb3RsaWdodExpbmd1aXN0aWNz
LmZyYW1ld29yay9TcG90bGlnaHRMaW5ndWlzdGljcw0KICAgICAgIDB4MTFmZTIyMDAwIC0gICAg
ICAgIDB4MTFmZTVhZmZmICBjb20uYXBwbGUuc3BvdGxpZ2h0Lm1ldGFkYXRhLnV0aWxpdGllcyAo
MS4wIC0gMjE1MC4xNSkgPDg3MjhDQUVELTJGMjAtM0Q0QS1CNERFLUI4RTI4ODM2MkI0QT4gL0Fw
cGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVP
Uy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRp
bWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0v
TGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9NZXRhZGF0YVV0aWxpdGllcy5mcmFtZXdvcmsvTWV0
YWRhdGFVdGlsaXRpZXMNCiAgICAgICAweDExZmU5OTAwMCAtICAgICAgICAweDEyMDQ2Y2ZmZiAg
Y29tLmFwcGxlLkludGVudHMgKDEuMCAtIDEpIDw4QzM3RDE4Ny1ENjEzLTM2NDMtOTE2RC0zRTI2
NDZGRjM5NzE+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0
Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Q
cm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGlt
ZVJvb3QvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9JbnRlbnRzLmZyYW1ld29yay9JbnRlbnRz
DQogICAgICAgMHgxMjBhYjgwMDAgLSAgICAgICAgMHgxMjBiMmFmZmYgIGNvbS5hcHBsZS5wcm9h
Y3RpdmUuc3VwcG9ydC5Qcm9hY3RpdmVTdXBwb3J0ICgxLjAgLSAyOTQuNikgPEEwNDgzOTg5LTBD
NEEtM0YxMi05OTEzLTRFRDhBMzgzQTQxNj4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVu
dHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Bl
ci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRz
L1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9Q
cm9hY3RpdmVTdXBwb3J0LmZyYW1ld29yay9Qcm9hY3RpdmVTdXBwb3J0DQogICAgICAgMHgxMjBi
OTMwMDAgLSAgICAgICAgMHgxMjBiZDlmZmYgIGNvbS5hcHBsZS5EYXRhRGV0ZWN0b3JzTmF0dXJh
bExhbmd1YWdlICgxLjAgLSAxNTkuMSkgPDg3QThGOTI3LTdEMkUtMzQ5Ni05QjU0LTA1MDhFMzgx
QkE1OT4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jt
cy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2Zp
bGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9v
dC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9EYXRhRGV0ZWN0b3JzTmF0dXJhbExh
bmd1YWdlLmZyYW1ld29yay9EYXRhRGV0ZWN0b3JzTmF0dXJhbExhbmd1YWdlDQogICAgICAgMHgx
MjBjMGYwMDAgLSAgICAgICAgMHgxMjBjODJmZmYgIGNvbS5hcHBsZS5Db3JlU3BvdGxpZ2h0ICgx
LjAgLSAyMTUwLjE1KSA8RUYyQTY5NEItNEUyQi0zNEVCLUIwOTktMzkxOEY2NEZEQkEyPiAvQXBw
bGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9T
LnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGlt
ZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9M
aWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVNwb3RsaWdodC5mcmFtZXdvcmsvQ29yZVNwb3RsaWdodA0K
ICAgICAgIDB4MTIwZDBlMDAwIC0gICAgICAgIDB4MTIwZDMyZmZmICBjb20uYXBwbGUucHJvYWN0
aXZlLnN1cHBvcnQuUHJvYWN0aXZlRXZlbnRUcmFja2VyICgxLjAgLSAyOTQuNikgPDcwODFDNzIy
LUEwMkItMzhGQi05MDFELTE5NzAwQTI2NjAwNj4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29u
dGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVs
b3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRl
bnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jr
cy9Qcm9hY3RpdmVFdmVudFRyYWNrZXIuZnJhbWV3b3JrL1Byb2FjdGl2ZUV2ZW50VHJhY2tlcg0K
ICAgICAgIDB4MTIwZDVkMDAwIC0gICAgICAgIDB4MTIwZDZiZmZmICBjb20uYXBwbGUuSW50ZW50
c0ZvdW5kYXRpb24gKDEuMCAtIDEpIDwxNjVEMzQ0Ny1DNDRDLTNCQjUtQTY5RC05NTE2RDVFRkZD
OTk+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMv
aVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxl
cy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3Qv
U3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvSW50ZW50c0ZvdW5kYXRpb24uZnJhbWV3
b3JrL0ludGVudHNGb3VuZGF0aW9uDQogICAgICAgMHgxMjBkODEwMDAgLSAgICAgICAgMHgxMjBk
ODNmZmYgIGNvbS5hcHBsZS5JbnRlcm5hdGlvbmFsVGV4dFNlYXJjaCAoMS4wIC0gMSkgPDlDMDBC
OUZFLTE5MTAtMzRGMS05NzI4LUQ4QjJCNTdGRTA1RT4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAv
Q29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0Rl
dmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0Nv
bnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3
b3Jrcy9JbnRlcm5hdGlvbmFsVGV4dFNlYXJjaC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFRleHRT
ZWFyY2gNCiAgICAgICAweDEyMGQ4ZTAwMCAtICAgICAgICAweDEyMGQ5OWZmZiAgY29tLmFwcGxl
LlJUQ1JlcG9ydGluZyAoMTEuODAuOSAtIDExLjgwLjkpIDxDQzIzOEY1OC1DMjA2LTM4NjktQkE2
RC0zRkU2NUNBM0QzNjM+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Bl
ci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVs
YXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMv
UnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvUlRDUmVwb3J0aW5n
LmZyYW1ld29yay9SVENSZXBvcnRpbmcNCiAgICAgICAweDEyMGRhZTAwMCAtICAgICAgICAweDEy
MGYwY2ZmZiAgY29tLmFwcGxlLmV2ZW50a2l0ICgxLjAuMCAtIDEuMCkgPDEwMkY5RTEzLTc1QjEt
M0NBMi1BRURFLTRCNEYwMjVGRkUzQz4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMv
RGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9D
b3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jl
c291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0V2ZW50S2l0LmZy
YW1ld29yay9FdmVudEtpdA0KICAgICAgIDB4MTIxMDNjMDAwIC0gICAgICAgIDB4MTIxMTRjZmZm
ICBjb20uYXBwbGUuUmVzcG9uc2VLaXQgKDEuMCAtIDE2NS4yKSA8NkIzNDI1QzMtMzBCQy0zODYx
LUFGMEQtMDZCOEIwQTIxMDI5PiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZl
bG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVT
aW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3Vy
Y2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1Jlc3BvbnNl
S2l0LmZyYW1ld29yay9SZXNwb25zZUtpdA0KICAgICAgIDB4MTIxMjI1MDAwIC0gICAgICAgIDB4
MTIxMmNkZmZmICBjb20uYXBwbGUuQ2FsZW5kYXJEYXRhYmFzZSAoMS4wIC0gMTAzMS40LjIpIDww
QURCNkJFRS1ERDczLTMyMjgtQTNCMi1EM0E1QzJFMjYyRDc+IC9BcHBsaWNhdGlvbnMvWGNvZGUu
YXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFy
eS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGlt
ZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZy
YW1ld29ya3MvQ2FsZW5kYXJEYXRhYmFzZS5mcmFtZXdvcmsvQ2FsZW5kYXJEYXRhYmFzZQ0KICAg
ICAgIDB4MTIxMzVmMDAwIC0gICAgICAgIDB4MTIxM2MyZmZmICBjb20uYXBwbGUuQ2FsZW5kYXJE
YWVtb24gKDEuMCAtIDk2NS40LjEpIDxENkU5QjY1Qy02MjgyLTNFNDAtQkYwOS1GODE5OUZFMkZG
QUI+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMv
aVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxl
cy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3Qv
U3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQ2FsZW5kYXJEYWVtb24uZnJhbWV3b3Jr
L0NhbGVuZGFyRGFlbW9uDQogICAgICAgMHgxMjE0M2IwMDAgLSAgICAgICAgMHgxMjE0YWNmZmYg
IGNvbS5hcHBsZS5DYWxlbmRhckZvdW5kYXRpb24gKDguMCAtIDEzNTEuNC4yKSA8OUNDRTg0NEQt
RUQ1QS0zODNGLTkyOTctRTUxRDZDRjQ1QkM0PiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250
ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxv
cGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVu
dHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtz
L0NhbGVuZGFyRm91bmRhdGlvbi5mcmFtZXdvcmsvQ2FsZW5kYXJGb3VuZGF0aW9uDQogICAgICAg
MHgxMjE1MjYwMDAgLSAgICAgICAgMHgxMjE1NWRmZmYgIGNvbS5hcHBsZS5pQ2FsZW5kYXIgKDcu
MCAtIDEwMDgpIDw1NjYwMUFCQy02RUU3LTNCOEMtQTUxMC1BNzRENzI2QUM2Qzg+IC9BcHBsaWNh
dGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxh
dGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9p
T1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJh
cnkvUHJpdmF0ZUZyYW1ld29ya3MvaUNhbGVuZGFyLmZyYW1ld29yay9pQ2FsZW5kYXINCiAgICAg
ICAweDEyMTU5ZDAwMCAtICAgICAgICAweDEyMTVhOWZmZiAgY29tLmFwcGxlLlBlcnNvbmFLaXQg
KDEuMCAtIDEpIDwyNEI4MkQxMy0yQjFBLTNFNUEtODI3Ni1GNDM2MzI1MDE5Qjg+IC9BcHBsaWNh
dGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxh
dGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9p
T1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJh
cnkvUHJpdmF0ZUZyYW1ld29ya3MvUGVyc29uYUtpdC5mcmFtZXdvcmsvUGVyc29uYUtpdA0KICAg
ICAgIDB4MTIxNWJiMDAwIC0gICAgICAgIDB4MTIxNjRlZmZmICBjb20uYXBwbGUuY29yZWRhdiAo
MS4wLjEgLSAxMDc1KSA8NkJGNTlEMDAtMDlGNC0zRDkwLTkzMTgtQzU4RDg1RUMwMkM5PiAvQXBw
bGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9T
LnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGlt
ZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9M
aWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0NvcmVEQVYuZnJhbWV3b3JrL0NvcmVEQVYNCiAgICAg
ICAweDEyMTZkNDAwMCAtICAgICAgICAweDEyMTZlY2ZmZiArbGlicmVzb2x2LjkuZHlsaWIgKDY4
KSA8MkZDNDE0NkYtMDczQS0zRUY2LTg5NEItQjVDODAyNkZGNzZGPiAvQXBwbGljYXRpb25zL1hj
b2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xp
YnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1
bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L3Vzci9saWIvbGlicmVzb2x2Ljku
ZHlsaWINCiAgICAgICAweDEyMTZmYjAwMCAtICAgICAgICAweDEyMTdlYmZmZiAgY29tLmFwcGxl
Lk5MUCAoMS4wIC0gMjEwLjIpIDxDMjgxRTIyQS00RDdGLTNBNzktQjk0Ny0xMjIyRUQyQzAzQkY+
IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBo
b25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9S
dW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lz
dGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvTkxQLmZyYW1ld29yay9OTFANCiAgICAgICAw
eDEyMTg3YzAwMCAtICAgICAgICAweDEyMWEwY2ZmZiAgY29tLmFwcGxlLk1vbnRyZWFsICgxLjAg
LSAxNDIpIDwzMTA5QkIyMi0zOTY2LTM0RjUtOEM2MS1ERTkyNEU3QjdDM0Y+IC9BcHBsaWNhdGlv
bnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZv
cm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Mu
c2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkv
UHJpdmF0ZUZyYW1ld29ya3MvTW9udHJlYWwuZnJhbWV3b3JrL01vbnRyZWFsDQogICAgICAgMHgx
MjFhNDcwMDAgLSAgICAgICAgMHgxMjIxMTZmZmYgIGNvbS5hcHBsZS52aXNpb24uRXNwcmVzc29G
cmFtZXdvcmsgKDEuMCAtIDI1Ni40LjQpIDwxMzA1MkQ4MC1EOTgyLTMwQzUtQjQ1Qi03OTA5NzBG
MjgxNEQ+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9y
bXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9m
aWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJv
b3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvRXNwcmVzc28uZnJhbWV3b3JrL0Vz
cHJlc3NvDQogICAgICAgMHgxMjI1NzEwMDAgLSAgICAgICAgMHgxMjI1NzVmZmYgIGNvbS5hcHBs
ZS5Db3JlT3B0aW1pemF0aW9uICgxLjAgLSAxKSA8NDIxNUFCMzQtNUUzNy0zMzBBLUE5MTMtMjRG
NDUyMjgxM0Q2PiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxh
dGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3Iv
UHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRp
bWVSb290L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0NvcmVPcHRpbWl6YXRpb24u
ZnJhbWV3b3JrL0NvcmVPcHRpbWl6YXRpb24NCiAgICAgICAweDEyMjU3ZjAwMCAtICAgICAgICAw
eDEyMjY1M2ZmZiAgY29tLmFwcGxlLkNvcmVQREYgKDUuMCAtIDUyOSkgPEUzQzlBMTRDLUNCMjgt
M0RFRi1BNzU5LURCOEQ0Rjc5MkYzMj4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMv
RGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9D
b3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jl
c291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9Db3Jl
UERGLmZyYW1ld29yay9Db3JlUERGDQogICAgICAgMHgxMjI2ZTkwMDAgLSAgICAgICAgMHgxMjI2
ZWRmZmYgIGNvbS5hcHBsZS5SZXZlYWxDb3JlICgxLjAgLSAxNykgPDYyOUI3NzU5LUQ2MEItMzdF
QS1BMEFBLTM4NUNCRDdBN0QyMT4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2
ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3Jl
U2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291
cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9SZXZlYWxD
b3JlLmZyYW1ld29yay9SZXZlYWxDb3JlDQogICAgICAgMHgxMjI2ZjkwMDAgLSAgICAgICAgMHgx
MjI3M2RmZmYgIGNvbS5hcHBsZS5OYXR1cmFsTGFuZ3VhZ2UgKDEuMCAtIDg0KSA8RDYwM0MwMTYt
MUFFNC0zQUNELThEMzktMUFBMUQ3MjZDMUNEPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250
ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxv
cGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVu
dHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvTmF0dXJh
bExhbmd1YWdlLmZyYW1ld29yay9OYXR1cmFsTGFuZ3VhZ2UNCiAgICAgICAweDEyMjc3ZTAwMCAt
ICAgICAgICAweDEyMmI0MGZmZiAgY29tLmFwcGxlLkNvcmVNTCAoMS4wIC0gMSkgPENDREFBRTQ3
LUU3OTItMzgwQi05MjZBLUQ0MDU2OUIxNzQyNT4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29u
dGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVs
b3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRl
bnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVN
TC5mcmFtZXdvcmsvQ29yZU1MDQogICAgICAgMHgxMjJkODcwMDAgLSAgICAgICAgMHgxMjJkODdm
ZmYgIGNvbS5hcHBsZS5NZXRhbFBlcmZvcm1hbmNlU2hhZGVycy5NZXRhbFBlcmZvcm1hbmNlU2hh
ZGVycyAoMS4wIC0gMSkgPEE1QTI1NjVFLTI0NkMtM0Q2Ri1CN0U0LUQ2MTg1N0M2RDNEMD4gL0Fw
cGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVP
Uy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRp
bWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0v
TGlicmFyeS9GcmFtZXdvcmtzL01ldGFsUGVyZm9ybWFuY2VTaGFkZXJzLmZyYW1ld29yay9NZXRh
bFBlcmZvcm1hbmNlU2hhZGVycw0KICAgICAgIDB4MTIyZDhmMDAwIC0gICAgICAgIDB4MTIyZGVk
ZmZmICBjb20uYXBwbGUuTWV0YWxQZXJmb3JtYW5jZVNoYWRlcnMuTVBTQ29yZSAoMS4wIC0gMSkg
PEEzNEEwM0E2LUIzMDMtMzgwNy1CMkUxLTM5ODRBRTlDQzJBQj4gL0FwcGxpY2F0aW9ucy9YY29k
ZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJy
YXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50
aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdv
cmtzL01ldGFsUGVyZm9ybWFuY2VTaGFkZXJzLmZyYW1ld29yay9GcmFtZXdvcmtzL01QU0NvcmUu
ZnJhbWV3b3JrL01QU0NvcmUNCiAgICAgICAweDEyMmUyMTAwMCAtICAgICAgICAweDEyMmViNGZm
ZiAgY29tLmFwcGxlLk1ldGFsUGVyZm9ybWFuY2VTaGFkZXJzLk1QU0ltYWdlICgxLjAgLSAxKSA8
NUMwNTAyNkUtRjU4OC0zNzlCLUIwMUYtNzFCQkQ0MkNDMzRBPiAvQXBwbGljYXRpb25zL1hjb2Rl
LmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJh
cnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRp
bWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y
a3MvTWV0YWxQZXJmb3JtYW5jZVNoYWRlcnMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvTVBTSW1hZ2Uu
ZnJhbWV3b3JrL01QU0ltYWdlDQogICAgICAgMHgxMjJmMzIwMDAgLSAgICAgICAgMHgxMjMxNTlm
ZmYgIGNvbS5hcHBsZS5NZXRhbFBlcmZvcm1hbmNlU2hhZGVycy5NUFNOZXVyYWxOZXR3b3JrICgx
LjAgLSAxKSA8ODI1OTdDMEMtQUMyOC0zM0FCLUE4RDQtOTVCNzhGRTJEQ0IyPiAvQXBwbGljYXRp
b25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRm
b3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9T
LnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvTWV0YWxQZXJmb3JtYW5jZVNoYWRlcnMuZnJhbWV3b3JrL0ZyYW1ld29ya3Mv
TVBTTmV1cmFsTmV0d29yay5mcmFtZXdvcmsvTVBTTmV1cmFsTmV0d29yaw0KICAgICAgIDB4MTIz
MjFjMDAwIC0gICAgICAgIDB4MTIzMjRhZmZmICBjb20uYXBwbGUuTWV0YWxQZXJmb3JtYW5jZVNo
YWRlcnMuTVBTTWF0cml4ICgxLjAgLSAxKSA8N0Q1RjdBQTItQTFCQi0zMkZBLTk0NUUtQTRGM0U2
MTU1RjU4PiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZv
cm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJv
ZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVS
b290L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvTWV0YWxQZXJmb3JtYW5jZVNoYWRlcnMuZnJh
bWV3b3JrL0ZyYW1ld29ya3MvTVBTTWF0cml4LmZyYW1ld29yay9NUFNNYXRyaXgNCiAgICAgICAw
eDEyMzI2ODAwMCAtICAgICAgICAweDEyMzJiOWZmZiAgY29tLmFwcGxlLk1ldGFsUGVyZm9ybWFu
Y2VTaGFkZXJzLk1QU1JheUludGVyc2VjdG9yICgxLjAgLSAxKSA8Mjg5M0IzODEtRTEzQy0zNTNF
LUFFRDAtM0UxOTJGODVCRkI1PiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZl
bG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVT
aW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3Vy
Y2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvTWV0YWxQZXJmb3JtYW5j
ZVNoYWRlcnMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvTVBTUmF5SW50ZXJzZWN0b3IuZnJhbWV3b3Jr
L01QU1JheUludGVyc2VjdG9yDQogICAgICAgMHgxMjMyZDYwMDAgLSAgICAgICAgMHgxMjMzMTdm
ZmYgIGNvbS5hcHBsZS5NZXRhbFBlcmZvcm1hbmNlU2hhZGVycy5NUFNOREFycmF5ICgxLjAgLSAx
KSA8NTI1NkIwM0MtNzk2My0zMkUxLTk0ODctQzRFOEI5QjkwNDMyPiAvQXBwbGljYXRpb25zL1hj
b2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xp
YnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1
bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L0ZyYW1l
d29ya3MvTWV0YWxQZXJmb3JtYW5jZVNoYWRlcnMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvTVBTTkRB
cnJheS5mcmFtZXdvcmsvTVBTTkRBcnJheQ0KICAgICAgIDB4MTIzMzRlMDAwIC0gICAgICAgIDB4
MTIzNDFiZmZmICBjb20uYXBwbGUuZ3B1c3cuTWV0YWxUb29scyAoMS4wIC0gMSkgPDU1MjgwN0Qz
LUM3QkEtMzg1MC04QTNBLTE5NDVGMjU5RUE4MD4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29u
dGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVs
b3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRl
bnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jr
cy9NZXRhbFRvb2xzLmZyYW1ld29yay9NZXRhbFRvb2xzDQogICAgICAgMHgxMjM1NzIwMDAgLSAg
ICAgICAgMHgxMjM1ODFmZmYgIGNvbS5hcHBsZS5jb3JldGVsZXBob255LkNUQ2FycmllclNwYWNl
ICgxLjAgLSAxKSA8RkNFNDRDRkEtMjgyRC0zNkJELTk2OTUtQTkxMTMwRDEzM0YyPiAvQXBwbGlj
YXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBs
YXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMv
aU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJy
YXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0NUQ2FycmllclNwYWNlLmZyYW1ld29yay9DVENhcnJpZXJT
cGFjZQ0KICAgICAgIDB4MTIzNWEwMDAwIC0gICAgICAgIDB4MTIzNWUyZmZmICBjb20uYXBwbGUu
YXdkICgxLjAgLSA5NTEpIDw4QTVGNUI4QS0wN0RCLTM3MTUtOTU1OS1FNTAzMDcyQThFRjE+IC9B
cHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25l
T1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50
aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVt
L0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvV2lyZWxlc3NEaWFnbm9zdGljcy5mcmFtZXdvcmsv
V2lyZWxlc3NEaWFnbm9zdGljcw0KICAgICAgIDB4MTIzNjFjMDAwIC0gICAgICAgIDB4MTIzNzNj
ZmZmICtsaWJBV0RTdXBwb3J0RnJhbWV3b3JrLmR5bGliICg0MTQ2KSA8NjhEQTA2QUEtOEFDNi0z
RjJFLUFCOUItMTVFQTcyRDFDN0VFPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9E
ZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0Nv
cmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVz
b3VyY2VzL1J1bnRpbWVSb290L3Vzci9saWIvbGliQVdEU3VwcG9ydEZyYW1ld29yay5keWxpYg0K
ICAgICAgIDB4MTIzODgyMDAwIC0gICAgICAgIDB4MTIzOGI3ZmZmICtsaWJBV0RTdXBwb3J0LmR5
bGliICg5NTEpIDxCQkQ1QzA2Qi04RjBELTNEQUItQTQ0QS0zNjE1NkI0NTQ3MTk+IC9BcHBsaWNh
dGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxh
dGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9p
T1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvdXNyL2xpYi9saWJB
V0RTdXBwb3J0LmR5bGliDQogICAgICAgMHgxMjM4Y2QwMDAgLSAgICAgICAgMHgxMjM4ZGRmZmYg
K2xpYnByb3RvYnVmLWxpdGUuZHlsaWIgKDQxNDYpIDwyODBCQzhGOS1FQkI3LTMwNzMtOTA5OC02
RDM3MDQ3OEE4ODI+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9Q
bGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRv
ci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVu
dGltZVJvb3QvdXNyL2xpYi9saWJwcm90b2J1Zi1saXRlLmR5bGliDQogICAgICAgMHgxMjM4ZmIw
MDAgLSAgICAgICAgMHgxMjM5NTZmZmYgK2xpYnByb3RvYnVmLmR5bGliICg0MTQ2KSA8RjY5NkIw
NzAtRkNEQS0zMkZGLUI5ODAtRjcwNEY5MDgwMDBDPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9D
b250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2
ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29u
dGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L3Vzci9saWIvbGlicHJvdG9idWYuZHlsaWINCiAg
ICAgICAweDEyM2E4MTAwMCAtICAgICAgICAweDEyM2E4ZGZmZiArbGlib2JqYy10cmFtcG9saW5l
cy5keWxpYiAoODI0KSA8RkEyNDNCOTgtQ0M3Ri0zMUUyLUJBQzgtRUMzQzA2QjkxMDUzPiAvQXBw
bGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9T
LnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGlt
ZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L3Vzci9saWIv
bGlib2JqYy10cmFtcG9saW5lcy5keWxpYg0KICAgICAgIDB4MTI1OTAwMDAwIC0gICAgICAgIDB4
MTI1OTJmZmZmICBjb20uYXBwbGUuQ29yZVNlcnZpY2VzSW50ZXJuYWwgKDQ3NC4zIC0gNDc0LjMp
IDxERDlDNEFBQi1DRjkzLTNFMDQtOUJEOC02MTM1NzZFOUM0MEI+IC9BcHBsaWNhdGlvbnMvWGNv
ZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGli
cmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVu
dGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0
ZUZyYW1ld29ya3MvQ29yZVNlcnZpY2VzSW50ZXJuYWwuZnJhbWV3b3JrL0NvcmVTZXJ2aWNlc0lu
dGVybmFsDQogICAgICAgMHgxMjU5NjIwMDAgLSAgICAgICAgMHgxMjU5ODdmZmYgIGNvbS5hcHBs
ZS5BcHBTU08gKDEuMCAtIDEpIDxEQUVBMkZFNy1DQ0I0LTM3NDYtOTYxOS01NzNGMzMyN0ZDREQ+
IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBo
b25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9S
dW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lz
dGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQXBwU1NPLmZyYW1ld29yay9BcHBTU08NCiAg
ICAgICAweDEyNTliMDAwMCAtICAgICAgICAweDEyNTlkMmZmZiAgY29tLmFwcGxlLlNoYXJlZFdl
YkNyZWRlbnRpYWxzICg5MjguNiAtIDkyOC42KSA8NzRERkY4NDUtNzQ3My0zNzI4LUFBOTAtQjAx
OEI3Q0UwMEFCPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxh
dGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3Iv
UHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRp
bWVSb290L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1NoYXJlZFdlYkNyZWRlbnRp
YWxzLmZyYW1ld29yay9TaGFyZWRXZWJDcmVkZW50aWFscw0KICAgICAgIDB4MTI1OWY4MDAwIC0g
ICAgICAgIDB4MTI1OWY4ZmZmICBjb20uYXBwbGUuYXZmb3VuZGF0aW9uICgyLjAgLSAyMDEwLjMx
KSA8RUMxNTU5MDctMThBMy0zQkE5LUJGQ0UtNDk4RDA3OTU4QUVFPiAvQXBwbGljYXRpb25zL1hj
b2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xp
YnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1
bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L0ZyYW1l
d29ya3MvQVZGb3VuZGF0aW9uLmZyYW1ld29yay9BVkZvdW5kYXRpb24NCiAgICAgICAweDEyNWMw
MDAwMCAtICAgICAgICAweDEyNWMxNmZmZiAgY29tLmFwcGxlLkFwcFNTT0NvcmUgKDEuMCAtIDEp
IDwxM0Y0RDU0Ri05NjRBLTNCNTctQThEQi1FNzEzRTFERUJGQ0U+IC9BcHBsaWNhdGlvbnMvWGNv
ZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGli
cmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVu
dGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0
ZUZyYW1ld29ya3MvQXBwU1NPQ29yZS5mcmFtZXdvcmsvQXBwU1NPQ29yZQ0KICAgICAgIDB4MTI1
YzM1MDAwIC0gICAgICAgIDB4MTI1ZDYyZmZmICBjb20uYXBwbGUuQVZLaXQgKDEuMCAtIDc2Ni4x
LjcpIDxFNDJFMTA1Qy1GODZFLTM1RTctQTZGMC02MTI0NzNBRTZDOTA+IC9BcHBsaWNhdGlvbnMv
WGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0v
TGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2lt
cnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvRnJh
bWV3b3Jrcy9BVktpdC5mcmFtZXdvcmsvQVZLaXQNCiAgICAgICAweDEyNWU3ZjAwMCAtICAgICAg
ICAweDEyNWU4OGZmZiAgY29tLmFwcGxlLkNlbGVzdGlhbCAoMS4wIC0gMjc3MC4zMy4xLjQpIDw2
ODQyRjE0Ri1GMjMwLTM0MUQtQUFCQi0wODBEQ0M3QjE4Q0M+IC9BcHBsaWNhdGlvbnMvWGNvZGUu
YXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFy
eS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGlt
ZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZy
YW1ld29ya3MvQ2VsZXN0aWFsLmZyYW1ld29yay9DZWxlc3RpYWwNCiAgICAgICAweDEyNWVhNzAw
MCAtICAgICAgICAweDEyNWVmOGZmZiAgY29tLmFwcGxlLlBlZ2FzdXMgKDEuMCAtIDIwMy4zKSA8
RkM0REZDNjMtQUY5RS0zQ0NELUE3QzQtODBGNjM3RDU2RUE4PiAvQXBwbGljYXRpb25zL1hjb2Rl
LmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJh
cnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRp
bWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVG
cmFtZXdvcmtzL1BlZ2FzdXMuZnJhbWV3b3JrL1BlZ2FzdXMNCiAgICAgICAweDEyNWY1MDAwMCAt
ICAgICAgICAweDEyNjQ2NGZmZiAgY29tLmFwcGxlLk1lZGlhVG9vbGJveCAoMS4wIC0gMjc3MC4z
My4xLjQpIDwxMkYxMzU1MS1DODI4LTNCNEMtQTY3My1BMThFOENBMTkzQTc+IC9BcHBsaWNhdGlv
bnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZv
cm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Mu
c2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkv
RnJhbWV3b3Jrcy9NZWRpYVRvb2xib3guZnJhbWV3b3JrL01lZGlhVG9vbGJveA0KICAgICAgIDB4
MTI2NmQ5MDAwIC0gICAgICAgIDB4MTI2OTVhZmZmICBjb20uYXBwbGUuTWVkaWFSZW1vdGUgKDEu
MCAtIDEpIDxCQkRERTU5NC1BRTlELTM1MTYtQkNBNS0xMEQ5MDU0M0NGQjE+IC9BcHBsaWNhdGlv
bnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZv
cm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Mu
c2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkv
UHJpdmF0ZUZyYW1ld29ya3MvTWVkaWFSZW1vdGUuZnJhbWV3b3JrL01lZGlhUmVtb3RlDQogICAg
ICAgMHgxMjZiOWIwMDAgLSAgICAgICAgMHgxMjZjYTJmZmYgIGNvbS5hcHBsZS5hdWRpby5BVkZB
dWRpbyAoMS4wIC0gNDc3Ljg0KSA8OTE2OEFDNzYtMUVCMC0zNzQ3LUE3MEUtRTM5MjlDOEE2OTI3
PiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQ
aG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMv
UnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5
c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQVZGQXVkaW8uZnJhbWV3b3JrL0FWRkF1ZGlvDQogICAg
ICAgMHgxMjZkNDcwMDAgLSAgICAgICAgMHgxMjZkNWNmZmYgIGNvbS5hcHBsZS5NYXRlcmlhbEtp
dCAoMS4wIC0gMSkgPDQyNjJFMDQ4LTM1NjUtM0U0OS1BNDkwLTNGNzFBRDE0NzM5RD4gL0FwcGxp
Y2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5w
bGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVz
L2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGli
cmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9NYXRlcmlhbEtpdC5mcmFtZXdvcmsvTWF0ZXJpYWxLaXQN
CiAgICAgICAweDEyNmQ3ZjAwMCAtICAgICAgICAweDEyNmQ5NWZmZiAgY29tLmFwcGxlLkJhc2VC
b2FyZFVJICg1MjYgLSA1MjYpIDw1N0IwNUQ1RC03RDBELTM4RDMtQUFCQS03NzAzOTg3NTc2QzE+
IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBo
b25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9S
dW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lz
dGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQmFzZUJvYXJkVUkuZnJhbWV3b3JrL0Jhc2VC
b2FyZFVJDQogICAgICAgMHgxMjZkYjYwMDAgLSAgICAgICAgMHgxMjZmNDNmZmYgIGNvbS5hcHBs
ZS5BVkZDb3JlICgxLjAgLSAyMDEwLjMxKSA8MjJERjgxM0QtRDYyMS0zNkUxLTlGMUQtNzY0MkEx
RjE3ODRFPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZv
cm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJv
ZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVS
b290L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0FWRkNvcmUuZnJhbWV3b3JrL0FW
RkNvcmUNCiAgICAgICAweDEyNzE1NDAwMCAtICAgICAgICAweDEyNzIyY2ZmZiAgY29tLmFwcGxl
LkFWRkNhcHR1cmUgKDEuMCAtIDgxLjM3LjEuMSkgPDBCNEY3RDU5LUVGQUQtMzQyQy1BNkJDLTc4
MDUzNDc0NENCMj4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1Bs
YXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9y
L1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50
aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9BVkZDYXB0dXJlLmZyYW1l
d29yay9BVkZDYXB0dXJlDQogICAgICAgMHgxMjczMTkwMDAgLSAgICAgICAgMHgxMjczYWRmZmYg
IGNvbS5hcHBsZS5BaXJQbGF5U3luYyAoMS4wIC0gMjc3MC4zMy4xLjQpIDxBMTA4RTUwNy1CQjdD
LTM0QjktODg1MC1BNkU2ODgwMTA4RUY+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRz
L0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIv
Q29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9S
ZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQWly
UGxheVN5bmMuZnJhbWV3b3JrL0FpclBsYXlTeW5jDQogICAgICAgMHgxMjc0NTAwMDAgLSAgICAg
ICAgMHgxMjc0NjdmZmYgIGNvbS5hcHBsZS5hdWRpby5BdWRpb1Nlc3Npb24gKDEuMCAtIDc2LjY5
KSA8MUY4RDVGMzYtRDRCOC0zQzM1LThDM0ItMDVFMjVCNzVEOUU4PiAvQXBwbGljYXRpb25zL1hj
b2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xp
YnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1
bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L1ByaXZh
dGVGcmFtZXdvcmtzL0F1ZGlvU2Vzc2lvbi5mcmFtZXdvcmsvQXVkaW9TZXNzaW9uDQogICAgICAg
MHgxMjc0ODYwMDAgLSAgICAgICAgMHgxMjc0Y2NmZmYgIGNvbS5hcHBsZS5DTUNhcHR1cmUgKDEu
MCAtIDgxLjM3LjEuMSkgPDFFM0NBM0U1LUM2OEQtM0M1Mi04OTlBLUQyNkFBN0YzNDk5Mz4gL0Fw
cGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVP
Uy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRp
bWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0v
TGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9DTUNhcHR1cmUuZnJhbWV3b3JrL0NNQ2FwdHVyZQ0K
ICAgICAgIDB4MTI3NTQyMDAwIC0gICAgICAgIDB4MTI3NWQ1ZmZmICBjb20uYXBwbGUuUXVhZ2dh
ICg4NSAtIDg1KSA8QUNBRDkwNjgtOEVDRS0zRjgzLUE5MzItRTlDNTE5N0NGMEQ4PiAvQXBwbGlj
YXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBs
YXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMv
aU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJy
YXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1F1YWdnYS5mcmFtZXdvcmsvUXVhZ2dhDQogICAgICAgMHgx
Mjc1ZjgwMDAgLSAgICAgICAgMHgxMjc2MDJmZmYgIGNvbS5hcHBsZS5DTUNhcHR1cmVDb3JlICgx
LjAgLSA4MS4zNy4xLjEpIDwxMDc4QkJERS1FMThBLTMzRDMtOUJCRS1FNEQ3NkQ2MDJCQUU+IC9B
cHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25l
T1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50
aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVt
L0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQ01DYXB0dXJlQ29yZS5mcmFtZXdvcmsvQ01DYXB0
dXJlQ29yZQ0KICAgICAgIDB4MTI3NjUwMDAwIC0gICAgICAgIDB4MTI3NjYyZmZmICBjb20uYXBw
bGUuUmVtb3RlVGV4dElucHV0ICgxLjAgLSAxKSA8NDg5MTczNjUtOTdBRC0zNUEwLTlFODUtMTcx
MDFBMjkyQzI5PiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxh
dGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3Iv
UHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRp
bWVSb290L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1JlbW90ZVRleHRJbnB1dC5m
cmFtZXdvcmsvUmVtb3RlVGV4dElucHV0DQogICAgICAgMHgxMjc2N2YwMDAgLSAgICAgICAgMHgx
Mjc2YzhmZmYgIGNvbS5hcHBsZS5NZWRpYVNlcnZpY2VzICgxLjAgLSAxKSA8NjhCMjJEMkQtRjkz
OC0zQjNDLUE4MDctQTlBNUI4RUEyRjcwPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50
cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVy
L0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMv
UmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL01l
ZGlhU2VydmljZXMuZnJhbWV3b3JrL01lZGlhU2VydmljZXMNCiAgICAgICAweDEyNzcyMDAwMCAt
ICAgICAgICAweDEyNzgzMmZmZiAgY29tLmFwcGxlLmlkcyAoMTAuMCAtIDEwMDApIDxGMERCQTRF
OS0yNkU1LTNBNDAtQUFDNC1GRDhFNkVFMjFCMDQ+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0Nv
bnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZl
bG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250
ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29y
a3MvSURTLmZyYW1ld29yay9JRFMNCiAgICAgICAweDEyNzhiZTAwMCAtICAgICAgICAweDEyNzhi
ZWZmZiAgY29tLmFwcGxlLm1hcmNvICgxMC4wIC0gMTAwMCkgPDRGREFGQzE1LTNDMTItM0ZFOS05
MjA1LTA1NzY2NTcyRDgzMj4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxv
cGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2lt
dWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNl
cy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9NYXJjby5mcmFt
ZXdvcmsvTWFyY28NCiAgICAgICAweDEyNzhjNzAwMCAtICAgICAgICAweDEyNzkyZGZmZiAgY29t
LmFwcGxlLmltZm91bmRhdGlvbiAoMTAuMCAtIDEwMDApIDw0ODU2QzYyNS04MERELTM0MzAtODFG
NS1DM0NGOTE5QTNEMDg+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Bl
ci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVs
YXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMv
UnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvSU1Gb3VuZGF0aW9u
LmZyYW1ld29yay9JTUZvdW5kYXRpb24NCiAgICAgICAweDEyNzk4ODAwMCAtICAgICAgICAweDEy
N2IwMGZmZiAgY29tLmFwcGxlLmlkc2ZvdW5kYXRpb24gKDEwLjAgLSAxMDAwKSA8NUQxM0Y0RUYt
Q0E3Mi0zQkI2LUJFM0QtODYyMzU0N0U5QTExPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250
ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxv
cGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVu
dHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtz
L0lEU0ZvdW5kYXRpb24uZnJhbWV3b3JrL0lEU0ZvdW5kYXRpb24NCiAgICAgICAweDEyN2JmNDAw
MCAtICAgICAgICAweDEyN2MwYWZmZiAgY29tLmFwcGxlLkVuZ3JhbSAoMS4wIC0gMSkgPENGRURC
OUY5LTRCRUEtMzM0NS04QzJFLUVFNEQwNTBBRDI0Rj4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAv
Q29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0Rl
dmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0Nv
bnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3
b3Jrcy9FbmdyYW0uZnJhbWV3b3JrL0VuZ3JhbQ0KICAgICAgIDB4MTI3YzIzMDAwIC0gICAgICAg
IDB4MTI3Yzg1ZmZmICBjb20uYXBwbGUuVGV4dElucHV0VUkgKDEuMCkgPEJGM0RCQkNELTA0RjUt
M0VFOC05MTlBLTc4ODA4OTJFMjg0QT4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMv
RGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9D
b3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jl
c291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9UZXh0
SW5wdXRVSS5mcmFtZXdvcmsvVGV4dElucHV0VUkNCiAgICAgICAweDEyN2UwMDAwMCAtICAgICAg
ICAweDEyN2UzYmZmZiAgY29tLmFwcGxlLkVtb2ppRm91bmRhdGlvbiAoMS4wIC0gMSkgPDBGRDg1
QzJDLUY4RjItMzhCNC1CRjI0LTNDREU4MjIwRTE3Nz4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAv
Q29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0Rl
dmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0Nv
bnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3
b3Jrcy9FbW9qaUZvdW5kYXRpb24uZnJhbWV3b3JrL0Vtb2ppRm91bmRhdGlvbg0KICAgICAgIDB4
MTI4NmIxMDAwIC0gICAgICAgIDB4MTI4NzhkZmZmICBjb20uYXBwbGUuUHJvb2ZSZWFkZXIgKDIu
NCAtIDUyNi4yKSA8RERFQkUzQzEtQkZFRS0zRjRBLUJGMDktMjY4N0VBRTUxOTc4PiAvQXBwbGlj
YXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBs
YXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMv
aU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJy
YXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1Byb29mUmVhZGVyLmZyYW1ld29yay9Qcm9vZlJlYWRlcg0K
ICAgICAgIDB4MTM1MWE0MDAwIC0gICAgICAgIDB4MTM1MWMxZmZmICtsaWJDR0ludGVyZmFjZXMu
ZHlsaWIgKDU0NC40KSA8MjcxNzRFQTUtODVFNC0zRDlDLTk0NzctOEU4QjRFM0ZGRTRFPiAvQXBw
bGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9T
LnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGlt
ZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9M
aWJyYXJ5L0ZyYW1ld29ya3MvQWNjZWxlcmF0ZS5mcmFtZXdvcmsvRnJhbWV3b3Jrcy92SW1hZ2Uu
ZnJhbWV3b3JrL0xpYnJhcmllcy9saWJDR0ludGVyZmFjZXMuZHlsaWINCiAgICAgICAweDEzNTFl
NzAwMCAtICAgICAgICAweDEzNTJhM2ZmZiArbGliYm9yaW5nc3NsLmR5bGliICgzNTEuMTAwLjgu
MC4xKSA8REFGNDdBRkYtRDc0Ri0zQUE2LTk0NDktRUVFQ0QxMzMyMDg3PiAvQXBwbGljYXRpb25z
L1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3Jt
L0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNp
bXJ1bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L3Vzci9saWIvbGliYm9yaW5n
c3NsLmR5bGliDQogICAgICAgMHgxMzUzNWQwMDAgLSAgICAgICAgMHgxMzUzNzNmZmYgIGNvbS5h
cHBsZS53ZWJjb250ZW50ZmlsdGVyLmZyYW1ld29yayAoNS4xIC0gNS4xKSA8OEZENjY1RUUtRjFB
OC0zNEUwLUFERTctNTExQTRCNzg5QUZDPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50
cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVy
L0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMv
UmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1dl
YkNvbnRlbnRBbmFseXNpcy5mcmFtZXdvcmsvV2ViQ29udGVudEFuYWx5c2lzDQogICAgICAgMHgx
MzUzOTcwMDAgLSAgICAgICAgMHgxMzUzYjVmZmYgIGNvbS5hcHBsZS5zcGVlY2guTGF0ZW50U2Vt
YW50aWNNYXBwaW5nRnJhbWV3b3JrICgyLjEyLjMgLSAyLjEyLjUpIDxEOUI3RUQyMC1ERjUxLTMz
NDktQUZFNC0wRTc5OEY4OUU1NTk+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0Rl
dmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29y
ZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNv
dXJjZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvTGF0ZW50
U2VtYW50aWNNYXBwaW5nLmZyYW1ld29yay9MYXRlbnRTZW1hbnRpY01hcHBpbmcNCiAgICAgICAw
eDEzNTRjYTAwMCAtICAgICAgICAweDEzNTRlN2ZmZiArbGliZWRpdC4zLmR5bGliICg1NSkgPEIy
MTdBNUI4LTRBNzYtM0RCNi05NjEwLTFCMzhBNEZGQTY1QT4gL0FwcGxpY2F0aW9ucy9YY29kZS5h
cHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5
L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1l
L0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC91c3IvbGliL2xpYmVkaXQuMy5keWxpYg0K
ICAgICAgIDB4MTM2MDE4MDAwIC0gICAgICAgIDB4MTM2MDY4ZmZmICBjb20uYXBwbGUudm9pY2Vz
ZXJ2aWNlcyAoMS4wLjAgLSAxLjApIDxCMUM0QzVDRC1COTZELTNBRUMtOUYwMS1GMDYxNEVFMDMy
ODQ+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMv
aVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxl
cy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3Qv
U3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvVm9pY2VTZXJ2aWNlcy5mcmFtZXdvcmsv
Vm9pY2VTZXJ2aWNlcw0KICAgICAgIDB4MTM3NzVhMDAwIC0gICAgICAgIDB4MTM3ODI0ZmZmICBj
b20uYXBwbGUuc2lyaS5TaXJpSW5zdHJ1bWVudGF0aW9uICgxLjAgLSAxKSA8RDVEM0I0REMtMTU1
OC0zRkJDLUJCRjgtRTRFOEMyNkJCQzcyPiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50
cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xpYnJhcnkvRGV2ZWxvcGVy
L0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1bnRpbWUvQ29udGVudHMv
UmVzb3VyY2VzL1J1bnRpbWVSb290L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1Np
cmlJbnN0cnVtZW50YXRpb24uZnJhbWV3b3JrL1NpcmlJbnN0cnVtZW50YXRpb24NCiAgICAgICAw
eDEzNzhlZDAwMCAtICAgICAgICAweDEzNzkxY2ZmZiArbGlibmN1cnNlcy41LjQuZHlsaWIgKDU3
KSA8N0M0MzBDREQtRERDOC0zMDZELTk0MUMtOTQ4M0VGMUU4MjdEPiAvQXBwbGljYXRpb25zL1hj
b2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL2lQaG9uZU9TLnBsYXRmb3JtL0xp
YnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvUHJvZmlsZXMvUnVudGltZXMvaU9TLnNpbXJ1
bnRpbWUvQ29udGVudHMvUmVzb3VyY2VzL1J1bnRpbWVSb290L3Vzci9saWIvbGlibmN1cnNlcy41
LjQuZHlsaWINCiAgICAgICAweDEzNzkzNDAwMCAtICAgICAgICAweDEzNzlhM2ZmZiAgY29tLmFw
cGxlLkNhbGxLaXQgKDEuMCAtIDEpIDw1MEYzQjExQS1GM0FBLTNFNzEtOUIxQi00OUU3MzIwNDI4
NDc+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMv
aVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxl
cy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJjZXMvUnVudGltZVJvb3Qv
U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9DYWxsS2l0LmZyYW1ld29yay9DYWxsS2l0DQogICAg
ICAgMHgxMzg1NjIwMDAgLSAgICAgICAgMHgxMzg3M2JmZmYgIGNvbS5hcHBsZS5Bc3Npc3RhbnRT
ZXJ2aWNlcyAoMS4wIC0gMSkgPDA5NkFFREYzLURGODUtM0EwOS1BM0NELUVCRDI2REQzM0MxRj4g
L0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhv
bmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1
bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9SdW50aW1lUm9vdC9TeXN0
ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9Bc3Npc3RhbnRTZXJ2aWNlcy5mcmFtZXdvcmsv
QXNzaXN0YW50U2VydmljZXMNCiAgICAgICAweDEzODk4MjAwMCAtICAgICAgICAweDEzOGEzNGZm
ZiAgY29tLmFwcGxlLlNBT2JqZWN0cyAoMS4wIC0gMSkgPDIzM0YzNDFGLUNDRjYtMzY5RS1CNjdF
LTY3NDgzMDE5NkJDRD4gL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVy
L1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxh
dG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lL0NvbnRlbnRzL1Jlc291cmNlcy9S
dW50aW1lUm9vdC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9TQU9iamVjdHMuZnJh
bWV3b3JrL1NBT2JqZWN0cw0KICAgICAgIDB4MTM4ZWYwMDAwIC0gICAgICAgIDB4MTM5NTI2ZmZm
ICBjb20uYXBwbGUuc2lyaS50dHMuU2lyaVRUUyAoMSAtIDEpIDwzNzAxQzYwRi03MzFELTM5M0Yt
OEMxMy1DM0MyOTRERUI4MDY+IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVs
b3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNp
bXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZS9Db250ZW50cy9SZXNvdXJj
ZXMvUnVudGltZVJvb3QvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvU2lyaVRUUy5m
cmFtZXdvcmsvU2lyaVRUUw0KDQpFeHRlcm5hbCBNb2RpZmljYXRpb24gU3VtbWFyeToNCiAgQ2Fs
bHMgbWFkZSBieSBvdGhlciBwcm9jZXNzZXMgdGFyZ2V0aW5nIHRoaXMgcHJvY2VzczoNCiAgICB0
YXNrX2Zvcl9waWQ6IDANCiAgICB0aHJlYWRfY3JlYXRlOiAwDQogICAgdGhyZWFkX3NldF9zdGF0
ZTogMA0KICBDYWxscyBtYWRlIGJ5IHRoaXMgcHJvY2VzczoNCiAgICB0YXNrX2Zvcl9waWQ6IDAN
CiAgICB0aHJlYWRfY3JlYXRlOiAwDQogICAgdGhyZWFkX3NldF9zdGF0ZTogMA0KICBDYWxscyBt
YWRlIGJ5IGFsbCBwcm9jZXNzZXMgb24gdGhpcyBtYWNoaW5lOg0KICAgIHRhc2tfZm9yX3BpZDog
MA0KICAgIHRocmVhZF9jcmVhdGU6IDANCiAgICB0aHJlYWRfc2V0X3N0YXRlOiAwDQoNClZNIFJl
Z2lvbiBTdW1tYXJ5Og0KUmVhZE9ubHkgcG9ydGlvbiBvZiBMaWJyYXJpZXM6IFRvdGFsPTU1Ny45
TSByZXNpZGVudD0wSygwJSkgc3dhcHBlZF9vdXRfb3JfdW5hbGxvY2F0ZWQ9NTU3LjlNKDEwMCUp
DQpXcml0YWJsZSByZWdpb25zOiBUb3RhbD00LjlHIHdyaXR0ZW49MEsoMCUpIHJlc2lkZW50PTBL
KDAlKSBzd2FwcGVkX291dD0wSygwJSkgdW5hbGxvY2F0ZWQ9NC45RygxMDAlKQ0KIA0KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBWSVJUVUFMICAgUkVHSU9OIA0KUkVHSU9OIFRZUEUg
ICAgICAgICAgICAgICAgICAgICAgICBTSVpFICAgIENPVU5UIChub24tY29hbGVzY2VkKSANCj09
PT09PT09PT09ICAgICAgICAgICAgICAgICAgICAgPT09PT09PSAgPT09PT09PSANCkFjdGl2aXR5
IFRyYWNpbmcgICAgICAgICAgICAgICAgICAgMjU2SyAgICAgICAgMSANCkNHIHJhc3RlciBkYXRh
ICAgICAgICAgICAgICAgICAgICAxMC41TSAgICAgICAxOSANCkNvcmVBbmltYXRpb24gICAgICAg
ICAgICAgICAgICAgICAgODIwSyAgICAgICAxNyANCkZvdW5kYXRpb24gICAgICAgICAgICAgICAg
ICAgICAgICAgIDE2SyAgICAgICAgMSANCkpTIEpJVCBnZW5lcmF0ZWQgY29kZSAgICAgICAgICAg
ICAgMS4wRyAgICAgICAgMyANCktlcm5lbCBBbGxvYyBPbmNlICAgICAgICAgICAgICAgICAgICA4
SyAgICAgICAgMSANCk1BTExPQyAgICAgICAgICAgICAgICAgICAgICAgICAgIDkwNC40TSAgICAg
IDE1MyANCk1BTExPQyBndWFyZCBwYWdlICAgICAgICAgICAgICAgICAgIDQ4SyAgICAgICAxMCAN
Ck1BTExPQ19NRURJVU0gKHJlc2VydmVkKSAgICAgICAgICAgMi42RyAgICAgICAyNCAgICAgICAg
IHJlc2VydmVkIFZNIGFkZHJlc3Mgc3BhY2UgKHVuYWxsb2NhdGVkKQ0KTUFMTE9DX05BTk8gKHJl
c2VydmVkKSAgICAgICAgICAgMzg0LjBNICAgICAgICAxICAgICAgICAgcmVzZXJ2ZWQgVk0gYWRk
cmVzcyBzcGFjZSAodW5hbGxvY2F0ZWQpDQpTVEFDSyBHVUFSRCAgICAgICAgICAgICAgICAgICAg
ICAgNTYuMU0gICAgICAgMjYgDQpTdGFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAu
N00gICAgICAgMjYgDQpWTV9BTExPQ0FURSAgICAgICAgICAgICAgICAgICAgICAgICAzNksgICAg
ICAgIDUgDQpXZWJLaXQgTWFsbG9jICAgICAgICAgICAgICAgICAgICAgMTguMU0gICAgICAgMzAg
DQpfX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEuNk0gICAgICA0MDMgDQpfX0RB
VEFfQ09OU1QgICAgICAgICAgICAgICAgICAgICAgMzAuMU0gICAgICAzMjUgDQpfX0RBVEFfRElS
VFkgICAgICAgICAgICAgICAgICAgICAgICA4NEsgICAgICAgMTEgDQpfX0ZPTlRfREFUQSAgICAg
ICAgICAgICAgICAgICAgICAgICAgNEsgICAgICAgIDEgDQpfX0xJTktFRElUICAgICAgICAgICAg
ICAgICAgICAgICAyMjMuMk0gICAgICAzNjIgDQpfX1RFWFQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAzMzQuOU0gICAgICAzMzQgDQpfX1VOSUNPREUgICAgICAgICAgICAgICAgICAgICAgICAg
IDU4OEsgICAgICAgIDEgDQptYXBwZWQgZmlsZSAgICAgICAgICAgICAgICAgICAgICAyNjEuME0g
ICAgICAgNzggDQpzaGFyZWQgbWVtb3J5ICAgICAgICAgICAgICAgICAgICAgICAxNksgICAgICAg
IDEgDQo9PT09PT09PT09PSAgICAgICAgICAgICAgICAgICAgID09PT09PT0gID09PT09PT0gDQpU
T1RBTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuOEcgICAgIDE4MzMgDQpUT1RBTCwg
bWludXMgcmVzZXJ2ZWQgVk0gc3BhY2UgICAgIDIuOEcgICAgIDE4MzMgDQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439205</attachid>
            <date>2021-09-24 16:16:57 -0700</date>
            <delta_ts>2021-09-24 16:42:17 -0700</delta_ts>
            <desc>Take two</desc>
            <filename>bug-230714-20210924161656.patch</filename>
            <type>text/plain</type>
            <size>35023</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJmZDdkOTQ0YTczN2IxODFl
YTA5NGE1ZDQxNmNjYWM5ZWRkYmRkNTMuLmFlNWRmYWM5NmRhMzk5NDFlMjk2Yjk1ZWNkZjk5ODNh
MGY0NWZmNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjkgQEAKKzIwMjEtMDktMjMgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIFJlZmFj
dG9yIHNvbWUgSVBDIGFyZ3VtZW50IGVuY29kZXIgbG9naWMgdG8gd29yayB3aXRoIFN0cmVhbUNv
bm5lY3Rpb25FbmNvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA3MTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzNDc3NTkxPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgaXQgcG9zc2li
bGUgdG8gdXNlIGBJUEM6OlN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyYCB0byBlbmNvZGUgZGlzcGxh
eSBsaXN0IGl0ZW1zIChhbmQgdGhlaXIgbWVtYmVycykgaW4gYW4KKyAgICAgICAgSVBDIHN0cmVh
bS4gVGhpcyBwYXRjaCBjb21wcmlzZXMgdHdvIG1haW4gc2V0cyBvZiBjaGFuZ2VzIGluIGBBcmd1
bWVudENvZGVyc2AsIGFuZCBgV2ViQ29yZUFyZ3VtZW50Q29kZXJzYC4gU2VlCisgICAgICAgIGJl
bG93IGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQXJndW1lbnRD
b2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPGF1ZGl0X3Rva2VuX3Q+Ojpk
ZWNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaDoKKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNb25vc3RhdGU+OjplbmNvZGUpOgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT46OmRlY29kZSk6CisKKyAgICAgICAgTWFueSBv
ZiB0aGVzZSBgZW5jb2RlKClgIG1ldGhvZHMgYXJlIGN1cnJlbnRseSBub24tdGVtcGxhdGVkLCB3
aGljaCBtZWFucyB0aGF0IEVuY29kZXIgYW5kIERlY29kZXIgdXNlZCBoZXJlCisgICAgICAgIHJl
ZmVyIHNvbGVseSB0byBJUEM6OkVuY29kZXIgYW5kIElQQzo6RGVjb2RlciAocmVzcGVjdGl2ZWx5
KSBpbnN0ZWFkIG9mIG90aGVyIHR5cGVzIG9mIGVuY29kZXJzIChuYW1lbHksCisgICAgICAgIFN0
cmVhbUNvbm5lY3Rpb25FbmNvZGVyKS4KKworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9y
bT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QWZmaW5l
VHJhbnNmb3JtPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxGbG9hdFBvaW50Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxGbG9hdFBvaW50M0Q+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpB
cmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAg
KElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAg
ICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZW5jb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZW5jb2RlKTog
RGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjpkZWNvZGUp
OiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+
OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0Um91
bmRlZFJlY3Q+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVy
PEludFBvaW50Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxJbnRQb2ludD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8SW50UmVjdD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8SW50UmVjdD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8SW50U2l6ZT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8SW50U2l6ZT46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8TGF5b3V0U2l6ZT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8TGF5b3V0U2l6ZT46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8TGF5b3V0UG9pbnQ+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpB
cmd1bWVudENvZGVyPExheW91dFBvaW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKworICAgICAgICBU
aGVzZSBXZWJDb3JlIGFyZ3VtZW50IGNvZGVycyBhcmUgYWxzbyBjdXJyZW50bHkgaW5jb21wYXRp
YmxlIHdpdGggU3RyZWFtQ29ubmVjdGlvbkVuY29kZXIsIHNpbmNlIHRoZXkgYXJlIG5vbi0KKyAg
ICAgICAgdGVtcGxhdGVkIChhbmQgdGh1cyBvbmx5IHdvcmsgd2l0aCBJUEM6OkVuY29kZXIpLiBT
aW5jZSB0aGVzZSBhcmUgYWxsIGVuY29kYWJsZSBhcyBQT0QgdHlwZXMsIHdlIGNhbiBqdXN0IHVz
ZQorICAgICAgICBTaW1wbGVBcmd1bWVudENvZGVyIGZvciBhbGwgb2YgdGhlc2UuIFdlIGFsc28g
YWRkIGEgbmV3IGBERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSYCBtYWNybyB0byBtYWtlIHRo
aXMgY29kZSBhCisgICAgICAgIGJpdCBlYXNpZXIgdG8gcmVhZC4KKworICAgICAgICAqIFNoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkNvcmVB
cmd1bWVudENvZGVyc01hYy5tbToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDR1JlY3Q+
OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHUmVjdD46
OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6
ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDR1NpemU+Ojpk
ZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHUG9pbnQ+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHUG9pbnQ+Ojpk
ZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHQWZmaW5lVHJh
bnNmb3JtPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxD
R0FmZmluZVRyYW5zZm9ybT46OmRlY29kZSk6IERlbGV0ZWQuCisKIDIwMjEtMDktMjQgIERldmlu
IFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCB0eXBlY2hlY2tpbmcg
YGlzYCBvdmVybG9hZHMgZm9yIGBzdGQ6OnVuaXF1ZV9wdHJgLCBgV1RGOjpVbmlxdWVSZWZgLCBh
bmQgYFdURjo6V2Vha1B0cmAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L0FyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50
Q29kZXJzLmNwcAppbmRleCBhMzIwNTUxODc5OGI3NGRjZWRiOGEwMTNmOWM5Yzk4ODVhYWU2NjE2
Li5lN2YyNzgwMzYyZGQyMDM3NDM0Y2ExY2IzOTBkZGU2ZWY3OTE1OTM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmgiCiAjaW5jbHVkZSAi
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNvZGVyLmgiCiAjaW5jbHVkZSAiU3RyZWFtQ29ubmVj
dGlvbkVuY29kZXIuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CkBAIC0yMTgsNiArMjE5LDcgQEAgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgQXJndW1lbnRDb2Rl
cjxTSEExOjpEaWdlc3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU0gKIH0KIAogI2lmIEhB
VkUoQVVESVRfVE9LRU4pCisKIHZvaWQgQXJndW1lbnRDb2RlcjxhdWRpdF90b2tlbl90Pjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IGF1ZGl0X3Rva2VuX3QmIGF1ZGl0VG9rZW4pCiB7
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgoYXVkaXRUb2tl
bi52YWwpOyBpKyspCkBAIC0yMzIsMTUgKzIzNCw3IEBAIFdBUk5fVU5VU0VEX1JFVFVSTiBib29s
IEFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBh
CiAgICAgfQogICAgIHJldHVybiB0cnVlOwogfQotI2VuZGlmCi0KLXZvaWQgQXJndW1lbnRDb2Rl
cjxNb25vc3RhdGU+OjplbmNvZGUoRW5jb2RlciYsIGNvbnN0IE1vbm9zdGF0ZSYpCi17Ci19CiAK
LVdBUk5fVU5VU0VEX1JFVFVSTiBzdGQ6Om9wdGlvbmFsPE1vbm9zdGF0ZT4gQXJndW1lbnRDb2Rl
cjxNb25vc3RhdGU+OjpkZWNvZGUoRGVjb2RlciYpCi17Ci0gICAgcmV0dXJuIE1vbm9zdGF0ZSB7
IH07Ci19CisjZW5kaWYgLy8gSEFWRShBVURJVF9UT0tFTikKIAogfSAvLyBuYW1lc3BhY2UgSVBD
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5o
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAppbmRleCBhOGM4
OTNmMGM1MjQwYTg4ODljMzQ1MTRmOWZiMWVmZWUwZDYyNzBhLi44ZTA1ZjE4Y2FkMjdjMzdmMDdk
ZjVkYzI1NWIyMTdjODVjOTIzNjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L0lQQy9Bcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Fy
Z3VtZW50Q29kZXJzLmgKQEAgLTQwLDYgKzQwLDEwIEBACiAKIG5hbWVzcGFjZSBJUEMgewogCisj
ZGVmaW5lIERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoY2xhc3NOYW1lKSB0ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPGNsYXNzTmFtZT4gOiBTaW1wbGVBcmd1bWVudENvZGVyPGNs
YXNzTmFtZT4geyB9OyBcCisgICAgdGVtcGxhdGUgdm9pZCBTaW1wbGVBcmd1bWVudENvZGVyPGNs
YXNzTmFtZT46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVyJiwgY29uc3QgY2xhc3NOYW1lJik7IFwK
KyAgICB0ZW1wbGF0ZSBib29sIFNpbXBsZUFyZ3VtZW50Q29kZXI8Y2xhc3NOYW1lPjo6ZGVjb2Rl
PERlY29kZXI+KERlY29kZXImLCBjbGFzc05hbWUmKTsKKwogLy8gQW4gYXJndW1lbnQgY29kZXIg
d29ya3Mgb24gUE9EIHR5cGVzCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgU2ltcGxlQXJn
dW1lbnRDb2RlciB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KQEAgLTQ4LDYgKzUy
LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IFNpbXBsZUFyZ3VtZW50Q29kZXIgewog
ICAgICAgICBlbmNvZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVycHJldF9jYXN0PGNv
bnN0IHVpbnQ4X3QqPigmdCksIHNpemVvZihUKSwgYWxpZ25vZihUKSk7CiAgICAgfQogCisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJO
IGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFQmIHQpCiAgICAgewogICAgICAgICByZXR1
cm4gZGVjb2Rlci5kZWNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDx1aW50OF90
Kj4oJnQpLCBzaXplb2YoVCksIGFsaWdub2YoVCkpOwpAQCAtMTA3LDEyICsxMTIsMTQgQEAgdGVt
cGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8QXJyYXlSZWZlcmVuY2U8VCwg
YXJyYXlSZWZlcmVuY2VEeW5hbWkKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBB
cmd1bWVudENvZGVyPE9wdGlvblNldDxUPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29k
ZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IE9wdGlv
blNldDxUPiYgb3B0aW9uU2V0KQogICAgIHsKICAgICAgICAgQVNTRVJUKFdURjo6aXNWYWxpZE9w
dGlvblNldChvcHRpb25TZXQpKTsKICAgICAgICAgZW5jb2RlciA8PCBvcHRpb25TZXQudG9SYXco
KTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBX
QVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgT3B0aW9uU2V0
PFQ+JiBvcHRpb25TZXQpCiAgICAgewogICAgICAgICB0eXBlbmFtZSBPcHRpb25TZXQ8VD46OlN0
b3JhZ2VUeXBlIHZhbHVlOwpAQCAtMTI0LDYgKzEzMSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
IHN0cnVjdCBBcmd1bWVudENvZGVyPE9wdGlvblNldDxUPj4gewogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPE9wdGlvblNldDxUPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAg
ewogICAgICAgICBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIE9wdGlvblNldDxUPjo6U3RvcmFnZVR5
cGU+IHZhbHVlOwpAQCAtMTg3LDYgKzE5NSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVj
dCBBcmd1bWVudENvZGVyPHN0ZDo6b3B0aW9uYWw8VD4+IHsKIH07CiAKIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPEJveDxUPj4geworICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IEJveDxUPiYgYm94KQogICAgIHsKICAgICAgICAgaWYgKCFib3gpIHsKQEAgLTE5OCw2ICsy
MDcsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxCb3g8VD4+
IHsKICAgICAgICAgZW5jb2RlciA8PCAqYm94LmdldCgpOwogICAgIH0KIAorICAgIHRlbXBsYXRl
PHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCBCb3g8VD4mIGJveCkKICAgICB7CiAgICAgICAgIGJvb2wg
aXNFbmdhZ2VkOwpAQCAtMjE3LDYgKzIyNyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVj
dCBBcmd1bWVudENvZGVyPEJveDxUPj4gewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PEJveDxUPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9w
dGlvbmFsPGJvb2w+IGlzRW5nYWdlZDsKQEAgLTIzNSwxMSArMjQ2LDEzIEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPEJveDxUPj4gewogfTsKIAogdGVtcGxhdGU8
dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpwYWlyPFQs
IFU+PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qgc3RkOjpwYWlyPFQsIFU+JiBwYWlyKQogICAg
IHsKICAgICAgICAgZW5jb2RlciA8PCBwYWlyLmZpcnN0IDw8IHBhaXIuc2Vjb25kOwogICAgIH0K
IAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VE
X1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnBhaXI8VCwgVT4mIHBh
aXIpCiAgICAgewogICAgICAgICBUIGZpcnN0OwpAQCAtMjU1LDYgKzI2OCw3IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IHN0cnVjdCBBcmd1bWVudENvZGVyPHN0ZDo6cGFpcjxU
LCBVPj4gewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxULCBVPj4g
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPFQ+
IGZpcnN0OwpAQCAtMzY1LDExICszNzksMTMgQEAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gRWxlbWVu
dHM+IHN0cnVjdCBBcmd1bWVudENvZGVyPHN0ZDo6dHVwbGU8RWxlbWVudHMuLi4+PiB7CiB9Owog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlUeXBlLCB0eXBlbmFtZSBWYWx1ZVR5cGU+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdURjo6S2V5VmFsdWVQYWlyPEtleVR5cGUsIFZhbHVlVHlwZT4+IHsKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdCBXVEY6OktleVZhbHVlUGFpcjxLZXlUeXBlLCBWYWx1ZVR5cGU+
JiBwYWlyKQogICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBwYWlyLmtleSA8PCBwYWlyLnZhbHVl
OwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdB
Uk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBXVEY6OktleVZh
bHVlUGFpcjxLZXlUeXBlLCBWYWx1ZVR5cGU+JiBwYWlyKQogICAgIHsKICAgICAgICAgS2V5VHlw
ZSBrZXk7CkBAIC0zOTcsNiArNDEzLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlu
bGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KICAgICAg
ICAgICAgIGVuY29kZXIgPDwgdmVjdG9yW2ldOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVu
YW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxl
ciwgbWluQ2FwYWNpdHk+JiB2ZWN0b3IpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4+IG9w
dGlvbmFsOwpAQCAtNDM2LDYgKzQ1Myw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBp
bmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyLCBzaXplX3QgbWluCiAgICAg
ICAgIGVuY29kZXIuZW5jb2RlRml4ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
dWludDhfdCo+KHZlY3Rvci5kYXRhKCkpLCB2ZWN0b3Iuc2l6ZSgpICogc2l6ZW9mKFQpLCBhbGln
bm9mKFQpKTsKICAgICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAg
ICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4m
IHZlY3RvcikKICAgICB7CiAgICAgICAgIHVpbnQ2NF90IGRlY29kZWRTaXplOwpAQCAtNDUwLDcg
KzQ2OCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlw
ZW5hbWUgT3ZlcmZsb3dIYW5kbGVyLCBzaXplX3QgbWluCiAgICAgICAgIC8vIFNpbmNlIHdlIGtu
b3cgdGhlIHRvdGFsIHNpemUgb2YgdGhlIGVsZW1lbnRzLCB3ZSBjYW4gYWxsb2NhdGUgdGhlIHZl
Y3RvciBpbgogICAgICAgICAvLyBvbmUgZmVsbCBzd29vcC4gQmVmb3JlIGFsbG9jYXRpbmcgd2Ug
bXVzdCBob3dldmVyIG1ha2Ugc3VyZSB0aGF0IHRoZSBkZWNvZGVyIGJ1ZmZlcgogICAgICAgICAv
LyBpcyBiaWcgZW5vdWdoLgotICAgICAgICBpZiAoIWRlY29kZXIuYnVmZmVySXNMYXJnZUVub3Vn
aFRvQ29udGFpbjxUPihzaXplKSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLnRlbXBsYXRlIGJ1ZmZl
cklzTGFyZ2VFbm91Z2hUb0NvbnRhaW48VD4oc2l6ZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICAgICAgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIs
IG1pbkNhcGFjaXR5PiB0ZW1wOwpAQCAtNDk3LDYgKzUxNSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyLCBzaXpl
X3QgbWluCiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlw
ZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBNYXBwZWRUcmFp
dHNBcmcsIHR5cGVuYW1lIEhhc2hUYWJsZVRyYWl0cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFz
aE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBwZWRUcmFp
dHNBcmcsIEhhc2hUYWJsZVRyYWl0cz4+IHsKICAgICB0eXBlZGVmIEhhc2hNYXA8S2V5QXJnLCBN
YXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVkVHJhaXRzQXJnLCBIYXNoVGFi
bGVUcmFpdHM+IEhhc2hNYXBUeXBlOwogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4K
ICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgSGFzaE1hcFR5
cGUmIGhhc2hNYXApCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQz
Ml90PihoYXNoTWFwLnNpemUoKSk7CkBAIC01MDQsNiArNTIzLDcgQEAgdGVtcGxhdGU8dHlwZW5h
bWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1l
IEtleVRyYWkKICAgICAgICAgICAgIGVuY29kZXIgPDwgKml0OwogICAgIH0KIAorICAgIHRlbXBs
YXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8SGFzaE1hcFR5
cGU+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKICAgICAgICAgdWludDMyX3QgaGFz
aE1hcFNpemU7CkBAIC01MzQsNiArNTU0LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0
eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWkKICAg
ICAgICAgcmV0dXJuIGhhc2hNYXA7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVj
b2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIEhhc2hNYXBUeXBlJiBoYXNoTWFwKQogICAgIHsKICAgICAgICAgc3RkOjpvcHRp
b25hbDxIYXNoTWFwVHlwZT4gdGVtcEhhc2hNYXA7CkBAIC01NDgsNiArNTY5LDcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1lIEhhc2hBcmcs
IHR5cGVuYW1lIEtleVRyYWkKIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgSGFz
aEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNoVGFibGVUcmFpdHM+IHN0
cnVjdCBBcmd1bWVudENvZGVyPEhhc2hTZXQ8S2V5QXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcs
IEhhc2hUYWJsZVRyYWl0cz4+IHsKICAgICB0eXBlZGVmIEhhc2hTZXQ8S2V5QXJnLCBIYXNoQXJn
LCBLZXlUcmFpdHNBcmcsIEhhc2hUYWJsZVRyYWl0cz4gSGFzaFNldFR5cGU7CiAKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBIYXNoU2V0VHlwZSYgaGFzaFNldCkKICAgICB7CiAgICAgICAgIGVuY29k
ZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGhhc2hTZXQuc2l6ZSgpKTsKQEAgLTU1NSw2ICs1
NzcsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVu
YW1lIEtleVRyYWl0c0FyZywgdHlwZW5hbWUgSGFzaAogICAgICAgICAgICAgZW5jb2RlciA8PCAq
aXQ7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMg
V0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEhhc2hTZXRU
eXBlJiBoYXNoU2V0KQogICAgIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxIYXNoU2V0VHlwZT4g
dGVtcEhhc2hTZXQ7CkBAIC01NjYsNiArNTg5LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJn
LCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1lIEhhc2gK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVj
b2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxIYXNoU2V0VHlwZT4gZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCiAgICAgewogICAgICAgICB1aW50NjRfdCBoYXNoU2V0U2l6ZTsKQEAgLTU5
NSw2ICs2MTksNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcs
IHR5cGVuYW1lIEtleVRyYWl0c0FyZywgdHlwZW5hbWUgSGFzaAogdGVtcGxhdGU8dHlwZW5hbWUg
S2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmc+IHN0cnVjdCBB
cmd1bWVudENvZGVyPEhhc2hDb3VudGVkU2V0PEtleUFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJn
Pj4gewogICAgIHR5cGVkZWYgSGFzaENvdW50ZWRTZXQ8S2V5QXJnLCBIYXNoQXJnLCBLZXlUcmFp
dHNBcmc+IEhhc2hDb3VudGVkU2V0VHlwZTsKICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBF
bmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBI
YXNoQ291bnRlZFNldFR5cGUmIGhhc2hDb3VudGVkU2V0KQogICAgIHsKICAgICAgICAgZW5jb2Rl
ciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaGFzaENvdW50ZWRTZXQuc2l6ZSgpKTsKQEAgLTYw
NSw2ICs2MzAsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcs
IHR5cGVuYW1lIEtleVRyYWl0c0FyZz4gc3RydWN0IEFyZ3VtZQogICAgICAgICB9CiAgICAgfQog
ICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5V
U0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBIYXNoQ291bnRlZFNldFR5
cGUmIGhhc2hDb3VudGVkU2V0KQogICAgIHsKICAgICAgICAgdWludDY0X3QgaGFzaENvdW50ZWRT
ZXRTaXplOwpAQCAtNjM2LDYgKzY2Miw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlw
ZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnPiBzdHJ1Y3QgQXJndW1lCiB9Owog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZVR5cGUsIHR5cGVuYW1lIEVycm9yVHlwZT4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8RXhwZWN0ZWQ8VmFsdWVUeXBlLCBFcnJvclR5cGU+PiB7CisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgRXhwZWN0ZWQ8VmFsdWVUeXBlLCBFcnJvclR5cGU+JiBleHBlY3RlZCkK
ICAgICB7CiAgICAgICAgIGlmICghZXhwZWN0ZWQuaGFzX3ZhbHVlKCkpIHsKQEAgLTY0Nyw2ICs2
NzQsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZVR5cGUsIHR5cGVuYW1lIEVycm9yVHlwZT4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8RXhwZWN0ZWQ8VgogICAgICAgICBlbmNvZGVyIDw8IGV4cGVj
dGVkLnZhbHVlKCk7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAg
ICBzdGF0aWMgc3RkOjpvcHRpb25hbDxFeHBlY3RlZDxWYWx1ZVR5cGUsIEVycm9yVHlwZT4+IGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxib29s
PiBoYXNWYWx1ZTsKQEAgLTY3Myw2ICs3MDEsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZVR5
cGUsIHR5cGVuYW1lIEVycm9yVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8RXhwZWN0ZWQ8Vgog
CiB0ZW1wbGF0ZTxzaXplX3QgaW5kZXgsIHR5cGVuYW1lLi4uIFR5cGVzPgogc3RydWN0IFZhcmlh
bnRDb2RlciB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9p
ZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV1RGOjpWYXJpYW50PFR5cGVzLi4uPiYg
dmFyaWFudCwgdW5zaWduZWQgaSkKICAgICB7CiAgICAgICAgIGlmIChpID09IGluZGV4KSB7CkBA
IC02ODIsNiArNzExLDcgQEAgc3RydWN0IFZhcmlhbnRDb2RlciB7CiAgICAgICAgIFZhcmlhbnRD
b2RlcjxpbmRleCAtIDEsIFR5cGVzLi4uPjo6ZW5jb2RlKGVuY29kZXIsIHZhcmlhbnQsIGkpOwog
ICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IGRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyLCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgaWYgKGkgPT0gaW5kZXgpIHsKQEAgLTY5
NywxMiArNzI3LDE0IEBAIHN0cnVjdCBWYXJpYW50Q29kZXIgewogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZS4uLiBUeXBlcz4KIHN0cnVjdCBWYXJpYW50Q29kZXI8MCwgVHlwZXMuLi4+IHsKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+JiB2YXJpYW50LCB1bnNpZ25lZCBp
KQogICAgIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChpLCAhaSk7CiAgICAgICAgIGVuY29kZXIg
PDwgV1RGOjpnZXQ8MD4odmFyaWFudCk7CiAgICAgfQogICAgIAorICAgIHRlbXBsYXRlPHR5cGVu
YW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V1RGOjpWYXJpYW50PFR5cGVz
Li4uPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIsIHVuc2lnbmVkIGkpCiAgICAgewogICAgICAg
ICBBU1NFUlRfVU5VU0VEKGksICFpKTsKQEAgLTcxNSw2ICs3NDcsNyBAQCBzdHJ1Y3QgVmFyaWFu
dENvZGVyPDAsIFR5cGVzLi4uPiB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4geworICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IFdURjo6VmFyaWFudDxUeXBlcy4uLj4mIHZhcmlhbnQpCiAgICAgewogICAg
ICAgICB1bnNpZ25lZCBpID0gdmFyaWFudC5pbmRleCgpOwpAQCAtNzIyLDYgKzc1NSw3IEBAIHRl
bXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXVEY6OlZhcmlh
bnQ8VHlwZXMuLi4+PiB7CiAgICAgICAgIFZhcmlhbnRDb2RlcjxzaXplb2YuLi4oVHlwZXMpIC0g
MSwgVHlwZXMuLi4+OjplbmNvZGUoZW5jb2RlciwgdmFyaWFudCwgaSk7CiAgICAgfQogICAgIAor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewog
ICAgICAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBpOwpAQCAtNzczLDggKzgwNywxNCBAQCB0
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rva2VuX3Q+IHsKICNlbmRpZgog
CiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT4gewotICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgTW9ub3N0YXRlJik7Ci0gICAgc3RhdGljIHN0
ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBkZWNvZGUoRGVjb2RlciYpOworICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEVuY29kZXI+CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBN
b25vc3RhdGUmKSB7IH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CisgICAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBkZWNvZGUoRGVjb2RlciYpCisgICAgeworICAg
ICAgICByZXR1cm4gTW9ub3N0YXRlIHsgfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBJ
UEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RlY29kZXIuY3BwIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGVjb2Rlci5jcHAKaW5kZXggNzQzY2I0ODE1NjFi
MjEzZDBmODkyYmJhMzk4YjViMzViMzJiNmMwYy4uNDVhMGU3ZDQzY2I1MGMwNjNmNWRhNmJkMGVi
MjQwNzZiNDA0Zjc0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGVj
b2Rlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGVjb2Rlci5jcHAKQEAg
LTE3OSw2ICsxNzksMTEgQEAgc3RhdGljIGlubGluZSBjb25zdCB1aW50OF90KiByb3VuZFVwVG9B
bGlnbm1lbnQoY29uc3QgdWludDhfdCogcHRyLCBzaXplX3QgYWxpZ24KICAgICByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDx1aW50OF90Kj4oKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwdHIp
ICsgYWxpZ25tZW50TWFzaykgJiB+YWxpZ25tZW50TWFzayk7CiB9CiAKK3N0YXRpYyBpbmxpbmUg
c2l6ZV90IHJvdW5kVXBUb0FsaWdubWVudChzaXplX3QgdmFsdWUsIHNpemVfdCBhbGlnbm1lbnQp
Cit7CisgICAgcmV0dXJuICgodmFsdWUgKyBhbGlnbm1lbnQgLSAxKSAvIGFsaWdubWVudCkgKiBh
bGlnbm1lbnQ7Cit9CisKIHN0YXRpYyBpbmxpbmUgYm9vbCBhbGlnbmVkQnVmZmVySXNMYXJnZUVu
b3VnaFRvQ29udGFpbihjb25zdCB1aW50OF90KiBhbGlnbmVkUG9zaXRpb24sIGNvbnN0IHVpbnQ4
X3QqIGJ1ZmZlclN0YXJ0LCBjb25zdCB1aW50OF90KiBidWZmZXJFbmQsIHNpemVfdCBzaXplKQog
ewogICAgIC8vIFdoZW4gc2l6ZSA9PSAwIGZvciB0aGUgbGFzdCBhcmd1bWVudCBhbmQgaXQncyBh
IHZhcmlhYmxlIGxlbmd0aCBieXRlIGFycmF5LApAQCAtMTkwLDcgKzE5NSw5IEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBhbGlnbmVkQnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbihjb25zdCB1aW50
OF90KiBhbGlnbmVkUG9zCiAKIGJvb2wgRGVjb2Rlcjo6YWxpZ25CdWZmZXJQb3NpdGlvbihzaXpl
X3QgYWxpZ25tZW50LCBzaXplX3Qgc2l6ZSkKIHsKLSAgICBjb25zdCB1aW50OF90KiBhbGlnbmVk
UG9zaXRpb24gPSByb3VuZFVwVG9BbGlnbm1lbnQobV9idWZmZXJQb3MsIGFsaWdubWVudCk7Cisg
ICAgc2l6ZV90IGN1cnJlbnRTaXplID0gbV9idWZmZXJQb3MgLSBtX2J1ZmZlcjsKKyAgICBhdXRv
IGFsaWduZWRTaXplID0gcm91bmRVcFRvQWxpZ25tZW50KGN1cnJlbnRTaXplLCBhbGlnbm1lbnQp
OworICAgIGF1dG8qIGFsaWduZWRQb3NpdGlvbiA9IG1fYnVmZmVyICsgYWxpZ25lZFNpemU7CiAg
ICAgaWYgKFVOTElLRUxZKCFhbGlnbmVkQnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbihhbGln
bmVkUG9zaXRpb24sIG1fYnVmZmVyLCBtX2J1ZmZlckVuZCwgc2l6ZSkpKSB7CiAgICAgICAgIC8v
IFdlJ3ZlIHdhbGtlZCBvZmYgdGhlIGVuZCBvZiB0aGlzIGJ1ZmZlci4KICAgICAgICAgbWFya0lu
dmFsaWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwCmluZGV4IGZhYmNlZjZjMjEyNTIzZWYwMWNjODlhNDk4NDYwMDZkOGVhMmRmOTMuLmI0YTI1
YTk5NjZmYzc2YTE5NTgwZTFmYThkYThiYTdjMjIzN2UwNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMjMxLDE2ICsyMzEsNiBAQCBz
dGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlVHlwZXNBbmREYXRhKERlY29kZXIm
IGRlY29kZXIsIFZlY3RvcjxTdHJpbgogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEFyZ3Vt
ZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYgYWZmaW5lVHJhbnNmb3JtKQotewotICAgIFNpbXBsZUFyZ3VtZW50
Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2RlKGVuY29kZXIsIGFmZmluZVRyYW5zZm9ybSk7
Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxBZmZpbmVUcmFuc2Zvcm0+OjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgQWZmaW5lVHJhbnNmb3JtJiBhZmZpbmVUcmFuc2Zvcm0pCi17Ci0gICAgcmV0
dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKGRlY29kZXIs
IGFmZmluZVRyYW5zZm9ybSk7Ci19Ci0KIHZvaWQgQXJndW1lbnRDb2RlcjxDYWNoZVF1ZXJ5T3B0
aW9ucz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDYWNoZVF1ZXJ5T3B0aW9ucyYg
b3B0aW9ucykKIHsKICAgICBlbmNvZGVyIDw8IG9wdGlvbnMuaWdub3JlU2VhcmNoOwpAQCAtNjE3
LDg2ICs2MDcsNiBAQCBib29sIEFyZ3VtZW50Q29kZXI8U3ByaW5nVGltaW5nRnVuY3Rpb24+Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU3ByaW5nVGltaW5nRgogICAgIHJldHVybiB0cnVlOwog
fQogCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBGbG9hdFBvaW50JiBmbG9hdFBvaW50KQotewotICAgIFNpbXBsZUFyZ3VtZW50
Q29kZXI8RmxvYXRQb2ludD46OmVuY29kZShlbmNvZGVyLCBmbG9hdFBvaW50KTsKLX0KLQotYm9v
bCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxv
YXRQb2ludCYgZmxvYXRQb2ludCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxG
bG9hdFBvaW50Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0UG9pbnQpOwotfQotCi1zdGQ6Om9wdGlv
bmFsPEZsb2F0UG9pbnQ+IEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQotewotICAgIEZsb2F0UG9pbnQgZmxvYXRQb2ludDsKLSAgICBpZiAoIVNpbXBs
ZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmRlY29kZShkZWNvZGVyLCBmbG9hdFBvaW50KSkK
LSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICByZXR1cm4gZmxvYXRQb2ludDsKLX0K
LQotdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBGbG9hdFBvaW50M0QmIGZsb2F0UG9pbnQpCi17Ci0gICAgU2ltcGxlQXJndW1l
bnRDb2RlcjxGbG9hdFBvaW50M0Q+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRQb2ludCk7Ci19Ci0K
LWJvb2wgQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgRmxvYXRQb2ludDNEJiBmbG9hdFBvaW50KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVu
dENvZGVyPEZsb2F0UG9pbnQzRD46OmRlY29kZShkZWNvZGVyLCBmbG9hdFBvaW50KTsKLX0KLQot
Ci12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IEZsb2F0UmVjdCYgZmxvYXRSZWN0KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8
RmxvYXRSZWN0Pjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0UmVjdCk7Ci19Ci0KLWJvb2wgQXJndW1l
bnRDb2RlcjxGbG9hdFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRSZWN0JiBm
bG9hdFJlY3QpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6
ZGVjb2RlKGRlY29kZXIsIGZsb2F0UmVjdCk7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0
PiBBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewot
ICAgIEZsb2F0UmVjdCBmbG9hdFJlY3Q7Ci0gICAgaWYgKCFTaW1wbGVBcmd1bWVudENvZGVyPEZs
b2F0UmVjdD46OmRlY29kZShkZWNvZGVyLCBmbG9hdFJlY3QpKQotICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwotICAgIHJldHVybiBmbG9hdFJlY3Q7Ci19Ci0KLQotdm9pZCBBcmd1bWVudENv
ZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0
Qm94RXh0ZW50JiBmbG9hdEJveEV4dGVudCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZs
b2F0Qm94RXh0ZW50Pjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0Qm94RXh0ZW50KTsKLX0KLSAgICAK
LWJvb2wgQXJndW1lbnRDb2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyLCBGbG9hdEJveEV4dGVudCYgZmxvYXRCb3hFeHRlbnQpCi17Ci0gICAgcmV0dXJuIFNpbXBs
ZUFyZ3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRCb3hF
eHRlbnQpOwotfQotICAgIAotCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0U2l6ZSYgZmxvYXRTaXplKQotewotICAgIFNp
bXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0U2l6ZSk7
Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgRmxvYXRTaXplJiBmbG9hdFNpemUpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50
Q29kZXI8RmxvYXRTaXplPjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0U2l6ZSk7Ci19Ci0KLQotdm9p
ZCBBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcm91bmRlZFJlY3QpCi17Ci0gICAgU2ltcGxlQXJn
dW1lbnRDb2RlcjxGbG9hdFJvdW5kZWRSZWN0Pjo6ZW5jb2RlKGVuY29kZXIsIHJvdW5kZWRSZWN0
KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlciwgRmxvYXRSb3VuZGVkUmVjdCYgcm91bmRlZFJlY3QpCi17Ci0gICAgcmV0
dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46OmRlY29kZShkZWNvZGVy
LCByb3VuZGVkUmVjdCk7Ci19Ci0KICNpZiBFTkFCTEUoTUVUQV9WSUVXUE9SVCkKIHZvaWQgQXJn
dW1lbnRDb2RlcjxWaWV3cG9ydEFyZ3VtZW50cz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgdmlld3BvcnRBcmd1bWVudHMpCiB7CkBAIC03MjgsODcg
KzYzOCw2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxWaWV3cG9ydEF0dHJpYnV0ZXM+OjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgVmlld3BvcnRBdHRyaWJ1CiAgICAgcmV0dXJuIFNpbXBsZUFyZ3Vt
ZW50Q29kZXI8Vmlld3BvcnRBdHRyaWJ1dGVzPjo6ZGVjb2RlKGRlY29kZXIsIHZpZXdwb3J0QXR0
cmlidXRlcyk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdCBJbnRQb2ludCYgaW50UG9pbnQpCi17Ci0gICAgU2ltcGxlQXJn
dW1lbnRDb2RlcjxJbnRQb2ludD46OmVuY29kZShlbmNvZGVyLCBpbnRQb2ludCk7Ci19Ci0KLWJv
b2wgQXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBJbnRQ
b2ludCYgaW50UG9pbnQpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UG9p
bnQ+OjpkZWNvZGUoZGVjb2RlciwgaW50UG9pbnQpOwotfQotCi1zdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OkludFBvaW50PiBBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCi17Ci0gICAgSW50UG9pbnQgaW50UG9pbnQ7Ci0gICAgaWYgKCFTaW1wbGVBcmd1bWVu
dENvZGVyPEludFBvaW50Pjo6ZGVjb2RlKGRlY29kZXIsIGludFBvaW50KSkKLSAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICByZXR1cm4gaW50UG9pbnQ7Ci19Ci0KLXZvaWQgQXJndW1l
bnRDb2RlcjxJbnRSZWN0Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEludFJlY3Qm
IGludFJlY3QpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZW5jb2RlKGVu
Y29kZXIsIGludFJlY3QpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyLCBJbnRSZWN0JiBpbnRSZWN0KQotewotICAgIHJldHVybiBTaW1w
bGVBcmd1bWVudENvZGVyPEludFJlY3Q+OjpkZWNvZGUoZGVjb2RlciwgaW50UmVjdCk7Ci19Ci0K
LXN0ZDo6b3B0aW9uYWw8SW50UmVjdD4gQXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCi17Ci0gICAgSW50UmVjdCByZWN0OwotICAgIGlmICghZGVjb2RlKGRl
Y29kZXIsIHJlY3QpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBy
ZWN0OwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgotdm9pZCBBcmd1bWVudENvZGVy
PEludFNpemU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgSW50U2l6ZSYgaW50U2l6
ZSkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEludFNpemU+OjplbmNvZGUoZW5jb2Rlciwg
aW50U2l6ZSk7Ci19Ci0KLXRlbXBsYXRlCi12b2lkIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVu
Y29kZTxFbmNvZGVyPihFbmNvZGVyJiwgY29uc3QgSW50U2l6ZSYpOwotdGVtcGxhdGUKLXZvaWQg
QXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZW5jb2RlPFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyPihT
dHJlYW1Db25uZWN0aW9uRW5jb2RlciYsIGNvbnN0IEludFNpemUmKTsKLQotYm9vbCBBcmd1bWVu
dENvZGVyPEludFNpemU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSW50U2l6ZSYgaW50U2l6
ZSkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZGVjb2RlKGRl
Y29kZXIsIGludFNpemUpOwotfQotCi1zdGQ6Om9wdGlvbmFsPEludFNpemU+IEFyZ3VtZW50Q29k
ZXI8SW50U2l6ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIEludFNpemUgaW50
U2l6ZTsKLSAgICBpZiAoIVNpbXBsZUFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZShkZWNv
ZGVyLCBpbnRTaXplKSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICByZXR1cm4g
aW50U2l6ZTsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPExheW91dFNpemU+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgTGF5b3V0U2l6ZSYgbGF5b3V0U2l6ZSkKLXsKLSAgICBTaW1w
bGVBcmd1bWVudENvZGVyPExheW91dFNpemU+OjplbmNvZGUoZW5jb2RlciwgbGF5b3V0U2l6ZSk7
Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxMYXlvdXRTaXplPjo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIsIExheW91dFNpemUmIGxheW91dFNpemUpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3Vt
ZW50Q29kZXI8TGF5b3V0U2l6ZT46OmRlY29kZShkZWNvZGVyLCBsYXlvdXRTaXplKTsKLX0KLQot
Ci12b2lkIEFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgTGF5b3V0UG9pbnQmIGxheW91dFBvaW50KQotewotICAgIFNpbXBsZUFyZ3VtZW50
Q29kZXI8TGF5b3V0UG9pbnQ+OjplbmNvZGUoZW5jb2RlciwgbGF5b3V0UG9pbnQpOwotfQotCi1i
b29sIEFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rlciwg
TGF5b3V0UG9pbnQmIGxheW91dFBvaW50KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENv
ZGVyPExheW91dFBvaW50Pjo6ZGVjb2RlKGRlY29kZXIsIGxheW91dFBvaW50KTsKLX0KLQogdm9p
ZCBBcmd1bWVudENvZGVyPFJlY2VudFNlYXJjaD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBSZWNlbnRTZWFyY2gmIHJlY2VudFNlYXJjaCkKIHsKICAgICBlbmNvZGVyIDw8IHJlY2Vu
dFNlYXJjaC5zdHJpbmcgPDwgcmVjZW50U2VhcmNoLnRpbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDU0NTk3NWEwZGYxNTAxYmU4ODEzNTQ5
YTkwMWFkZDA3MWJlMDFmOTYuLjA4YzE3MmQ0Y2UyMDA1MGRlNDQ2OGY0NWQ3MTEwN2RhYzVmNDZi
MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBA
IC0yNiwxMiArMjYsMjQgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2Rl
cnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0FmZmluZVRyYW5zZm9ybS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvQXV0b3BsYXlFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3JTcGFjZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0Zsb2F0UG9pbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQzRC5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJv
dW5kZWRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFNpemUuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0luZGV4ZWREQi5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvSW5wdXRNb2RlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRQ
b2ludC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
SW50U2l6ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGF5b3V0UG9pbnQuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0xheW91dFNpemUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xlbmd0aEJveC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTWVkaWFTZWxlY3Rpb25PcHRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L05hdGl2ZUltYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrTG9hZE1ldHJpY3MuaD4K
QEAgLTk2LDcgKzEwOCw2IEBAIHR5cGVkZWYgc3RydWN0IF9fQ1ZCdWZmZXIqIENWUGl4ZWxCdWZm
ZXJSZWY7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFic29sdXRlUG9zaXRpb25Db25z
dHJhaW50czsKLWNsYXNzIEFmZmluZVRyYW5zZm9ybTsKIGNsYXNzIEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlOwogY2xhc3MgQmxvYlBhcnQ7CiBjbGFzcyBDZXJ0aWZpY2F0ZUluZm87CkBAIC0xMDks
MjEgKzEyMCwxMSBAQCBjbGFzcyBEcmFnRGF0YTsKIGNsYXNzIEZpbGU7CiBjbGFzcyBGaWx0ZXJP
cGVyYXRpb247CiBjbGFzcyBGaWx0ZXJPcGVyYXRpb25zOwotY2xhc3MgRmxvYXRQb2ludDsKLWNs
YXNzIEZsb2F0UG9pbnQzRDsKLWNsYXNzIEZsb2F0UmVjdDsKLWNsYXNzIEZsb2F0Um91bmRlZFJl
Y3Q7Ci1jbGFzcyBGbG9hdFNpemU7CiBjbGFzcyBGaXhlZFBvc2l0aW9uVmlld3BvcnRDb25zdHJh
aW50czsKIGNsYXNzIEZvbnQ7CiBjbGFzcyBGb250UGxhdGZvcm1EYXRhOwogY2xhc3MgSFRUUEhl
YWRlck1hcDsKLWNsYXNzIEludFBvaW50OwotY2xhc3MgSW50UmVjdDsKLWNsYXNzIEludFNpemU7
CiBjbGFzcyBLZXlmcmFtZVZhbHVlTGlzdDsKLWNsYXNzIExheW91dFNpemU7Ci1jbGFzcyBMYXlv
dXRQb2ludDsKIGNsYXNzIExpbmVhclRpbWluZ0Z1bmN0aW9uOwogY2xhc3MgTm90aWZpY2F0aW9u
OwogY2xhc3MgUGFzdGVib2FyZEN1c3RvbURhdGE7CkBAIC0xNzQsOSArMTc1LDcgQEAgc3RydWN0
IFRvdWNoQWN0aW9uRGF0YTsKIHN0cnVjdCBWZWxvY2l0eURhdGE7CiBzdHJ1Y3QgVmlld3BvcnRB
dHRyaWJ1dGVzOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwotICAgIAotdGVtcGxhdGU8dHlwZW5h
bWU+IGNsYXNzIFJlY3RFZGdlczsKLXVzaW5nIEZsb2F0Qm94RXh0ZW50ID0gUmVjdEVkZ2VzPGZs
b2F0PjsKKwogdXNpbmcgSURCS2V5UGF0aCA9IFZhcmlhbnQ8U3RyaW5nLCBWZWN0b3I8U3RyaW5n
Pj47CiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTIyNywxMCArMjI2LDI1IEBAIHN0cnVjdCBS
ZWNvcmQ7CiAKIG5hbWVzcGFjZSBJUEMgewogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShF
bmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJik7Ci0gICAgc3RhdGljIFdB
Uk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6QWZmaW5lVHJh
bnNmb3JtJik7Ci19OworREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpBZmZp
bmVUcmFuc2Zvcm0pCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6OkZsb2F0
Qm94RXh0ZW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpGbG9hdFBv
aW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpGbG9hdFBvaW50M0Qp
CitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6OkZsb2F0UmVjdCkKK0RFRklO
RV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdCkKK0RFRklO
RV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6RmxvYXRTaXplKQorREVGSU5FX1NJTVBM
RV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpJbnRQb2ludCkKK0RFRklORV9TSU1QTEVfQVJHVU1F
TlRfQ09ERVIoV2ViQ29yZTo6SW50UmVjdCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIo
V2ViQ29yZTo6SW50U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6
TGF5b3V0U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6TGF5b3V0
UG9pbnQpCisKKyNpZiBVU0UoQ0cpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKENHUmVj
dCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoQ0dTaXplKQorREVGSU5FX1NJTVBMRV9B
UkdVTUVOVF9DT0RFUihDR1BvaW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihDR0Fm
ZmluZVRyYW5zZm9ybSkKKyNlbmRpZgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmc+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5j
b2RlciYsIGNvbnN0IFdlYkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmcmKTsKQEAgLTI5OSwzOCArMzEz
LDYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0
ZUluZm8+IHsKICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUlu
Zm8+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OkZsb2F0UG9pbnQ+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURf
UkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7Ci0gICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4gZGVjb2RlKERlY29kZXIm
KTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRQ
b2ludDNEPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFBvaW50M0QmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlKERlY29kZXImLCBXZWJDb3JlOjpGbG9hdFBvaW50M0QmKTsKLX07Ci0KLXRlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRSZWN0PiB7Ci0gICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKLSAgICBzdGF0
aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpGbG9h
dFJlY3QmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+IGRl
Y29kZShEZWNvZGVyJik7Ci19OwotICAgIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpGbG9hdEJveEV4dGVudD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNv
ZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmKTsKLSAgICBzdGF0aWMgV0FSTl9V
TlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpGbG9hdEJveEV4dGVu
dCYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9h
dFNpemU+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUo
RGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0PiB7Ci0gICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0Jik7Ci0g
ICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29y
ZTo6RmxvYXRSb3VuZGVkUmVjdCYpOwotfTsKLQogI2lmIEVOQUJMRShNRVRBX1ZJRVdQT1JUKQog
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50
cz4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Vmll
d3BvcnRBcmd1bWVudHMmKTsKQEAgLTM0NSwzNSArMzI3LDYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXM+IHsKICAgICBzdGF0aWMg
V0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpWaWV3cG9y
dEF0dHJpYnV0ZXMmKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2Vi
Q29yZTo6SW50UG9pbnQ+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50Jik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29s
IGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6SW50UG9pbnQmKTsKLSAgICBzdGF0aWMgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0KLXRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW50UmVjdD4gewotICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwotICAgIHN0
YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6Oklu
dFJlY3QmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRSZWN0PiBkZWNv
ZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpJbnRTaXplPiB7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KLSAgICBzdGF0
aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKLSAgICBz
dGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpJ
bnRTaXplJik7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50U2l6ZT4gZGVj
b2RlKERlY29kZXImKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2Vi
Q29yZTo6TGF5b3V0U2l6ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29u
c3QgV2ViQ29yZTo6TGF5b3V0U2l6ZSYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkxheW91dFNpemUmKTsKLX07Ci0KLXRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6TGF5b3V0UG9pbnQ+IHsKLSAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkxheW91dFBvaW50Jik7
Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2Vi
Q29yZTo6TGF5b3V0UG9pbnQmKTsKLX07Ci0KIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6TGVuZ3RoPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBj
b25zdCBXZWJDb3JlOjpMZW5ndGgmKTsKICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJv
b2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpMZW5ndGgmKTsKQEAgLTQ1Miw2ICs0MDUsNyBA
QCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkRyYWdEYXRhPiB7CiAj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQorCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPFdURjo6TWFjaFNlbmRSaWdodD4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNv
ZGVyJiwgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0Jik7CiAgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBXVEY6Ok1hY2hTZW5kUmlnaHQmJik7CkBAIC00NjMsMjYgKzQxNyw3IEBAIHRl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiB7
CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiBkZWNv
ZGUoRGVjb2RlciYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxDR1Bv
aW50PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBDR1BvaW50KTsKLSAgICBz
dGF0aWMgc3RkOjpvcHRpb25hbDxDR1BvaW50PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxDR1NpemU+IHsKLSAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYsIENHU2l6ZSk7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q0dTaXpl
PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxDR1JlY3Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIENHUmVjdCk7Ci0g
ICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q0dSZWN0PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQot
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxDR0FmZmluZVRyYW5zZm9ybT4gewotICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dBZmZpbmVUcmFuc2Zvcm0pOwotICAgIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPENHQWZmaW5lVHJhbnNmb3JtPiBkZWNvZGUoRGVjb2RlciYpOwot
fTsKLSNlbmRpZgorI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2VsZWN0
aW9uR2VvbWV0cnk+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJD
b3JlQXJndW1lbnRDb2RlcnNNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzTWFjLm1tCmluZGV4IDhlNGQ1ZjEzMWQ4MmYxZGVmZTI2ZDE1YWJmZWUw
NjRhM2I5ODkwZjguLjZhNDM0MDY3MTQ2M2Q5NDcwNzE5MjMxMGIxZjdiYTBiZDAzYTc2ZjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNN
YWMubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVy
c01hYy5tbQpAQCAtMzIxLDc5ICszMjEsNiBAQCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OktleXBy
ZXNzQ29tbWFuZD4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+OgogICAg
IHJldHVybiBXVEZNb3ZlKGNvbW1hbmQpOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8Q0dSZWN0
Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENHUmVjdCByZWN0KQotewotICAgIGVuY29kZXIg
PDwgcmVjdC5vcmlnaW4gPDwgcmVjdC5zaXplOwotfQotCi1zdGQ6Om9wdGlvbmFsPENHUmVjdD4g
QXJndW1lbnRDb2RlcjxDR1JlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBz
dGQ6Om9wdGlvbmFsPENHUG9pbnQ+IG9yaWdpbjsKLSAgICBkZWNvZGVyID4+IG9yaWdpbjsKLSAg
ICBpZiAoIW9yaWdpbikKLSAgICAgICAgcmV0dXJuIHsgfTsKLQotICAgIHN0ZDo6b3B0aW9uYWw8
Q0dTaXplPiBzaXplOwotICAgIGRlY29kZXIgPj4gc2l6ZTsKLSAgICBpZiAoIXNpemUpCi0gICAg
ICAgIHJldHVybiB7IH07Ci0KLSAgICByZXR1cm4gQ0dSZWN0IHsgKm9yaWdpbiwgKnNpemUgfTsK
LX0KLQotdm9pZCBBcmd1bWVudENvZGVyPENHU2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBDR1NpemUgc2l6ZSkKLXsKLSAgICBlbmNvZGVyIDw8IHNpemUud2lkdGggPDwgc2l6ZS5oZWln
aHQ7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8Q0dTaXplPiBBcmd1bWVudENvZGVyPENHU2l6ZT46OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIENHU2l6ZSBzaXplOwotICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoc2l6ZS53aWR0aCkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShzaXplLmhlaWdodCkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgcmV0
dXJuIHNpemU7Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxDR1BvaW50Pjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIENHUG9pbnQgcG9pbnQpCi17Ci0gICAgZW5jb2RlciA8PCBwb2ludC54IDw8
IHBvaW50Lnk7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8Q0dQb2ludD4gQXJndW1lbnRDb2RlcjxDR1Bv
aW50Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgQ0dQb2ludCBwb2ludDsKLSAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvaW50LngpKQotICAgICAgICByZXR1cm4geyB9OwotICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocG9pbnQueSkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAg
cmV0dXJuIHBvaW50OwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtKQot
ewotICAgIGVuY29kZXIgPDwgdHJhbnNmb3JtLmEgPDwgdHJhbnNmb3JtLmIgPDwgdHJhbnNmb3Jt
LmMgPDwgdHJhbnNmb3JtLmQgPDwgdHJhbnNmb3JtLnR4IDw8IHRyYW5zZm9ybS50eTsKLX0KLQot
c3RkOjpvcHRpb25hbDxDR0FmZmluZVRyYW5zZm9ybT4gQXJndW1lbnRDb2RlcjxDR0FmZmluZVRy
YW5zZm9ybT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIENHQWZmaW5lVHJhbnNm
b3JtIHRyYW5zZm9ybTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5zZm9ybS5hKSkKLSAg
ICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5zZm9ybS5iKSkK
LSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5zZm9ybS5j
KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5zZm9y
bS5kKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5z
Zm9ybS50eCkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0
cmFuc2Zvcm0udHkpKQotICAgICAgICByZXR1cm4geyB9OwotICAgIHJldHVybiB0cmFuc2Zvcm07
Ci19Ci0KICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCiAKIHZvaWQgQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXI+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiBjb250
ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439208</attachid>
            <date>2021-09-24 16:44:59 -0700</date>
            <delta_ts>2021-09-24 17:46:38 -0700</delta_ts>
            <desc>Actual take two</desc>
            <filename>bug-230714-20210924164459.patch</filename>
            <type>text/plain</type>
            <size>33525</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJmZDdkOTQ0YTczN2IxODFl
YTA5NGE1ZDQxNmNjYWM5ZWRkYmRkNTMuLjRmZGQ1ZDk4NTIzOWRhNmE2YWY0ZTdiZjZlNjMwMTYw
MGFlMmM5M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjkgQEAKKzIwMjEtMDktMjMgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIFJlZmFj
dG9yIHNvbWUgSVBDIGFyZ3VtZW50IGVuY29kZXIgbG9naWMgdG8gd29yayB3aXRoIFN0cmVhbUNv
bm5lY3Rpb25FbmNvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA3MTQKKyAgICAgICAgcmRhcjovLzgzNDc3NTkxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byB1c2Ug
YElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXJgIHRvIGVuY29kZSBkaXNwbGF5IGxpc3QgaXRl
bXMgKGFuZCB0aGVpciBtZW1iZXJzKSBpbiBhbgorICAgICAgICBJUEMgc3RyZWFtLiBUaGlzIHBh
dGNoIGNvbXByaXNlcyB0d28gbWFpbiBzZXRzIG9mIGNoYW5nZXMgaW4gYEFyZ3VtZW50Q29kZXJz
YCwgYW5kIGBXZWJDb3JlQXJndW1lbnRDb2RlcnNgLiBTZWUKKyAgICAgICAgYmVsb3cgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmRlY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNb25vc3RhdGU+OjpkZWNvZGUpOiBEZWxldGVk
LgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2RlKToKKworICAgICAgICBNYW55IG9mIHRoZXNlIGBl
bmNvZGUoKWAgbWV0aG9kcyBhcmUgY3VycmVudGx5IG5vbi10ZW1wbGF0ZWQsIHdoaWNoIG1lYW5z
IHRoYXQgRW5jb2RlciBhbmQgRGVjb2RlciB1c2VkIGhlcmUKKyAgICAgICAgcmVmZXIgc29sZWx5
IHRvIElQQzo6RW5jb2RlciBhbmQgSVBDOjpEZWNvZGVyIChyZXNwZWN0aXZlbHkpIGluc3RlYWQg
b2Ygb3RoZXIgdHlwZXMgb2YgZW5jb2RlcnMgKG5hbWVseSwKKyAgICAgICAgU3RyZWFtQ29ubmVj
dGlvbkVuY29kZXIpLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxBZmZpbmVUcmFuc2Zvcm0+
OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UG9p
bnQ+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0
UG9pbnQ+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZs
b2F0UG9pbnQzRD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8RmxvYXRQb2ludDNEPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjplbmNvZGUpOiBEZWxldGVkLgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0U2l6ZT46OmRlY29kZSk6IERlbGV0ZWQu
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46
OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+
OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEludFBvaW50
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRSZWN0
Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRSZWN0
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRTaXpl
Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRTaXpl
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxMYXlvdXRT
aXplPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxMYXlv
dXRTaXplPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxM
YXlvdXRQb2ludD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8TGF5b3V0UG9pbnQ+OjpkZWNvZGUpOiBEZWxldGVkLgorCisgICAgICAgIFRoZXNlIFdlYkNv
cmUgYXJndW1lbnQgY29kZXJzIGFyZSBhbHNvIGN1cnJlbnRseSBpbmNvbXBhdGlibGUgd2l0aCBT
dHJlYW1Db25uZWN0aW9uRW5jb2Rlciwgc2luY2UgdGhleSBhcmUgbm9uLQorICAgICAgICB0ZW1w
bGF0ZWQgKGFuZCB0aHVzIG9ubHkgd29yayB3aXRoIElQQzo6RW5jb2RlcikuIFNpbmNlIHRoZXNl
IGFyZSBhbGwgZW5jb2RhYmxlIGFzIFBPRCB0eXBlcywgd2UgY2FuIGp1c3QgdXNlCisgICAgICAg
IFNpbXBsZUFyZ3VtZW50Q29kZXIgZm9yIGFsbCBvZiB0aGVzZS4gV2UgYWxzbyBhZGQgYSBuZXcg
YERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJgIG1hY3JvIHRvIG1ha2UgdGhpcyBjb2RlIGEK
KyAgICAgICAgYml0IGVhc2llciB0byByZWFkLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzTWFjLm1tOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHUmVjdD46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dSZWN0Pjo6ZGVjb2RlKTog
RGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDR1NpemU+OjplbmNvZGUpOiBE
ZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHU2l6ZT46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHQWZmaW5lVHJh
bnNmb3JtPjo6ZGVjb2RlKTogRGVsZXRlZC4KKwogMjAyMS0wOS0yNCAgRGV2aW4gUm91c3NvICA8
ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHR5cGVjaGVja2luZyBgaXNgIG92ZXJs
b2FkcyBmb3IgYHN0ZDo6dW5pcXVlX3B0cmAsIGBXVEY6OlVuaXF1ZVJlZmAsIGFuZCBgV1RGOjpX
ZWFrUHRyYApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRD
b2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3Bw
CmluZGV4IGEzMjA1NTE4Nzk4Yjc0ZGNlZGI4YTAxM2Y5YzljOTg4NWFhZTY2MTYuLmU3ZjI3ODAz
NjJkZDIwMzc0MzRjYTFjYjM5MGRkZTZlZjc5MTU5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaCIKICNpbmNsdWRlICJQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEVuY29kZXIuaCIKICNpbmNsdWRlICJTdHJlYW1Db25uZWN0aW9uRW5jb2Rl
ci5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTIxOCw2
ICsyMTksNyBAQCBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBBcmd1bWVudENvZGVyPFNIQTE6OkRp
Z2VzdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTSAogfQogCiAjaWYgSEFWRShBVURJVF9U
T0tFTikKKwogdm9pZCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rva2VuX3Q+OjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgYXVkaXRfdG9rZW5fdCYgYXVkaXRUb2tlbikKIHsKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChhdWRpdFRva2VuLnZhbCk7IGkr
KykKQEAgLTIzMiwxNSArMjM0LDcgQEAgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgQXJndW1lbnRD
b2RlcjxhdWRpdF90b2tlbl90Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIGEKICAgICB9CiAg
ICAgcmV0dXJuIHRydWU7CiB9Ci0jZW5kaWYKLQotdm9pZCBBcmd1bWVudENvZGVyPE1vbm9zdGF0
ZT46OmVuY29kZShFbmNvZGVyJiwgY29uc3QgTW9ub3N0YXRlJikKLXsKLX0KIAotV0FSTl9VTlVT
RURfUkVUVVJOIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBBcmd1bWVudENvZGVyPE1vbm9zdGF0
ZT46OmRlY29kZShEZWNvZGVyJikKLXsKLSAgICByZXR1cm4gTW9ub3N0YXRlIHsgfTsKLX0KKyNl
bmRpZiAvLyBIQVZFKEFVRElUX1RPS0VOKQogCiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCmluZGV4IGE4Yzg5M2YwYzUyNDBh
ODg4OWMzNDUxNGY5ZmIxZWZlZTBkNjI3MGEuLjhlMDVmMThjYWQyN2MzN2YwN2RmNWRjMjU1YjIx
N2M4NWM5MjM2NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3Vt
ZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2Rl
cnMuaApAQCAtNDAsNiArNDAsMTAgQEAKIAogbmFtZXNwYWNlIElQQyB7CiAKKyNkZWZpbmUgREVG
SU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihjbGFzc05hbWUpIHRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8Y2xhc3NOYW1lPiA6IFNpbXBsZUFyZ3VtZW50Q29kZXI8Y2xhc3NOYW1lPiB7
IH07IFwKKyAgICB0ZW1wbGF0ZSB2b2lkIFNpbXBsZUFyZ3VtZW50Q29kZXI8Y2xhc3NOYW1lPjo6
ZW5jb2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBjbGFzc05hbWUmKTsgXAorICAgIHRlbXBs
YXRlIGJvb2wgU2ltcGxlQXJndW1lbnRDb2RlcjxjbGFzc05hbWU+OjpkZWNvZGU8RGVjb2Rlcj4o
RGVjb2RlciYsIGNsYXNzTmFtZSYpOworCiAvLyBBbiBhcmd1bWVudCBjb2RlciB3b3JrcyBvbiBQ
T0QgdHlwZXMKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBTaW1wbGVBcmd1bWVudENvZGVy
IHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgpAQCAtNDgsNiArNTIsNyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgU2ltcGxlQXJndW1lbnRDb2RlciB7CiAgICAgICAgIGVu
Y29kZXIuZW5jb2RlRml4ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhf
dCo+KCZ0KSwgc2l6ZW9mKFQpLCBhbGlnbm9mKFQpKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgVCYgdCkKICAgICB7CiAgICAgICAgIHJldHVybiBkZWNvZGVy
LmRlY29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPigmdCksIHNp
emVvZihUKSwgYWxpZ25vZihUKSk7CkBAIC0xMDcsMTIgKzExMiwxNCBAQCB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxBcnJheVJlZmVyZW5jZTxULCBhcnJheVJlZmVy
ZW5jZUR5bmFtaQogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8T3B0aW9uU2V0PFQ+PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgT3B0aW9uU2V0PFQ+JiBv
cHRpb25TZXQpCiAgICAgewogICAgICAgICBBU1NFUlQoV1RGOjppc1ZhbGlkT3B0aW9uU2V0KG9w
dGlvblNldCkpOwogICAgICAgICBlbmNvZGVyIDw8IG9wdGlvblNldC50b1JhdygpOwogICAgIH0K
IAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VE
X1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBPcHRpb25TZXQ8VD4mIG9wdGlv
blNldCkKICAgICB7CiAgICAgICAgIHR5cGVuYW1lIE9wdGlvblNldDxUPjo6U3RvcmFnZVR5cGUg
dmFsdWU7CkBAIC0xMjQsNiArMTMxLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8T3B0aW9uU2V0PFQ+PiB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
IAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8T3B0aW9uU2V0PFQ+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAg
IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgT3B0aW9uU2V0PFQ+OjpTdG9yYWdlVHlwZT4gdmFsdWU7
CkBAIC0xODcsNiArMTk1LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8c3RkOjpvcHRpb25hbDxUPj4gewogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rl
cj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgQm94PFQ+
JiBib3gpCiAgICAgewogICAgICAgICBpZiAoIWJveCkgewpAQCAtMTk4LDYgKzIwNyw3IEBAIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPEJveDxUPj4gewogICAgICAg
ICBlbmNvZGVyIDw8ICpib3guZ2V0KCk7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
RGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29k
ZXImIGRlY29kZXIsIEJveDxUPiYgYm94KQogICAgIHsKICAgICAgICAgYm9vbCBpc0VuZ2FnZWQ7
CkBAIC0yMTcsNiArMjI3LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8Qm94PFQ+PiB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBs
YXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Qm94PFQ+PiBk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9v
bD4gaXNFbmdhZ2VkOwpAQCAtMjM1LDExICsyNDYsMTMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBVPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxzdGQ6OnBhaXI8VCwgVT4+IHsKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdCBzdGQ6OnBhaXI8VCwgVT4mIHBhaXIpCiAgICAgewogICAgICAg
ICBlbmNvZGVyIDw8IHBhaXIuZmlyc3QgPDwgcGFpci5zZWNvbmQ7CiAgICAgfQogCisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJv
b2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIHN0ZDo6cGFpcjxULCBVPiYgcGFpcikKICAgICB7
CiAgICAgICAgIFQgZmlyc3Q7CkBAIC0yNTUsNiArMjY4LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUg
VCwgdHlwZW5hbWUgVT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpwYWlyPFQsIFU+PiB7CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29k
ZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWlyPFQsIFU+PiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8VD4gZmlyc3Q7CkBA
IC0zNjUsMTEgKzM3OSwxMyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBFbGVtZW50cz4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8c3RkOjp0dXBsZTxFbGVtZW50cy4uLj4+IHsKIH07CiAKIHRlbXBsYXRl
PHR5cGVuYW1lIEtleVR5cGUsIHR5cGVuYW1lIFZhbHVlVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V1RGOjpLZXlWYWx1ZVBhaXI8S2V5VHlwZSwgVmFsdWVUeXBlPj4geworICAgIHRlbXBsYXRl
PHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IFdURjo6S2V5VmFsdWVQYWlyPEtleVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAg
ICAgewogICAgICAgICBlbmNvZGVyIDw8IHBhaXIua2V5IDw8IHBhaXIudmFsdWU7CiAgICAgfQog
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURf
UkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFdURjo6S2V5VmFsdWVQYWlyPEtl
eVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAgICAgewogICAgICAgICBLZXlUeXBlIGtleTsKQEAg
LTM5Nyw2ICs0MTMsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNp
dHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlciwgc2l6ZV90IG1pbgogICAgICAgICAgICAgZW5j
b2RlciA8PCB2ZWN0b3JbaV07CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rl
cj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRl
Y29kZXIsIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBh
Y2l0eT4mIHZlY3RvcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFQsIGlu
bGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5Pj4gb3B0aW9uYWw7CkBA
IC00MzYsNiArNDUzLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFj
aXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KICAgICAgICAgZW5jb2Rl
ci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4o
dmVjdG9yLmRhdGEoKSksIHZlY3Rvci5zaXplKCkgKiBzaXplb2YoVCksIGFsaWdub2YoVCkpOwog
ICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBX
QVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVmVjdG9yPFQs
IGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5PiYgdmVjdG9yKQog
ICAgIHsKICAgICAgICAgdWludDY0X3QgZGVjb2RlZFNpemU7CkBAIC00NTAsNyArNDY4LDcgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVy
Zmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KICAgICAgICAgLy8gU2luY2Ugd2Uga25vdyB0aGUgdG90
YWwgc2l6ZSBvZiB0aGUgZWxlbWVudHMsIHdlIGNhbiBhbGxvY2F0ZSB0aGUgdmVjdG9yIGluCiAg
ICAgICAgIC8vIG9uZSBmZWxsIHN3b29wLiBCZWZvcmUgYWxsb2NhdGluZyB3ZSBtdXN0IGhvd2V2
ZXIgbWFrZSBzdXJlIHRoYXQgdGhlIGRlY29kZXIgYnVmZmVyCiAgICAgICAgIC8vIGlzIGJpZyBl
bm91Z2guCi0gICAgICAgIGlmICghZGVjb2Rlci5idWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWlu
PFQ+KHNpemUpKQorICAgICAgICBpZiAoIWRlY29kZXIudGVtcGxhdGUgYnVmZmVySXNMYXJnZUVu
b3VnaFRvQ29udGFpbjxUPihzaXplKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
ICAgICBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNp
dHk+IHRlbXA7CkBAIC00OTcsNiArNTE1LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90
IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KIHRl
bXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNo
QXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1lIE1hcHBlZFRyYWl0c0FyZywgdHlw
ZW5hbWUgSGFzaFRhYmxlVHJhaXRzPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxIYXNoTWFwPEtleUFy
ZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZywgSGFz
aFRhYmxlVHJhaXRzPj4gewogICAgIHR5cGVkZWYgSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywg
SGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBwZWRUcmFpdHNBcmcsIEhhc2hUYWJsZVRyYWl0cz4g
SGFzaE1hcFR5cGU7CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBIYXNoTWFwVHlwZSYgaGFzaE1h
cCkKICAgICB7CiAgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGhhc2hN
YXAuc2l6ZSgpKTsKQEAgLTUwNCw2ICs1MjMsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcs
IHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQog
ICAgICAgICAgICAgZW5jb2RlciA8PCAqaXQ7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxIYXNoTWFwVHlwZT4gZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAgICB1aW50MzJfdCBoYXNoTWFwU2l6ZTsK
QEAgLTUzNCw2ICs1NTQsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1h
cHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogICAgICAgICByZXR1
cm4gaGFzaE1hcDsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAg
IHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2Rlciwg
SGFzaE1hcFR5cGUmIGhhc2hNYXApCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPEhhc2hN
YXBUeXBlPiB0ZW1wSGFzaE1hcDsKQEAgLTU0OCw2ICs1NjksNyBAQCB0ZW1wbGF0ZTx0eXBlbmFt
ZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUg
S2V5VHJhaQogdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBl
bmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1lIEhhc2hUYWJsZVRyYWl0cz4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8SGFzaFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgSGFzaFRhYmxl
VHJhaXRzPj4gewogICAgIHR5cGVkZWYgSGFzaFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0
c0FyZywgSGFzaFRhYmxlVHJhaXRzPiBIYXNoU2V0VHlwZTsKIAorICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IEhhc2hTZXRUeXBlJiBoYXNoU2V0KQogICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBzdGF0
aWNfY2FzdDx1aW50NjRfdD4oaGFzaFNldC5zaXplKCkpOwpAQCAtNTU1LDYgKzU3Nyw3IEBAIHRl
bXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJh
aXRzQXJnLCB0eXBlbmFtZSBIYXNoCiAgICAgICAgICAgICBlbmNvZGVyIDw8ICppdDsKICAgICB9
CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNF
RF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSGFzaFNldFR5cGUmIGhhc2hT
ZXQpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPEhhc2hTZXRUeXBlPiB0ZW1wSGFzaFNl
dDsKQEAgLTU2Niw2ICs1ODksNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1l
IEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZywgdHlwZW5hbWUgSGFzaAogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAg
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEhhc2hTZXRUeXBlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKICAgICB7CiAgICAgICAgIHVpbnQ2NF90IGhhc2hTZXRTaXplOwpAQCAtNTk1LDYgKzYxOSw3
IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUg
S2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNoCiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5
cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZz4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8SGFzaENvdW50ZWRTZXQ8S2V5QXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmc+PiB7CiAgICAg
dHlwZWRlZiBIYXNoQ291bnRlZFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZz4gSGFz
aENvdW50ZWRTZXRUeXBlOwogICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAg
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEhhc2hDb3VudGVk
U2V0VHlwZSYgaGFzaENvdW50ZWRTZXQpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHN0YXRp
Y19jYXN0PHVpbnQ2NF90PihoYXNoQ291bnRlZFNldC5zaXplKCkpOwpAQCAtNjA1LDYgKzYzMCw3
IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUg
S2V5VHJhaXRzQXJnPiBzdHJ1Y3QgQXJndW1lCiAgICAgICAgIH0KICAgICB9CiAgICAgCisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJO
IGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENv
dW50ZWRTZXQpCiAgICAgewogICAgICAgICB1aW50NjRfdCBoYXNoQ291bnRlZFNldFNpemU7CkBA
IC02MzYsNiArNjYyLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNo
QXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmc+IHN0cnVjdCBBcmd1bWUKIH07CiAKIHRlbXBsYXRl
PHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxFeHBlY3RlZDxWYWx1ZVR5cGUsIEVycm9yVHlwZT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBFeHBlY3RlZDxWYWx1ZVR5cGUsIEVycm9yVHlwZT4mIGV4cGVjdGVkKQogICAgIHsKICAg
ICAgICAgaWYgKCFleHBlY3RlZC5oYXNfdmFsdWUoKSkgewpAQCAtNjQ3LDYgKzY3NCw3IEBAIHRl
bXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxFeHBlY3RlZDxWCiAgICAgICAgIGVuY29kZXIgPDwgZXhwZWN0ZWQudmFsdWUo
KTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPEV4cGVjdGVkPFZhbHVlVHlwZSwgRXJyb3JUeXBlPj4gZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGhhc1ZhbHVl
OwpAQCAtNjczLDYgKzcwMSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5h
bWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWCiAKIHRlbXBsYXRl
PHNpemVfdCBpbmRleCwgdHlwZW5hbWUuLi4gVHlwZXM+CiBzdHJ1Y3QgVmFyaWFudENvZGVyIHsK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+JiB2YXJpYW50LCB1
bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgaWYgKGkgPT0gaW5kZXgpIHsKQEAgLTY4Miw2ICs3
MTEsNyBAQCBzdHJ1Y3QgVmFyaWFudENvZGVyIHsKICAgICAgICAgVmFyaWFudENvZGVyPGluZGV4
IC0gMSwgVHlwZXMuLi4+OjplbmNvZGUoZW5jb2RlciwgdmFyaWFudCwgaSk7CiAgICAgfQogICAg
IAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIsIHVuc2ln
bmVkIGkpCiAgICAgewogICAgICAgICBpZiAoaSA9PSBpbmRleCkgewpAQCAtNjk3LDEyICs3Mjcs
MTQgQEAgc3RydWN0IFZhcmlhbnRDb2RlciB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVz
Pgogc3RydWN0IFZhcmlhbnRDb2RlcjwwLCBUeXBlcy4uLj4geworICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IFdURjo6VmFyaWFudDxUeXBlcy4uLj4mIHZhcmlhbnQsIHVuc2lnbmVkIGkpCiAgICAgewog
ICAgICAgICBBU1NFUlRfVU5VU0VEKGksICFpKTsKICAgICAgICAgZW5jb2RlciA8PCBXVEY6Omdl
dDwwPih2YXJpYW50KTsKICAgICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rl
cj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+PiBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgdW5zaWduZWQgaSkKICAgICB7CiAgICAgICAgIEFTU0VSVF9V
TlVTRUQoaSwgIWkpOwpAQCAtNzE1LDYgKzc0Nyw3IEBAIHN0cnVjdCBWYXJpYW50Q29kZXI8MCwg
VHlwZXMuLi4+IHsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+PiB7CisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29u
c3QgV1RGOjpWYXJpYW50PFR5cGVzLi4uPiYgdmFyaWFudCkKICAgICB7CiAgICAgICAgIHVuc2ln
bmVkIGkgPSB2YXJpYW50LmluZGV4KCk7CkBAIC03MjIsNiArNzU1LDcgQEAgdGVtcGxhdGU8dHlw
ZW5hbWUuLi4gVHlwZXM+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdURjo6VmFyaWFudDxUeXBlcy4u
Lj4+IHsKICAgICAgICAgVmFyaWFudENvZGVyPHNpemVvZi4uLihUeXBlcykgLSAxLCBUeXBlcy4u
Lj46OmVuY29kZShlbmNvZGVyLCB2YXJpYW50LCBpKTsKICAgICB9CiAgICAgCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXVEY6OlZhcmlh
bnQ8VHlwZXMuLi4+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0
ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGk7CkBAIC03NzMsOCArODA3LDE0IEBAIHRlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD4gewogI2VuZGlmCiAKIHRlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBjb25zdCBNb25vc3RhdGUmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25h
bDxNb25vc3RhdGU+IGRlY29kZShEZWNvZGVyJik7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5j
b2Rlcj4KKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IE1vbm9zdGF0ZSYp
IHsgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KKyAgICBzdGF0aWMgc3RkOjpv
cHRpb25hbDxNb25vc3RhdGU+IGRlY29kZShEZWNvZGVyJikKKyAgICB7CisgICAgICAgIHJldHVy
biBNb25vc3RhdGUgeyB9OworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggZmFiY2Vm
NmMyMTI1MjNlZjAxY2M4OWE0OTg0NjAwNmQ4ZWEyZGY5My4uYjRhMjVhOTk2NmZjNzZhMTk1ODBl
MWZhOGRhOGJhN2MyMjM3ZTA0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwCkBAIC0yMzEsMTYgKzIzMSw2IEBAIHN0YXRpYyBXQVJOX1VOVVNF
RF9SRVRVUk4gYm9vbCBkZWNvZGVUeXBlc0FuZERhdGEoRGVjb2RlciYgZGVjb2RlciwgVmVjdG9y
PFN0cmluCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxBZmZpbmVU
cmFuc2Zvcm0+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiBhZmZpbmVUcmFuc2Zvcm0pCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxBZmZpbmVUcmFu
c2Zvcm0+OjplbmNvZGUoZW5jb2RlciwgYWZmaW5lVHJhbnNmb3JtKTsKLX0KLQotYm9vbCBBcmd1
bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBBZmZp
bmVUcmFuc2Zvcm0mIGFmZmluZVRyYW5zZm9ybSkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1l
bnRDb2RlcjxBZmZpbmVUcmFuc2Zvcm0+OjpkZWNvZGUoZGVjb2RlciwgYWZmaW5lVHJhbnNmb3Jt
KTsKLX0KLQogdm9pZCBBcmd1bWVudENvZGVyPENhY2hlUXVlcnlPcHRpb25zPjo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IENhY2hlUXVlcnlPcHRpb25zJiBvcHRpb25zKQogewogICAg
IGVuY29kZXIgPDwgb3B0aW9ucy5pZ25vcmVTZWFyY2g7CkBAIC02MTcsODYgKzYwNyw2IEBAIGJv
b2wgQXJndW1lbnRDb2RlcjxTcHJpbmdUaW1pbmdGdW5jdGlvbj46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBTcHJpbmdUaW1pbmdGCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1l
bnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0
UG9pbnQmIGZsb2F0UG9pbnQpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50
Pjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0UG9pbnQpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8
RmxvYXRQb2ludD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFBvaW50JiBmbG9hdFBv
aW50KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNv
ZGUoZGVjb2RlciwgZmxvYXRQb2ludCk7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4g
QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0g
ICAgRmxvYXRQb2ludCBmbG9hdFBvaW50OwotICAgIGlmICghU2ltcGxlQXJndW1lbnRDb2RlcjxG
bG9hdFBvaW50Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0UG9pbnQpKQotICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwotICAgIHJldHVybiBmbG9hdFBvaW50OwotfQotCi12b2lkIEFyZ3VtZW50
Q29kZXI8RmxvYXRQb2ludDNEPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0
UG9pbnQzRCYgZmxvYXRQb2ludCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UG9p
bnQzRD46OmVuY29kZShlbmNvZGVyLCBmbG9hdFBvaW50KTsKLX0KLQotYm9vbCBBcmd1bWVudENv
ZGVyPEZsb2F0UG9pbnQzRD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFBvaW50M0Qm
IGZsb2F0UG9pbnQpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2lu
dDNEPjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0UG9pbnQpOwotfQotCi0KLXZvaWQgQXJndW1lbnRD
b2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRSZWN0
JiBmbG9hdFJlY3QpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNv
ZGUoZW5jb2RlciwgZmxvYXRSZWN0KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UmVj
dD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFJlY3QmIGZsb2F0UmVjdCkKLXsKLSAg
ICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjpkZWNvZGUoZGVjb2Rlciwg
ZmxvYXRSZWN0KTsKLX0KLQotc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+IEFyZ3VtZW50Q29kZXI8
RmxvYXRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgRmxvYXRSZWN0IGZs
b2F0UmVjdDsKLSAgICBpZiAoIVNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2Rl
KGRlY29kZXIsIGZsb2F0UmVjdCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAg
cmV0dXJuIGZsb2F0UmVjdDsKLX0KLQotCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRCb3hFeHRl
bnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRCb3hFeHRlbnQmIGZsb2F0
Qm94RXh0ZW50KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+Ojpl
bmNvZGUoZW5jb2RlciwgZmxvYXRCb3hFeHRlbnQpOwotfQotICAgIAotYm9vbCBBcmd1bWVudENv
ZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEZsb2F0Qm94RXh0
ZW50JiBmbG9hdEJveEV4dGVudCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxG
bG9hdEJveEV4dGVudD46OmRlY29kZShkZWNvZGVyLCBmbG9hdEJveEV4dGVudCk7Ci19Ci0gICAg
Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgRmxvYXRTaXplJiBmbG9hdFNpemUpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2Rl
cjxGbG9hdFNpemU+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRTaXplKTsKLX0KLQotYm9vbCBBcmd1
bWVudENvZGVyPEZsb2F0U2l6ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFNpemUm
IGZsb2F0U2l6ZSkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+
OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRTaXplKTsKLX0KLQotCi12b2lkIEFyZ3VtZW50Q29kZXI8
RmxvYXRSb3VuZGVkUmVjdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFJv
dW5kZWRSZWN0JiByb3VuZGVkUmVjdCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0
Um91bmRlZFJlY3Q+OjplbmNvZGUoZW5jb2Rlciwgcm91bmRlZFJlY3QpOwotfQotCi1ib29sIEFy
Z3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBG
bG9hdFJvdW5kZWRSZWN0JiByb3VuZGVkUmVjdCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1l
bnRDb2RlcjxGbG9hdFJvdW5kZWRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIHJvdW5kZWRSZWN0KTsK
LX0KLQogI2lmIEVOQUJMRShNRVRBX1ZJRVdQT1JUKQogdm9pZCBBcmd1bWVudENvZGVyPFZpZXdw
b3J0QXJndW1lbnRzPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFZpZXdwb3J0QXJn
dW1lbnRzJiB2aWV3cG9ydEFyZ3VtZW50cykKIHsKQEAgLTcyOCw4NyArNjM4LDYgQEAgYm9vbCBB
cmd1bWVudENvZGVyPFZpZXdwb3J0QXR0cmlidXRlcz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBWaWV3cG9ydEF0dHJpYnUKICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxWaWV3cG9y
dEF0dHJpYnV0ZXM+OjpkZWNvZGUoZGVjb2Rlciwgdmlld3BvcnRBdHRyaWJ1dGVzKTsKIH0KIAot
dm9pZCBBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IEludFBvaW50JiBpbnRQb2ludCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEludFBv
aW50Pjo6ZW5jb2RlKGVuY29kZXIsIGludFBvaW50KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVy
PEludFBvaW50Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEludFBvaW50JiBpbnRQb2ludCkK
LXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZShkZWNv
ZGVyLCBpbnRQb2ludCk7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+IEFy
Z3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBJ
bnRQb2ludCBpbnRQb2ludDsKLSAgICBpZiAoIVNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+
OjpkZWNvZGUoZGVjb2RlciwgaW50UG9pbnQpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwotICAgIHJldHVybiBpbnRQb2ludDsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPEludFJlY3Q+
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgSW50UmVjdCYgaW50UmVjdCkKLXsKLSAg
ICBTaW1wbGVBcmd1bWVudENvZGVyPEludFJlY3Q+OjplbmNvZGUoZW5jb2RlciwgaW50UmVjdCk7
Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIEludFJlY3QmIGludFJlY3QpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8
SW50UmVjdD46OmRlY29kZShkZWNvZGVyLCBpbnRSZWN0KTsKLX0KLQotc3RkOjpvcHRpb25hbDxJ
bnRSZWN0PiBBcmd1bWVudENvZGVyPEludFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
LXsKLSAgICBJbnRSZWN0IHJlY3Q7Ci0gICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgcmVjdCkpCi0g
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIHJlY3Q7Ci19Ci0KLXRlbXBs
YXRlPHR5cGVuYW1lIEVuY29kZXI+Ci12b2lkIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJbnRTaXplJiBpbnRTaXplKQotewotICAgIFNpbXBs
ZUFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZShlbmNvZGVyLCBpbnRTaXplKTsKLX0KLQot
dGVtcGxhdGUKLXZvaWQgQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZW5jb2RlPEVuY29kZXI+KEVu
Y29kZXImLCBjb25zdCBJbnRTaXplJik7Ci10ZW1wbGF0ZQotdm9pZCBBcmd1bWVudENvZGVyPElu
dFNpemU+OjplbmNvZGU8U3RyZWFtQ29ubmVjdGlvbkVuY29kZXI+KFN0cmVhbUNvbm5lY3Rpb25F
bmNvZGVyJiwgY29uc3QgSW50U2l6ZSYpOwotCi1ib29sIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBJbnRTaXplJiBpbnRTaXplKQotewotICAgIHJldHVy
biBTaW1wbGVBcmd1bWVudENvZGVyPEludFNpemU+OjpkZWNvZGUoZGVjb2RlciwgaW50U2l6ZSk7
Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8SW50U2l6ZT4gQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgSW50U2l6ZSBpbnRTaXplOwotICAgIGlmICgh
U2ltcGxlQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZGVjb2RlKGRlY29kZXIsIGludFNpemUpKQot
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBpbnRTaXplOwotfQotCi12
b2lkIEFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBMYXlvdXRTaXplJiBsYXlvdXRTaXplKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8
TGF5b3V0U2l6ZT46OmVuY29kZShlbmNvZGVyLCBsYXlvdXRTaXplKTsKLX0KLQotYm9vbCBBcmd1
bWVudENvZGVyPExheW91dFNpemU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTGF5b3V0U2l6
ZSYgbGF5b3V0U2l6ZSkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxMYXlvdXRT
aXplPjo6ZGVjb2RlKGRlY29kZXIsIGxheW91dFNpemUpOwotfQotCi0KLXZvaWQgQXJndW1lbnRD
b2RlcjxMYXlvdXRQb2ludD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMYXlvdXRQ
b2ludCYgbGF5b3V0UG9pbnQpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxMYXlvdXRQb2lu
dD46OmVuY29kZShlbmNvZGVyLCBsYXlvdXRQb2ludCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2Rl
cjxMYXlvdXRQb2ludD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBMYXlvdXRQb2ludCYgbGF5
b3V0UG9pbnQpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+
OjpkZWNvZGUoZGVjb2RlciwgbGF5b3V0UG9pbnQpOwotfQotCiB2b2lkIEFyZ3VtZW50Q29kZXI8
UmVjZW50U2VhcmNoPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlY2VudFNlYXJj
aCYgcmVjZW50U2VhcmNoKQogewogICAgIGVuY29kZXIgPDwgcmVjZW50U2VhcmNoLnN0cmluZyA8
PCByZWNlbnRTZWFyY2gudGltZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgKaW5kZXggNTQ1OTc1YTBkZjE1MDFiZTg4MTM1NDlhOTAxYWRkMDcxYmUwMWY5
Ni4uMDhjMTcyZDRjZTIwMDUwZGU0NDY4ZjQ1ZDcxMTA3ZGFjNWY0NmIxMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTI2LDEyICsyNiwyNCBA
QAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvQWZmaW5lVHJhbnNmb3JtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRvcGxheUV2
ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db2xvclNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2lu
dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludDNELmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9GbG9hdFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0Um91bmRlZFJlY3QuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2Fk
ZXJUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5kZXhlZERCLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9JbnB1dE1vZGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ludFBvaW50Lmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9MYXlvdXRQb2ludC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGF5b3V0U2l6
ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGVuZ3RoQm94Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9N
ZWRpYVNlbGVjdGlvbk9wdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmF0aXZlSW1hZ2UuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtMb2FkTWV0cmljcy5oPgpAQCAtOTYsNyArMTA4LDYg
QEAgdHlwZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZlciogQ1ZQaXhlbEJ1ZmZlclJlZjsKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgQWJzb2x1dGVQb3NpdGlvbkNvbnN0cmFpbnRzOwotY2xhc3Mg
QWZmaW5lVHJhbnNmb3JtOwogY2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7CiBjbGFzcyBC
bG9iUGFydDsKIGNsYXNzIENlcnRpZmljYXRlSW5mbzsKQEAgLTEwOSwyMSArMTIwLDExIEBAIGNs
YXNzIERyYWdEYXRhOwogY2xhc3MgRmlsZTsKIGNsYXNzIEZpbHRlck9wZXJhdGlvbjsKIGNsYXNz
IEZpbHRlck9wZXJhdGlvbnM7Ci1jbGFzcyBGbG9hdFBvaW50OwotY2xhc3MgRmxvYXRQb2ludDNE
OwotY2xhc3MgRmxvYXRSZWN0OwotY2xhc3MgRmxvYXRSb3VuZGVkUmVjdDsKLWNsYXNzIEZsb2F0
U2l6ZTsKIGNsYXNzIEZpeGVkUG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzOwogY2xhc3MgRm9u
dDsKIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGE7CiBjbGFzcyBIVFRQSGVhZGVyTWFwOwotY2xhc3Mg
SW50UG9pbnQ7Ci1jbGFzcyBJbnRSZWN0OwotY2xhc3MgSW50U2l6ZTsKIGNsYXNzIEtleWZyYW1l
VmFsdWVMaXN0OwotY2xhc3MgTGF5b3V0U2l6ZTsKLWNsYXNzIExheW91dFBvaW50OwogY2xhc3Mg
TGluZWFyVGltaW5nRnVuY3Rpb247CiBjbGFzcyBOb3RpZmljYXRpb247CiBjbGFzcyBQYXN0ZWJv
YXJkQ3VzdG9tRGF0YTsKQEAgLTE3NCw5ICsxNzUsNyBAQCBzdHJ1Y3QgVG91Y2hBY3Rpb25EYXRh
Owogc3RydWN0IFZlbG9jaXR5RGF0YTsKIHN0cnVjdCBWaWV3cG9ydEF0dHJpYnV0ZXM7CiBzdHJ1
Y3QgV2luZG93RmVhdHVyZXM7Ci0gICAgCi10ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgUmVjdEVk
Z2VzOwotdXNpbmcgRmxvYXRCb3hFeHRlbnQgPSBSZWN0RWRnZXM8ZmxvYXQ+OworCiB1c2luZyBJ
REJLZXlQYXRoID0gVmFyaWFudDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+PjsKIAogI2lmIFBMQVRG
T1JNKENPQ09BKQpAQCAtMjI3LDEwICsyMjYsMjUgQEAgc3RydWN0IFJlY29yZDsKIAogbmFtZXNw
YWNlIElQQyB7CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6QWZm
aW5lVHJhbnNmb3JtPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBX
ZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJO
IGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mKTsKLX07CitE
RUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSkKK0RF
RklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQpCitERUZJ
TkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6OkZsb2F0UG9pbnQpCitERUZJTkVfU0lN
UExFX0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6OkZsb2F0UG9pbnQzRCkKK0RFRklORV9TSU1QTEVf
QVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6RmxvYXRSZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVO
VF9DT0RFUihXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVO
VF9DT0RFUihXZWJDb3JlOjpGbG9hdFNpemUpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVS
KFdlYkNvcmU6OkludFBvaW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3Jl
OjpJbnRSZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpJbnRTaXpl
KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpMYXlvdXRTaXplKQorREVG
SU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpMYXlvdXRQb2ludCkKKworI2lmIFVT
RShDRykKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoQ0dSZWN0KQorREVGSU5FX1NJTVBM
RV9BUkdVTUVOVF9DT0RFUihDR1NpemUpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKENH
UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKENHQWZmaW5lVHJhbnNmb3JtKQor
I2VuZGlmCiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6QXR0cmli
dXRlZFN0cmluZz4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6QXR0cmlidXRlZFN0cmluZyYpOwpAQCAtMjk5LDM4ICszMTMsNiBAQCB0ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz4gewogICAgIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz4gZGVjb2RlKERlY29k
ZXImKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Rmxv
YXRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRQb2ludCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNv
ZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFBvaW50M0Q+IHsKLSAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYp
OwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdl
YkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpGbG9hdFJlY3Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9S
RVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UmVjdCYpOwotICAgIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gZGVjb2RlKERlY29kZXImKTsK
LX07Ci0gICAgCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0
Qm94RXh0ZW50PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJD
b3JlOjpGbG9hdEJveEV4dGVudCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9v
bCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50Jik7Ci19OwotCi10ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0U2l6ZT4gewotICAgIHN0
YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7Ci0g
ICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29y
ZTo6RmxvYXRTaXplJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3QmKTsKLSAgICBzdGF0aWMgV0FSTl9V
TlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpGbG9hdFJvdW5kZWRS
ZWN0Jik7Ci19OwotCiAjaWYgRU5BQkxFKE1FVEFfVklFV1BPUlQpCiB0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiB7CiAgICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYp
OwpAQCAtMzQ1LDM1ICszMjcsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcz4gewogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRV
Uk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYpOwog
fTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRQb2ludD4g
ewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXIm
LCBXZWJDb3JlOjpJbnRQb2ludCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkludFBvaW50PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRSZWN0PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVu
Y29kZXImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VE
X1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6SW50UmVjdCYpOwotICAgIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFJlY3Q+IGRlY29kZShEZWNvZGVyJik7Ci19
OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkludFNpemU+IHsK
LSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgotICAgIHN0YXRpYyB2b2lkIGVuY29kZShF
bmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNF
RF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkludFNpemUmKTsKLSAgICBz
dGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRTaXplPiBkZWNvZGUoRGVjb2RlciYpOwot
fTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMYXlvdXRTaXpl
PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpMYXlv
dXRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNv
ZGVyJiwgV2ViQ29yZTo6TGF5b3V0U2l6ZSYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpMYXlvdXRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmKTsKLSAgICBzdGF0aWMgV0FS
Tl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpMYXlvdXRQb2lu
dCYpOwotfTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMZW5n
dGg+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6Okxl
bmd0aCYpOwogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2Rl
ciYsIFdlYkNvcmU6Okxlbmd0aCYpOwpAQCAtNDUyLDYgKzQwNSw3IEBAIHRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RHJhZ0RhdGE+IHsKICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oQ09DT0EpCisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpNYWNo
U2VuZFJpZ2h0PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXVEY6
Ok1hY2hTZW5kUmlnaHQmKTsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIFdURjo6
TWFjaFNlbmRSaWdodCYmKTsKQEAgLTQ2MywyNiArNDE3LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IHsKICAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IGRlY29kZShEZWNvZGVyJik7CiB9
OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHUG9pbnQ+IHsKLSAgICBzdGF0
aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIENHUG9pbnQpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPENHUG9pbnQ+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPENHU2l6ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwg
Q0dTaXplKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDR1NpemU+IGRlY29kZShEZWNvZGVy
Jik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHUmVjdD4gewotICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dSZWN0KTsKLSAgICBzdGF0aWMgc3RkOjpv
cHRpb25hbDxDR1JlY3Q+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBDR0FmZmluZVRyYW5zZm9ybSk7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8Q0dBZmZpbmVUcmFuc2Zvcm0+IGRlY29kZShEZWNvZGVyJik7Ci19OwotI2VuZGlmCisjZW5k
aWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZWxlY3Rpb25HZW9tZXRyeT4gewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVy
c01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNN
YWMubW0KaW5kZXggOGU0ZDVmMTMxZDgyZjFkZWZlMjZkMTVhYmZlZTA2NGEzYjk4OTBmOC4uNmE0
MzQwNjcxNDYzZDk0NzA3MTkyMzEwYjFmN2JhMGJkMDNhNzZmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tCkBAIC0zMjEs
NzkgKzMyMSw2IEBAIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD46CiAgICAgcmV0dXJuIFdURk1vdmUo
Y29tbWFuZCk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxDR1JlY3Q+OjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlciwgQ0dSZWN0IHJlY3QpCi17Ci0gICAgZW5jb2RlciA8PCByZWN0Lm9yaWdpbiA8
PCByZWN0LnNpemU7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8Q0dSZWN0PiBBcmd1bWVudENvZGVyPENH
UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIHN0ZDo6b3B0aW9uYWw8Q0dQ
b2ludD4gb3JpZ2luOwotICAgIGRlY29kZXIgPj4gb3JpZ2luOwotICAgIGlmICghb3JpZ2luKQot
ICAgICAgICByZXR1cm4geyB9OwotCi0gICAgc3RkOjpvcHRpb25hbDxDR1NpemU+IHNpemU7Ci0g
ICAgZGVjb2RlciA+PiBzaXplOwotICAgIGlmICghc2l6ZSkKLSAgICAgICAgcmV0dXJuIHsgfTsK
LQotICAgIHJldHVybiBDR1JlY3QgeyAqb3JpZ2luLCAqc2l6ZSB9OwotfQotCi12b2lkIEFyZ3Vt
ZW50Q29kZXI8Q0dTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENHU2l6ZSBzaXplKQot
ewotICAgIGVuY29kZXIgPDwgc2l6ZS53aWR0aCA8PCBzaXplLmhlaWdodDsKLX0KLQotc3RkOjpv
cHRpb25hbDxDR1NpemU+IEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCi17Ci0gICAgQ0dTaXplIHNpemU7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaXpl
LndpZHRoKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNp
emUuaGVpZ2h0KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4gc2l6ZTsKLX0KLQot
dm9pZCBBcmd1bWVudENvZGVyPENHUG9pbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0dQ
b2ludCBwb2ludCkKLXsKLSAgICBlbmNvZGVyIDw8IHBvaW50LnggPDwgcG9pbnQueTsKLX0KLQot
c3RkOjpvcHRpb25hbDxDR1BvaW50PiBBcmd1bWVudENvZGVyPENHUG9pbnQ+OjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKLXsKLSAgICBDR1BvaW50IHBvaW50OwotICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocG9pbnQueCkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShwb2ludC55KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4gcG9pbnQ7Ci19
Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxDR0FmZmluZVRyYW5zZm9ybT46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0pCi17Ci0gICAgZW5jb2RlciA8
PCB0cmFuc2Zvcm0uYSA8PCB0cmFuc2Zvcm0uYiA8PCB0cmFuc2Zvcm0uYyA8PCB0cmFuc2Zvcm0u
ZCA8PCB0cmFuc2Zvcm0udHggPDwgdHJhbnNmb3JtLnR5OwotfQotCi1zdGQ6Om9wdGlvbmFsPENH
QWZmaW5lVHJhbnNmb3JtPiBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtOwot
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmEpKQotICAgICAgICByZXR1cm4geyB9
OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmIpKQotICAgICAgICByZXR1cm4g
eyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmMpKQotICAgICAgICByZXR1
cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmQpKQotICAgICAgICBy
ZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLnR4KSkKLSAgICAg
ICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5zZm9ybS50eSkpCi0g
ICAgICAgIHJldHVybiB7IH07Ci0gICAgcmV0dXJuIHRyYW5zZm9ybTsKLX0KLQogI2lmIEVOQUJM
RShDT05URU5UX0ZJTFRFUklORykKIAogdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNvbnRl
bnRGaWx0ZXJVbmJsb2NrSGFuZGxlcj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBX
ZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIGNvbnRlbnRGaWx0ZXJVbmJsb2Nr
SGFuZGxlcikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439222</attachid>
            <date>2021-09-24 17:46:41 -0700</date>
            <delta_ts>2021-09-24 23:14:08 -0700</delta_ts>
            <desc>Try to fix WPE (again)</desc>
            <filename>bug-230714-20210924174641.patch</filename>
            <type>text/plain</type>
            <size>34103</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJmZDdkOTQ0YTczN2IxODFl
YTA5NGE1ZDQxNmNjYWM5ZWRkYmRkNTMuLjRmZGQ1ZDk4NTIzOWRhNmE2YWY0ZTdiZjZlNjMwMTYw
MGFlMmM5M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjkgQEAKKzIwMjEtMDktMjMgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIFJlZmFj
dG9yIHNvbWUgSVBDIGFyZ3VtZW50IGVuY29kZXIgbG9naWMgdG8gd29yayB3aXRoIFN0cmVhbUNv
bm5lY3Rpb25FbmNvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA3MTQKKyAgICAgICAgcmRhcjovLzgzNDc3NTkxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byB1c2Ug
YElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXJgIHRvIGVuY29kZSBkaXNwbGF5IGxpc3QgaXRl
bXMgKGFuZCB0aGVpciBtZW1iZXJzKSBpbiBhbgorICAgICAgICBJUEMgc3RyZWFtLiBUaGlzIHBh
dGNoIGNvbXByaXNlcyB0d28gbWFpbiBzZXRzIG9mIGNoYW5nZXMgaW4gYEFyZ3VtZW50Q29kZXJz
YCwgYW5kIGBXZWJDb3JlQXJndW1lbnRDb2RlcnNgLiBTZWUKKyAgICAgICAgYmVsb3cgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmRlY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNb25vc3RhdGU+OjpkZWNvZGUpOiBEZWxldGVk
LgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2RlKToKKworICAgICAgICBNYW55IG9mIHRoZXNlIGBl
bmNvZGUoKWAgbWV0aG9kcyBhcmUgY3VycmVudGx5IG5vbi10ZW1wbGF0ZWQsIHdoaWNoIG1lYW5z
IHRoYXQgRW5jb2RlciBhbmQgRGVjb2RlciB1c2VkIGhlcmUKKyAgICAgICAgcmVmZXIgc29sZWx5
IHRvIElQQzo6RW5jb2RlciBhbmQgSVBDOjpEZWNvZGVyIChyZXNwZWN0aXZlbHkpIGluc3RlYWQg
b2Ygb3RoZXIgdHlwZXMgb2YgZW5jb2RlcnMgKG5hbWVseSwKKyAgICAgICAgU3RyZWFtQ29ubmVj
dGlvbkVuY29kZXIpLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxBZmZpbmVUcmFuc2Zvcm0+
OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UG9p
bnQ+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0
UG9pbnQ+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZs
b2F0UG9pbnQzRD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8RmxvYXRQb2ludDNEPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjplbmNvZGUpOiBEZWxldGVkLgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0U2l6ZT46OmRlY29kZSk6IERlbGV0ZWQu
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46
OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+
OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEludFBvaW50
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRSZWN0
Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRSZWN0
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRTaXpl
Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRTaXpl
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxMYXlvdXRT
aXplPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxMYXlv
dXRTaXplPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxM
YXlvdXRQb2ludD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8TGF5b3V0UG9pbnQ+OjpkZWNvZGUpOiBEZWxldGVkLgorCisgICAgICAgIFRoZXNlIFdlYkNv
cmUgYXJndW1lbnQgY29kZXJzIGFyZSBhbHNvIGN1cnJlbnRseSBpbmNvbXBhdGlibGUgd2l0aCBT
dHJlYW1Db25uZWN0aW9uRW5jb2Rlciwgc2luY2UgdGhleSBhcmUgbm9uLQorICAgICAgICB0ZW1w
bGF0ZWQgKGFuZCB0aHVzIG9ubHkgd29yayB3aXRoIElQQzo6RW5jb2RlcikuIFNpbmNlIHRoZXNl
IGFyZSBhbGwgZW5jb2RhYmxlIGFzIFBPRCB0eXBlcywgd2UgY2FuIGp1c3QgdXNlCisgICAgICAg
IFNpbXBsZUFyZ3VtZW50Q29kZXIgZm9yIGFsbCBvZiB0aGVzZS4gV2UgYWxzbyBhZGQgYSBuZXcg
YERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJgIG1hY3JvIHRvIG1ha2UgdGhpcyBjb2RlIGEK
KyAgICAgICAgYml0IGVhc2llciB0byByZWFkLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzTWFjLm1tOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHUmVjdD46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dSZWN0Pjo6ZGVjb2RlKTog
RGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDR1NpemU+OjplbmNvZGUpOiBE
ZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHU2l6ZT46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHQWZmaW5lVHJh
bnNmb3JtPjo6ZGVjb2RlKTogRGVsZXRlZC4KKwogMjAyMS0wOS0yNCAgRGV2aW4gUm91c3NvICA8
ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHR5cGVjaGVja2luZyBgaXNgIG92ZXJs
b2FkcyBmb3IgYHN0ZDo6dW5pcXVlX3B0cmAsIGBXVEY6OlVuaXF1ZVJlZmAsIGFuZCBgV1RGOjpX
ZWFrUHRyYApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRD
b2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3Bw
CmluZGV4IGEzMjA1NTE4Nzk4Yjc0ZGNlZGI4YTAxM2Y5YzljOTg4NWFhZTY2MTYuLmU3ZjI3ODAz
NjJkZDIwMzc0MzRjYTFjYjM5MGRkZTZlZjc5MTU5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaCIKICNpbmNsdWRlICJQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEVuY29kZXIuaCIKICNpbmNsdWRlICJTdHJlYW1Db25uZWN0aW9uRW5jb2Rl
ci5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTIxOCw2
ICsyMTksNyBAQCBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBBcmd1bWVudENvZGVyPFNIQTE6OkRp
Z2VzdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTSAogfQogCiAjaWYgSEFWRShBVURJVF9U
T0tFTikKKwogdm9pZCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rva2VuX3Q+OjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgYXVkaXRfdG9rZW5fdCYgYXVkaXRUb2tlbikKIHsKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChhdWRpdFRva2VuLnZhbCk7IGkr
KykKQEAgLTIzMiwxNSArMjM0LDcgQEAgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgQXJndW1lbnRD
b2RlcjxhdWRpdF90b2tlbl90Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIGEKICAgICB9CiAg
ICAgcmV0dXJuIHRydWU7CiB9Ci0jZW5kaWYKLQotdm9pZCBBcmd1bWVudENvZGVyPE1vbm9zdGF0
ZT46OmVuY29kZShFbmNvZGVyJiwgY29uc3QgTW9ub3N0YXRlJikKLXsKLX0KIAotV0FSTl9VTlVT
RURfUkVUVVJOIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBBcmd1bWVudENvZGVyPE1vbm9zdGF0
ZT46OmRlY29kZShEZWNvZGVyJikKLXsKLSAgICByZXR1cm4gTW9ub3N0YXRlIHsgfTsKLX0KKyNl
bmRpZiAvLyBIQVZFKEFVRElUX1RPS0VOKQogCiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCmluZGV4IGE4Yzg5M2YwYzUyNDBh
ODg4OWMzNDUxNGY5ZmIxZWZlZTBkNjI3MGEuLmI3OWI1NThiZjQyZDM2NTM2OTk5ZWRjMTMxOWM3
NjBiNmQ3OTRhZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3Vt
ZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2Rl
cnMuaApAQCAtNDAsNiArNDAsMjIgQEAKIAogbmFtZXNwYWNlIElQQyB7CiAKKyNkZWZpbmUgREVG
SU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihUeXBlKSBcCisgICAgdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxUeXBlPiB7IFwKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rl
cj4gdm9pZCBzdGF0aWMgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFR5cGUmIHZhbHVl
KSB7IFNpbXBsZUFyZ3VtZW50Q29kZXI8VHlwZT46OmVuY29kZShlbmNvZGVyLCB2YWx1ZSk7IH0g
XAorICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBib29sIHN0YXRpYyBkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgVHlwZSYgdmFsdWUpIHsgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29k
ZXI8VHlwZT46OmRlY29kZShkZWNvZGVyLCB2YWx1ZSk7IH0gXAorICAgICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxUeXBlPiBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikgXAorICAgICAgICB7IFwKKyAgICAgICAgICAgIFR5cGUgdmFsdWU7IFwKKyAg
ICAgICAgICAgIGlmICghZGVjb2RlKGRlY29kZXIsIHZhbHVlKSkgXAorICAgICAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7IFwKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsgXAorICAg
ICAgICB9IFwKKyAgICB9OyBcCisgICAgdGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFR5cGU+
OjplbmNvZGU8RW5jb2Rlcj4oRW5jb2RlciYsIGNvbnN0IFR5cGUmKTsgXAorICAgIHRlbXBsYXRl
IGJvb2wgQXJndW1lbnRDb2RlcjxUeXBlPjo6ZGVjb2RlPERlY29kZXI+KERlY29kZXImLCBUeXBl
Jik7IFwKKyAgICB0ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPFR5cGU+IEFyZ3VtZW50Q29kZXI8VHlw
ZT46OmRlY29kZTxEZWNvZGVyPihEZWNvZGVyJik7CisKIC8vIEFuIGFyZ3VtZW50IGNvZGVyIHdv
cmtzIG9uIFBPRCB0eXBlcwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IFNpbXBsZUFyZ3Vt
ZW50Q29kZXIgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CkBAIC00OCw2ICs2NCw3
IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBTaW1wbGVBcmd1bWVudENvZGVyIHsKICAg
ICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25z
dCB1aW50OF90Kj4oJnQpLCBzaXplb2YoVCksIGFsaWdub2YoVCkpOwogICAgIH0KIAorICAgIHRl
bXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBi
b29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBUJiB0KQogICAgIHsKICAgICAgICAgcmV0dXJu
IGRlY29kZXIuZGVjb2RlRml4ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+
KCZ0KSwgc2l6ZW9mKFQpLCBhbGlnbm9mKFQpKTsKQEAgLTEwNywxMiArMTI0LDE0IEBAIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPEFycmF5UmVmZXJlbmNlPFQsIGFy
cmF5UmVmZXJlbmNlRHluYW1pCiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxPcHRpb25TZXQ8VD4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
PgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBPcHRpb25T
ZXQ8VD4mIG9wdGlvblNldCkKICAgICB7CiAgICAgICAgIEFTU0VSVChXVEY6OmlzVmFsaWRPcHRp
b25TZXQob3B0aW9uU2V0KSk7CiAgICAgICAgIGVuY29kZXIgPDwgb3B0aW9uU2V0LnRvUmF3KCk7
CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FS
Tl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIE9wdGlvblNldDxU
PiYgb3B0aW9uU2V0KQogICAgIHsKICAgICAgICAgdHlwZW5hbWUgT3B0aW9uU2V0PFQ+OjpTdG9y
YWdlVHlwZSB2YWx1ZTsKQEAgLTEyNCw2ICsxNDMsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxPcHRpb25TZXQ8VD4+IHsKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxPcHRpb25TZXQ8VD4+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsK
ICAgICAgICAgc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBPcHRpb25TZXQ8VD46OlN0b3JhZ2VUeXBl
PiB2YWx1ZTsKQEAgLTE4Nyw2ICsyMDcsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxzdGQ6Om9wdGlvbmFsPFQ+PiB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxCb3g8VD4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBCb3g8VD4mIGJveCkKICAgICB7CiAgICAgICAgIGlmICghYm94KSB7CkBAIC0xOTgsNiArMjE5
LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7
CiAgICAgICAgIGVuY29kZXIgPDwgKmJveC5nZXQoKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgQm94PFQ+JiBib3gpCiAgICAgewogICAgICAgICBib29sIGlz
RW5nYWdlZDsKQEAgLTIxNyw2ICsyMzksNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxCb3g8VD4+IHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxC
b3g8VD4+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKICAgICAgICAgc3RkOjpvcHRp
b25hbDxib29sPiBpc0VuZ2FnZWQ7CkBAIC0yMzUsMTEgKzI1OCwxMyBAQCB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxCb3g8VD4+IHsKIH07CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIFQsIHR5cGVuYW1lIFU+IHN0cnVjdCBBcmd1bWVudENvZGVyPHN0ZDo6cGFpcjxULCBV
Pj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IHN0ZDo6cGFpcjxULCBVPiYgcGFpcikKICAgICB7
CiAgICAgICAgIGVuY29kZXIgPDwgcGFpci5maXJzdCA8PCBwYWlyLnNlY29uZDsKICAgICB9CiAK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9S
RVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2Rlciwgc3RkOjpwYWlyPFQsIFU+JiBwYWly
KQogICAgIHsKICAgICAgICAgVCBmaXJzdDsKQEAgLTI1NSw2ICsyODAsNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxzdGQ6OnBhaXI8VCwg
VT4+IHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8VCwgVT4+IGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxUPiBm
aXJzdDsKQEAgLTM2NSwxMSArMzkxLDEzIEBAIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEVsZW1lbnRz
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxzdGQ6OnR1cGxlPEVsZW1lbnRzLi4uPj4gewogfTsKIAog
dGVtcGxhdGU8dHlwZW5hbWUgS2V5VHlwZSwgdHlwZW5hbWUgVmFsdWVUeXBlPiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXVEY6OktleVZhbHVlUGFpcjxLZXlUeXBlLCBWYWx1ZVR5cGU+PiB7CisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgV1RGOjpLZXlWYWx1ZVBhaXI8S2V5VHlwZSwgVmFsdWVUeXBlPiYg
cGFpcikKICAgICB7CiAgICAgICAgIGVuY29kZXIgPDwgcGFpci5rZXkgPDwgcGFpci52YWx1ZTsK
ICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJO
X1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgV1RGOjpLZXlWYWx1
ZVBhaXI8S2V5VHlwZSwgVmFsdWVUeXBlPiYgcGFpcikKICAgICB7CiAgICAgICAgIEtleVR5cGUg
a2V5OwpAQCAtMzk3LDYgKzQyNSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxp
bmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyLCBzaXplX3QgbWluCiAgICAgICAg
ICAgICBlbmNvZGVyIDw8IHZlY3RvcltpXTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlciwgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIs
IG1pbkNhcGFjaXR5PiYgdmVjdG9yKQogICAgIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0
b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+PiBvcHRp
b25hbDsKQEAgLTQzNiw2ICs0NjUsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5s
aW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlciwgc2l6ZV90IG1pbgogICAgICAg
ICBlbmNvZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0IHVp
bnQ4X3QqPih2ZWN0b3IuZGF0YSgpKSwgdmVjdG9yLnNpemUoKSAqIHNpemVvZihUKSwgYWxpZ25v
ZihUKSk7CiAgICAgfQogICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAg
c3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBW
ZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+JiB2
ZWN0b3IpCiAgICAgewogICAgICAgICB1aW50NjRfdCBkZWNvZGVkU2l6ZTsKQEAgLTQ1MCw3ICs0
ODAsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVu
YW1lIE92ZXJmbG93SGFuZGxlciwgc2l6ZV90IG1pbgogICAgICAgICAvLyBTaW5jZSB3ZSBrbm93
IHRoZSB0b3RhbCBzaXplIG9mIHRoZSBlbGVtZW50cywgd2UgY2FuIGFsbG9jYXRlIHRoZSB2ZWN0
b3IgaW4KICAgICAgICAgLy8gb25lIGZlbGwgc3dvb3AuIEJlZm9yZSBhbGxvY2F0aW5nIHdlIG11
c3QgaG93ZXZlciBtYWtlIHN1cmUgdGhhdCB0aGUgZGVjb2RlciBidWZmZXIKICAgICAgICAgLy8g
aXMgYmlnIGVub3VnaC4KLSAgICAgICAgaWYgKCFkZWNvZGVyLmJ1ZmZlcklzTGFyZ2VFbm91Z2hU
b0NvbnRhaW48VD4oc2l6ZSkpCisgICAgICAgIGlmICghZGVjb2Rlci50ZW1wbGF0ZSBidWZmZXJJ
c0xhcmdlRW5vdWdoVG9Db250YWluPFQ+KHNpemUpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgICAgIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBt
aW5DYXBhY2l0eT4gdGVtcDsKQEAgLTQ5Nyw2ICs1MjcsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlciwgc2l6ZV90
IG1pbgogdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVu
YW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZywgdHlwZW5hbWUgTWFwcGVkVHJhaXRz
QXJnLCB0eXBlbmFtZSBIYXNoVGFibGVUcmFpdHM+IHN0cnVjdCBBcmd1bWVudENvZGVyPEhhc2hN
YXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVkVHJhaXRz
QXJnLCBIYXNoVGFibGVUcmFpdHM+PiB7CiAgICAgdHlwZWRlZiBIYXNoTWFwPEtleUFyZywgTWFw
cGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZywgSGFzaFRhYmxl
VHJhaXRzPiBIYXNoTWFwVHlwZTsKIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAg
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEhhc2hNYXBUeXBl
JiBoYXNoTWFwKQogICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50MzJf
dD4oaGFzaE1hcC5zaXplKCkpOwpAQCAtNTA0LDYgKzUzNSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IEtleUFyZywgdHlwZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBL
ZXlUcmFpCiAgICAgICAgICAgICBlbmNvZGVyIDw8ICppdDsKICAgICB9CiAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEhhc2hNYXBUeXBl
PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHVpbnQzMl90IGhhc2hN
YXBTaXplOwpAQCAtNTM0LDYgKzU2Niw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlw
ZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpCiAgICAg
ICAgIHJldHVybiBoYXNoTWFwOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29k
ZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBIYXNoTWFwVHlwZSYgaGFzaE1hcCkKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9u
YWw8SGFzaE1hcFR5cGU+IHRlbXBIYXNoTWFwOwpAQCAtNTQ4LDYgKzU4MSw3IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0
eXBlbmFtZSBLZXlUcmFpCiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hB
cmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZywgdHlwZW5hbWUgSGFzaFRhYmxlVHJhaXRzPiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxIYXNoU2V0PEtleUFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBI
YXNoVGFibGVUcmFpdHM+PiB7CiAgICAgdHlwZWRlZiBIYXNoU2V0PEtleUFyZywgSGFzaEFyZywg
S2V5VHJhaXRzQXJnLCBIYXNoVGFibGVUcmFpdHM+IEhhc2hTZXRUeXBlOwogCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgSGFzaFNldFR5cGUmIGhhc2hTZXQpCiAgICAgewogICAgICAgICBlbmNvZGVy
IDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihoYXNoU2V0LnNpemUoKSk7CkBAIC01NTUsNiArNTg5
LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFt
ZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1lIEhhc2gKICAgICAgICAgICAgIGVuY29kZXIgPDwgKml0
OwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdB
Uk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBIYXNoU2V0VHlw
ZSYgaGFzaFNldCkKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8SGFzaFNldFR5cGU+IHRl
bXBIYXNoU2V0OwpAQCAtNTY2LDYgKzYwMSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywg
dHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNoCiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29k
ZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8SGFzaFNldFR5cGU+IGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQogICAgIHsKICAgICAgICAgdWludDY0X3QgaGFzaFNldFNpemU7CkBAIC01OTUs
NiArNjMxLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0
eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1lIEhhc2gKIHRlbXBsYXRlPHR5cGVuYW1lIEtl
eUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnPiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxIYXNoQ291bnRlZFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZz4+
IHsKICAgICB0eXBlZGVmIEhhc2hDb3VudGVkU2V0PEtleUFyZywgSGFzaEFyZywgS2V5VHJhaXRz
QXJnPiBIYXNoQ291bnRlZFNldFR5cGU7CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5j
b2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgSGFz
aENvdW50ZWRTZXRUeXBlJiBoYXNoQ291bnRlZFNldCkKICAgICB7CiAgICAgICAgIGVuY29kZXIg
PDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGhhc2hDb3VudGVkU2V0LnNpemUoKSk7CkBAIC02MDUs
NiArNjQyLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0
eXBlbmFtZSBLZXlUcmFpdHNBcmc+IHN0cnVjdCBBcmd1bWUKICAgICAgICAgfQogICAgIH0KICAg
ICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNF
RF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSGFzaENvdW50ZWRTZXRUeXBl
JiBoYXNoQ291bnRlZFNldCkKICAgICB7CiAgICAgICAgIHVpbnQ2NF90IGhhc2hDb3VudGVkU2V0
U2l6ZTsKQEAgLTYzNiw2ICs2NzQsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVu
YW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZz4gc3RydWN0IEFyZ3VtZQogfTsKIAog
dGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVUeXBlLCB0eXBlbmFtZSBFcnJvclR5cGU+IHN0cnVjdCBB
cmd1bWVudENvZGVyPEV4cGVjdGVkPFZhbHVlVHlwZSwgRXJyb3JUeXBlPj4geworICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IEV4cGVjdGVkPFZhbHVlVHlwZSwgRXJyb3JUeXBlPiYgZXhwZWN0ZWQpCiAg
ICAgewogICAgICAgICBpZiAoIWV4cGVjdGVkLmhhc192YWx1ZSgpKSB7CkBAIC02NDcsNiArNjg2
LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVUeXBlLCB0eXBlbmFtZSBFcnJvclR5cGU+IHN0
cnVjdCBBcmd1bWVudENvZGVyPEV4cGVjdGVkPFYKICAgICAgICAgZW5jb2RlciA8PCBleHBlY3Rl
ZC52YWx1ZSgpOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8RXhwZWN0ZWQ8VmFsdWVUeXBlLCBFcnJvclR5cGU+PiBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4g
aGFzVmFsdWU7CkBAIC02NzMsNiArNzEzLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVUeXBl
LCB0eXBlbmFtZSBFcnJvclR5cGU+IHN0cnVjdCBBcmd1bWVudENvZGVyPEV4cGVjdGVkPFYKIAog
dGVtcGxhdGU8c2l6ZV90IGluZGV4LCB0eXBlbmFtZS4uLiBUeXBlcz4KIHN0cnVjdCBWYXJpYW50
Q29kZXIgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6VmFyaWFudDxUeXBlcy4uLj4mIHZh
cmlhbnQsIHVuc2lnbmVkIGkpCiAgICAgewogICAgICAgICBpZiAoaSA9PSBpbmRleCkgewpAQCAt
NjgyLDYgKzcyMyw3IEBAIHN0cnVjdCBWYXJpYW50Q29kZXIgewogICAgICAgICBWYXJpYW50Q29k
ZXI8aW5kZXggLSAxLCBUeXBlcy4uLj46OmVuY29kZShlbmNvZGVyLCB2YXJpYW50LCBpKTsKICAg
ICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgdW5zaWduZWQgaSkKICAgICB7CiAgICAgICAgIGlmIChpID09IGluZGV4KSB7CkBAIC02OTcs
MTIgKzczOSwxNCBAQCBzdHJ1Y3QgVmFyaWFudENvZGVyIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUu
Li4gVHlwZXM+CiBzdHJ1Y3QgVmFyaWFudENvZGVyPDAsIFR5cGVzLi4uPiB7CisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgV1RGOjpWYXJpYW50PFR5cGVzLi4uPiYgdmFyaWFudCwgdW5zaWduZWQgaSkK
ICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQoaSwgIWkpOwogICAgICAgICBlbmNvZGVyIDw8
IFdURjo6Z2V0PDA+KHZhcmlhbnQpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdURjo6VmFyaWFudDxUeXBlcy4u
Lj4+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAg
QVNTRVJUX1VOVVNFRChpLCAhaSk7CkBAIC03MTUsNiArNzU5LDcgQEAgc3RydWN0IFZhcmlhbnRD
b2RlcjwwLCBUeXBlcy4uLj4gewogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUuLi4gVHlwZXM+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IHsKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+JiB2YXJpYW50KQogICAgIHsKICAgICAg
ICAgdW5zaWduZWQgaSA9IHZhcmlhbnQuaW5kZXgoKTsKQEAgLTcyMiw2ICs3NjcsNyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpWYXJpYW50
PFR5cGVzLi4uPj4gewogICAgICAgICBWYXJpYW50Q29kZXI8c2l6ZW9mLi4uKFR5cGVzKSAtIDEs
IFR5cGVzLi4uPjo6ZW5jb2RlKGVuY29kZXIsIHZhcmlhbnQsIGkpOwogICAgIH0KICAgICAKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdU
Rjo6VmFyaWFudDxUeXBlcy4uLj4+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKICAg
ICAgICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gaTsKQEAgLTc3Myw4ICs4MTksMTQgQEAgdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxhdWRpdF90b2tlbl90PiB7CiAjZW5kaWYKIAog
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxNb25vc3RhdGU+IHsKLSAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IE1vbm9zdGF0ZSYpOwotICAgIHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPE1vbm9zdGF0ZT4gZGVjb2RlKERlY29kZXImKTsKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBFbmNvZGVyPgorICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgTW9u
b3N0YXRlJikgeyB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgorICAgIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPE1vbm9zdGF0ZT4gZGVjb2RlKERlY29kZXImKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIE1vbm9zdGF0ZSB7IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgSVBD
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRl
eCBmYWJjZWY2YzIxMjUyM2VmMDFjYzg5YTQ5ODQ2MDA2ZDhlYTJkZjkzLi5iNGEyNWE5OTY2ZmM3
NmExOTU4MGUxZmE4ZGE4YmE3YzIyMzdlMDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTIzMSwxNiArMjMxLDYgQEAgc3RhdGljIFdB
Uk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZVR5cGVzQW5kRGF0YShEZWNvZGVyJiBkZWNvZGVy
LCBWZWN0b3I8U3RyaW4KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVy
PEFmZmluZVRyYW5zZm9ybT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIGFmZmluZVRyYW5zZm9ybSkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEFm
ZmluZVRyYW5zZm9ybT46OmVuY29kZShlbmNvZGVyLCBhZmZpbmVUcmFuc2Zvcm0pOwotfQotCi1i
b29sIEFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIEFmZmluZVRyYW5zZm9ybSYgYWZmaW5lVHJhbnNmb3JtKQotewotICAgIHJldHVybiBTaW1w
bGVBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmRlY29kZShkZWNvZGVyLCBhZmZpbmVU
cmFuc2Zvcm0pOwotfQotCiB2b2lkIEFyZ3VtZW50Q29kZXI8Q2FjaGVRdWVyeU9wdGlvbnM+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ2FjaGVRdWVyeU9wdGlvbnMmIG9wdGlvbnMp
CiB7CiAgICAgZW5jb2RlciA8PCBvcHRpb25zLmlnbm9yZVNlYXJjaDsKQEAgLTYxNyw4NiArNjA3
LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPFNwcmluZ1RpbWluZ0Z1bmN0aW9uPjo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIsIFNwcmluZ1RpbWluZ0YKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9p
ZCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29u
c3QgRmxvYXRQb2ludCYgZmxvYXRQb2ludCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZs
b2F0UG9pbnQ+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRQb2ludCk7Ci19Ci0KLWJvb2wgQXJndW1l
bnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEZsb2F0UG9pbnQm
IGZsb2F0UG9pbnQpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2lu
dD46OmRlY29kZShkZWNvZGVyLCBmbG9hdFBvaW50KTsKLX0KLQotc3RkOjpvcHRpb25hbDxGbG9h
dFBvaW50PiBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKLXsKLSAgICBGbG9hdFBvaW50IGZsb2F0UG9pbnQ7Ci0gICAgaWYgKCFTaW1wbGVBcmd1bWVu
dENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRQb2ludCkpCi0gICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIGZsb2F0UG9pbnQ7Ci19Ci0KLXZvaWQg
QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29u
c3QgRmxvYXRQb2ludDNEJiBmbG9hdFBvaW50KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8
RmxvYXRQb2ludDNEPjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0UG9pbnQpOwotfQotCi1ib29sIEFy
Z3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEZsb2F0
UG9pbnQzRCYgZmxvYXRQb2ludCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxG
bG9hdFBvaW50M0Q+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRQb2ludCk7Ci19Ci0KLQotdm9pZCBB
cmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBG
bG9hdFJlY3QmIGZsb2F0UmVjdCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UmVj
dD46OmVuY29kZShlbmNvZGVyLCBmbG9hdFJlY3QpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8
RmxvYXRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEZsb2F0UmVjdCYgZmxvYXRSZWN0
KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZShk
ZWNvZGVyLCBmbG9hdFJlY3QpOwotfQotCi1zdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4gQXJndW1l
bnRDb2RlcjxGbG9hdFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBGbG9h
dFJlY3QgZmxvYXRSZWN0OwotICAgIGlmICghU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+
OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRSZWN0KSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKLSAgICByZXR1cm4gZmxvYXRSZWN0OwotfQotCi0KLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9h
dEJveEV4dGVudD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdEJveEV4dGVu
dCYgZmxvYXRCb3hFeHRlbnQpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdEJveEV4
dGVudD46OmVuY29kZShlbmNvZGVyLCBmbG9hdEJveEV4dGVudCk7Ci19Ci0gICAgCi1ib29sIEFy
Z3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxv
YXRCb3hFeHRlbnQmIGZsb2F0Qm94RXh0ZW50KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVu
dENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0Qm94RXh0ZW50KTsK
LX0KLSAgICAKLQotdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0U2l6ZT46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBGbG9hdFNpemUmIGZsb2F0U2l6ZSkKLXsKLSAgICBTaW1wbGVBcmd1
bWVudENvZGVyPEZsb2F0U2l6ZT46OmVuY29kZShlbmNvZGVyLCBmbG9hdFNpemUpOwotfQotCi1i
b29sIEFyZ3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEZs
b2F0U2l6ZSYgZmxvYXRTaXplKQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZs
b2F0U2l6ZT46OmRlY29kZShkZWNvZGVyLCBmbG9hdFNpemUpOwotfQotCi0KLXZvaWQgQXJndW1l
bnRDb2RlcjxGbG9hdFJvdW5kZWRSZWN0Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IEZsb2F0Um91bmRlZFJlY3QmIHJvdW5kZWRSZWN0KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29k
ZXI8RmxvYXRSb3VuZGVkUmVjdD46OmVuY29kZShlbmNvZGVyLCByb3VuZGVkUmVjdCk7Ci19Ci0K
LWJvb2wgQXJndW1lbnRDb2RlcjxGbG9hdFJvdW5kZWRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIsIEZsb2F0Um91bmRlZFJlY3QmIHJvdW5kZWRSZWN0KQotewotICAgIHJldHVybiBTaW1w
bGVBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjpkZWNvZGUoZGVjb2Rlciwgcm91bmRl
ZFJlY3QpOwotfQotCiAjaWYgRU5BQkxFKE1FVEFfVklFV1BPUlQpCiB2b2lkIEFyZ3VtZW50Q29k
ZXI8Vmlld3BvcnRBcmd1bWVudHM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVmll
d3BvcnRBcmd1bWVudHMmIHZpZXdwb3J0QXJndW1lbnRzKQogewpAQCAtNzI4LDg3ICs2MzgsNiBA
QCBib29sIEFyZ3VtZW50Q29kZXI8Vmlld3BvcnRBdHRyaWJ1dGVzPjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFZpZXdwb3J0QXR0cmlidQogICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVy
PFZpZXdwb3J0QXR0cmlidXRlcz46OmRlY29kZShkZWNvZGVyLCB2aWV3cG9ydEF0dHJpYnV0ZXMp
OwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgSW50UG9pbnQmIGludFBvaW50KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29k
ZXI8SW50UG9pbnQ+OjplbmNvZGUoZW5jb2RlciwgaW50UG9pbnQpOwotfQotCi1ib29sIEFyZ3Vt
ZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSW50UG9pbnQmIGlu
dFBvaW50KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZGVj
b2RlKGRlY29kZXIsIGludFBvaW50KTsKLX0KLQotc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRQ
b2ludD4gQXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQot
ewotICAgIEludFBvaW50IGludFBvaW50OwotICAgIGlmICghU2ltcGxlQXJndW1lbnRDb2RlcjxJ
bnRQb2ludD46OmRlY29kZShkZWNvZGVyLCBpbnRQb2ludCkpCi0gICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7Ci0gICAgcmV0dXJuIGludFBvaW50OwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8
SW50UmVjdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJbnRSZWN0JiBpbnRSZWN0
KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmVuY29kZShlbmNvZGVyLCBp
bnRSZWN0KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEludFJlY3Q+OjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgSW50UmVjdCYgaW50UmVjdCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1l
bnRDb2RlcjxJbnRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIGludFJlY3QpOwotfQotCi1zdGQ6Om9w
dGlvbmFsPEludFJlY3Q+IEFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQotewotICAgIEludFJlY3QgcmVjdDsKLSAgICBpZiAoIWRlY29kZShkZWNvZGVyLCBy
ZWN0KSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICByZXR1cm4gcmVjdDsKLX0K
LQotdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KLXZvaWQgQXJndW1lbnRDb2RlcjxJbnRTaXpl
Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEludFNpemUmIGludFNpemUpCi17Ci0g
ICAgU2ltcGxlQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZW5jb2RlKGVuY29kZXIsIGludFNpemUp
OwotfQotCi10ZW1wbGF0ZQotdm9pZCBBcmd1bWVudENvZGVyPEludFNpemU+OjplbmNvZGU8RW5j
b2Rlcj4oRW5jb2RlciYsIGNvbnN0IEludFNpemUmKTsKLXRlbXBsYXRlCi12b2lkIEFyZ3VtZW50
Q29kZXI8SW50U2l6ZT46OmVuY29kZTxTdHJlYW1Db25uZWN0aW9uRW5jb2Rlcj4oU3RyZWFtQ29u
bmVjdGlvbkVuY29kZXImLCBjb25zdCBJbnRTaXplJik7Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxJ
bnRTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEludFNpemUmIGludFNpemUpCi17Ci0g
ICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZShkZWNvZGVyLCBp
bnRTaXplKTsKLX0KLQotc3RkOjpvcHRpb25hbDxJbnRTaXplPiBBcmd1bWVudENvZGVyPEludFNp
emU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBJbnRTaXplIGludFNpemU7Ci0g
ICAgaWYgKCFTaW1wbGVBcmd1bWVudENvZGVyPEludFNpemU+OjpkZWNvZGUoZGVjb2RlciwgaW50
U2l6ZSkpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIGludFNpemU7
Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxMYXlvdXRTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IExheW91dFNpemUmIGxheW91dFNpemUpCi17Ci0gICAgU2ltcGxlQXJndW1l
bnRDb2RlcjxMYXlvdXRTaXplPjo6ZW5jb2RlKGVuY29kZXIsIGxheW91dFNpemUpOwotfQotCi1i
b29sIEFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBM
YXlvdXRTaXplJiBsYXlvdXRTaXplKQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVy
PExheW91dFNpemU+OjpkZWNvZGUoZGVjb2RlciwgbGF5b3V0U2l6ZSk7Ci19Ci0KLQotdm9pZCBB
cmd1bWVudENvZGVyPExheW91dFBvaW50Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IExheW91dFBvaW50JiBsYXlvdXRQb2ludCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPExh
eW91dFBvaW50Pjo6ZW5jb2RlKGVuY29kZXIsIGxheW91dFBvaW50KTsKLX0KLQotYm9vbCBBcmd1
bWVudENvZGVyPExheW91dFBvaW50Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIExheW91dFBv
aW50JiBsYXlvdXRQb2ludCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxMYXlv
dXRQb2ludD46OmRlY29kZShkZWNvZGVyLCBsYXlvdXRQb2ludCk7Ci19Ci0KIHZvaWQgQXJndW1l
bnRDb2RlcjxSZWNlbnRTZWFyY2g+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVj
ZW50U2VhcmNoJiByZWNlbnRTZWFyY2gpCiB7CiAgICAgZW5jb2RlciA8PCByZWNlbnRTZWFyY2gu
c3RyaW5nIDw8IHJlY2VudFNlYXJjaC50aW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCA1NDU5NzVhMGRmMTUwMWJlODgxMzU0OWE5MDFhZGQw
NzFiZTAxZjk2Li4wOGMxNzJkNGNlMjAwNTBkZTQ0NjhmNDVkNzExMDdkYWM1ZjQ2YjEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMjYsMTIg
KzI2LDI0IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9BZmZpbmVUcmFuc2Zvcm0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0F1
dG9wbGF5RXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yU3BhY2UuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9G
bG9hdFBvaW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFBvaW50M0QuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSb3VuZGVkUmVj
dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRTaXplLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9G
cmFtZUxvYWRlclR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbmRleGVkREIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0lucHV0TW9kZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ludFNpemUu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xheW91dFBvaW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9M
YXlvdXRTaXplLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9MZW5ndGhCb3guaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL01lZGlhU2VsZWN0aW9uT3B0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OYXRpdmVJ
bWFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya0xvYWRNZXRyaWNzLmg+CkBAIC05Niw3
ICsxMDgsNiBAQCB0eXBlZGVmIHN0cnVjdCBfX0NWQnVmZmVyKiBDVlBpeGVsQnVmZmVyUmVmOwog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBYnNvbHV0ZVBvc2l0aW9uQ29uc3RyYWludHM7
Ci1jbGFzcyBBZmZpbmVUcmFuc2Zvcm07CiBjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTsK
IGNsYXNzIEJsb2JQYXJ0OwogY2xhc3MgQ2VydGlmaWNhdGVJbmZvOwpAQCAtMTA5LDIxICsxMjAs
MTEgQEAgY2xhc3MgRHJhZ0RhdGE7CiBjbGFzcyBGaWxlOwogY2xhc3MgRmlsdGVyT3BlcmF0aW9u
OwogY2xhc3MgRmlsdGVyT3BlcmF0aW9uczsKLWNsYXNzIEZsb2F0UG9pbnQ7Ci1jbGFzcyBGbG9h
dFBvaW50M0Q7Ci1jbGFzcyBGbG9hdFJlY3Q7Ci1jbGFzcyBGbG9hdFJvdW5kZWRSZWN0OwotY2xh
c3MgRmxvYXRTaXplOwogY2xhc3MgRml4ZWRQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHM7CiBj
bGFzcyBGb250OwogY2xhc3MgRm9udFBsYXRmb3JtRGF0YTsKIGNsYXNzIEhUVFBIZWFkZXJNYXA7
Ci1jbGFzcyBJbnRQb2ludDsKLWNsYXNzIEludFJlY3Q7Ci1jbGFzcyBJbnRTaXplOwogY2xhc3Mg
S2V5ZnJhbWVWYWx1ZUxpc3Q7Ci1jbGFzcyBMYXlvdXRTaXplOwotY2xhc3MgTGF5b3V0UG9pbnQ7
CiBjbGFzcyBMaW5lYXJUaW1pbmdGdW5jdGlvbjsKIGNsYXNzIE5vdGlmaWNhdGlvbjsKIGNsYXNz
IFBhc3RlYm9hcmRDdXN0b21EYXRhOwpAQCAtMTc0LDkgKzE3NSw3IEBAIHN0cnVjdCBUb3VjaEFj
dGlvbkRhdGE7CiBzdHJ1Y3QgVmVsb2NpdHlEYXRhOwogc3RydWN0IFZpZXdwb3J0QXR0cmlidXRl
czsKIHN0cnVjdCBXaW5kb3dGZWF0dXJlczsKLSAgICAKLXRlbXBsYXRlPHR5cGVuYW1lPiBjbGFz
cyBSZWN0RWRnZXM7Ci11c2luZyBGbG9hdEJveEV4dGVudCA9IFJlY3RFZGdlczxmbG9hdD47CisK
IHVzaW5nIElEQktleVBhdGggPSBWYXJpYW50PFN0cmluZywgVmVjdG9yPFN0cmluZz4+OwogCiAj
aWYgUExBVEZPUk0oQ09DT0EpCkBAIC0yMjcsMTAgKzIyNiwyNSBAQCBzdHJ1Y3QgUmVjb3JkOwog
CiBuYW1lc3BhY2UgSVBDIHsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpBZmZpbmVUcmFuc2Zvcm0+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYs
IGNvbnN0IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNF
RF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYp
OwotfTsKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6QWZmaW5lVHJhbnNm
b3JtKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpGbG9hdEJveEV4dGVu
dCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6RmxvYXRQb2ludCkKK0RF
RklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6RmxvYXRQb2ludDNEKQorREVGSU5F
X1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpGbG9hdFJlY3QpCitERUZJTkVfU0lNUExF
X0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3QpCitERUZJTkVfU0lNUExF
X0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6OkZsb2F0U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1F
TlRfQ09ERVIoV2ViQ29yZTo6SW50UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVS
KFdlYkNvcmU6OkludFJlY3QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6
OkludFNpemUpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6OkxheW91dFNp
emUpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6OkxheW91dFBvaW50KQor
CisjaWYgVVNFKENHKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihDR1JlY3QpCitERUZJ
TkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKENHU2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRf
Q09ERVIoQ0dQb2ludCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoQ0dBZmZpbmVUcmFu
c2Zvcm0pCisjZW5kaWYKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpBdHRyaWJ1dGVkU3RyaW5nPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBj
b25zdCBXZWJDb3JlOjpBdHRyaWJ1dGVkU3RyaW5nJik7CkBAIC0yOTksMzggKzMxMyw2IEBAIHRl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPiB7
CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPiBkZWNv
ZGUoRGVjb2RlciYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpGbG9hdFBvaW50PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBi
b29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwotICAgIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+IGRlY29kZShEZWNvZGVyJik7Ci19Owot
Ci10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0UG9pbnQzRD4g
ewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQ
b2ludDNEJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNv
ZGVyJiwgV2ViQ29yZTo6RmxvYXRQb2ludDNEJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0UmVjdD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7Ci0gICAgc3RhdGljIFdBUk5f
VU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6RmxvYXRSZWN0Jik7
Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PiBkZWNvZGUoRGVj
b2RlciYpOwotfTsKLSAgICAKLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6RmxvYXRCb3hFeHRlbnQ+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50Jik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JF
VFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmKTsKLX07
Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRTaXplPiB7
Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXIm
LCBXZWJDb3JlOjpGbG9hdFNpemUmKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdCYpOwotICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0
Um91bmRlZFJlY3QmKTsKLX07Ci0KICNpZiBFTkFCTEUoTUVUQV9WSUVXUE9SVCkKIHRlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHM+IHsKICAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJn
dW1lbnRzJik7CkBAIC0zNDUsMzUgKzMyNyw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzPiB7CiAgICAgc3RhdGljIFdBUk5fVU5V
U0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1
dGVzJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Oklu
dFBvaW50PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUo
RGVjb2RlciYsIFdlYkNvcmU6OkludFBvaW50Jik7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6SW50UG9pbnQ+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkludFJlY3Q+IHsKLSAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKLSAgICBzdGF0aWMgV0FS
Tl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpJbnRSZWN0Jik7
Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UmVjdD4gZGVjb2RlKERlY29k
ZXImKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW50
U2l6ZT4gewotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+Ci0gICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7Ci0gICAgc3RhdGljIFdB
Uk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6SW50U2l6ZSYp
OwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFNpemU+IGRlY29kZShEZWNv
ZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Okxh
eW91dFNpemU+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNv
cmU6OkxheW91dFNpemUmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlKERlY29kZXImLCBXZWJDb3JlOjpMYXlvdXRTaXplJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkxheW91dFBvaW50PiB7Ci0gICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpMYXlvdXRQb2ludCYpOwotICAgIHN0
YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6Okxh
eW91dFBvaW50Jik7Ci19OwotCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6Okxlbmd0aD4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6TGVuZ3RoJik7CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29k
ZShEZWNvZGVyJiwgV2ViQ29yZTo6TGVuZ3RoJik7CkBAIC00NTIsNiArNDA1LDcgQEAgdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpEcmFnRGF0YT4gewogI2VuZGlmCiAK
ICNpZiBQTEFURk9STShDT0NPQSkKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
VEY6Ok1hY2hTZW5kUmlnaHQ+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNv
bnN0IFdURjo6TWFjaFNlbmRSaWdodCYpOwogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVy
JiwgV1RGOjpNYWNoU2VuZFJpZ2h0JiYpOwpAQCAtNDYzLDI2ICs0MTcsNyBAQCB0ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4gewogICAgIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4gZGVjb2RlKERlY29k
ZXImKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Q0dQb2ludD4gewot
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dQb2ludCk7Ci0gICAgc3RhdGljIHN0
ZDo6b3B0aW9uYWw8Q0dQb2ludD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0KLXRlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8Q0dTaXplPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVu
Y29kZXImLCBDR1NpemUpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENHU2l6ZT4gZGVjb2Rl
KERlY29kZXImKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Q0dSZWN0
PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBDR1JlY3QpOwotICAgIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPENHUmVjdD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0KLXRlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+IHsKLSAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYsIENHQWZmaW5lVHJhbnNmb3JtKTsKLSAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxDR0FmZmluZVRyYW5zZm9ybT4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0jZW5k
aWYKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNlbGVjdGlvbkdlb21l
dHJ5PiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzTWFjLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVu
dENvZGVyc01hYy5tbQppbmRleCA4ZTRkNWYxMzFkODJmMWRlZmUyNmQxNWFiZmVlMDY0YTNiOTg5
MGY4Li42YTQzNDA2NzE0NjNkOTQ3MDcxOTIzMTBiMWY3YmEwYmQwM2E3NmY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0K
QEAgLTMyMSw3OSArMzIxLDYgQEAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpLZXlwcmVzc0NvbW1h
bmQ+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPjoKICAgICByZXR1cm4g
V1RGTW92ZShjb21tYW5kKTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPENHUmVjdD46OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBDR1JlY3QgcmVjdCkKLXsKLSAgICBlbmNvZGVyIDw8IHJlY3Qu
b3JpZ2luIDw8IHJlY3Quc2l6ZTsKLX0KLQotc3RkOjpvcHRpb25hbDxDR1JlY3Q+IEFyZ3VtZW50
Q29kZXI8Q0dSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgc3RkOjpvcHRp
b25hbDxDR1BvaW50PiBvcmlnaW47Ci0gICAgZGVjb2RlciA+PiBvcmlnaW47Ci0gICAgaWYgKCFv
cmlnaW4pCi0gICAgICAgIHJldHVybiB7IH07Ci0KLSAgICBzdGQ6Om9wdGlvbmFsPENHU2l6ZT4g
c2l6ZTsKLSAgICBkZWNvZGVyID4+IHNpemU7Ci0gICAgaWYgKCFzaXplKQotICAgICAgICByZXR1
cm4geyB9OwotCi0gICAgcmV0dXJuIENHUmVjdCB7ICpvcmlnaW4sICpzaXplIH07Ci19Ci0KLXZv
aWQgQXJndW1lbnRDb2RlcjxDR1NpemU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0dTaXpl
IHNpemUpCi17Ci0gICAgZW5jb2RlciA8PCBzaXplLndpZHRoIDw8IHNpemUuaGVpZ2h0OwotfQot
Ci1zdGQ6Om9wdGlvbmFsPENHU2l6ZT4gQXJndW1lbnRDb2RlcjxDR1NpemU+OjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKLXsKLSAgICBDR1NpemUgc2l6ZTsKLSAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHNpemUud2lkdGgpKQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoc2l6ZS5oZWlnaHQpKQotICAgICAgICByZXR1cm4geyB9OwotICAgIHJldHVybiBzaXpl
OwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBDR1BvaW50IHBvaW50KQotewotICAgIGVuY29kZXIgPDwgcG9pbnQueCA8PCBwb2ludC55
OwotfQotCi1zdGQ6Om9wdGlvbmFsPENHUG9pbnQ+IEFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIENHUG9pbnQgcG9pbnQ7Ci0gICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShwb2ludC54KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBvaW50LnkpKQotICAgICAgICByZXR1cm4geyB9OwotICAgIHJldHVybiBw
b2ludDsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIENHQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSkKLXsKLSAgICBl
bmNvZGVyIDw8IHRyYW5zZm9ybS5hIDw8IHRyYW5zZm9ybS5iIDw8IHRyYW5zZm9ybS5jIDw8IHRy
YW5zZm9ybS5kIDw8IHRyYW5zZm9ybS50eCA8PCB0cmFuc2Zvcm0udHk7Ci19Ci0KLXN0ZDo6b3B0
aW9uYWw8Q0dBZmZpbmVUcmFuc2Zvcm0+IEFyZ3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBDR0FmZmluZVRyYW5zZm9ybSB0cmFu
c2Zvcm07Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0cmFuc2Zvcm0uYSkpCi0gICAgICAgIHJl
dHVybiB7IH07Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0cmFuc2Zvcm0uYikpCi0gICAgICAg
IHJldHVybiB7IH07Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0cmFuc2Zvcm0uYykpCi0gICAg
ICAgIHJldHVybiB7IH07Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0cmFuc2Zvcm0uZCkpCi0g
ICAgICAgIHJldHVybiB7IH07Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0cmFuc2Zvcm0udHgp
KQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3Jt
LnR5KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4gdHJhbnNmb3JtOwotfQotCiAj
aWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgY29udGVudEZpbHRl
clVuYmxvY2tIYW5kbGVyKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439226</attachid>
            <date>2021-09-24 18:42:39 -0700</date>
            <delta_ts>2021-09-24 18:49:26 -0700</delta_ts>
            <desc>Try to fix WPE?</desc>
            <filename>bug-230714-20210924184238.patch</filename>
            <type>text/plain</type>
            <size>33885</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJmZDdkOTQ0YTczN2IxODFl
YTA5NGE1ZDQxNmNjYWM5ZWRkYmRkNTMuLjAwODU0MGRhNzg1ZGYwMGRiYjdkYzc5N2U3ZDhmNDdj
OTQ3MjM3OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMjEtMDktMjQgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIFJlZmFj
dG9yIHNvbWUgSVBDIGFyZ3VtZW50IGVuY29kZXIgbG9naWMgdG8gd29yayB3aXRoIFN0cmVhbUNv
bm5lY3Rpb25FbmNvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA3MTQKKyAgICAgICAgcmRhcjovLzgzNDc3NTkxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byB1c2Ug
YElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXJgIHRvIGVuY29kZSBkaXNwbGF5IGxpc3QgaXRl
bXMgKGFuZCB0aGVpciBtZW1iZXJzKSBpbiBhbgorICAgICAgICBJUEMgc3RyZWFtLiBUaGlzIHBh
dGNoIGNvbXByaXNlcyB0d28gbWFpbiBzZXRzIG9mIGNoYW5nZXMgaW4gYEFyZ3VtZW50Q29kZXJz
YCwgYW5kIGBXZWJDb3JlQXJndW1lbnRDb2RlcnNgLiBTZWUKKyAgICAgICAgYmVsb3cgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmRlY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNb25vc3RhdGU+OjpkZWNvZGUpOiBEZWxldGVk
LgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2RlKToKKworICAgICAgICBNYW55IG9mIHRoZXNlIGBl
bmNvZGUoKWAgbWV0aG9kcyBhcmUgY3VycmVudGx5IG5vbi10ZW1wbGF0ZWQsIHdoaWNoIG1lYW5z
IHRoYXQgRW5jb2RlciBhbmQgRGVjb2RlciB1c2VkIGhlcmUKKyAgICAgICAgcmVmZXIgc29sZWx5
IHRvIElQQzo6RW5jb2RlciBhbmQgSVBDOjpEZWNvZGVyIChyZXNwZWN0aXZlbHkpIGluc3RlYWQg
b2Ygb3RoZXIgdHlwZXMgb2YgZW5jb2RlcnMgKG5hbWVseSwKKyAgICAgICAgU3RyZWFtQ29ubmVj
dGlvbkVuY29kZXIpLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxBZmZpbmVUcmFuc2Zvcm0+
OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UG9p
bnQ+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0
UG9pbnQ+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZs
b2F0UG9pbnQzRD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8RmxvYXRQb2ludDNEPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjplbmNvZGUpOiBEZWxldGVkLgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0U2l6ZT46OmRlY29kZSk6IERlbGV0ZWQu
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46
OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+
OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEludFBvaW50
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRTaXpl
Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRTaXpl
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxMYXlvdXRT
aXplPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxMYXlv
dXRTaXplPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxM
YXlvdXRQb2ludD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8TGF5b3V0UG9pbnQ+OjpkZWNvZGUpOiBEZWxldGVkLgorCisgICAgICAgIFRoZXNlIFdlYkNv
cmUgYXJndW1lbnQgY29kZXJzIGFyZSBhbHNvIGN1cnJlbnRseSBpbmNvbXBhdGlibGUgd2l0aCBT
dHJlYW1Db25uZWN0aW9uRW5jb2Rlciwgc2luY2UgdGhleSBhcmUgbm9uLQorICAgICAgICB0ZW1w
bGF0ZWQgKGFuZCB0aHVzIG9ubHkgd29yayB3aXRoIElQQzo6RW5jb2RlcikuIFNpbmNlIHRoZXNl
IGFyZSBhbGwgZW5jb2RhYmxlIGFzIFBPRCB0eXBlcywgd2UgY2FuIGp1c3QgdXNlCisgICAgICAg
IFNpbXBsZUFyZ3VtZW50Q29kZXIgZm9yIGFsbCBvZiB0aGVzZS4gV2UgYWxzbyBhZGQgYSBuZXcg
YERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJgIG1hY3JvIHRvIG1ha2UgdGhpcyBjb2RlIGEK
KyAgICAgICAgYml0IGVhc2llciB0byByZWFkLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzTWFjLm1tOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHUmVjdD46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dSZWN0Pjo6ZGVjb2RlKTog
RGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDR1NpemU+OjplbmNvZGUpOiBE
ZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHU2l6ZT46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHQWZmaW5lVHJh
bnNmb3JtPjo6ZGVjb2RlKTogRGVsZXRlZC4KKwogMjAyMS0wOS0yNCAgRGV2aW4gUm91c3NvICA8
ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHR5cGVjaGVja2luZyBgaXNgIG92ZXJs
b2FkcyBmb3IgYHN0ZDo6dW5pcXVlX3B0cmAsIGBXVEY6OlVuaXF1ZVJlZmAsIGFuZCBgV1RGOjpX
ZWFrUHRyYApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRD
b2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3Bw
CmluZGV4IGEzMjA1NTE4Nzk4Yjc0ZGNlZGI4YTAxM2Y5YzljOTg4NWFhZTY2MTYuLmU3ZjI3ODAz
NjJkZDIwMzc0MzRjYTFjYjM5MGRkZTZlZjc5MTU5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaCIKICNpbmNsdWRlICJQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEVuY29kZXIuaCIKICNpbmNsdWRlICJTdHJlYW1Db25uZWN0aW9uRW5jb2Rl
ci5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTIxOCw2
ICsyMTksNyBAQCBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBBcmd1bWVudENvZGVyPFNIQTE6OkRp
Z2VzdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTSAogfQogCiAjaWYgSEFWRShBVURJVF9U
T0tFTikKKwogdm9pZCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rva2VuX3Q+OjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgYXVkaXRfdG9rZW5fdCYgYXVkaXRUb2tlbikKIHsKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChhdWRpdFRva2VuLnZhbCk7IGkr
KykKQEAgLTIzMiwxNSArMjM0LDcgQEAgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgQXJndW1lbnRD
b2RlcjxhdWRpdF90b2tlbl90Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIGEKICAgICB9CiAg
ICAgcmV0dXJuIHRydWU7CiB9Ci0jZW5kaWYKLQotdm9pZCBBcmd1bWVudENvZGVyPE1vbm9zdGF0
ZT46OmVuY29kZShFbmNvZGVyJiwgY29uc3QgTW9ub3N0YXRlJikKLXsKLX0KIAotV0FSTl9VTlVT
RURfUkVUVVJOIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBBcmd1bWVudENvZGVyPE1vbm9zdGF0
ZT46OmRlY29kZShEZWNvZGVyJikKLXsKLSAgICByZXR1cm4gTW9ub3N0YXRlIHsgfTsKLX0KKyNl
bmRpZiAvLyBIQVZFKEFVRElUX1RPS0VOKQogCiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCmluZGV4IGE4Yzg5M2YwYzUyNDBh
ODg4OWMzNDUxNGY5ZmIxZWZlZTBkNjI3MGEuLmI3OWI1NThiZjQyZDM2NTM2OTk5ZWRjMTMxOWM3
NjBiNmQ3OTRhZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3Vt
ZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2Rl
cnMuaApAQCAtNDAsNiArNDAsMjIgQEAKIAogbmFtZXNwYWNlIElQQyB7CiAKKyNkZWZpbmUgREVG
SU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihUeXBlKSBcCisgICAgdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxUeXBlPiB7IFwKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rl
cj4gdm9pZCBzdGF0aWMgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFR5cGUmIHZhbHVl
KSB7IFNpbXBsZUFyZ3VtZW50Q29kZXI8VHlwZT46OmVuY29kZShlbmNvZGVyLCB2YWx1ZSk7IH0g
XAorICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBib29sIHN0YXRpYyBkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgVHlwZSYgdmFsdWUpIHsgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29k
ZXI8VHlwZT46OmRlY29kZShkZWNvZGVyLCB2YWx1ZSk7IH0gXAorICAgICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxUeXBlPiBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikgXAorICAgICAgICB7IFwKKyAgICAgICAgICAgIFR5cGUgdmFsdWU7IFwKKyAg
ICAgICAgICAgIGlmICghZGVjb2RlKGRlY29kZXIsIHZhbHVlKSkgXAorICAgICAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7IFwKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsgXAorICAg
ICAgICB9IFwKKyAgICB9OyBcCisgICAgdGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFR5cGU+
OjplbmNvZGU8RW5jb2Rlcj4oRW5jb2RlciYsIGNvbnN0IFR5cGUmKTsgXAorICAgIHRlbXBsYXRl
IGJvb2wgQXJndW1lbnRDb2RlcjxUeXBlPjo6ZGVjb2RlPERlY29kZXI+KERlY29kZXImLCBUeXBl
Jik7IFwKKyAgICB0ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPFR5cGU+IEFyZ3VtZW50Q29kZXI8VHlw
ZT46OmRlY29kZTxEZWNvZGVyPihEZWNvZGVyJik7CisKIC8vIEFuIGFyZ3VtZW50IGNvZGVyIHdv
cmtzIG9uIFBPRCB0eXBlcwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IFNpbXBsZUFyZ3Vt
ZW50Q29kZXIgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CkBAIC00OCw2ICs2NCw3
IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBTaW1wbGVBcmd1bWVudENvZGVyIHsKICAg
ICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25z
dCB1aW50OF90Kj4oJnQpLCBzaXplb2YoVCksIGFsaWdub2YoVCkpOwogICAgIH0KIAorICAgIHRl
bXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBi
b29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBUJiB0KQogICAgIHsKICAgICAgICAgcmV0dXJu
IGRlY29kZXIuZGVjb2RlRml4ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+
KCZ0KSwgc2l6ZW9mKFQpLCBhbGlnbm9mKFQpKTsKQEAgLTEwNywxMiArMTI0LDE0IEBAIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPEFycmF5UmVmZXJlbmNlPFQsIGFy
cmF5UmVmZXJlbmNlRHluYW1pCiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxPcHRpb25TZXQ8VD4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
PgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBPcHRpb25T
ZXQ8VD4mIG9wdGlvblNldCkKICAgICB7CiAgICAgICAgIEFTU0VSVChXVEY6OmlzVmFsaWRPcHRp
b25TZXQob3B0aW9uU2V0KSk7CiAgICAgICAgIGVuY29kZXIgPDwgb3B0aW9uU2V0LnRvUmF3KCk7
CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FS
Tl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIE9wdGlvblNldDxU
PiYgb3B0aW9uU2V0KQogICAgIHsKICAgICAgICAgdHlwZW5hbWUgT3B0aW9uU2V0PFQ+OjpTdG9y
YWdlVHlwZSB2YWx1ZTsKQEAgLTEyNCw2ICsxNDMsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxPcHRpb25TZXQ8VD4+IHsKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxPcHRpb25TZXQ8VD4+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsK
ICAgICAgICAgc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBPcHRpb25TZXQ8VD46OlN0b3JhZ2VUeXBl
PiB2YWx1ZTsKQEAgLTE4Nyw2ICsyMDcsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxzdGQ6Om9wdGlvbmFsPFQ+PiB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxCb3g8VD4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBCb3g8VD4mIGJveCkKICAgICB7CiAgICAgICAgIGlmICghYm94KSB7CkBAIC0xOTgsNiArMjE5
LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7
CiAgICAgICAgIGVuY29kZXIgPDwgKmJveC5nZXQoKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgQm94PFQ+JiBib3gpCiAgICAgewogICAgICAgICBib29sIGlz
RW5nYWdlZDsKQEAgLTIxNyw2ICsyMzksNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxCb3g8VD4+IHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxC
b3g8VD4+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKICAgICAgICAgc3RkOjpvcHRp
b25hbDxib29sPiBpc0VuZ2FnZWQ7CkBAIC0yMzUsMTEgKzI1OCwxMyBAQCB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxCb3g8VD4+IHsKIH07CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIFQsIHR5cGVuYW1lIFU+IHN0cnVjdCBBcmd1bWVudENvZGVyPHN0ZDo6cGFpcjxULCBV
Pj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IHN0ZDo6cGFpcjxULCBVPiYgcGFpcikKICAgICB7
CiAgICAgICAgIGVuY29kZXIgPDwgcGFpci5maXJzdCA8PCBwYWlyLnNlY29uZDsKICAgICB9CiAK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9S
RVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2Rlciwgc3RkOjpwYWlyPFQsIFU+JiBwYWly
KQogICAgIHsKICAgICAgICAgVCBmaXJzdDsKQEAgLTI1NSw2ICsyODAsNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxzdGQ6OnBhaXI8VCwg
VT4+IHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8VCwgVT4+IGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxUPiBm
aXJzdDsKQEAgLTM2NSwxMSArMzkxLDEzIEBAIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEVsZW1lbnRz
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxzdGQ6OnR1cGxlPEVsZW1lbnRzLi4uPj4gewogfTsKIAog
dGVtcGxhdGU8dHlwZW5hbWUgS2V5VHlwZSwgdHlwZW5hbWUgVmFsdWVUeXBlPiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXVEY6OktleVZhbHVlUGFpcjxLZXlUeXBlLCBWYWx1ZVR5cGU+PiB7CisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgV1RGOjpLZXlWYWx1ZVBhaXI8S2V5VHlwZSwgVmFsdWVUeXBlPiYg
cGFpcikKICAgICB7CiAgICAgICAgIGVuY29kZXIgPDwgcGFpci5rZXkgPDwgcGFpci52YWx1ZTsK
ICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJO
X1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgV1RGOjpLZXlWYWx1
ZVBhaXI8S2V5VHlwZSwgVmFsdWVUeXBlPiYgcGFpcikKICAgICB7CiAgICAgICAgIEtleVR5cGUg
a2V5OwpAQCAtMzk3LDYgKzQyNSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxp
bmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyLCBzaXplX3QgbWluCiAgICAgICAg
ICAgICBlbmNvZGVyIDw8IHZlY3RvcltpXTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlciwgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIs
IG1pbkNhcGFjaXR5PiYgdmVjdG9yKQogICAgIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0
b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+PiBvcHRp
b25hbDsKQEAgLTQzNiw2ICs0NjUsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5s
aW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlciwgc2l6ZV90IG1pbgogICAgICAg
ICBlbmNvZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0IHVp
bnQ4X3QqPih2ZWN0b3IuZGF0YSgpKSwgdmVjdG9yLnNpemUoKSAqIHNpemVvZihUKSwgYWxpZ25v
ZihUKSk7CiAgICAgfQogICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAg
c3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBW
ZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+JiB2
ZWN0b3IpCiAgICAgewogICAgICAgICB1aW50NjRfdCBkZWNvZGVkU2l6ZTsKQEAgLTQ1MCw3ICs0
ODAsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVu
YW1lIE92ZXJmbG93SGFuZGxlciwgc2l6ZV90IG1pbgogICAgICAgICAvLyBTaW5jZSB3ZSBrbm93
IHRoZSB0b3RhbCBzaXplIG9mIHRoZSBlbGVtZW50cywgd2UgY2FuIGFsbG9jYXRlIHRoZSB2ZWN0
b3IgaW4KICAgICAgICAgLy8gb25lIGZlbGwgc3dvb3AuIEJlZm9yZSBhbGxvY2F0aW5nIHdlIG11
c3QgaG93ZXZlciBtYWtlIHN1cmUgdGhhdCB0aGUgZGVjb2RlciBidWZmZXIKICAgICAgICAgLy8g
aXMgYmlnIGVub3VnaC4KLSAgICAgICAgaWYgKCFkZWNvZGVyLmJ1ZmZlcklzTGFyZ2VFbm91Z2hU
b0NvbnRhaW48VD4oc2l6ZSkpCisgICAgICAgIGlmICghZGVjb2Rlci50ZW1wbGF0ZSBidWZmZXJJ
c0xhcmdlRW5vdWdoVG9Db250YWluPFQ+KHNpemUpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgICAgIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBt
aW5DYXBhY2l0eT4gdGVtcDsKQEAgLTQ5Nyw2ICs1MjcsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlciwgc2l6ZV90
IG1pbgogdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVu
YW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZywgdHlwZW5hbWUgTWFwcGVkVHJhaXRz
QXJnLCB0eXBlbmFtZSBIYXNoVGFibGVUcmFpdHM+IHN0cnVjdCBBcmd1bWVudENvZGVyPEhhc2hN
YXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVkVHJhaXRz
QXJnLCBIYXNoVGFibGVUcmFpdHM+PiB7CiAgICAgdHlwZWRlZiBIYXNoTWFwPEtleUFyZywgTWFw
cGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZywgSGFzaFRhYmxl
VHJhaXRzPiBIYXNoTWFwVHlwZTsKIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAg
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEhhc2hNYXBUeXBl
JiBoYXNoTWFwKQogICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50MzJf
dD4oaGFzaE1hcC5zaXplKCkpOwpAQCAtNTA0LDYgKzUzNSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IEtleUFyZywgdHlwZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBL
ZXlUcmFpCiAgICAgICAgICAgICBlbmNvZGVyIDw8ICppdDsKICAgICB9CiAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEhhc2hNYXBUeXBl
PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHVpbnQzMl90IGhhc2hN
YXBTaXplOwpAQCAtNTM0LDYgKzU2Niw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlw
ZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpCiAgICAg
ICAgIHJldHVybiBoYXNoTWFwOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29k
ZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBIYXNoTWFwVHlwZSYgaGFzaE1hcCkKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9u
YWw8SGFzaE1hcFR5cGU+IHRlbXBIYXNoTWFwOwpAQCAtNTQ4LDYgKzU4MSw3IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0
eXBlbmFtZSBLZXlUcmFpCiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hB
cmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZywgdHlwZW5hbWUgSGFzaFRhYmxlVHJhaXRzPiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxIYXNoU2V0PEtleUFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBI
YXNoVGFibGVUcmFpdHM+PiB7CiAgICAgdHlwZWRlZiBIYXNoU2V0PEtleUFyZywgSGFzaEFyZywg
S2V5VHJhaXRzQXJnLCBIYXNoVGFibGVUcmFpdHM+IEhhc2hTZXRUeXBlOwogCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgSGFzaFNldFR5cGUmIGhhc2hTZXQpCiAgICAgewogICAgICAgICBlbmNvZGVy
IDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihoYXNoU2V0LnNpemUoKSk7CkBAIC01NTUsNiArNTg5
LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFt
ZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1lIEhhc2gKICAgICAgICAgICAgIGVuY29kZXIgPDwgKml0
OwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdB
Uk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBIYXNoU2V0VHlw
ZSYgaGFzaFNldCkKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8SGFzaFNldFR5cGU+IHRl
bXBIYXNoU2V0OwpAQCAtNTY2LDYgKzYwMSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywg
dHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNoCiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29k
ZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8SGFzaFNldFR5cGU+IGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQogICAgIHsKICAgICAgICAgdWludDY0X3QgaGFzaFNldFNpemU7CkBAIC01OTUs
NiArNjMxLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0
eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1lIEhhc2gKIHRlbXBsYXRlPHR5cGVuYW1lIEtl
eUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnPiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxIYXNoQ291bnRlZFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZz4+
IHsKICAgICB0eXBlZGVmIEhhc2hDb3VudGVkU2V0PEtleUFyZywgSGFzaEFyZywgS2V5VHJhaXRz
QXJnPiBIYXNoQ291bnRlZFNldFR5cGU7CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5j
b2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgSGFz
aENvdW50ZWRTZXRUeXBlJiBoYXNoQ291bnRlZFNldCkKICAgICB7CiAgICAgICAgIGVuY29kZXIg
PDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGhhc2hDb3VudGVkU2V0LnNpemUoKSk7CkBAIC02MDUs
NiArNjQyLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0
eXBlbmFtZSBLZXlUcmFpdHNBcmc+IHN0cnVjdCBBcmd1bWUKICAgICAgICAgfQogICAgIH0KICAg
ICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNF
RF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSGFzaENvdW50ZWRTZXRUeXBl
JiBoYXNoQ291bnRlZFNldCkKICAgICB7CiAgICAgICAgIHVpbnQ2NF90IGhhc2hDb3VudGVkU2V0
U2l6ZTsKQEAgLTYzNiw2ICs2NzQsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVu
YW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZz4gc3RydWN0IEFyZ3VtZQogfTsKIAog
dGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVUeXBlLCB0eXBlbmFtZSBFcnJvclR5cGU+IHN0cnVjdCBB
cmd1bWVudENvZGVyPEV4cGVjdGVkPFZhbHVlVHlwZSwgRXJyb3JUeXBlPj4geworICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IEV4cGVjdGVkPFZhbHVlVHlwZSwgRXJyb3JUeXBlPiYgZXhwZWN0ZWQpCiAg
ICAgewogICAgICAgICBpZiAoIWV4cGVjdGVkLmhhc192YWx1ZSgpKSB7CkBAIC02NDcsNiArNjg2
LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVUeXBlLCB0eXBlbmFtZSBFcnJvclR5cGU+IHN0
cnVjdCBBcmd1bWVudENvZGVyPEV4cGVjdGVkPFYKICAgICAgICAgZW5jb2RlciA8PCBleHBlY3Rl
ZC52YWx1ZSgpOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8RXhwZWN0ZWQ8VmFsdWVUeXBlLCBFcnJvclR5cGU+PiBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4g
aGFzVmFsdWU7CkBAIC02NzMsNiArNzEzLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVUeXBl
LCB0eXBlbmFtZSBFcnJvclR5cGU+IHN0cnVjdCBBcmd1bWVudENvZGVyPEV4cGVjdGVkPFYKIAog
dGVtcGxhdGU8c2l6ZV90IGluZGV4LCB0eXBlbmFtZS4uLiBUeXBlcz4KIHN0cnVjdCBWYXJpYW50
Q29kZXIgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6VmFyaWFudDxUeXBlcy4uLj4mIHZh
cmlhbnQsIHVuc2lnbmVkIGkpCiAgICAgewogICAgICAgICBpZiAoaSA9PSBpbmRleCkgewpAQCAt
NjgyLDYgKzcyMyw3IEBAIHN0cnVjdCBWYXJpYW50Q29kZXIgewogICAgICAgICBWYXJpYW50Q29k
ZXI8aW5kZXggLSAxLCBUeXBlcy4uLj46OmVuY29kZShlbmNvZGVyLCB2YXJpYW50LCBpKTsKICAg
ICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgdW5zaWduZWQgaSkKICAgICB7CiAgICAgICAgIGlmIChpID09IGluZGV4KSB7CkBAIC02OTcs
MTIgKzczOSwxNCBAQCBzdHJ1Y3QgVmFyaWFudENvZGVyIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUu
Li4gVHlwZXM+CiBzdHJ1Y3QgVmFyaWFudENvZGVyPDAsIFR5cGVzLi4uPiB7CisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgV1RGOjpWYXJpYW50PFR5cGVzLi4uPiYgdmFyaWFudCwgdW5zaWduZWQgaSkK
ICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQoaSwgIWkpOwogICAgICAgICBlbmNvZGVyIDw8
IFdURjo6Z2V0PDA+KHZhcmlhbnQpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdURjo6VmFyaWFudDxUeXBlcy4u
Lj4+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAg
QVNTRVJUX1VOVVNFRChpLCAhaSk7CkBAIC03MTUsNiArNzU5LDcgQEAgc3RydWN0IFZhcmlhbnRD
b2RlcjwwLCBUeXBlcy4uLj4gewogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUuLi4gVHlwZXM+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IHsKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+JiB2YXJpYW50KQogICAgIHsKICAgICAg
ICAgdW5zaWduZWQgaSA9IHZhcmlhbnQuaW5kZXgoKTsKQEAgLTcyMiw2ICs3NjcsNyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpWYXJpYW50
PFR5cGVzLi4uPj4gewogICAgICAgICBWYXJpYW50Q29kZXI8c2l6ZW9mLi4uKFR5cGVzKSAtIDEs
IFR5cGVzLi4uPjo6ZW5jb2RlKGVuY29kZXIsIHZhcmlhbnQsIGkpOwogICAgIH0KICAgICAKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdU
Rjo6VmFyaWFudDxUeXBlcy4uLj4+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKICAg
ICAgICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gaTsKQEAgLTc3Myw4ICs4MTksMTQgQEAgdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxhdWRpdF90b2tlbl90PiB7CiAjZW5kaWYKIAog
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxNb25vc3RhdGU+IHsKLSAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IE1vbm9zdGF0ZSYpOwotICAgIHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPE1vbm9zdGF0ZT4gZGVjb2RlKERlY29kZXImKTsKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBFbmNvZGVyPgorICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgTW9u
b3N0YXRlJikgeyB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgorICAgIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPE1vbm9zdGF0ZT4gZGVjb2RlKERlY29kZXImKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIE1vbm9zdGF0ZSB7IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgSVBD
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRl
eCBmYWJjZWY2YzIxMjUyM2VmMDFjYzg5YTQ5ODQ2MDA2ZDhlYTJkZjkzLi41NDJlYmRjODA4NTc0
ZmE4ZGJhODQwOGUzZTc1OTdmMjUzMTA3M2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTIzMSwxNiArMjMxLDYgQEAgc3RhdGljIFdB
Uk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZVR5cGVzQW5kRGF0YShEZWNvZGVyJiBkZWNvZGVy
LCBWZWN0b3I8U3RyaW4KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVy
PEFmZmluZVRyYW5zZm9ybT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIGFmZmluZVRyYW5zZm9ybSkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEFm
ZmluZVRyYW5zZm9ybT46OmVuY29kZShlbmNvZGVyLCBhZmZpbmVUcmFuc2Zvcm0pOwotfQotCi1i
b29sIEFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIEFmZmluZVRyYW5zZm9ybSYgYWZmaW5lVHJhbnNmb3JtKQotewotICAgIHJldHVybiBTaW1w
bGVBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmRlY29kZShkZWNvZGVyLCBhZmZpbmVU
cmFuc2Zvcm0pOwotfQotCiB2b2lkIEFyZ3VtZW50Q29kZXI8Q2FjaGVRdWVyeU9wdGlvbnM+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ2FjaGVRdWVyeU9wdGlvbnMmIG9wdGlvbnMp
CiB7CiAgICAgZW5jb2RlciA8PCBvcHRpb25zLmlnbm9yZVNlYXJjaDsKQEAgLTYxNyw4NiArNjA3
LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPFNwcmluZ1RpbWluZ0Z1bmN0aW9uPjo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIsIFNwcmluZ1RpbWluZ0YKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9p
ZCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29u
c3QgRmxvYXRQb2ludCYgZmxvYXRQb2ludCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZs
b2F0UG9pbnQ+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRQb2ludCk7Ci19Ci0KLWJvb2wgQXJndW1l
bnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEZsb2F0UG9pbnQm
IGZsb2F0UG9pbnQpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2lu
dD46OmRlY29kZShkZWNvZGVyLCBmbG9hdFBvaW50KTsKLX0KLQotc3RkOjpvcHRpb25hbDxGbG9h
dFBvaW50PiBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKLXsKLSAgICBGbG9hdFBvaW50IGZsb2F0UG9pbnQ7Ci0gICAgaWYgKCFTaW1wbGVBcmd1bWVu
dENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRQb2ludCkpCi0gICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIGZsb2F0UG9pbnQ7Ci19Ci0KLXZvaWQg
QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29u
c3QgRmxvYXRQb2ludDNEJiBmbG9hdFBvaW50KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8
RmxvYXRQb2ludDNEPjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0UG9pbnQpOwotfQotCi1ib29sIEFy
Z3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEZsb2F0
UG9pbnQzRCYgZmxvYXRQb2ludCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxG
bG9hdFBvaW50M0Q+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRQb2ludCk7Ci19Ci0KLQotdm9pZCBB
cmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBG
bG9hdFJlY3QmIGZsb2F0UmVjdCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UmVj
dD46OmVuY29kZShlbmNvZGVyLCBmbG9hdFJlY3QpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8
RmxvYXRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEZsb2F0UmVjdCYgZmxvYXRSZWN0
KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZShk
ZWNvZGVyLCBmbG9hdFJlY3QpOwotfQotCi1zdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4gQXJndW1l
bnRDb2RlcjxGbG9hdFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBGbG9h
dFJlY3QgZmxvYXRSZWN0OwotICAgIGlmICghU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+
OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRSZWN0KSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKLSAgICByZXR1cm4gZmxvYXRSZWN0OwotfQotCi0KLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9h
dEJveEV4dGVudD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdEJveEV4dGVu
dCYgZmxvYXRCb3hFeHRlbnQpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdEJveEV4
dGVudD46OmVuY29kZShlbmNvZGVyLCBmbG9hdEJveEV4dGVudCk7Ci19Ci0gICAgCi1ib29sIEFy
Z3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxv
YXRCb3hFeHRlbnQmIGZsb2F0Qm94RXh0ZW50KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVu
dENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0Qm94RXh0ZW50KTsK
LX0KLSAgICAKLQotdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0U2l6ZT46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBGbG9hdFNpemUmIGZsb2F0U2l6ZSkKLXsKLSAgICBTaW1wbGVBcmd1
bWVudENvZGVyPEZsb2F0U2l6ZT46OmVuY29kZShlbmNvZGVyLCBmbG9hdFNpemUpOwotfQotCi1i
b29sIEFyZ3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEZs
b2F0U2l6ZSYgZmxvYXRTaXplKQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZs
b2F0U2l6ZT46OmRlY29kZShkZWNvZGVyLCBmbG9hdFNpemUpOwotfQotCi0KLXZvaWQgQXJndW1l
bnRDb2RlcjxGbG9hdFJvdW5kZWRSZWN0Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IEZsb2F0Um91bmRlZFJlY3QmIHJvdW5kZWRSZWN0KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29k
ZXI8RmxvYXRSb3VuZGVkUmVjdD46OmVuY29kZShlbmNvZGVyLCByb3VuZGVkUmVjdCk7Ci19Ci0K
LWJvb2wgQXJndW1lbnRDb2RlcjxGbG9hdFJvdW5kZWRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIsIEZsb2F0Um91bmRlZFJlY3QmIHJvdW5kZWRSZWN0KQotewotICAgIHJldHVybiBTaW1w
bGVBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjpkZWNvZGUoZGVjb2Rlciwgcm91bmRl
ZFJlY3QpOwotfQotCiAjaWYgRU5BQkxFKE1FVEFfVklFV1BPUlQpCiB2b2lkIEFyZ3VtZW50Q29k
ZXI8Vmlld3BvcnRBcmd1bWVudHM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVmll
d3BvcnRBcmd1bWVudHMmIHZpZXdwb3J0QXJndW1lbnRzKQogewpAQCAtNzI4LDI0ICs2MzgsNiBA
QCBib29sIEFyZ3VtZW50Q29kZXI8Vmlld3BvcnRBdHRyaWJ1dGVzPjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFZpZXdwb3J0QXR0cmlidQogICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVy
PFZpZXdwb3J0QXR0cmlidXRlcz46OmRlY29kZShkZWNvZGVyLCB2aWV3cG9ydEF0dHJpYnV0ZXMp
OwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgSW50UG9pbnQmIGludFBvaW50KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29k
ZXI8SW50UG9pbnQ+OjplbmNvZGUoZW5jb2RlciwgaW50UG9pbnQpOwotfQotCi1ib29sIEFyZ3Vt
ZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSW50UG9pbnQmIGlu
dFBvaW50KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZGVj
b2RlKGRlY29kZXIsIGludFBvaW50KTsKLX0KLQotc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRQ
b2ludD4gQXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQot
ewotICAgIEludFBvaW50IGludFBvaW50OwotICAgIGlmICghU2ltcGxlQXJndW1lbnRDb2RlcjxJ
bnRQb2ludD46OmRlY29kZShkZWNvZGVyLCBpbnRQb2ludCkpCi0gICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7Ci0gICAgcmV0dXJuIGludFBvaW50OwotfQotCiB2b2lkIEFyZ3VtZW50Q29kZXI8
SW50UmVjdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJbnRSZWN0JiBpbnRSZWN0
KQogewogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmVuY29kZShlbmNvZGVyLCBp
bnRSZWN0KTsKQEAgLTc2NCw1MCArNjU2LDggQEAgc3RkOjpvcHRpb25hbDxJbnRSZWN0PiBBcmd1
bWVudENvZGVyPEludFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICByZXR1cm4g
cmVjdDsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KLXZvaWQgQXJndW1lbnRDb2Rl
cjxJbnRTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEludFNpemUmIGludFNp
emUpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZW5jb2RlKGVuY29kZXIs
IGludFNpemUpOwotfQotCi10ZW1wbGF0ZQotdm9pZCBBcmd1bWVudENvZGVyPEludFNpemU+Ojpl
bmNvZGU8RW5jb2Rlcj4oRW5jb2RlciYsIGNvbnN0IEludFNpemUmKTsKLXRlbXBsYXRlCi12b2lk
IEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZTxTdHJlYW1Db25uZWN0aW9uRW5jb2Rlcj4o
U3RyZWFtQ29ubmVjdGlvbkVuY29kZXImLCBjb25zdCBJbnRTaXplJik7Ci0KLWJvb2wgQXJndW1l
bnRDb2RlcjxJbnRTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEludFNpemUmIGludFNp
emUpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZShk
ZWNvZGVyLCBpbnRTaXplKTsKLX0KLQotc3RkOjpvcHRpb25hbDxJbnRTaXplPiBBcmd1bWVudENv
ZGVyPEludFNpemU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBJbnRTaXplIGlu
dFNpemU7Ci0gICAgaWYgKCFTaW1wbGVBcmd1bWVudENvZGVyPEludFNpemU+OjpkZWNvZGUoZGVj
b2RlciwgaW50U2l6ZSkpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJu
IGludFNpemU7Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxMYXlvdXRTaXplPjo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IExheW91dFNpemUmIGxheW91dFNpemUpCi17Ci0gICAgU2lt
cGxlQXJndW1lbnRDb2RlcjxMYXlvdXRTaXplPjo6ZW5jb2RlKGVuY29kZXIsIGxheW91dFNpemUp
OwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBMYXlvdXRTaXplJiBsYXlvdXRTaXplKQotewotICAgIHJldHVybiBTaW1wbGVBcmd1
bWVudENvZGVyPExheW91dFNpemU+OjpkZWNvZGUoZGVjb2RlciwgbGF5b3V0U2l6ZSk7Ci19Ci0K
LQotdm9pZCBBcmd1bWVudENvZGVyPExheW91dFBvaW50Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IExheW91dFBvaW50JiBsYXlvdXRQb2ludCkKLXsKLSAgICBTaW1wbGVBcmd1bWVu
dENvZGVyPExheW91dFBvaW50Pjo6ZW5jb2RlKGVuY29kZXIsIGxheW91dFBvaW50KTsKLX0KLQot
Ym9vbCBBcmd1bWVudENvZGVyPExheW91dFBvaW50Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IExheW91dFBvaW50JiBsYXlvdXRQb2ludCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRD
b2RlcjxMYXlvdXRQb2ludD46OmRlY29kZShkZWNvZGVyLCBsYXlvdXRQb2ludCk7Ci19Cit0ZW1w
bGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVy
JiwgY29uc3QgSW50UmVjdCYpOwordGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPEludFJlY3Q+
OjplbmNvZGU8U3RyZWFtQ29ubmVjdGlvbkVuY29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVy
JiwgY29uc3QgSW50UmVjdCYpOwogCiB2b2lkIEFyZ3VtZW50Q29kZXI8UmVjZW50U2VhcmNoPjo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlY2VudFNlYXJjaCYgcmVjZW50U2VhcmNo
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRl
eCA1NDU5NzVhMGRmMTUwMWJlODgxMzU0OWE5MDFhZGQwNzFiZTAxZjk2Li5kOWNjOTYxMjdiMzc3
NzkxNTM1NTU0ZjVjYzZkNjhjMGY1MjJjYzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMjYsMTIgKzI2LDIzIEBACiAjcHJhZ21hIG9uY2UK
IAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BZmZpbmVU
cmFuc2Zvcm0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0F1dG9wbGF5RXZlbnQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0NvbG9yU3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RpYWdub3N0aWNMb2dn
aW5nQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFBvaW50Lmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9GbG9hdFBvaW50M0QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSb3VuZGVkUmVjdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
RmxvYXRTaXplLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9JbmRleGVkREIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0lucHV0TW9kZS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ludFNp
emUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xheW91dFBvaW50Lmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9MYXlvdXRTaXplLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9MZW5ndGhCb3guaD4KICNpbmNsdWRl
IDxXZWJDb3JlL01lZGlhU2VsZWN0aW9uT3B0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OYXRp
dmVJbWFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya0xvYWRNZXRyaWNzLmg+CkBAIC05
Niw3ICsxMDcsNiBAQCB0eXBlZGVmIHN0cnVjdCBfX0NWQnVmZmVyKiBDVlBpeGVsQnVmZmVyUmVm
OwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBYnNvbHV0ZVBvc2l0aW9uQ29uc3RyYWlu
dHM7Ci1jbGFzcyBBZmZpbmVUcmFuc2Zvcm07CiBjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZTsKIGNsYXNzIEJsb2JQYXJ0OwogY2xhc3MgQ2VydGlmaWNhdGVJbmZvOwpAQCAtMTA5LDIxICsx
MTksMTIgQEAgY2xhc3MgRHJhZ0RhdGE7CiBjbGFzcyBGaWxlOwogY2xhc3MgRmlsdGVyT3BlcmF0
aW9uOwogY2xhc3MgRmlsdGVyT3BlcmF0aW9uczsKLWNsYXNzIEZsb2F0UG9pbnQ7Ci1jbGFzcyBG
bG9hdFBvaW50M0Q7Ci1jbGFzcyBGbG9hdFJlY3Q7Ci1jbGFzcyBGbG9hdFJvdW5kZWRSZWN0Owot
Y2xhc3MgRmxvYXRTaXplOwogY2xhc3MgRml4ZWRQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHM7
CiBjbGFzcyBGb250OwogY2xhc3MgRm9udFBsYXRmb3JtRGF0YTsKLWNsYXNzIEhUVFBIZWFkZXJN
YXA7Ci1jbGFzcyBJbnRQb2ludDsKIGNsYXNzIEludFJlY3Q7Ci1jbGFzcyBJbnRTaXplOworY2xh
c3MgSFRUUEhlYWRlck1hcDsKIGNsYXNzIEtleWZyYW1lVmFsdWVMaXN0OwotY2xhc3MgTGF5b3V0
U2l6ZTsKLWNsYXNzIExheW91dFBvaW50OwogY2xhc3MgTGluZWFyVGltaW5nRnVuY3Rpb247CiBj
bGFzcyBOb3RpZmljYXRpb247CiBjbGFzcyBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTsKQEAgLTE3NCw5
ICsxNzUsNyBAQCBzdHJ1Y3QgVG91Y2hBY3Rpb25EYXRhOwogc3RydWN0IFZlbG9jaXR5RGF0YTsK
IHN0cnVjdCBWaWV3cG9ydEF0dHJpYnV0ZXM7CiBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7Ci0gICAg
Ci10ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgUmVjdEVkZ2VzOwotdXNpbmcgRmxvYXRCb3hFeHRl
bnQgPSBSZWN0RWRnZXM8ZmxvYXQ+OworCiB1c2luZyBJREJLZXlQYXRoID0gVmFyaWFudDxTdHJp
bmcsIFZlY3RvcjxTdHJpbmc+PjsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMjI3LDEwICsy
MjYsMjQgQEAgc3RydWN0IFJlY29yZDsKIAogbmFtZXNwYWNlIElQQyB7CiAKLXRlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtPiB7Ci0gICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0m
KTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBX
ZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mKTsKLX07CitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NP
REVSKFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09E
RVIoV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVS
KFdlYkNvcmU6OkZsb2F0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFdlYkNv
cmU6OkZsb2F0UG9pbnQzRCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6
RmxvYXRSZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpGbG9hdFJv
dW5kZWRSZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpGbG9hdFNp
emUpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6OkludFBvaW50KQorREVG
SU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpJbnRTaXplKQorREVGSU5FX1NJTVBM
RV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpMYXlvdXRTaXplKQorREVGSU5FX1NJTVBMRV9BUkdV
TUVOVF9DT0RFUihXZWJDb3JlOjpMYXlvdXRQb2ludCkKKworI2lmIFVTRShDRykKK0RFRklORV9T
SU1QTEVfQVJHVU1FTlRfQ09ERVIoQ0dSZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RF
UihDR1NpemUpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKENHUG9pbnQpCitERUZJTkVf
U0lNUExFX0FSR1VNRU5UX0NPREVSKENHQWZmaW5lVHJhbnNmb3JtKQorI2VuZGlmCiAKIHRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6QXR0cmlidXRlZFN0cmluZz4gewog
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6QXR0cmlidXRl
ZFN0cmluZyYpOwpAQCAtMjk5LDM4ICszMTIsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz4gewogICAgIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKLXRl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRQb2ludD4gewotICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYp
OwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdl
YkNvcmU6OkZsb2F0UG9pbnQmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpG
bG9hdFBvaW50PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFBvaW50M0Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotICAgIHN0YXRpYyBX
QVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UG9p
bnQzRCYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpG
bG9hdFJlY3Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNv
ZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UmVjdCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0gICAgCi10ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50PiB7Ci0g
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4
dGVudCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2Rl
ciYsIFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50Jik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0U2l6ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5f
VU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6RmxvYXRTaXplJik7
Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0Um91
bmRlZFJlY3Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0Um91bmRlZFJlY3QmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJv
b2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0Jik7Ci19OwotCiAj
aWYgRU5BQkxFKE1FVEFfVklFV1BPUlQpCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVu
Y29kZXImLCBjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYpOwpAQCAtMzQ1LDM1ICsz
MjYsMTMgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpWaWV3cG9y
dEF0dHJpYnV0ZXM+IHsKICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2Rl
KERlY29kZXImLCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmKTsKIH07CiAKLXRlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW50UG9pbnQ+IHsKLSAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jik7Ci0gICAgc3Rh
dGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6SW50
UG9pbnQmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4gZGVj
b2RlKERlY29kZXImKTsKLX07Ci0KIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2Vi
Q29yZTo6SW50UmVjdD4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAg
c3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6
SW50UmVjdCYpOwogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFJlY3Q+IGRl
Y29kZShEZWNvZGVyJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkludFNpemU+IHsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgotICAgIHN0
YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwotICAg
IHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6
OkludFNpemUmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRTaXplPiBk
ZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpMYXlvdXRTaXplPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBj
b25zdCBXZWJDb3JlOjpMYXlvdXRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVS
TiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6TGF5b3V0U2l6ZSYpOwotfTsKLQotdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMYXlvdXRQb2ludD4gewotICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQm
KTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBX
ZWJDb3JlOjpMYXlvdXRQb2ludCYpOwotfTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpMZW5ndGg+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYs
IGNvbnN0IFdlYkNvcmU6Okxlbmd0aCYpOwogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6Okxlbmd0aCYpOwpAQCAtNDUyLDYgKzQxMSw3
IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RHJhZ0RhdGE+IHsK
ICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V1RGOjpNYWNoU2VuZFJpZ2h0PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVu
Y29kZXImLCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmKTsKICAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoRW5jb2RlciYsIFdURjo6TWFjaFNlbmRSaWdodCYmKTsKQEAgLTQ2MywyNiArNDIzLDcgQEAg
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+
IHsKICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IGRl
Y29kZShEZWNvZGVyJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENH
UG9pbnQ+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIENHUG9pbnQpOwotICAg
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENHUG9pbnQ+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHU2l6ZT4gewotICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiwgQ0dTaXplKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDR1Np
emU+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPENHUmVjdD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dSZWN0KTsK
LSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDR1JlY3Q+IGRlY29kZShEZWNvZGVyJik7Ci19Owot
Ci10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPiB7Ci0g
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBDR0FmZmluZVRyYW5zZm9ybSk7Ci0gICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8Q0dBZmZpbmVUcmFuc2Zvcm0+IGRlY29kZShEZWNvZGVyJik7
Ci19OwotI2VuZGlmCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZWxl
Y3Rpb25HZW9tZXRyeT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dl
YkNvcmVBcmd1bWVudENvZGVyc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJD
b3JlQXJndW1lbnRDb2RlcnNNYWMubW0KaW5kZXggOGU0ZDVmMTMxZDgyZjFkZWZlMjZkMTVhYmZl
ZTA2NGEzYjk4OTBmOC4uNmE0MzQwNjcxNDYzZDk0NzA3MTkyMzEwYjFmN2JhMGJkMDNhNzZmNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVy
c01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzTWFjLm1tCkBAIC0zMjEsNzkgKzMyMSw2IEBAIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6S2V5
cHJlc3NDb21tYW5kPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD46CiAg
ICAgcmV0dXJuIFdURk1vdmUoY29tbWFuZCk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxDR1Jl
Y3Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0dSZWN0IHJlY3QpCi17Ci0gICAgZW5jb2Rl
ciA8PCByZWN0Lm9yaWdpbiA8PCByZWN0LnNpemU7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8Q0dSZWN0
PiBBcmd1bWVudENvZGVyPENHUmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAg
IHN0ZDo6b3B0aW9uYWw8Q0dQb2ludD4gb3JpZ2luOwotICAgIGRlY29kZXIgPj4gb3JpZ2luOwot
ICAgIGlmICghb3JpZ2luKQotICAgICAgICByZXR1cm4geyB9OwotCi0gICAgc3RkOjpvcHRpb25h
bDxDR1NpemU+IHNpemU7Ci0gICAgZGVjb2RlciA+PiBzaXplOwotICAgIGlmICghc2l6ZSkKLSAg
ICAgICAgcmV0dXJuIHsgfTsKLQotICAgIHJldHVybiBDR1JlY3QgeyAqb3JpZ2luLCAqc2l6ZSB9
OwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIsIENHU2l6ZSBzaXplKQotewotICAgIGVuY29kZXIgPDwgc2l6ZS53aWR0aCA8PCBzaXplLmhl
aWdodDsKLX0KLQotc3RkOjpvcHRpb25hbDxDR1NpemU+IEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgQ0dTaXplIHNpemU7Ci0gICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShzaXplLndpZHRoKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHNpemUuaGVpZ2h0KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBy
ZXR1cm4gc2l6ZTsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPENHUG9pbnQ+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgQ0dQb2ludCBwb2ludCkKLXsKLSAgICBlbmNvZGVyIDw8IHBvaW50Lngg
PDwgcG9pbnQueTsKLX0KLQotc3RkOjpvcHRpb25hbDxDR1BvaW50PiBBcmd1bWVudENvZGVyPENH
UG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBDR1BvaW50IHBvaW50Owot
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9pbnQueCkpCi0gICAgICAgIHJldHVybiB7IH07Ci0g
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb2ludC55KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAg
ICByZXR1cm4gcG9pbnQ7Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxDR0FmZmluZVRyYW5zZm9y
bT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0p
Ci17Ci0gICAgZW5jb2RlciA8PCB0cmFuc2Zvcm0uYSA8PCB0cmFuc2Zvcm0uYiA8PCB0cmFuc2Zv
cm0uYyA8PCB0cmFuc2Zvcm0uZCA8PCB0cmFuc2Zvcm0udHggPDwgdHJhbnNmb3JtLnR5OwotfQot
Ci1zdGQ6Om9wdGlvbmFsPENHQWZmaW5lVHJhbnNmb3JtPiBBcmd1bWVudENvZGVyPENHQWZmaW5l
VHJhbnNmb3JtPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgQ0dBZmZpbmVUcmFu
c2Zvcm0gdHJhbnNmb3JtOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmEpKQot
ICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmIp
KQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3Jt
LmMpKQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNm
b3JtLmQpKQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJh
bnNmb3JtLnR4KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHRyYW5zZm9ybS50eSkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgcmV0dXJuIHRyYW5zZm9y
bTsKLX0KLQogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKIAogdm9pZCBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcj46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIGNv
bnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcikK
</data>
<flag name="commit-queue"
          id="462833"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439227</attachid>
            <date>2021-09-24 18:53:14 -0700</date>
            <delta_ts>2021-09-24 22:23:54 -0700</delta_ts>
            <desc>Test WPE fix?</desc>
            <filename>bug-230714-20210924185313.patch</filename>
            <type>text/plain</type>
            <size>34091</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJmZDdkOTQ0YTczN2IxODFl
YTA5NGE1ZDQxNmNjYWM5ZWRkYmRkNTMuLjAwODU0MGRhNzg1ZGYwMGRiYjdkYzc5N2U3ZDhmNDdj
OTQ3MjM3OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMjEtMDktMjQgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIFJlZmFj
dG9yIHNvbWUgSVBDIGFyZ3VtZW50IGVuY29kZXIgbG9naWMgdG8gd29yayB3aXRoIFN0cmVhbUNv
bm5lY3Rpb25FbmNvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA3MTQKKyAgICAgICAgcmRhcjovLzgzNDc3NTkxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byB1c2Ug
YElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXJgIHRvIGVuY29kZSBkaXNwbGF5IGxpc3QgaXRl
bXMgKGFuZCB0aGVpciBtZW1iZXJzKSBpbiBhbgorICAgICAgICBJUEMgc3RyZWFtLiBUaGlzIHBh
dGNoIGNvbXByaXNlcyB0d28gbWFpbiBzZXRzIG9mIGNoYW5nZXMgaW4gYEFyZ3VtZW50Q29kZXJz
YCwgYW5kIGBXZWJDb3JlQXJndW1lbnRDb2RlcnNgLiBTZWUKKyAgICAgICAgYmVsb3cgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmRlY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNb25vc3RhdGU+OjpkZWNvZGUpOiBEZWxldGVk
LgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2RlKToKKworICAgICAgICBNYW55IG9mIHRoZXNlIGBl
bmNvZGUoKWAgbWV0aG9kcyBhcmUgY3VycmVudGx5IG5vbi10ZW1wbGF0ZWQsIHdoaWNoIG1lYW5z
IHRoYXQgRW5jb2RlciBhbmQgRGVjb2RlciB1c2VkIGhlcmUKKyAgICAgICAgcmVmZXIgc29sZWx5
IHRvIElQQzo6RW5jb2RlciBhbmQgSVBDOjpEZWNvZGVyIChyZXNwZWN0aXZlbHkpIGluc3RlYWQg
b2Ygb3RoZXIgdHlwZXMgb2YgZW5jb2RlcnMgKG5hbWVseSwKKyAgICAgICAgU3RyZWFtQ29ubmVj
dGlvbkVuY29kZXIpLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxBZmZpbmVUcmFuc2Zvcm0+
OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UG9p
bnQ+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0
UG9pbnQ+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZs
b2F0UG9pbnQzRD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8RmxvYXRQb2ludDNEPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjplbmNvZGUpOiBEZWxldGVkLgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0U2l6ZT46OmRlY29kZSk6IERlbGV0ZWQu
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46
OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+
OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEludFBvaW50
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRTaXpl
Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRTaXpl
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxMYXlvdXRT
aXplPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxMYXlv
dXRTaXplPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxM
YXlvdXRQb2ludD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8TGF5b3V0UG9pbnQ+OjpkZWNvZGUpOiBEZWxldGVkLgorCisgICAgICAgIFRoZXNlIFdlYkNv
cmUgYXJndW1lbnQgY29kZXJzIGFyZSBhbHNvIGN1cnJlbnRseSBpbmNvbXBhdGlibGUgd2l0aCBT
dHJlYW1Db25uZWN0aW9uRW5jb2Rlciwgc2luY2UgdGhleSBhcmUgbm9uLQorICAgICAgICB0ZW1w
bGF0ZWQgKGFuZCB0aHVzIG9ubHkgd29yayB3aXRoIElQQzo6RW5jb2RlcikuIFNpbmNlIHRoZXNl
IGFyZSBhbGwgZW5jb2RhYmxlIGFzIFBPRCB0eXBlcywgd2UgY2FuIGp1c3QgdXNlCisgICAgICAg
IFNpbXBsZUFyZ3VtZW50Q29kZXIgZm9yIGFsbCBvZiB0aGVzZS4gV2UgYWxzbyBhZGQgYSBuZXcg
YERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJgIG1hY3JvIHRvIG1ha2UgdGhpcyBjb2RlIGEK
KyAgICAgICAgYml0IGVhc2llciB0byByZWFkLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzTWFjLm1tOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHUmVjdD46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dSZWN0Pjo6ZGVjb2RlKTog
RGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDR1NpemU+OjplbmNvZGUpOiBE
ZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHU2l6ZT46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHQWZmaW5lVHJh
bnNmb3JtPjo6ZGVjb2RlKTogRGVsZXRlZC4KKwogMjAyMS0wOS0yNCAgRGV2aW4gUm91c3NvICA8
ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHR5cGVjaGVja2luZyBgaXNgIG92ZXJs
b2FkcyBmb3IgYHN0ZDo6dW5pcXVlX3B0cmAsIGBXVEY6OlVuaXF1ZVJlZmAsIGFuZCBgV1RGOjpX
ZWFrUHRyYApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRD
b2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3Bw
CmluZGV4IGEzMjA1NTE4Nzk4Yjc0ZGNlZGI4YTAxM2Y5YzljOTg4NWFhZTY2MTYuLmU3ZjI3ODAz
NjJkZDIwMzc0MzRjYTFjYjM5MGRkZTZlZjc5MTU5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaCIKICNpbmNsdWRlICJQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEVuY29kZXIuaCIKICNpbmNsdWRlICJTdHJlYW1Db25uZWN0aW9uRW5jb2Rl
ci5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTIxOCw2
ICsyMTksNyBAQCBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBBcmd1bWVudENvZGVyPFNIQTE6OkRp
Z2VzdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTSAogfQogCiAjaWYgSEFWRShBVURJVF9U
T0tFTikKKwogdm9pZCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rva2VuX3Q+OjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgYXVkaXRfdG9rZW5fdCYgYXVkaXRUb2tlbikKIHsKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChhdWRpdFRva2VuLnZhbCk7IGkr
KykKQEAgLTIzMiwxNSArMjM0LDcgQEAgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgQXJndW1lbnRD
b2RlcjxhdWRpdF90b2tlbl90Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIGEKICAgICB9CiAg
ICAgcmV0dXJuIHRydWU7CiB9Ci0jZW5kaWYKLQotdm9pZCBBcmd1bWVudENvZGVyPE1vbm9zdGF0
ZT46OmVuY29kZShFbmNvZGVyJiwgY29uc3QgTW9ub3N0YXRlJikKLXsKLX0KIAotV0FSTl9VTlVT
RURfUkVUVVJOIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBBcmd1bWVudENvZGVyPE1vbm9zdGF0
ZT46OmRlY29kZShEZWNvZGVyJikKLXsKLSAgICByZXR1cm4gTW9ub3N0YXRlIHsgfTsKLX0KKyNl
bmRpZiAvLyBIQVZFKEFVRElUX1RPS0VOKQogCiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCmluZGV4IGE4Yzg5M2YwYzUyNDBh
ODg4OWMzNDUxNGY5ZmIxZWZlZTBkNjI3MGEuLmI3OWI1NThiZjQyZDM2NTM2OTk5ZWRjMTMxOWM3
NjBiNmQ3OTRhZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3Vt
ZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2Rl
cnMuaApAQCAtNDAsNiArNDAsMjIgQEAKIAogbmFtZXNwYWNlIElQQyB7CiAKKyNkZWZpbmUgREVG
SU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihUeXBlKSBcCisgICAgdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxUeXBlPiB7IFwKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rl
cj4gdm9pZCBzdGF0aWMgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFR5cGUmIHZhbHVl
KSB7IFNpbXBsZUFyZ3VtZW50Q29kZXI8VHlwZT46OmVuY29kZShlbmNvZGVyLCB2YWx1ZSk7IH0g
XAorICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBib29sIHN0YXRpYyBkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgVHlwZSYgdmFsdWUpIHsgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29k
ZXI8VHlwZT46OmRlY29kZShkZWNvZGVyLCB2YWx1ZSk7IH0gXAorICAgICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxUeXBlPiBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikgXAorICAgICAgICB7IFwKKyAgICAgICAgICAgIFR5cGUgdmFsdWU7IFwKKyAg
ICAgICAgICAgIGlmICghZGVjb2RlKGRlY29kZXIsIHZhbHVlKSkgXAorICAgICAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7IFwKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsgXAorICAg
ICAgICB9IFwKKyAgICB9OyBcCisgICAgdGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFR5cGU+
OjplbmNvZGU8RW5jb2Rlcj4oRW5jb2RlciYsIGNvbnN0IFR5cGUmKTsgXAorICAgIHRlbXBsYXRl
IGJvb2wgQXJndW1lbnRDb2RlcjxUeXBlPjo6ZGVjb2RlPERlY29kZXI+KERlY29kZXImLCBUeXBl
Jik7IFwKKyAgICB0ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPFR5cGU+IEFyZ3VtZW50Q29kZXI8VHlw
ZT46OmRlY29kZTxEZWNvZGVyPihEZWNvZGVyJik7CisKIC8vIEFuIGFyZ3VtZW50IGNvZGVyIHdv
cmtzIG9uIFBPRCB0eXBlcwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IFNpbXBsZUFyZ3Vt
ZW50Q29kZXIgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CkBAIC00OCw2ICs2NCw3
IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBTaW1wbGVBcmd1bWVudENvZGVyIHsKICAg
ICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25z
dCB1aW50OF90Kj4oJnQpLCBzaXplb2YoVCksIGFsaWdub2YoVCkpOwogICAgIH0KIAorICAgIHRl
bXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBi
b29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBUJiB0KQogICAgIHsKICAgICAgICAgcmV0dXJu
IGRlY29kZXIuZGVjb2RlRml4ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+
KCZ0KSwgc2l6ZW9mKFQpLCBhbGlnbm9mKFQpKTsKQEAgLTEwNywxMiArMTI0LDE0IEBAIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPEFycmF5UmVmZXJlbmNlPFQsIGFy
cmF5UmVmZXJlbmNlRHluYW1pCiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxPcHRpb25TZXQ8VD4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
PgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBPcHRpb25T
ZXQ8VD4mIG9wdGlvblNldCkKICAgICB7CiAgICAgICAgIEFTU0VSVChXVEY6OmlzVmFsaWRPcHRp
b25TZXQob3B0aW9uU2V0KSk7CiAgICAgICAgIGVuY29kZXIgPDwgb3B0aW9uU2V0LnRvUmF3KCk7
CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FS
Tl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIE9wdGlvblNldDxU
PiYgb3B0aW9uU2V0KQogICAgIHsKICAgICAgICAgdHlwZW5hbWUgT3B0aW9uU2V0PFQ+OjpTdG9y
YWdlVHlwZSB2YWx1ZTsKQEAgLTEyNCw2ICsxNDMsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxPcHRpb25TZXQ8VD4+IHsKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxPcHRpb25TZXQ8VD4+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsK
ICAgICAgICAgc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBPcHRpb25TZXQ8VD46OlN0b3JhZ2VUeXBl
PiB2YWx1ZTsKQEAgLTE4Nyw2ICsyMDcsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxzdGQ6Om9wdGlvbmFsPFQ+PiB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxCb3g8VD4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBCb3g8VD4mIGJveCkKICAgICB7CiAgICAgICAgIGlmICghYm94KSB7CkBAIC0xOTgsNiArMjE5
LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7
CiAgICAgICAgIGVuY29kZXIgPDwgKmJveC5nZXQoKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgQm94PFQ+JiBib3gpCiAgICAgewogICAgICAgICBib29sIGlz
RW5nYWdlZDsKQEAgLTIxNyw2ICsyMzksNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxCb3g8VD4+IHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxC
b3g8VD4+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKICAgICAgICAgc3RkOjpvcHRp
b25hbDxib29sPiBpc0VuZ2FnZWQ7CkBAIC0yMzUsMTEgKzI1OCwxMyBAQCB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxCb3g8VD4+IHsKIH07CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIFQsIHR5cGVuYW1lIFU+IHN0cnVjdCBBcmd1bWVudENvZGVyPHN0ZDo6cGFpcjxULCBV
Pj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IHN0ZDo6cGFpcjxULCBVPiYgcGFpcikKICAgICB7
CiAgICAgICAgIGVuY29kZXIgPDwgcGFpci5maXJzdCA8PCBwYWlyLnNlY29uZDsKICAgICB9CiAK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9S
RVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2Rlciwgc3RkOjpwYWlyPFQsIFU+JiBwYWly
KQogICAgIHsKICAgICAgICAgVCBmaXJzdDsKQEAgLTI1NSw2ICsyODAsNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxzdGQ6OnBhaXI8VCwg
VT4+IHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8VCwgVT4+IGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxUPiBm
aXJzdDsKQEAgLTM2NSwxMSArMzkxLDEzIEBAIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEVsZW1lbnRz
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxzdGQ6OnR1cGxlPEVsZW1lbnRzLi4uPj4gewogfTsKIAog
dGVtcGxhdGU8dHlwZW5hbWUgS2V5VHlwZSwgdHlwZW5hbWUgVmFsdWVUeXBlPiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXVEY6OktleVZhbHVlUGFpcjxLZXlUeXBlLCBWYWx1ZVR5cGU+PiB7CisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgV1RGOjpLZXlWYWx1ZVBhaXI8S2V5VHlwZSwgVmFsdWVUeXBlPiYg
cGFpcikKICAgICB7CiAgICAgICAgIGVuY29kZXIgPDwgcGFpci5rZXkgPDwgcGFpci52YWx1ZTsK
ICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJO
X1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgV1RGOjpLZXlWYWx1
ZVBhaXI8S2V5VHlwZSwgVmFsdWVUeXBlPiYgcGFpcikKICAgICB7CiAgICAgICAgIEtleVR5cGUg
a2V5OwpAQCAtMzk3LDYgKzQyNSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxp
bmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyLCBzaXplX3QgbWluCiAgICAgICAg
ICAgICBlbmNvZGVyIDw8IHZlY3RvcltpXTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlciwgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIs
IG1pbkNhcGFjaXR5PiYgdmVjdG9yKQogICAgIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0
b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+PiBvcHRp
b25hbDsKQEAgLTQzNiw2ICs0NjUsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5s
aW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlciwgc2l6ZV90IG1pbgogICAgICAg
ICBlbmNvZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0IHVp
bnQ4X3QqPih2ZWN0b3IuZGF0YSgpKSwgdmVjdG9yLnNpemUoKSAqIHNpemVvZihUKSwgYWxpZ25v
ZihUKSk7CiAgICAgfQogICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAg
c3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBW
ZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+JiB2
ZWN0b3IpCiAgICAgewogICAgICAgICB1aW50NjRfdCBkZWNvZGVkU2l6ZTsKQEAgLTQ1MCw3ICs0
ODAsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVu
YW1lIE92ZXJmbG93SGFuZGxlciwgc2l6ZV90IG1pbgogICAgICAgICAvLyBTaW5jZSB3ZSBrbm93
IHRoZSB0b3RhbCBzaXplIG9mIHRoZSBlbGVtZW50cywgd2UgY2FuIGFsbG9jYXRlIHRoZSB2ZWN0
b3IgaW4KICAgICAgICAgLy8gb25lIGZlbGwgc3dvb3AuIEJlZm9yZSBhbGxvY2F0aW5nIHdlIG11
c3QgaG93ZXZlciBtYWtlIHN1cmUgdGhhdCB0aGUgZGVjb2RlciBidWZmZXIKICAgICAgICAgLy8g
aXMgYmlnIGVub3VnaC4KLSAgICAgICAgaWYgKCFkZWNvZGVyLmJ1ZmZlcklzTGFyZ2VFbm91Z2hU
b0NvbnRhaW48VD4oc2l6ZSkpCisgICAgICAgIGlmICghZGVjb2Rlci50ZW1wbGF0ZSBidWZmZXJJ
c0xhcmdlRW5vdWdoVG9Db250YWluPFQ+KHNpemUpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgICAgIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBt
aW5DYXBhY2l0eT4gdGVtcDsKQEAgLTQ5Nyw2ICs1MjcsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlciwgc2l6ZV90
IG1pbgogdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVu
YW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZywgdHlwZW5hbWUgTWFwcGVkVHJhaXRz
QXJnLCB0eXBlbmFtZSBIYXNoVGFibGVUcmFpdHM+IHN0cnVjdCBBcmd1bWVudENvZGVyPEhhc2hN
YXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVkVHJhaXRz
QXJnLCBIYXNoVGFibGVUcmFpdHM+PiB7CiAgICAgdHlwZWRlZiBIYXNoTWFwPEtleUFyZywgTWFw
cGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZywgSGFzaFRhYmxl
VHJhaXRzPiBIYXNoTWFwVHlwZTsKIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAg
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEhhc2hNYXBUeXBl
JiBoYXNoTWFwKQogICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50MzJf
dD4oaGFzaE1hcC5zaXplKCkpOwpAQCAtNTA0LDYgKzUzNSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IEtleUFyZywgdHlwZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBL
ZXlUcmFpCiAgICAgICAgICAgICBlbmNvZGVyIDw8ICppdDsKICAgICB9CiAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEhhc2hNYXBUeXBl
PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHVpbnQzMl90IGhhc2hN
YXBTaXplOwpAQCAtNTM0LDYgKzU2Niw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlw
ZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpCiAgICAg
ICAgIHJldHVybiBoYXNoTWFwOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29k
ZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBIYXNoTWFwVHlwZSYgaGFzaE1hcCkKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9u
YWw8SGFzaE1hcFR5cGU+IHRlbXBIYXNoTWFwOwpAQCAtNTQ4LDYgKzU4MSw3IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0
eXBlbmFtZSBLZXlUcmFpCiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hB
cmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZywgdHlwZW5hbWUgSGFzaFRhYmxlVHJhaXRzPiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxIYXNoU2V0PEtleUFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBI
YXNoVGFibGVUcmFpdHM+PiB7CiAgICAgdHlwZWRlZiBIYXNoU2V0PEtleUFyZywgSGFzaEFyZywg
S2V5VHJhaXRzQXJnLCBIYXNoVGFibGVUcmFpdHM+IEhhc2hTZXRUeXBlOwogCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgSGFzaFNldFR5cGUmIGhhc2hTZXQpCiAgICAgewogICAgICAgICBlbmNvZGVy
IDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihoYXNoU2V0LnNpemUoKSk7CkBAIC01NTUsNiArNTg5
LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFt
ZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1lIEhhc2gKICAgICAgICAgICAgIGVuY29kZXIgPDwgKml0
OwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdB
Uk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBIYXNoU2V0VHlw
ZSYgaGFzaFNldCkKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8SGFzaFNldFR5cGU+IHRl
bXBIYXNoU2V0OwpAQCAtNTY2LDYgKzYwMSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywg
dHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNoCiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29k
ZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8SGFzaFNldFR5cGU+IGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQogICAgIHsKICAgICAgICAgdWludDY0X3QgaGFzaFNldFNpemU7CkBAIC01OTUs
NiArNjMxLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0
eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1lIEhhc2gKIHRlbXBsYXRlPHR5cGVuYW1lIEtl
eUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnPiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxIYXNoQ291bnRlZFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZz4+
IHsKICAgICB0eXBlZGVmIEhhc2hDb3VudGVkU2V0PEtleUFyZywgSGFzaEFyZywgS2V5VHJhaXRz
QXJnPiBIYXNoQ291bnRlZFNldFR5cGU7CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5j
b2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgSGFz
aENvdW50ZWRTZXRUeXBlJiBoYXNoQ291bnRlZFNldCkKICAgICB7CiAgICAgICAgIGVuY29kZXIg
PDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGhhc2hDb3VudGVkU2V0LnNpemUoKSk7CkBAIC02MDUs
NiArNjQyLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0
eXBlbmFtZSBLZXlUcmFpdHNBcmc+IHN0cnVjdCBBcmd1bWUKICAgICAgICAgfQogICAgIH0KICAg
ICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNF
RF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSGFzaENvdW50ZWRTZXRUeXBl
JiBoYXNoQ291bnRlZFNldCkKICAgICB7CiAgICAgICAgIHVpbnQ2NF90IGhhc2hDb3VudGVkU2V0
U2l6ZTsKQEAgLTYzNiw2ICs2NzQsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVu
YW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZz4gc3RydWN0IEFyZ3VtZQogfTsKIAog
dGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVUeXBlLCB0eXBlbmFtZSBFcnJvclR5cGU+IHN0cnVjdCBB
cmd1bWVudENvZGVyPEV4cGVjdGVkPFZhbHVlVHlwZSwgRXJyb3JUeXBlPj4geworICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IEV4cGVjdGVkPFZhbHVlVHlwZSwgRXJyb3JUeXBlPiYgZXhwZWN0ZWQpCiAg
ICAgewogICAgICAgICBpZiAoIWV4cGVjdGVkLmhhc192YWx1ZSgpKSB7CkBAIC02NDcsNiArNjg2
LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVUeXBlLCB0eXBlbmFtZSBFcnJvclR5cGU+IHN0
cnVjdCBBcmd1bWVudENvZGVyPEV4cGVjdGVkPFYKICAgICAgICAgZW5jb2RlciA8PCBleHBlY3Rl
ZC52YWx1ZSgpOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8RXhwZWN0ZWQ8VmFsdWVUeXBlLCBFcnJvclR5cGU+PiBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4g
aGFzVmFsdWU7CkBAIC02NzMsNiArNzEzLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVUeXBl
LCB0eXBlbmFtZSBFcnJvclR5cGU+IHN0cnVjdCBBcmd1bWVudENvZGVyPEV4cGVjdGVkPFYKIAog
dGVtcGxhdGU8c2l6ZV90IGluZGV4LCB0eXBlbmFtZS4uLiBUeXBlcz4KIHN0cnVjdCBWYXJpYW50
Q29kZXIgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6VmFyaWFudDxUeXBlcy4uLj4mIHZh
cmlhbnQsIHVuc2lnbmVkIGkpCiAgICAgewogICAgICAgICBpZiAoaSA9PSBpbmRleCkgewpAQCAt
NjgyLDYgKzcyMyw3IEBAIHN0cnVjdCBWYXJpYW50Q29kZXIgewogICAgICAgICBWYXJpYW50Q29k
ZXI8aW5kZXggLSAxLCBUeXBlcy4uLj46OmVuY29kZShlbmNvZGVyLCB2YXJpYW50LCBpKTsKICAg
ICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgdW5zaWduZWQgaSkKICAgICB7CiAgICAgICAgIGlmIChpID09IGluZGV4KSB7CkBAIC02OTcs
MTIgKzczOSwxNCBAQCBzdHJ1Y3QgVmFyaWFudENvZGVyIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUu
Li4gVHlwZXM+CiBzdHJ1Y3QgVmFyaWFudENvZGVyPDAsIFR5cGVzLi4uPiB7CisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgV1RGOjpWYXJpYW50PFR5cGVzLi4uPiYgdmFyaWFudCwgdW5zaWduZWQgaSkK
ICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQoaSwgIWkpOwogICAgICAgICBlbmNvZGVyIDw8
IFdURjo6Z2V0PDA+KHZhcmlhbnQpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdURjo6VmFyaWFudDxUeXBlcy4u
Lj4+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAg
QVNTRVJUX1VOVVNFRChpLCAhaSk7CkBAIC03MTUsNiArNzU5LDcgQEAgc3RydWN0IFZhcmlhbnRD
b2RlcjwwLCBUeXBlcy4uLj4gewogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUuLi4gVHlwZXM+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IHsKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+JiB2YXJpYW50KQogICAgIHsKICAgICAg
ICAgdW5zaWduZWQgaSA9IHZhcmlhbnQuaW5kZXgoKTsKQEAgLTcyMiw2ICs3NjcsNyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpWYXJpYW50
PFR5cGVzLi4uPj4gewogICAgICAgICBWYXJpYW50Q29kZXI8c2l6ZW9mLi4uKFR5cGVzKSAtIDEs
IFR5cGVzLi4uPjo6ZW5jb2RlKGVuY29kZXIsIHZhcmlhbnQsIGkpOwogICAgIH0KICAgICAKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdU
Rjo6VmFyaWFudDxUeXBlcy4uLj4+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKICAg
ICAgICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gaTsKQEAgLTc3Myw4ICs4MTksMTQgQEAgdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxhdWRpdF90b2tlbl90PiB7CiAjZW5kaWYKIAog
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxNb25vc3RhdGU+IHsKLSAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IE1vbm9zdGF0ZSYpOwotICAgIHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPE1vbm9zdGF0ZT4gZGVjb2RlKERlY29kZXImKTsKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBFbmNvZGVyPgorICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgTW9u
b3N0YXRlJikgeyB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgorICAgIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPE1vbm9zdGF0ZT4gZGVjb2RlKERlY29kZXImKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIE1vbm9zdGF0ZSB7IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgSVBD
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRl
eCBmYWJjZWY2YzIxMjUyM2VmMDFjYzg5YTQ5ODQ2MDA2ZDhlYTJkZjkzLi4zZDUxYmFmOTExYzgz
NmU1MDYxYzQwNDE1M2M1MzcwYThhNmRiMWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTIzMSwxNiArMjMxLDYgQEAgc3RhdGljIFdB
Uk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZVR5cGVzQW5kRGF0YShEZWNvZGVyJiBkZWNvZGVy
LCBWZWN0b3I8U3RyaW4KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVy
PEFmZmluZVRyYW5zZm9ybT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIGFmZmluZVRyYW5zZm9ybSkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEFm
ZmluZVRyYW5zZm9ybT46OmVuY29kZShlbmNvZGVyLCBhZmZpbmVUcmFuc2Zvcm0pOwotfQotCi1i
b29sIEFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIEFmZmluZVRyYW5zZm9ybSYgYWZmaW5lVHJhbnNmb3JtKQotewotICAgIHJldHVybiBTaW1w
bGVBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmRlY29kZShkZWNvZGVyLCBhZmZpbmVU
cmFuc2Zvcm0pOwotfQotCiB2b2lkIEFyZ3VtZW50Q29kZXI8Q2FjaGVRdWVyeU9wdGlvbnM+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ2FjaGVRdWVyeU9wdGlvbnMmIG9wdGlvbnMp
CiB7CiAgICAgZW5jb2RlciA8PCBvcHRpb25zLmlnbm9yZVNlYXJjaDsKQEAgLTYxNyw4NiArNjA3
LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPFNwcmluZ1RpbWluZ0Z1bmN0aW9uPjo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIsIFNwcmluZ1RpbWluZ0YKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9p
ZCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29u
c3QgRmxvYXRQb2ludCYgZmxvYXRQb2ludCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZs
b2F0UG9pbnQ+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRQb2ludCk7Ci19Ci0KLWJvb2wgQXJndW1l
bnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEZsb2F0UG9pbnQm
IGZsb2F0UG9pbnQpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2lu
dD46OmRlY29kZShkZWNvZGVyLCBmbG9hdFBvaW50KTsKLX0KLQotc3RkOjpvcHRpb25hbDxGbG9h
dFBvaW50PiBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKLXsKLSAgICBGbG9hdFBvaW50IGZsb2F0UG9pbnQ7Ci0gICAgaWYgKCFTaW1wbGVBcmd1bWVu
dENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRQb2ludCkpCi0gICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIGZsb2F0UG9pbnQ7Ci19Ci0KLXZvaWQg
QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29u
c3QgRmxvYXRQb2ludDNEJiBmbG9hdFBvaW50KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8
RmxvYXRQb2ludDNEPjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0UG9pbnQpOwotfQotCi1ib29sIEFy
Z3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEZsb2F0
UG9pbnQzRCYgZmxvYXRQb2ludCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxG
bG9hdFBvaW50M0Q+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRQb2ludCk7Ci19Ci0KLQotdm9pZCBB
cmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBG
bG9hdFJlY3QmIGZsb2F0UmVjdCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UmVj
dD46OmVuY29kZShlbmNvZGVyLCBmbG9hdFJlY3QpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8
RmxvYXRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEZsb2F0UmVjdCYgZmxvYXRSZWN0
KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZShk
ZWNvZGVyLCBmbG9hdFJlY3QpOwotfQotCi1zdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4gQXJndW1l
bnRDb2RlcjxGbG9hdFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBGbG9h
dFJlY3QgZmxvYXRSZWN0OwotICAgIGlmICghU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+
OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRSZWN0KSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKLSAgICByZXR1cm4gZmxvYXRSZWN0OwotfQotCi0KLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9h
dEJveEV4dGVudD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdEJveEV4dGVu
dCYgZmxvYXRCb3hFeHRlbnQpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdEJveEV4
dGVudD46OmVuY29kZShlbmNvZGVyLCBmbG9hdEJveEV4dGVudCk7Ci19Ci0gICAgCi1ib29sIEFy
Z3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxv
YXRCb3hFeHRlbnQmIGZsb2F0Qm94RXh0ZW50KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVu
dENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0Qm94RXh0ZW50KTsK
LX0KLSAgICAKLQotdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0U2l6ZT46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBGbG9hdFNpemUmIGZsb2F0U2l6ZSkKLXsKLSAgICBTaW1wbGVBcmd1
bWVudENvZGVyPEZsb2F0U2l6ZT46OmVuY29kZShlbmNvZGVyLCBmbG9hdFNpemUpOwotfQotCi1i
b29sIEFyZ3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEZs
b2F0U2l6ZSYgZmxvYXRTaXplKQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZs
b2F0U2l6ZT46OmRlY29kZShkZWNvZGVyLCBmbG9hdFNpemUpOwotfQotCi0KLXZvaWQgQXJndW1l
bnRDb2RlcjxGbG9hdFJvdW5kZWRSZWN0Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IEZsb2F0Um91bmRlZFJlY3QmIHJvdW5kZWRSZWN0KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29k
ZXI8RmxvYXRSb3VuZGVkUmVjdD46OmVuY29kZShlbmNvZGVyLCByb3VuZGVkUmVjdCk7Ci19Ci0K
LWJvb2wgQXJndW1lbnRDb2RlcjxGbG9hdFJvdW5kZWRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIsIEZsb2F0Um91bmRlZFJlY3QmIHJvdW5kZWRSZWN0KQotewotICAgIHJldHVybiBTaW1w
bGVBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjpkZWNvZGUoZGVjb2Rlciwgcm91bmRl
ZFJlY3QpOwotfQotCiAjaWYgRU5BQkxFKE1FVEFfVklFV1BPUlQpCiB2b2lkIEFyZ3VtZW50Q29k
ZXI8Vmlld3BvcnRBcmd1bWVudHM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVmll
d3BvcnRBcmd1bWVudHMmIHZpZXdwb3J0QXJndW1lbnRzKQogewpAQCAtNzI4LDI5ICs2MzgsNiBA
QCBib29sIEFyZ3VtZW50Q29kZXI8Vmlld3BvcnRBdHRyaWJ1dGVzPjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFZpZXdwb3J0QXR0cmlidQogICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVy
PFZpZXdwb3J0QXR0cmlidXRlcz46OmRlY29kZShkZWNvZGVyLCB2aWV3cG9ydEF0dHJpYnV0ZXMp
OwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgSW50UG9pbnQmIGludFBvaW50KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29k
ZXI8SW50UG9pbnQ+OjplbmNvZGUoZW5jb2RlciwgaW50UG9pbnQpOwotfQotCi1ib29sIEFyZ3Vt
ZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSW50UG9pbnQmIGlu
dFBvaW50KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZGVj
b2RlKGRlY29kZXIsIGludFBvaW50KTsKLX0KLQotc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRQ
b2ludD4gQXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQot
ewotICAgIEludFBvaW50IGludFBvaW50OwotICAgIGlmICghU2ltcGxlQXJndW1lbnRDb2RlcjxJ
bnRQb2ludD46OmRlY29kZShkZWNvZGVyLCBpbnRQb2ludCkpCi0gICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7Ci0gICAgcmV0dXJuIGludFBvaW50OwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8
SW50UmVjdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJbnRSZWN0JiBpbnRSZWN0
KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmVuY29kZShlbmNvZGVyLCBp
bnRSZWN0KTsKLX0KLQogYm9vbCBBcmd1bWVudENvZGVyPEludFJlY3Q+OjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgSW50UmVjdCYgaW50UmVjdCkKIHsKICAgICByZXR1cm4gU2ltcGxlQXJndW1l
bnRDb2RlcjxJbnRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIGludFJlY3QpOwpAQCAtNzY0LDUwICs2
NTEsNyBAQCBzdGQ6Om9wdGlvbmFsPEludFJlY3Q+IEFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHJldHVybiByZWN0OwogfQogCi10ZW1wbGF0ZTx0
eXBlbmFtZSBFbmNvZGVyPgotdm9pZCBBcmd1bWVudENvZGVyPEludFNpemU+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgSW50U2l6ZSYgaW50U2l6ZSkKLXsKLSAgICBTaW1wbGVBcmd1
bWVudENvZGVyPEludFNpemU+OjplbmNvZGUoZW5jb2RlciwgaW50U2l6ZSk7Ci19Ci0KLXRlbXBs
YXRlCi12b2lkIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVy
JiwgY29uc3QgSW50U2l6ZSYpOwotdGVtcGxhdGUKLXZvaWQgQXJndW1lbnRDb2RlcjxJbnRTaXpl
Pjo6ZW5jb2RlPFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyPihTdHJlYW1Db25uZWN0aW9uRW5jb2Rl
ciYsIGNvbnN0IEludFNpemUmKTsKLQotYm9vbCBBcmd1bWVudENvZGVyPEludFNpemU+OjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgSW50U2l6ZSYgaW50U2l6ZSkKLXsKLSAgICByZXR1cm4gU2lt
cGxlQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZGVjb2RlKGRlY29kZXIsIGludFNpemUpOwotfQot
Ci1zdGQ6Om9wdGlvbmFsPEludFNpemU+IEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQotewotICAgIEludFNpemUgaW50U2l6ZTsKLSAgICBpZiAoIVNpbXBs
ZUFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZShkZWNvZGVyLCBpbnRTaXplKSkKLSAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICByZXR1cm4gaW50U2l6ZTsKLX0KLQotdm9pZCBB
cmd1bWVudENvZGVyPExheW91dFNpemU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qg
TGF5b3V0U2l6ZSYgbGF5b3V0U2l6ZSkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPExheW91
dFNpemU+OjplbmNvZGUoZW5jb2RlciwgbGF5b3V0U2l6ZSk7Ci19Ci0KLWJvb2wgQXJndW1lbnRD
b2RlcjxMYXlvdXRTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIExheW91dFNpemUmIGxh
eW91dFNpemUpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46
OmRlY29kZShkZWNvZGVyLCBsYXlvdXRTaXplKTsKLX0KLQotCi12b2lkIEFyZ3VtZW50Q29kZXI8
TGF5b3V0UG9pbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTGF5b3V0UG9pbnQm
IGxheW91dFBvaW50KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+Ojpl
bmNvZGUoZW5jb2RlciwgbGF5b3V0UG9pbnQpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8TGF5
b3V0UG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTGF5b3V0UG9pbnQmIGxheW91dFBv
aW50KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPExheW91dFBvaW50Pjo6ZGVj
b2RlKGRlY29kZXIsIGxheW91dFBvaW50KTsKLX0KK3RlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2Rl
cjxJbnRSZWN0Pjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBJbnRSZWN0Jik7CiAK
IHZvaWQgQXJndW1lbnRDb2RlcjxSZWNlbnRTZWFyY2g+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgUmVjZW50U2VhcmNoJiByZWNlbnRTZWFyY2gpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDU0NTk3NWEwZGYxNTAxYmU4ODEz
NTQ5YTkwMWFkZDA3MWJlMDFmOTYuLjk4MWZiYWI1MmNlM2YzYWUxNjAwZjRmYmNiNTJhNjJkYWU4
ZDcyZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
CkBAIC0yNiwxMiArMjYsMjQgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQXJndW1lbnRD
b2RlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0FmZmluZVRyYW5zZm9ybS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvQXV0b3BsYXlFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3JTcGFjZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0Zsb2F0UG9pbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQzRC5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9h
dFJvdW5kZWRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFNpemUuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0luZGV4ZWRE
Qi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5wdXRNb2RlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9J
bnRQb2ludC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvSW50U2l6ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGF5b3V0UG9pbnQuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0xheW91dFNpemUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xlbmd0aEJveC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTZWxlY3Rpb25PcHRpb24uaD4KICNpbmNsdWRlIDxXZWJD
b3JlL05hdGl2ZUltYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrTG9hZE1ldHJpY3Mu
aD4KQEAgLTk2LDcgKzEwOCw2IEBAIHR5cGVkZWYgc3RydWN0IF9fQ1ZCdWZmZXIqIENWUGl4ZWxC
dWZmZXJSZWY7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFic29sdXRlUG9zaXRpb25D
b25zdHJhaW50czsKLWNsYXNzIEFmZmluZVRyYW5zZm9ybTsKIGNsYXNzIEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlOwogY2xhc3MgQmxvYlBhcnQ7CiBjbGFzcyBDZXJ0aWZpY2F0ZUluZm87CkBAIC0x
MDksMjEgKzEyMCwxMSBAQCBjbGFzcyBEcmFnRGF0YTsKIGNsYXNzIEZpbGU7CiBjbGFzcyBGaWx0
ZXJPcGVyYXRpb247CiBjbGFzcyBGaWx0ZXJPcGVyYXRpb25zOwotY2xhc3MgRmxvYXRQb2ludDsK
LWNsYXNzIEZsb2F0UG9pbnQzRDsKLWNsYXNzIEZsb2F0UmVjdDsKLWNsYXNzIEZsb2F0Um91bmRl
ZFJlY3Q7Ci1jbGFzcyBGbG9hdFNpemU7CiBjbGFzcyBGaXhlZFBvc2l0aW9uVmlld3BvcnRDb25z
dHJhaW50czsKIGNsYXNzIEZvbnQ7CiBjbGFzcyBGb250UGxhdGZvcm1EYXRhOwogY2xhc3MgSFRU
UEhlYWRlck1hcDsKLWNsYXNzIEludFBvaW50OwotY2xhc3MgSW50UmVjdDsKLWNsYXNzIEludFNp
emU7CiBjbGFzcyBLZXlmcmFtZVZhbHVlTGlzdDsKLWNsYXNzIExheW91dFNpemU7Ci1jbGFzcyBM
YXlvdXRQb2ludDsKIGNsYXNzIExpbmVhclRpbWluZ0Z1bmN0aW9uOwogY2xhc3MgTm90aWZpY2F0
aW9uOwogY2xhc3MgUGFzdGVib2FyZEN1c3RvbURhdGE7CkBAIC0xNzQsOSArMTc1LDcgQEAgc3Ry
dWN0IFRvdWNoQWN0aW9uRGF0YTsKIHN0cnVjdCBWZWxvY2l0eURhdGE7CiBzdHJ1Y3QgVmlld3Bv
cnRBdHRyaWJ1dGVzOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwotICAgIAotdGVtcGxhdGU8dHlw
ZW5hbWU+IGNsYXNzIFJlY3RFZGdlczsKLXVzaW5nIEZsb2F0Qm94RXh0ZW50ID0gUmVjdEVkZ2Vz
PGZsb2F0PjsKKwogdXNpbmcgSURCS2V5UGF0aCA9IFZhcmlhbnQ8U3RyaW5nLCBWZWN0b3I8U3Ry
aW5nPj47CiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTIyNywxMCArMjI2LDI0IEBAIHN0cnVj
dCBSZWNvcmQ7CiAKIG5hbWVzcGFjZSBJUEMgewogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJik7Ci0gICAgc3RhdGlj
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6QWZmaW5l
VHJhbnNmb3JtJik7Ci19OworREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpB
ZmZpbmVUcmFuc2Zvcm0pCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6OkZs
b2F0Qm94RXh0ZW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpGbG9h
dFBvaW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpGbG9hdFBvaW50
M0QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6OkZsb2F0UmVjdCkKK0RF
RklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdCkKK0RF
RklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6RmxvYXRTaXplKQorREVGSU5FX1NJ
TVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpJbnRQb2ludCkKK0RFRklORV9TSU1QTEVfQVJH
VU1FTlRfQ09ERVIoV2ViQ29yZTo6SW50U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09E
RVIoV2ViQ29yZTo6TGF5b3V0U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2Vi
Q29yZTo6TGF5b3V0UG9pbnQpCisKKyNpZiBVU0UoQ0cpCitERUZJTkVfU0lNUExFX0FSR1VNRU5U
X0NPREVSKENHUmVjdCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoQ0dTaXplKQorREVG
SU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihDR1BvaW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVO
VF9DT0RFUihDR0FmZmluZVRyYW5zZm9ybSkKKyNlbmRpZgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmc+IHsKICAgICBzdGF0aWMgdm9p
ZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmcmKTsKQEAg
LTI5OSwzOCArMzEyLDYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpDZXJ0aWZpY2F0ZUluZm8+IHsKICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpD
ZXJ0aWZpY2F0ZUluZm8+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0UG9pbnQ+IHsKLSAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKLSAgICBzdGF0aWMg
V0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpGbG9hdFBv
aW50Jik7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4gZGVj
b2RlKERlY29kZXImKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2Vi
Q29yZTo6RmxvYXRQb2ludDNEPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50M0QmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVU
VVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpGbG9hdFBvaW50M0QmKTsKLX07Ci0K
LXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRSZWN0PiB7Ci0g
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
KTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBX
ZWJDb3JlOjpGbG9hdFJlY3QmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpG
bG9hdFJlY3Q+IGRlY29kZShEZWNvZGVyJik7Ci19OwotICAgIAotdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdEJveEV4dGVudD4gewotICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmKTsKLSAgICBz
dGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpG
bG9hdEJveEV4dGVudCYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpGbG9hdFNpemU+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwotfTsKLQotdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0PiB7Ci0g
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJvdW5k
ZWRSZWN0Jik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNv
ZGVyJiwgV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdCYpOwotfTsKLQogI2lmIEVOQUJMRShNRVRB
X1ZJRVdQT1JUKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpWaWV3
cG9ydEFyZ3VtZW50cz4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3Qg
V2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmKTsKQEAgLTM0NSwzNSArMzI2LDE2IEBAIHRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzPiB7
CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2Vi
Q29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkludFBvaW50PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVu
Y29kZXImLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNF
RF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkludFBvaW50Jik7Ci0gICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+IGRlY29kZShEZWNvZGVyJik7
Ci19OwotCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkludFJlY3Q+
IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgorICAgIHN0YXRpYyB2b2lkIGVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbnRSZWN0KQor
ICAgIHsKKyAgICAgICAgU2ltcGxlQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRSZWN0Pjo6ZW5j
b2RlKGVuY29kZXIsIGludFJlY3QpOworICAgIH0KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVU
VVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UmVjdD4gZGVjb2RlKERlY29kZXImKTsKIH07CiAK
LXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW50U2l6ZT4gewotICAg
IHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JF
VFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6SW50U2l6ZSYpOwotICAgIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFNpemU+IGRlY29kZShEZWNvZGVyJik7Ci19Owot
Ci10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkxheW91dFNpemU+IHsK
LSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkxheW91dFNp
emUmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXIm
LCBXZWJDb3JlOjpMYXlvdXRTaXplJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OkxheW91dFBvaW50PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVu
Y29kZXImLCBjb25zdCBXZWJDb3JlOjpMYXlvdXRQb2ludCYpOwotICAgIHN0YXRpYyBXQVJOX1VO
VVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkxheW91dFBvaW50Jik7
Ci19OwotCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Okxlbmd0aD4g
ewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6TGVuZ3Ro
Jik7CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwg
V2ViQ29yZTo6TGVuZ3RoJik7CkBAIC00NTIsNiArNDE0LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpEcmFnRGF0YT4gewogI2VuZGlmCiAKICNpZiBQTEFURk9S
TShDT0NPQSkKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXVEY6Ok1hY2hTZW5k
UmlnaHQ+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdURjo6TWFj
aFNlbmRSaWdodCYpOwogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgV1RGOjpNYWNo
U2VuZFJpZ2h0JiYpOwpAQCAtNDYzLDI2ICs0MjYsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4gewogICAgIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4gZGVjb2RlKERlY29kZXImKTsKIH07CiAK
LXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Q0dQb2ludD4gewotICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dQb2ludCk7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
Q0dQb2ludD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8Q0dTaXplPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBDR1Np
emUpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENHU2l6ZT4gZGVjb2RlKERlY29kZXImKTsK
LX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Q0dSZWN0PiB7Ci0gICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBDR1JlY3QpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPENHUmVjdD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYsIENHQWZmaW5lVHJhbnNmb3JtKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxD
R0FmZmluZVRyYW5zZm9ybT4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0jZW5kaWYKKyNlbmRpZiAv
LyBQTEFURk9STShDT0NPQSkKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiB0ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNlbGVjdGlvbkdlb21ldHJ5PiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFj
Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5t
bQppbmRleCA4ZTRkNWYxMzFkODJmMWRlZmUyNmQxNWFiZmVlMDY0YTNiOTg5MGY4Li42YTQzNDA2
NzE0NjNkOTQ3MDcxOTIzMTBiMWY3YmEwYmQwM2E3NmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KQEAgLTMyMSw3OSAr
MzIxLDYgQEAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPjoKICAgICByZXR1cm4gV1RGTW92ZShjb21t
YW5kKTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPENHUmVjdD46OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyLCBDR1JlY3QgcmVjdCkKLXsKLSAgICBlbmNvZGVyIDw8IHJlY3Qub3JpZ2luIDw8IHJl
Y3Quc2l6ZTsKLX0KLQotc3RkOjpvcHRpb25hbDxDR1JlY3Q+IEFyZ3VtZW50Q29kZXI8Q0dSZWN0
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgc3RkOjpvcHRpb25hbDxDR1BvaW50
PiBvcmlnaW47Ci0gICAgZGVjb2RlciA+PiBvcmlnaW47Ci0gICAgaWYgKCFvcmlnaW4pCi0gICAg
ICAgIHJldHVybiB7IH07Ci0KLSAgICBzdGQ6Om9wdGlvbmFsPENHU2l6ZT4gc2l6ZTsKLSAgICBk
ZWNvZGVyID4+IHNpemU7Ci0gICAgaWYgKCFzaXplKQotICAgICAgICByZXR1cm4geyB9OwotCi0g
ICAgcmV0dXJuIENHUmVjdCB7ICpvcmlnaW4sICpzaXplIH07Ci19Ci0KLXZvaWQgQXJndW1lbnRD
b2RlcjxDR1NpemU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0dTaXplIHNpemUpCi17Ci0g
ICAgZW5jb2RlciA8PCBzaXplLndpZHRoIDw8IHNpemUuaGVpZ2h0OwotfQotCi1zdGQ6Om9wdGlv
bmFsPENHU2l6ZT4gQXJndW1lbnRDb2RlcjxDR1NpemU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKLXsKLSAgICBDR1NpemUgc2l6ZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUud2lk
dGgpKQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZS5o
ZWlnaHQpKQotICAgICAgICByZXR1cm4geyB9OwotICAgIHJldHVybiBzaXplOwotfQotCi12b2lk
IEFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR1BvaW50
IHBvaW50KQotewotICAgIGVuY29kZXIgPDwgcG9pbnQueCA8PCBwb2ludC55OwotfQotCi1zdGQ6
Om9wdGlvbmFsPENHUG9pbnQ+IEFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQotewotICAgIENHUG9pbnQgcG9pbnQ7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwb2ludC54KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHBvaW50LnkpKQotICAgICAgICByZXR1cm4geyB9OwotICAgIHJldHVybiBwb2ludDsKLX0KLQot
dm9pZCBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIENHQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSkKLXsKLSAgICBlbmNvZGVyIDw8IHRy
YW5zZm9ybS5hIDw8IHRyYW5zZm9ybS5iIDw8IHRyYW5zZm9ybS5jIDw8IHRyYW5zZm9ybS5kIDw8
IHRyYW5zZm9ybS50eCA8PCB0cmFuc2Zvcm0udHk7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8Q0dBZmZp
bmVUcmFuc2Zvcm0+IEFyZ3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+OjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKLXsKLSAgICBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm07Ci0gICAg
aWYgKCFkZWNvZGVyLmRlY29kZSh0cmFuc2Zvcm0uYSkpCi0gICAgICAgIHJldHVybiB7IH07Ci0g
ICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0cmFuc2Zvcm0uYikpCi0gICAgICAgIHJldHVybiB7IH07
Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0cmFuc2Zvcm0uYykpCi0gICAgICAgIHJldHVybiB7
IH07Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0cmFuc2Zvcm0uZCkpCi0gICAgICAgIHJldHVy
biB7IH07Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0cmFuc2Zvcm0udHgpKQotICAgICAgICBy
ZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLnR5KSkKLSAgICAg
ICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4gdHJhbnNmb3JtOwotfQotCiAjaWYgRU5BQkxFKENP
TlRFTlRfRklMVEVSSU5HKQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q29udGVudEZp
bHRlclVuYmxvY2tIYW5kbGVyPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNv
cmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgY29udGVudEZpbHRlclVuYmxvY2tIYW5k
bGVyKQo=
</data>
<flag name="commit-queue"
          id="462835"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439235</attachid>
            <date>2021-09-24 22:24:27 -0700</date>
            <delta_ts>2021-09-24 23:14:12 -0700</delta_ts>
            <desc>Test WPE fix?</desc>
            <filename>bug-230714-20210924222426.patch</filename>
            <type>text/plain</type>
            <size>34022</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIwOTliNmRjMWFkYTgxMGFm
ZDIxMzM4NDE3MzRmMTJmNzhmZjZjYzkuLjA1NzYyYjNjNTA0ODg2OWZjNGNmYWQ5MzM4ZjhjZWRh
ZTlkOWM3NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjkgQEAKKzIwMjEtMDktMjQgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIFJlZmFj
dG9yIHNvbWUgSVBDIGFyZ3VtZW50IGVuY29kZXIgbG9naWMgdG8gd29yayB3aXRoIFN0cmVhbUNv
bm5lY3Rpb25FbmNvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA3MTQKKyAgICAgICAgcmRhcjovLzgzNDc3NTkxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byB1c2Ug
YElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXJgIHRvIGVuY29kZSBkaXNwbGF5IGxpc3QgaXRl
bXMgKGFuZCB0aGVpciBtZW1iZXJzKSBpbiBhbgorICAgICAgICBJUEMgc3RyZWFtLiBUaGlzIHBh
dGNoIGNvbXByaXNlcyB0d28gbWFpbiBzZXRzIG9mIGNoYW5nZXMgaW4gYEFyZ3VtZW50Q29kZXJz
YCwgYW5kIGBXZWJDb3JlQXJndW1lbnRDb2RlcnNgLiBTZWUKKyAgICAgICAgYmVsb3cgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmRlY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNb25vc3RhdGU+OjpkZWNvZGUpOiBEZWxldGVk
LgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2RlKToKKworICAgICAgICBNYW55IG9mIHRoZXNlIGBl
bmNvZGUoKWAgbWV0aG9kcyBhcmUgY3VycmVudGx5IG5vbi10ZW1wbGF0ZWQsIHdoaWNoIG1lYW5z
IHRoYXQgRW5jb2RlciBhbmQgRGVjb2RlciB1c2VkIGhlcmUKKyAgICAgICAgcmVmZXIgc29sZWx5
IHRvIElQQzo6RW5jb2RlciBhbmQgSVBDOjpEZWNvZGVyIChyZXNwZWN0aXZlbHkpIGluc3RlYWQg
b2Ygb3RoZXIgdHlwZXMgb2YgZW5jb2RlcnMgKG5hbWVseSwKKyAgICAgICAgU3RyZWFtQ29ubmVj
dGlvbkVuY29kZXIpLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxBZmZpbmVUcmFuc2Zvcm0+
OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UG9p
bnQ+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0
UG9pbnQ+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZs
b2F0UG9pbnQzRD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8RmxvYXRQb2ludDNEPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjplbmNvZGUpOiBEZWxldGVkLgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0U2l6ZT46OmRlY29kZSk6IERlbGV0ZWQu
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46
OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+
OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEludFBvaW50
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRSZWN0
Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRSZWN0
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRTaXpl
Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRTaXpl
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxMYXlvdXRT
aXplPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxMYXlv
dXRTaXplPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxM
YXlvdXRQb2ludD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8TGF5b3V0UG9pbnQ+OjpkZWNvZGUpOiBEZWxldGVkLgorCisgICAgICAgIFRoZXNlIFdlYkNv
cmUgYXJndW1lbnQgY29kZXJzIGFyZSBhbHNvIGN1cnJlbnRseSBpbmNvbXBhdGlibGUgd2l0aCBT
dHJlYW1Db25uZWN0aW9uRW5jb2Rlciwgc2luY2UgdGhleSBhcmUgbm9uLQorICAgICAgICB0ZW1w
bGF0ZWQgKGFuZCB0aHVzIG9ubHkgd29yayB3aXRoIElQQzo6RW5jb2RlcikuIFNpbmNlIHRoZXNl
IGFyZSBhbGwgZW5jb2RhYmxlIGFzIFBPRCB0eXBlcywgd2UgY2FuIGp1c3QgdXNlCisgICAgICAg
IFNpbXBsZUFyZ3VtZW50Q29kZXIgZm9yIGFsbCBvZiB0aGVzZS4gV2UgYWxzbyBhZGQgYSBuZXcg
YERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJgIG1hY3JvIHRvIG1ha2UgdGhpcyBjb2RlIGEK
KyAgICAgICAgYml0IGVhc2llciB0byByZWFkLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzTWFjLm1tOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHUmVjdD46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dSZWN0Pjo6ZGVjb2RlKTog
RGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDR1NpemU+OjplbmNvZGUpOiBE
ZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHU2l6ZT46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHQWZmaW5lVHJh
bnNmb3JtPjo6ZGVjb2RlKTogRGVsZXRlZC4KKwogMjAyMS0wOS0yNCAgTGF1cm8gTW91cmEgIDxs
bW91cmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBOb24tdW5pZmllZCBwYXJ0aWFsIGJ1aWxkIGZp
eGVzIGxhdGUgU2VwdGVtYmVyIGVkaXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L0FyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBhMzIwNTUxODc5OGI3NGRjZWRiOGEwMTNmOWM5Yzk4
ODVhYWU2NjE2Li5lN2YyNzgwMzYyZGQyMDM3NDM0Y2ExY2IzOTBkZGU2ZWY3OTE1OTM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0zMCw2
ICszMCw3IEBACiAjaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmgiCiAj
aW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNvZGVyLmgiCiAjaW5jbHVkZSAiU3Ry
ZWFtQ29ubmVjdGlvbkVuY29kZXIuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCkBAIC0yMTgsNiArMjE5LDcgQEAgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgQXJn
dW1lbnRDb2RlcjxTSEExOjpEaWdlc3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU0gKIH0K
IAogI2lmIEhBVkUoQVVESVRfVE9LRU4pCisKIHZvaWQgQXJndW1lbnRDb2RlcjxhdWRpdF90b2tl
bl90Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IGF1ZGl0X3Rva2VuX3QmIGF1ZGl0
VG9rZW4pCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgo
YXVkaXRUb2tlbi52YWwpOyBpKyspCkBAIC0yMzIsMTUgKzIzNCw3IEBAIFdBUk5fVU5VU0VEX1JF
VFVSTiBib29sIEFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBhCiAgICAgfQogICAgIHJldHVybiB0cnVlOwogfQotI2VuZGlmCi0KLXZvaWQgQXJn
dW1lbnRDb2RlcjxNb25vc3RhdGU+OjplbmNvZGUoRW5jb2RlciYsIGNvbnN0IE1vbm9zdGF0ZSYp
Ci17Ci19CiAKLVdBUk5fVU5VU0VEX1JFVFVSTiBzdGQ6Om9wdGlvbmFsPE1vbm9zdGF0ZT4gQXJn
dW1lbnRDb2RlcjxNb25vc3RhdGU+OjpkZWNvZGUoRGVjb2RlciYpCi17Ci0gICAgcmV0dXJuIE1v
bm9zdGF0ZSB7IH07Ci19CisjZW5kaWYgLy8gSEFWRShBVURJVF9UT0tFTikKIAogfSAvLyBuYW1l
c3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVu
dENvZGVycy5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaApp
bmRleCBhOGM4OTNmMGM1MjQwYTg4ODljMzQ1MTRmOWZiMWVmZWUwZDYyNzBhLi5iNzliNTU4YmY0
MmQzNjUzNjk5OWVkYzEzMTljNzYwYjZkNzk0YWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKQEAgLTQwLDYgKzQwLDIyIEBACiAKIG5hbWVzcGFjZSBJ
UEMgewogCisjZGVmaW5lIERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoVHlwZSkgXAorICAg
IHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8VHlwZT4geyBcCisgICAgICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEVuY29kZXI+IHZvaWQgc3RhdGljIGVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBUeXBlJiB2YWx1ZSkgeyBTaW1wbGVBcmd1bWVudENvZGVyPFR5cGU+OjplbmNvZGUo
ZW5jb2RlciwgdmFsdWUpOyB9IFwKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4g
Ym9vbCBzdGF0aWMgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFR5cGUmIHZhbHVlKSB7IHJldHVy
biBTaW1wbGVBcmd1bWVudENvZGVyPFR5cGU+OjpkZWNvZGUoZGVjb2RlciwgdmFsdWUpOyB9IFwK
KyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8
VHlwZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpIFwKKyAgICAgICAgeyBcCisgICAgICAgICAg
ICBUeXBlIHZhbHVlOyBcCisgICAgICAgICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCB2YWx1ZSkp
IFwKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OyBcCisgICAgICAgICAgICBy
ZXR1cm4gdmFsdWU7IFwKKyAgICAgICAgfSBcCisgICAgfTsgXAorICAgIHRlbXBsYXRlIHZvaWQg
QXJndW1lbnRDb2RlcjxUeXBlPjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBUeXBl
Jik7IFwKKyAgICB0ZW1wbGF0ZSBib29sIEFyZ3VtZW50Q29kZXI8VHlwZT46OmRlY29kZTxEZWNv
ZGVyPihEZWNvZGVyJiwgVHlwZSYpOyBcCisgICAgdGVtcGxhdGUgc3RkOjpvcHRpb25hbDxUeXBl
PiBBcmd1bWVudENvZGVyPFR5cGU+OjpkZWNvZGU8RGVjb2Rlcj4oRGVjb2RlciYpOworCiAvLyBB
biBhcmd1bWVudCBjb2RlciB3b3JrcyBvbiBQT0QgdHlwZXMKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
IHN0cnVjdCBTaW1wbGVBcmd1bWVudENvZGVyIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNv
ZGVyPgpAQCAtNDgsNiArNjQsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgU2ltcGxl
QXJndW1lbnRDb2RlciB7CiAgICAgICAgIGVuY29kZXIuZW5jb2RlRml4ZWRMZW5ndGhEYXRhKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KCZ0KSwgc2l6ZW9mKFQpLCBhbGlnbm9mKFQp
KTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBX
QVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVCYgdCkKICAg
ICB7CiAgICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVy
cHJldF9jYXN0PHVpbnQ4X3QqPigmdCksIHNpemVvZihUKSwgYWxpZ25vZihUKSk7CkBAIC0xMDcs
MTIgKzEyNCwxNCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxB
cnJheVJlZmVyZW5jZTxULCBhcnJheVJlZmVyZW5jZUR5bmFtaQogfTsKIAogdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8T3B0aW9uU2V0PFQ+PiB7CisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgT3B0aW9uU2V0PFQ+JiBvcHRpb25TZXQpCiAgICAgewogICAgICAgICBBU1NF
UlQoV1RGOjppc1ZhbGlkT3B0aW9uU2V0KG9wdGlvblNldCkpOwogICAgICAgICBlbmNvZGVyIDw8
IG9wdGlvblNldC50b1JhdygpOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29k
ZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBPcHRpb25TZXQ8VD4mIG9wdGlvblNldCkKICAgICB7CiAgICAgICAgIHR5cGVuYW1l
IE9wdGlvblNldDxUPjo6U3RvcmFnZVR5cGUgdmFsdWU7CkBAIC0xMjQsNiArMTQzLDcgQEAgdGVt
cGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8T3B0aW9uU2V0PFQ+PiB7CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29k
ZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8T3B0aW9uU2V0PFQ+PiBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgT3B0aW9u
U2V0PFQ+OjpTdG9yYWdlVHlwZT4gdmFsdWU7CkBAIC0xODcsNiArMjA3LDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpvcHRpb25hbDxUPj4gewogfTsK
IAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7Cisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgQm94PFQ+JiBib3gpCiAgICAgewogICAgICAgICBpZiAoIWJv
eCkgewpAQCAtMTk4LDYgKzIxOSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1
bWVudENvZGVyPEJveDxUPj4gewogICAgICAgICBlbmNvZGVyIDw8ICpib3guZ2V0KCk7CiAgICAg
fQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVT
RURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEJveDxUPiYgYm94KQogICAg
IHsKICAgICAgICAgYm9vbCBpc0VuZ2FnZWQ7CkBAIC0yMTcsNiArMjM5LDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8Qm94PFQ+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7
CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gaXNFbmdhZ2VkOwpAQCAtMjM1LDExICsyNTgs
MTMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7
CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxzdGQ6OnBhaXI8VCwgVT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgog
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBzdGQ6OnBhaXI8
VCwgVT4mIHBhaXIpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHBhaXIuZmlyc3QgPDwgcGFp
ci5zZWNvbmQ7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBz
dGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIHN0
ZDo6cGFpcjxULCBVPiYgcGFpcikKICAgICB7CiAgICAgICAgIFQgZmlyc3Q7CkBAIC0yNTUsNiAr
MjgwLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8c3RkOjpwYWlyPFQsIFU+PiB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
c3RkOjpwYWlyPFQsIFU+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAg
IHN0ZDo6b3B0aW9uYWw8VD4gZmlyc3Q7CkBAIC0zNjUsMTEgKzM5MSwxMyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZS4uLiBFbGVtZW50cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjp0dXBsZTxFbGVt
ZW50cy4uLj4+IHsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEtleVR5cGUsIHR5cGVuYW1lIFZh
bHVlVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpLZXlWYWx1ZVBhaXI8S2V5VHlwZSwg
VmFsdWVUeXBlPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6S2V5VmFsdWVQYWlyPEtl
eVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHBhaXIu
a2V5IDw8IHBhaXIudmFsdWU7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rl
cj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRl
Y29kZXIsIFdURjo6S2V5VmFsdWVQYWlyPEtleVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAgICAg
ewogICAgICAgICBLZXlUeXBlIGtleTsKQEAgLTM5Nyw2ICs0MjUsNyBAQCB0ZW1wbGF0ZTx0eXBl
bmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlciwg
c2l6ZV90IG1pbgogICAgICAgICAgICAgZW5jb2RlciA8PCB2ZWN0b3JbaV07CiAgICAgfQogCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVU
VVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0
eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4mIHZlY3RvcikKICAgICB7CiAgICAgICAg
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIs
IG1pbkNhcGFjaXR5Pj4gb3B0aW9uYWw7CkBAIC00MzYsNiArNDY1LDcgQEAgdGVtcGxhdGU8dHlw
ZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIs
IHNpemVfdCBtaW4KICAgICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRl
cnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4odmVjdG9yLmRhdGEoKSksIHZlY3Rvci5zaXplKCkg
KiBzaXplb2YoVCksIGFsaWdub2YoVCkpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRs
ZXIsIG1pbkNhcGFjaXR5PiYgdmVjdG9yKQogICAgIHsKICAgICAgICAgdWludDY0X3QgZGVjb2Rl
ZFNpemU7CkBAIC00NTAsNyArNDgwLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlu
bGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KICAgICAg
ICAgLy8gU2luY2Ugd2Uga25vdyB0aGUgdG90YWwgc2l6ZSBvZiB0aGUgZWxlbWVudHMsIHdlIGNh
biBhbGxvY2F0ZSB0aGUgdmVjdG9yIGluCiAgICAgICAgIC8vIG9uZSBmZWxsIHN3b29wLiBCZWZv
cmUgYWxsb2NhdGluZyB3ZSBtdXN0IGhvd2V2ZXIgbWFrZSBzdXJlIHRoYXQgdGhlIGRlY29kZXIg
YnVmZmVyCiAgICAgICAgIC8vIGlzIGJpZyBlbm91Z2guCi0gICAgICAgIGlmICghZGVjb2Rlci5i
dWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluPFQ+KHNpemUpKQorICAgICAgICBpZiAoIWRlY29k
ZXIudGVtcGxhdGUgYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbjxUPihzaXplKSkKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHks
IE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+IHRlbXA7CkBAIC00OTcsNiArNTI3LDcgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVy
Zmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5h
bWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5
cGVuYW1lIE1hcHBlZFRyYWl0c0FyZywgdHlwZW5hbWUgSGFzaFRhYmxlVHJhaXRzPiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFp
dHNBcmcsIE1hcHBlZFRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPj4gewogICAgIHR5cGVkZWYg
SGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBwZWRU
cmFpdHNBcmcsIEhhc2hUYWJsZVRyYWl0cz4gSGFzaE1hcFR5cGU7CiAKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBIYXNoTWFwVHlwZSYgaGFzaE1hcCkKICAgICB7CiAgICAgICAgIGVuY29kZXIgPDwg
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KGhhc2hNYXAuc2l6ZSgpKTsKQEAgLTUwNCw2ICs1MzUsNyBA
QCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUg
SGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogICAgICAgICAgICAgZW5jb2RlciA8PCAqaXQ7CiAg
ICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpv
cHRpb25hbDxIYXNoTWFwVHlwZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewogICAg
ICAgICB1aW50MzJfdCBoYXNoTWFwU2l6ZTsKQEAgLTUzNCw2ICs1NjYsNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlw
ZW5hbWUgS2V5VHJhaQogICAgICAgICByZXR1cm4gaGFzaE1hcDsKICAgICB9CiAKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9v
bCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSGFzaE1hcFR5cGUmIGhhc2hNYXApCiAgICAgewog
ICAgICAgICBzdGQ6Om9wdGlvbmFsPEhhc2hNYXBUeXBlPiB0ZW1wSGFzaE1hcDsKQEAgLTU0OCw2
ICs1ODEsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywg
dHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogdGVtcGxhdGU8dHlwZW5hbWUgS2V5
QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1lIEhh
c2hUYWJsZVRyYWl0cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaFNldDxLZXlBcmcsIEhhc2hB
cmcsIEtleVRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPj4gewogICAgIHR5cGVkZWYgSGFzaFNl
dDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPiBIYXNoU2V0
VHlwZTsKIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEhhc2hTZXRUeXBlJiBoYXNoU2V0KQogICAg
IHsKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaGFzaFNldC5zaXpl
KCkpOwpAQCAtNTU1LDYgKzU4OSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5h
bWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNoCiAgICAgICAg
ICAgICBlbmNvZGVyIDw8ICppdDsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNv
ZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlciwgSGFzaFNldFR5cGUmIGhhc2hTZXQpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlv
bmFsPEhhc2hTZXRUeXBlPiB0ZW1wSGFzaFNldDsKQEAgLTU2Niw2ICs2MDEsNyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0Fy
ZywgdHlwZW5hbWUgSGFzaAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEhhc2hTZXRU
eXBlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHVpbnQ2NF90IGhh
c2hTZXRTaXplOwpAQCAtNTk1LDYgKzYzMSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywg
dHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNoCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRy
YWl0c0FyZz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaENvdW50ZWRTZXQ8S2V5QXJnLCBIYXNo
QXJnLCBLZXlUcmFpdHNBcmc+PiB7CiAgICAgdHlwZWRlZiBIYXNoQ291bnRlZFNldDxLZXlBcmcs
IEhhc2hBcmcsIEtleVRyYWl0c0FyZz4gSGFzaENvdW50ZWRTZXRUeXBlOwogICAgIAorICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENvdW50ZWRTZXQpCiAgICAg
ewogICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihoYXNoQ291bnRlZFNl
dC5zaXplKCkpOwpAQCAtNjA1LDYgKzY0Miw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywg
dHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnPiBzdHJ1Y3QgQXJndW1lCiAg
ICAgICAgIH0KICAgICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAg
ICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENvdW50ZWRTZXQpCiAgICAgewogICAgICAgICB1aW50
NjRfdCBoYXNoQ291bnRlZFNldFNpemU7CkBAIC02MzYsNiArNjc0LDcgQEAgdGVtcGxhdGU8dHlw
ZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmc+IHN0
cnVjdCBBcmd1bWUKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUg
RXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWYWx1ZVR5cGUsIEVycm9y
VHlwZT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBFeHBlY3RlZDxWYWx1ZVR5cGUsIEVycm9y
VHlwZT4mIGV4cGVjdGVkKQogICAgIHsKICAgICAgICAgaWYgKCFleHBlY3RlZC5oYXNfdmFsdWUo
KSkgewpAQCAtNjQ3LDYgKzY4Niw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlw
ZW5hbWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWCiAgICAgICAg
IGVuY29kZXIgPDwgZXhwZWN0ZWQudmFsdWUoKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4cGVjdGVkPFZhbHVlVHlw
ZSwgRXJyb3JUeXBlPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAgICBz
dGQ6Om9wdGlvbmFsPGJvb2w+IGhhc1ZhbHVlOwpAQCAtNjczLDYgKzcxMyw3IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxFeHBlY3RlZDxWCiAKIHRlbXBsYXRlPHNpemVfdCBpbmRleCwgdHlwZW5hbWUuLi4gVHlw
ZXM+CiBzdHJ1Y3QgVmFyaWFudENvZGVyIHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
PgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXVEY6OlZh
cmlhbnQ8VHlwZXMuLi4+JiB2YXJpYW50LCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgaWYg
KGkgPT0gaW5kZXgpIHsKQEAgLTY4Miw2ICs3MjMsNyBAQCBzdHJ1Y3QgVmFyaWFudENvZGVyIHsK
ICAgICAgICAgVmFyaWFudENvZGVyPGluZGV4IC0gMSwgVHlwZXMuLi4+OjplbmNvZGUoZW5jb2Rl
ciwgdmFyaWFudCwgaSk7CiAgICAgfQogICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29k
ZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIHVuc2lnbmVkIGkpCiAgICAgewogICAgICAgICBpZiAoaSA9
PSBpbmRleCkgewpAQCAtNjk3LDEyICs3MzksMTQgQEAgc3RydWN0IFZhcmlhbnRDb2RlciB7CiAK
IHRlbXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPgogc3RydWN0IFZhcmlhbnRDb2RlcjwwLCBUeXBl
cy4uLj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6VmFyaWFudDxUeXBlcy4uLj4mIHZh
cmlhbnQsIHVuc2lnbmVkIGkpCiAgICAgewogICAgICAgICBBU1NFUlRfVU5VU0VEKGksICFpKTsK
ICAgICAgICAgZW5jb2RlciA8PCBXVEY6OmdldDwwPih2YXJpYW50KTsKICAgICB9CiAgICAgCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxX
VEY6OlZhcmlhbnQ8VHlwZXMuLi4+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgdW5zaWduZWQg
aSkKICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQoaSwgIWkpOwpAQCAtNzE1LDYgKzc1OSw3
IEBAIHN0cnVjdCBWYXJpYW50Q29kZXI8MCwgVHlwZXMuLi4+IHsKIH07CiAKIHRlbXBsYXRlPHR5
cGVuYW1lLi4uIFR5cGVzPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXVEY6OlZhcmlhbnQ8VHlwZXMu
Li4+PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV1RGOjpWYXJpYW50PFR5cGVzLi4uPiYgdmFy
aWFudCkKICAgICB7CiAgICAgICAgIHVuc2lnbmVkIGkgPSB2YXJpYW50LmluZGV4KCk7CkBAIC03
MjIsNiArNzY3LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gVHlwZXM+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IHsKICAgICAgICAgVmFyaWFudENvZGVyPHNp
emVvZi4uLihUeXBlcykgLSAxLCBUeXBlcy4uLj46OmVuY29kZShlbmNvZGVyLCB2YXJpYW50LCBp
KTsKICAgICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0
aWMgc3RkOjpvcHRpb25hbDxXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+PiBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGk7CkBAIC03
NzMsOCArODE5LDE0IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8YXVkaXRfdG9r
ZW5fdD4gewogI2VuZGlmCiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8TW9ub3N0
YXRlPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBNb25vc3RhdGUm
KTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxNb25vc3RhdGU+IGRlY29kZShEZWNvZGVyJik7
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYsIGNvbnN0IE1vbm9zdGF0ZSYpIHsgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
RGVjb2Rlcj4KKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxNb25vc3RhdGU+IGRlY29kZShEZWNv
ZGVyJikKKyAgICB7CisgICAgICAgIHJldHVybiBNb25vc3RhdGUgeyB9OworICAgIH0KIH07CiAK
IH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHAKaW5kZXggZmFiY2VmNmMyMTI1MjNlZjAxY2M4OWE0OTg0NjAwNmQ4ZWEy
ZGY5My4uOWIwZjA1ZmEyMjZkNDI3MjY4MDFkNjVjMGM1OGViNDFiZTcwNGY3ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC01OSw2ICs1
OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9JREJHZXRSZXN1bHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9KU0RPTUV4Y2VwdGlvbkhh
bmRsaW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MZW5ndGguaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0xlbmd0aEJveC5oPgpAQCAtMjMxLDE2ICsyMzIsNiBAQCBzdGF0aWMgV0FSTl9VTlVTRURfUkVU
VVJOIGJvb2wgZGVjb2RlVHlwZXNBbmREYXRhKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxTdHJp
bgogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNm
b3JtPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgYWZm
aW5lVHJhbnNmb3JtKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3Jt
Pjo6ZW5jb2RlKGVuY29kZXIsIGFmZmluZVRyYW5zZm9ybSk7Ci19Ci0KLWJvb2wgQXJndW1lbnRD
b2RlcjxBZmZpbmVUcmFuc2Zvcm0+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgQWZmaW5lVHJh
bnNmb3JtJiBhZmZpbmVUcmFuc2Zvcm0pCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29k
ZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKGRlY29kZXIsIGFmZmluZVRyYW5zZm9ybSk7Ci19
Ci0KIHZvaWQgQXJndW1lbnRDb2RlcjxDYWNoZVF1ZXJ5T3B0aW9ucz46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBDYWNoZVF1ZXJ5T3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBlbmNv
ZGVyIDw8IG9wdGlvbnMuaWdub3JlU2VhcmNoOwpAQCAtNjE3LDg2ICs2MDgsNiBAQCBib29sIEFy
Z3VtZW50Q29kZXI8U3ByaW5nVGltaW5nRnVuY3Rpb24+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgU3ByaW5nVGltaW5nRgogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29k
ZXI8RmxvYXRQb2ludD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFBvaW50
JiBmbG9hdFBvaW50KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmVu
Y29kZShlbmNvZGVyLCBmbG9hdFBvaW50KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0
UG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRQb2ludCYgZmxvYXRQb2ludCkK
LXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2RlKGRl
Y29kZXIsIGZsb2F0UG9pbnQpOwotfQotCi1zdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+IEFyZ3Vt
ZW50Q29kZXI8RmxvYXRQb2ludD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIEZs
b2F0UG9pbnQgZmxvYXRQb2ludDsKLSAgICBpZiAoIVNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQ
b2ludD46OmRlY29kZShkZWNvZGVyLCBmbG9hdFBvaW50KSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKLSAgICByZXR1cm4gZmxvYXRQb2ludDsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVy
PEZsb2F0UG9pbnQzRD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFBvaW50
M0QmIGZsb2F0UG9pbnQpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+
OjplbmNvZGUoZW5jb2RlciwgZmxvYXRQb2ludCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxG
bG9hdFBvaW50M0Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRQb2ludDNEJiBmbG9h
dFBvaW50KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46
OmRlY29kZShkZWNvZGVyLCBmbG9hdFBvaW50KTsKLX0KLQotCi12b2lkIEFyZ3VtZW50Q29kZXI8
RmxvYXRSZWN0Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UmVjdCYgZmxv
YXRSZWN0KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZW5jb2RlKGVu
Y29kZXIsIGZsb2F0UmVjdCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRSZWN0JiBmbG9hdFJlY3QpCi17Ci0gICAgcmV0
dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0
UmVjdCk7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiBBcmd1bWVudENvZGVyPEZsb2F0
UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIEZsb2F0UmVjdCBmbG9hdFJl
Y3Q7Ci0gICAgaWYgKCFTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZShkZWNv
ZGVyLCBmbG9hdFJlY3QpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVy
biBmbG9hdFJlY3Q7Ci19Ci0KLQotdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0Qm94RXh0ZW50JiBmbG9hdEJveEV4
dGVudCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZW5jb2Rl
KGVuY29kZXIsIGZsb2F0Qm94RXh0ZW50KTsKLX0KLSAgICAKLWJvb2wgQXJndW1lbnRDb2RlcjxG
bG9hdEJveEV4dGVudD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdEJveEV4dGVudCYg
ZmxvYXRCb3hFeHRlbnQpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRC
b3hFeHRlbnQ+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRCb3hFeHRlbnQpOwotfQotICAgIAotCi12
b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IEZsb2F0U2l6ZSYgZmxvYXRTaXplKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8Rmxv
YXRTaXplPjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0U2l6ZSk7Ci19Ci0KLWJvb2wgQXJndW1lbnRD
b2RlcjxGbG9hdFNpemU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRTaXplJiBmbG9h
dFNpemUpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZGVj
b2RlKGRlY29kZXIsIGZsb2F0U2l6ZSk7Ci19Ci0KLQotdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0
Um91bmRlZFJlY3Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRSb3VuZGVk
UmVjdCYgcm91bmRlZFJlY3QpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFJvdW5k
ZWRSZWN0Pjo6ZW5jb2RlKGVuY29kZXIsIHJvdW5kZWRSZWN0KTsKLX0KLQotYm9vbCBBcmd1bWVu
dENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRS
b3VuZGVkUmVjdCYgcm91bmRlZFJlY3QpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29k
ZXI8RmxvYXRSb3VuZGVkUmVjdD46OmRlY29kZShkZWNvZGVyLCByb3VuZGVkUmVjdCk7Ci19Ci0K
ICNpZiBFTkFCTEUoTUVUQV9WSUVXUE9SVCkKIHZvaWQgQXJndW1lbnRDb2RlcjxWaWV3cG9ydEFy
Z3VtZW50cz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBWaWV3cG9ydEFyZ3VtZW50
cyYgdmlld3BvcnRBcmd1bWVudHMpCiB7CkBAIC03MjgsMjQgKzYzOSw2IEBAIGJvb2wgQXJndW1l
bnRDb2RlcjxWaWV3cG9ydEF0dHJpYnV0ZXM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVmll
d3BvcnRBdHRyaWJ1CiAgICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8Vmlld3BvcnRBdHRy
aWJ1dGVzPjo6ZGVjb2RlKGRlY29kZXIsIHZpZXdwb3J0QXR0cmlidXRlcyk7CiB9CiAKLXZvaWQg
QXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJ
bnRQb2ludCYgaW50UG9pbnQpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxJbnRQb2ludD46
OmVuY29kZShlbmNvZGVyLCBpbnRQb2ludCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxJbnRQ
b2ludD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBJbnRQb2ludCYgaW50UG9pbnQpCi17Ci0g
ICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoZGVjb2Rlciwg
aW50UG9pbnQpOwotfQotCi1zdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiBBcmd1bWVu
dENvZGVyPEludFBvaW50Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgSW50UG9p
bnQgaW50UG9pbnQ7Ci0gICAgaWYgKCFTaW1wbGVBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZGVj
b2RlKGRlY29kZXIsIGludFBvaW50KSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAg
ICByZXR1cm4gaW50UG9pbnQ7Ci19Ci0KIHZvaWQgQXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEludFJlY3QmIGludFJlY3QpCiB7CiAgICAgU2lt
cGxlQXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZW5jb2RlKGVuY29kZXIsIGludFJlY3QpOwpAQCAt
NzY0LDUxICs2NTcsNiBAQCBzdGQ6Om9wdGlvbmFsPEludFJlY3Q+IEFyZ3VtZW50Q29kZXI8SW50
UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHJldHVybiByZWN0OwogfQogCi10
ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgotdm9pZCBBcmd1bWVudENvZGVyPEludFNpemU+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgSW50U2l6ZSYgaW50U2l6ZSkKLXsKLSAgICBT
aW1wbGVBcmd1bWVudENvZGVyPEludFNpemU+OjplbmNvZGUoZW5jb2RlciwgaW50U2l6ZSk7Ci19
Ci0KLXRlbXBsYXRlCi12b2lkIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZTxFbmNvZGVy
PihFbmNvZGVyJiwgY29uc3QgSW50U2l6ZSYpOwotdGVtcGxhdGUKLXZvaWQgQXJndW1lbnRDb2Rl
cjxJbnRTaXplPjo6ZW5jb2RlPFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyPihTdHJlYW1Db25uZWN0
aW9uRW5jb2RlciYsIGNvbnN0IEludFNpemUmKTsKLQotYm9vbCBBcmd1bWVudENvZGVyPEludFNp
emU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSW50U2l6ZSYgaW50U2l6ZSkKLXsKLSAgICBy
ZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZGVjb2RlKGRlY29kZXIsIGludFNp
emUpOwotfQotCi1zdGQ6Om9wdGlvbmFsPEludFNpemU+IEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIEludFNpemUgaW50U2l6ZTsKLSAgICBp
ZiAoIVNpbXBsZUFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZShkZWNvZGVyLCBpbnRTaXpl
KSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICByZXR1cm4gaW50U2l6ZTsKLX0K
LQotdm9pZCBBcmd1bWVudENvZGVyPExheW91dFNpemU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgTGF5b3V0U2l6ZSYgbGF5b3V0U2l6ZSkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENv
ZGVyPExheW91dFNpemU+OjplbmNvZGUoZW5jb2RlciwgbGF5b3V0U2l6ZSk7Ci19Ci0KLWJvb2wg
QXJndW1lbnRDb2RlcjxMYXlvdXRTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIExheW91
dFNpemUmIGxheW91dFNpemUpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5
b3V0U2l6ZT46OmRlY29kZShkZWNvZGVyLCBsYXlvdXRTaXplKTsKLX0KLQotCi12b2lkIEFyZ3Vt
ZW50Q29kZXI8TGF5b3V0UG9pbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTGF5
b3V0UG9pbnQmIGxheW91dFBvaW50KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0
UG9pbnQ+OjplbmNvZGUoZW5jb2RlciwgbGF5b3V0UG9pbnQpOwotfQotCi1ib29sIEFyZ3VtZW50
Q29kZXI8TGF5b3V0UG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTGF5b3V0UG9pbnQm
IGxheW91dFBvaW50KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPExheW91dFBv
aW50Pjo6ZGVjb2RlKGRlY29kZXIsIGxheW91dFBvaW50KTsKLX0KLQogdm9pZCBBcmd1bWVudENv
ZGVyPFJlY2VudFNlYXJjaD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWNlbnRT
ZWFyY2gmIHJlY2VudFNlYXJjaCkKIHsKICAgICBlbmNvZGVyIDw8IHJlY2VudFNlYXJjaC5zdHJp
bmcgPDwgcmVjZW50U2VhcmNoLnRpbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oCmluZGV4IDU0NTk3NWEwZGYxNTAxYmU4ODEzNTQ5YTkwMWFkZDA3MWJl
MDFmOTYuLjY1NTk3NTA1YWIzMzk4Yjk4N2QwYjc1YTMzN2Y1NDJkMjE0NDg5NDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0yNiwxMiArMjYs
MjMgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL0FmZmluZVRyYW5zZm9ybS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0b3Bs
YXlFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3JTcGFjZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0
UG9pbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQzRC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvRmxvYXRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJvdW5kZWRSZWN0Lmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFNpemUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1l
TG9hZGVyVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0luZGV4ZWREQi5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvSW5wdXRNb2RlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRQb2ludC5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvSW50U2l6ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGF5b3V0UG9pbnQu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xheW91dFNpemUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xl
bmd0aEJveC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTZWxlY3Rpb25PcHRpb24uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL05hdGl2ZUltYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3Jr
TG9hZE1ldHJpY3MuaD4KQEAgLTk2LDcgKzEwNyw2IEBAIHR5cGVkZWYgc3RydWN0IF9fQ1ZCdWZm
ZXIqIENWUGl4ZWxCdWZmZXJSZWY7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFic29s
dXRlUG9zaXRpb25Db25zdHJhaW50czsKLWNsYXNzIEFmZmluZVRyYW5zZm9ybTsKIGNsYXNzIEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOwogY2xhc3MgQmxvYlBhcnQ7CiBjbGFzcyBDZXJ0aWZpY2F0
ZUluZm87CkBAIC0xMDksMjEgKzExOSwxMiBAQCBjbGFzcyBEcmFnRGF0YTsKIGNsYXNzIEZpbGU7
CiBjbGFzcyBGaWx0ZXJPcGVyYXRpb247CiBjbGFzcyBGaWx0ZXJPcGVyYXRpb25zOwotY2xhc3Mg
RmxvYXRQb2ludDsKLWNsYXNzIEZsb2F0UG9pbnQzRDsKLWNsYXNzIEZsb2F0UmVjdDsKLWNsYXNz
IEZsb2F0Um91bmRlZFJlY3Q7Ci1jbGFzcyBGbG9hdFNpemU7CiBjbGFzcyBGaXhlZFBvc2l0aW9u
Vmlld3BvcnRDb25zdHJhaW50czsKIGNsYXNzIEZvbnQ7CiBjbGFzcyBGb250UGxhdGZvcm1EYXRh
OwogY2xhc3MgSFRUUEhlYWRlck1hcDsKLWNsYXNzIEludFBvaW50OwogY2xhc3MgSW50UmVjdDsK
LWNsYXNzIEludFNpemU7CiBjbGFzcyBLZXlmcmFtZVZhbHVlTGlzdDsKLWNsYXNzIExheW91dFNp
emU7Ci1jbGFzcyBMYXlvdXRQb2ludDsKIGNsYXNzIExpbmVhclRpbWluZ0Z1bmN0aW9uOwogY2xh
c3MgTm90aWZpY2F0aW9uOwogY2xhc3MgUGFzdGVib2FyZEN1c3RvbURhdGE7CkBAIC0xNzQsOSAr
MTc1LDcgQEAgc3RydWN0IFRvdWNoQWN0aW9uRGF0YTsKIHN0cnVjdCBWZWxvY2l0eURhdGE7CiBz
dHJ1Y3QgVmlld3BvcnRBdHRyaWJ1dGVzOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwotICAgIAot
dGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIFJlY3RFZGdlczsKLXVzaW5nIEZsb2F0Qm94RXh0ZW50
ID0gUmVjdEVkZ2VzPGZsb2F0PjsKKwogdXNpbmcgSURCS2V5UGF0aCA9IFZhcmlhbnQ8U3RyaW5n
LCBWZWN0b3I8U3RyaW5nPj47CiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTIyNywxMCArMjI2
LDI0IEBAIHN0cnVjdCBSZWNvcmQ7CiAKIG5hbWVzcGFjZSBJUEMgewogCi10ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybT4gewotICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJik7
Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2Vi
Q29yZTo6QWZmaW5lVHJhbnNmb3JtJik7Ci19OworREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RF
UihXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0pCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVS
KFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihX
ZWJDb3JlOjpGbG9hdFBvaW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3Jl
OjpGbG9hdFBvaW50M0QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6OkZs
b2F0UmVjdCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6RmxvYXRSb3Vu
ZGVkUmVjdCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6RmxvYXRTaXpl
KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpJbnRQb2ludCkKK0RFRklO
RV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6SW50U2l6ZSkKK0RFRklORV9TSU1QTEVf
QVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6TGF5b3V0U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1F
TlRfQ09ERVIoV2ViQ29yZTo6TGF5b3V0UG9pbnQpCisKKyNpZiBVU0UoQ0cpCitERUZJTkVfU0lN
UExFX0FSR1VNRU5UX0NPREVSKENHUmVjdCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIo
Q0dTaXplKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihDR1BvaW50KQorREVGSU5FX1NJ
TVBMRV9BUkdVTUVOVF9DT0RFUihDR0FmZmluZVRyYW5zZm9ybSkKKyNlbmRpZgogCiB0ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmc+IHsKICAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkF0dHJpYnV0ZWRT
dHJpbmcmKTsKQEAgLTI5OSwzOCArMzEyLDYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+IHsKICAgICBzdGF0aWMgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCi10ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0UG9pbnQ+IHsKLSAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsK
LSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJD
b3JlOjpGbG9hdFBvaW50Jik7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Rmxv
YXRQb2ludD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRQb2ludDNEPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50M0QmKTsKLSAgICBzdGF0aWMgV0FS
Tl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpGbG9hdFBvaW50
M0QmKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Rmxv
YXRSZWN0PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2Rl
KERlY29kZXImLCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpGbG9hdFJlY3Q+IGRlY29kZShEZWNvZGVyJik7Ci19OwotICAgIAotdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdEJveEV4dGVudD4gewotICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRl
bnQmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXIm
LCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFNpemU+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwotICAgIHN0YXRpYyBXQVJOX1VO
VVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwot
fTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFJvdW5k
ZWRSZWN0PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJvdW5kZWRSZWN0Jik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29s
IGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdCYpOwotfTsKLQogI2lm
IEVOQUJMRShNRVRBX1ZJRVdQT1JUKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cz4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNv
ZGVyJiwgY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmKTsKQEAgLTM0NSwzNSArMzI2
LDEyIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Vmlld3BvcnRB
dHRyaWJ1dGVzPiB7CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShE
ZWNvZGVyJiwgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJik7CiB9OwogCi10ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkludFBvaW50PiB7Ci0gICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwotICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkludFBv
aW50Jik7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+IGRlY29k
ZShEZWNvZGVyJik7Ci19OwotCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OkludFJlY3Q+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKTsKICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlKERlY29kZXImLCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6SW50UmVjdD4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKLXRlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW50U2l6ZT4gewotICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEVuY29kZXI+Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRl
Y29kZShEZWNvZGVyJiwgV2ViQ29yZTo6SW50U2l6ZSYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OkludFNpemU+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkxheW91dFNpemU+IHsKLSAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkxheW91dFNpemUmKTsKLSAgICBz
dGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpM
YXlvdXRTaXplJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OkxheW91dFBvaW50PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25z
dCBXZWJDb3JlOjpMYXlvdXRQb2ludCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkxheW91dFBvaW50Jik7Ci19OwotCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Okxlbmd0aD4gewogICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6TGVuZ3RoJik7CiAgICAgc3Rh
dGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6TGVu
Z3RoJik7CkBAIC00NTIsNiArNDEwLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpEcmFnRGF0YT4gewogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKKwog
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXVEY6Ok1hY2hTZW5kUmlnaHQ+IHsKICAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYp
OwogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgV1RGOjpNYWNoU2VuZFJpZ2h0JiYp
OwpAQCAtNDYzLDI2ICs0MjIsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OktleXByZXNzQ29tbWFuZD4gewogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OktleXByZXNzQ29tbWFuZD4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKLXRlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8Q0dQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShF
bmNvZGVyJiwgQ0dQb2ludCk7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q0dQb2ludD4gZGVj
b2RlKERlY29kZXImKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Q0dT
aXplPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBDR1NpemUpOwotICAgIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPENHU2l6ZT4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0KLXRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Q0dSZWN0PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBDR1JlY3QpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENHUmVjdD4g
ZGVjb2RlKERlY29kZXImKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8
Q0dBZmZpbmVUcmFuc2Zvcm0+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIENH
QWZmaW5lVHJhbnNmb3JtKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDR0FmZmluZVRyYW5z
Zm9ybT4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0jZW5kaWYKKyNlbmRpZiAvLyBQTEFURk9STShD
T0NPQSkKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlNlbGVjdGlvbkdlb21ldHJ5PiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQppbmRleCA4ZTRk
NWYxMzFkODJmMWRlZmUyNmQxNWFiZmVlMDY0YTNiOTg5MGY4Li42YTQzNDA2NzE0NjNkOTQ3MDcx
OTIzMTBiMWY3YmEwYmQwM2E3NmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
YWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KQEAgLTMyMSw3OSArMzIxLDYgQEAgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6S2V5cHJlc3NDb21tYW5kPjoKICAgICByZXR1cm4gV1RGTW92ZShjb21tYW5kKTsKIH0KIAot
dm9pZCBBcmd1bWVudENvZGVyPENHUmVjdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR1Jl
Y3QgcmVjdCkKLXsKLSAgICBlbmNvZGVyIDw8IHJlY3Qub3JpZ2luIDw8IHJlY3Quc2l6ZTsKLX0K
LQotc3RkOjpvcHRpb25hbDxDR1JlY3Q+IEFyZ3VtZW50Q29kZXI8Q0dSZWN0Pjo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCi17Ci0gICAgc3RkOjpvcHRpb25hbDxDR1BvaW50PiBvcmlnaW47Ci0g
ICAgZGVjb2RlciA+PiBvcmlnaW47Ci0gICAgaWYgKCFvcmlnaW4pCi0gICAgICAgIHJldHVybiB7
IH07Ci0KLSAgICBzdGQ6Om9wdGlvbmFsPENHU2l6ZT4gc2l6ZTsKLSAgICBkZWNvZGVyID4+IHNp
emU7Ci0gICAgaWYgKCFzaXplKQotICAgICAgICByZXR1cm4geyB9OwotCi0gICAgcmV0dXJuIENH
UmVjdCB7ICpvcmlnaW4sICpzaXplIH07Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxDR1NpemU+
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0dTaXplIHNpemUpCi17Ci0gICAgZW5jb2RlciA8
PCBzaXplLndpZHRoIDw8IHNpemUuaGVpZ2h0OwotfQotCi1zdGQ6Om9wdGlvbmFsPENHU2l6ZT4g
QXJndW1lbnRDb2RlcjxDR1NpemU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBD
R1NpemUgc2l6ZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUud2lkdGgpKQotICAgICAg
ICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZS5oZWlnaHQpKQotICAg
ICAgICByZXR1cm4geyB9OwotICAgIHJldHVybiBzaXplOwotfQotCi12b2lkIEFyZ3VtZW50Q29k
ZXI8Q0dQb2ludD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR1BvaW50IHBvaW50KQotewot
ICAgIGVuY29kZXIgPDwgcG9pbnQueCA8PCBwb2ludC55OwotfQotCi1zdGQ6Om9wdGlvbmFsPENH
UG9pbnQ+IEFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQot
ewotICAgIENHUG9pbnQgcG9pbnQ7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb2ludC54KSkK
LSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvaW50LnkpKQot
ICAgICAgICByZXR1cm4geyB9OwotICAgIHJldHVybiBwb2ludDsKLX0KLQotdm9pZCBBcmd1bWVu
dENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENHQWZm
aW5lVHJhbnNmb3JtIHRyYW5zZm9ybSkKLXsKLSAgICBlbmNvZGVyIDw8IHRyYW5zZm9ybS5hIDw8
IHRyYW5zZm9ybS5iIDw8IHRyYW5zZm9ybS5jIDw8IHRyYW5zZm9ybS5kIDw8IHRyYW5zZm9ybS50
eCA8PCB0cmFuc2Zvcm0udHk7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8Q0dBZmZpbmVUcmFuc2Zvcm0+
IEFyZ3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKLXsKLSAgICBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm07Ci0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZSh0cmFuc2Zvcm0uYSkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgaWYgKCFkZWNv
ZGVyLmRlY29kZSh0cmFuc2Zvcm0uYikpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgaWYgKCFk
ZWNvZGVyLmRlY29kZSh0cmFuc2Zvcm0uYykpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgaWYg
KCFkZWNvZGVyLmRlY29kZSh0cmFuc2Zvcm0uZCkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAg
aWYgKCFkZWNvZGVyLmRlY29kZSh0cmFuc2Zvcm0udHgpKQotICAgICAgICByZXR1cm4geyB9Owot
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLnR5KSkKLSAgICAgICAgcmV0dXJuIHsg
fTsKLSAgICByZXR1cm4gdHJhbnNmb3JtOwotfQotCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVS
SU5HKQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tI
YW5kbGVyPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRG
aWx0ZXJVbmJsb2NrSGFuZGxlciYgY29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439238</attachid>
            <date>2021-09-24 23:14:15 -0700</date>
            <delta_ts>2021-10-04 21:01:40 -0700</delta_ts>
            <desc>Fix WPE build</desc>
            <filename>bug-230714-20210924231414.patch</filename>
            <type>text/plain</type>
            <size>33908</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIwOTliNmRjMWFkYTgxMGFm
ZDIxMzM4NDE3MzRmMTJmNzhmZjZjYzkuLmY4ZjAzZmU4YWNkOTc0NWNiOGZlZDcyMDM3NzM5Y2E3
MmEzMmFhMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMjEtMDktMjQgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIFJlZmFj
dG9yIHNvbWUgSVBDIGFyZ3VtZW50IGVuY29kZXIgbG9naWMgdG8gd29yayB3aXRoIFN0cmVhbUNv
bm5lY3Rpb25FbmNvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA3MTQKKyAgICAgICAgcmRhcjovLzgzNDc3NTkxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byB1c2Ug
YElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXJgIHRvIGVuY29kZSBkaXNwbGF5IGxpc3QgaXRl
bXMgKGFuZCB0aGVpciBtZW1iZXJzKSBpbiBhbgorICAgICAgICBJUEMgc3RyZWFtLiBUaGlzIHBh
dGNoIGNvbXByaXNlcyB0d28gbWFpbiBzZXRzIG9mIGNoYW5nZXMgaW4gYEFyZ3VtZW50Q29kZXJz
YCwgYW5kIGBXZWJDb3JlQXJndW1lbnRDb2RlcnNgLiBTZWUKKyAgICAgICAgYmVsb3cgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmRlY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNb25vc3RhdGU+OjpkZWNvZGUpOiBEZWxldGVk
LgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2RlKToKKworICAgICAgICBNYW55IG9mIHRoZXNlIGBl
bmNvZGUoKWAgbWV0aG9kcyBhcmUgY3VycmVudGx5IG5vbi10ZW1wbGF0ZWQsIHdoaWNoIG1lYW5z
IHRoYXQgRW5jb2RlciBhbmQgRGVjb2RlciB1c2VkIGhlcmUKKyAgICAgICAgcmVmZXIgc29sZWx5
IHRvIElQQzo6RW5jb2RlciBhbmQgSVBDOjpEZWNvZGVyIChyZXNwZWN0aXZlbHkpIGluc3RlYWQg
b2Ygb3RoZXIgdHlwZXMgb2YgZW5jb2RlcnMgKG5hbWVseSwKKyAgICAgICAgU3RyZWFtQ29ubmVj
dGlvbkVuY29kZXIpLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxBZmZpbmVUcmFuc2Zvcm0+
OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UG9p
bnQ+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0
UG9pbnQ+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZs
b2F0UG9pbnQzRD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8RmxvYXRQb2ludDNEPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjplbmNvZGUpOiBEZWxldGVkLgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0U2l6ZT46OmRlY29kZSk6IERlbGV0ZWQu
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46
OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+
OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEludFBvaW50
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRTaXpl
Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRTaXpl
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxMYXlvdXRT
aXplPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxMYXlv
dXRTaXplPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxM
YXlvdXRQb2ludD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8TGF5b3V0UG9pbnQ+OjpkZWNvZGUpOiBEZWxldGVkLgorCisgICAgICAgIFRoZXNlIFdlYkNv
cmUgYXJndW1lbnQgY29kZXJzIGFyZSBhbHNvIGN1cnJlbnRseSBpbmNvbXBhdGlibGUgd2l0aCBT
dHJlYW1Db25uZWN0aW9uRW5jb2Rlciwgc2luY2UgdGhleSBhcmUgbm9uLQorICAgICAgICB0ZW1w
bGF0ZWQgKGFuZCB0aHVzIG9ubHkgd29yayB3aXRoIElQQzo6RW5jb2RlcikuIFNpbmNlIHRoZXNl
IGFyZSBhbGwgZW5jb2RhYmxlIGFzIFBPRCB0eXBlcywgd2UgY2FuIGp1c3QgdXNlCisgICAgICAg
IFNpbXBsZUFyZ3VtZW50Q29kZXIgZm9yIGFsbCBvZiB0aGVzZS4gV2UgYWxzbyBhZGQgYSBuZXcg
YERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJgIG1hY3JvIHRvIG1ha2UgdGhpcyBjb2RlIGEK
KyAgICAgICAgYml0IGVhc2llciB0byByZWFkLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzTWFjLm1tOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHUmVjdD46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dSZWN0Pjo6ZGVjb2RlKTog
RGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDR1NpemU+OjplbmNvZGUpOiBE
ZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHU2l6ZT46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHQWZmaW5lVHJh
bnNmb3JtPjo6ZGVjb2RlKTogRGVsZXRlZC4KKwogMjAyMS0wOS0yNCAgTGF1cm8gTW91cmEgIDxs
bW91cmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBOb24tdW5pZmllZCBwYXJ0aWFsIGJ1aWxkIGZp
eGVzIGxhdGUgU2VwdGVtYmVyIGVkaXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L0FyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBhMzIwNTUxODc5OGI3NGRjZWRiOGEwMTNmOWM5Yzk4
ODVhYWU2NjE2Li5lN2YyNzgwMzYyZGQyMDM3NDM0Y2ExY2IzOTBkZGU2ZWY3OTE1OTM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0zMCw2
ICszMCw3IEBACiAjaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmgiCiAj
aW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNvZGVyLmgiCiAjaW5jbHVkZSAiU3Ry
ZWFtQ29ubmVjdGlvbkVuY29kZXIuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCkBAIC0yMTgsNiArMjE5LDcgQEAgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgQXJn
dW1lbnRDb2RlcjxTSEExOjpEaWdlc3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU0gKIH0K
IAogI2lmIEhBVkUoQVVESVRfVE9LRU4pCisKIHZvaWQgQXJndW1lbnRDb2RlcjxhdWRpdF90b2tl
bl90Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IGF1ZGl0X3Rva2VuX3QmIGF1ZGl0
VG9rZW4pCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgo
YXVkaXRUb2tlbi52YWwpOyBpKyspCkBAIC0yMzIsMTUgKzIzNCw3IEBAIFdBUk5fVU5VU0VEX1JF
VFVSTiBib29sIEFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBhCiAgICAgfQogICAgIHJldHVybiB0cnVlOwogfQotI2VuZGlmCi0KLXZvaWQgQXJn
dW1lbnRDb2RlcjxNb25vc3RhdGU+OjplbmNvZGUoRW5jb2RlciYsIGNvbnN0IE1vbm9zdGF0ZSYp
Ci17Ci19CiAKLVdBUk5fVU5VU0VEX1JFVFVSTiBzdGQ6Om9wdGlvbmFsPE1vbm9zdGF0ZT4gQXJn
dW1lbnRDb2RlcjxNb25vc3RhdGU+OjpkZWNvZGUoRGVjb2RlciYpCi17Ci0gICAgcmV0dXJuIE1v
bm9zdGF0ZSB7IH07Ci19CisjZW5kaWYgLy8gSEFWRShBVURJVF9UT0tFTikKIAogfSAvLyBuYW1l
c3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVu
dENvZGVycy5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaApp
bmRleCBhOGM4OTNmMGM1MjQwYTg4ODljMzQ1MTRmOWZiMWVmZWUwZDYyNzBhLi5iNzliNTU4YmY0
MmQzNjUzNjk5OWVkYzEzMTljNzYwYjZkNzk0YWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKQEAgLTQwLDYgKzQwLDIyIEBACiAKIG5hbWVzcGFjZSBJ
UEMgewogCisjZGVmaW5lIERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoVHlwZSkgXAorICAg
IHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8VHlwZT4geyBcCisgICAgICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEVuY29kZXI+IHZvaWQgc3RhdGljIGVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBUeXBlJiB2YWx1ZSkgeyBTaW1wbGVBcmd1bWVudENvZGVyPFR5cGU+OjplbmNvZGUo
ZW5jb2RlciwgdmFsdWUpOyB9IFwKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4g
Ym9vbCBzdGF0aWMgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFR5cGUmIHZhbHVlKSB7IHJldHVy
biBTaW1wbGVBcmd1bWVudENvZGVyPFR5cGU+OjpkZWNvZGUoZGVjb2RlciwgdmFsdWUpOyB9IFwK
KyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8
VHlwZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpIFwKKyAgICAgICAgeyBcCisgICAgICAgICAg
ICBUeXBlIHZhbHVlOyBcCisgICAgICAgICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCB2YWx1ZSkp
IFwKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OyBcCisgICAgICAgICAgICBy
ZXR1cm4gdmFsdWU7IFwKKyAgICAgICAgfSBcCisgICAgfTsgXAorICAgIHRlbXBsYXRlIHZvaWQg
QXJndW1lbnRDb2RlcjxUeXBlPjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBUeXBl
Jik7IFwKKyAgICB0ZW1wbGF0ZSBib29sIEFyZ3VtZW50Q29kZXI8VHlwZT46OmRlY29kZTxEZWNv
ZGVyPihEZWNvZGVyJiwgVHlwZSYpOyBcCisgICAgdGVtcGxhdGUgc3RkOjpvcHRpb25hbDxUeXBl
PiBBcmd1bWVudENvZGVyPFR5cGU+OjpkZWNvZGU8RGVjb2Rlcj4oRGVjb2RlciYpOworCiAvLyBB
biBhcmd1bWVudCBjb2RlciB3b3JrcyBvbiBQT0QgdHlwZXMKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
IHN0cnVjdCBTaW1wbGVBcmd1bWVudENvZGVyIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNv
ZGVyPgpAQCAtNDgsNiArNjQsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgU2ltcGxl
QXJndW1lbnRDb2RlciB7CiAgICAgICAgIGVuY29kZXIuZW5jb2RlRml4ZWRMZW5ndGhEYXRhKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KCZ0KSwgc2l6ZW9mKFQpLCBhbGlnbm9mKFQp
KTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBX
QVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVCYgdCkKICAg
ICB7CiAgICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVy
cHJldF9jYXN0PHVpbnQ4X3QqPigmdCksIHNpemVvZihUKSwgYWxpZ25vZihUKSk7CkBAIC0xMDcs
MTIgKzEyNCwxNCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxB
cnJheVJlZmVyZW5jZTxULCBhcnJheVJlZmVyZW5jZUR5bmFtaQogfTsKIAogdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8T3B0aW9uU2V0PFQ+PiB7CisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgT3B0aW9uU2V0PFQ+JiBvcHRpb25TZXQpCiAgICAgewogICAgICAgICBBU1NF
UlQoV1RGOjppc1ZhbGlkT3B0aW9uU2V0KG9wdGlvblNldCkpOwogICAgICAgICBlbmNvZGVyIDw8
IG9wdGlvblNldC50b1JhdygpOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29k
ZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBPcHRpb25TZXQ8VD4mIG9wdGlvblNldCkKICAgICB7CiAgICAgICAgIHR5cGVuYW1l
IE9wdGlvblNldDxUPjo6U3RvcmFnZVR5cGUgdmFsdWU7CkBAIC0xMjQsNiArMTQzLDcgQEAgdGVt
cGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8T3B0aW9uU2V0PFQ+PiB7CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29k
ZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8T3B0aW9uU2V0PFQ+PiBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgT3B0aW9u
U2V0PFQ+OjpTdG9yYWdlVHlwZT4gdmFsdWU7CkBAIC0xODcsNiArMjA3LDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpvcHRpb25hbDxUPj4gewogfTsK
IAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7Cisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgQm94PFQ+JiBib3gpCiAgICAgewogICAgICAgICBpZiAoIWJv
eCkgewpAQCAtMTk4LDYgKzIxOSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1
bWVudENvZGVyPEJveDxUPj4gewogICAgICAgICBlbmNvZGVyIDw8ICpib3guZ2V0KCk7CiAgICAg
fQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVT
RURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEJveDxUPiYgYm94KQogICAg
IHsKICAgICAgICAgYm9vbCBpc0VuZ2FnZWQ7CkBAIC0yMTcsNiArMjM5LDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8Qm94PFQ+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7
CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gaXNFbmdhZ2VkOwpAQCAtMjM1LDExICsyNTgs
MTMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7
CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxzdGQ6OnBhaXI8VCwgVT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgog
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBzdGQ6OnBhaXI8
VCwgVT4mIHBhaXIpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHBhaXIuZmlyc3QgPDwgcGFp
ci5zZWNvbmQ7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBz
dGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIHN0
ZDo6cGFpcjxULCBVPiYgcGFpcikKICAgICB7CiAgICAgICAgIFQgZmlyc3Q7CkBAIC0yNTUsNiAr
MjgwLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8c3RkOjpwYWlyPFQsIFU+PiB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
c3RkOjpwYWlyPFQsIFU+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAg
IHN0ZDo6b3B0aW9uYWw8VD4gZmlyc3Q7CkBAIC0zNjUsMTEgKzM5MSwxMyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZS4uLiBFbGVtZW50cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjp0dXBsZTxFbGVt
ZW50cy4uLj4+IHsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEtleVR5cGUsIHR5cGVuYW1lIFZh
bHVlVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpLZXlWYWx1ZVBhaXI8S2V5VHlwZSwg
VmFsdWVUeXBlPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6S2V5VmFsdWVQYWlyPEtl
eVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHBhaXIu
a2V5IDw8IHBhaXIudmFsdWU7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rl
cj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRl
Y29kZXIsIFdURjo6S2V5VmFsdWVQYWlyPEtleVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAgICAg
ewogICAgICAgICBLZXlUeXBlIGtleTsKQEAgLTM5Nyw2ICs0MjUsNyBAQCB0ZW1wbGF0ZTx0eXBl
bmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlciwg
c2l6ZV90IG1pbgogICAgICAgICAgICAgZW5jb2RlciA8PCB2ZWN0b3JbaV07CiAgICAgfQogCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVU
VVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0
eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4mIHZlY3RvcikKICAgICB7CiAgICAgICAg
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIs
IG1pbkNhcGFjaXR5Pj4gb3B0aW9uYWw7CkBAIC00MzYsNiArNDY1LDcgQEAgdGVtcGxhdGU8dHlw
ZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIs
IHNpemVfdCBtaW4KICAgICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRl
cnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4odmVjdG9yLmRhdGEoKSksIHZlY3Rvci5zaXplKCkg
KiBzaXplb2YoVCksIGFsaWdub2YoVCkpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRs
ZXIsIG1pbkNhcGFjaXR5PiYgdmVjdG9yKQogICAgIHsKICAgICAgICAgdWludDY0X3QgZGVjb2Rl
ZFNpemU7CkBAIC00NTAsNyArNDgwLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlu
bGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KICAgICAg
ICAgLy8gU2luY2Ugd2Uga25vdyB0aGUgdG90YWwgc2l6ZSBvZiB0aGUgZWxlbWVudHMsIHdlIGNh
biBhbGxvY2F0ZSB0aGUgdmVjdG9yIGluCiAgICAgICAgIC8vIG9uZSBmZWxsIHN3b29wLiBCZWZv
cmUgYWxsb2NhdGluZyB3ZSBtdXN0IGhvd2V2ZXIgbWFrZSBzdXJlIHRoYXQgdGhlIGRlY29kZXIg
YnVmZmVyCiAgICAgICAgIC8vIGlzIGJpZyBlbm91Z2guCi0gICAgICAgIGlmICghZGVjb2Rlci5i
dWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluPFQ+KHNpemUpKQorICAgICAgICBpZiAoIWRlY29k
ZXIudGVtcGxhdGUgYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbjxUPihzaXplKSkKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHks
IE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+IHRlbXA7CkBAIC00OTcsNiArNTI3LDcgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVy
Zmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5h
bWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5
cGVuYW1lIE1hcHBlZFRyYWl0c0FyZywgdHlwZW5hbWUgSGFzaFRhYmxlVHJhaXRzPiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFp
dHNBcmcsIE1hcHBlZFRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPj4gewogICAgIHR5cGVkZWYg
SGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBwZWRU
cmFpdHNBcmcsIEhhc2hUYWJsZVRyYWl0cz4gSGFzaE1hcFR5cGU7CiAKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBIYXNoTWFwVHlwZSYgaGFzaE1hcCkKICAgICB7CiAgICAgICAgIGVuY29kZXIgPDwg
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KGhhc2hNYXAuc2l6ZSgpKTsKQEAgLTUwNCw2ICs1MzUsNyBA
QCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUg
SGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogICAgICAgICAgICAgZW5jb2RlciA8PCAqaXQ7CiAg
ICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpv
cHRpb25hbDxIYXNoTWFwVHlwZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewogICAg
ICAgICB1aW50MzJfdCBoYXNoTWFwU2l6ZTsKQEAgLTUzNCw2ICs1NjYsNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlw
ZW5hbWUgS2V5VHJhaQogICAgICAgICByZXR1cm4gaGFzaE1hcDsKICAgICB9CiAKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9v
bCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSGFzaE1hcFR5cGUmIGhhc2hNYXApCiAgICAgewog
ICAgICAgICBzdGQ6Om9wdGlvbmFsPEhhc2hNYXBUeXBlPiB0ZW1wSGFzaE1hcDsKQEAgLTU0OCw2
ICs1ODEsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywg
dHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogdGVtcGxhdGU8dHlwZW5hbWUgS2V5
QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1lIEhh
c2hUYWJsZVRyYWl0cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaFNldDxLZXlBcmcsIEhhc2hB
cmcsIEtleVRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPj4gewogICAgIHR5cGVkZWYgSGFzaFNl
dDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPiBIYXNoU2V0
VHlwZTsKIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEhhc2hTZXRUeXBlJiBoYXNoU2V0KQogICAg
IHsKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaGFzaFNldC5zaXpl
KCkpOwpAQCAtNTU1LDYgKzU4OSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5h
bWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNoCiAgICAgICAg
ICAgICBlbmNvZGVyIDw8ICppdDsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNv
ZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlciwgSGFzaFNldFR5cGUmIGhhc2hTZXQpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlv
bmFsPEhhc2hTZXRUeXBlPiB0ZW1wSGFzaFNldDsKQEAgLTU2Niw2ICs2MDEsNyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0Fy
ZywgdHlwZW5hbWUgSGFzaAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEhhc2hTZXRU
eXBlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHVpbnQ2NF90IGhh
c2hTZXRTaXplOwpAQCAtNTk1LDYgKzYzMSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywg
dHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNoCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRy
YWl0c0FyZz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaENvdW50ZWRTZXQ8S2V5QXJnLCBIYXNo
QXJnLCBLZXlUcmFpdHNBcmc+PiB7CiAgICAgdHlwZWRlZiBIYXNoQ291bnRlZFNldDxLZXlBcmcs
IEhhc2hBcmcsIEtleVRyYWl0c0FyZz4gSGFzaENvdW50ZWRTZXRUeXBlOwogICAgIAorICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENvdW50ZWRTZXQpCiAgICAg
ewogICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihoYXNoQ291bnRlZFNl
dC5zaXplKCkpOwpAQCAtNjA1LDYgKzY0Miw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywg
dHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnPiBzdHJ1Y3QgQXJndW1lCiAg
ICAgICAgIH0KICAgICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAg
ICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENvdW50ZWRTZXQpCiAgICAgewogICAgICAgICB1aW50
NjRfdCBoYXNoQ291bnRlZFNldFNpemU7CkBAIC02MzYsNiArNjc0LDcgQEAgdGVtcGxhdGU8dHlw
ZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmc+IHN0
cnVjdCBBcmd1bWUKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUg
RXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWYWx1ZVR5cGUsIEVycm9y
VHlwZT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBFeHBlY3RlZDxWYWx1ZVR5cGUsIEVycm9y
VHlwZT4mIGV4cGVjdGVkKQogICAgIHsKICAgICAgICAgaWYgKCFleHBlY3RlZC5oYXNfdmFsdWUo
KSkgewpAQCAtNjQ3LDYgKzY4Niw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlw
ZW5hbWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWCiAgICAgICAg
IGVuY29kZXIgPDwgZXhwZWN0ZWQudmFsdWUoKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4cGVjdGVkPFZhbHVlVHlw
ZSwgRXJyb3JUeXBlPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAgICBz
dGQ6Om9wdGlvbmFsPGJvb2w+IGhhc1ZhbHVlOwpAQCAtNjczLDYgKzcxMyw3IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxFeHBlY3RlZDxWCiAKIHRlbXBsYXRlPHNpemVfdCBpbmRleCwgdHlwZW5hbWUuLi4gVHlw
ZXM+CiBzdHJ1Y3QgVmFyaWFudENvZGVyIHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
PgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXVEY6OlZh
cmlhbnQ8VHlwZXMuLi4+JiB2YXJpYW50LCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgaWYg
KGkgPT0gaW5kZXgpIHsKQEAgLTY4Miw2ICs3MjMsNyBAQCBzdHJ1Y3QgVmFyaWFudENvZGVyIHsK
ICAgICAgICAgVmFyaWFudENvZGVyPGluZGV4IC0gMSwgVHlwZXMuLi4+OjplbmNvZGUoZW5jb2Rl
ciwgdmFyaWFudCwgaSk7CiAgICAgfQogICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29k
ZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIHVuc2lnbmVkIGkpCiAgICAgewogICAgICAgICBpZiAoaSA9
PSBpbmRleCkgewpAQCAtNjk3LDEyICs3MzksMTQgQEAgc3RydWN0IFZhcmlhbnRDb2RlciB7CiAK
IHRlbXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPgogc3RydWN0IFZhcmlhbnRDb2RlcjwwLCBUeXBl
cy4uLj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6VmFyaWFudDxUeXBlcy4uLj4mIHZh
cmlhbnQsIHVuc2lnbmVkIGkpCiAgICAgewogICAgICAgICBBU1NFUlRfVU5VU0VEKGksICFpKTsK
ICAgICAgICAgZW5jb2RlciA8PCBXVEY6OmdldDwwPih2YXJpYW50KTsKICAgICB9CiAgICAgCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxX
VEY6OlZhcmlhbnQ8VHlwZXMuLi4+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgdW5zaWduZWQg
aSkKICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQoaSwgIWkpOwpAQCAtNzE1LDYgKzc1OSw3
IEBAIHN0cnVjdCBWYXJpYW50Q29kZXI8MCwgVHlwZXMuLi4+IHsKIH07CiAKIHRlbXBsYXRlPHR5
cGVuYW1lLi4uIFR5cGVzPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXVEY6OlZhcmlhbnQ8VHlwZXMu
Li4+PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV1RGOjpWYXJpYW50PFR5cGVzLi4uPiYgdmFy
aWFudCkKICAgICB7CiAgICAgICAgIHVuc2lnbmVkIGkgPSB2YXJpYW50LmluZGV4KCk7CkBAIC03
MjIsNiArNzY3LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gVHlwZXM+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IHsKICAgICAgICAgVmFyaWFudENvZGVyPHNp
emVvZi4uLihUeXBlcykgLSAxLCBUeXBlcy4uLj46OmVuY29kZShlbmNvZGVyLCB2YXJpYW50LCBp
KTsKICAgICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0
aWMgc3RkOjpvcHRpb25hbDxXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+PiBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGk7CkBAIC03
NzMsOCArODE5LDE0IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8YXVkaXRfdG9r
ZW5fdD4gewogI2VuZGlmCiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8TW9ub3N0
YXRlPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBNb25vc3RhdGUm
KTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxNb25vc3RhdGU+IGRlY29kZShEZWNvZGVyJik7
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYsIGNvbnN0IE1vbm9zdGF0ZSYpIHsgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
RGVjb2Rlcj4KKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxNb25vc3RhdGU+IGRlY29kZShEZWNv
ZGVyJikKKyAgICB7CisgICAgICAgIHJldHVybiBNb25vc3RhdGUgeyB9OworICAgIH0KIH07CiAK
IH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHAKaW5kZXggZmFiY2VmNmMyMTI1MjNlZjAxY2M4OWE0OTg0NjAwNmQ4ZWEy
ZGY5My4uOWIwZjA1ZmEyMjZkNDI3MjY4MDFkNjVjMGM1OGViNDFiZTcwNGY3ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC01OSw2ICs1
OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9JREJHZXRSZXN1bHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9KU0RPTUV4Y2VwdGlvbkhh
bmRsaW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MZW5ndGguaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0xlbmd0aEJveC5oPgpAQCAtMjMxLDE2ICsyMzIsNiBAQCBzdGF0aWMgV0FSTl9VTlVTRURfUkVU
VVJOIGJvb2wgZGVjb2RlVHlwZXNBbmREYXRhKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxTdHJp
bgogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNm
b3JtPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgYWZm
aW5lVHJhbnNmb3JtKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3Jt
Pjo6ZW5jb2RlKGVuY29kZXIsIGFmZmluZVRyYW5zZm9ybSk7Ci19Ci0KLWJvb2wgQXJndW1lbnRD
b2RlcjxBZmZpbmVUcmFuc2Zvcm0+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgQWZmaW5lVHJh
bnNmb3JtJiBhZmZpbmVUcmFuc2Zvcm0pCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29k
ZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKGRlY29kZXIsIGFmZmluZVRyYW5zZm9ybSk7Ci19
Ci0KIHZvaWQgQXJndW1lbnRDb2RlcjxDYWNoZVF1ZXJ5T3B0aW9ucz46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBDYWNoZVF1ZXJ5T3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBlbmNv
ZGVyIDw8IG9wdGlvbnMuaWdub3JlU2VhcmNoOwpAQCAtNjE3LDg2ICs2MDgsNiBAQCBib29sIEFy
Z3VtZW50Q29kZXI8U3ByaW5nVGltaW5nRnVuY3Rpb24+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgU3ByaW5nVGltaW5nRgogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29k
ZXI8RmxvYXRQb2ludD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFBvaW50
JiBmbG9hdFBvaW50KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmVu
Y29kZShlbmNvZGVyLCBmbG9hdFBvaW50KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0
UG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRQb2ludCYgZmxvYXRQb2ludCkK
LXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2RlKGRl
Y29kZXIsIGZsb2F0UG9pbnQpOwotfQotCi1zdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+IEFyZ3Vt
ZW50Q29kZXI8RmxvYXRQb2ludD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIEZs
b2F0UG9pbnQgZmxvYXRQb2ludDsKLSAgICBpZiAoIVNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQ
b2ludD46OmRlY29kZShkZWNvZGVyLCBmbG9hdFBvaW50KSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKLSAgICByZXR1cm4gZmxvYXRQb2ludDsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVy
PEZsb2F0UG9pbnQzRD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFBvaW50
M0QmIGZsb2F0UG9pbnQpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+
OjplbmNvZGUoZW5jb2RlciwgZmxvYXRQb2ludCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxG
bG9hdFBvaW50M0Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRQb2ludDNEJiBmbG9h
dFBvaW50KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46
OmRlY29kZShkZWNvZGVyLCBmbG9hdFBvaW50KTsKLX0KLQotCi12b2lkIEFyZ3VtZW50Q29kZXI8
RmxvYXRSZWN0Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UmVjdCYgZmxv
YXRSZWN0KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZW5jb2RlKGVu
Y29kZXIsIGZsb2F0UmVjdCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRSZWN0JiBmbG9hdFJlY3QpCi17Ci0gICAgcmV0
dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0
UmVjdCk7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiBBcmd1bWVudENvZGVyPEZsb2F0
UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIEZsb2F0UmVjdCBmbG9hdFJl
Y3Q7Ci0gICAgaWYgKCFTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZShkZWNv
ZGVyLCBmbG9hdFJlY3QpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVy
biBmbG9hdFJlY3Q7Ci19Ci0KLQotdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0Qm94RXh0ZW50JiBmbG9hdEJveEV4
dGVudCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZW5jb2Rl
KGVuY29kZXIsIGZsb2F0Qm94RXh0ZW50KTsKLX0KLSAgICAKLWJvb2wgQXJndW1lbnRDb2RlcjxG
bG9hdEJveEV4dGVudD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdEJveEV4dGVudCYg
ZmxvYXRCb3hFeHRlbnQpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRC
b3hFeHRlbnQ+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRCb3hFeHRlbnQpOwotfQotICAgIAotCi12
b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IEZsb2F0U2l6ZSYgZmxvYXRTaXplKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8Rmxv
YXRTaXplPjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0U2l6ZSk7Ci19Ci0KLWJvb2wgQXJndW1lbnRD
b2RlcjxGbG9hdFNpemU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRTaXplJiBmbG9h
dFNpemUpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZGVj
b2RlKGRlY29kZXIsIGZsb2F0U2l6ZSk7Ci19Ci0KLQotdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0
Um91bmRlZFJlY3Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRSb3VuZGVk
UmVjdCYgcm91bmRlZFJlY3QpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFJvdW5k
ZWRSZWN0Pjo6ZW5jb2RlKGVuY29kZXIsIHJvdW5kZWRSZWN0KTsKLX0KLQotYm9vbCBBcmd1bWVu
dENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRS
b3VuZGVkUmVjdCYgcm91bmRlZFJlY3QpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29k
ZXI8RmxvYXRSb3VuZGVkUmVjdD46OmRlY29kZShkZWNvZGVyLCByb3VuZGVkUmVjdCk7Ci19Ci0K
ICNpZiBFTkFCTEUoTUVUQV9WSUVXUE9SVCkKIHZvaWQgQXJndW1lbnRDb2RlcjxWaWV3cG9ydEFy
Z3VtZW50cz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBWaWV3cG9ydEFyZ3VtZW50
cyYgdmlld3BvcnRBcmd1bWVudHMpCiB7CkBAIC03MjgsMjQgKzYzOSw2IEBAIGJvb2wgQXJndW1l
bnRDb2RlcjxWaWV3cG9ydEF0dHJpYnV0ZXM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVmll
d3BvcnRBdHRyaWJ1CiAgICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8Vmlld3BvcnRBdHRy
aWJ1dGVzPjo6ZGVjb2RlKGRlY29kZXIsIHZpZXdwb3J0QXR0cmlidXRlcyk7CiB9CiAKLXZvaWQg
QXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJ
bnRQb2ludCYgaW50UG9pbnQpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxJbnRQb2ludD46
OmVuY29kZShlbmNvZGVyLCBpbnRQb2ludCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxJbnRQ
b2ludD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBJbnRQb2ludCYgaW50UG9pbnQpCi17Ci0g
ICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoZGVjb2Rlciwg
aW50UG9pbnQpOwotfQotCi1zdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiBBcmd1bWVu
dENvZGVyPEludFBvaW50Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgSW50UG9p
bnQgaW50UG9pbnQ7Ci0gICAgaWYgKCFTaW1wbGVBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZGVj
b2RlKGRlY29kZXIsIGludFBvaW50KSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAg
ICByZXR1cm4gaW50UG9pbnQ7Ci19Ci0KIHZvaWQgQXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEludFJlY3QmIGludFJlY3QpCiB7CiAgICAgU2lt
cGxlQXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZW5jb2RlKGVuY29kZXIsIGludFJlY3QpOwpAQCAt
NzY0LDUxICs2NTcsNiBAQCBzdGQ6Om9wdGlvbmFsPEludFJlY3Q+IEFyZ3VtZW50Q29kZXI8SW50
UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHJldHVybiByZWN0OwogfQogCi10
ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgotdm9pZCBBcmd1bWVudENvZGVyPEludFNpemU+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgSW50U2l6ZSYgaW50U2l6ZSkKLXsKLSAgICBT
aW1wbGVBcmd1bWVudENvZGVyPEludFNpemU+OjplbmNvZGUoZW5jb2RlciwgaW50U2l6ZSk7Ci19
Ci0KLXRlbXBsYXRlCi12b2lkIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZTxFbmNvZGVy
PihFbmNvZGVyJiwgY29uc3QgSW50U2l6ZSYpOwotdGVtcGxhdGUKLXZvaWQgQXJndW1lbnRDb2Rl
cjxJbnRTaXplPjo6ZW5jb2RlPFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyPihTdHJlYW1Db25uZWN0
aW9uRW5jb2RlciYsIGNvbnN0IEludFNpemUmKTsKLQotYm9vbCBBcmd1bWVudENvZGVyPEludFNp
emU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSW50U2l6ZSYgaW50U2l6ZSkKLXsKLSAgICBy
ZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZGVjb2RlKGRlY29kZXIsIGludFNp
emUpOwotfQotCi1zdGQ6Om9wdGlvbmFsPEludFNpemU+IEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIEludFNpemUgaW50U2l6ZTsKLSAgICBp
ZiAoIVNpbXBsZUFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZShkZWNvZGVyLCBpbnRTaXpl
KSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICByZXR1cm4gaW50U2l6ZTsKLX0K
LQotdm9pZCBBcmd1bWVudENvZGVyPExheW91dFNpemU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgTGF5b3V0U2l6ZSYgbGF5b3V0U2l6ZSkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENv
ZGVyPExheW91dFNpemU+OjplbmNvZGUoZW5jb2RlciwgbGF5b3V0U2l6ZSk7Ci19Ci0KLWJvb2wg
QXJndW1lbnRDb2RlcjxMYXlvdXRTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIExheW91
dFNpemUmIGxheW91dFNpemUpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5
b3V0U2l6ZT46OmRlY29kZShkZWNvZGVyLCBsYXlvdXRTaXplKTsKLX0KLQotCi12b2lkIEFyZ3Vt
ZW50Q29kZXI8TGF5b3V0UG9pbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTGF5
b3V0UG9pbnQmIGxheW91dFBvaW50KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0
UG9pbnQ+OjplbmNvZGUoZW5jb2RlciwgbGF5b3V0UG9pbnQpOwotfQotCi1ib29sIEFyZ3VtZW50
Q29kZXI8TGF5b3V0UG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTGF5b3V0UG9pbnQm
IGxheW91dFBvaW50KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPExheW91dFBv
aW50Pjo6ZGVjb2RlKGRlY29kZXIsIGxheW91dFBvaW50KTsKLX0KLQogdm9pZCBBcmd1bWVudENv
ZGVyPFJlY2VudFNlYXJjaD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWNlbnRT
ZWFyY2gmIHJlY2VudFNlYXJjaCkKIHsKICAgICBlbmNvZGVyIDw8IHJlY2VudFNlYXJjaC5zdHJp
bmcgPDwgcmVjZW50U2VhcmNoLnRpbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oCmluZGV4IDU0NTk3NWEwZGYxNTAxYmU4ODEzNTQ5YTkwMWFkZDA3MWJl
MDFmOTYuLjY1NTk3NTA1YWIzMzk4Yjk4N2QwYjc1YTMzN2Y1NDJkMjE0NDg5NDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0yNiwxMiArMjYs
MjMgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL0FmZmluZVRyYW5zZm9ybS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0b3Bs
YXlFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3JTcGFjZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0
UG9pbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQzRC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvRmxvYXRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJvdW5kZWRSZWN0Lmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFNpemUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1l
TG9hZGVyVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0luZGV4ZWREQi5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvSW5wdXRNb2RlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRQb2ludC5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvSW50U2l6ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGF5b3V0UG9pbnQu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xheW91dFNpemUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xl
bmd0aEJveC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTZWxlY3Rpb25PcHRpb24uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL05hdGl2ZUltYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3Jr
TG9hZE1ldHJpY3MuaD4KQEAgLTk2LDcgKzEwNyw2IEBAIHR5cGVkZWYgc3RydWN0IF9fQ1ZCdWZm
ZXIqIENWUGl4ZWxCdWZmZXJSZWY7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFic29s
dXRlUG9zaXRpb25Db25zdHJhaW50czsKLWNsYXNzIEFmZmluZVRyYW5zZm9ybTsKIGNsYXNzIEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOwogY2xhc3MgQmxvYlBhcnQ7CiBjbGFzcyBDZXJ0aWZpY2F0
ZUluZm87CkBAIC0xMDksMjEgKzExOSwxMiBAQCBjbGFzcyBEcmFnRGF0YTsKIGNsYXNzIEZpbGU7
CiBjbGFzcyBGaWx0ZXJPcGVyYXRpb247CiBjbGFzcyBGaWx0ZXJPcGVyYXRpb25zOwotY2xhc3Mg
RmxvYXRQb2ludDsKLWNsYXNzIEZsb2F0UG9pbnQzRDsKLWNsYXNzIEZsb2F0UmVjdDsKLWNsYXNz
IEZsb2F0Um91bmRlZFJlY3Q7Ci1jbGFzcyBGbG9hdFNpemU7CiBjbGFzcyBGaXhlZFBvc2l0aW9u
Vmlld3BvcnRDb25zdHJhaW50czsKIGNsYXNzIEZvbnQ7CiBjbGFzcyBGb250UGxhdGZvcm1EYXRh
OwogY2xhc3MgSFRUUEhlYWRlck1hcDsKLWNsYXNzIEludFBvaW50OwogY2xhc3MgSW50UmVjdDsK
LWNsYXNzIEludFNpemU7CiBjbGFzcyBLZXlmcmFtZVZhbHVlTGlzdDsKLWNsYXNzIExheW91dFNp
emU7Ci1jbGFzcyBMYXlvdXRQb2ludDsKIGNsYXNzIExpbmVhclRpbWluZ0Z1bmN0aW9uOwogY2xh
c3MgTm90aWZpY2F0aW9uOwogY2xhc3MgUGFzdGVib2FyZEN1c3RvbURhdGE7CkBAIC0xNzQsOSAr
MTc1LDcgQEAgc3RydWN0IFRvdWNoQWN0aW9uRGF0YTsKIHN0cnVjdCBWZWxvY2l0eURhdGE7CiBz
dHJ1Y3QgVmlld3BvcnRBdHRyaWJ1dGVzOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwotICAgIAot
dGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIFJlY3RFZGdlczsKLXVzaW5nIEZsb2F0Qm94RXh0ZW50
ID0gUmVjdEVkZ2VzPGZsb2F0PjsKKwogdXNpbmcgSURCS2V5UGF0aCA9IFZhcmlhbnQ8U3RyaW5n
LCBWZWN0b3I8U3RyaW5nPj47CiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTIyNywxMCArMjI2
LDI0IEBAIHN0cnVjdCBSZWNvcmQ7CiAKIG5hbWVzcGFjZSBJUEMgewogCi10ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybT4gewotICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJik7
Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2Vi
Q29yZTo6QWZmaW5lVHJhbnNmb3JtJik7Ci19OworREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RF
UihXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0pCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVS
KFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihX
ZWJDb3JlOjpGbG9hdFBvaW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3Jl
OjpGbG9hdFBvaW50M0QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6OkZs
b2F0UmVjdCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6RmxvYXRSb3Vu
ZGVkUmVjdCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6RmxvYXRTaXpl
KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpJbnRQb2ludCkKK0RFRklO
RV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6SW50U2l6ZSkKK0RFRklORV9TSU1QTEVf
QVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6TGF5b3V0U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1F
TlRfQ09ERVIoV2ViQ29yZTo6TGF5b3V0UG9pbnQpCisKKyNpZiBVU0UoQ0cpCitERUZJTkVfU0lN
UExFX0FSR1VNRU5UX0NPREVSKENHUmVjdCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIo
Q0dTaXplKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihDR1BvaW50KQorREVGSU5FX1NJ
TVBMRV9BUkdVTUVOVF9DT0RFUihDR0FmZmluZVRyYW5zZm9ybSkKKyNlbmRpZgogCiB0ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmc+IHsKICAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkF0dHJpYnV0ZWRT
dHJpbmcmKTsKQEAgLTI5OSwzOCArMzEyLDYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+IHsKICAgICBzdGF0aWMgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCi10ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0UG9pbnQ+IHsKLSAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsK
LSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJD
b3JlOjpGbG9hdFBvaW50Jik7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Rmxv
YXRQb2ludD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRQb2ludDNEPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50M0QmKTsKLSAgICBzdGF0aWMgV0FS
Tl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpGbG9hdFBvaW50
M0QmKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Rmxv
YXRSZWN0PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2Rl
KERlY29kZXImLCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpGbG9hdFJlY3Q+IGRlY29kZShEZWNvZGVyJik7Ci19OwotICAgIAotdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdEJveEV4dGVudD4gewotICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRl
bnQmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXIm
LCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFNpemU+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwotICAgIHN0YXRpYyBXQVJOX1VO
VVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwot
fTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFJvdW5k
ZWRSZWN0PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJvdW5kZWRSZWN0Jik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29s
IGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdCYpOwotfTsKLQogI2lm
IEVOQUJMRShNRVRBX1ZJRVdQT1JUKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cz4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNv
ZGVyJiwgY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmKTsKQEAgLTM0NSwzNSArMzI2
LDEyIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Vmlld3BvcnRB
dHRyaWJ1dGVzPiB7CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShE
ZWNvZGVyJiwgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJik7CiB9OwogCi10ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkludFBvaW50PiB7Ci0gICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwotICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkludFBv
aW50Jik7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+IGRlY29k
ZShEZWNvZGVyJik7Ci19OwotCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OkludFJlY3Q+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKTsKICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlKERlY29kZXImLCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6SW50UmVjdD4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKLXRlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW50U2l6ZT4gewotICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEVuY29kZXI+Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRl
Y29kZShEZWNvZGVyJiwgV2ViQ29yZTo6SW50U2l6ZSYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OkludFNpemU+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkxheW91dFNpemU+IHsKLSAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkxheW91dFNpemUmKTsKLSAgICBz
dGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpM
YXlvdXRTaXplJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OkxheW91dFBvaW50PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25z
dCBXZWJDb3JlOjpMYXlvdXRQb2ludCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkxheW91dFBvaW50Jik7Ci19OwotCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Okxlbmd0aD4gewogICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6TGVuZ3RoJik7CiAgICAgc3Rh
dGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6TGVu
Z3RoJik7CkBAIC00NTIsNiArNDEwLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpEcmFnRGF0YT4gewogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKKwog
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXVEY6Ok1hY2hTZW5kUmlnaHQ+IHsKICAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYp
OwogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgV1RGOjpNYWNoU2VuZFJpZ2h0JiYp
OwpAQCAtNDYzLDI2ICs0MjIsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OktleXByZXNzQ29tbWFuZD4gewogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OktleXByZXNzQ29tbWFuZD4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKLXRlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8Q0dQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShF
bmNvZGVyJiwgQ0dQb2ludCk7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q0dQb2ludD4gZGVj
b2RlKERlY29kZXImKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Q0dT
aXplPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBDR1NpemUpOwotICAgIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPENHU2l6ZT4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0KLXRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Q0dSZWN0PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBDR1JlY3QpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENHUmVjdD4g
ZGVjb2RlKERlY29kZXImKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8
Q0dBZmZpbmVUcmFuc2Zvcm0+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIENH
QWZmaW5lVHJhbnNmb3JtKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDR0FmZmluZVRyYW5z
Zm9ybT4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0jZW5kaWYKKyNlbmRpZiAvLyBQTEFURk9STShD
T0NPQSkKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlNlbGVjdGlvbkdlb21ldHJ5PiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQppbmRleCA4ZTRk
NWYxMzFkODJmMWRlZmUyNmQxNWFiZmVlMDY0YTNiOTg5MGY4Li42YTQzNDA2NzE0NjNkOTQ3MDcx
OTIzMTBiMWY3YmEwYmQwM2E3NmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
YWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KQEAgLTMyMSw3OSArMzIxLDYgQEAgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6S2V5cHJlc3NDb21tYW5kPjoKICAgICByZXR1cm4gV1RGTW92ZShjb21tYW5kKTsKIH0KIAot
dm9pZCBBcmd1bWVudENvZGVyPENHUmVjdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR1Jl
Y3QgcmVjdCkKLXsKLSAgICBlbmNvZGVyIDw8IHJlY3Qub3JpZ2luIDw8IHJlY3Quc2l6ZTsKLX0K
LQotc3RkOjpvcHRpb25hbDxDR1JlY3Q+IEFyZ3VtZW50Q29kZXI8Q0dSZWN0Pjo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCi17Ci0gICAgc3RkOjpvcHRpb25hbDxDR1BvaW50PiBvcmlnaW47Ci0g
ICAgZGVjb2RlciA+PiBvcmlnaW47Ci0gICAgaWYgKCFvcmlnaW4pCi0gICAgICAgIHJldHVybiB7
IH07Ci0KLSAgICBzdGQ6Om9wdGlvbmFsPENHU2l6ZT4gc2l6ZTsKLSAgICBkZWNvZGVyID4+IHNp
emU7Ci0gICAgaWYgKCFzaXplKQotICAgICAgICByZXR1cm4geyB9OwotCi0gICAgcmV0dXJuIENH
UmVjdCB7ICpvcmlnaW4sICpzaXplIH07Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxDR1NpemU+
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0dTaXplIHNpemUpCi17Ci0gICAgZW5jb2RlciA8
PCBzaXplLndpZHRoIDw8IHNpemUuaGVpZ2h0OwotfQotCi1zdGQ6Om9wdGlvbmFsPENHU2l6ZT4g
QXJndW1lbnRDb2RlcjxDR1NpemU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBD
R1NpemUgc2l6ZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUud2lkdGgpKQotICAgICAg
ICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZS5oZWlnaHQpKQotICAg
ICAgICByZXR1cm4geyB9OwotICAgIHJldHVybiBzaXplOwotfQotCi12b2lkIEFyZ3VtZW50Q29k
ZXI8Q0dQb2ludD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR1BvaW50IHBvaW50KQotewot
ICAgIGVuY29kZXIgPDwgcG9pbnQueCA8PCBwb2ludC55OwotfQotCi1zdGQ6Om9wdGlvbmFsPENH
UG9pbnQ+IEFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQot
ewotICAgIENHUG9pbnQgcG9pbnQ7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb2ludC54KSkK
LSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvaW50LnkpKQot
ICAgICAgICByZXR1cm4geyB9OwotICAgIHJldHVybiBwb2ludDsKLX0KLQotdm9pZCBBcmd1bWVu
dENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENHQWZm
aW5lVHJhbnNmb3JtIHRyYW5zZm9ybSkKLXsKLSAgICBlbmNvZGVyIDw8IHRyYW5zZm9ybS5hIDw8
IHRyYW5zZm9ybS5iIDw8IHRyYW5zZm9ybS5jIDw8IHRyYW5zZm9ybS5kIDw8IHRyYW5zZm9ybS50
eCA8PCB0cmFuc2Zvcm0udHk7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8Q0dBZmZpbmVUcmFuc2Zvcm0+
IEFyZ3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKLXsKLSAgICBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm07Ci0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZSh0cmFuc2Zvcm0uYSkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgaWYgKCFkZWNv
ZGVyLmRlY29kZSh0cmFuc2Zvcm0uYikpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgaWYgKCFk
ZWNvZGVyLmRlY29kZSh0cmFuc2Zvcm0uYykpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgaWYg
KCFkZWNvZGVyLmRlY29kZSh0cmFuc2Zvcm0uZCkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAg
aWYgKCFkZWNvZGVyLmRlY29kZSh0cmFuc2Zvcm0udHgpKQotICAgICAgICByZXR1cm4geyB9Owot
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLnR5KSkKLSAgICAgICAgcmV0dXJuIHsg
fTsKLSAgICByZXR1cm4gdHJhbnNmb3JtOwotfQotCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVS
SU5HKQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tI
YW5kbGVyPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRG
aWx0ZXJVbmJsb2NrSGFuZGxlciYgY29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440153</attachid>
            <date>2021-10-04 21:01:43 -0700</date>
            <delta_ts>2021-10-05 08:41:53 -0700</delta_ts>
            <desc>Rebase on trunk</desc>
            <filename>bug-230714-20211004210142.patch</filename>
            <type>text/plain</type>
            <size>35895</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI5MGQ5NWVjMDkxMTIyMzEx
ODNiZTE5Y2YyNDI4NDVmM2EyYmU4ZjQuLjc0OGFjYmQ5NGViMjdlNjcxZGZmMTUyMGFmZGIxOThl
NjE4OTg5NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjkgQEAKKzIwMjEtMTAtMDQgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIFJlZmFj
dG9yIHNvbWUgSVBDIGFyZ3VtZW50IGVuY29kZXIgbG9naWMgdG8gd29yayB3aXRoIFN0cmVhbUNv
bm5lY3Rpb25FbmNvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA3MTQKKyAgICAgICAgcmRhcjovLzgzNDc3NTkxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byB1c2Ug
YElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXJgIHRvIGVuY29kZSBkaXNwbGF5IGxpc3QgaXRl
bXMgKGFuZCB0aGVpciBtZW1iZXJzKSBpbiBhbgorICAgICAgICBJUEMgc3RyZWFtLiBUaGlzIHBh
dGNoIGNvbXByaXNlcyB0d28gbWFpbiBzZXRzIG9mIGNoYW5nZXMgaW4gYEFyZ3VtZW50Q29kZXJz
YCwgYW5kIGBXZWJDb3JlQXJndW1lbnRDb2RlcnNgLiBTZWUKKyAgICAgICAgYmVsb3cgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmRlY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNb25vc3RhdGU+OjpkZWNvZGUpOiBEZWxldGVk
LgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2RlKToKKworICAgICAgICBNYW55IG9mIHRoZXNlIGBl
bmNvZGUoKWAgbWV0aG9kcyBhcmUgY3VycmVudGx5IG5vbi10ZW1wbGF0ZWQsIHdoaWNoIG1lYW5z
IHRoYXQgRW5jb2RlciBhbmQgRGVjb2RlciB1c2VkIGhlcmUKKyAgICAgICAgcmVmZXIgc29sZWx5
IHRvIElQQzo6RW5jb2RlciBhbmQgSVBDOjpEZWNvZGVyIChyZXNwZWN0aXZlbHkpIGluc3RlYWQg
b2Ygb3RoZXIgdHlwZXMgb2YgZW5jb2RlcnMgKG5hbWVseSwKKyAgICAgICAgU3RyZWFtQ29ubmVj
dGlvbkVuY29kZXIpLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxBZmZpbmVUcmFuc2Zvcm0+
OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UG9p
bnQ+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0
UG9pbnQ+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZs
b2F0UG9pbnQzRD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8RmxvYXRQb2ludDNEPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjplbmNvZGUpOiBEZWxldGVkLgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0U2l6ZT46OmRlY29kZSk6IERlbGV0ZWQu
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46
OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+
OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEludFBvaW50
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRSZWN0
Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRSZWN0
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRTaXpl
Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRTaXpl
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxMYXlvdXRT
aXplPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxMYXlv
dXRTaXplPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxM
YXlvdXRQb2ludD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8TGF5b3V0UG9pbnQ+OjpkZWNvZGUpOiBEZWxldGVkLgorCisgICAgICAgIFRoZXNlIFdlYkNv
cmUgYXJndW1lbnQgY29kZXJzIGFyZSBhbHNvIGN1cnJlbnRseSBpbmNvbXBhdGlibGUgd2l0aCBT
dHJlYW1Db25uZWN0aW9uRW5jb2Rlciwgc2luY2UgdGhleSBhcmUgbm9uLQorICAgICAgICB0ZW1w
bGF0ZWQgKGFuZCB0aHVzIG9ubHkgd29yayB3aXRoIElQQzo6RW5jb2RlcikuIFNpbmNlIHRoZXNl
IGFyZSBhbGwgZW5jb2RhYmxlIGFzIFBPRCB0eXBlcywgd2UgY2FuIGp1c3QgdXNlCisgICAgICAg
IFNpbXBsZUFyZ3VtZW50Q29kZXIgZm9yIGFsbCBvZiB0aGVzZS4gV2UgYWxzbyBhZGQgYSBuZXcg
YERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJgIG1hY3JvIHRvIG1ha2UgdGhpcyBjb2RlIGEK
KyAgICAgICAgYml0IGVhc2llciB0byByZWFkLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzTWFjLm1tOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHUmVjdD46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dSZWN0Pjo6ZGVjb2RlKTog
RGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDR1NpemU+OjplbmNvZGUpOiBE
ZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHU2l6ZT46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHQWZmaW5lVHJh
bnNmb3JtPjo6ZGVjb2RlKTogRGVsZXRlZC4KKwogMjAyMS0xMC0wMyAgQmFzdWtlIFN1enVraSAg
PGJhc3VrZS5zdXp1a2lAc29ueS5jb20+CiAKICAgICAgICAgW1BsYXlTdGF0aW9uXSBQYXNzIGxv
Z2dpbmcgY2hhbm5lbCBwYXJhbWV0ZXIgdG8gV2ViUHJvY2VzcyBmcm9tIGVudmlyb25tZW50IHZh
cmlhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENv
ZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAK
aW5kZXggYTMyMDU1MTg3OThiNzRkY2VkYjhhMDEzZjljOWM5ODg1YWFlNjYxNi4uZTdmMjc4MDM2
MmRkMjAzNzQzNGNhMWNiMzkwZGRlNmVmNzkxNTkzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUg
IlByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlj
a01lYXN1cmVtZW50RW5jb2Rlci5oIgogI2luY2x1ZGUgIlN0cmVhbUNvbm5lY3Rpb25FbmNvZGVy
LmgiCisjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMjE4LDYg
KzIxOSw3IEBAIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIEFyZ3VtZW50Q29kZXI8U0hBMTo6RGln
ZXN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNICiB9CiAKICNpZiBIQVZFKEFVRElUX1RP
S0VOKQorCiB2b2lkIEFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBhdWRpdF90b2tlbl90JiBhdWRpdFRva2VuKQogewogICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGF1ZGl0VG9rZW4udmFsKTsgaSsr
KQpAQCAtMjMyLDE1ICsyMzQsNyBAQCBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBBcmd1bWVudENv
ZGVyPGF1ZGl0X3Rva2VuX3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgYQogICAgIH0KICAg
ICByZXR1cm4gdHJ1ZTsKIH0KLSNlbmRpZgotCi12b2lkIEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRl
Pjo6ZW5jb2RlKEVuY29kZXImLCBjb25zdCBNb25vc3RhdGUmKQotewotfQogCi1XQVJOX1VOVVNF
RF9SRVRVUk4gc3RkOjpvcHRpb25hbDxNb25vc3RhdGU+IEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRl
Pjo6ZGVjb2RlKERlY29kZXImKQotewotICAgIHJldHVybiBNb25vc3RhdGUgeyB9OwotfQorI2Vu
ZGlmIC8vIEhBVkUoQVVESVRfVE9LRU4pCiAKIH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKaW5kZXggNDc5ZGI2MGVkYzI3MTZk
NTU2MDZmNjUyZjI0MzFhZDM2OWY2NTcwYy4uMWQ3NGE5YWQ1YTJmNWZjNDFlYjFhYWM5ZjZkNzc0
MGVlMWJlMmM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1l
bnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVy
cy5oCkBAIC00MSw2ICs0MSwyMiBAQAogCiBuYW1lc3BhY2UgSVBDIHsKIAorI2RlZmluZSBERUZJ
TkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFR5cGUpIFwKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFR5cGU+IHsgXAorICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
PiB2b2lkIHN0YXRpYyBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVHlwZSYgdmFsdWUp
IHsgU2ltcGxlQXJndW1lbnRDb2RlcjxUeXBlPjo6ZW5jb2RlKGVuY29kZXIsIHZhbHVlKTsgfSBc
CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IGJvb2wgc3RhdGljIGRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBUeXBlJiB2YWx1ZSkgeyByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2Rl
cjxUeXBlPjo6ZGVjb2RlKGRlY29kZXIsIHZhbHVlKTsgfSBcCisgICAgICAgIHRlbXBsYXRlPHR5
cGVuYW1lIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFR5cGU+IGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKSBcCisgICAgICAgIHsgXAorICAgICAgICAgICAgVHlwZSB2YWx1ZTsgXAorICAg
ICAgICAgICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgdmFsdWUpKSBcCisgICAgICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsgXAorICAgICAgICAgICAgcmV0dXJuIHZhbHVlOyBcCisgICAg
ICAgIH0gXAorICAgIH07IFwKKyAgICB0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8VHlwZT46
OmVuY29kZTxJUEM6OkVuY29kZXI+KElQQzo6RW5jb2RlciYsIGNvbnN0IFR5cGUmKTsgXAorICAg
IHRlbXBsYXRlIGJvb2wgQXJndW1lbnRDb2RlcjxUeXBlPjo6ZGVjb2RlPElQQzo6RGVjb2Rlcj4o
SVBDOjpEZWNvZGVyJiwgVHlwZSYpOyBcCisgICAgdGVtcGxhdGUgc3RkOjpvcHRpb25hbDxUeXBl
PiBBcmd1bWVudENvZGVyPFR5cGU+OjpkZWNvZGU8SVBDOjpEZWNvZGVyPihJUEM6OkRlY29kZXIm
KTsKKwogLy8gQW4gYXJndW1lbnQgY29kZXIgd29ya3Mgb24gUE9EIHR5cGVzCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBzdHJ1Y3QgU2ltcGxlQXJndW1lbnRDb2RlciB7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRW5jb2Rlcj4KQEAgLTQ5LDYgKzY1LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3Ry
dWN0IFNpbXBsZUFyZ3VtZW50Q29kZXIgewogICAgICAgICBlbmNvZGVyLmVuY29kZUZpeGVkTGVu
Z3RoRGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPigmdCksIHNpemVvZihUKSwg
YWxpZ25vZihUKSk7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAg
ICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IFQmIHQpCiAgICAgewogICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVGaXhlZExlbmd0aERh
dGEocmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oJnQpLCBzaXplb2YoVCksIGFsaWdub2YoVCkp
OwpAQCAtMTA4LDEyICsxMjUsMTQgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8QXJyYXlSZWZlcmVuY2U8VCwgYXJyYXlSZWZlcmVuY2VEeW5hbWkKIH07CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPE9wdGlvblNldDxUPj4gewor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IE9wdGlvblNldDxUPiYgb3B0aW9uU2V0KQogICAgIHsKICAg
ICAgICAgQVNTRVJUKFdURjo6aXNWYWxpZE9wdGlvblNldChvcHRpb25TZXQpKTsKICAgICAgICAg
ZW5jb2RlciA8PCBvcHRpb25TZXQudG9SYXcoKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgT3B0aW9uU2V0PFQ+JiBvcHRpb25TZXQpCiAgICAgewogICAgICAg
ICB0eXBlbmFtZSBPcHRpb25TZXQ8VD46OlN0b3JhZ2VUeXBlIHZhbHVlOwpAQCAtMTI1LDYgKzE0
NCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPE9wdGlvblNl
dDxUPj4gewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE9wdGlvblNldDxUPj4gZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPHR5cGVu
YW1lIE9wdGlvblNldDxUPjo6U3RvcmFnZVR5cGU+IHZhbHVlOwpAQCAtMTg4LDYgKzIwOCw3IEBA
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPHN0ZDo6b3B0aW9uYWw8
VD4+IHsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPEJv
eDxUPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEJveDxUPiYgYm94KQogICAgIHsKICAgICAg
ICAgaWYgKCFib3gpIHsKQEAgLTE5OSw2ICsyMjAsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxCb3g8VD4+IHsKICAgICAgICAgZW5jb2RlciA8PCAqYm94Lmdl
dCgpOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGlj
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBCb3g8VD4m
IGJveCkKICAgICB7CiAgICAgICAgIGJvb2wgaXNFbmdhZ2VkOwpAQCAtMjE4LDYgKzI0MCw3IEBA
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPEJveDxUPj4gewogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVy
PgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEJveDxUPj4gZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGlzRW5nYWdlZDsKQEAgLTIz
NiwxMSArMjU5LDEzIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVy
PEJveDxUPj4gewogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8c3RkOjpwYWlyPFQsIFU+PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
RW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qg
c3RkOjpwYWlyPFQsIFU+JiBwYWlyKQogICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBwYWlyLmZp
cnN0IDw8IHBhaXIuc2Vjb25kOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29k
ZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBzdGQ6OnBhaXI8VCwgVT4mIHBhaXIpCiAgICAgewogICAgICAgICBUIGZpcnN0OwpA
QCAtMjU2LDYgKzI4MSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IHN0cnVj
dCBBcmd1bWVudENvZGVyPHN0ZDo6cGFpcjxULCBVPj4gewogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPHN0ZDo6cGFpcjxULCBVPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAg
ewogICAgICAgICBzdGQ6Om9wdGlvbmFsPFQ+IGZpcnN0OwpAQCAtMzY2LDExICszOTIsMTMgQEAg
dGVtcGxhdGU8dHlwZW5hbWUuLi4gRWxlbWVudHM+IHN0cnVjdCBBcmd1bWVudENvZGVyPHN0ZDo6
dHVwbGU8RWxlbWVudHMuLi4+PiB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlUeXBlLCB0
eXBlbmFtZSBWYWx1ZVR5cGU+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdURjo6S2V5VmFsdWVQYWly
PEtleVR5cGUsIFZhbHVlVHlwZT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgog
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXVEY6OktleVZh
bHVlUGFpcjxLZXlUeXBlLCBWYWx1ZVR5cGU+JiBwYWlyKQogICAgIHsKICAgICAgICAgZW5jb2Rl
ciA8PCBwYWlyLmtleSA8PCBwYWlyLnZhbHVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVu
YW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBXVEY6OktleVZhbHVlUGFpcjxLZXlUeXBlLCBWYWx1ZVR5cGU+JiBw
YWlyKQogICAgIHsKICAgICAgICAgS2V5VHlwZSBrZXk7CkBAIC0zOTgsNiArNDI2LDcgQEAgdGVt
cGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxv
d0hhbmRsZXIsIHNpemVfdCBtaW4KICAgICAgICAgICAgIGVuY29kZXIgPDwgdmVjdG9yW2ldOwog
ICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdBUk5f
VU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBWZWN0b3I8VCwgaW5s
aW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+JiB2ZWN0b3IpCiAgICAg
ewogICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZs
b3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4+IG9wdGlvbmFsOwpAQCAtNDM3LDYgKzQ2Niw3IEBAIHRl
bXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZs
b3dIYW5kbGVyLCBzaXplX3QgbWluCiAgICAgICAgIGVuY29kZXIuZW5jb2RlRml4ZWRMZW5ndGhE
YXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KHZlY3Rvci5kYXRhKCkpLCB2ZWN0
b3Iuc2l6ZSgpICogc2l6ZW9mKFQpLCBhbGlnbm9mKFQpKTsKICAgICB9CiAgICAgCisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJv
b2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3Zl
cmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4mIHZlY3RvcikKICAgICB7CiAgICAgICAgIHVpbnQ2
NF90IGRlY29kZWRTaXplOwpAQCAtNDUxLDcgKzQ4MSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQs
IHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyLCBzaXplX3Qg
bWluCiAgICAgICAgIC8vIFNpbmNlIHdlIGtub3cgdGhlIHRvdGFsIHNpemUgb2YgdGhlIGVsZW1l
bnRzLCB3ZSBjYW4gYWxsb2NhdGUgdGhlIHZlY3RvciBpbgogICAgICAgICAvLyBvbmUgZmVsbCBz
d29vcC4gQmVmb3JlIGFsbG9jYXRpbmcgd2UgbXVzdCBob3dldmVyIG1ha2Ugc3VyZSB0aGF0IHRo
ZSBkZWNvZGVyIGJ1ZmZlcgogICAgICAgICAvLyBpcyBiaWcgZW5vdWdoLgotICAgICAgICBpZiAo
IWRlY29kZXIuYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbjxUPihzaXplKSkKKyAgICAgICAg
aWYgKCFkZWNvZGVyLnRlbXBsYXRlIGJ1ZmZlcklzTGFyZ2VFbm91Z2hUb0NvbnRhaW48VD4oc2l6
ZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgVmVjdG9yPFQsIGlubGlu
ZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5PiB0ZW1wOwpAQCAtNDk4LDYg
KzUyOCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlw
ZW5hbWUgT3ZlcmZsb3dIYW5kbGVyLCBzaXplX3QgbWluCiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlB
cmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJh
aXRzQXJnLCB0eXBlbmFtZSBNYXBwZWRUcmFpdHNBcmcsIHR5cGVuYW1lIEhhc2hUYWJsZVRyYWl0
cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFy
ZywgS2V5VHJhaXRzQXJnLCBNYXBwZWRUcmFpdHNBcmcsIEhhc2hUYWJsZVRyYWl0cz4+IHsKICAg
ICB0eXBlZGVmIEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0Fy
ZywgTWFwcGVkVHJhaXRzQXJnLCBIYXNoVGFibGVUcmFpdHM+IEhhc2hNYXBUeXBlOwogCisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgSGFzaE1hcFR5cGUmIGhhc2hNYXApCiAgICAgewogICAgICAgICBl
bmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQzMl90PihoYXNoTWFwLnNpemUoKSk7CkBAIC01MDUs
NiArNTM2LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcs
IHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWkKICAgICAgICAgICAgIGVuY29kZXIg
PDwgKml0OwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8SGFzaE1hcFR5cGU+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQog
ICAgIHsKICAgICAgICAgdWludDMyX3QgaGFzaE1hcFNpemU7CkBAIC01MzUsNiArNTY3LDcgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1lIEhh
c2hBcmcsIHR5cGVuYW1lIEtleVRyYWkKICAgICAgICAgcmV0dXJuIGhhc2hNYXA7CiAgICAgfQog
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURf
UkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEhhc2hNYXBUeXBlJiBoYXNoTWFw
KQogICAgIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxIYXNoTWFwVHlwZT4gdGVtcEhhc2hNYXA7
CkBAIC01NDksNiArNTgyLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBN
YXBwZWRBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWkKIHRlbXBsYXRlPHR5
cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0
eXBlbmFtZSBIYXNoVGFibGVUcmFpdHM+IHN0cnVjdCBBcmd1bWVudENvZGVyPEhhc2hTZXQ8S2V5
QXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIEhhc2hUYWJsZVRyYWl0cz4+IHsKICAgICB0eXBl
ZGVmIEhhc2hTZXQ8S2V5QXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIEhhc2hUYWJsZVRyYWl0
cz4gSGFzaFNldFR5cGU7CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0
YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBIYXNoU2V0VHlwZSYgaGFz
aFNldCkKICAgICB7CiAgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGhh
c2hTZXQuc2l6ZSgpKTsKQEAgLTU1Niw2ICs1OTAsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlB
cmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZywgdHlwZW5hbWUgSGFz
aAogICAgICAgICAgICAgZW5jb2RlciA8PCAqaXQ7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIEhhc2hTZXRUeXBlJiBoYXNoU2V0KQogICAgIHsKICAgICAgICAg
c3RkOjpvcHRpb25hbDxIYXNoU2V0VHlwZT4gdGVtcEhhc2hTZXQ7CkBAIC01NjcsNiArNjAyLDcg
QEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBL
ZXlUcmFpdHNBcmcsIHR5cGVuYW1lIEhhc2gKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQog
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25h
bDxIYXNoU2V0VHlwZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAgICB1
aW50NjRfdCBoYXNoU2V0U2l6ZTsKQEAgLTU5Niw2ICs2MzIsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFt
ZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZywgdHlwZW5h
bWUgSGFzaAogdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBl
bmFtZSBLZXlUcmFpdHNBcmc+IHN0cnVjdCBBcmd1bWVudENvZGVyPEhhc2hDb3VudGVkU2V0PEtl
eUFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnPj4gewogICAgIHR5cGVkZWYgSGFzaENvdW50ZWRT
ZXQ8S2V5QXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmc+IEhhc2hDb3VudGVkU2V0VHlwZTsKICAg
ICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBIYXNoQ291bnRlZFNldFR5cGUmIGhhc2hDb3VudGVk
U2V0KQogICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaGFz
aENvdW50ZWRTZXQuc2l6ZSgpKTsKQEAgLTYwNiw2ICs2NDMsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFt
ZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZz4gc3RydWN0
IEFyZ3VtZQogICAgICAgICB9CiAgICAgfQogICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERl
Y29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBIYXNoQ291bnRlZFNldFR5cGUmIGhhc2hDb3VudGVkU2V0KQogICAgIHsKICAg
ICAgICAgdWludDY0X3QgaGFzaENvdW50ZWRTZXRTaXplOwpAQCAtNjM3LDYgKzY3NSw3IEBAIHRl
bXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJh
aXRzQXJnPiBzdHJ1Y3QgQXJndW1lCiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZVR5cGUs
IHR5cGVuYW1lIEVycm9yVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8RXhwZWN0ZWQ8VmFsdWVU
eXBlLCBFcnJvclR5cGU+PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRXhwZWN0ZWQ8VmFsdWVU
eXBlLCBFcnJvclR5cGU+JiBleHBlY3RlZCkKICAgICB7CiAgICAgICAgIGlmICghZXhwZWN0ZWQu
aGFzX3ZhbHVlKCkpIHsKQEAgLTY0OCw2ICs2ODcsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1
ZVR5cGUsIHR5cGVuYW1lIEVycm9yVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8RXhwZWN0ZWQ8
VgogICAgICAgICBlbmNvZGVyIDw8IGV4cGVjdGVkLnZhbHVlKCk7CiAgICAgfQogCisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxFeHBlY3Rl
ZDxWYWx1ZVR5cGUsIEVycm9yVHlwZT4+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsK
ICAgICAgICAgc3RkOjpvcHRpb25hbDxib29sPiBoYXNWYWx1ZTsKQEAgLTcwNCw2ICs3NDQsNyBA
QCB0ZW1wbGF0ZTx0eXBlbmFtZSBFcnJvclR5cGU+IHN0cnVjdCBBcmd1bWVudENvZGVyPEV4cGVj
dGVkPHZvaWQsIEVycm9yVHlwZT4+IHsKIAogdGVtcGxhdGU8c2l6ZV90IGluZGV4LCB0eXBlbmFt
ZS4uLiBUeXBlcz4KIHN0cnVjdCBWYXJpYW50Q29kZXIgeworICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IFdURjo6VmFyaWFudDxUeXBlcy4uLj4mIHZhcmlhbnQsIHVuc2lnbmVkIGkpCiAgICAgewogICAg
ICAgICBpZiAoaSA9PSBpbmRleCkgewpAQCAtNzEzLDYgKzc1NCw3IEBAIHN0cnVjdCBWYXJpYW50
Q29kZXIgewogICAgICAgICBWYXJpYW50Q29kZXI8aW5kZXggLSAxLCBUeXBlcy4uLj46OmVuY29k
ZShlbmNvZGVyLCB2YXJpYW50LCBpKTsKICAgICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXVEY6OlZhcmlhbnQ8VHlwZXMu
Li4+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgdW5zaWduZWQgaSkKICAgICB7CiAgICAgICAg
IGlmIChpID09IGluZGV4KSB7CkBAIC03MjgsMTIgKzc3MCwxNCBAQCBzdHJ1Y3QgVmFyaWFudENv
ZGVyIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUuLi4gVHlwZXM+CiBzdHJ1Y3QgVmFyaWFudENvZGVy
PDAsIFR5cGVzLi4uPiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0
aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV1RGOjpWYXJpYW50PFR5cGVz
Li4uPiYgdmFyaWFudCwgdW5zaWduZWQgaSkKICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQo
aSwgIWkpOwogICAgICAgICBlbmNvZGVyIDw8IFdURjo6Z2V0PDA+KHZhcmlhbnQpOwogICAgIH0K
ICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCB1
bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChpLCAhaSk7CkBAIC03NDYs
NiArNzkwLDcgQEAgc3RydWN0IFZhcmlhbnRDb2RlcjwwLCBUeXBlcy4uLj4gewogfTsKIAogdGVt
cGxhdGU8dHlwZW5hbWUuLi4gVHlwZXM+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdURjo6VmFyaWFu
dDxUeXBlcy4uLj4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXVEY6OlZhcmlhbnQ8VHlwZXMu
Li4+JiB2YXJpYW50KQogICAgIHsKICAgICAgICAgdW5zaWduZWQgaSA9IHZhcmlhbnQuaW5kZXgo
KTsKQEAgLTc1Myw2ICs3OTgsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gewogICAgICAgICBWYXJpYW50
Q29kZXI8c2l6ZW9mLi4uKFR5cGVzKSAtIDEsIFR5cGVzLi4uPjo6ZW5jb2RlKGVuY29kZXIsIHZh
cmlhbnQsIGkpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgog
ICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IGRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4g
aTsKQEAgLTgwNCw4ICs4NTAsMTQgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2Rlcjxh
dWRpdF90b2tlbl90PiB7CiAjZW5kaWYKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxNb25vc3RhdGU+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IE1v
bm9zdGF0ZSYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE1vbm9zdGF0ZT4gZGVjb2RlKERl
Y29kZXImKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgorICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiwgY29uc3QgTW9ub3N0YXRlJikgeyB9CisKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPgorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE1vbm9zdGF0ZT4gZGVj
b2RlKERlY29kZXImKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE1vbm9zdGF0ZSB7IH07CisgICAg
fQogfTsKIAogfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBlZWVlNmFlYjYxYTMzOGFmOGQzY2FlZmJmNTI0
OTE5NDBhZjcwNTViLi4zYTM3YjMyY2Q4NjAwZGIyMGFkYzgwZDM2ZjU3NzllMDYyZmExODFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAg
LTIzMSwxNiArMjMxLDYgQEAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZVR5
cGVzQW5kRGF0YShEZWNvZGVyJiBkZWNvZGVyLCBWZWN0b3I8U3RyaW4KICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGFmZmluZVRyYW5zZm9ybSkKLXsK
LSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmVuY29kZShlbmNvZGVy
LCBhZmZpbmVUcmFuc2Zvcm0pOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNm
b3JtPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEFmZmluZVRyYW5zZm9ybSYgYWZmaW5lVHJh
bnNmb3JtKQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9y
bT46OmRlY29kZShkZWNvZGVyLCBhZmZpbmVUcmFuc2Zvcm0pOwotfQotCiB2b2lkIEFyZ3VtZW50
Q29kZXI8Q2FjaGVRdWVyeU9wdGlvbnM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qg
Q2FjaGVRdWVyeU9wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgZW5jb2RlciA8PCBvcHRpb25zLmln
bm9yZVNlYXJjaDsKQEAgLTQyNSw2ICs0MTUsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8RXZlbnRU
cmFja2luZ1JlZ2lvbnM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRXZlbnRUcmFja2luZwog
ICAgIHJldHVybiB0cnVlOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogdm9pZCBB
cmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm1hdGlvbk1hdHJpeCkKIHsK
ICAgICBlbmNvZGVyIDw8IHRyYW5zZm9ybWF0aW9uTWF0cml4Lm0xMSgpOwpAQCAtNTA2LDYgKzQ5
Nyw5IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBUcmFuc2Zvcm1hdGlvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3Rl
bXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD46OmVuY29kZTxF
bmNvZGVyPihFbmNvZGVyJiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKK3RlbXBsYXRl
IHZvaWQgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD46OmVuY29kZTxTdHJlYW1D
b25uZWN0aW9uRW5jb2Rlcj4oU3RyZWFtQ29ubmVjdGlvbkVuY29kZXImLCBjb25zdCBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYpOworCiB2b2lkIEFyZ3VtZW50Q29kZXI8TGluZWFyVGltaW5nRnVuY3Rp
b24+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTGluZWFyVGltaW5nRnVuY3Rpb24m
IHRpbWluZ0Z1bmN0aW9uKQogewogICAgIGVuY29kZXIgPDwgdGltaW5nRnVuY3Rpb24udHlwZSgp
OwpAQCAtNjE3LDY1ICs2MTEsNiBAQCBib29sIEFyZ3VtZW50Q29kZXI8U3ByaW5nVGltaW5nRnVu
Y3Rpb24+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU3ByaW5nVGltaW5nRgogICAgIHJldHVy
biB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFBvaW50JiBmbG9hdFBvaW50KQotewotICAgIFNpbXBs
ZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmVuY29kZShlbmNvZGVyLCBmbG9hdFBvaW50KTsK
LX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgRmxvYXRQb2ludCYgZmxvYXRQb2ludCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1l
bnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0UG9pbnQpOwotfQotCi1z
dGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+IEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIEZsb2F0UG9pbnQgZmxvYXRQb2ludDsKLSAgICBp
ZiAoIVNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmRlY29kZShkZWNvZGVyLCBmbG9h
dFBvaW50KSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICByZXR1cm4gZmxvYXRQ
b2ludDsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFBvaW50M0QmIGZsb2F0UG9pbnQpCi17Ci0gICAgU2lt
cGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRQb2lu
dCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+OjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgRmxvYXRQb2ludDNEJiBmbG9hdFBvaW50KQotewotICAgIHJldHVybiBTaW1w
bGVBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmRlY29kZShkZWNvZGVyLCBmbG9hdFBvaW50
KTsKLX0KLQotCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IEZsb2F0UmVjdCYgZmxvYXRSZWN0KQotewotICAgIFNpbXBsZUFyZ3Vt
ZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0UmVjdCk7Ci19Ci0KLWJv
b2wgQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxv
YXRSZWN0JiBmbG9hdFJlY3QpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8Rmxv
YXRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0UmVjdCk7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8
RmxvYXRSZWN0PiBBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQotewotICAgIEZsb2F0UmVjdCBmbG9hdFJlY3Q7Ci0gICAgaWYgKCFTaW1wbGVBcmd1bWVu
dENvZGVyPEZsb2F0UmVjdD46OmRlY29kZShkZWNvZGVyLCBmbG9hdFJlY3QpKQotICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBmbG9hdFJlY3Q7Ci19Ci0KLQotdm9pZCBB
cmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IEZsb2F0Qm94RXh0ZW50JiBmbG9hdEJveEV4dGVudCkKLXsKLSAgICBTaW1wbGVBcmd1bWVu
dENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0Qm94RXh0ZW50KTsK
LX0KLSAgICAKLWJvb2wgQXJndW1lbnRDb2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyLCBGbG9hdEJveEV4dGVudCYgZmxvYXRCb3hFeHRlbnQpCi17Ci0gICAgcmV0
dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjpkZWNvZGUoZGVjb2Rlciwg
ZmxvYXRCb3hFeHRlbnQpOwotfQotCi0KIHZvaWQgQXJndW1lbnRDb2RlcjxSZWN0RWRnZXM8Ym9v
bD4+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVjdEVkZ2VzPGJvb2w+JiBib3hF
ZGdlcykKIHsKICAgICBTaW1wbGVBcmd1bWVudENvZGVyPFJlY3RFZGdlczxib29sPj46OmVuY29k
ZShlbmNvZGVyLCBib3hFZGdlcyk7CkBAIC02ODYsMjggKzYyMSw2IEBAIGJvb2wgQXJndW1lbnRD
b2RlcjxSZWN0RWRnZXM8Ym9vbD4+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUmVjdEVkZ2Vz
PGJvb2w+JiBiCiAgICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8UmVjdEVkZ2VzPGJvb2w+
Pjo6ZGVjb2RlKGRlY29kZXIsIGJveEVkZ2VzKTsKIH0KIAotCi12b2lkIEFyZ3VtZW50Q29kZXI8
RmxvYXRTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0U2l6ZSYgZmxv
YXRTaXplKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZW5jb2RlKGVu
Y29kZXIsIGZsb2F0U2l6ZSk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRTaXplJiBmbG9hdFNpemUpCi17Ci0gICAgcmV0
dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0
U2l6ZSk7Ci19Ci0KLQotdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcm91bmRlZFJlY3Qp
Ci17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFJvdW5kZWRSZWN0Pjo6ZW5jb2RlKGVu
Y29kZXIsIHJvdW5kZWRSZWN0KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0Um91bmRl
ZFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRSb3VuZGVkUmVjdCYgcm91bmRl
ZFJlY3QpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVj
dD46OmRlY29kZShkZWNvZGVyLCByb3VuZGVkUmVjdCk7Ci19Ci0KICNpZiBFTkFCTEUoTUVUQV9W
SUVXUE9SVCkKIHZvaWQgQXJndW1lbnRDb2RlcjxWaWV3cG9ydEFyZ3VtZW50cz46OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgdmlld3BvcnRBcmd1bWVu
dHMpCiB7CkBAIC03MzksODcgKzY1Miw2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxWaWV3cG9ydEF0
dHJpYnV0ZXM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVmlld3BvcnRBdHRyaWJ1CiAgICAg
cmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8Vmlld3BvcnRBdHRyaWJ1dGVzPjo6ZGVjb2RlKGRl
Y29kZXIsIHZpZXdwb3J0QXR0cmlidXRlcyk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxJbnRQ
b2ludD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJbnRQb2ludCYgaW50UG9pbnQp
Ci17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmVuY29kZShlbmNvZGVyLCBp
bnRQb2ludCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyLCBJbnRQb2ludCYgaW50UG9pbnQpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFy
Z3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoZGVjb2RlciwgaW50UG9pbnQpOwotfQotCi1z
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiBBcmd1bWVudENvZGVyPEludFBvaW50Pjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgSW50UG9pbnQgaW50UG9pbnQ7Ci0gICAg
aWYgKCFTaW1wbGVBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZGVjb2RlKGRlY29kZXIsIGludFBv
aW50KSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICByZXR1cm4gaW50UG9pbnQ7
Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IEludFJlY3QmIGludFJlY3QpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxJ
bnRSZWN0Pjo6ZW5jb2RlKGVuY29kZXIsIGludFJlY3QpOwotfQotCi1ib29sIEFyZ3VtZW50Q29k
ZXI8SW50UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBJbnRSZWN0JiBpbnRSZWN0KQot
ewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEludFJlY3Q+OjpkZWNvZGUoZGVjb2Rl
ciwgaW50UmVjdCk7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8SW50UmVjdD4gQXJndW1lbnRDb2RlcjxJ
bnRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgSW50UmVjdCByZWN0Owot
ICAgIGlmICghZGVjb2RlKGRlY29kZXIsIHJlY3QpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwotICAgIHJldHVybiByZWN0OwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgot
dm9pZCBBcmd1bWVudENvZGVyPEludFNpemU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29u
c3QgSW50U2l6ZSYgaW50U2l6ZSkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEludFNpemU+
OjplbmNvZGUoZW5jb2RlciwgaW50U2l6ZSk7Ci19Ci0KLXRlbXBsYXRlCi12b2lkIEFyZ3VtZW50
Q29kZXI8SW50U2l6ZT46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVyJiwgY29uc3QgSW50U2l6ZSYp
OwotdGVtcGxhdGUKLXZvaWQgQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZW5jb2RlPFN0cmVhbUNv
bm5lY3Rpb25FbmNvZGVyPihTdHJlYW1Db25uZWN0aW9uRW5jb2RlciYsIGNvbnN0IEludFNpemUm
KTsKLQotYm9vbCBBcmd1bWVudENvZGVyPEludFNpemU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgSW50U2l6ZSYgaW50U2l6ZSkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxJ
bnRTaXplPjo6ZGVjb2RlKGRlY29kZXIsIGludFNpemUpOwotfQotCi1zdGQ6Om9wdGlvbmFsPElu
dFNpemU+IEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQot
ewotICAgIEludFNpemUgaW50U2l6ZTsKLSAgICBpZiAoIVNpbXBsZUFyZ3VtZW50Q29kZXI8SW50
U2l6ZT46OmRlY29kZShkZWNvZGVyLCBpbnRTaXplKSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKLSAgICByZXR1cm4gaW50U2l6ZTsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPExheW91
dFNpemU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTGF5b3V0U2l6ZSYgbGF5b3V0
U2l6ZSkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPExheW91dFNpemU+OjplbmNvZGUoZW5j
b2RlciwgbGF5b3V0U2l6ZSk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxMYXlvdXRTaXplPjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIExheW91dFNpemUmIGxheW91dFNpemUpCi17Ci0gICAg
cmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmRlY29kZShkZWNvZGVyLCBs
YXlvdXRTaXplKTsKLX0KLQotCi12b2lkIEFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+OjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTGF5b3V0UG9pbnQmIGxheW91dFBvaW50KQotewot
ICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+OjplbmNvZGUoZW5jb2RlciwgbGF5
b3V0UG9pbnQpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+OjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgTGF5b3V0UG9pbnQmIGxheW91dFBvaW50KQotewotICAgIHJldHVy
biBTaW1wbGVBcmd1bWVudENvZGVyPExheW91dFBvaW50Pjo6ZGVjb2RlKGRlY29kZXIsIGxheW91
dFBvaW50KTsKLX0KLQogdm9pZCBBcmd1bWVudENvZGVyPFJlY2VudFNlYXJjaD46OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWNlbnRTZWFyY2gmIHJlY2VudFNlYXJjaCkKIHsKICAg
ICBlbmNvZGVyIDw8IHJlY2VudFNlYXJjaC5zdHJpbmcgPDwgcmVjZW50U2VhcmNoLnRpbWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDM1MTM4
ZjVkZTMyZDdlMWYxZmQxNTRjMjYxZjhlNzkyZTQ3Mzc3MTAuLjljNjUyZDE4Y2I4NDliOThmZmI5
MzUzNTNjODkzZTkwYWFlYzEwYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oCkBAIC0yNiwxMiArMjYsMjQgQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0FmZmluZVRyYW5zZm9y
bS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0b3BsYXlFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvQ29sb3JTcGFjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0Zsb2F0UG9pbnQzRC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9GbG9hdFJvdW5kZWRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFNp
emUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0luZGV4ZWREQi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5wdXRNb2RlLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9JbnRQb2ludC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvSW50U2l6ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGF5b3V0UG9p
bnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xheW91dFNpemUuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0xlbmd0aEJveC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTZWxlY3Rpb25PcHRpb24uaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL05hdGl2ZUltYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3
b3JrTG9hZE1ldHJpY3MuaD4KQEAgLTk2LDcgKzEwOCw2IEBAIHR5cGVkZWYgc3RydWN0IF9fQ1ZC
dWZmZXIqIENWUGl4ZWxCdWZmZXJSZWY7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFi
c29sdXRlUG9zaXRpb25Db25zdHJhaW50czsKLWNsYXNzIEFmZmluZVRyYW5zZm9ybTsKIGNsYXNz
IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOwogY2xhc3MgQmxvYlBhcnQ7CiBjbGFzcyBDZXJ0aWZp
Y2F0ZUluZm87CkBAIC0xMDksMjEgKzEyMCwxMSBAQCBjbGFzcyBEcmFnRGF0YTsKIGNsYXNzIEZp
bGU7CiBjbGFzcyBGaWx0ZXJPcGVyYXRpb247CiBjbGFzcyBGaWx0ZXJPcGVyYXRpb25zOwotY2xh
c3MgRmxvYXRQb2ludDsKLWNsYXNzIEZsb2F0UG9pbnQzRDsKLWNsYXNzIEZsb2F0UmVjdDsKLWNs
YXNzIEZsb2F0Um91bmRlZFJlY3Q7Ci1jbGFzcyBGbG9hdFNpemU7CiBjbGFzcyBGaXhlZFBvc2l0
aW9uVmlld3BvcnRDb25zdHJhaW50czsKIGNsYXNzIEZvbnQ7CiBjbGFzcyBGb250UGxhdGZvcm1E
YXRhOwogY2xhc3MgSFRUUEhlYWRlck1hcDsKLWNsYXNzIEludFBvaW50OwotY2xhc3MgSW50UmVj
dDsKLWNsYXNzIEludFNpemU7CiBjbGFzcyBLZXlmcmFtZVZhbHVlTGlzdDsKLWNsYXNzIExheW91
dFNpemU7Ci1jbGFzcyBMYXlvdXRQb2ludDsKIGNsYXNzIExpbmVhclRpbWluZ0Z1bmN0aW9uOwog
Y2xhc3MgTm90aWZpY2F0aW9uOwogY2xhc3MgUGFzdGVib2FyZEN1c3RvbURhdGE7CkBAIC0xNzQs
OSArMTc1LDcgQEAgc3RydWN0IFRvdWNoQWN0aW9uRGF0YTsKIHN0cnVjdCBWZWxvY2l0eURhdGE7
CiBzdHJ1Y3QgVmlld3BvcnRBdHRyaWJ1dGVzOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwotICAg
IAotdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIFJlY3RFZGdlczsKLXVzaW5nIEZsb2F0Qm94RXh0
ZW50ID0gUmVjdEVkZ2VzPGZsb2F0PjsKKwogdXNpbmcgSURCS2V5UGF0aCA9IFZhcmlhbnQ8U3Ry
aW5nLCBWZWN0b3I8U3RyaW5nPj47CiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTIyNywxMCAr
MjI2LDI1IEBAIHN0cnVjdCBSZWNvcmQ7CiAKIG5hbWVzcGFjZSBJUEMgewogCi10ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybT4gewotICAgIHN0
YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3Jt
Jik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwg
V2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJik7Ci19OworREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9D
T0RFUihXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0pCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NP
REVSKFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RF
UihXZWJDb3JlOjpGbG9hdFBvaW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJD
b3JlOjpGbG9hdFBvaW50M0QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6
OkZsb2F0UmVjdCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6RmxvYXRS
b3VuZGVkUmVjdCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6RmxvYXRT
aXplKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpJbnRQb2ludCkKK0RF
RklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6SW50UmVjdCkKK0RFRklORV9TSU1Q
TEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6SW50U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1F
TlRfQ09ERVIoV2ViQ29yZTo6TGF5b3V0U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09E
RVIoV2ViQ29yZTo6TGF5b3V0UG9pbnQpCisKKyNpZiBVU0UoQ0cpCitERUZJTkVfU0lNUExFX0FS
R1VNRU5UX0NPREVSKENHUmVjdCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoQ0dTaXpl
KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihDR1BvaW50KQorREVGSU5FX1NJTVBMRV9B
UkdVTUVOVF9DT0RFUihDR0FmZmluZVRyYW5zZm9ybSkKKyNlbmRpZgogCiB0ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmc+IHsKICAgICBzdGF0
aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmcm
KTsKQEAgLTI2OCw2ICsyODIsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkV2ZW50VHJhY2tpbmdSZWdpb25zPiB7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4PiB7CisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNv
bnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4Jik7CiAgICAgc3RhdGljIFdBUk5fVU5V
U0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25N
YXRyaXgmKTsKIH07CkBAIC0yOTksNDMgKzMxNCwxMSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz4gewogICAgIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz4gZGVjb2RlKERlY29kZXImKTsKIH07CiAK
LXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRQb2ludD4gewot
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2lu
dCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYs
IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpGbG9hdFBvaW50PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFBvaW50M0Q+IHsKLSAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0
UG9pbnQzRCYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpGbG9hdFJlY3Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBk
ZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UmVjdCYpOwotICAgIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0gICAgCi10
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50PiB7
Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJv
eEV4dGVudCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVj
b2RlciYsIFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50Jik7Ci19OwotCiB0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlJlY3RFZGdlczxib29sPj4gewogICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+Jik7CiAg
ICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29y
ZTo6UmVjdEVkZ2VzPGJvb2w+Jik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OkZsb2F0U2l6ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVy
JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JF
VFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6RmxvYXRTaXplJik7Ci19OwotCi10
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q+
IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
Um91bmRlZFJlY3QmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2Rl
KERlY29kZXImLCBXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0Jik7Ci19OwotCiAjaWYgRU5BQkxF
KE1FVEFfVklFV1BPUlQpCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlZpZXdwb3J0QXJndW1lbnRzPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBj
b25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYpOwpAQCAtMzUwLDM1ICszMzMsNiBAQCB0
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRl
cz4gewogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYs
IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKLSAgICBzdGF0aWMgV0FSTl9V
TlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpJbnRQb2ludCYpOwot
ICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiBkZWNvZGUoRGVjb2Rl
ciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRS
ZWN0PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0Jik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNv
ZGVyJiwgV2ViQ29yZTo6SW50UmVjdCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OkludFJlY3Q+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6OkludFNpemU+IHsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBF
bmNvZGVyPgotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVj
b2RlciYsIFdlYkNvcmU6OkludFNpemUmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpJbnRTaXplPiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMYXlvdXRTaXplPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpMYXlvdXRTaXplJik7Ci0gICAgc3RhdGljIFdB
Uk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6TGF5b3V0U2l6
ZSYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMYXlv
dXRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29y
ZTo6TGF5b3V0UG9pbnQmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlKERlY29kZXImLCBXZWJDb3JlOjpMYXlvdXRQb2ludCYpOwotfTsKLQogdGVtcGxhdGU8PiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMZW5ndGg+IHsKICAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6Okxlbmd0aCYpOwogICAgIHN0YXRpYyBXQVJO
X1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6Okxlbmd0aCYpOwpA
QCAtNDU3LDYgKzQxMSw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6RHJhZ0RhdGE+IHsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisKIHRlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpNYWNoU2VuZFJpZ2h0PiB7CiAgICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmKTsKICAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIFdURjo6TWFjaFNlbmRSaWdodCYmKTsKQEAgLTQ2
OCwyNiArNDIzLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpL
ZXlwcmVzc0NvbW1hbmQ+IHsKICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpLZXlw
cmVzc0NvbW1hbmQ+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPENHUG9pbnQ+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYs
IENHUG9pbnQpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENHUG9pbnQ+IGRlY29kZShEZWNv
ZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHU2l6ZT4gewot
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dTaXplKTsKLSAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxDR1NpemU+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPENHUmVjdD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNv
ZGVyJiwgQ0dSZWN0KTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDR1JlY3Q+IGRlY29kZShE
ZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHQWZmaW5l
VHJhbnNmb3JtPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBDR0FmZmluZVRy
YW5zZm9ybSk7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q0dBZmZpbmVUcmFuc2Zvcm0+IGRl
Y29kZShEZWNvZGVyJik7Ci19OwotI2VuZGlmCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAK
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpTZWxlY3Rpb25HZW9tZXRyeT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KaW5kZXggOGU0ZDVmMTMxZDgy
ZjFkZWZlMjZkMTVhYmZlZTA2NGEzYjk4OTBmOC4uNmE0MzQwNjcxNDYzZDk0NzA3MTkyMzEwYjFm
N2JhMGJkMDNhNzZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNv
cmVBcmd1bWVudENvZGVyc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tCkBAIC0zMjEsNzkgKzMyMSw2IEBAIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OktleXBy
ZXNzQ29tbWFuZD46CiAgICAgcmV0dXJuIFdURk1vdmUoY29tbWFuZCk7CiB9CiAKLXZvaWQgQXJn
dW1lbnRDb2RlcjxDR1JlY3Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0dSZWN0IHJlY3Qp
Ci17Ci0gICAgZW5jb2RlciA8PCByZWN0Lm9yaWdpbiA8PCByZWN0LnNpemU7Ci19Ci0KLXN0ZDo6
b3B0aW9uYWw8Q0dSZWN0PiBBcmd1bWVudENvZGVyPENHUmVjdD46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQotewotICAgIHN0ZDo6b3B0aW9uYWw8Q0dQb2ludD4gb3JpZ2luOwotICAgIGRlY29k
ZXIgPj4gb3JpZ2luOwotICAgIGlmICghb3JpZ2luKQotICAgICAgICByZXR1cm4geyB9OwotCi0g
ICAgc3RkOjpvcHRpb25hbDxDR1NpemU+IHNpemU7Ci0gICAgZGVjb2RlciA+PiBzaXplOwotICAg
IGlmICghc2l6ZSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLQotICAgIHJldHVybiBDR1JlY3QgeyAq
b3JpZ2luLCAqc2l6ZSB9OwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIENHU2l6ZSBzaXplKQotewotICAgIGVuY29kZXIgPDwgc2l6ZS53
aWR0aCA8PCBzaXplLmhlaWdodDsKLX0KLQotc3RkOjpvcHRpb25hbDxDR1NpemU+IEFyZ3VtZW50
Q29kZXI8Q0dTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgQ0dTaXplIHNp
emU7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaXplLndpZHRoKSkKLSAgICAgICAgcmV0dXJu
IHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUuaGVpZ2h0KSkKLSAgICAgICAgcmV0
dXJuIHsgfTsKLSAgICByZXR1cm4gc2l6ZTsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPENHUG9p
bnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0dQb2ludCBwb2ludCkKLXsKLSAgICBlbmNv
ZGVyIDw8IHBvaW50LnggPDwgcG9pbnQueTsKLX0KLQotc3RkOjpvcHRpb25hbDxDR1BvaW50PiBB
cmd1bWVudENvZGVyPENHUG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBD
R1BvaW50IHBvaW50OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9pbnQueCkpCi0gICAgICAg
IHJldHVybiB7IH07Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb2ludC55KSkKLSAgICAgICAg
cmV0dXJuIHsgfTsKLSAgICByZXR1cm4gcG9pbnQ7Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxD
R0FmZmluZVRyYW5zZm9ybT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR0FmZmluZVRyYW5z
Zm9ybSB0cmFuc2Zvcm0pCi17Ci0gICAgZW5jb2RlciA8PCB0cmFuc2Zvcm0uYSA8PCB0cmFuc2Zv
cm0uYiA8PCB0cmFuc2Zvcm0uYyA8PCB0cmFuc2Zvcm0uZCA8PCB0cmFuc2Zvcm0udHggPDwgdHJh
bnNmb3JtLnR5OwotfQotCi1zdGQ6Om9wdGlvbmFsPENHQWZmaW5lVHJhbnNmb3JtPiBBcmd1bWVu
dENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0g
ICAgQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
dHJhbnNmb3JtLmEpKQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUodHJhbnNmb3JtLmIpKQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUodHJhbnNmb3JtLmMpKQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUodHJhbnNmb3JtLmQpKQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVj
b2Rlci5kZWNvZGUodHJhbnNmb3JtLnR4KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHRyYW5zZm9ybS50eSkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAg
cmV0dXJuIHRyYW5zZm9ybTsKLX0KLQogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKIAog
dm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcj46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5i
bG9ja0hhbmRsZXImIGNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440218</attachid>
            <date>2021-10-05 08:41:56 -0700</date>
            <delta_ts>2021-10-05 09:03:21 -0700</delta_ts>
            <desc>Try to fix WPE again?</desc>
            <filename>bug-230714-20211005084155.patch</filename>
            <type>text/plain</type>
            <size>35150</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY4NWRmM2YwYWUzYjlmMGM2
M2FhN2M5MTNlODI2MjcyZmE1ZmEzZTMuLjFlYTg2ZTZlYjhhMmYzYjM3MTU4NmZiYjM3MTg3YTUz
YzUzMTgzODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjkgQEAKKzIwMjEtMTAtMDUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIFJlZmFj
dG9yIHNvbWUgSVBDIGFyZ3VtZW50IGVuY29kZXIgbG9naWMgdG8gd29yayB3aXRoIFN0cmVhbUNv
bm5lY3Rpb25FbmNvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA3MTQKKyAgICAgICAgcmRhcjovLzgzNDc3NTkxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byB1c2Ug
YElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXJgIHRvIGVuY29kZSBkaXNwbGF5IGxpc3QgaXRl
bXMgKGFuZCB0aGVpciBtZW1iZXJzKSBpbiBhbgorICAgICAgICBJUEMgc3RyZWFtLiBUaGlzIHBh
dGNoIGNvbXByaXNlcyB0d28gbWFpbiBzZXRzIG9mIGNoYW5nZXMgaW4gYEFyZ3VtZW50Q29kZXJz
YCwgYW5kIGBXZWJDb3JlQXJndW1lbnRDb2RlcnNgLiBTZWUKKyAgICAgICAgYmVsb3cgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmRlY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNb25vc3RhdGU+OjpkZWNvZGUpOiBEZWxldGVk
LgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2RlKToKKworICAgICAgICBNYW55IG9mIHRoZXNlIGBl
bmNvZGUoKWAgbWV0aG9kcyBhcmUgY3VycmVudGx5IG5vbi10ZW1wbGF0ZWQsIHdoaWNoIG1lYW5z
IHRoYXQgRW5jb2RlciBhbmQgRGVjb2RlciB1c2VkIGhlcmUKKyAgICAgICAgcmVmZXIgc29sZWx5
IHRvIElQQzo6RW5jb2RlciBhbmQgSVBDOjpEZWNvZGVyIChyZXNwZWN0aXZlbHkpIGluc3RlYWQg
b2Ygb3RoZXIgdHlwZXMgb2YgZW5jb2RlcnMgKG5hbWVseSwKKyAgICAgICAgU3RyZWFtQ29ubmVj
dGlvbkVuY29kZXIpLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxBZmZpbmVUcmFuc2Zvcm0+
OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UG9p
bnQ+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0
UG9pbnQ+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZs
b2F0UG9pbnQzRD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8RmxvYXRQb2ludDNEPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjplbmNvZGUpOiBEZWxldGVkLgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0U2l6ZT46OmRlY29kZSk6IERlbGV0ZWQu
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46
OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+
OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEludFBvaW50
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRSZWN0
Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRSZWN0
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRTaXpl
Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRTaXpl
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxMYXlvdXRT
aXplPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxMYXlv
dXRTaXplPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxM
YXlvdXRQb2ludD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8TGF5b3V0UG9pbnQ+OjpkZWNvZGUpOiBEZWxldGVkLgorCisgICAgICAgIFRoZXNlIFdlYkNv
cmUgYXJndW1lbnQgY29kZXJzIGFyZSBhbHNvIGN1cnJlbnRseSBpbmNvbXBhdGlibGUgd2l0aCBT
dHJlYW1Db25uZWN0aW9uRW5jb2Rlciwgc2luY2UgdGhleSBhcmUgbm9uLQorICAgICAgICB0ZW1w
bGF0ZWQgKGFuZCB0aHVzIG9ubHkgd29yayB3aXRoIElQQzo6RW5jb2RlcikuIFNpbmNlIHRoZXNl
IGFyZSBhbGwgZW5jb2RhYmxlIGFzIFBPRCB0eXBlcywgd2UgY2FuIGp1c3QgdXNlCisgICAgICAg
IFNpbXBsZUFyZ3VtZW50Q29kZXIgZm9yIGFsbCBvZiB0aGVzZS4gV2UgYWxzbyBhZGQgYSBuZXcg
YERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJgIG1hY3JvIHRvIG1ha2UgdGhpcyBjb2RlIGEK
KyAgICAgICAgYml0IGVhc2llciB0byByZWFkLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzTWFjLm1tOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHUmVjdD46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dSZWN0Pjo6ZGVjb2RlKTog
RGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDR1NpemU+OjplbmNvZGUpOiBE
ZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHU2l6ZT46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHQWZmaW5lVHJh
bnNmb3JtPjo6ZGVjb2RlKTogRGVsZXRlZC4KKwogMjAyMS0xMC0wNCAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBTUEkgdG8gbGF1bmNoIGEgc2VydmljZSBz
ZXJ2aWNlIHdvcmtlciBpbiBhIFdLV2ViVmlldyBhbmQgZXhwb3NlIHNlcnZpY2Ugd29ya2VyIHRv
IGluamVjdGVkIGJ1bmRsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMv
QXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRD
b2RlcnMuY3BwCmluZGV4IGEzMjA1NTE4Nzk4Yjc0ZGNlZGI4YTAxM2Y5YzljOTg4NWFhZTY2MTYu
LmU3ZjI3ODAzNjJkZDIwMzc0MzRjYTFjYjM5MGRkZTZlZjc5MTU5MzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaCIKICNpbmNsdWRlICJQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuaCIKICNpbmNsdWRlICJTdHJlYW1Db25uZWN0
aW9uRW5jb2Rlci5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
QEAgLTIxOCw2ICsyMTksNyBAQCBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBBcmd1bWVudENvZGVy
PFNIQTE6OkRpZ2VzdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTSAogfQogCiAjaWYgSEFW
RShBVURJVF9UT0tFTikKKwogdm9pZCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rva2VuX3Q+OjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgYXVkaXRfdG9rZW5fdCYgYXVkaXRUb2tlbikKIHsK
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChhdWRpdFRva2Vu
LnZhbCk7IGkrKykKQEAgLTIzMiwxNSArMjM0LDcgQEAgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wg
QXJndW1lbnRDb2RlcjxhdWRpdF90b2tlbl90Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIGEK
ICAgICB9CiAgICAgcmV0dXJuIHRydWU7CiB9Ci0jZW5kaWYKLQotdm9pZCBBcmd1bWVudENvZGVy
PE1vbm9zdGF0ZT46OmVuY29kZShFbmNvZGVyJiwgY29uc3QgTW9ub3N0YXRlJikKLXsKLX0KIAot
V0FSTl9VTlVTRURfUkVUVVJOIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBBcmd1bWVudENvZGVy
PE1vbm9zdGF0ZT46OmRlY29kZShEZWNvZGVyJikKLXsKLSAgICByZXR1cm4gTW9ub3N0YXRlIHsg
fTsKLX0KKyNlbmRpZiAvLyBIQVZFKEFVRElUX1RPS0VOKQogCiB9IC8vIG5hbWVzcGFjZSBJUEMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCmluZGV4IDQ3OWRi
NjBlZGMyNzE2ZDU1NjA2ZjY1MmYyNDMxYWQzNjlmNjU3MGMuLmQ5Nzc4NzdjNWZiMzY1MDdiYjY1
MzI0YzA2NjNmODYxNTY2ZDU5M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
SVBDL0FyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJn
dW1lbnRDb2RlcnMuaApAQCAtMTA4LDEyICsxMDgsMTQgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8QXJyYXlSZWZlcmVuY2U8VCwgYXJyYXlSZWZlcmVuY2VEeW5h
bWkKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPE9wdGlv
blNldDxUPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IE9wdGlvblNldDxUPiYgb3B0aW9uU2V0
KQogICAgIHsKICAgICAgICAgQVNTRVJUKFdURjo6aXNWYWxpZE9wdGlvblNldChvcHRpb25TZXQp
KTsKICAgICAgICAgZW5jb2RlciA8PCBvcHRpb25TZXQudG9SYXcoKTsKICAgICB9CiAKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgT3B0aW9uU2V0PFQ+JiBvcHRpb25TZXQpCiAg
ICAgewogICAgICAgICB0eXBlbmFtZSBPcHRpb25TZXQ8VD46OlN0b3JhZ2VUeXBlIHZhbHVlOwpA
QCAtMTI1LDYgKzEyNyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPE9wdGlvblNldDxUPj4gewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE9wdGlv
blNldDxUPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9w
dGlvbmFsPHR5cGVuYW1lIE9wdGlvblNldDxUPjo6U3RvcmFnZVR5cGU+IHZhbHVlOwpAQCAtMTg4
LDYgKzE5MSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPHN0
ZDo6b3B0aW9uYWw8VD4+IHsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1
bWVudENvZGVyPEJveDxUPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAg
c3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEJveDxUPiYgYm94KQog
ICAgIHsKICAgICAgICAgaWYgKCFib3gpIHsKQEAgLTE5OSw2ICsyMDMsNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxCb3g8VD4+IHsKICAgICAgICAgZW5jb2Rl
ciA8PCAqYm94LmdldCgpOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+
CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyLCBCb3g8VD4mIGJveCkKICAgICB7CiAgICAgICAgIGJvb2wgaXNFbmdhZ2VkOwpAQCAtMjE4
LDYgKzIyMyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPEJv
eDxUPj4gewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEJveDxUPj4gZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGlzRW5n
YWdlZDsKQEAgLTIzNiwxMSArMjQyLDEzIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBB
cmd1bWVudENvZGVyPEJveDxUPj4gewogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5h
bWUgVT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpwYWlyPFQsIFU+PiB7CisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3Qgc3RkOjpwYWlyPFQsIFU+JiBwYWlyKQogICAgIHsKICAgICAgICAgZW5jb2Rl
ciA8PCBwYWlyLmZpcnN0IDw8IHBhaXIuc2Vjb25kOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5
cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnBhaXI8VCwgVT4mIHBhaXIpCiAgICAgewogICAgICAg
ICBUIGZpcnN0OwpAQCAtMjU2LDYgKzI2NCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIFU+IHN0cnVjdCBBcmd1bWVudENvZGVyPHN0ZDo6cGFpcjxULCBVPj4gewogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAg
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxULCBVPj4gZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPFQ+IGZpcnN0OwpAQCAtMzY2LDEx
ICszNzUsMTMgQEAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gRWxlbWVudHM+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPHN0ZDo6dHVwbGU8RWxlbWVudHMuLi4+PiB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBLZXlUeXBlLCB0eXBlbmFtZSBWYWx1ZVR5cGU+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdURjo6
S2V5VmFsdWVQYWlyPEtleVR5cGUsIFZhbHVlVHlwZT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBXVEY6OktleVZhbHVlUGFpcjxLZXlUeXBlLCBWYWx1ZVR5cGU+JiBwYWlyKQogICAgIHsKICAg
ICAgICAgZW5jb2RlciA8PCBwYWlyLmtleSA8PCBwYWlyLnZhbHVlOwogICAgIH0KIAorICAgIHRl
bXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBi
b29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBXVEY6OktleVZhbHVlUGFpcjxLZXlUeXBlLCBW
YWx1ZVR5cGU+JiBwYWlyKQogICAgIHsKICAgICAgICAgS2V5VHlwZSBrZXk7CkBAIC0zOTgsNiAr
NDA5LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBl
bmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KICAgICAgICAgICAgIGVuY29kZXIgPDwg
dmVjdG9yW2ldOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAg
c3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBW
ZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+JiB2
ZWN0b3IpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxULCBpbmxpbmVDYXBh
Y2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4+IG9wdGlvbmFsOwpAQCAtNDM3LDYg
KzQ0OSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlw
ZW5hbWUgT3ZlcmZsb3dIYW5kbGVyLCBzaXplX3QgbWluCiAgICAgICAgIGVuY29kZXIuZW5jb2Rl
Rml4ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KHZlY3Rvci5k
YXRhKCkpLCB2ZWN0b3Iuc2l6ZSgpICogc2l6ZW9mKFQpLCBhbGlnbm9mKFQpKTsKICAgICB9CiAg
ICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVT
RURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxULCBpbmxpbmVD
YXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4mIHZlY3RvcikKICAgICB7CiAg
ICAgICAgIHVpbnQ2NF90IGRlY29kZWRTaXplOwpAQCAtNDUxLDcgKzQ2NCw3IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5k
bGVyLCBzaXplX3QgbWluCiAgICAgICAgIC8vIFNpbmNlIHdlIGtub3cgdGhlIHRvdGFsIHNpemUg
b2YgdGhlIGVsZW1lbnRzLCB3ZSBjYW4gYWxsb2NhdGUgdGhlIHZlY3RvciBpbgogICAgICAgICAv
LyBvbmUgZmVsbCBzd29vcC4gQmVmb3JlIGFsbG9jYXRpbmcgd2UgbXVzdCBob3dldmVyIG1ha2Ug
c3VyZSB0aGF0IHRoZSBkZWNvZGVyIGJ1ZmZlcgogICAgICAgICAvLyBpcyBiaWcgZW5vdWdoLgot
ICAgICAgICBpZiAoIWRlY29kZXIuYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbjxUPihzaXpl
KSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLnRlbXBsYXRlIGJ1ZmZlcklzTGFyZ2VFbm91Z2hUb0Nv
bnRhaW48VD4oc2l6ZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgVmVj
dG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5PiB0ZW1w
OwpAQCAtNDk4LDYgKzUxMSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVD
YXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyLCBzaXplX3QgbWluCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlw
ZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBNYXBwZWRUcmFpdHNBcmcsIHR5cGVuYW1lIEhh
c2hUYWJsZVRyYWl0cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaE1hcDxLZXlBcmcsIE1hcHBl
ZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBwZWRUcmFpdHNBcmcsIEhhc2hUYWJsZVRy
YWl0cz4+IHsKICAgICB0eXBlZGVmIEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcs
IEtleVRyYWl0c0FyZywgTWFwcGVkVHJhaXRzQXJnLCBIYXNoVGFibGVUcmFpdHM+IEhhc2hNYXBU
eXBlOwogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgSGFzaE1hcFR5cGUmIGhhc2hNYXApCiAgICAg
ewogICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQzMl90PihoYXNoTWFwLnNpemUo
KSk7CkBAIC01MDUsNiArNTE5LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFt
ZSBNYXBwZWRBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWkKICAgICAgICAg
ICAgIGVuY29kZXIgPDwgKml0OwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29k
ZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8SGFzaE1hcFR5cGU+IGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQogICAgIHsKICAgICAgICAgdWludDMyX3QgaGFzaE1hcFNpemU7CkBAIC01MzUs
NiArNTUwLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcs
IHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWkKICAgICAgICAgcmV0dXJuIGhhc2hN
YXA7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMg
V0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEhhc2hNYXBU
eXBlJiBoYXNoTWFwKQogICAgIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxIYXNoTWFwVHlwZT4g
dGVtcEhhc2hNYXA7CkBAIC01NDksNiArNTY1LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJn
LCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWkK
IHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5
VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNoVGFibGVUcmFpdHM+IHN0cnVjdCBBcmd1bWVudENvZGVy
PEhhc2hTZXQ8S2V5QXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIEhhc2hUYWJsZVRyYWl0cz4+
IHsKICAgICB0eXBlZGVmIEhhc2hTZXQ8S2V5QXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIEhh
c2hUYWJsZVRyYWl0cz4gSGFzaFNldFR5cGU7CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNv
ZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBIYXNo
U2V0VHlwZSYgaGFzaFNldCkKICAgICB7CiAgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8
dWludDY0X3Q+KGhhc2hTZXQuc2l6ZSgpKTsKQEAgLTU1Niw2ICs1NzMsNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZywg
dHlwZW5hbWUgSGFzaAogICAgICAgICAgICAgZW5jb2RlciA8PCAqaXQ7CiAgICAgfQogCisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJO
IGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEhhc2hTZXRUeXBlJiBoYXNoU2V0KQogICAg
IHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxIYXNoU2V0VHlwZT4gdGVtcEhhc2hTZXQ7CkBAIC01
NjcsNiArNTg1LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJn
LCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1lIEhhc2gKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMg
c3RkOjpvcHRpb25hbDxIYXNoU2V0VHlwZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAg
ewogICAgICAgICB1aW50NjRfdCBoYXNoU2V0U2l6ZTsKQEAgLTU5Niw2ICs2MTUsNyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0
c0FyZywgdHlwZW5hbWUgSGFzaAogdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBI
YXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmc+IHN0cnVjdCBBcmd1bWVudENvZGVyPEhhc2hD
b3VudGVkU2V0PEtleUFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnPj4gewogICAgIHR5cGVkZWYg
SGFzaENvdW50ZWRTZXQ8S2V5QXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmc+IEhhc2hDb3VudGVk
U2V0VHlwZTsKICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBIYXNoQ291bnRlZFNldFR5cGUm
IGhhc2hDb3VudGVkU2V0KQogICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1
aW50NjRfdD4oaGFzaENvdW50ZWRTZXQuc2l6ZSgpKTsKQEAgLTYwNiw2ICs2MjYsNyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0
c0FyZz4gc3RydWN0IEFyZ3VtZQogICAgICAgICB9CiAgICAgfQogICAgIAorICAgIHRlbXBsYXRl
PHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCBIYXNoQ291bnRlZFNldFR5cGUmIGhhc2hDb3VudGVkU2V0
KQogICAgIHsKICAgICAgICAgdWludDY0X3QgaGFzaENvdW50ZWRTZXRTaXplOwpAQCAtNjM3LDYg
KzY1OCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlw
ZW5hbWUgS2V5VHJhaXRzQXJnPiBzdHJ1Y3QgQXJndW1lCiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBWYWx1ZVR5cGUsIHR5cGVuYW1lIEVycm9yVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8RXhw
ZWN0ZWQ8VmFsdWVUeXBlLCBFcnJvclR5cGU+PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5j
b2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRXhw
ZWN0ZWQ8VmFsdWVUeXBlLCBFcnJvclR5cGU+JiBleHBlY3RlZCkKICAgICB7CiAgICAgICAgIGlm
ICghZXhwZWN0ZWQuaGFzX3ZhbHVlKCkpIHsKQEAgLTY0OCw2ICs2NzAsNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBWYWx1ZVR5cGUsIHR5cGVuYW1lIEVycm9yVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8RXhwZWN0ZWQ8VgogICAgICAgICBlbmNvZGVyIDw8IGV4cGVjdGVkLnZhbHVlKCk7CiAgICAg
fQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRp
b25hbDxFeHBlY3RlZDxWYWx1ZVR5cGUsIEVycm9yVHlwZT4+IGRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQogICAgIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxib29sPiBoYXNWYWx1ZTsKQEAgLTcw
NCw2ICs3MjcsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBFcnJvclR5cGU+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPEV4cGVjdGVkPHZvaWQsIEVycm9yVHlwZT4+IHsKIAogdGVtcGxhdGU8c2l6ZV90IGlu
ZGV4LCB0eXBlbmFtZS4uLiBUeXBlcz4KIHN0cnVjdCBWYXJpYW50Q29kZXIgeworICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IFdURjo6VmFyaWFudDxUeXBlcy4uLj4mIHZhcmlhbnQsIHVuc2lnbmVkIGkp
CiAgICAgewogICAgICAgICBpZiAoaSA9PSBpbmRleCkgewpAQCAtNzEzLDYgKzczNyw3IEBAIHN0
cnVjdCBWYXJpYW50Q29kZXIgewogICAgICAgICBWYXJpYW50Q29kZXI8aW5kZXggLSAxLCBUeXBl
cy4uLj46OmVuY29kZShlbmNvZGVyLCB2YXJpYW50LCBpKTsKICAgICB9CiAgICAgCisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXVEY6OlZh
cmlhbnQ8VHlwZXMuLi4+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgdW5zaWduZWQgaSkKICAg
ICB7CiAgICAgICAgIGlmIChpID09IGluZGV4KSB7CkBAIC03MjgsMTIgKzc1MywxNCBAQCBzdHJ1
Y3QgVmFyaWFudENvZGVyIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUuLi4gVHlwZXM+CiBzdHJ1Y3Qg
VmFyaWFudENvZGVyPDAsIFR5cGVzLi4uPiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rl
cj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV1RGOjpW
YXJpYW50PFR5cGVzLi4uPiYgdmFyaWFudCwgdW5zaWduZWQgaSkKICAgICB7CiAgICAgICAgIEFT
U0VSVF9VTlVTRUQoaSwgIWkpOwogICAgICAgICBlbmNvZGVyIDw8IFdURjo6Z2V0PDA+KHZhcmlh
bnQpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChpLCAh
aSk7CkBAIC03NDYsNiArNzczLDcgQEAgc3RydWN0IFZhcmlhbnRDb2RlcjwwLCBUeXBlcy4uLj4g
ewogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUuLi4gVHlwZXM+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
PgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXVEY6OlZh
cmlhbnQ8VHlwZXMuLi4+JiB2YXJpYW50KQogICAgIHsKICAgICAgICAgdW5zaWduZWQgaSA9IHZh
cmlhbnQuaW5kZXgoKTsKQEAgLTc1Myw2ICs3ODEsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBU
eXBlcz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gewogICAg
ICAgICBWYXJpYW50Q29kZXI8c2l6ZW9mLi4uKFR5cGVzKSAtIDEsIFR5cGVzLi4uPjo6ZW5jb2Rl
KGVuY29kZXIsIHZhcmlhbnQsIGkpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdURjo6VmFyaWFudDxUeXBlcy4u
Lj4+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKICAgICAgICAgc3RkOjpvcHRpb25h
bDx1bnNpZ25lZD4gaTsKQEAgLTgwNCw4ICs4MzMsMTQgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxhdWRpdF90b2tlbl90PiB7CiAjZW5kaWYKIAogdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxNb25vc3RhdGU+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IE1vbm9zdGF0ZSYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE1vbm9zdGF0
ZT4gZGVjb2RlKERlY29kZXImKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgorICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgTW9ub3N0YXRlJikgeyB9CisKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE1v
bm9zdGF0ZT4gZGVjb2RlKERlY29kZXImKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE1vbm9zdGF0
ZSB7IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBlZWVlNmFlYjYxYTMzOGFm
OGQzY2FlZmJmNTI0OTE5NDBhZjcwNTViLi4zYTM3YjMyY2Q4NjAwZGIyMGFkYzgwZDM2ZjU3Nzll
MDYyZmExODFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5jcHAKQEAgLTIzMSwxNiArMjMxLDYgQEAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBi
b29sIGRlY29kZVR5cGVzQW5kRGF0YShEZWNvZGVyJiBkZWNvZGVyLCBWZWN0b3I8U3RyaW4KICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGFmZmluZVRy
YW5zZm9ybSkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmVu
Y29kZShlbmNvZGVyLCBhZmZpbmVUcmFuc2Zvcm0pOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8
QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEFmZmluZVRyYW5zZm9y
bSYgYWZmaW5lVHJhbnNmb3JtKQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEFm
ZmluZVRyYW5zZm9ybT46OmRlY29kZShkZWNvZGVyLCBhZmZpbmVUcmFuc2Zvcm0pOwotfQotCiB2
b2lkIEFyZ3VtZW50Q29kZXI8Q2FjaGVRdWVyeU9wdGlvbnM+OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgQ2FjaGVRdWVyeU9wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgZW5jb2RlciA8
PCBvcHRpb25zLmlnbm9yZVNlYXJjaDsKQEAgLTQyNSw2ICs0MTUsNyBAQCBib29sIEFyZ3VtZW50
Q29kZXI8RXZlbnRUcmFja2luZ1JlZ2lvbnM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRXZl
bnRUcmFja2luZwogICAgIHJldHVybiB0cnVlOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNv
ZGVyPgogdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm1hdGlv
bk1hdHJpeCkKIHsKICAgICBlbmNvZGVyIDw8IHRyYW5zZm9ybWF0aW9uTWF0cml4Lm0xMSgpOwpA
QCAtNTA2LDYgKzQ5Nyw5IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1hdGlvbk1hdHJp
eD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBUcmFuc2Zvcm1hdGlvCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKK3RlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1hdGlvbk1hdHJp
eD46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVyJiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgm
KTsKK3RlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD46OmVu
Y29kZTxTdHJlYW1Db25uZWN0aW9uRW5jb2Rlcj4oU3RyZWFtQ29ubmVjdGlvbkVuY29kZXImLCBj
b25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOworCiB2b2lkIEFyZ3VtZW50Q29kZXI8TGluZWFy
VGltaW5nRnVuY3Rpb24+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTGluZWFyVGlt
aW5nRnVuY3Rpb24mIHRpbWluZ0Z1bmN0aW9uKQogewogICAgIGVuY29kZXIgPDwgdGltaW5nRnVu
Y3Rpb24udHlwZSgpOwpAQCAtNjE3LDY1ICs2MTEsNiBAQCBib29sIEFyZ3VtZW50Q29kZXI8U3By
aW5nVGltaW5nRnVuY3Rpb24+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU3ByaW5nVGltaW5n
RgogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFBvaW50JiBmbG9hdFBvaW50KQot
ewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmVuY29kZShlbmNvZGVyLCBm
bG9hdFBvaW50KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgRmxvYXRQb2ludCYgZmxvYXRQb2ludCkKLXsKLSAgICByZXR1cm4g
U2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0UG9p
bnQpOwotfQotCi1zdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+IEFyZ3VtZW50Q29kZXI8RmxvYXRQ
b2ludD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIEZsb2F0UG9pbnQgZmxvYXRQ
b2ludDsKLSAgICBpZiAoIVNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmRlY29kZShk
ZWNvZGVyLCBmbG9hdFBvaW50KSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICBy
ZXR1cm4gZmxvYXRQb2ludDsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFBvaW50M0QmIGZsb2F0UG9pbnQp
Ci17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+OjplbmNvZGUoZW5jb2Rl
ciwgZmxvYXRQb2ludCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRQb2ludDNEJiBmbG9hdFBvaW50KQotewotICAg
IHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmRlY29kZShkZWNvZGVy
LCBmbG9hdFBvaW50KTsKLX0KLQotCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UmVjdCYgZmxvYXRSZWN0KQotewotICAg
IFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0UmVj
dCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlciwgRmxvYXRSZWN0JiBmbG9hdFJlY3QpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3Vt
ZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0UmVjdCk7Ci19Ci0KLXN0
ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiBBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQotewotICAgIEZsb2F0UmVjdCBmbG9hdFJlY3Q7Ci0gICAgaWYgKCFT
aW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZShkZWNvZGVyLCBmbG9hdFJlY3Qp
KQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBmbG9hdFJlY3Q7Ci19
Ci0KLQotdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IEZsb2F0Qm94RXh0ZW50JiBmbG9hdEJveEV4dGVudCkKLXsKLSAgICBT
aW1wbGVBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0
Qm94RXh0ZW50KTsKLX0KLSAgICAKLWJvb2wgQXJndW1lbnRDb2RlcjxGbG9hdEJveEV4dGVudD46
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdEJveEV4dGVudCYgZmxvYXRCb3hFeHRlbnQp
Ci17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjpkZWNv
ZGUoZGVjb2RlciwgZmxvYXRCb3hFeHRlbnQpOwotfQotCi0KIHZvaWQgQXJndW1lbnRDb2RlcjxS
ZWN0RWRnZXM8Ym9vbD4+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVjdEVkZ2Vz
PGJvb2w+JiBib3hFZGdlcykKIHsKICAgICBTaW1wbGVBcmd1bWVudENvZGVyPFJlY3RFZGdlczxi
b29sPj46OmVuY29kZShlbmNvZGVyLCBib3hFZGdlcyk7CkBAIC02ODYsMjggKzYyMSw2IEBAIGJv
b2wgQXJndW1lbnRDb2RlcjxSZWN0RWRnZXM8Ym9vbD4+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgUmVjdEVkZ2VzPGJvb2w+JiBiCiAgICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8UmVj
dEVkZ2VzPGJvb2w+Pjo6ZGVjb2RlKGRlY29kZXIsIGJveEVkZ2VzKTsKIH0KIAotCi12b2lkIEFy
Z3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZs
b2F0U2l6ZSYgZmxvYXRTaXplKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRTaXpl
Pjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0U2l6ZSk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxG
bG9hdFNpemU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRTaXplJiBmbG9hdFNpemUp
Ci17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZGVjb2RlKGRl
Y29kZXIsIGZsb2F0U2l6ZSk7Ci19Ci0KLQotdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0Um91bmRl
ZFJlY3Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYg
cm91bmRlZFJlY3QpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFJvdW5kZWRSZWN0
Pjo6ZW5jb2RlKGVuY29kZXIsIHJvdW5kZWRSZWN0KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVy
PEZsb2F0Um91bmRlZFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRSb3VuZGVk
UmVjdCYgcm91bmRlZFJlY3QpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8Rmxv
YXRSb3VuZGVkUmVjdD46OmRlY29kZShkZWNvZGVyLCByb3VuZGVkUmVjdCk7Ci19Ci0KICNpZiBF
TkFCTEUoTUVUQV9WSUVXUE9SVCkKIHZvaWQgQXJndW1lbnRDb2RlcjxWaWV3cG9ydEFyZ3VtZW50
cz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgdmll
d3BvcnRBcmd1bWVudHMpCiB7CkBAIC03MzksODcgKzY1Miw2IEBAIGJvb2wgQXJndW1lbnRDb2Rl
cjxWaWV3cG9ydEF0dHJpYnV0ZXM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVmlld3BvcnRB
dHRyaWJ1CiAgICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8Vmlld3BvcnRBdHRyaWJ1dGVz
Pjo6ZGVjb2RlKGRlY29kZXIsIHZpZXdwb3J0QXR0cmlidXRlcyk7CiB9CiAKLXZvaWQgQXJndW1l
bnRDb2RlcjxJbnRQb2ludD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJbnRQb2lu
dCYgaW50UG9pbnQpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmVuY29k
ZShlbmNvZGVyLCBpbnRQb2ludCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxJbnRQb2ludD46
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBJbnRQb2ludCYgaW50UG9pbnQpCi17Ci0gICAgcmV0
dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoZGVjb2RlciwgaW50UG9p
bnQpOwotfQotCi1zdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiBBcmd1bWVudENvZGVy
PEludFBvaW50Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgSW50UG9pbnQgaW50
UG9pbnQ7Ci0gICAgaWYgKCFTaW1wbGVBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZGVjb2RlKGRl
Y29kZXIsIGludFBvaW50KSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICByZXR1
cm4gaW50UG9pbnQ7Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IEludFJlY3QmIGludFJlY3QpCi17Ci0gICAgU2ltcGxlQXJn
dW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZW5jb2RlKGVuY29kZXIsIGludFJlY3QpOwotfQotCi1ib29s
IEFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBJbnRSZWN0
JiBpbnRSZWN0KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEludFJlY3Q+Ojpk
ZWNvZGUoZGVjb2RlciwgaW50UmVjdCk7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8SW50UmVjdD4gQXJn
dW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgSW50
UmVjdCByZWN0OwotICAgIGlmICghZGVjb2RlKGRlY29kZXIsIHJlY3QpKQotICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiByZWN0OwotfQotCi10ZW1wbGF0ZTx0eXBlbmFt
ZSBFbmNvZGVyPgotdm9pZCBBcmd1bWVudENvZGVyPEludFNpemU+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgSW50U2l6ZSYgaW50U2l6ZSkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENv
ZGVyPEludFNpemU+OjplbmNvZGUoZW5jb2RlciwgaW50U2l6ZSk7Ci19Ci0KLXRlbXBsYXRlCi12
b2lkIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVyJiwgY29u
c3QgSW50U2l6ZSYpOwotdGVtcGxhdGUKLXZvaWQgQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZW5j
b2RlPFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyPihTdHJlYW1Db25uZWN0aW9uRW5jb2RlciYsIGNv
bnN0IEludFNpemUmKTsKLQotYm9vbCBBcmd1bWVudENvZGVyPEludFNpemU+OjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlciwgSW50U2l6ZSYgaW50U2l6ZSkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJn
dW1lbnRDb2RlcjxJbnRTaXplPjo6ZGVjb2RlKGRlY29kZXIsIGludFNpemUpOwotfQotCi1zdGQ6
Om9wdGlvbmFsPEludFNpemU+IEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQotewotICAgIEludFNpemUgaW50U2l6ZTsKLSAgICBpZiAoIVNpbXBsZUFyZ3Vt
ZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZShkZWNvZGVyLCBpbnRTaXplKSkKLSAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICByZXR1cm4gaW50U2l6ZTsKLX0KLQotdm9pZCBBcmd1bWVu
dENvZGVyPExheW91dFNpemU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTGF5b3V0
U2l6ZSYgbGF5b3V0U2l6ZSkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPExheW91dFNpemU+
OjplbmNvZGUoZW5jb2RlciwgbGF5b3V0U2l6ZSk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxM
YXlvdXRTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIExheW91dFNpemUmIGxheW91dFNp
emUpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmRlY29k
ZShkZWNvZGVyLCBsYXlvdXRTaXplKTsKLX0KLQotCi12b2lkIEFyZ3VtZW50Q29kZXI8TGF5b3V0
UG9pbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTGF5b3V0UG9pbnQmIGxheW91
dFBvaW50KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+OjplbmNvZGUo
ZW5jb2RlciwgbGF5b3V0UG9pbnQpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8TGF5b3V0UG9p
bnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTGF5b3V0UG9pbnQmIGxheW91dFBvaW50KQot
ewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPExheW91dFBvaW50Pjo6ZGVjb2RlKGRl
Y29kZXIsIGxheW91dFBvaW50KTsKLX0KLQogdm9pZCBBcmd1bWVudENvZGVyPFJlY2VudFNlYXJj
aD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWNlbnRTZWFyY2gmIHJlY2VudFNl
YXJjaCkKIHsKICAgICBlbmNvZGVyIDw8IHJlY2VudFNlYXJjaC5zdHJpbmcgPDwgcmVjZW50U2Vh
cmNoLnRpbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
CmluZGV4IDM1MTM4ZjVkZTMyZDdlMWYxZmQxNTRjMjYxZjhlNzkyZTQ3Mzc3MTAuLjlhOGExYzAz
MTJlN2ZmZmI2MTUxZGZlNGZlYTZkMzMzYzcwZGE5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0yNiwxMiArMjYsMjQgQEAKICNwcmFnbWEg
b25jZQogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Fm
ZmluZVRyYW5zZm9ybS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0b3BsYXlFdmVudC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQ29sb3JTcGFjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQzRC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJvdW5kZWRSZWN0Lmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9GbG9hdFNpemUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0luZGV4ZWREQi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5wdXRN
b2RlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRQb2ludC5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
SW50UmVjdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50U2l6ZS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvTGF5b3V0UG9pbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xheW91dFNpemUuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL0xlbmd0aEJveC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTZWxlY3Rp
b25PcHRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL05hdGl2ZUltYWdlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9OZXR3b3JrTG9hZE1ldHJpY3MuaD4KQEAgLTk2LDcgKzEwOCw2IEBAIHR5cGVkZWYg
c3RydWN0IF9fQ1ZCdWZmZXIqIENWUGl4ZWxCdWZmZXJSZWY7CiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEFic29sdXRlUG9zaXRpb25Db25zdHJhaW50czsKLWNsYXNzIEFmZmluZVRyYW5z
Zm9ybTsKIGNsYXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOwogY2xhc3MgQmxvYlBhcnQ7CiBj
bGFzcyBDZXJ0aWZpY2F0ZUluZm87CkBAIC0xMDksMjEgKzEyMCwxMSBAQCBjbGFzcyBEcmFnRGF0
YTsKIGNsYXNzIEZpbGU7CiBjbGFzcyBGaWx0ZXJPcGVyYXRpb247CiBjbGFzcyBGaWx0ZXJPcGVy
YXRpb25zOwotY2xhc3MgRmxvYXRQb2ludDsKLWNsYXNzIEZsb2F0UG9pbnQzRDsKLWNsYXNzIEZs
b2F0UmVjdDsKLWNsYXNzIEZsb2F0Um91bmRlZFJlY3Q7Ci1jbGFzcyBGbG9hdFNpemU7CiBjbGFz
cyBGaXhlZFBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50czsKIGNsYXNzIEZvbnQ7CiBjbGFzcyBG
b250UGxhdGZvcm1EYXRhOwogY2xhc3MgSFRUUEhlYWRlck1hcDsKLWNsYXNzIEludFBvaW50Owot
Y2xhc3MgSW50UmVjdDsKLWNsYXNzIEludFNpemU7CiBjbGFzcyBLZXlmcmFtZVZhbHVlTGlzdDsK
LWNsYXNzIExheW91dFNpemU7Ci1jbGFzcyBMYXlvdXRQb2ludDsKIGNsYXNzIExpbmVhclRpbWlu
Z0Z1bmN0aW9uOwogY2xhc3MgTm90aWZpY2F0aW9uOwogY2xhc3MgUGFzdGVib2FyZEN1c3RvbURh
dGE7CkBAIC0xNzQsOSArMTc1LDcgQEAgc3RydWN0IFRvdWNoQWN0aW9uRGF0YTsKIHN0cnVjdCBW
ZWxvY2l0eURhdGE7CiBzdHJ1Y3QgVmlld3BvcnRBdHRyaWJ1dGVzOwogc3RydWN0IFdpbmRvd0Zl
YXR1cmVzOwotICAgIAotdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIFJlY3RFZGdlczsKLXVzaW5n
IEZsb2F0Qm94RXh0ZW50ID0gUmVjdEVkZ2VzPGZsb2F0PjsKKwogdXNpbmcgSURCS2V5UGF0aCA9
IFZhcmlhbnQ8U3RyaW5nLCBWZWN0b3I8U3RyaW5nPj47CiAKICNpZiBQTEFURk9STShDT0NPQSkK
QEAgLTIyNywxMCArMjI2LDQxIEBAIHN0cnVjdCBSZWNvcmQ7CiAKIG5hbWVzcGFjZSBJUEMgewog
Ci10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkFmZmluZVRyYW5zZm9y
bT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6QWZm
aW5lVHJhbnNmb3JtJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29k
ZShEZWNvZGVyJiwgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJik7Ci19OworI2RlZmluZSBERUZJ
TkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFR5cGUpIFwKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFR5cGU+IHsgXAorICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
PiB2b2lkIHN0YXRpYyBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVHlwZSYgdmFsdWUp
IHsgU2ltcGxlQXJndW1lbnRDb2RlcjxUeXBlPjo6ZW5jb2RlKGVuY29kZXIsIHZhbHVlKTsgfSBc
CisgICAgICAgIGJvb2wgc3RhdGljIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBUeXBlJiB2YWx1
ZSkgeyByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxUeXBlPjo6ZGVjb2RlKGRlY29kZXIsIHZh
bHVlKTsgfSBcCisgICAgICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFR5cGU+IGRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKSBcCisgICAgICAgIHsgXAorICAgICAgICAgICAgVHlwZSB2YWx1ZTsgXAor
ICAgICAgICAgICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgdmFsdWUpKSBcCisgICAgICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgXAorICAgICAgICAgICAgcmV0dXJuIHZhbHVlOyBcCisg
ICAgICAgIH0gXAorICAgIH07IFwKKyAgICB0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8VHlw
ZT46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVyJiwgY29uc3QgVHlwZSYpOworCitERUZJTkVfU0lN
UExFX0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSkKK0RFRklORV9TSU1Q
TEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQpCitERUZJTkVfU0lNUExF
X0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6OkZsb2F0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VN
RU5UX0NPREVSKFdlYkNvcmU6OkZsb2F0UG9pbnQzRCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRf
Q09ERVIoV2ViQ29yZTo6RmxvYXRSZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihX
ZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihX
ZWJDb3JlOjpGbG9hdFNpemUpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6
OkludFBvaW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpJbnRSZWN0
KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpJbnRTaXplKQorREVGSU5F
X1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpMYXlvdXRTaXplKQorREVGSU5FX1NJTVBM
RV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpMYXlvdXRQb2ludCkKKworI2lmIFVTRShDRykKK0RF
RklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoQ0dSZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVO
VF9DT0RFUihDR1NpemUpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKENHUG9pbnQpCitE
RUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKENHQWZmaW5lVHJhbnNmb3JtKQorI2VuZGlmCisK
KyN1bmRlZiBERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSCiAKIHRlbXBsYXRlPD4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6QXR0cmlidXRlZFN0cmluZz4gewogICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6QXR0cmlidXRlZFN0cmluZyYpOwpA
QCAtMjY4LDYgKzI5OCw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6RXZlbnRUcmFja2luZ1JlZ2lvbnM+IHsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg+IHsKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3Qg
V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKICAgICBzdGF0aWMgV0FSTl9VTlVTRURf
UkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYpOwogfTsKQEAgLTI5OSw0MyArMzMwLDExIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPiB7CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAotdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFBvaW50PiB7Ci0gICAg
c3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7
Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2Vi
Q29yZTo6RmxvYXRQb2ludCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZs
b2F0UG9pbnQ+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0UG9pbnQzRD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludDNEJik7Ci0gICAgc3RhdGljIFdB
Uk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6RmxvYXRQb2lu
dDNEJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZs
b2F0UmVjdD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0Jik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29k
ZShEZWNvZGVyJiwgV2ViQ29yZTo6RmxvYXRSZWN0Jik7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6RmxvYXRSZWN0PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLSAgICAKLXRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQ+IHsKLSAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0
ZW50Jik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVy
JiwgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmKTsKLX07Ci0KIHRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+PiB7CiAgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpSZWN0RWRnZXM8Ym9vbD4mKTsKICAgICBz
dGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpS
ZWN0RWRnZXM8Ym9vbD4mKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8
V2ViQ29yZTo6RmxvYXRTaXplPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJO
IGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpGbG9hdFNpemUmKTsKLX07Ci0KLXRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdD4gewot
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSb3Vu
ZGVkUmVjdCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVj
b2RlciYsIFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3QmKTsKLX07Ci0KICNpZiBFTkFCTEUoTUVU
QV9WSUVXUE9SVCkKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Vmll
d3BvcnRBcmd1bWVudHM+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJik7CkBAIC0zNTAsMzUgKzM0OSw2IEBAIHRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzPiB7
CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2Vi
Q29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkludFBvaW50PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVu
Y29kZXImLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNF
RF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkludFBvaW50Jik7Ci0gICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+IGRlY29kZShEZWNvZGVyJik7
Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkludFJlY3Q+
IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXIm
LCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
SW50UmVjdD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6SW50U2l6ZT4gewotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29k
ZXI+Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJbnRT
aXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVy
JiwgV2ViQ29yZTo6SW50U2l6ZSYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkludFNpemU+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkxheW91dFNpemU+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkxheW91dFNpemUmKTsKLSAgICBzdGF0aWMgV0FSTl9V
TlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpMYXlvdXRTaXplJik7
Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkxheW91dFBv
aW50PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpM
YXlvdXRQb2ludCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUo
RGVjb2RlciYsIFdlYkNvcmU6OkxheW91dFBvaW50Jik7Ci19OwotCiB0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Okxlbmd0aD4gewogICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6TGVuZ3RoJik7CiAgICAgc3RhdGljIFdBUk5fVU5V
U0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6TGVuZ3RoJik7CkBAIC00
NTcsNiArNDI3LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpE
cmFnRGF0YT4gewogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKKwogdGVtcGxhdGU8PiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxXVEY6Ok1hY2hTZW5kUmlnaHQ+IHsKICAgICBzdGF0aWMgdm9p
ZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYpOwogICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiwgV1RGOjpNYWNoU2VuZFJpZ2h0JiYpOwpAQCAtNDY4LDI2
ICs0MzksNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OktleXBy
ZXNzQ29tbWFuZD4gewogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OktleXByZXNz
Q29tbWFuZD4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8Q0dQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dQ
b2ludCk7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q0dQb2ludD4gZGVjb2RlKERlY29kZXIm
KTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Q0dTaXplPiB7Ci0gICAg
c3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBDR1NpemUpOwotICAgIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPENHU2l6ZT4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8Q0dSZWN0PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBDR1JlY3QpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENHUmVjdD4gZGVjb2RlKERlY29k
ZXImKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFu
c2Zvcm0+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIENHQWZmaW5lVHJhbnNm
b3JtKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDR0FmZmluZVRyYW5zZm9ybT4gZGVjb2Rl
KERlY29kZXImKTsKLX07Ci0jZW5kaWYKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKIAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OlNlbGVjdGlvbkdlb21ldHJ5PiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQppbmRleCA4ZTRkNWYxMzFkODJmMWRl
ZmUyNmQxNWFiZmVlMDY0YTNiOTg5MGY4Li42YTQzNDA2NzE0NjNkOTQ3MDcxOTIzMTBiMWY3YmEw
YmQwM2E3NmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3Jl
QXJndW1lbnRDb2RlcnNNYWMubW0KQEAgLTMyMSw3OSArMzIxLDYgQEAgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6S2V5cHJlc3ND
b21tYW5kPjoKICAgICByZXR1cm4gV1RGTW92ZShjb21tYW5kKTsKIH0KIAotdm9pZCBBcmd1bWVu
dENvZGVyPENHUmVjdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR1JlY3QgcmVjdCkKLXsK
LSAgICBlbmNvZGVyIDw8IHJlY3Qub3JpZ2luIDw8IHJlY3Quc2l6ZTsKLX0KLQotc3RkOjpvcHRp
b25hbDxDR1JlY3Q+IEFyZ3VtZW50Q29kZXI8Q0dSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCi17Ci0gICAgc3RkOjpvcHRpb25hbDxDR1BvaW50PiBvcmlnaW47Ci0gICAgZGVjb2RlciA+
PiBvcmlnaW47Ci0gICAgaWYgKCFvcmlnaW4pCi0gICAgICAgIHJldHVybiB7IH07Ci0KLSAgICBz
dGQ6Om9wdGlvbmFsPENHU2l6ZT4gc2l6ZTsKLSAgICBkZWNvZGVyID4+IHNpemU7Ci0gICAgaWYg
KCFzaXplKQotICAgICAgICByZXR1cm4geyB9OwotCi0gICAgcmV0dXJuIENHUmVjdCB7ICpvcmln
aW4sICpzaXplIH07Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxDR1NpemU+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgQ0dTaXplIHNpemUpCi17Ci0gICAgZW5jb2RlciA8PCBzaXplLndpZHRo
IDw8IHNpemUuaGVpZ2h0OwotfQotCi1zdGQ6Om9wdGlvbmFsPENHU2l6ZT4gQXJndW1lbnRDb2Rl
cjxDR1NpemU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBDR1NpemUgc2l6ZTsK
LSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUud2lkdGgpKQotICAgICAgICByZXR1cm4geyB9
OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZS5oZWlnaHQpKQotICAgICAgICByZXR1cm4g
eyB9OwotICAgIHJldHVybiBzaXplOwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8Q0dQb2ludD46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR1BvaW50IHBvaW50KQotewotICAgIGVuY29kZXIg
PDwgcG9pbnQueCA8PCBwb2ludC55OwotfQotCi1zdGQ6Om9wdGlvbmFsPENHUG9pbnQ+IEFyZ3Vt
ZW50Q29kZXI8Q0dQb2ludD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIENHUG9p
bnQgcG9pbnQ7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb2ludC54KSkKLSAgICAgICAgcmV0
dXJuIHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvaW50LnkpKQotICAgICAgICByZXR1
cm4geyB9OwotICAgIHJldHVybiBwb2ludDsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPENHQWZm
aW5lVHJhbnNmb3JtPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENHQWZmaW5lVHJhbnNmb3Jt
IHRyYW5zZm9ybSkKLXsKLSAgICBlbmNvZGVyIDw8IHRyYW5zZm9ybS5hIDw8IHRyYW5zZm9ybS5i
IDw8IHRyYW5zZm9ybS5jIDw8IHRyYW5zZm9ybS5kIDw8IHRyYW5zZm9ybS50eCA8PCB0cmFuc2Zv
cm0udHk7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8Q0dBZmZpbmVUcmFuc2Zvcm0+IEFyZ3VtZW50Q29k
ZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBD
R0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm07Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0cmFu
c2Zvcm0uYSkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0
cmFuc2Zvcm0uYikpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29k
ZSh0cmFuc2Zvcm0uYykpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgaWYgKCFkZWNvZGVyLmRl
Y29kZSh0cmFuc2Zvcm0uZCkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZSh0cmFuc2Zvcm0udHgpKQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVj
b2Rlci5kZWNvZGUodHJhbnNmb3JtLnR5KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1
cm4gdHJhbnNmb3JtOwotfQotCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQogCiB2b2lk
IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyPjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2Nr
SGFuZGxlciYgY29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440219</attachid>
            <date>2021-10-05 09:03:24 -0700</date>
            <delta_ts>2021-10-05 14:13:05 -0700</delta_ts>
            <desc>Try to fix WPE again?</desc>
            <filename>bug-230714-20211005090323.patch</filename>
            <type>text/plain</type>
            <size>35169</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY4NWRmM2YwYWUzYjlmMGM2
M2FhN2M5MTNlODI2MjcyZmE1ZmEzZTMuLjFlYTg2ZTZlYjhhMmYzYjM3MTU4NmZiYjM3MTg3YTUz
YzUzMTgzODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjkgQEAKKzIwMjEtMTAtMDUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIFJlZmFj
dG9yIHNvbWUgSVBDIGFyZ3VtZW50IGVuY29kZXIgbG9naWMgdG8gd29yayB3aXRoIFN0cmVhbUNv
bm5lY3Rpb25FbmNvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA3MTQKKyAgICAgICAgcmRhcjovLzgzNDc3NTkxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byB1c2Ug
YElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXJgIHRvIGVuY29kZSBkaXNwbGF5IGxpc3QgaXRl
bXMgKGFuZCB0aGVpciBtZW1iZXJzKSBpbiBhbgorICAgICAgICBJUEMgc3RyZWFtLiBUaGlzIHBh
dGNoIGNvbXByaXNlcyB0d28gbWFpbiBzZXRzIG9mIGNoYW5nZXMgaW4gYEFyZ3VtZW50Q29kZXJz
YCwgYW5kIGBXZWJDb3JlQXJndW1lbnRDb2RlcnNgLiBTZWUKKyAgICAgICAgYmVsb3cgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmRlY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNb25vc3RhdGU+OjpkZWNvZGUpOiBEZWxldGVk
LgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2RlKToKKworICAgICAgICBNYW55IG9mIHRoZXNlIGBl
bmNvZGUoKWAgbWV0aG9kcyBhcmUgY3VycmVudGx5IG5vbi10ZW1wbGF0ZWQsIHdoaWNoIG1lYW5z
IHRoYXQgRW5jb2RlciBhbmQgRGVjb2RlciB1c2VkIGhlcmUKKyAgICAgICAgcmVmZXIgc29sZWx5
IHRvIElQQzo6RW5jb2RlciBhbmQgSVBDOjpEZWNvZGVyIChyZXNwZWN0aXZlbHkpIGluc3RlYWQg
b2Ygb3RoZXIgdHlwZXMgb2YgZW5jb2RlcnMgKG5hbWVseSwKKyAgICAgICAgU3RyZWFtQ29ubmVj
dGlvbkVuY29kZXIpLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxBZmZpbmVUcmFuc2Zvcm0+
OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UG9p
bnQ+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0
UG9pbnQ+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZs
b2F0UG9pbnQzRD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8RmxvYXRQb2ludDNEPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjplbmNvZGUpOiBEZWxldGVkLgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0U2l6ZT46OmRlY29kZSk6IERlbGV0ZWQu
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46
OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+
OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEludFBvaW50
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRSZWN0
Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRSZWN0
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRTaXpl
Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRTaXpl
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxMYXlvdXRT
aXplPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxMYXlv
dXRTaXplPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxM
YXlvdXRQb2ludD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8TGF5b3V0UG9pbnQ+OjpkZWNvZGUpOiBEZWxldGVkLgorCisgICAgICAgIFRoZXNlIFdlYkNv
cmUgYXJndW1lbnQgY29kZXJzIGFyZSBhbHNvIGN1cnJlbnRseSBpbmNvbXBhdGlibGUgd2l0aCBT
dHJlYW1Db25uZWN0aW9uRW5jb2Rlciwgc2luY2UgdGhleSBhcmUgbm9uLQorICAgICAgICB0ZW1w
bGF0ZWQgKGFuZCB0aHVzIG9ubHkgd29yayB3aXRoIElQQzo6RW5jb2RlcikuIFNpbmNlIHRoZXNl
IGFyZSBhbGwgZW5jb2RhYmxlIGFzIFBPRCB0eXBlcywgd2UgY2FuIGp1c3QgdXNlCisgICAgICAg
IFNpbXBsZUFyZ3VtZW50Q29kZXIgZm9yIGFsbCBvZiB0aGVzZS4gV2UgYWxzbyBhZGQgYSBuZXcg
YERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJgIG1hY3JvIHRvIG1ha2UgdGhpcyBjb2RlIGEK
KyAgICAgICAgYml0IGVhc2llciB0byByZWFkLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzTWFjLm1tOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHUmVjdD46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dSZWN0Pjo6ZGVjb2RlKTog
RGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDR1NpemU+OjplbmNvZGUpOiBE
ZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHU2l6ZT46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHQWZmaW5lVHJh
bnNmb3JtPjo6ZGVjb2RlKTogRGVsZXRlZC4KKwogMjAyMS0xMC0wNCAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBTUEkgdG8gbGF1bmNoIGEgc2VydmljZSBz
ZXJ2aWNlIHdvcmtlciBpbiBhIFdLV2ViVmlldyBhbmQgZXhwb3NlIHNlcnZpY2Ugd29ya2VyIHRv
IGluamVjdGVkIGJ1bmRsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMv
QXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRD
b2RlcnMuY3BwCmluZGV4IGEzMjA1NTE4Nzk4Yjc0ZGNlZGI4YTAxM2Y5YzljOTg4NWFhZTY2MTYu
LmU3ZjI3ODAzNjJkZDIwMzc0MzRjYTFjYjM5MGRkZTZlZjc5MTU5MzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaCIKICNpbmNsdWRlICJQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuaCIKICNpbmNsdWRlICJTdHJlYW1Db25uZWN0
aW9uRW5jb2Rlci5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
QEAgLTIxOCw2ICsyMTksNyBAQCBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBBcmd1bWVudENvZGVy
PFNIQTE6OkRpZ2VzdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTSAogfQogCiAjaWYgSEFW
RShBVURJVF9UT0tFTikKKwogdm9pZCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rva2VuX3Q+OjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgYXVkaXRfdG9rZW5fdCYgYXVkaXRUb2tlbikKIHsK
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChhdWRpdFRva2Vu
LnZhbCk7IGkrKykKQEAgLTIzMiwxNSArMjM0LDcgQEAgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wg
QXJndW1lbnRDb2RlcjxhdWRpdF90b2tlbl90Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIGEK
ICAgICB9CiAgICAgcmV0dXJuIHRydWU7CiB9Ci0jZW5kaWYKLQotdm9pZCBBcmd1bWVudENvZGVy
PE1vbm9zdGF0ZT46OmVuY29kZShFbmNvZGVyJiwgY29uc3QgTW9ub3N0YXRlJikKLXsKLX0KIAot
V0FSTl9VTlVTRURfUkVUVVJOIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBBcmd1bWVudENvZGVy
PE1vbm9zdGF0ZT46OmRlY29kZShEZWNvZGVyJikKLXsKLSAgICByZXR1cm4gTW9ub3N0YXRlIHsg
fTsKLX0KKyNlbmRpZiAvLyBIQVZFKEFVRElUX1RPS0VOKQogCiB9IC8vIG5hbWVzcGFjZSBJUEMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCmluZGV4IDQ3OWRi
NjBlZGMyNzE2ZDU1NjA2ZjY1MmYyNDMxYWQzNjlmNjU3MGMuLmQ5Nzc4NzdjNWZiMzY1MDdiYjY1
MzI0YzA2NjNmODYxNTY2ZDU5M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
SVBDL0FyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJn
dW1lbnRDb2RlcnMuaApAQCAtMTA4LDEyICsxMDgsMTQgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8QXJyYXlSZWZlcmVuY2U8VCwgYXJyYXlSZWZlcmVuY2VEeW5h
bWkKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPE9wdGlv
blNldDxUPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IE9wdGlvblNldDxUPiYgb3B0aW9uU2V0
KQogICAgIHsKICAgICAgICAgQVNTRVJUKFdURjo6aXNWYWxpZE9wdGlvblNldChvcHRpb25TZXQp
KTsKICAgICAgICAgZW5jb2RlciA8PCBvcHRpb25TZXQudG9SYXcoKTsKICAgICB9CiAKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgT3B0aW9uU2V0PFQ+JiBvcHRpb25TZXQpCiAg
ICAgewogICAgICAgICB0eXBlbmFtZSBPcHRpb25TZXQ8VD46OlN0b3JhZ2VUeXBlIHZhbHVlOwpA
QCAtMTI1LDYgKzEyNyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPE9wdGlvblNldDxUPj4gewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE9wdGlv
blNldDxUPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9w
dGlvbmFsPHR5cGVuYW1lIE9wdGlvblNldDxUPjo6U3RvcmFnZVR5cGU+IHZhbHVlOwpAQCAtMTg4
LDYgKzE5MSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPHN0
ZDo6b3B0aW9uYWw8VD4+IHsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1
bWVudENvZGVyPEJveDxUPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAg
c3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEJveDxUPiYgYm94KQog
ICAgIHsKICAgICAgICAgaWYgKCFib3gpIHsKQEAgLTE5OSw2ICsyMDMsNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxCb3g8VD4+IHsKICAgICAgICAgZW5jb2Rl
ciA8PCAqYm94LmdldCgpOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+
CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyLCBCb3g8VD4mIGJveCkKICAgICB7CiAgICAgICAgIGJvb2wgaXNFbmdhZ2VkOwpAQCAtMjE4
LDYgKzIyMyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPEJv
eDxUPj4gewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEJveDxUPj4gZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGlzRW5n
YWdlZDsKQEAgLTIzNiwxMSArMjQyLDEzIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBB
cmd1bWVudENvZGVyPEJveDxUPj4gewogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5h
bWUgVT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpwYWlyPFQsIFU+PiB7CisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3Qgc3RkOjpwYWlyPFQsIFU+JiBwYWlyKQogICAgIHsKICAgICAgICAgZW5jb2Rl
ciA8PCBwYWlyLmZpcnN0IDw8IHBhaXIuc2Vjb25kOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5
cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnBhaXI8VCwgVT4mIHBhaXIpCiAgICAgewogICAgICAg
ICBUIGZpcnN0OwpAQCAtMjU2LDYgKzI2NCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIFU+IHN0cnVjdCBBcmd1bWVudENvZGVyPHN0ZDo6cGFpcjxULCBVPj4gewogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAg
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxULCBVPj4gZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPFQ+IGZpcnN0OwpAQCAtMzY2LDEx
ICszNzUsMTMgQEAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gRWxlbWVudHM+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPHN0ZDo6dHVwbGU8RWxlbWVudHMuLi4+PiB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBLZXlUeXBlLCB0eXBlbmFtZSBWYWx1ZVR5cGU+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdURjo6
S2V5VmFsdWVQYWlyPEtleVR5cGUsIFZhbHVlVHlwZT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBXVEY6OktleVZhbHVlUGFpcjxLZXlUeXBlLCBWYWx1ZVR5cGU+JiBwYWlyKQogICAgIHsKICAg
ICAgICAgZW5jb2RlciA8PCBwYWlyLmtleSA8PCBwYWlyLnZhbHVlOwogICAgIH0KIAorICAgIHRl
bXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBi
b29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBXVEY6OktleVZhbHVlUGFpcjxLZXlUeXBlLCBW
YWx1ZVR5cGU+JiBwYWlyKQogICAgIHsKICAgICAgICAgS2V5VHlwZSBrZXk7CkBAIC0zOTgsNiAr
NDA5LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBl
bmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KICAgICAgICAgICAgIGVuY29kZXIgPDwg
dmVjdG9yW2ldOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAg
c3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBW
ZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+JiB2
ZWN0b3IpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxULCBpbmxpbmVDYXBh
Y2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4+IG9wdGlvbmFsOwpAQCAtNDM3LDYg
KzQ0OSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlw
ZW5hbWUgT3ZlcmZsb3dIYW5kbGVyLCBzaXplX3QgbWluCiAgICAgICAgIGVuY29kZXIuZW5jb2Rl
Rml4ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KHZlY3Rvci5k
YXRhKCkpLCB2ZWN0b3Iuc2l6ZSgpICogc2l6ZW9mKFQpLCBhbGlnbm9mKFQpKTsKICAgICB9CiAg
ICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVT
RURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxULCBpbmxpbmVD
YXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4mIHZlY3RvcikKICAgICB7CiAg
ICAgICAgIHVpbnQ2NF90IGRlY29kZWRTaXplOwpAQCAtNDUxLDcgKzQ2NCw3IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5k
bGVyLCBzaXplX3QgbWluCiAgICAgICAgIC8vIFNpbmNlIHdlIGtub3cgdGhlIHRvdGFsIHNpemUg
b2YgdGhlIGVsZW1lbnRzLCB3ZSBjYW4gYWxsb2NhdGUgdGhlIHZlY3RvciBpbgogICAgICAgICAv
LyBvbmUgZmVsbCBzd29vcC4gQmVmb3JlIGFsbG9jYXRpbmcgd2UgbXVzdCBob3dldmVyIG1ha2Ug
c3VyZSB0aGF0IHRoZSBkZWNvZGVyIGJ1ZmZlcgogICAgICAgICAvLyBpcyBiaWcgZW5vdWdoLgot
ICAgICAgICBpZiAoIWRlY29kZXIuYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbjxUPihzaXpl
KSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLnRlbXBsYXRlIGJ1ZmZlcklzTGFyZ2VFbm91Z2hUb0Nv
bnRhaW48VD4oc2l6ZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgVmVj
dG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5PiB0ZW1w
OwpAQCAtNDk4LDYgKzUxMSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVD
YXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyLCBzaXplX3QgbWluCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlw
ZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBNYXBwZWRUcmFpdHNBcmcsIHR5cGVuYW1lIEhh
c2hUYWJsZVRyYWl0cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaE1hcDxLZXlBcmcsIE1hcHBl
ZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBwZWRUcmFpdHNBcmcsIEhhc2hUYWJsZVRy
YWl0cz4+IHsKICAgICB0eXBlZGVmIEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcs
IEtleVRyYWl0c0FyZywgTWFwcGVkVHJhaXRzQXJnLCBIYXNoVGFibGVUcmFpdHM+IEhhc2hNYXBU
eXBlOwogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgSGFzaE1hcFR5cGUmIGhhc2hNYXApCiAgICAg
ewogICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQzMl90PihoYXNoTWFwLnNpemUo
KSk7CkBAIC01MDUsNiArNTE5LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFt
ZSBNYXBwZWRBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWkKICAgICAgICAg
ICAgIGVuY29kZXIgPDwgKml0OwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29k
ZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8SGFzaE1hcFR5cGU+IGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQogICAgIHsKICAgICAgICAgdWludDMyX3QgaGFzaE1hcFNpemU7CkBAIC01MzUs
NiArNTUwLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcs
IHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWkKICAgICAgICAgcmV0dXJuIGhhc2hN
YXA7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMg
V0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEhhc2hNYXBU
eXBlJiBoYXNoTWFwKQogICAgIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxIYXNoTWFwVHlwZT4g
dGVtcEhhc2hNYXA7CkBAIC01NDksNiArNTY1LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJn
LCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWkK
IHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5
VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNoVGFibGVUcmFpdHM+IHN0cnVjdCBBcmd1bWVudENvZGVy
PEhhc2hTZXQ8S2V5QXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIEhhc2hUYWJsZVRyYWl0cz4+
IHsKICAgICB0eXBlZGVmIEhhc2hTZXQ8S2V5QXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIEhh
c2hUYWJsZVRyYWl0cz4gSGFzaFNldFR5cGU7CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNv
ZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBIYXNo
U2V0VHlwZSYgaGFzaFNldCkKICAgICB7CiAgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8
dWludDY0X3Q+KGhhc2hTZXQuc2l6ZSgpKTsKQEAgLTU1Niw2ICs1NzMsNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZywg
dHlwZW5hbWUgSGFzaAogICAgICAgICAgICAgZW5jb2RlciA8PCAqaXQ7CiAgICAgfQogCisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJO
IGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEhhc2hTZXRUeXBlJiBoYXNoU2V0KQogICAg
IHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxIYXNoU2V0VHlwZT4gdGVtcEhhc2hTZXQ7CkBAIC01
NjcsNiArNTg1LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJn
LCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1lIEhhc2gKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMg
c3RkOjpvcHRpb25hbDxIYXNoU2V0VHlwZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAg
ewogICAgICAgICB1aW50NjRfdCBoYXNoU2V0U2l6ZTsKQEAgLTU5Niw2ICs2MTUsNyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0
c0FyZywgdHlwZW5hbWUgSGFzaAogdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBI
YXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmc+IHN0cnVjdCBBcmd1bWVudENvZGVyPEhhc2hD
b3VudGVkU2V0PEtleUFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnPj4gewogICAgIHR5cGVkZWYg
SGFzaENvdW50ZWRTZXQ8S2V5QXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmc+IEhhc2hDb3VudGVk
U2V0VHlwZTsKICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBIYXNoQ291bnRlZFNldFR5cGUm
IGhhc2hDb3VudGVkU2V0KQogICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1
aW50NjRfdD4oaGFzaENvdW50ZWRTZXQuc2l6ZSgpKTsKQEAgLTYwNiw2ICs2MjYsNyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0
c0FyZz4gc3RydWN0IEFyZ3VtZQogICAgICAgICB9CiAgICAgfQogICAgIAorICAgIHRlbXBsYXRl
PHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCBIYXNoQ291bnRlZFNldFR5cGUmIGhhc2hDb3VudGVkU2V0
KQogICAgIHsKICAgICAgICAgdWludDY0X3QgaGFzaENvdW50ZWRTZXRTaXplOwpAQCAtNjM3LDYg
KzY1OCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlw
ZW5hbWUgS2V5VHJhaXRzQXJnPiBzdHJ1Y3QgQXJndW1lCiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBWYWx1ZVR5cGUsIHR5cGVuYW1lIEVycm9yVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8RXhw
ZWN0ZWQ8VmFsdWVUeXBlLCBFcnJvclR5cGU+PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5j
b2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRXhw
ZWN0ZWQ8VmFsdWVUeXBlLCBFcnJvclR5cGU+JiBleHBlY3RlZCkKICAgICB7CiAgICAgICAgIGlm
ICghZXhwZWN0ZWQuaGFzX3ZhbHVlKCkpIHsKQEAgLTY0OCw2ICs2NzAsNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBWYWx1ZVR5cGUsIHR5cGVuYW1lIEVycm9yVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8RXhwZWN0ZWQ8VgogICAgICAgICBlbmNvZGVyIDw8IGV4cGVjdGVkLnZhbHVlKCk7CiAgICAg
fQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRp
b25hbDxFeHBlY3RlZDxWYWx1ZVR5cGUsIEVycm9yVHlwZT4+IGRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQogICAgIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxib29sPiBoYXNWYWx1ZTsKQEAgLTcw
NCw2ICs3MjcsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBFcnJvclR5cGU+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPEV4cGVjdGVkPHZvaWQsIEVycm9yVHlwZT4+IHsKIAogdGVtcGxhdGU8c2l6ZV90IGlu
ZGV4LCB0eXBlbmFtZS4uLiBUeXBlcz4KIHN0cnVjdCBWYXJpYW50Q29kZXIgeworICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IFdURjo6VmFyaWFudDxUeXBlcy4uLj4mIHZhcmlhbnQsIHVuc2lnbmVkIGkp
CiAgICAgewogICAgICAgICBpZiAoaSA9PSBpbmRleCkgewpAQCAtNzEzLDYgKzczNyw3IEBAIHN0
cnVjdCBWYXJpYW50Q29kZXIgewogICAgICAgICBWYXJpYW50Q29kZXI8aW5kZXggLSAxLCBUeXBl
cy4uLj46OmVuY29kZShlbmNvZGVyLCB2YXJpYW50LCBpKTsKICAgICB9CiAgICAgCisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXVEY6OlZh
cmlhbnQ8VHlwZXMuLi4+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgdW5zaWduZWQgaSkKICAg
ICB7CiAgICAgICAgIGlmIChpID09IGluZGV4KSB7CkBAIC03MjgsMTIgKzc1MywxNCBAQCBzdHJ1
Y3QgVmFyaWFudENvZGVyIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUuLi4gVHlwZXM+CiBzdHJ1Y3Qg
VmFyaWFudENvZGVyPDAsIFR5cGVzLi4uPiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rl
cj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV1RGOjpW
YXJpYW50PFR5cGVzLi4uPiYgdmFyaWFudCwgdW5zaWduZWQgaSkKICAgICB7CiAgICAgICAgIEFT
U0VSVF9VTlVTRUQoaSwgIWkpOwogICAgICAgICBlbmNvZGVyIDw8IFdURjo6Z2V0PDA+KHZhcmlh
bnQpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChpLCAh
aSk7CkBAIC03NDYsNiArNzczLDcgQEAgc3RydWN0IFZhcmlhbnRDb2RlcjwwLCBUeXBlcy4uLj4g
ewogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUuLi4gVHlwZXM+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
PgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXVEY6OlZh
cmlhbnQ8VHlwZXMuLi4+JiB2YXJpYW50KQogICAgIHsKICAgICAgICAgdW5zaWduZWQgaSA9IHZh
cmlhbnQuaW5kZXgoKTsKQEAgLTc1Myw2ICs3ODEsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBU
eXBlcz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gewogICAg
ICAgICBWYXJpYW50Q29kZXI8c2l6ZW9mLi4uKFR5cGVzKSAtIDEsIFR5cGVzLi4uPjo6ZW5jb2Rl
KGVuY29kZXIsIHZhcmlhbnQsIGkpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdURjo6VmFyaWFudDxUeXBlcy4u
Lj4+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKICAgICAgICAgc3RkOjpvcHRpb25h
bDx1bnNpZ25lZD4gaTsKQEAgLTgwNCw4ICs4MzMsMTQgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxhdWRpdF90b2tlbl90PiB7CiAjZW5kaWYKIAogdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxNb25vc3RhdGU+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IE1vbm9zdGF0ZSYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE1vbm9zdGF0
ZT4gZGVjb2RlKERlY29kZXImKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgorICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgTW9ub3N0YXRlJikgeyB9CisKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE1v
bm9zdGF0ZT4gZGVjb2RlKERlY29kZXImKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE1vbm9zdGF0
ZSB7IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBlZWVlNmFlYjYxYTMzOGFm
OGQzY2FlZmJmNTI0OTE5NDBhZjcwNTViLi4zYTM3YjMyY2Q4NjAwZGIyMGFkYzgwZDM2ZjU3Nzll
MDYyZmExODFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5jcHAKQEAgLTIzMSwxNiArMjMxLDYgQEAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBi
b29sIGRlY29kZVR5cGVzQW5kRGF0YShEZWNvZGVyJiBkZWNvZGVyLCBWZWN0b3I8U3RyaW4KICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGFmZmluZVRy
YW5zZm9ybSkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmVu
Y29kZShlbmNvZGVyLCBhZmZpbmVUcmFuc2Zvcm0pOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8
QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEFmZmluZVRyYW5zZm9y
bSYgYWZmaW5lVHJhbnNmb3JtKQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEFm
ZmluZVRyYW5zZm9ybT46OmRlY29kZShkZWNvZGVyLCBhZmZpbmVUcmFuc2Zvcm0pOwotfQotCiB2
b2lkIEFyZ3VtZW50Q29kZXI8Q2FjaGVRdWVyeU9wdGlvbnM+OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgQ2FjaGVRdWVyeU9wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgZW5jb2RlciA8
PCBvcHRpb25zLmlnbm9yZVNlYXJjaDsKQEAgLTQyNSw2ICs0MTUsNyBAQCBib29sIEFyZ3VtZW50
Q29kZXI8RXZlbnRUcmFja2luZ1JlZ2lvbnM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRXZl
bnRUcmFja2luZwogICAgIHJldHVybiB0cnVlOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNv
ZGVyPgogdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm1hdGlv
bk1hdHJpeCkKIHsKICAgICBlbmNvZGVyIDw8IHRyYW5zZm9ybWF0aW9uTWF0cml4Lm0xMSgpOwpA
QCAtNTA2LDYgKzQ5Nyw5IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1hdGlvbk1hdHJp
eD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBUcmFuc2Zvcm1hdGlvCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKK3RlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1hdGlvbk1hdHJp
eD46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVyJiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgm
KTsKK3RlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD46OmVu
Y29kZTxTdHJlYW1Db25uZWN0aW9uRW5jb2Rlcj4oU3RyZWFtQ29ubmVjdGlvbkVuY29kZXImLCBj
b25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOworCiB2b2lkIEFyZ3VtZW50Q29kZXI8TGluZWFy
VGltaW5nRnVuY3Rpb24+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTGluZWFyVGlt
aW5nRnVuY3Rpb24mIHRpbWluZ0Z1bmN0aW9uKQogewogICAgIGVuY29kZXIgPDwgdGltaW5nRnVu
Y3Rpb24udHlwZSgpOwpAQCAtNjE3LDY1ICs2MTEsNiBAQCBib29sIEFyZ3VtZW50Q29kZXI8U3By
aW5nVGltaW5nRnVuY3Rpb24+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU3ByaW5nVGltaW5n
RgogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFBvaW50JiBmbG9hdFBvaW50KQot
ewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmVuY29kZShlbmNvZGVyLCBm
bG9hdFBvaW50KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgRmxvYXRQb2ludCYgZmxvYXRQb2ludCkKLXsKLSAgICByZXR1cm4g
U2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0UG9p
bnQpOwotfQotCi1zdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+IEFyZ3VtZW50Q29kZXI8RmxvYXRQ
b2ludD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIEZsb2F0UG9pbnQgZmxvYXRQ
b2ludDsKLSAgICBpZiAoIVNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmRlY29kZShk
ZWNvZGVyLCBmbG9hdFBvaW50KSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICBy
ZXR1cm4gZmxvYXRQb2ludDsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFBvaW50M0QmIGZsb2F0UG9pbnQp
Ci17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+OjplbmNvZGUoZW5jb2Rl
ciwgZmxvYXRQb2ludCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRQb2ludDNEJiBmbG9hdFBvaW50KQotewotICAg
IHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmRlY29kZShkZWNvZGVy
LCBmbG9hdFBvaW50KTsKLX0KLQotCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UmVjdCYgZmxvYXRSZWN0KQotewotICAg
IFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0UmVj
dCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlciwgRmxvYXRSZWN0JiBmbG9hdFJlY3QpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3Vt
ZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0UmVjdCk7Ci19Ci0KLXN0
ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiBBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQotewotICAgIEZsb2F0UmVjdCBmbG9hdFJlY3Q7Ci0gICAgaWYgKCFT
aW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZShkZWNvZGVyLCBmbG9hdFJlY3Qp
KQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBmbG9hdFJlY3Q7Ci19
Ci0KLQotdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IEZsb2F0Qm94RXh0ZW50JiBmbG9hdEJveEV4dGVudCkKLXsKLSAgICBT
aW1wbGVBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0
Qm94RXh0ZW50KTsKLX0KLSAgICAKLWJvb2wgQXJndW1lbnRDb2RlcjxGbG9hdEJveEV4dGVudD46
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdEJveEV4dGVudCYgZmxvYXRCb3hFeHRlbnQp
Ci17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjpkZWNv
ZGUoZGVjb2RlciwgZmxvYXRCb3hFeHRlbnQpOwotfQotCi0KIHZvaWQgQXJndW1lbnRDb2RlcjxS
ZWN0RWRnZXM8Ym9vbD4+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVjdEVkZ2Vz
PGJvb2w+JiBib3hFZGdlcykKIHsKICAgICBTaW1wbGVBcmd1bWVudENvZGVyPFJlY3RFZGdlczxi
b29sPj46OmVuY29kZShlbmNvZGVyLCBib3hFZGdlcyk7CkBAIC02ODYsMjggKzYyMSw2IEBAIGJv
b2wgQXJndW1lbnRDb2RlcjxSZWN0RWRnZXM8Ym9vbD4+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgUmVjdEVkZ2VzPGJvb2w+JiBiCiAgICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8UmVj
dEVkZ2VzPGJvb2w+Pjo6ZGVjb2RlKGRlY29kZXIsIGJveEVkZ2VzKTsKIH0KIAotCi12b2lkIEFy
Z3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZs
b2F0U2l6ZSYgZmxvYXRTaXplKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRTaXpl
Pjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0U2l6ZSk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxG
bG9hdFNpemU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRTaXplJiBmbG9hdFNpemUp
Ci17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZGVjb2RlKGRl
Y29kZXIsIGZsb2F0U2l6ZSk7Ci19Ci0KLQotdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0Um91bmRl
ZFJlY3Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYg
cm91bmRlZFJlY3QpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFJvdW5kZWRSZWN0
Pjo6ZW5jb2RlKGVuY29kZXIsIHJvdW5kZWRSZWN0KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVy
PEZsb2F0Um91bmRlZFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRSb3VuZGVk
UmVjdCYgcm91bmRlZFJlY3QpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8Rmxv
YXRSb3VuZGVkUmVjdD46OmRlY29kZShkZWNvZGVyLCByb3VuZGVkUmVjdCk7Ci19Ci0KICNpZiBF
TkFCTEUoTUVUQV9WSUVXUE9SVCkKIHZvaWQgQXJndW1lbnRDb2RlcjxWaWV3cG9ydEFyZ3VtZW50
cz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgdmll
d3BvcnRBcmd1bWVudHMpCiB7CkBAIC03MzksODcgKzY1Miw2IEBAIGJvb2wgQXJndW1lbnRDb2Rl
cjxWaWV3cG9ydEF0dHJpYnV0ZXM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVmlld3BvcnRB
dHRyaWJ1CiAgICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8Vmlld3BvcnRBdHRyaWJ1dGVz
Pjo6ZGVjb2RlKGRlY29kZXIsIHZpZXdwb3J0QXR0cmlidXRlcyk7CiB9CiAKLXZvaWQgQXJndW1l
bnRDb2RlcjxJbnRQb2ludD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJbnRQb2lu
dCYgaW50UG9pbnQpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmVuY29k
ZShlbmNvZGVyLCBpbnRQb2ludCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxJbnRQb2ludD46
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBJbnRQb2ludCYgaW50UG9pbnQpCi17Ci0gICAgcmV0
dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoZGVjb2RlciwgaW50UG9p
bnQpOwotfQotCi1zdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiBBcmd1bWVudENvZGVy
PEludFBvaW50Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgSW50UG9pbnQgaW50
UG9pbnQ7Ci0gICAgaWYgKCFTaW1wbGVBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZGVjb2RlKGRl
Y29kZXIsIGludFBvaW50KSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICByZXR1
cm4gaW50UG9pbnQ7Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IEludFJlY3QmIGludFJlY3QpCi17Ci0gICAgU2ltcGxlQXJn
dW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZW5jb2RlKGVuY29kZXIsIGludFJlY3QpOwotfQotCi1ib29s
IEFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBJbnRSZWN0
JiBpbnRSZWN0KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEludFJlY3Q+Ojpk
ZWNvZGUoZGVjb2RlciwgaW50UmVjdCk7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8SW50UmVjdD4gQXJn
dW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgSW50
UmVjdCByZWN0OwotICAgIGlmICghZGVjb2RlKGRlY29kZXIsIHJlY3QpKQotICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiByZWN0OwotfQotCi10ZW1wbGF0ZTx0eXBlbmFt
ZSBFbmNvZGVyPgotdm9pZCBBcmd1bWVudENvZGVyPEludFNpemU+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgSW50U2l6ZSYgaW50U2l6ZSkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENv
ZGVyPEludFNpemU+OjplbmNvZGUoZW5jb2RlciwgaW50U2l6ZSk7Ci19Ci0KLXRlbXBsYXRlCi12
b2lkIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVyJiwgY29u
c3QgSW50U2l6ZSYpOwotdGVtcGxhdGUKLXZvaWQgQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZW5j
b2RlPFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyPihTdHJlYW1Db25uZWN0aW9uRW5jb2RlciYsIGNv
bnN0IEludFNpemUmKTsKLQotYm9vbCBBcmd1bWVudENvZGVyPEludFNpemU+OjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlciwgSW50U2l6ZSYgaW50U2l6ZSkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJn
dW1lbnRDb2RlcjxJbnRTaXplPjo6ZGVjb2RlKGRlY29kZXIsIGludFNpemUpOwotfQotCi1zdGQ6
Om9wdGlvbmFsPEludFNpemU+IEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQotewotICAgIEludFNpemUgaW50U2l6ZTsKLSAgICBpZiAoIVNpbXBsZUFyZ3Vt
ZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZShkZWNvZGVyLCBpbnRTaXplKSkKLSAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICByZXR1cm4gaW50U2l6ZTsKLX0KLQotdm9pZCBBcmd1bWVu
dENvZGVyPExheW91dFNpemU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTGF5b3V0
U2l6ZSYgbGF5b3V0U2l6ZSkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPExheW91dFNpemU+
OjplbmNvZGUoZW5jb2RlciwgbGF5b3V0U2l6ZSk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxM
YXlvdXRTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIExheW91dFNpemUmIGxheW91dFNp
emUpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmRlY29k
ZShkZWNvZGVyLCBsYXlvdXRTaXplKTsKLX0KLQotCi12b2lkIEFyZ3VtZW50Q29kZXI8TGF5b3V0
UG9pbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTGF5b3V0UG9pbnQmIGxheW91
dFBvaW50KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+OjplbmNvZGUo
ZW5jb2RlciwgbGF5b3V0UG9pbnQpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8TGF5b3V0UG9p
bnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTGF5b3V0UG9pbnQmIGxheW91dFBvaW50KQot
ewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPExheW91dFBvaW50Pjo6ZGVjb2RlKGRl
Y29kZXIsIGxheW91dFBvaW50KTsKLX0KLQogdm9pZCBBcmd1bWVudENvZGVyPFJlY2VudFNlYXJj
aD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWNlbnRTZWFyY2gmIHJlY2VudFNl
YXJjaCkKIHsKICAgICBlbmNvZGVyIDw8IHJlY2VudFNlYXJjaC5zdHJpbmcgPDwgcmVjZW50U2Vh
cmNoLnRpbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
CmluZGV4IDM1MTM4ZjVkZTMyZDdlMWYxZmQxNTRjMjYxZjhlNzkyZTQ3Mzc3MTAuLmIxODNiNjMx
ZjA0YjQ2ZTMwNzZiMjMzNjRkYzc3OGUwNjBiYTVjZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0yNiwxMiArMjYsMjQgQEAKICNwcmFnbWEg
b25jZQogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Fm
ZmluZVRyYW5zZm9ybS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0b3BsYXlFdmVudC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQ29sb3JTcGFjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQzRC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJvdW5kZWRSZWN0Lmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9GbG9hdFNpemUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0luZGV4ZWREQi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5wdXRN
b2RlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRQb2ludC5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
SW50UmVjdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50U2l6ZS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvTGF5b3V0UG9pbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xheW91dFNpemUuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL0xlbmd0aEJveC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTZWxlY3Rp
b25PcHRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL05hdGl2ZUltYWdlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9OZXR3b3JrTG9hZE1ldHJpY3MuaD4KQEAgLTk2LDcgKzEwOCw2IEBAIHR5cGVkZWYg
c3RydWN0IF9fQ1ZCdWZmZXIqIENWUGl4ZWxCdWZmZXJSZWY7CiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEFic29sdXRlUG9zaXRpb25Db25zdHJhaW50czsKLWNsYXNzIEFmZmluZVRyYW5z
Zm9ybTsKIGNsYXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOwogY2xhc3MgQmxvYlBhcnQ7CiBj
bGFzcyBDZXJ0aWZpY2F0ZUluZm87CkBAIC0xMDksMjEgKzEyMCwxMSBAQCBjbGFzcyBEcmFnRGF0
YTsKIGNsYXNzIEZpbGU7CiBjbGFzcyBGaWx0ZXJPcGVyYXRpb247CiBjbGFzcyBGaWx0ZXJPcGVy
YXRpb25zOwotY2xhc3MgRmxvYXRQb2ludDsKLWNsYXNzIEZsb2F0UG9pbnQzRDsKLWNsYXNzIEZs
b2F0UmVjdDsKLWNsYXNzIEZsb2F0Um91bmRlZFJlY3Q7Ci1jbGFzcyBGbG9hdFNpemU7CiBjbGFz
cyBGaXhlZFBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50czsKIGNsYXNzIEZvbnQ7CiBjbGFzcyBG
b250UGxhdGZvcm1EYXRhOwogY2xhc3MgSFRUUEhlYWRlck1hcDsKLWNsYXNzIEludFBvaW50Owot
Y2xhc3MgSW50UmVjdDsKLWNsYXNzIEludFNpemU7CiBjbGFzcyBLZXlmcmFtZVZhbHVlTGlzdDsK
LWNsYXNzIExheW91dFNpemU7Ci1jbGFzcyBMYXlvdXRQb2ludDsKIGNsYXNzIExpbmVhclRpbWlu
Z0Z1bmN0aW9uOwogY2xhc3MgTm90aWZpY2F0aW9uOwogY2xhc3MgUGFzdGVib2FyZEN1c3RvbURh
dGE7CkBAIC0xNzQsOSArMTc1LDcgQEAgc3RydWN0IFRvdWNoQWN0aW9uRGF0YTsKIHN0cnVjdCBW
ZWxvY2l0eURhdGE7CiBzdHJ1Y3QgVmlld3BvcnRBdHRyaWJ1dGVzOwogc3RydWN0IFdpbmRvd0Zl
YXR1cmVzOwotICAgIAotdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIFJlY3RFZGdlczsKLXVzaW5n
IEZsb2F0Qm94RXh0ZW50ID0gUmVjdEVkZ2VzPGZsb2F0PjsKKwogdXNpbmcgSURCS2V5UGF0aCA9
IFZhcmlhbnQ8U3RyaW5nLCBWZWN0b3I8U3RyaW5nPj47CiAKICNpZiBQTEFURk9STShDT0NPQSkK
QEAgLTIyNywxMCArMjI2LDQxIEBAIHN0cnVjdCBSZWNvcmQ7CiAKIG5hbWVzcGFjZSBJUEMgewog
Ci10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkFmZmluZVRyYW5zZm9y
bT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6QWZm
aW5lVHJhbnNmb3JtJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29k
ZShEZWNvZGVyJiwgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJik7Ci19OworI2RlZmluZSBERUZJ
TkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFR5cGUpIFwKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFR5cGU+IHsgXAorICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
PiBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVHlwZSYgdmFsdWUp
IHsgU2ltcGxlQXJndW1lbnRDb2RlcjxUeXBlPjo6ZW5jb2RlKGVuY29kZXIsIHZhbHVlKTsgfSBc
CisgICAgICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlciwgVHlwZSYgdmFsdWUpIHsgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8VHlwZT46
OmRlY29kZShkZWNvZGVyLCB2YWx1ZSk7IH0gXAorICAgICAgICBzdGF0aWMgc3RkOjpvcHRpb25h
bDxUeXBlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikgXAorICAgICAgICB7IFwKKyAgICAgICAg
ICAgIFR5cGUgdmFsdWU7IFwKKyAgICAgICAgICAgIGlmICghZGVjb2RlKGRlY29kZXIsIHZhbHVl
KSkgXAorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7IFwKKyAgICAgICAgICAg
IHJldHVybiB2YWx1ZTsgXAorICAgICAgICB9IFwKKyAgICB9OyBcCisgICAgdGVtcGxhdGUgdm9p
ZCBBcmd1bWVudENvZGVyPFR5cGU+OjplbmNvZGU8RW5jb2Rlcj4oRW5jb2RlciYsIGNvbnN0IFR5
cGUmKTsKKworREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpBZmZpbmVUcmFu
c2Zvcm0pCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6OkZsb2F0Qm94RXh0
ZW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpGbG9hdFBvaW50KQor
REVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihXZWJDb3JlOjpGbG9hdFBvaW50M0QpCitERUZJ
TkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKFdlYkNvcmU6OkZsb2F0UmVjdCkKK0RFRklORV9TSU1Q
TEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdCkKK0RFRklORV9TSU1Q
TEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6RmxvYXRTaXplKQorREVGSU5FX1NJTVBMRV9BUkdV
TUVOVF9DT0RFUihXZWJDb3JlOjpJbnRQb2ludCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09E
RVIoV2ViQ29yZTo6SW50UmVjdCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29y
ZTo6SW50U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6TGF5b3V0
U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoV2ViQ29yZTo6TGF5b3V0UG9pbnQp
CisKKyNpZiBVU0UoQ0cpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSKENHUmVjdCkKK0RF
RklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVIoQ0dTaXplKQorREVGSU5FX1NJTVBMRV9BUkdVTUVO
VF9DT0RFUihDR1BvaW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUihDR0FmZmluZVRy
YW5zZm9ybSkKKyNlbmRpZgorCisjdW5kZWYgREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUgog
CiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkF0dHJpYnV0ZWRTdHJp
bmc+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkF0
dHJpYnV0ZWRTdHJpbmcmKTsKQEAgLTI2OCw2ICsyOTgsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6OkV2ZW50VHJhY2tpbmdSZWdpb25zPiB7CiB9OwogCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4
PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4Jik7CiAgICAg
c3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6
VHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKIH07CkBAIC0yOTksNDMgKzMzMCwxMSBAQCB0ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz4gewogICAg
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz4gZGVjb2RlKERl
Y29kZXImKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
RmxvYXRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRQb2ludCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBk
ZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKLSAgICBzdGF0aWMgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFBvaW50M0Q+IHsKLSAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQz
RCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYs
IFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpGbG9hdFJlY3Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5j
b2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNF
RF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UmVjdCYpOwotICAg
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gZGVjb2RlKERlY29kZXIm
KTsKLX07Ci0gICAgCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZs
b2F0Qm94RXh0ZW50PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdEJveEV4dGVudCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50Jik7Ci19OwotCiB0
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlJlY3RFZGdlczxib29sPj4g
ewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UmVjdEVk
Z2VzPGJvb2w+Jik7CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShE
ZWNvZGVyJiwgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+Jik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0U2l6ZT4gewotICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7Ci0gICAgc3RhdGlj
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6RmxvYXRT
aXplJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZs
b2F0Um91bmRlZFJlY3Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3QmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVU
VVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0Jik7Ci19
OwotCiAjaWYgRU5BQkxFKE1FVEFfVklFV1BPUlQpCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiB7CiAgICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYpOwpAQCAtMzUw
LDM1ICszNDksNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlZp
ZXdwb3J0QXR0cmlidXRlcz4gewogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBk
ZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYpOwogfTsKIAotdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRQb2ludD4gewotICAgIHN0
YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKLSAg
ICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3Jl
OjpJbnRQb2ludCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50
PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpJbnRSZWN0PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBj
b25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBi
b29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6SW50UmVjdCYpOwotICAgIHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OkludFJlY3Q+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkludFNpemU+IHsKLSAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkludFNpemUmKTsKLSAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpJbnRTaXplPiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMYXlvdXRTaXplPiB7Ci0gICAg
c3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpMYXlvdXRTaXplJik7
Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2Vi
Q29yZTo6TGF5b3V0U2l6ZSYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpMYXlvdXRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVy
JiwgY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURf
UkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpMYXlvdXRQb2ludCYpOwotfTsK
LQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMZW5ndGg+IHsKICAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6Okxlbmd0aCYpOwog
ICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNv
cmU6Okxlbmd0aCYpOwpAQCAtNDU3LDYgKzQyNyw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6RHJhZ0RhdGE+IHsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpNYWNoU2VuZFJpZ2h0
PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXVEY6Ok1hY2hTZW5k
UmlnaHQmKTsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIFdURjo6TWFjaFNlbmRS
aWdodCYmKTsKQEAgLTQ2OCwyNiArNDM5LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IHsKICAgICBzdGF0aWMgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCi10ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHUG9pbnQ+IHsKLSAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYsIENHUG9pbnQpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENHUG9p
bnQ+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPENHU2l6ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dTaXplKTsK
LSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDR1NpemU+IGRlY29kZShEZWNvZGVyJik7Ci19Owot
Ci10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHUmVjdD4gewotICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dSZWN0KTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxD
R1JlY3Q+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImLCBDR0FmZmluZVRyYW5zZm9ybSk7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q0dBZmZp
bmVUcmFuc2Zvcm0+IGRlY29kZShEZWNvZGVyJik7Ci19OwotI2VuZGlmCisjZW5kaWYgLy8gUExB
VEZPUk0oQ09DT0EpCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZWxlY3Rpb25HZW9tZXRyeT4gewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbSBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KaW5k
ZXggOGU0ZDVmMTMxZDgyZjFkZWZlMjZkMTVhYmZlZTA2NGEzYjk4OTBmOC4uNmE0MzQwNjcxNDYz
ZDk0NzA3MTkyMzEwYjFmN2JhMGJkMDNhNzZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tCkBAIC0zMjEsNzkgKzMyMSw2
IEBAIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD46CiAgICAgcmV0dXJuIFdURk1vdmUoY29tbWFuZCk7
CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxDR1JlY3Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgQ0dSZWN0IHJlY3QpCi17Ci0gICAgZW5jb2RlciA8PCByZWN0Lm9yaWdpbiA8PCByZWN0LnNp
emU7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8Q0dSZWN0PiBBcmd1bWVudENvZGVyPENHUmVjdD46OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIHN0ZDo6b3B0aW9uYWw8Q0dQb2ludD4gb3Jp
Z2luOwotICAgIGRlY29kZXIgPj4gb3JpZ2luOwotICAgIGlmICghb3JpZ2luKQotICAgICAgICBy
ZXR1cm4geyB9OwotCi0gICAgc3RkOjpvcHRpb25hbDxDR1NpemU+IHNpemU7Ci0gICAgZGVjb2Rl
ciA+PiBzaXplOwotICAgIGlmICghc2l6ZSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLQotICAgIHJl
dHVybiBDR1JlY3QgeyAqb3JpZ2luLCAqc2l6ZSB9OwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8
Q0dTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENHU2l6ZSBzaXplKQotewotICAgIGVu
Y29kZXIgPDwgc2l6ZS53aWR0aCA8PCBzaXplLmhlaWdodDsKLX0KLQotc3RkOjpvcHRpb25hbDxD
R1NpemU+IEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17
Ci0gICAgQ0dTaXplIHNpemU7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaXplLndpZHRoKSkK
LSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUuaGVpZ2h0
KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4gc2l6ZTsKLX0KLQotdm9pZCBBcmd1
bWVudENvZGVyPENHUG9pbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0dQb2ludCBwb2lu
dCkKLXsKLSAgICBlbmNvZGVyIDw8IHBvaW50LnggPDwgcG9pbnQueTsKLX0KLQotc3RkOjpvcHRp
b25hbDxDR1BvaW50PiBBcmd1bWVudENvZGVyPENHUG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKLXsKLSAgICBDR1BvaW50IHBvaW50OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9p
bnQueCkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb2lu
dC55KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4gcG9pbnQ7Ci19Ci0KLXZvaWQg
QXJndW1lbnRDb2RlcjxDR0FmZmluZVRyYW5zZm9ybT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0pCi17Ci0gICAgZW5jb2RlciA8PCB0cmFuc2Zv
cm0uYSA8PCB0cmFuc2Zvcm0uYiA8PCB0cmFuc2Zvcm0uYyA8PCB0cmFuc2Zvcm0uZCA8PCB0cmFu
c2Zvcm0udHggPDwgdHJhbnNmb3JtLnR5OwotfQotCi1zdGQ6Om9wdGlvbmFsPENHQWZmaW5lVHJh
bnNmb3JtPiBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCi17Ci0gICAgQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtOwotICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmEpKQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmIpKQotICAgICAgICByZXR1cm4geyB9OwotICAg
IGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmMpKQotICAgICAgICByZXR1cm4geyB9Owot
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmQpKQotICAgICAgICByZXR1cm4geyB9
OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLnR4KSkKLSAgICAgICAgcmV0dXJu
IHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5zZm9ybS50eSkpCi0gICAgICAgIHJl
dHVybiB7IH07Ci0gICAgcmV0dXJuIHRyYW5zZm9ybTsKLX0KLQogI2lmIEVOQUJMRShDT05URU5U
X0ZJTFRFUklORykKIAogdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJV
bmJsb2NrSGFuZGxlcj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpD
b250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIGNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440237</attachid>
            <date>2021-10-05 11:09:42 -0700</date>
            <delta_ts>2021-10-05 11:51:58 -0700</delta_ts>
            <desc>Does this build on WPE?</desc>
            <filename>bug-230714-20211005110942.patch</filename>
            <type>text/plain</type>
            <size>3097</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY4NWRmM2YwYWUzYjlmMGM2
M2FhN2M5MTNlODI2MjcyZmE1ZmEzZTMuLjkwN2FhMmJiMWRkMzM4NmY5YzQ1ODVlOWMzYjhkMmYz
OWQwOTRhMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMTAtMDUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIFJlZmFj
dG9yIHNvbWUgSVBDIGFyZ3VtZW50IGVuY29kZXIgbG9naWMgdG8gd29yayB3aXRoIFN0cmVhbUNv
bm5lY3Rpb25FbmNvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA3MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEludFJlY3Q+
OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRSZWN0Pjo6ZW5j
b2RlKToKKwogMjAyMS0xMC0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkZCBTUEkgdG8gbGF1bmNoIGEgc2VydmljZSBzZXJ2aWNlIHdvcmtlciBpbiBhIFdL
V2ViVmlldyBhbmQgZXhwb3NlIHNlcnZpY2Ugd29ya2VyIHRvIGluamVjdGVkIGJ1bmRsZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggZWVl
ZTZhZWI2MWEzMzhhZjhkM2NhZWZiZjUyNDkxOTQwYWY3MDU1Yi4uYTlhMmFjZDNiMzYxMDYzMWUz
MzE3OTY5MTFlNzY1NzBjOGQwMTYwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC03NTcsMTEgKzc1Nyw2IEBAIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6SW50UG9pbnQ+IEFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlCiAgICAgcmV0dXJuIGludFBvaW50OwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8
SW50UmVjdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJbnRSZWN0JiBpbnRSZWN0
KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmVuY29kZShlbmNvZGVyLCBp
bnRSZWN0KTsKLX0KLQogYm9vbCBBcmd1bWVudENvZGVyPEludFJlY3Q+OjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgSW50UmVjdCYgaW50UmVjdCkKIHsKICAgICByZXR1cm4gU2ltcGxlQXJndW1l
bnRDb2RlcjxJbnRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIGludFJlY3QpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCAzNTEzOGY1ZGUzMmQ3ZTFm
MWZkMTU0YzI2MWY4ZTc5MmU0NzM3NzEwLi5mMDNhMzgwZDAwMTIwMjk3NTBiNjU1ZjFmMGJiNDkw
ZTIyMTI4NWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBl
cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5kZXhlZERCLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9J
bnB1dE1vZGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL01lZGlhU2VsZWN0aW9uT3B0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OYXRpdmVJbWFn
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya0xvYWRNZXRyaWNzLmg+CkBAIC0xMTksNyAr
MTIwLDYgQEAgY2xhc3MgRm9udDsKIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGE7CiBjbGFzcyBIVFRQ
SGVhZGVyTWFwOwogY2xhc3MgSW50UG9pbnQ7Ci1jbGFzcyBJbnRSZWN0OwogY2xhc3MgSW50U2l6
ZTsKIGNsYXNzIEtleWZyYW1lVmFsdWVMaXN0OwogY2xhc3MgTGF5b3V0U2l6ZTsKQEAgLTM1Nywx
MCArMzU3LDE1IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW50
UG9pbnQ+IHsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
SW50UmVjdD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbnRSZWN0
KQorICAgIHsKKyAgICAgICAgU2ltcGxlQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRSZWN0Pjo6
ZW5jb2RlKGVuY29kZXIsIGludFJlY3QpOworICAgIH0KKwogICAgIHN0YXRpYyBXQVJOX1VOVVNF
RF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkludFJlY3QmKTsKICAgICBz
dGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRSZWN0PiBkZWNvZGUoRGVjb2RlciYpOwog
fTsKK3RlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRSZWN0Pjo6ZW5jb2Rl
PEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAKIHRlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW50U2l6ZT4gewogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIEVuY29kZXI+Cg==
</data>
<flag name="commit-queue"
          id="464106"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440242</attachid>
            <date>2021-10-05 11:51:46 -0700</date>
            <delta_ts>2021-10-05 14:28:04 -0700</delta_ts>
            <desc>Does *this* build on WPE?</desc>
            <filename>bug-230714-20211005115145.patch</filename>
            <type>text/plain</type>
            <size>2224</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBlZWVlNmFlYjYxYTMzOGFmOGQzY2FlZmJmNTI0
OTE5NDBhZjcwNTViLi5hOWEyYWNkM2IzNjEwNjMxZTMzMTc5NjkxMWU3NjU3MGM4ZDAxNjA2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAg
LTc1NywxMSArNzU3LDYgQEAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4gQXJndW1l
bnRDb2RlcjxJbnRQb2ludD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGUKICAgICByZXR1cm4gaW50
UG9pbnQ7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IEludFJlY3QmIGludFJlY3QpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRD
b2RlcjxJbnRSZWN0Pjo6ZW5jb2RlKGVuY29kZXIsIGludFJlY3QpOwotfQotCiBib29sIEFyZ3Vt
ZW50Q29kZXI8SW50UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBJbnRSZWN0JiBpbnRS
ZWN0KQogewogICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEludFJlY3Q+OjpkZWNvZGUo
ZGVjb2RlciwgaW50UmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCmluZGV4IDM1MTM4ZjVkZTMyZDdlMWYxZmQxNTRjMjYxZjhlNzkyZTQ3Mzc3MTAu
LjYyYTQ4Zjk2NDVjNGM5YmJlOWZkZmQyNTAwMGY1MzJjZjQ5NjIzNTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0zMiw2ICszMiw3IEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9J
bmRleGVkREIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0lucHV0TW9kZS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvSW50UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTZWxlY3Rpb25PcHRpb24u
aD4KICNpbmNsdWRlIDxXZWJDb3JlL05hdGl2ZUltYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9O
ZXR3b3JrTG9hZE1ldHJpY3MuaD4KQEAgLTExOSw3ICsxMjAsNiBAQCBjbGFzcyBGb250OwogY2xh
c3MgRm9udFBsYXRmb3JtRGF0YTsKIGNsYXNzIEhUVFBIZWFkZXJNYXA7CiBjbGFzcyBJbnRQb2lu
dDsKLWNsYXNzIEludFJlY3Q7CiBjbGFzcyBJbnRTaXplOwogY2xhc3MgS2V5ZnJhbWVWYWx1ZUxp
c3Q7CiBjbGFzcyBMYXlvdXRTaXplOwpAQCAtMzU3LDEwICszNTcsMTUgQEAgdGVtcGxhdGU8PiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRQb2ludD4gewogfTsKIAogdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRSZWN0PiB7Ci0gICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRW5jb2Rlcj4gc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGludFJlY3QpCisgICAgeworICAgICAgICBTaW1wbGVB
cmd1bWVudENvZGVyPFdlYkNvcmU6OkludFJlY3Q+OjplbmNvZGUoZW5jb2RlciwgaW50UmVjdCk7
CisgICAgfQorCiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNv
ZGVyJiwgV2ViQ29yZTo6SW50UmVjdCYpOwogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OkludFJlY3Q+IGRlY29kZShEZWNvZGVyJik7CiB9OworZXh0ZXJuIHRlbXBsYXRlIHZvaWQg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRSZWN0Pjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXIm
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6SW50U2l6ZT4gewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+
Cg==
</data>
<flag name="commit-queue"
          id="464138"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440253</attachid>
            <date>2021-10-05 12:56:25 -0700</date>
            <delta_ts>2021-10-05 14:13:10 -0700</delta_ts>
            <desc>Does *this* build on WPE?</desc>
            <filename>bug-230714-20211005125624.patch</filename>
            <type>text/plain</type>
            <size>2300</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBlZWVlNmFlYjYxYTMzOGFmOGQzY2FlZmJmNTI0
OTE5NDBhZjcwNTViLi43NTYwODRkZjdlMWZlZTAwY2IyZGI4MjM2NmRjY2Q5Zjk4YWZlNTI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAg
LTc1NywxMSArNzU3LDYgQEAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4gQXJndW1l
bnRDb2RlcjxJbnRQb2ludD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGUKICAgICByZXR1cm4gaW50
UG9pbnQ7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IEludFJlY3QmIGludFJlY3QpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRD
b2RlcjxJbnRSZWN0Pjo6ZW5jb2RlKGVuY29kZXIsIGludFJlY3QpOwotfQotCiBib29sIEFyZ3Vt
ZW50Q29kZXI8SW50UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBJbnRSZWN0JiBpbnRS
ZWN0KQogewogICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEludFJlY3Q+OjpkZWNvZGUo
ZGVjb2RlciwgaW50UmVjdCk7CkBAIC0zMzUxLDQgKzMzNDYsNiBAQCBzdGQ6Om9wdGlvbmFsPFRl
eHRSZWNvZ25pdGlvbkRhdGFEZXRlY3Rvcj4gQXJndW1lbnRDb2RlcjxUZXh0UmVjb2duaXRpb25E
YXRhRGV0ZQogCiAjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKSAmJiBFTkFCTEUoREFU
QV9ERVRFQ1RJT04pCiAKK3RlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZW5j
b2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBJbnRSZWN0Jik7CisKIH0gLy8gbmFtZXNwYWNl
IElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRl
eCAzNTEzOGY1ZGUzMmQ3ZTFmMWZkMTU0YzI2MWY4ZTc5MmU0NzM3NzEwLi5iOTA5NGEzODYyY2Rj
NGI5MTViY2UxNTQxZTI2NjlmZjg1MmUyN2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvRnJhbWVMb2FkZXJUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5kZXhlZERCLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9JbnB1dE1vZGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3Qu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2VsZWN0aW9uT3B0aW9uLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9OYXRpdmVJbWFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya0xvYWRNZXRy
aWNzLmg+CkBAIC0xMTksNyArMTIwLDYgQEAgY2xhc3MgRm9udDsKIGNsYXNzIEZvbnRQbGF0Zm9y
bURhdGE7CiBjbGFzcyBIVFRQSGVhZGVyTWFwOwogY2xhc3MgSW50UG9pbnQ7Ci1jbGFzcyBJbnRS
ZWN0OwogY2xhc3MgSW50U2l6ZTsKIGNsYXNzIEtleWZyYW1lVmFsdWVMaXN0OwogY2xhc3MgTGF5
b3V0U2l6ZTsKQEAgLTM1Nyw3ICszNTcsMTEgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpJbnRQb2ludD4gewogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpJbnRSZWN0PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5j
b2Rlcj4gc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIGludFJlY3QpCisgICAgeworICAgICAgICBTaW1wbGVBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkludFJlY3Q+OjplbmNvZGUoZW5jb2RlciwgaW50UmVjdCk7CisgICAgfQorCiAgICAg
c3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6
SW50UmVjdCYpOwogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFJlY3Q+IGRl
Y29kZShEZWNvZGVyJik7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440263</attachid>
            <date>2021-10-05 14:13:14 -0700</date>
            <delta_ts>2021-10-05 15:28:40 -0700</delta_ts>
            <desc>Try to fix WPE again?</desc>
            <filename>bug-230714-20211005141313.patch</filename>
            <type>text/plain</type>
            <size>36483</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU5OTVlY2VlNWM2YjJhZjUw
NmFiZTlhZTcyMjY4ZDVjZmQzNWJkM2QuLjJlZWRlZjYwMjM5ZWY1MmU3YzM4NzI0MTA4ZDY0ZTA2
NTM1MWMwMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjkgQEAKKzIwMjEtMTAtMDUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIFJlZmFj
dG9yIHNvbWUgSVBDIGFyZ3VtZW50IGVuY29kZXIgbG9naWMgdG8gd29yayB3aXRoIFN0cmVhbUNv
bm5lY3Rpb25FbmNvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA3MTQKKyAgICAgICAgcmRhcjovLzgzNDc3NTkxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byB1c2Ug
YElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXJgIHRvIGVuY29kZSBkaXNwbGF5IGxpc3QgaXRl
bXMgKGFuZCB0aGVpciBtZW1iZXJzKSBpbiBhbgorICAgICAgICBJUEMgc3RyZWFtLiBUaGlzIHBh
dGNoIGNvbXByaXNlcyB0d28gbWFpbiBzZXRzIG9mIGNoYW5nZXMgaW4gYEFyZ3VtZW50Q29kZXJz
YCwgYW5kIGBXZWJDb3JlQXJndW1lbnRDb2RlcnNgLiBTZWUKKyAgICAgICAgYmVsb3cgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmRlY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNb25vc3RhdGU+OjpkZWNvZGUpOiBEZWxldGVk
LgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2RlKToKKworICAgICAgICBNYW55IG9mIHRoZXNlIGBl
bmNvZGUoKWAgbWV0aG9kcyBhcmUgY3VycmVudGx5IG5vbi10ZW1wbGF0ZWQsIHdoaWNoIG1lYW5z
IHRoYXQgRW5jb2RlciBhbmQgRGVjb2RlciB1c2VkIGhlcmUKKyAgICAgICAgcmVmZXIgc29sZWx5
IHRvIElQQzo6RW5jb2RlciBhbmQgSVBDOjpEZWNvZGVyIChyZXNwZWN0aXZlbHkpIGluc3RlYWQg
b2Ygb3RoZXIgdHlwZXMgb2YgZW5jb2RlcnMgKG5hbWVseSwKKyAgICAgICAgU3RyZWFtQ29ubmVj
dGlvbkVuY29kZXIpLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxBZmZpbmVUcmFuc2Zvcm0+
OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UG9p
bnQ+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0
UG9pbnQ+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZs
b2F0UG9pbnQzRD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8RmxvYXRQb2ludDNEPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjplbmNvZGUpOiBEZWxldGVkLgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0U2l6ZT46OmRlY29kZSk6IERlbGV0ZWQu
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46
OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+
OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEludFBvaW50
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRSZWN0
Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRSZWN0
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRTaXpl
Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRTaXpl
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxMYXlvdXRT
aXplPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxMYXlv
dXRTaXplPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxM
YXlvdXRQb2ludD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8TGF5b3V0UG9pbnQ+OjpkZWNvZGUpOiBEZWxldGVkLgorCisgICAgICAgIFRoZXNlIFdlYkNv
cmUgYXJndW1lbnQgY29kZXJzIGFyZSBhbHNvIGN1cnJlbnRseSBpbmNvbXBhdGlibGUgd2l0aCBT
dHJlYW1Db25uZWN0aW9uRW5jb2Rlciwgc2luY2UgdGhleSBhcmUgbm9uLQorICAgICAgICB0ZW1w
bGF0ZWQgKGFuZCB0aHVzIG9ubHkgd29yayB3aXRoIElQQzo6RW5jb2RlcikuIFNpbmNlIHRoZXNl
IGFyZSBhbGwgZW5jb2RhYmxlIGFzIFBPRCB0eXBlcywgd2UgY2FuIGp1c3QgdXNlCisgICAgICAg
IFNpbXBsZUFyZ3VtZW50Q29kZXIgZm9yIGFsbCBvZiB0aGVzZS4gV2UgYWxzbyBhZGQgYSBuZXcg
YERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJgIG1hY3JvIHRvIG1ha2UgdGhpcyBjb2RlIGEK
KyAgICAgICAgYml0IGVhc2llciB0byByZWFkLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzTWFjLm1tOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHUmVjdD46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dSZWN0Pjo6ZGVjb2RlKTog
RGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDR1NpemU+OjplbmNvZGUpOiBE
ZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHU2l6ZT46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dQb2ludD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENHQWZmaW5lVHJh
bnNmb3JtPjo6ZGVjb2RlKTogRGVsZXRlZC4KKwogMjAyMS0xMC0wNSAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEF1dGhvcml6YXRpb24gaGVhZGVyIGxvc3Qgb24g
MzB4IHJlZGlyZWN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJn
dW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2Rl
cnMuY3BwCmluZGV4IGEzMjA1NTE4Nzk4Yjc0ZGNlZGI4YTAxM2Y5YzljOTg4NWFhZTY2MTYuLmU3
ZjI3ODAzNjJkZDIwMzc0MzRjYTFjYjM5MGRkZTZlZjc5MTU5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNp
bmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaCIKICNpbmNsdWRlICJQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuaCIKICNpbmNsdWRlICJTdHJlYW1Db25uZWN0aW9u
RW5jb2Rlci5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAg
LTIxOCw2ICsyMTksNyBAQCBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBBcmd1bWVudENvZGVyPFNI
QTE6OkRpZ2VzdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTSAogfQogCiAjaWYgSEFWRShB
VURJVF9UT0tFTikKKwogdm9pZCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rva2VuX3Q+OjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgYXVkaXRfdG9rZW5fdCYgYXVkaXRUb2tlbikKIHsKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChhdWRpdFRva2VuLnZh
bCk7IGkrKykKQEAgLTIzMiwxNSArMjM0LDcgQEAgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgQXJn
dW1lbnRDb2RlcjxhdWRpdF90b2tlbl90Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIGEKICAg
ICB9CiAgICAgcmV0dXJuIHRydWU7CiB9Ci0jZW5kaWYKLQotdm9pZCBBcmd1bWVudENvZGVyPE1v
bm9zdGF0ZT46OmVuY29kZShFbmNvZGVyJiwgY29uc3QgTW9ub3N0YXRlJikKLXsKLX0KIAotV0FS
Tl9VTlVTRURfUkVUVVJOIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBBcmd1bWVudENvZGVyPE1v
bm9zdGF0ZT46OmRlY29kZShEZWNvZGVyJikKLXsKLSAgICByZXR1cm4gTW9ub3N0YXRlIHsgfTsK
LX0KKyNlbmRpZiAvLyBIQVZFKEFVRElUX1RPS0VOKQogCiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmggYi9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCmluZGV4IDQ3OWRiNjBl
ZGMyNzE2ZDU1NjA2ZjY1MmYyNDMxYWQzNjlmNjU3MGMuLmQ5Nzc4NzdjNWZiMzY1MDdiYjY1MzI0
YzA2NjNmODYxNTY2ZDU5M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L0FyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1l
bnRDb2RlcnMuaApAQCAtMTA4LDEyICsxMDgsMTQgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8QXJyYXlSZWZlcmVuY2U8VCwgYXJyYXlSZWZlcmVuY2VEeW5hbWkK
IH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPE9wdGlvblNl
dDxUPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IE9wdGlvblNldDxUPiYgb3B0aW9uU2V0KQog
ICAgIHsKICAgICAgICAgQVNTRVJUKFdURjo6aXNWYWxpZE9wdGlvblNldChvcHRpb25TZXQpKTsK
ICAgICAgICAgZW5jb2RlciA8PCBvcHRpb25TZXQudG9SYXcoKTsKICAgICB9CiAKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9v
bCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgT3B0aW9uU2V0PFQ+JiBvcHRpb25TZXQpCiAgICAg
ewogICAgICAgICB0eXBlbmFtZSBPcHRpb25TZXQ8VD46OlN0b3JhZ2VUeXBlIHZhbHVlOwpAQCAt
MTI1LDYgKzEyNyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVy
PE9wdGlvblNldDxUPj4gewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE9wdGlvblNl
dDxUPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlv
bmFsPHR5cGVuYW1lIE9wdGlvblNldDxUPjo6U3RvcmFnZVR5cGU+IHZhbHVlOwpAQCAtMTg4LDYg
KzE5MSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPHN0ZDo6
b3B0aW9uYWw8VD4+IHsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPEJveDxUPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEJveDxUPiYgYm94KQogICAg
IHsKICAgICAgICAgaWYgKCFib3gpIHsKQEAgLTE5OSw2ICsyMDMsNyBAQCB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxCb3g8VD4+IHsKICAgICAgICAgZW5jb2RlciA8
PCAqYm94LmdldCgpOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAg
ICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBCb3g8VD4mIGJveCkKICAgICB7CiAgICAgICAgIGJvb2wgaXNFbmdhZ2VkOwpAQCAtMjE4LDYg
KzIyMyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPEJveDxU
Pj4gewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEJveDxUPj4gZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGlzRW5nYWdl
ZDsKQEAgLTIzNiwxMSArMjQyLDEzIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1
bWVudENvZGVyPEJveDxUPj4gewogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUg
VT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpwYWlyPFQsIFU+PiB7CisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3Qgc3RkOjpwYWlyPFQsIFU+JiBwYWlyKQogICAgIHsKICAgICAgICAgZW5jb2RlciA8
PCBwYWlyLmZpcnN0IDw8IHBhaXIuc2Vjb25kOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVu
YW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnBhaXI8VCwgVT4mIHBhaXIpCiAgICAgewogICAgICAgICBU
IGZpcnN0OwpAQCAtMjU2LDYgKzI2NCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1l
IFU+IHN0cnVjdCBBcmd1bWVudENvZGVyPHN0ZDo6cGFpcjxULCBVPj4gewogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxULCBVPj4gZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPFQ+IGZpcnN0OwpAQCAtMzY2LDExICsz
NzUsMTMgQEAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gRWxlbWVudHM+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPHN0ZDo6dHVwbGU8RWxlbWVudHMuLi4+PiB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBL
ZXlUeXBlLCB0eXBlbmFtZSBWYWx1ZVR5cGU+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdURjo6S2V5
VmFsdWVQYWlyPEtleVR5cGUsIFZhbHVlVHlwZT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBF
bmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBX
VEY6OktleVZhbHVlUGFpcjxLZXlUeXBlLCBWYWx1ZVR5cGU+JiBwYWlyKQogICAgIHsKICAgICAg
ICAgZW5jb2RlciA8PCBwYWlyLmtleSA8PCBwYWlyLnZhbHVlOwogICAgIH0KIAorICAgIHRlbXBs
YXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29s
IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBXVEY6OktleVZhbHVlUGFpcjxLZXlUeXBlLCBWYWx1
ZVR5cGU+JiBwYWlyKQogICAgIHsKICAgICAgICAgS2V5VHlwZSBrZXk7CkBAIC0zOTgsNiArNDA5
LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFt
ZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KICAgICAgICAgICAgIGVuY29kZXIgPDwgdmVj
dG9yW2ldOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3Rh
dGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBWZWN0
b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+JiB2ZWN0
b3IpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0
eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4+IG9wdGlvbmFsOwpAQCAtNDM3LDYgKzQ0
OSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5h
bWUgT3ZlcmZsb3dIYW5kbGVyLCBzaXplX3QgbWluCiAgICAgICAgIGVuY29kZXIuZW5jb2RlRml4
ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KHZlY3Rvci5kYXRh
KCkpLCB2ZWN0b3Iuc2l6ZSgpICogc2l6ZW9mKFQpLCBhbGlnbm9mKFQpKTsKICAgICB9CiAgICAg
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURf
UkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxULCBpbmxpbmVDYXBh
Y2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4mIHZlY3RvcikKICAgICB7CiAgICAg
ICAgIHVpbnQ2NF90IGRlY29kZWRTaXplOwpAQCAtNDUxLDcgKzQ2NCw3IEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVy
LCBzaXplX3QgbWluCiAgICAgICAgIC8vIFNpbmNlIHdlIGtub3cgdGhlIHRvdGFsIHNpemUgb2Yg
dGhlIGVsZW1lbnRzLCB3ZSBjYW4gYWxsb2NhdGUgdGhlIHZlY3RvciBpbgogICAgICAgICAvLyBv
bmUgZmVsbCBzd29vcC4gQmVmb3JlIGFsbG9jYXRpbmcgd2UgbXVzdCBob3dldmVyIG1ha2Ugc3Vy
ZSB0aGF0IHRoZSBkZWNvZGVyIGJ1ZmZlcgogICAgICAgICAvLyBpcyBiaWcgZW5vdWdoLgotICAg
ICAgICBpZiAoIWRlY29kZXIuYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbjxUPihzaXplKSkK
KyAgICAgICAgaWYgKCFkZWNvZGVyLnRlbXBsYXRlIGJ1ZmZlcklzTGFyZ2VFbm91Z2hUb0NvbnRh
aW48VD4oc2l6ZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgVmVjdG9y
PFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5PiB0ZW1wOwpA
QCAtNDk4LDYgKzUxMSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBh
Y2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyLCBzaXplX3QgbWluCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5h
bWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBNYXBwZWRUcmFpdHNBcmcsIHR5cGVuYW1lIEhhc2hU
YWJsZVRyYWl0cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFy
ZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBwZWRUcmFpdHNBcmcsIEhhc2hUYWJsZVRyYWl0
cz4+IHsKICAgICB0eXBlZGVmIEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtl
eVRyYWl0c0FyZywgTWFwcGVkVHJhaXRzQXJnLCBIYXNoVGFibGVUcmFpdHM+IEhhc2hNYXBUeXBl
OwogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgSGFzaE1hcFR5cGUmIGhhc2hNYXApCiAgICAgewog
ICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQzMl90PihoYXNoTWFwLnNpemUoKSk7
CkBAIC01MDUsNiArNTE5LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBN
YXBwZWRBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWkKICAgICAgICAgICAg
IGVuY29kZXIgPDwgKml0OwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+
CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8SGFzaE1hcFR5cGU+IGRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQogICAgIHsKICAgICAgICAgdWludDMyX3QgaGFzaE1hcFNpemU7CkBAIC01MzUsNiAr
NTUwLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5
cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWkKICAgICAgICAgcmV0dXJuIGhhc2hNYXA7
CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FS
Tl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEhhc2hNYXBUeXBl
JiBoYXNoTWFwKQogICAgIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxIYXNoTWFwVHlwZT4gdGVt
cEhhc2hNYXA7CkBAIC01NDksNiArNTY1LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0
eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWkKIHRl
bXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJh
aXRzQXJnLCB0eXBlbmFtZSBIYXNoVGFibGVUcmFpdHM+IHN0cnVjdCBBcmd1bWVudENvZGVyPEhh
c2hTZXQ8S2V5QXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIEhhc2hUYWJsZVRyYWl0cz4+IHsK
ICAgICB0eXBlZGVmIEhhc2hTZXQ8S2V5QXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIEhhc2hU
YWJsZVRyYWl0cz4gSGFzaFNldFR5cGU7CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
PgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBIYXNoU2V0
VHlwZSYgaGFzaFNldCkKICAgICB7CiAgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWlu
dDY0X3Q+KGhhc2hTZXQuc2l6ZSgpKTsKQEAgLTU1Niw2ICs1NzMsNyBAQCB0ZW1wbGF0ZTx0eXBl
bmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZywgdHlw
ZW5hbWUgSGFzaAogICAgICAgICAgICAgZW5jb2RlciA8PCAqaXQ7CiAgICAgfQogCisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJv
b2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEhhc2hTZXRUeXBlJiBoYXNoU2V0KQogICAgIHsK
ICAgICAgICAgc3RkOjpvcHRpb25hbDxIYXNoU2V0VHlwZT4gdGVtcEhhc2hTZXQ7CkBAIC01Njcs
NiArNTg1LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0
eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1lIEhhc2gKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxIYXNoU2V0VHlwZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewog
ICAgICAgICB1aW50NjRfdCBoYXNoU2V0U2l6ZTsKQEAgLTU5Niw2ICs2MTUsNyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0Fy
ZywgdHlwZW5hbWUgSGFzaAogdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNo
QXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmc+IHN0cnVjdCBBcmd1bWVudENvZGVyPEhhc2hDb3Vu
dGVkU2V0PEtleUFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnPj4gewogICAgIHR5cGVkZWYgSGFz
aENvdW50ZWRTZXQ8S2V5QXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmc+IEhhc2hDb3VudGVkU2V0
VHlwZTsKICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBIYXNoQ291bnRlZFNldFR5cGUmIGhh
c2hDb3VudGVkU2V0KQogICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50
NjRfdD4oaGFzaENvdW50ZWRTZXQuc2l6ZSgpKTsKQEAgLTYwNiw2ICs2MjYsNyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0Fy
Zz4gc3RydWN0IEFyZ3VtZQogICAgICAgICB9CiAgICAgfQogICAgIAorICAgIHRlbXBsYXRlPHR5
cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyLCBIYXNoQ291bnRlZFNldFR5cGUmIGhhc2hDb3VudGVkU2V0KQog
ICAgIHsKICAgICAgICAgdWludDY0X3QgaGFzaENvdW50ZWRTZXRTaXplOwpAQCAtNjM3LDYgKzY1
OCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5h
bWUgS2V5VHJhaXRzQXJnPiBzdHJ1Y3QgQXJndW1lCiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBW
YWx1ZVR5cGUsIHR5cGVuYW1lIEVycm9yVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8RXhwZWN0
ZWQ8VmFsdWVUeXBlLCBFcnJvclR5cGU+PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rl
cj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRXhwZWN0
ZWQ8VmFsdWVUeXBlLCBFcnJvclR5cGU+JiBleHBlY3RlZCkKICAgICB7CiAgICAgICAgIGlmICgh
ZXhwZWN0ZWQuaGFzX3ZhbHVlKCkpIHsKQEAgLTY0OCw2ICs2NzAsNyBAQCB0ZW1wbGF0ZTx0eXBl
bmFtZSBWYWx1ZVR5cGUsIHR5cGVuYW1lIEVycm9yVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8
RXhwZWN0ZWQ8VgogICAgICAgICBlbmNvZGVyIDw8IGV4cGVjdGVkLnZhbHVlKCk7CiAgICAgfQog
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25h
bDxFeHBlY3RlZDxWYWx1ZVR5cGUsIEVycm9yVHlwZT4+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQogICAgIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxib29sPiBoYXNWYWx1ZTsKQEAgLTcwNCw2
ICs3MjcsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBFcnJvclR5cGU+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPEV4cGVjdGVkPHZvaWQsIEVycm9yVHlwZT4+IHsKIAogdGVtcGxhdGU8c2l6ZV90IGluZGV4
LCB0eXBlbmFtZS4uLiBUeXBlcz4KIHN0cnVjdCBWYXJpYW50Q29kZXIgeworICAgIHRlbXBsYXRl
PHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IFdURjo6VmFyaWFudDxUeXBlcy4uLj4mIHZhcmlhbnQsIHVuc2lnbmVkIGkpCiAg
ICAgewogICAgICAgICBpZiAoaSA9PSBpbmRleCkgewpAQCAtNzEzLDYgKzczNyw3IEBAIHN0cnVj
dCBWYXJpYW50Q29kZXIgewogICAgICAgICBWYXJpYW50Q29kZXI8aW5kZXggLSAxLCBUeXBlcy4u
Lj46OmVuY29kZShlbmNvZGVyLCB2YXJpYW50LCBpKTsKICAgICB9CiAgICAgCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXVEY6OlZhcmlh
bnQ8VHlwZXMuLi4+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgdW5zaWduZWQgaSkKICAgICB7
CiAgICAgICAgIGlmIChpID09IGluZGV4KSB7CkBAIC03MjgsMTIgKzc1MywxNCBAQCBzdHJ1Y3Qg
VmFyaWFudENvZGVyIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUuLi4gVHlwZXM+CiBzdHJ1Y3QgVmFy
aWFudENvZGVyPDAsIFR5cGVzLi4uPiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4K
ICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV1RGOjpWYXJp
YW50PFR5cGVzLi4uPiYgdmFyaWFudCwgdW5zaWduZWQgaSkKICAgICB7CiAgICAgICAgIEFTU0VS
VF9VTlVTRUQoaSwgIWkpOwogICAgICAgICBlbmNvZGVyIDw8IFdURjo6Z2V0PDA+KHZhcmlhbnQp
OwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IGRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChpLCAhaSk7
CkBAIC03NDYsNiArNzczLDcgQEAgc3RydWN0IFZhcmlhbnRDb2RlcjwwLCBUeXBlcy4uLj4gewog
fTsKIAogdGVtcGxhdGU8dHlwZW5hbWUuLi4gVHlwZXM+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdU
Rjo6VmFyaWFudDxUeXBlcy4uLj4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgog
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXVEY6OlZhcmlh
bnQ8VHlwZXMuLi4+JiB2YXJpYW50KQogICAgIHsKICAgICAgICAgdW5zaWduZWQgaSA9IHZhcmlh
bnQuaW5kZXgoKTsKQEAgLTc1Myw2ICs3ODEsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBl
cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gewogICAgICAg
ICBWYXJpYW50Q29kZXI8c2l6ZW9mLi4uKFR5cGVzKSAtIDEsIFR5cGVzLi4uPjo6ZW5jb2RlKGVu
Y29kZXIsIHZhcmlhbnQsIGkpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBE
ZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+
IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDx1
bnNpZ25lZD4gaTsKQEAgLTgwNCw4ICs4MzMsMTQgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxhdWRpdF90b2tlbl90PiB7CiAjZW5kaWYKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxNb25vc3RhdGU+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYs
IGNvbnN0IE1vbm9zdGF0ZSYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE1vbm9zdGF0ZT4g
ZGVjb2RlKERlY29kZXImKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgorICAgIHN0
YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgTW9ub3N0YXRlJikgeyB9CisKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE1vbm9z
dGF0ZT4gZGVjb2RlKERlY29kZXImKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE1vbm9zdGF0ZSB7
IH07CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBlZWVlNmFlYjYxYTMzOGFmOGQz
Y2FlZmJmNTI0OTE5NDBhZjcwNTViLi42OWQ4ZmJiMzAxZDNiYTEzZTM2NzhjNzVmNWE0NWEyN2Qx
Y2Q5NDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHAKQEAgLTEyNSw2ICsxMjUsMzAgQEAgbmFtZXNwYWNlIElQQyB7CiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKKyNkZWZpbmUgREVGSU5FX1NJ
TVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKFR5cGUpIHRlbXBsYXRlIHZvaWQgQXJndW1l
bnRDb2RlcjxUeXBlPjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBUeXBlJik7CisK
K0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX1NPVVJDRShBZmZpbmVUcmFuc2Zvcm0p
CitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoRmxvYXRCb3hFeHRlbnQp
CitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoRmxvYXRQb2ludCkKK0RF
RklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX1NPVVJDRShGbG9hdFBvaW50M0QpCitERUZJ
TkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoRmxvYXRSZWN0KQorREVGSU5FX1NJ
TVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0Um91bmRlZFJlY3QpCitERUZJTkVf
U0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoRmxvYXRTaXplKQorREVGSU5FX1NJTVBM
RV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEludFBvaW50KQorREVGSU5FX1NJTVBMRV9BUkdV
TUVOVF9DT0RFUl9GT1JfU09VUkNFKEludFJlY3QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NP
REVSX0ZPUl9TT1VSQ0UoSW50U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9S
X1NPVVJDRShMYXlvdXRTaXplKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09V
UkNFKExheW91dFBvaW50KQorCisjaWYgVVNFKENHKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9D
T0RFUl9GT1JfU09VUkNFKENHUmVjdCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9S
X1NPVVJDRShDR1NpemUpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0Uo
Q0dQb2ludCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX1NPVVJDRShDR0FmZmlu
ZVRyYW5zZm9ybSkKKyNlbmRpZgorCisjdW5kZWYgREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RF
Ul9GT1JfU09VUkNFCisKIHN0YXRpYyB2b2lkIGVuY29kZVNoYXJlZEJ1ZmZlcihFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBTaGFyZWRCdWZmZXIqIGJ1ZmZlcikKIHsKICAgICBib29sIGlzTnVsbCA9
ICFidWZmZXI7CkBAIC0yMzEsMTYgKzI1NSw2IEBAIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGVUeXBlc0FuZERhdGEoRGVjb2RlciYgZGVjb2RlciwgVmVjdG9yPFN0cmluCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxBZmZpbmVUcmFuc2Zvcm0+
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBhZmZpbmVU
cmFuc2Zvcm0pCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxBZmZpbmVUcmFuc2Zvcm0+Ojpl
bmNvZGUoZW5jb2RlciwgYWZmaW5lVHJhbnNmb3JtKTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVy
PEFmZmluZVRyYW5zZm9ybT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBBZmZpbmVUcmFuc2Zv
cm0mIGFmZmluZVRyYW5zZm9ybSkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxB
ZmZpbmVUcmFuc2Zvcm0+OjpkZWNvZGUoZGVjb2RlciwgYWZmaW5lVHJhbnNmb3JtKTsKLX0KLQog
dm9pZCBBcmd1bWVudENvZGVyPENhY2hlUXVlcnlPcHRpb25zPjo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IENhY2hlUXVlcnlPcHRpb25zJiBvcHRpb25zKQogewogICAgIGVuY29kZXIg
PDwgb3B0aW9ucy5pZ25vcmVTZWFyY2g7CkBAIC00MjUsNiArNDM5LDcgQEAgYm9vbCBBcmd1bWVu
dENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEV2
ZW50VHJhY2tpbmcKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgRW5j
b2Rlcj4KIHZvaWQgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD46OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtYXRp
b25NYXRyaXgpCiB7CiAgICAgZW5jb2RlciA8PCB0cmFuc2Zvcm1hdGlvbk1hdHJpeC5tMTEoKTsK
QEAgLTUwNiw2ICs1MjEsOSBAQCBib29sIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtYXRpb25NYXRy
aXg+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVHJhbnNmb3JtYXRpbwogICAgIHJldHVybiB0
cnVlOwogfQogCit0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtYXRpb25NYXRy
aXg+OjplbmNvZGU8RW5jb2Rlcj4oRW5jb2RlciYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
Jik7Cit0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+Ojpl
bmNvZGU8U3RyZWFtQ29ubmVjdGlvbkVuY29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwg
Y29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKKwogdm9pZCBBcmd1bWVudENvZGVyPExpbmVh
clRpbWluZ0Z1bmN0aW9uPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IExpbmVhclRp
bWluZ0Z1bmN0aW9uJiB0aW1pbmdGdW5jdGlvbikKIHsKICAgICBlbmNvZGVyIDw8IHRpbWluZ0Z1
bmN0aW9uLnR5cGUoKTsKQEAgLTYxNyw2NSArNjM1LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPFNw
cmluZ1RpbWluZ0Z1bmN0aW9uPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNwcmluZ1RpbWlu
Z0YKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRQb2ludCYgZmxvYXRQb2ludCkK
LXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjplbmNvZGUoZW5jb2Rlciwg
ZmxvYXRQb2ludCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIEZsb2F0UG9pbnQmIGZsb2F0UG9pbnQpCi17Ci0gICAgcmV0dXJu
IFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmRlY29kZShkZWNvZGVyLCBmbG9hdFBv
aW50KTsKLX0KLQotc3RkOjpvcHRpb25hbDxGbG9hdFBvaW50PiBBcmd1bWVudENvZGVyPEZsb2F0
UG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBGbG9hdFBvaW50IGZsb2F0
UG9pbnQ7Ci0gICAgaWYgKCFTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUo
ZGVjb2RlciwgZmxvYXRQb2ludCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAg
cmV0dXJuIGZsb2F0UG9pbnQ7Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRQb2ludDNEJiBmbG9hdFBvaW50
KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZW5jb2RlKGVuY29k
ZXIsIGZsb2F0UG9pbnQpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEZsb2F0UG9pbnQzRCYgZmxvYXRQb2ludCkKLXsKLSAg
ICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+OjpkZWNvZGUoZGVjb2Rl
ciwgZmxvYXRQb2ludCk7Ci19Ci0KLQotdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFJlY3QmIGZsb2F0UmVjdCkKLXsKLSAg
ICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmVuY29kZShlbmNvZGVyLCBmbG9hdFJl
Y3QpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIEZsb2F0UmVjdCYgZmxvYXRSZWN0KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1
bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZShkZWNvZGVyLCBmbG9hdFJlY3QpOwotfQotCi1z
dGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4gQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBGbG9hdFJlY3QgZmxvYXRSZWN0OwotICAgIGlmICgh
U2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRSZWN0
KSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICByZXR1cm4gZmxvYXRSZWN0Owot
fQotCi0KLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdEJveEV4dGVudD46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBGbG9hdEJveEV4dGVudCYgZmxvYXRCb3hFeHRlbnQpCi17Ci0gICAg
U2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdEJveEV4dGVudD46OmVuY29kZShlbmNvZGVyLCBmbG9h
dEJveEV4dGVudCk7Ci19Ci0gICAgCi1ib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRCb3hFeHRlbnQmIGZsb2F0Qm94RXh0ZW50
KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVj
b2RlKGRlY29kZXIsIGZsb2F0Qm94RXh0ZW50KTsKLX0KLQotCiB2b2lkIEFyZ3VtZW50Q29kZXI8
UmVjdEVkZ2VzPGJvb2w+Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlY3RFZGdl
czxib29sPiYgYm94RWRnZXMpCiB7CiAgICAgU2ltcGxlQXJndW1lbnRDb2RlcjxSZWN0RWRnZXM8
Ym9vbD4+OjplbmNvZGUoZW5jb2RlciwgYm94RWRnZXMpOwpAQCAtNjg2LDI4ICs2NDUsNiBAQCBi
b29sIEFyZ3VtZW50Q29kZXI8UmVjdEVkZ2VzPGJvb2w+Pjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIFJlY3RFZGdlczxib29sPiYgYgogICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPFJl
Y3RFZGdlczxib29sPj46OmRlY29kZShkZWNvZGVyLCBib3hFZGdlcyk7CiB9CiAKLQotdm9pZCBB
cmd1bWVudENvZGVyPEZsb2F0U2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBG
bG9hdFNpemUmIGZsb2F0U2l6ZSkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0U2l6
ZT46OmVuY29kZShlbmNvZGVyLCBmbG9hdFNpemUpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8
RmxvYXRTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEZsb2F0U2l6ZSYgZmxvYXRTaXpl
KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0U2l6ZT46OmRlY29kZShk
ZWNvZGVyLCBmbG9hdFNpemUpOwotfQotCi0KLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFJvdW5k
ZWRSZWN0Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0Um91bmRlZFJlY3Qm
IHJvdW5kZWRSZWN0KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVj
dD46OmVuY29kZShlbmNvZGVyLCByb3VuZGVkUmVjdCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2Rl
cjxGbG9hdFJvdW5kZWRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEZsb2F0Um91bmRl
ZFJlY3QmIHJvdW5kZWRSZWN0KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZs
b2F0Um91bmRlZFJlY3Q+OjpkZWNvZGUoZGVjb2Rlciwgcm91bmRlZFJlY3QpOwotfQotCiAjaWYg
RU5BQkxFKE1FVEFfVklFV1BPUlQpCiB2b2lkIEFyZ3VtZW50Q29kZXI8Vmlld3BvcnRBcmd1bWVu
dHM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVmlld3BvcnRBcmd1bWVudHMmIHZp
ZXdwb3J0QXJndW1lbnRzKQogewpAQCAtNzM5LDg3ICs2NzYsNiBAQCBib29sIEFyZ3VtZW50Q29k
ZXI8Vmlld3BvcnRBdHRyaWJ1dGVzPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFZpZXdwb3J0
QXR0cmlidQogICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPFZpZXdwb3J0QXR0cmlidXRl
cz46OmRlY29kZShkZWNvZGVyLCB2aWV3cG9ydEF0dHJpYnV0ZXMpOwogfQogCi12b2lkIEFyZ3Vt
ZW50Q29kZXI8SW50UG9pbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgSW50UG9p
bnQmIGludFBvaW50KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjplbmNv
ZGUoZW5jb2RlciwgaW50UG9pbnQpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSW50UG9pbnQmIGludFBvaW50KQotewotICAgIHJl
dHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZGVjb2RlKGRlY29kZXIsIGludFBv
aW50KTsKLX0KLQotc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4gQXJndW1lbnRDb2Rl
cjxJbnRQb2ludD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIEludFBvaW50IGlu
dFBvaW50OwotICAgIGlmICghU2ltcGxlQXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZShk
ZWNvZGVyLCBpbnRQb2ludCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0
dXJuIGludFBvaW50OwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJbnRSZWN0JiBpbnRSZWN0KQotewotICAgIFNpbXBsZUFy
Z3VtZW50Q29kZXI8SW50UmVjdD46OmVuY29kZShlbmNvZGVyLCBpbnRSZWN0KTsKLX0KLQotYm9v
bCBBcmd1bWVudENvZGVyPEludFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSW50UmVj
dCYgaW50UmVjdCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6
ZGVjb2RlKGRlY29kZXIsIGludFJlY3QpOwotfQotCi1zdGQ6Om9wdGlvbmFsPEludFJlY3Q+IEFy
Z3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIElu
dFJlY3QgcmVjdDsKLSAgICBpZiAoIWRlY29kZShkZWNvZGVyLCByZWN0KSkKLSAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICByZXR1cm4gcmVjdDsKLX0KLQotdGVtcGxhdGU8dHlwZW5h
bWUgRW5jb2Rlcj4KLXZvaWQgQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IEludFNpemUmIGludFNpemUpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRD
b2RlcjxJbnRTaXplPjo6ZW5jb2RlKGVuY29kZXIsIGludFNpemUpOwotfQotCi10ZW1wbGF0ZQot
dm9pZCBBcmd1bWVudENvZGVyPEludFNpemU+OjplbmNvZGU8RW5jb2Rlcj4oRW5jb2RlciYsIGNv
bnN0IEludFNpemUmKTsKLXRlbXBsYXRlCi12b2lkIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVu
Y29kZTxTdHJlYW1Db25uZWN0aW9uRW5jb2Rlcj4oU3RyZWFtQ29ubmVjdGlvbkVuY29kZXImLCBj
b25zdCBJbnRTaXplJik7Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIsIEludFNpemUmIGludFNpemUpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFy
Z3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZShkZWNvZGVyLCBpbnRTaXplKTsKLX0KLQotc3Rk
OjpvcHRpb25hbDxJbnRTaXplPiBBcmd1bWVudENvZGVyPEludFNpemU+OjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKLXsKLSAgICBJbnRTaXplIGludFNpemU7Ci0gICAgaWYgKCFTaW1wbGVBcmd1
bWVudENvZGVyPEludFNpemU+OjpkZWNvZGUoZGVjb2RlciwgaW50U2l6ZSkpCi0gICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIGludFNpemU7Ci19Ci0KLXZvaWQgQXJndW1l
bnRDb2RlcjxMYXlvdXRTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IExheW91
dFNpemUmIGxheW91dFNpemUpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxMYXlvdXRTaXpl
Pjo6ZW5jb2RlKGVuY29kZXIsIGxheW91dFNpemUpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8
TGF5b3V0U2l6ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBMYXlvdXRTaXplJiBsYXlvdXRT
aXplKQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPExheW91dFNpemU+OjpkZWNv
ZGUoZGVjb2RlciwgbGF5b3V0U2l6ZSk7Ci19Ci0KLQotdm9pZCBBcmd1bWVudENvZGVyPExheW91
dFBvaW50Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IExheW91dFBvaW50JiBsYXlv
dXRQb2ludCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPExheW91dFBvaW50Pjo6ZW5jb2Rl
KGVuY29kZXIsIGxheW91dFBvaW50KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPExheW91dFBv
aW50Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIExheW91dFBvaW50JiBsYXlvdXRQb2ludCkK
LXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46OmRlY29kZShk
ZWNvZGVyLCBsYXlvdXRQb2ludCk7Ci19Ci0KIHZvaWQgQXJndW1lbnRDb2RlcjxSZWNlbnRTZWFy
Y2g+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVjZW50U2VhcmNoJiByZWNlbnRT
ZWFyY2gpCiB7CiAgICAgZW5jb2RlciA8PCByZWNlbnRTZWFyY2guc3RyaW5nIDw8IHJlY2VudFNl
YXJjaC50aW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aAppbmRleCAzNTEzOGY1ZGUzMmQ3ZTFmMWZkMTU0YzI2MWY4ZTc5MmU0NzM3NzEwLi4wZDY4MTZk
Yjc5YTI3OTdmNjAxNzcyZDQ3YTgyZWQwNDE0YmU2NjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMjYsMTIgKzI2LDI0IEBACiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9B
ZmZpbmVUcmFuc2Zvcm0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0F1dG9wbGF5RXZlbnQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0NvbG9yU3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RpYWdub3N0
aWNMb2dnaW5nQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFBvaW50Lmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9GbG9hdFBvaW50M0QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVj
dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSb3VuZGVkUmVjdC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvRmxvYXRTaXplLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9JbmRleGVkREIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0lucHV0
TW9kZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0ludFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ludFNpemUuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0xheW91dFBvaW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9MYXlvdXRTaXplLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9MZW5ndGhCb3guaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2VsZWN0
aW9uT3B0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OYXRpdmVJbWFnZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvTmV0d29ya0xvYWRNZXRyaWNzLmg+CkBAIC05Niw3ICsxMDgsNiBAQCB0eXBlZGVm
IHN0cnVjdCBfX0NWQnVmZmVyKiBDVlBpeGVsQnVmZmVyUmVmOwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBBYnNvbHV0ZVBvc2l0aW9uQ29uc3RyYWludHM7Ci1jbGFzcyBBZmZpbmVUcmFu
c2Zvcm07CiBjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTsKIGNsYXNzIEJsb2JQYXJ0Owog
Y2xhc3MgQ2VydGlmaWNhdGVJbmZvOwpAQCAtMTA5LDIxICsxMjAsMTEgQEAgY2xhc3MgRHJhZ0Rh
dGE7CiBjbGFzcyBGaWxlOwogY2xhc3MgRmlsdGVyT3BlcmF0aW9uOwogY2xhc3MgRmlsdGVyT3Bl
cmF0aW9uczsKLWNsYXNzIEZsb2F0UG9pbnQ7Ci1jbGFzcyBGbG9hdFBvaW50M0Q7Ci1jbGFzcyBG
bG9hdFJlY3Q7Ci1jbGFzcyBGbG9hdFJvdW5kZWRSZWN0OwotY2xhc3MgRmxvYXRTaXplOwogY2xh
c3MgRml4ZWRQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHM7CiBjbGFzcyBGb250OwogY2xhc3Mg
Rm9udFBsYXRmb3JtRGF0YTsKIGNsYXNzIEhUVFBIZWFkZXJNYXA7Ci1jbGFzcyBJbnRQb2ludDsK
LWNsYXNzIEludFJlY3Q7Ci1jbGFzcyBJbnRTaXplOwogY2xhc3MgS2V5ZnJhbWVWYWx1ZUxpc3Q7
Ci1jbGFzcyBMYXlvdXRTaXplOwotY2xhc3MgTGF5b3V0UG9pbnQ7CiBjbGFzcyBMaW5lYXJUaW1p
bmdGdW5jdGlvbjsKIGNsYXNzIE5vdGlmaWNhdGlvbjsKIGNsYXNzIFBhc3RlYm9hcmRDdXN0b21E
YXRhOwpAQCAtMTc0LDkgKzE3NSw3IEBAIHN0cnVjdCBUb3VjaEFjdGlvbkRhdGE7CiBzdHJ1Y3Qg
VmVsb2NpdHlEYXRhOwogc3RydWN0IFZpZXdwb3J0QXR0cmlidXRlczsKIHN0cnVjdCBXaW5kb3dG
ZWF0dXJlczsKLSAgICAKLXRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBSZWN0RWRnZXM7Ci11c2lu
ZyBGbG9hdEJveEV4dGVudCA9IFJlY3RFZGdlczxmbG9hdD47CisKIHVzaW5nIElEQktleVBhdGgg
PSBWYXJpYW50PFN0cmluZywgVmVjdG9yPFN0cmluZz4+OwogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
CkBAIC0yMjcsMTAgKzIyNiw0MCBAQCBzdHJ1Y3QgUmVjb3JkOwogCiBuYW1lc3BhY2UgSVBDIHsK
IAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpBZmZpbmVUcmFuc2Zv
cm0+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkFm
ZmluZVRyYW5zZm9ybSYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNv
ZGUoRGVjb2RlciYsIFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYpOwotfTsKKyNkZWZpbmUgREVG
SU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFR5cGUpIFwKKyAgICB0ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFR5cGU+IHsgXAorICAgICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBFbmNvZGVyPiBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qg
VHlwZSYgdmFsdWUpIHsgU2ltcGxlQXJndW1lbnRDb2RlcjxUeXBlPjo6ZW5jb2RlKGVuY29kZXIs
IHZhbHVlKTsgfSBcCisgICAgICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgVHlwZSYgdmFsdWUpIHsgcmV0dXJuIFNpbXBsZUFyZ3VtZW50
Q29kZXI8VHlwZT46OmRlY29kZShkZWNvZGVyLCB2YWx1ZSk7IH0gXAorICAgICAgICBzdGF0aWMg
c3RkOjpvcHRpb25hbDxUeXBlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikgXAorICAgICAgICB7
IFwKKyAgICAgICAgICAgIFR5cGUgdmFsdWU7IFwKKyAgICAgICAgICAgIGlmICghZGVjb2RlKGRl
Y29kZXIsIHZhbHVlKSkgXAorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7IFwK
KyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsgXAorICAgICAgICB9IFwKKyAgICB9OworCitERUZJ
TkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoV2ViQ29yZTo6QWZmaW5lVHJhbnNm
b3JtKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZs
b2F0Qm94RXh0ZW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdl
YkNvcmU6OkZsb2F0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFE
RVIoV2ViQ29yZTo6RmxvYXRQb2ludDNEKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9G
T1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0UmVjdCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09E
RVJfRk9SX0hFQURFUihXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0KQorREVGSU5FX1NJTVBMRV9B
UkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0U2l6ZSkKK0RFRklORV9TSU1Q
TEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3JlOjpJbnRQb2ludCkKK0RFRklORV9T
SU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3JlOjpJbnRSZWN0KQorREVGSU5F
X1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkludFNpemUpCitERUZJ
TkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoV2ViQ29yZTo6TGF5b3V0U2l6ZSkK
K0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3JlOjpMYXlvdXRQ
b2ludCkKKworI2lmIFVTRShDRykKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hF
QURFUihDR1JlY3QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoQ0dT
aXplKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKENHUG9pbnQpCitE
RUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoQ0dBZmZpbmVUcmFuc2Zvcm0p
CisjZW5kaWYKKworI3VuZGVmIERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURF
UgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkF0dHJpYnV0ZWRT
dHJpbmc+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6
OkF0dHJpYnV0ZWRTdHJpbmcmKTsKQEAgLTI2OCw2ICsyOTcsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkV2ZW50VHJhY2tpbmdSZWdpb25zPiB7CiB9OwogCiB0
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0
cml4PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4Jik7CiAg
ICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29y
ZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKIH07CkBAIC0yOTksNDMgKzMyOSwxMSBAQCB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz4gewog
ICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz4gZGVjb2Rl
KERlY29kZXImKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6RmxvYXRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRQb2ludCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9v
bCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKLSAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQot
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFBvaW50M0Q+IHsK
LSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQzRCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2Rl
ciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFJlY3Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwotICAgIHN0YXRpYyBXQVJOX1VO
VVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UmVjdCYpOwot
ICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gZGVjb2RlKERlY29k
ZXImKTsKLX07Ci0gICAgCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OkZsb2F0Qm94RXh0ZW50PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25z
dCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRV
Uk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50Jik7Ci19Owot
CiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlJlY3RFZGdlczxib29s
Pj4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UmVj
dEVkZ2VzPGJvb2w+Jik7CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29k
ZShEZWNvZGVyJiwgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+Jik7CiB9OwogCi10ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0U2l6ZT4gewotICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7Ci0gICAgc3Rh
dGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6Rmxv
YXRTaXplJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OkZsb2F0Um91bmRlZFJlY3Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3QmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURf
UkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0Jik7
Ci19OwotCiAjaWYgRU5BQkxFKE1FVEFfVklFV1BPUlQpCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiB7CiAgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYpOwpAQCAt
MzUwLDM1ICszNDgsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlZpZXdwb3J0QXR0cmlidXRlcz4gewogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9v
bCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYpOwogfTsKIAot
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRQb2ludD4gewotICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsK
LSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJD
b3JlOjpJbnRQb2ludCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFBv
aW50PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpJbnRSZWN0PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVS
TiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6SW50UmVjdCYpOwotICAgIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFJlY3Q+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkludFNpemU+IHsKLSAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVy
JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRV
Uk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkludFNpemUmKTsKLSAgICBzdGF0aWMg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRTaXplPiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQot
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMYXlvdXRTaXplPiB7Ci0g
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpMYXlvdXRTaXpl
Jik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwg
V2ViQ29yZTo6TGF5b3V0U2l6ZSYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpMYXlvdXRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNv
ZGVyJiwgY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVT
RURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpMYXlvdXRQb2ludCYpOwot
fTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMZW5ndGg+IHsK
ICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6Okxlbmd0aCYp
OwogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdl
YkNvcmU6Okxlbmd0aCYpOwpAQCAtNDU3LDYgKzQyNiw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6RHJhZ0RhdGE+IHsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0o
Q09DT0EpCisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpNYWNoU2VuZFJp
Z2h0PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXVEY6Ok1hY2hT
ZW5kUmlnaHQmKTsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIFdURjo6TWFjaFNl
bmRSaWdodCYmKTsKQEAgLTQ2OCwyNiArNDM4LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IHsKICAgICBzdGF0aWMgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCi10
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHUG9pbnQ+IHsKLSAgICBzdGF0aWMgdm9p
ZCBlbmNvZGUoRW5jb2RlciYsIENHUG9pbnQpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENH
UG9pbnQ+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPENHU2l6ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dTaXpl
KTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDR1NpemU+IGRlY29kZShEZWNvZGVyJik7Ci19
OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHUmVjdD4gewotICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dSZWN0KTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25h
bDxDR1JlY3Q+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVu
Y29kZXImLCBDR0FmZmluZVRyYW5zZm9ybSk7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q0dB
ZmZpbmVUcmFuc2Zvcm0+IGRlY29kZShEZWNvZGVyJik7Ci19OwotI2VuZGlmCisjZW5kaWYgLy8g
UExBVEZPUk0oQ09DT0EpCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogdGVtcGxhdGU8PiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZWxlY3Rpb25HZW9tZXRyeT4gewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5t
bSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0K
aW5kZXggOGU0ZDVmMTMxZDgyZjFkZWZlMjZkMTVhYmZlZTA2NGEzYjk4OTBmOC4uNmE0MzQwNjcx
NDYzZDk0NzA3MTkyMzEwYjFmN2JhMGJkMDNhNzZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tCkBAIC0zMjEsNzkgKzMy
MSw2IEBAIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD46CiAgICAgcmV0dXJuIFdURk1vdmUoY29tbWFu
ZCk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxDR1JlY3Q+OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgQ0dSZWN0IHJlY3QpCi17Ci0gICAgZW5jb2RlciA8PCByZWN0Lm9yaWdpbiA8PCByZWN0
LnNpemU7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8Q0dSZWN0PiBBcmd1bWVudENvZGVyPENHUmVjdD46
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIHN0ZDo6b3B0aW9uYWw8Q0dQb2ludD4g
b3JpZ2luOwotICAgIGRlY29kZXIgPj4gb3JpZ2luOwotICAgIGlmICghb3JpZ2luKQotICAgICAg
ICByZXR1cm4geyB9OwotCi0gICAgc3RkOjpvcHRpb25hbDxDR1NpemU+IHNpemU7Ci0gICAgZGVj
b2RlciA+PiBzaXplOwotICAgIGlmICghc2l6ZSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLQotICAg
IHJldHVybiBDR1JlY3QgeyAqb3JpZ2luLCAqc2l6ZSB9OwotfQotCi12b2lkIEFyZ3VtZW50Q29k
ZXI8Q0dTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENHU2l6ZSBzaXplKQotewotICAg
IGVuY29kZXIgPDwgc2l6ZS53aWR0aCA8PCBzaXplLmhlaWdodDsKLX0KLQotc3RkOjpvcHRpb25h
bDxDR1NpemU+IEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIp
Ci17Ci0gICAgQ0dTaXplIHNpemU7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaXplLndpZHRo
KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUuaGVp
Z2h0KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4gc2l6ZTsKLX0KLQotdm9pZCBB
cmd1bWVudENvZGVyPENHUG9pbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0dQb2ludCBw
b2ludCkKLXsKLSAgICBlbmNvZGVyIDw8IHBvaW50LnggPDwgcG9pbnQueTsKLX0KLQotc3RkOjpv
cHRpb25hbDxDR1BvaW50PiBBcmd1bWVudENvZGVyPENHUG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKLXsKLSAgICBDR1BvaW50IHBvaW50OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cG9pbnQueCkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShw
b2ludC55KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4gcG9pbnQ7Ci19Ci0KLXZv
aWQgQXJndW1lbnRDb2RlcjxDR0FmZmluZVRyYW5zZm9ybT46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0pCi17Ci0gICAgZW5jb2RlciA8PCB0cmFu
c2Zvcm0uYSA8PCB0cmFuc2Zvcm0uYiA8PCB0cmFuc2Zvcm0uYyA8PCB0cmFuc2Zvcm0uZCA8PCB0
cmFuc2Zvcm0udHggPDwgdHJhbnNmb3JtLnR5OwotfQotCi1zdGQ6Om9wdGlvbmFsPENHQWZmaW5l
VHJhbnNmb3JtPiBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCi17Ci0gICAgQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtOwotICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmEpKQotICAgICAgICByZXR1cm4geyB9OwotICAg
IGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmIpKQotICAgICAgICByZXR1cm4geyB9Owot
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmMpKQotICAgICAgICByZXR1cm4geyB9
OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmQpKQotICAgICAgICByZXR1cm4g
eyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLnR4KSkKLSAgICAgICAgcmV0
dXJuIHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5zZm9ybS50eSkpCi0gICAgICAg
IHJldHVybiB7IH07Ci0gICAgcmV0dXJuIHRyYW5zZm9ybTsKLX0KLQogI2lmIEVOQUJMRShDT05U
RU5UX0ZJTFRFUklORykKIAogdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNvbnRlbnRGaWx0
ZXJVbmJsb2NrSGFuZGxlcj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3Jl
OjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIGNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxl
cikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440281</attachid>
            <date>2021-10-05 15:28:43 -0700</date>
            <delta_ts>2021-10-05 16:13:55 -0700</delta_ts>
            <desc>Does this build on WPE??</desc>
            <filename>bug-230714-20211005152842.patch</filename>
            <type>text/plain</type>
            <size>4927</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU5OTVlY2VlNWM2YjJhZjUw
NmFiZTlhZTcyMjY4ZDVjZmQzNWJkM2QuLmQ3YjdhYzc1YTI2ZGZkNjQ3OGM4MGU2MGY0MjVmYzA4
MWU4YWFkZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMTAtMDUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIFJlZmFj
dG9yIHNvbWUgSVBDIGFyZ3VtZW50IGVuY29kZXIgbG9naWMgdG8gd29yayB3aXRoIFN0cmVhbUNv
bm5lY3Rpb25FbmNvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA3MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEludFJlY3Q+
OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEludFJlY3Q+
OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaDoKKwogMjAyMS0xMC0wNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIEF1dGhvcml6YXRpb24gaGVhZGVyIGxvc3Qgb24gMzB4IHJlZGlyZWN0cwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggZWVlZTZh
ZWI2MWEzMzhhZjhkM2NhZWZiZjUyNDkxOTQwYWY3MDU1Yi4uZmI5OWY1ZDhmMjRkY2Q1NjFmNTlk
ZTdjOTI3NTNkNjdhODZiYmEwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwCkBAIC0xMjUsNiArMTI1LDI0IEBAIG5hbWVzcGFjZSBJUEMgewog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCisjZGVm
aW5lIERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX1NPVVJDRShUeXBlKSBcCisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gXAorICAgIHZvaWQgQXJndW1lbnRDb2RlcjxUeXBl
Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFR5cGUmIHZhbHVlKSB7IFNpbXBsZUFy
Z3VtZW50Q29kZXI8VHlwZT46OmVuY29kZShlbmNvZGVyLCB2YWx1ZSk7IH0gXAorICAgIGJvb2wg
QXJndW1lbnRDb2RlcjxUeXBlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFR5cGUmIHZhbHVl
KSB7IHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPFR5cGU+OjpkZWNvZGUoZGVjb2RlciwgdmFs
dWUpOyB9IFwKKyAgICBzdGQ6Om9wdGlvbmFsPFR5cGU+IEFyZ3VtZW50Q29kZXI8VHlwZT46OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKSBcCisgICAgeyBcCisgICAgICAgIFR5cGUgdmFsdWU7IFwK
KyAgICAgICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgdmFsdWUpKSBcCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OyBcCisgICAgICAgIHJldHVybiB2YWx1ZTsgXAorICAgIH0gXAorICAg
IHRlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxUeXBlPjo6ZW5jb2RlPEVuY29kZXI+KEVuY29k
ZXImLCBjb25zdCBUeXBlJik7IFwKKyAgICB0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8VHlw
ZT46OmVuY29kZTxTdHJlYW1Db25uZWN0aW9uRW5jb2Rlcj4oU3RyZWFtQ29ubmVjdGlvbkVuY29k
ZXImLCBjb25zdCBUeXBlJik7CisKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX1NP
VVJDRShJbnRSZWN0KQorCisjdW5kZWYgREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
U09VUkNFCisKIHN0YXRpYyB2b2lkIGVuY29kZVNoYXJlZEJ1ZmZlcihFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBTaGFyZWRCdWZmZXIqIGJ1ZmZlcikKIHsKICAgICBib29sIGlzTnVsbCA9ICFidWZm
ZXI7CkBAIC03NTcsMjQgKzc3NSw2IEBAIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+
IEFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlCiAgICAgcmV0
dXJuIGludFBvaW50OwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJbnRSZWN0JiBpbnRSZWN0KQotewotICAgIFNpbXBsZUFy
Z3VtZW50Q29kZXI8SW50UmVjdD46OmVuY29kZShlbmNvZGVyLCBpbnRSZWN0KTsKLX0KLQotYm9v
bCBBcmd1bWVudENvZGVyPEludFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSW50UmVj
dCYgaW50UmVjdCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6
ZGVjb2RlKGRlY29kZXIsIGludFJlY3QpOwotfQotCi1zdGQ6Om9wdGlvbmFsPEludFJlY3Q+IEFy
Z3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIElu
dFJlY3QgcmVjdDsKLSAgICBpZiAoIWRlY29kZShkZWNvZGVyLCByZWN0KSkKLSAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICByZXR1cm4gcmVjdDsKLX0KLQogdGVtcGxhdGU8dHlwZW5h
bWUgRW5jb2Rlcj4KIHZvaWQgQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IEludFNpemUmIGludFNpemUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDM1MTM4ZjVkZTMyZDdlMWYxZmQxNTRj
MjYxZjhlNzkyZTQ3Mzc3MTAuLmQxYjk5MTdjYzIxNTQ3OGE5MWM5NGI0OTkzMTY5MjZhYWZlZDc4
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBA
IC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9JbmRleGVkREIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0lucHV0TW9k
ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVk
aWFTZWxlY3Rpb25PcHRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL05hdGl2ZUltYWdlLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrTG9hZE1ldHJpY3MuaD4KQEAgLTExOSw3ICsxMjAsNiBA
QCBjbGFzcyBGb250OwogY2xhc3MgRm9udFBsYXRmb3JtRGF0YTsKIGNsYXNzIEhUVFBIZWFkZXJN
YXA7CiBjbGFzcyBJbnRQb2ludDsKLWNsYXNzIEludFJlY3Q7CiBjbGFzcyBJbnRTaXplOwogY2xh
c3MgS2V5ZnJhbWVWYWx1ZUxpc3Q7CiBjbGFzcyBMYXlvdXRTaXplOwpAQCAtMjI3LDYgKzIyNywx
NyBAQCBzdHJ1Y3QgUmVjb3JkOwogCiBuYW1lc3BhY2UgSVBDIHsKIAorI2RlZmluZSBERUZJTkVf
U0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoVHlwZSkgXAorICAgIHRlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8VHlwZT4geyBcCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEVuY29kZXI+IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgVHlwZSYpOyBcCisg
ICAgICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFR5
cGUmKTsgXAorICAgICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxUeXBlPiBkZWNvZGUoRGVjb2Rl
ciYpOyBcCisgICAgfTsKKworREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVS
KFdlYkNvcmU6OkludFJlY3QpCisKKyN1bmRlZiBERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVS
X0ZPUl9IRUFERVIKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpB
ZmZpbmVUcmFuc2Zvcm0+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYpOwogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRV
Uk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYpOwpAQCAt
MzU2LDEyICszNjcsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OkludFBvaW50PiB7CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+
IGRlY29kZShEZWNvZGVyJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OkludFJlY3Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJv
b2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0gICAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6SW50UmVjdD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0KIHRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW50U2l6ZT4gewogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBj
b25zdCBXZWJDb3JlOjpJbnRTaXplJik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440284</attachid>
            <date>2021-10-05 15:45:04 -0700</date>
            <delta_ts>2021-10-05 16:14:19 -0700</delta_ts>
            <desc>Try to fix the WPE build again?</desc>
            <filename>bug-230714-20211005154503.patch</filename>
            <type>text/plain</type>
            <size>37053</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU5OTVlY2VlNWM2YjJhZjUw
NmFiZTlhZTcyMjY4ZDVjZmQzNWJkM2QuLjg2YzE1MjQ5YjcwZTFhOThjY2IxODlkNGZlMTRlYWM3
OTY5MWJhYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzEgQEAKKzIwMjEtMTAtMDUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIFJlZmFj
dG9yIHNvbWUgSVBDIGFyZ3VtZW50IGVuY29kZXIgbG9naWMgdG8gd29yayB3aXRoIFN0cmVhbUNv
bm5lY3Rpb25FbmNvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA3MTQKKyAgICAgICAgcmRhcjovLzgzNDc3NTkxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byB1c2Ug
YElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXJgIHRvIGVuY29kZSBkaXNwbGF5IGxpc3QgaXRl
bXMgKGFuZCB0aGVpciBtZW1iZXJzKSBpbiBhbgorICAgICAgICBJUEMgc3RyZWFtLiBUaGlzIHBh
dGNoIGNvbXByaXNlcyB0d28gbWFpbiBzZXRzIG9mIGNoYW5nZXMgaW4gYEFyZ3VtZW50Q29kZXJz
YCwgYW5kIGBXZWJDb3JlQXJndW1lbnRDb2RlcnNgLiBTZWUKKyAgICAgICAgYmVsb3cgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmRlY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNb25vc3RhdGU+OjpkZWNvZGUpOiBEZWxldGVk
LgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2RlKToKKworICAgICAgICBNYW55IG9mIHRoZXNlIGBl
bmNvZGUoKWAgbWV0aG9kcyBhcmUgY3VycmVudGx5IG5vbi10ZW1wbGF0ZWQsIHdoaWNoIG1lYW5z
IHRoYXQgRW5jb2RlciBhbmQgRGVjb2RlciB1c2VkIGhlcmUKKyAgICAgICAgcmVmZXIgc29sZWx5
IHRvIElQQzo6RW5jb2RlciBhbmQgSVBDOjpEZWNvZGVyIChyZXNwZWN0aXZlbHkpIGluc3RlYWQg
b2Ygb3RoZXIgdHlwZXMgb2YgZW5jb2RlcnMgKG5hbWVseSwKKyAgICAgICAgU3RyZWFtQ29ubmVj
dGlvbkVuY29kZXIpLiBNYWtlIHRoZXNlIHVzZSB0ZW1wbGF0ZWQgYGVuY29kZWAgbWV0aG9kcyBp
bnRlYWQsIHNvIHRoYXQgdGhleSB3b3JrIHdpdGggZ2VuZXJpYworICAgICAgICBlbmNvZGVycy4K
KworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmVuY29kZSk6IERlbGV0ZWQuCisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2RlKTog
RGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQz
RD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRS
ZWN0Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9h
dFJlY3Q+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZs
b2F0Qm94RXh0ZW50Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjplbmNvZGUpOiBEZWxldGVkLgorICAg
ICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjpkZWNvZGUpOiBEZWxl
dGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZW5jb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmRlY29k
ZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPExheW91dFBvaW50
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKworICAgICAgICBUaGVzZSBXZWJDb3JlIGFyZ3VtZW50IGNv
ZGVycyBhcmUgYWxzbyBjdXJyZW50bHkgaW5jb21wYXRpYmxlIHdpdGggU3RyZWFtQ29ubmVjdGlv
bkVuY29kZXIsIHNpbmNlIHRoZXkgYXJlIG5vbi0KKyAgICAgICAgdGVtcGxhdGVkIChhbmQgdGh1
cyBvbmx5IHdvcmsgd2l0aCBJUEM6OkVuY29kZXIpLiBTaW5jZSB0aGVzZSBhcmUgYWxsIGVuY29k
YWJsZSBhcyBQT0QgdHlwZXMsIHdlIGNhbiBqdXN0IHVzZQorICAgICAgICBTaW1wbGVBcmd1bWVu
dENvZGVyIGZvciBhbGwgb2YgdGhlc2UuIFdlIGFsc28gYWRkIG5ldyBgREVGSU5FX1NJTVBMRV9B
UkdVTUVOVF9DT0RFUl9GT1JfKEhFQURFUnxTT1VSQ0UpYCBtYWNyb3MKKyAgICAgICAgdG8gbWFr
ZSB0aGlzIGNvZGUgYSBiaXQgZWFzaWVyIHRvIHJlYWQsIHdoaWNoIGFkZHMgU2ltcGxlQXJndW1l
bnRDb2RlciBmb3IgdGhlIGdpdmVuIHR5cGUsIGZvciBib3RoIHN0YW5kYXJkCisgICAgICAgIElQ
Qzo6RW5jb2RlciBhcyB3ZWxsIGFzIElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXIuCisKKyAg
ICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogU2hhcmVk
L21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW06CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8Q0dSZWN0Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxDR1JlY3Q+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPENHU2l6ZT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8Q0dTaXplPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR1BvaW50Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR1BvaW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR0FmZmluZVRyYW5zZm9ybT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+OjpkZWNvZGUpOiBEZWxldGVkLgorCiAyMDIx
LTEwLTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQXV0aG9y
aXphdGlvbiBoZWFkZXIgbG9zdCBvbiAzMHggcmVkaXJlY3RzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKaW5kZXggYTMyMDU1MTg3OThiNzRkY2VkYjhh
MDEzZjljOWM5ODg1YWFlNjYxNi4uZTdmMjc4MDM2MmRkMjAzNzQzNGNhMWNiMzkwZGRlNmVmNzkx
NTkzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2Rl
cnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNw
cApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50RGVj
b2Rlci5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5oIgogI2lu
Y2x1ZGUgIlN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvQXRv
bVN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMjE4LDYgKzIxOSw3IEBAIFdBUk5fVU5VU0VEX1JFVFVS
TiBib29sIEFyZ3VtZW50Q29kZXI8U0hBMTo6RGlnZXN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIFNICiB9CiAKICNpZiBIQVZFKEFVRElUX1RPS0VOKQorCiB2b2lkIEFyZ3VtZW50Q29kZXI8
YXVkaXRfdG9rZW5fdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBhdWRpdF90b2tl
bl90JiBhdWRpdFRva2VuKQogewogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBXVEZfQVJS
QVlfTEVOR1RIKGF1ZGl0VG9rZW4udmFsKTsgaSsrKQpAQCAtMjMyLDE1ICsyMzQsNyBAQCBXQVJO
X1VOVVNFRF9SRVRVUk4gYm9vbCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rva2VuX3Q+OjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgYQogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKIH0KLSNlbmRpZgot
Ci12b2lkIEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2RlKEVuY29kZXImLCBjb25zdCBN
b25vc3RhdGUmKQotewotfQogCi1XQVJOX1VOVVNFRF9SRVRVUk4gc3RkOjpvcHRpb25hbDxNb25v
c3RhdGU+IEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2RlKERlY29kZXImKQotewotICAg
IHJldHVybiBNb25vc3RhdGUgeyB9OwotfQorI2VuZGlmIC8vIEhBVkUoQVVESVRfVE9LRU4pCiAK
IH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9J
UEMvQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50
Q29kZXJzLmgKaW5kZXggNDc5ZGI2MGVkYzI3MTZkNTU2MDZmNjUyZjI0MzFhZDM2OWY2NTcwYy4u
ZDk3Nzg3N2M1ZmIzNjUwN2JiNjUzMjRjMDY2M2Y4NjE1NjZkNTkzYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCkBAIC0xMDgsMTIgKzEwOCwxNCBAQCB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxBcnJheVJlZmVyZW5jZTxU
LCBhcnJheVJlZmVyZW5jZUR5bmFtaQogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8T3B0aW9uU2V0PFQ+PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5j
b2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgT3B0
aW9uU2V0PFQ+JiBvcHRpb25TZXQpCiAgICAgewogICAgICAgICBBU1NFUlQoV1RGOjppc1ZhbGlk
T3B0aW9uU2V0KG9wdGlvblNldCkpOwogICAgICAgICBlbmNvZGVyIDw8IG9wdGlvblNldC50b1Jh
dygpOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGlj
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBPcHRpb25T
ZXQ8VD4mIG9wdGlvblNldCkKICAgICB7CiAgICAgICAgIHR5cGVuYW1lIE9wdGlvblNldDxUPjo6
U3RvcmFnZVR5cGUgdmFsdWU7CkBAIC0xMjUsNiArMTI3LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8T3B0aW9uU2V0PFQ+PiB7CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8T3B0aW9uU2V0PFQ+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAg
ICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgT3B0aW9uU2V0PFQ+OjpTdG9yYWdl
VHlwZT4gdmFsdWU7CkBAIC0xODgsNiArMTkxLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpvcHRpb25hbDxUPj4gewogfTsKIAogdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7CisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgQm94PFQ+JiBib3gpCiAgICAgewogICAgICAgICBpZiAoIWJveCkgewpAQCAtMTk5LDYg
KzIwMyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPEJveDxU
Pj4gewogICAgICAgICBlbmNvZGVyIDw8ICpib3guZ2V0KCk7CiAgICAgfQogCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wg
ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEJveDxUPiYgYm94KQogICAgIHsKICAgICAgICAgYm9v
bCBpc0VuZ2FnZWQ7CkBAIC0yMTgsNiArMjIzLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
IAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8Qm94PFQ+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6
b3B0aW9uYWw8Ym9vbD4gaXNFbmdhZ2VkOwpAQCAtMjM2LDExICsyNDIsMTMgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7CiB9OwogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxzdGQ6OnBhaXI8
VCwgVT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBzdGQ6OnBhaXI8VCwgVT4mIHBhaXIpCiAg
ICAgewogICAgICAgICBlbmNvZGVyIDw8IHBhaXIuZmlyc3QgPDwgcGFpci5zZWNvbmQ7CiAgICAg
fQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVT
RURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIHN0ZDo6cGFpcjxULCBVPiYg
cGFpcikKICAgICB7CiAgICAgICAgIFQgZmlyc3Q7CkBAIC0yNTYsNiArMjY0LDcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpwYWly
PFQsIFU+PiB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5
cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWlyPFQsIFU+
PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8
VD4gZmlyc3Q7CkBAIC0zNjYsMTEgKzM3NSwxMyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBFbGVt
ZW50cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjp0dXBsZTxFbGVtZW50cy4uLj4+IHsKIH07
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEtleVR5cGUsIHR5cGVuYW1lIFZhbHVlVHlwZT4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8V1RGOjpLZXlWYWx1ZVBhaXI8S2V5VHlwZSwgVmFsdWVUeXBlPj4gewor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6S2V5VmFsdWVQYWlyPEtleVR5cGUsIFZhbHVlVHlw
ZT4mIHBhaXIpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHBhaXIua2V5IDw8IHBhaXIudmFs
dWU7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMg
V0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFdURjo6S2V5
VmFsdWVQYWlyPEtleVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAgICAgewogICAgICAgICBLZXlU
eXBlIGtleTsKQEAgLTM5OCw2ICs0MDksNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3Qg
aW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlciwgc2l6ZV90IG1pbgogICAg
ICAgICAgICAgZW5jb2RlciA8PCB2ZWN0b3JbaV07CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5k
bGVyLCBtaW5DYXBhY2l0eT4mIHZlY3RvcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8
VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5Pj4g
b3B0aW9uYWw7CkBAIC00MzcsNiArNDQ5LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90
IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KICAg
ICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25z
dCB1aW50OF90Kj4odmVjdG9yLmRhdGEoKSksIHZlY3Rvci5zaXplKCkgKiBzaXplb2YoVCksIGFs
aWdub2YoVCkpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgog
ICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5
PiYgdmVjdG9yKQogICAgIHsKICAgICAgICAgdWludDY0X3QgZGVjb2RlZFNpemU7CkBAIC00NTEs
NyArNDY0LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0
eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KICAgICAgICAgLy8gU2luY2Ugd2Ug
a25vdyB0aGUgdG90YWwgc2l6ZSBvZiB0aGUgZWxlbWVudHMsIHdlIGNhbiBhbGxvY2F0ZSB0aGUg
dmVjdG9yIGluCiAgICAgICAgIC8vIG9uZSBmZWxsIHN3b29wLiBCZWZvcmUgYWxsb2NhdGluZyB3
ZSBtdXN0IGhvd2V2ZXIgbWFrZSBzdXJlIHRoYXQgdGhlIGRlY29kZXIgYnVmZmVyCiAgICAgICAg
IC8vIGlzIGJpZyBlbm91Z2guCi0gICAgICAgIGlmICghZGVjb2Rlci5idWZmZXJJc0xhcmdlRW5v
dWdoVG9Db250YWluPFQ+KHNpemUpKQorICAgICAgICBpZiAoIWRlY29kZXIudGVtcGxhdGUgYnVm
ZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbjxUPihzaXplKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgICAgICBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxl
ciwgbWluQ2FwYWNpdHk+IHRlbXA7CkBAIC00OTgsNiArNTExLDcgQEAgdGVtcGxhdGU8dHlwZW5h
bWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNp
emVfdCBtaW4KIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgTWFwcGVkQXJnLCB0
eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1lIE1hcHBlZFRy
YWl0c0FyZywgdHlwZW5hbWUgSGFzaFRhYmxlVHJhaXRzPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxI
YXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1hcHBlZFRy
YWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPj4gewogICAgIHR5cGVkZWYgSGFzaE1hcDxLZXlBcmcs
IE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBwZWRUcmFpdHNBcmcsIEhhc2hU
YWJsZVRyYWl0cz4gSGFzaE1hcFR5cGU7CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
PgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBIYXNoTWFw
VHlwZSYgaGFzaE1hcCkKICAgICB7CiAgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWlu
dDMyX3Q+KGhhc2hNYXAuc2l6ZSgpKTsKQEAgLTUwNSw2ICs1MTksNyBAQCB0ZW1wbGF0ZTx0eXBl
bmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5h
bWUgS2V5VHJhaQogICAgICAgICAgICAgZW5jb2RlciA8PCAqaXQ7CiAgICAgfQogCisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxIYXNoTWFw
VHlwZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAgICB1aW50MzJfdCBo
YXNoTWFwU2l6ZTsKQEAgLTUzNSw2ICs1NTAsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcs
IHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQog
ICAgICAgICByZXR1cm4gaGFzaE1hcDsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBE
ZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgSGFzaE1hcFR5cGUmIGhhc2hNYXApCiAgICAgewogICAgICAgICBzdGQ6Om9w
dGlvbmFsPEhhc2hNYXBUeXBlPiB0ZW1wSGFzaE1hcDsKQEAgLTU0OSw2ICs1NjUsNyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFy
ZywgdHlwZW5hbWUgS2V5VHJhaQogdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBI
YXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1lIEhhc2hUYWJsZVRyYWl0cz4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0Fy
ZywgSGFzaFRhYmxlVHJhaXRzPj4gewogICAgIHR5cGVkZWYgSGFzaFNldDxLZXlBcmcsIEhhc2hB
cmcsIEtleVRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPiBIYXNoU2V0VHlwZTsKIAorICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IEhhc2hTZXRUeXBlJiBoYXNoU2V0KQogICAgIHsKICAgICAgICAgZW5j
b2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaGFzaFNldC5zaXplKCkpOwpAQCAtNTU2LDYg
KzU3Myw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlw
ZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNoCiAgICAgICAgICAgICBlbmNvZGVyIDw8
ICppdDsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSGFzaFNl
dFR5cGUmIGhhc2hTZXQpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPEhhc2hTZXRUeXBl
PiB0ZW1wSGFzaFNldDsKQEAgLTU2Nyw2ICs1ODUsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlB
cmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZywgdHlwZW5hbWUgSGFz
aAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBE
ZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEhhc2hTZXRUeXBlPiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHVpbnQ2NF90IGhhc2hTZXRTaXplOwpAQCAt
NTk2LDYgKzYxNSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgSGFzaEFy
ZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNoCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZz4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8SGFzaENvdW50ZWRTZXQ8S2V5QXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNB
cmc+PiB7CiAgICAgdHlwZWRlZiBIYXNoQ291bnRlZFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRy
YWl0c0FyZz4gSGFzaENvdW50ZWRTZXRUeXBlOwogICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENvdW50ZWRTZXQpCiAgICAgewogICAgICAgICBlbmNv
ZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihoYXNoQ291bnRlZFNldC5zaXplKCkpOwpAQCAt
NjA2LDYgKzYyNiw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgSGFzaEFy
ZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnPiBzdHJ1Y3QgQXJndW1lCiAgICAgICAgIH0KICAgICB9
CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9V
TlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEhhc2hDb3VudGVkU2V0
VHlwZSYgaGFzaENvdW50ZWRTZXQpCiAgICAgewogICAgICAgICB1aW50NjRfdCBoYXNoQ291bnRl
ZFNldFNpemU7CkBAIC02MzcsNiArNjU4LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0
eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmc+IHN0cnVjdCBBcmd1bWUKIH07
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUgRXJyb3JUeXBlPiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWYWx1ZVR5cGUsIEVycm9yVHlwZT4+IHsKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBFeHBlY3RlZDxWYWx1ZVR5cGUsIEVycm9yVHlwZT4mIGV4cGVjdGVk
KQogICAgIHsKICAgICAgICAgaWYgKCFleHBlY3RlZC5oYXNfdmFsdWUoKSkgewpAQCAtNjQ4LDYg
KzY3MCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUgRXJyb3JUeXBl
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWCiAgICAgICAgIGVuY29kZXIgPDwgZXhw
ZWN0ZWQudmFsdWUoKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgog
ICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4cGVjdGVkPFZhbHVlVHlwZSwgRXJyb3JUeXBlPj4g
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPGJv
b2w+IGhhc1ZhbHVlOwpAQCAtNzA0LDYgKzcyNyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEVycm9y
VHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8RXhwZWN0ZWQ8dm9pZCwgRXJyb3JUeXBlPj4gewog
CiB0ZW1wbGF0ZTxzaXplX3QgaW5kZXgsIHR5cGVuYW1lLi4uIFR5cGVzPgogc3RydWN0IFZhcmlh
bnRDb2RlciB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9p
ZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV1RGOjpWYXJpYW50PFR5cGVzLi4uPiYg
dmFyaWFudCwgdW5zaWduZWQgaSkKICAgICB7CiAgICAgICAgIGlmIChpID09IGluZGV4KSB7CkBA
IC03MTMsNiArNzM3LDcgQEAgc3RydWN0IFZhcmlhbnRDb2RlciB7CiAgICAgICAgIFZhcmlhbnRD
b2RlcjxpbmRleCAtIDEsIFR5cGVzLi4uPjo6ZW5jb2RlKGVuY29kZXIsIHZhcmlhbnQsIGkpOwog
ICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IGRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyLCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgaWYgKGkgPT0gaW5kZXgpIHsKQEAgLTcy
OCwxMiArNzUzLDE0IEBAIHN0cnVjdCBWYXJpYW50Q29kZXIgewogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZS4uLiBUeXBlcz4KIHN0cnVjdCBWYXJpYW50Q29kZXI8MCwgVHlwZXMuLi4+IHsKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+JiB2YXJpYW50LCB1bnNpZ25lZCBp
KQogICAgIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChpLCAhaSk7CiAgICAgICAgIGVuY29kZXIg
PDwgV1RGOjpnZXQ8MD4odmFyaWFudCk7CiAgICAgfQogICAgIAorICAgIHRlbXBsYXRlPHR5cGVu
YW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V1RGOjpWYXJpYW50PFR5cGVz
Li4uPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIsIHVuc2lnbmVkIGkpCiAgICAgewogICAgICAg
ICBBU1NFUlRfVU5VU0VEKGksICFpKTsKQEAgLTc0Niw2ICs3NzMsNyBAQCBzdHJ1Y3QgVmFyaWFu
dENvZGVyPDAsIFR5cGVzLi4uPiB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4geworICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IFdURjo6VmFyaWFudDxUeXBlcy4uLj4mIHZhcmlhbnQpCiAgICAgewogICAg
ICAgICB1bnNpZ25lZCBpID0gdmFyaWFudC5pbmRleCgpOwpAQCAtNzUzLDYgKzc4MSw3IEBAIHRl
bXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXVEY6OlZhcmlh
bnQ8VHlwZXMuLi4+PiB7CiAgICAgICAgIFZhcmlhbnRDb2RlcjxzaXplb2YuLi4oVHlwZXMpIC0g
MSwgVHlwZXMuLi4+OjplbmNvZGUoZW5jb2RlciwgdmFyaWFudCwgaSk7CiAgICAgfQogICAgIAor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewog
ICAgICAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBpOwpAQCAtODA0LDggKzgzMywxNCBAQCB0
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rva2VuX3Q+IHsKICNlbmRpZgog
CiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT4gewotICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgTW9ub3N0YXRlJik7Ci0gICAgc3RhdGljIHN0
ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBkZWNvZGUoRGVjb2RlciYpOworICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEVuY29kZXI+CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBN
b25vc3RhdGUmKSB7IH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CisgICAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBkZWNvZGUoRGVjb2RlciYpCisgICAgeworICAg
ICAgICByZXR1cm4gTW9ub3N0YXRlIHsgfTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBJ
UEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmlu
ZGV4IGVlZWU2YWViNjFhMzM4YWY4ZDNjYWVmYmY1MjQ5MTk0MGFmNzA1NWIuLjg2N2Y2ZDU0OGI5
ZTI5ODRlYzcxZjMzZGEwMjg5ODcyMzk3MWNkMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMTI1LDYgKzEyNSw0MiBAQCBuYW1lc3Bh
Y2UgSVBDIHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKIAorI2RlZmluZSBERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoVHlw
ZSkgXAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IFwKKyAgICB2b2lkIEFyZ3VtZW50
Q29kZXI8VHlwZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUeXBlJiB2YWx1ZSkg
eyBTaW1wbGVBcmd1bWVudENvZGVyPFR5cGU+OjplbmNvZGUoZW5jb2RlciwgdmFsdWUpOyB9IFwK
KyAgICBib29sIEFyZ3VtZW50Q29kZXI8VHlwZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBU
eXBlJiB2YWx1ZSkgeyByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxUeXBlPjo6ZGVjb2RlKGRl
Y29kZXIsIHZhbHVlKTsgfSBcCisgICAgc3RkOjpvcHRpb25hbDxUeXBlPiBBcmd1bWVudENvZGVy
PFR5cGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikgXAorICAgIHsgXAorICAgICAgICBUeXBl
IHZhbHVlOyBcCisgICAgICAgIGlmICghZGVjb2RlKGRlY29kZXIsIHZhbHVlKSkgXAorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgXAorICAgICAgICByZXR1cm4gdmFsdWU7IFwKKyAg
ICB9IFwKKyAgICB0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8VHlwZT46OmVuY29kZTxFbmNv
ZGVyPihFbmNvZGVyJiwgY29uc3QgVHlwZSYpOyBcCisgICAgdGVtcGxhdGUgdm9pZCBBcmd1bWVu
dENvZGVyPFR5cGU+OjplbmNvZGU8U3RyZWFtQ29ubmVjdGlvbkVuY29kZXI+KFN0cmVhbUNvbm5l
Y3Rpb25FbmNvZGVyJiwgY29uc3QgVHlwZSYpOworCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NP
REVSX0ZPUl9TT1VSQ0UoQWZmaW5lVHJhbnNmb3JtKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9D
T0RFUl9GT1JfU09VUkNFKEZsb2F0Qm94RXh0ZW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9D
T0RFUl9GT1JfU09VUkNFKEZsb2F0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVS
X0ZPUl9TT1VSQ0UoRmxvYXRQb2ludDNEKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9G
T1JfU09VUkNFKEZsb2F0UmVjdCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX1NP
VVJDRShGbG9hdFJvdW5kZWRSZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
U09VUkNFKEZsb2F0U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX1NPVVJD
RShJbnRQb2ludCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX1NPVVJDRShJbnRS
ZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEludFNpemUpCitE
RUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoTGF5b3V0UG9pbnQpCitERUZJ
TkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoTGF5b3V0U2l6ZSkKKworI2lmIFVT
RShDRykKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX1NPVVJDRShDR1JlY3QpCitE
RUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoQ0dTaXplKQorREVGSU5FX1NJ
TVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKENHUG9pbnQpCitERUZJTkVfU0lNUExFX0FS
R1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoQ0dBZmZpbmVUcmFuc2Zvcm0pCisjZW5kaWYKKworI3Vu
ZGVmIERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX1NPVVJDRQorCiBzdGF0aWMgdm9p
ZCBlbmNvZGVTaGFyZWRCdWZmZXIoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU2hhcmVkQnVmZmVy
KiBidWZmZXIpCiB7CiAgICAgYm9vbCBpc051bGwgPSAhYnVmZmVyOwpAQCAtMjMxLDE2ICsyNjcs
NiBAQCBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlVHlwZXNBbmREYXRhKERl
Y29kZXImIGRlY29kZXIsIFZlY3RvcjxTdHJpbgogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lk
IEFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgYWZmaW5lVHJhbnNmb3JtKQotewotICAgIFNpbXBsZUFy
Z3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2RlKGVuY29kZXIsIGFmZmluZVRyYW5z
Zm9ybSk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxBZmZpbmVUcmFuc2Zvcm0+OjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgQWZmaW5lVHJhbnNmb3JtJiBhZmZpbmVUcmFuc2Zvcm0pCi17Ci0g
ICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKGRl
Y29kZXIsIGFmZmluZVRyYW5zZm9ybSk7Ci19Ci0KIHZvaWQgQXJndW1lbnRDb2RlcjxDYWNoZVF1
ZXJ5T3B0aW9ucz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDYWNoZVF1ZXJ5T3B0
aW9ucyYgb3B0aW9ucykKIHsKICAgICBlbmNvZGVyIDw8IG9wdGlvbnMuaWdub3JlU2VhcmNoOwpA
QCAtNDI1LDYgKzQ1MSw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9u
cz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBFdmVudFRyYWNraW5nCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiB2b2lkIEFyZ3VtZW50Q29kZXI8
VHJhbnNmb3JtYXRpb25NYXRyaXg+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVHJh
bnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybWF0aW9uTWF0cml4KQogewogICAgIGVuY29kZXIg
PDwgdHJhbnNmb3JtYXRpb25NYXRyaXgubTExKCk7CkBAIC01MDYsNiArNTMzLDkgQEAgYm9vbCBB
cmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIFRyYW5zZm9ybWF0aW8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordGVtcGxhdGUgdm9pZCBB
cmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5jb2RlPEVuY29kZXI+KEVuY29k
ZXImLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwordGVtcGxhdGUgdm9pZCBBcmd1bWVu
dENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5jb2RlPFN0cmVhbUNvbm5lY3Rpb25FbmNv
ZGVyPihTdHJlYW1Db25uZWN0aW9uRW5jb2RlciYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
Jik7CisKIHZvaWQgQXJndW1lbnRDb2RlcjxMaW5lYXJUaW1pbmdGdW5jdGlvbj46OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMaW5lYXJUaW1pbmdGdW5jdGlvbiYgdGltaW5nRnVuY3Rp
b24pCiB7CiAgICAgZW5jb2RlciA8PCB0aW1pbmdGdW5jdGlvbi50eXBlKCk7CkBAIC02MTcsNjUg
KzY0Nyw2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxTcHJpbmdUaW1pbmdGdW5jdGlvbj46OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyLCBTcHJpbmdUaW1pbmdGCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LXZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IEZsb2F0UG9pbnQmIGZsb2F0UG9pbnQpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2Rl
cjxGbG9hdFBvaW50Pjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0UG9pbnQpOwotfQotCi1ib29sIEFy
Z3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFBv
aW50JiBmbG9hdFBvaW50KQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0
UG9pbnQ+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRQb2ludCk7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8
RmxvYXRQb2ludD4gQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCi17Ci0gICAgRmxvYXRQb2ludCBmbG9hdFBvaW50OwotICAgIGlmICghU2ltcGxlQXJn
dW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0UG9pbnQpKQotICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBmbG9hdFBvaW50OwotfQotCi12
b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IEZsb2F0UG9pbnQzRCYgZmxvYXRQb2ludCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENv
ZGVyPEZsb2F0UG9pbnQzRD46OmVuY29kZShlbmNvZGVyLCBmbG9hdFBvaW50KTsKLX0KLQotYm9v
bCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBG
bG9hdFBvaW50M0QmIGZsb2F0UG9pbnQpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29k
ZXI8RmxvYXRQb2ludDNEPjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0UG9pbnQpOwotfQotCi0KLXZv
aWQgQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29u
c3QgRmxvYXRSZWN0JiBmbG9hdFJlY3QpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9h
dFJlY3Q+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRSZWN0KTsKLX0KLQotYm9vbCBBcmd1bWVudENv
ZGVyPEZsb2F0UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFJlY3QmIGZsb2F0
UmVjdCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjpkZWNv
ZGUoZGVjb2RlciwgZmxvYXRSZWN0KTsKLX0KLQotc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+IEFy
Z3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAg
RmxvYXRSZWN0IGZsb2F0UmVjdDsKLSAgICBpZiAoIVNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRS
ZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0UmVjdCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7Ci0gICAgcmV0dXJuIGZsb2F0UmVjdDsKLX0KLQotCi12b2lkIEFyZ3VtZW50Q29kZXI8
RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRCb3hF
eHRlbnQmIGZsb2F0Qm94RXh0ZW50KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRC
b3hFeHRlbnQ+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRCb3hFeHRlbnQpOwotfQotICAgIAotYm9v
bCBBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IEZsb2F0Qm94RXh0ZW50JiBmbG9hdEJveEV4dGVudCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJn
dW1lbnRDb2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZShkZWNvZGVyLCBmbG9hdEJveEV4dGVu
dCk7Ci19Ci0KLQogdm9pZCBBcmd1bWVudENvZGVyPFJlY3RFZGdlczxib29sPj46OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWN0RWRnZXM8Ym9vbD4mIGJveEVkZ2VzKQogewogICAg
IFNpbXBsZUFyZ3VtZW50Q29kZXI8UmVjdEVkZ2VzPGJvb2w+Pjo6ZW5jb2RlKGVuY29kZXIsIGJv
eEVkZ2VzKTsKQEAgLTY4NiwyOCArNjU3LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPFJlY3RFZGdl
czxib29sPj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZWN0RWRnZXM8Ym9vbD4mIGIKICAg
ICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxSZWN0RWRnZXM8Ym9vbD4+OjpkZWNvZGUoZGVj
b2RlciwgYm94RWRnZXMpOwogfQogCi0KLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRTaXplJiBmbG9hdFNpemUpCi17Ci0g
ICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRT
aXplKTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0U2l6ZT46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBGbG9hdFNpemUmIGZsb2F0U2l6ZSkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJn
dW1lbnRDb2RlcjxGbG9hdFNpemU+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRTaXplKTsKLX0KLQot
Ci12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByb3VuZGVkUmVjdCkKLXsKLSAgICBTaW1w
bGVBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjplbmNvZGUoZW5jb2Rlciwgcm91bmRl
ZFJlY3QpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFJvdW5kZWRSZWN0JiByb3VuZGVkUmVjdCkKLXsKLSAg
ICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFJvdW5kZWRSZWN0Pjo6ZGVjb2RlKGRl
Y29kZXIsIHJvdW5kZWRSZWN0KTsKLX0KLQogI2lmIEVOQUJMRShNRVRBX1ZJRVdQT1JUKQogdm9p
ZCBBcmd1bWVudENvZGVyPFZpZXdwb3J0QXJndW1lbnRzPjo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJiB2aWV3cG9ydEFyZ3VtZW50cykKIHsKQEAgLTcz
OSw4NyArNjg4LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPFZpZXdwb3J0QXR0cmlidXRlcz46OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCBWaWV3cG9ydEF0dHJpYnUKICAgICByZXR1cm4gU2ltcGxl
QXJndW1lbnRDb2RlcjxWaWV3cG9ydEF0dHJpYnV0ZXM+OjpkZWNvZGUoZGVjb2Rlciwgdmlld3Bv
cnRBdHRyaWJ1dGVzKTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEludFBvaW50JiBpbnRQb2ludCkKLXsKLSAgICBTaW1w
bGVBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZW5jb2RlKGVuY29kZXIsIGludFBvaW50KTsKLX0K
LQotYm9vbCBBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IEludFBvaW50JiBpbnRQb2ludCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxJ
bnRQb2ludD46OmRlY29kZShkZWNvZGVyLCBpbnRQb2ludCk7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6SW50UG9pbnQ+IEFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKLXsKLSAgICBJbnRQb2ludCBpbnRQb2ludDsKLSAgICBpZiAoIVNpbXBsZUFy
Z3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoZGVjb2RlciwgaW50UG9pbnQpKQotICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBpbnRQb2ludDsKLX0KLQotdm9pZCBB
cmd1bWVudENvZGVyPEludFJlY3Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgSW50
UmVjdCYgaW50UmVjdCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEludFJlY3Q+OjplbmNv
ZGUoZW5jb2RlciwgaW50UmVjdCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEludFJlY3QmIGludFJlY3QpCi17Ci0gICAgcmV0dXJu
IFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZShkZWNvZGVyLCBpbnRSZWN0KTsK
LX0KLQotc3RkOjpvcHRpb25hbDxJbnRSZWN0PiBBcmd1bWVudENvZGVyPEludFJlY3Q+OjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBJbnRSZWN0IHJlY3Q7Ci0gICAgaWYgKCFkZWNv
ZGUoZGVjb2RlciwgcmVjdCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0
dXJuIHJlY3Q7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+Ci12b2lkIEFyZ3VtZW50
Q29kZXI8SW50U2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJbnRTaXplJiBp
bnRTaXplKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZShlbmNv
ZGVyLCBpbnRTaXplKTsKLX0KLQotdGVtcGxhdGUKLXZvaWQgQXJndW1lbnRDb2RlcjxJbnRTaXpl
Pjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBJbnRTaXplJik7Ci10ZW1wbGF0ZQot
dm9pZCBBcmd1bWVudENvZGVyPEludFNpemU+OjplbmNvZGU8U3RyZWFtQ29ubmVjdGlvbkVuY29k
ZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwgY29uc3QgSW50U2l6ZSYpOwotCi1ib29sIEFy
Z3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBJbnRTaXplJiBp
bnRTaXplKQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEludFNpemU+OjpkZWNv
ZGUoZGVjb2RlciwgaW50U2l6ZSk7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8SW50U2l6ZT4gQXJndW1l
bnRDb2RlcjxJbnRTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgSW50U2l6
ZSBpbnRTaXplOwotICAgIGlmICghU2ltcGxlQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZGVjb2Rl
KGRlY29kZXIsIGludFNpemUpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJl
dHVybiBpbnRTaXplOwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMYXlvdXRTaXplJiBsYXlvdXRTaXplKQotewotICAg
IFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmVuY29kZShlbmNvZGVyLCBsYXlvdXRT
aXplKTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPExheW91dFNpemU+OjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgTGF5b3V0U2l6ZSYgbGF5b3V0U2l6ZSkKLXsKLSAgICByZXR1cm4gU2ltcGxl
QXJndW1lbnRDb2RlcjxMYXlvdXRTaXplPjo6ZGVjb2RlKGRlY29kZXIsIGxheW91dFNpemUpOwot
fQotCi0KLXZvaWQgQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBMYXlvdXRQb2ludCYgbGF5b3V0UG9pbnQpCi17Ci0gICAgU2ltcGxlQXJn
dW1lbnRDb2RlcjxMYXlvdXRQb2ludD46OmVuY29kZShlbmNvZGVyLCBsYXlvdXRQb2ludCk7Ci19
Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyLCBMYXlvdXRQb2ludCYgbGF5b3V0UG9pbnQpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3Vt
ZW50Q29kZXI8TGF5b3V0UG9pbnQ+OjpkZWNvZGUoZGVjb2RlciwgbGF5b3V0UG9pbnQpOwotfQot
CiB2b2lkIEFyZ3VtZW50Q29kZXI8UmVjZW50U2VhcmNoPjo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IFJlY2VudFNlYXJjaCYgcmVjZW50U2VhcmNoKQogewogICAgIGVuY29kZXIgPDwg
cmVjZW50U2VhcmNoLnN0cmluZyA8PCByZWNlbnRTZWFyY2gudGltZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggMzUxMzhmNWRlMzJkN2UxZjFm
ZDE1NGMyNjFmOGU3OTJlNDczNzcxMC4uN2U4ZmVjOWZiM2Y2Mjg1YWU3ZTYwYjNmMDQ4NGExZWY5
OWM3NmU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgKQEAgLTI2LDEyICsyNiwyNCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBcmd1bWVu
dENvZGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQWZmaW5lVHJhbnNmb3JtLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9BdXRvcGxheUV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db2xvclNwYWNl
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludDNE
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zs
b2F0Um91bmRlZFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5kZXhl
ZERCLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnB1dE1vZGUuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0ludFBvaW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9JbnRTaXplLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9MYXlvdXRQb2ludC5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvTGF5b3V0U2l6ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGVuZ3RoQm94Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlbGVjdGlvbk9wdGlvbi5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvTmF0aXZlSW1hZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtMb2FkTWV0cmlj
cy5oPgpAQCAtOTYsNyArMTA4LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZlciogQ1ZQaXhl
bEJ1ZmZlclJlZjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQWJzb2x1dGVQb3NpdGlv
bkNvbnN0cmFpbnRzOwotY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwogY2xhc3MgQXV0aGVudGljYXRp
b25DaGFsbGVuZ2U7CiBjbGFzcyBCbG9iUGFydDsKIGNsYXNzIENlcnRpZmljYXRlSW5mbzsKQEAg
LTEwOSwyMSArMTIwLDExIEBAIGNsYXNzIERyYWdEYXRhOwogY2xhc3MgRmlsZTsKIGNsYXNzIEZp
bHRlck9wZXJhdGlvbjsKIGNsYXNzIEZpbHRlck9wZXJhdGlvbnM7Ci1jbGFzcyBGbG9hdFBvaW50
OwotY2xhc3MgRmxvYXRQb2ludDNEOwotY2xhc3MgRmxvYXRSZWN0OwotY2xhc3MgRmxvYXRSb3Vu
ZGVkUmVjdDsKLWNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIEZpeGVkUG9zaXRpb25WaWV3cG9ydENv
bnN0cmFpbnRzOwogY2xhc3MgRm9udDsKIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGE7CiBjbGFzcyBI
VFRQSGVhZGVyTWFwOwotY2xhc3MgSW50UG9pbnQ7Ci1jbGFzcyBJbnRSZWN0OwotY2xhc3MgSW50
U2l6ZTsKIGNsYXNzIEtleWZyYW1lVmFsdWVMaXN0OwotY2xhc3MgTGF5b3V0U2l6ZTsKLWNsYXNz
IExheW91dFBvaW50OwogY2xhc3MgTGluZWFyVGltaW5nRnVuY3Rpb247CiBjbGFzcyBOb3RpZmlj
YXRpb247CiBjbGFzcyBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTsKQEAgLTE3NCw5ICsxNzUsNyBAQCBz
dHJ1Y3QgVG91Y2hBY3Rpb25EYXRhOwogc3RydWN0IFZlbG9jaXR5RGF0YTsKIHN0cnVjdCBWaWV3
cG9ydEF0dHJpYnV0ZXM7CiBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7Ci0gICAgCi10ZW1wbGF0ZTx0
eXBlbmFtZT4gY2xhc3MgUmVjdEVkZ2VzOwotdXNpbmcgRmxvYXRCb3hFeHRlbnQgPSBSZWN0RWRn
ZXM8ZmxvYXQ+OworCiB1c2luZyBJREJLZXlQYXRoID0gVmFyaWFudDxTdHJpbmcsIFZlY3RvcjxT
dHJpbmc+PjsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMjI3LDEwICsyMjYsMzQgQEAgc3Ry
dWN0IFJlY29yZDsKIAogbmFtZXNwYWNlIElQQyB7CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mKTsKLSAgICBzdGF0
aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpBZmZp
bmVUcmFuc2Zvcm0mKTsKLX07CisjZGVmaW5lIERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJf
Rk9SX0hFQURFUihUeXBlKSBcCisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxU
eXBlPiB7IFwKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImLCBjb25zdCBUeXBlJik7IFwKKyAgICAgICAgc3RhdGljIFdBUk5fVU5V
U0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgVHlwZSYpOyBcCisgICAgICAgIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFR5cGU+IGRlY29kZShEZWNvZGVyJik7IFwKKyAgICB9OworCitERUZJ
TkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoV2ViQ29yZTo6QWZmaW5lVHJhbnNm
b3JtKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZs
b2F0Qm94RXh0ZW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdl
YkNvcmU6OkZsb2F0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFE
RVIoV2ViQ29yZTo6RmxvYXRQb2ludDNEKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9G
T1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0UmVjdCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09E
RVJfRk9SX0hFQURFUihXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0KQorREVGSU5FX1NJTVBMRV9B
UkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0U2l6ZSkKK0RFRklORV9TSU1Q
TEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3JlOjpJbnRQb2ludCkKK0RFRklORV9T
SU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3JlOjpJbnRSZWN0KQorREVGSU5F
X1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkludFNpemUpCitERUZJ
TkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoV2ViQ29yZTo6TGF5b3V0UG9pbnQp
CitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoV2ViQ29yZTo6TGF5b3V0
U2l6ZSkKKworI2lmIFVTRShDRykKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hF
QURFUihDR1JlY3QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoQ0dT
aXplKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKENHUG9pbnQpCitE
RUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoQ0dBZmZpbmVUcmFuc2Zvcm0p
CisjZW5kaWYKKworI3VuZGVmIERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURF
UgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkF0dHJpYnV0ZWRT
dHJpbmc+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6
OkF0dHJpYnV0ZWRTdHJpbmcmKTsKQEAgLTI2OCw2ICsyOTEsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkV2ZW50VHJhY2tpbmdSZWdpb25zPiB7CiB9OwogCiB0
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0
cml4PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4Jik7CiAg
ICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29y
ZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKIH07CkBAIC0yOTksNDMgKzMyMywxMSBAQCB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz4gewog
ICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz4gZGVjb2Rl
KERlY29kZXImKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6RmxvYXRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRQb2ludCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9v
bCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKLSAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQot
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFBvaW50M0Q+IHsK
LSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQzRCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2Rl
ciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFJlY3Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwotICAgIHN0YXRpYyBXQVJOX1VO
VVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UmVjdCYpOwot
ICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gZGVjb2RlKERlY29k
ZXImKTsKLX07Ci0gICAgCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OkZsb2F0Qm94RXh0ZW50PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25z
dCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRV
Uk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50Jik7Ci19Owot
CiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlJlY3RFZGdlczxib29s
Pj4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UmVj
dEVkZ2VzPGJvb2w+Jik7CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29k
ZShEZWNvZGVyJiwgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+Jik7CiB9OwogCi10ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0U2l6ZT4gewotICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7Ci0gICAgc3Rh
dGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6Rmxv
YXRTaXplJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OkZsb2F0Um91bmRlZFJlY3Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3QmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURf
UkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0Jik7
Ci19OwotCiAjaWYgRU5BQkxFKE1FVEFfVklFV1BPUlQpCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiB7CiAgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYpOwpAQCAt
MzUwLDM1ICszNDIsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlZpZXdwb3J0QXR0cmlidXRlcz4gewogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9v
bCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYpOwogfTsKIAot
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRQb2ludD4gewotICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsK
LSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJD
b3JlOjpJbnRQb2ludCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFBv
aW50PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpJbnRSZWN0PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVS
TiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6SW50UmVjdCYpOwotICAgIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFJlY3Q+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkludFNpemU+IHsKLSAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVy
JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRV
Uk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkludFNpemUmKTsKLSAgICBzdGF0aWMg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRTaXplPiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQot
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMYXlvdXRTaXplPiB7Ci0g
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpMYXlvdXRTaXpl
Jik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwg
V2ViQ29yZTo6TGF5b3V0U2l6ZSYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpMYXlvdXRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNv
ZGVyJiwgY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVT
RURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpMYXlvdXRQb2ludCYpOwot
fTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMZW5ndGg+IHsK
ICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6Okxlbmd0aCYp
OwogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdl
YkNvcmU6Okxlbmd0aCYpOwpAQCAtNDU3LDYgKzQyMCw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6RHJhZ0RhdGE+IHsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0o
Q09DT0EpCisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpNYWNoU2VuZFJp
Z2h0PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXVEY6Ok1hY2hT
ZW5kUmlnaHQmKTsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIFdURjo6TWFjaFNl
bmRSaWdodCYmKTsKQEAgLTQ2OCwyNiArNDMyLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IHsKICAgICBzdGF0aWMgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCi10
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHUG9pbnQ+IHsKLSAgICBzdGF0aWMgdm9p
ZCBlbmNvZGUoRW5jb2RlciYsIENHUG9pbnQpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENH
UG9pbnQ+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPENHU2l6ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dTaXpl
KTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDR1NpemU+IGRlY29kZShEZWNvZGVyJik7Ci19
OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHUmVjdD4gewotICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dSZWN0KTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25h
bDxDR1JlY3Q+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVu
Y29kZXImLCBDR0FmZmluZVRyYW5zZm9ybSk7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q0dB
ZmZpbmVUcmFuc2Zvcm0+IGRlY29kZShEZWNvZGVyJik7Ci19OwotI2VuZGlmCisjZW5kaWYgLy8g
UExBVEZPUk0oQ09DT0EpCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogdGVtcGxhdGU8PiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZWxlY3Rpb25HZW9tZXRyeT4gewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5t
bSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0K
aW5kZXggOGU0ZDVmMTMxZDgyZjFkZWZlMjZkMTVhYmZlZTA2NGEzYjk4OTBmOC4uNmE0MzQwNjcx
NDYzZDk0NzA3MTkyMzEwYjFmN2JhMGJkMDNhNzZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tCkBAIC0zMjEsNzkgKzMy
MSw2IEBAIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD46CiAgICAgcmV0dXJuIFdURk1vdmUoY29tbWFu
ZCk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxDR1JlY3Q+OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgQ0dSZWN0IHJlY3QpCi17Ci0gICAgZW5jb2RlciA8PCByZWN0Lm9yaWdpbiA8PCByZWN0
LnNpemU7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8Q0dSZWN0PiBBcmd1bWVudENvZGVyPENHUmVjdD46
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIHN0ZDo6b3B0aW9uYWw8Q0dQb2ludD4g
b3JpZ2luOwotICAgIGRlY29kZXIgPj4gb3JpZ2luOwotICAgIGlmICghb3JpZ2luKQotICAgICAg
ICByZXR1cm4geyB9OwotCi0gICAgc3RkOjpvcHRpb25hbDxDR1NpemU+IHNpemU7Ci0gICAgZGVj
b2RlciA+PiBzaXplOwotICAgIGlmICghc2l6ZSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLQotICAg
IHJldHVybiBDR1JlY3QgeyAqb3JpZ2luLCAqc2l6ZSB9OwotfQotCi12b2lkIEFyZ3VtZW50Q29k
ZXI8Q0dTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENHU2l6ZSBzaXplKQotewotICAg
IGVuY29kZXIgPDwgc2l6ZS53aWR0aCA8PCBzaXplLmhlaWdodDsKLX0KLQotc3RkOjpvcHRpb25h
bDxDR1NpemU+IEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIp
Ci17Ci0gICAgQ0dTaXplIHNpemU7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaXplLndpZHRo
KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUuaGVp
Z2h0KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4gc2l6ZTsKLX0KLQotdm9pZCBB
cmd1bWVudENvZGVyPENHUG9pbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0dQb2ludCBw
b2ludCkKLXsKLSAgICBlbmNvZGVyIDw8IHBvaW50LnggPDwgcG9pbnQueTsKLX0KLQotc3RkOjpv
cHRpb25hbDxDR1BvaW50PiBBcmd1bWVudENvZGVyPENHUG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKLXsKLSAgICBDR1BvaW50IHBvaW50OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cG9pbnQueCkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShw
b2ludC55KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4gcG9pbnQ7Ci19Ci0KLXZv
aWQgQXJndW1lbnRDb2RlcjxDR0FmZmluZVRyYW5zZm9ybT46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0pCi17Ci0gICAgZW5jb2RlciA8PCB0cmFu
c2Zvcm0uYSA8PCB0cmFuc2Zvcm0uYiA8PCB0cmFuc2Zvcm0uYyA8PCB0cmFuc2Zvcm0uZCA8PCB0
cmFuc2Zvcm0udHggPDwgdHJhbnNmb3JtLnR5OwotfQotCi1zdGQ6Om9wdGlvbmFsPENHQWZmaW5l
VHJhbnNmb3JtPiBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCi17Ci0gICAgQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtOwotICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmEpKQotICAgICAgICByZXR1cm4geyB9OwotICAg
IGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmIpKQotICAgICAgICByZXR1cm4geyB9Owot
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmMpKQotICAgICAgICByZXR1cm4geyB9
OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmQpKQotICAgICAgICByZXR1cm4g
eyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLnR4KSkKLSAgICAgICAgcmV0
dXJuIHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5zZm9ybS50eSkpCi0gICAgICAg
IHJldHVybiB7IH07Ci0gICAgcmV0dXJuIHRyYW5zZm9ybTsKLX0KLQogI2lmIEVOQUJMRShDT05U
RU5UX0ZJTFRFUklORykKIAogdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNvbnRlbnRGaWx0
ZXJVbmJsb2NrSGFuZGxlcj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3Jl
OjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIGNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxl
cikK
</data>
<flag name="commit-queue"
          id="464164"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440288</attachid>
            <date>2021-10-05 16:14:01 -0700</date>
            <delta_ts>2021-10-05 17:00:04 -0700</delta_ts>
            <desc>Another test patch for WPE</desc>
            <filename>bug-230714-20211005161400.patch</filename>
            <type>text/plain</type>
            <size>4046</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBlZWVlNmFlYjYxYTMzOGFmOGQzY2FlZmJmNTI0
OTE5NDBhZjcwNTViLi45NTdiYjNmZTdiMTMyM2Q2YWU3MTk5ZDdlNDhjMDJkNjAyNmQwMTRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAg
LTEyNSw2ICsxMjUsMjIgQEAgbmFtZXNwYWNlIElQQyB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKKyNkZWZpbmUgREVGSU5FX1NJTVBMRV9BUkdV
TUVOVF9DT0RFUl9GT1JfU09VUkNFKFR5cGUpIFwKKyAgICBib29sIEFyZ3VtZW50Q29kZXI8VHlw
ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBUeXBlJiB2YWx1ZSkgeyByZXR1cm4gU2ltcGxl
QXJndW1lbnRDb2RlcjxUeXBlPjo6ZGVjb2RlKGRlY29kZXIsIHZhbHVlKTsgfSBcCisgICAgc3Rk
OjpvcHRpb25hbDxUeXBlPiBBcmd1bWVudENvZGVyPFR5cGU+OjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikgXAorICAgIHsgXAorICAgICAgICBUeXBlIHZhbHVlOyBcCisgICAgICAgIGlmICghZGVj
b2RlKGRlY29kZXIsIHZhbHVlKSkgXAorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsg
XAorICAgICAgICByZXR1cm4gdmFsdWU7IFwKKyAgICB9IFwKKyAgICB0ZW1wbGF0ZSB2b2lkIEFy
Z3VtZW50Q29kZXI8VHlwZT46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVyJiwgY29uc3QgVHlwZSYp
OyBcCisgICAgdGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFR5cGU+OjplbmNvZGU8U3RyZWFt
Q29ubmVjdGlvbkVuY29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwgY29uc3QgVHlwZSYp
OworCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoSW50UmVjdCkKKwor
I3VuZGVmIERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX1NPVVJDRQorCiBzdGF0aWMg
dm9pZCBlbmNvZGVTaGFyZWRCdWZmZXIoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU2hhcmVkQnVm
ZmVyKiBidWZmZXIpCiB7CiAgICAgYm9vbCBpc051bGwgPSAhYnVmZmVyOwpAQCAtNzU3LDI0ICs3
NzMsNiBAQCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiBBcmd1bWVudENvZGVyPElu
dFBvaW50Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZQogICAgIHJldHVybiBpbnRQb2ludDsKIH0K
IAotdm9pZCBBcmd1bWVudENvZGVyPEludFJlY3Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgSW50UmVjdCYgaW50UmVjdCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEludFJl
Y3Q+OjplbmNvZGUoZW5jb2RlciwgaW50UmVjdCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxJ
bnRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEludFJlY3QmIGludFJlY3QpCi17Ci0g
ICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZShkZWNvZGVyLCBp
bnRSZWN0KTsKLX0KLQotc3RkOjpvcHRpb25hbDxJbnRSZWN0PiBBcmd1bWVudENvZGVyPEludFJl
Y3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBJbnRSZWN0IHJlY3Q7Ci0gICAg
aWYgKCFkZWNvZGUoZGVjb2RlciwgcmVjdCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
Ci0gICAgcmV0dXJuIHJlY3Q7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiB2b2lk
IEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJ
bnRTaXplJiBpbnRTaXplKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaAppbmRleCAzNTEzOGY1ZGUzMmQ3ZTFmMWZkMTU0YzI2MWY4ZTc5MmU0NzM3NzEw
Li4zODZiNzVhNmEzOWFlYzBjZDRkM2YwYjA5OTZkYTE2YjcwOWMwOGEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMzIsNiArMzIsNyBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
SW5kZXhlZERCLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnB1dE1vZGUuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0ludFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2VsZWN0aW9uT3B0aW9u
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OYXRpdmVJbWFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
TmV0d29ya0xvYWRNZXRyaWNzLmg+CkBAIC0xMTksNyArMTIwLDYgQEAgY2xhc3MgRm9udDsKIGNs
YXNzIEZvbnRQbGF0Zm9ybURhdGE7CiBjbGFzcyBIVFRQSGVhZGVyTWFwOwogY2xhc3MgSW50UG9p
bnQ7Ci1jbGFzcyBJbnRSZWN0OwogY2xhc3MgSW50U2l6ZTsKIGNsYXNzIEtleWZyYW1lVmFsdWVM
aXN0OwogY2xhc3MgTGF5b3V0U2l6ZTsKQEAgLTIyNyw2ICsyMjcsMjAgQEAgc3RydWN0IFJlY29y
ZDsKIAogbmFtZXNwYWNlIElQQyB7CiAKKyNkZWZpbmUgREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9D
T0RFUl9GT1JfSEVBREVSKFR5cGUpIFwKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPFR5cGU+IHsgXAorICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVHlwZSYgdmFsdWUpIFwKKyAgICAg
ICAgeyBcCisgICAgICAgICAgICBTaW1wbGVBcmd1bWVudENvZGVyPFR5cGU+OjplbmNvZGUoZW5j
b2RlciwgdmFsdWUpOyBcCisgICAgICAgIH0gXAorICAgICAgICBzdGF0aWMgV0FSTl9VTlVTRURf
UkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBUeXBlJik7IFwKKyAgICAgICAgc3RhdGljIHN0
ZDo6b3B0aW9uYWw8VHlwZT4gZGVjb2RlKERlY29kZXImKTsgXAorICAgIH07CisKK0RFRklORV9T
SU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3JlOjpJbnRSZWN0KQorCisjdW5k
ZWYgREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSCisKIHRlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtPiB7CiAgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0m
KTsKICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBX
ZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mKTsKQEAgLTM1NiwxMiArMzcwLDYgQEAgdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRQb2ludD4gewogICAgIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAot
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRSZWN0PiB7Ci0gICAg
c3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0g
ICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29y
ZTo6SW50UmVjdCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFJlY3Q+
IGRlY29kZShEZWNvZGVyJik7Ci19OwotCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OkludFNpemU+IHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440300</attachid>
            <date>2021-10-05 17:00:07 -0700</date>
            <delta_ts>2021-10-05 17:16:04 -0700</delta_ts>
            <desc>Another test patch for WPE</desc>
            <filename>bug-230714-20211005170006.patch</filename>
            <type>text/plain</type>
            <size>3705</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBlZWVlNmFlYjYxYTMzOGFmOGQzY2FlZmJmNTI0
OTE5NDBhZjcwNTViLi5iNzJiZDA1MWI0Y2Y1MDM4ZjY4NTRhYTljNmU1MWM2NzZiNzY5ZDFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAg
LTEyNSw2ICsxMjUsMTcgQEAgbmFtZXNwYWNlIElQQyB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKK2Jvb2wgQXJndW1lbnRDb2RlcjxJbnRSZWN0
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEludFJlY3QmIHZhbHVlKSB7IHJldHVybiBTaW1w
bGVBcmd1bWVudENvZGVyPEludFJlY3Q+OjpkZWNvZGUoZGVjb2RlciwgdmFsdWUpOyB9CitzdGQ6
Om9wdGlvbmFsPEludFJlY3Q+IEFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQoreworICAgIEludFJlY3QgdmFsdWU7CisgICAgaWYgKCFkZWNvZGUoZGVjb2Rl
ciwgdmFsdWUpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIHJldHVybiB2YWx1
ZTsKK30KK3RlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZW5jb2RlPEVuY29k
ZXI+KEVuY29kZXImLCBjb25zdCBJbnRSZWN0Jik7Cit0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29k
ZXI8SW50UmVjdD46OmVuY29kZTxTdHJlYW1Db25uZWN0aW9uRW5jb2Rlcj4oU3RyZWFtQ29ubmVj
dGlvbkVuY29kZXImLCBjb25zdCBJbnRSZWN0Jik7CisKIHN0YXRpYyB2b2lkIGVuY29kZVNoYXJl
ZEJ1ZmZlcihFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTaGFyZWRCdWZmZXIqIGJ1ZmZlcikKIHsK
ICAgICBib29sIGlzTnVsbCA9ICFidWZmZXI7CkBAIC03NTcsMjQgKzc2OCw2IEBAIHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+IEFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlCiAgICAgcmV0dXJuIGludFBvaW50OwogfQogCi12b2lkIEFyZ3VtZW50
Q29kZXI8SW50UmVjdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJbnRSZWN0JiBp
bnRSZWN0KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmVuY29kZShlbmNv
ZGVyLCBpbnRSZWN0KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEludFJlY3Q+OjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgSW50UmVjdCYgaW50UmVjdCkKLXsKLSAgICByZXR1cm4gU2ltcGxl
QXJndW1lbnRDb2RlcjxJbnRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIGludFJlY3QpOwotfQotCi1z
dGQ6Om9wdGlvbmFsPEludFJlY3Q+IEFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQotewotICAgIEludFJlY3QgcmVjdDsKLSAgICBpZiAoIWRlY29kZShkZWNv
ZGVyLCByZWN0KSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICByZXR1cm4gcmVj
dDsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KIHZvaWQgQXJndW1lbnRDb2RlcjxJ
bnRTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEludFNpemUmIGludFNpemUp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4
IDM1MTM4ZjVkZTMyZDdlMWYxZmQxNTRjMjYxZjhlNzkyZTQ3Mzc3MTAuLjJiNzc4YWMzOTg2ZDMy
MmU4YWIyN2ViZjIzMmM3Y2U5ZTg1ODk0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9GcmFtZUxvYWRlclR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbmRleGVkREIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0lucHV0TW9kZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTZWxlY3Rpb25PcHRpb24uaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL05hdGl2ZUltYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrTG9hZE1ldHJp
Y3MuaD4KQEAgLTExOSw3ICsxMjAsNiBAQCBjbGFzcyBGb250OwogY2xhc3MgRm9udFBsYXRmb3Jt
RGF0YTsKIGNsYXNzIEhUVFBIZWFkZXJNYXA7CiBjbGFzcyBJbnRQb2ludDsKLWNsYXNzIEludFJl
Y3Q7CiBjbGFzcyBJbnRTaXplOwogY2xhc3MgS2V5ZnJhbWVWYWx1ZUxpc3Q7CiBjbGFzcyBMYXlv
dXRTaXplOwpAQCAtMjI3LDYgKzIyNywxNSBAQCBzdHJ1Y3QgUmVjb3JkOwogCiBuYW1lc3BhY2Ug
SVBDIHsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRSZWN0
PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gc3RhdGljIHZvaWQgZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHZhbHVlKQorICAgIHsKKyAg
ICAgICAgU2ltcGxlQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRSZWN0Pjo6ZW5jb2RlKGVuY29k
ZXIsIHZhbHVlKTsKKyAgICB9CisgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRl
Y29kZShEZWNvZGVyJiwgV2ViQ29yZTo6SW50UmVjdCYpOworICAgIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OkludFJlY3Q+IGRlY29kZShEZWNvZGVyJik7Cit9OworCiB0ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybT4gewogICAgIHN0
YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3Jt
Jik7CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwg
V2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJik7CkBAIC0zNTYsMTIgKzM2NSw2IEBAIHRlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW50UG9pbnQ+IHsKICAgICBzdGF0aWMg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4gZGVjb2RlKERlY29kZXImKTsKIH07CiAK
LXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW50UmVjdD4gewotICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwot
ICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNv
cmU6OkludFJlY3QmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRSZWN0
PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpJbnRTaXplPiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsK
</data>
<flag name="commit-queue"
          id="464181"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440306</attachid>
            <date>2021-10-05 17:22:09 -0700</date>
            <delta_ts>2021-10-05 17:51:43 -0700</delta_ts>
            <desc>Try to fix the WPE build again? (1)</desc>
            <filename>bug-230714-20211005172208.patch</filename>
            <type>text/plain</type>
            <size>37071</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcwMTIxY2IyMGJiMWM2YThl
MDhkZjNkZGVjMjNjNzVlZWMwMmIwODIuLmU0ZjAyMDQ2MmFjZjdjODc4ZjZhMmFmNDE2YTMwYzQ3
OTMwMzkxYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzEgQEAKKzIwMjEtMTAtMDUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIFJlZmFj
dG9yIHNvbWUgSVBDIGFyZ3VtZW50IGVuY29kZXIgbG9naWMgdG8gd29yayB3aXRoIFN0cmVhbUNv
bm5lY3Rpb25FbmNvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA3MTQKKyAgICAgICAgcmRhcjovLzgzNDc3NTkxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byB1c2Ug
YElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXJgIHRvIGVuY29kZSBkaXNwbGF5IGxpc3QgaXRl
bXMgKGFuZCB0aGVpciBtZW1iZXJzKSBpbiBhbgorICAgICAgICBJUEMgc3RyZWFtLiBUaGlzIHBh
dGNoIGNvbXByaXNlcyB0d28gbWFpbiBzZXRzIG9mIGNoYW5nZXMgaW4gYEFyZ3VtZW50Q29kZXJz
YCwgYW5kIGBXZWJDb3JlQXJndW1lbnRDb2RlcnNgLiBTZWUKKyAgICAgICAgYmVsb3cgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmRlY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNb25vc3RhdGU+OjpkZWNvZGUpOiBEZWxldGVk
LgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2RlKToKKworICAgICAgICBNYW55IG9mIHRoZXNlIGBl
bmNvZGUoKWAgbWV0aG9kcyBhcmUgY3VycmVudGx5IG5vbi10ZW1wbGF0ZWQsIHdoaWNoIG1lYW5z
IHRoYXQgRW5jb2RlciBhbmQgRGVjb2RlciB1c2VkIGhlcmUKKyAgICAgICAgcmVmZXIgc29sZWx5
IHRvIElQQzo6RW5jb2RlciBhbmQgSVBDOjpEZWNvZGVyIChyZXNwZWN0aXZlbHkpIGluc3RlYWQg
b2Ygb3RoZXIgdHlwZXMgb2YgZW5jb2RlcnMgKG5hbWVseSwKKyAgICAgICAgU3RyZWFtQ29ubmVj
dGlvbkVuY29kZXIpLiBNYWtlIHRoZXNlIHVzZSB0ZW1wbGF0ZWQgYGVuY29kZWAgbWV0aG9kcyBp
bnRlYWQsIHNvIHRoYXQgdGhleSB3b3JrIHdpdGggZ2VuZXJpYworICAgICAgICBlbmNvZGVycy4K
KworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmVuY29kZSk6IERlbGV0ZWQuCisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2RlKTog
RGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQz
RD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRS
ZWN0Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9h
dFJlY3Q+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZs
b2F0Qm94RXh0ZW50Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjplbmNvZGUpOiBEZWxldGVkLgorICAg
ICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjpkZWNvZGUpOiBEZWxl
dGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZW5jb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmRlY29k
ZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPExheW91dFBvaW50
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKworICAgICAgICBUaGVzZSBXZWJDb3JlIGFyZ3VtZW50IGNv
ZGVycyBhcmUgYWxzbyBjdXJyZW50bHkgaW5jb21wYXRpYmxlIHdpdGggU3RyZWFtQ29ubmVjdGlv
bkVuY29kZXIsIHNpbmNlIHRoZXkgYXJlIG5vbi0KKyAgICAgICAgdGVtcGxhdGVkIChhbmQgdGh1
cyBvbmx5IHdvcmsgd2l0aCBJUEM6OkVuY29kZXIpLiBTaW5jZSB0aGVzZSBhcmUgYWxsIGVuY29k
YWJsZSBhcyBQT0QgdHlwZXMsIHdlIGNhbiBqdXN0IHVzZQorICAgICAgICBTaW1wbGVBcmd1bWVu
dENvZGVyIGZvciBhbGwgb2YgdGhlc2UuIFdlIGFsc28gYWRkIG5ldyBgREVGSU5FX1NJTVBMRV9B
UkdVTUVOVF9DT0RFUl9GT1JfKEhFQURFUnxTT1VSQ0UpYCBtYWNyb3MKKyAgICAgICAgdG8gbWFr
ZSB0aGlzIGNvZGUgYSBiaXQgZWFzaWVyIHRvIHJlYWQsIHdoaWNoIGFkZHMgU2ltcGxlQXJndW1l
bnRDb2RlciBmb3IgdGhlIGdpdmVuIHR5cGUsIGZvciBib3RoIHN0YW5kYXJkCisgICAgICAgIElQ
Qzo6RW5jb2RlciBhcyB3ZWxsIGFzIElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXIuCisKKyAg
ICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogU2hhcmVk
L21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW06CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8Q0dSZWN0Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxDR1JlY3Q+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPENHU2l6ZT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8Q0dTaXplPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR1BvaW50Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR1BvaW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR0FmZmluZVRyYW5zZm9ybT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+OjpkZWNvZGUpOiBEZWxldGVkLgorCiAyMDIx
LTEwLTA1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAg
IE1vdmUgRmx1c2hJZGVudGlmaWVyIG91dCBvZiB0aGUgRGlzcGxheUxpc3QgbmFtZXNwYWNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKaW5kZXggYTMy
MDU1MTg3OThiNzRkY2VkYjhhMDEzZjljOWM5ODg1YWFlNjYxNi4uZTdmMjc4MDM2MmRkMjAzNzQz
NGNhMWNiMzkwZGRlNmVmNzkxNTkzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L0FyZ3VtZW50Q29kZXJzLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlByaXZhdGVD
bGlja01lYXN1cmVtZW50RGVjb2Rlci5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVt
ZW50RW5jb2Rlci5oIgogI2luY2x1ZGUgIlN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyLmgiCisjaW5j
bHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMjE4LDYgKzIxOSw3IEBA
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIEFyZ3VtZW50Q29kZXI8U0hBMTo6RGlnZXN0Pjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFNICiB9CiAKICNpZiBIQVZFKEFVRElUX1RPS0VOKQorCiB2
b2lkIEFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBhdWRpdF90b2tlbl90JiBhdWRpdFRva2VuKQogewogICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGF1ZGl0VG9rZW4udmFsKTsgaSsrKQpAQCAtMjMy
LDE1ICsyMzQsNyBAQCBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBBcmd1bWVudENvZGVyPGF1ZGl0
X3Rva2VuX3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgYQogICAgIH0KICAgICByZXR1cm4g
dHJ1ZTsKIH0KLSNlbmRpZgotCi12b2lkIEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBNb25vc3RhdGUmKQotewotfQogCi1XQVJOX1VOVVNFRF9SRVRVUk4g
c3RkOjpvcHRpb25hbDxNb25vc3RhdGU+IEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2Rl
KERlY29kZXImKQotewotICAgIHJldHVybiBNb25vc3RhdGUgeyB9OwotfQorI2VuZGlmIC8vIEhB
VkUoQVVESVRfVE9LRU4pCiAKIH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKaW5kZXggNDc5ZGI2MGVkYzI3MTZkNTU2MDZmNjUy
ZjI0MzFhZDM2OWY2NTcwYy4uZDk3Nzg3N2M1ZmIzNjUwN2JiNjUzMjRjMDY2M2Y4NjE1NjZkNTkz
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCkBAIC0x
MDgsMTIgKzEwOCwxNCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxBcnJheVJlZmVyZW5jZTxULCBhcnJheVJlZmVyZW5jZUR5bmFtaQogfTsKIAogdGVtcGxhdGU8
dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8T3B0aW9uU2V0PFQ+PiB7CisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgT3B0aW9uU2V0PFQ+JiBvcHRpb25TZXQpCiAgICAgewogICAgICAgICBB
U1NFUlQoV1RGOjppc1ZhbGlkT3B0aW9uU2V0KG9wdGlvblNldCkpOwogICAgICAgICBlbmNvZGVy
IDw8IG9wdGlvblNldC50b1JhdygpOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERl
Y29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBPcHRpb25TZXQ8VD4mIG9wdGlvblNldCkKICAgICB7CiAgICAgICAgIHR5cGVu
YW1lIE9wdGlvblNldDxUPjo6U3RvcmFnZVR5cGUgdmFsdWU7CkBAIC0xMjUsNiArMTI3LDcgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8T3B0aW9uU2V0PFQ+PiB7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERl
Y29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8T3B0aW9uU2V0PFQ+PiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgT3B0
aW9uU2V0PFQ+OjpTdG9yYWdlVHlwZT4gdmFsdWU7CkBAIC0xODgsNiArMTkxLDcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpvcHRpb25hbDxUPj4gewog
fTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQm94PFQ+JiBib3gpCiAgICAgewogICAgICAgICBpZiAo
IWJveCkgewpAQCAtMTk5LDYgKzIwMyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBB
cmd1bWVudENvZGVyPEJveDxUPj4gewogICAgICAgICBlbmNvZGVyIDw8ICpib3guZ2V0KCk7CiAg
ICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9V
TlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEJveDxUPiYgYm94KQog
ICAgIHsKICAgICAgICAgYm9vbCBpc0VuZ2FnZWQ7CkBAIC0yMTgsNiArMjIzLDcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8Qm94PFQ+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAg
ICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gaXNFbmdhZ2VkOwpAQCAtMjM2LDExICsy
NDIsMTMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+
PiB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxzdGQ6OnBhaXI8VCwgVT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
PgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBzdGQ6OnBh
aXI8VCwgVT4mIHBhaXIpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHBhaXIuZmlyc3QgPDwg
cGFpci5zZWNvbmQ7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAg
ICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IHN0ZDo6cGFpcjxULCBVPiYgcGFpcikKICAgICB7CiAgICAgICAgIFQgZmlyc3Q7CkBAIC0yNTYs
NiArMjY0LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8c3RkOjpwYWlyPFQsIFU+PiB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
IAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8c3RkOjpwYWlyPFQsIFU+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8VD4gZmlyc3Q7CkBAIC0zNjYsMTEgKzM3NSwxMyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZS4uLiBFbGVtZW50cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjp0dXBsZTxF
bGVtZW50cy4uLj4+IHsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEtleVR5cGUsIHR5cGVuYW1l
IFZhbHVlVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpLZXlWYWx1ZVBhaXI8S2V5VHlw
ZSwgVmFsdWVUeXBlPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6S2V5VmFsdWVQYWly
PEtleVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHBh
aXIua2V5IDw8IHBhaXIudmFsdWU7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVj
b2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFdURjo6S2V5VmFsdWVQYWlyPEtleVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAg
ICAgewogICAgICAgICBLZXlUeXBlIGtleTsKQEAgLTM5OCw2ICs0MDksNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxl
ciwgc2l6ZV90IG1pbgogICAgICAgICAgICAgZW5jb2RlciA8PCB2ZWN0b3JbaV07CiAgICAgfQog
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURf
UkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxULCBpbmxpbmVDYXBh
Y2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4mIHZlY3RvcikKICAgICB7CiAgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRs
ZXIsIG1pbkNhcGFjaXR5Pj4gb3B0aW9uYWw7CkBAIC00MzcsNiArNDQ5LDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRs
ZXIsIHNpemVfdCBtaW4KICAgICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVp
bnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4odmVjdG9yLmRhdGEoKSksIHZlY3Rvci5zaXpl
KCkgKiBzaXplb2YoVCksIGFsaWdub2YoVCkpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hh
bmRsZXIsIG1pbkNhcGFjaXR5PiYgdmVjdG9yKQogICAgIHsKICAgICAgICAgdWludDY0X3QgZGVj
b2RlZFNpemU7CkBAIC00NTEsNyArNDY0LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90
IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KICAg
ICAgICAgLy8gU2luY2Ugd2Uga25vdyB0aGUgdG90YWwgc2l6ZSBvZiB0aGUgZWxlbWVudHMsIHdl
IGNhbiBhbGxvY2F0ZSB0aGUgdmVjdG9yIGluCiAgICAgICAgIC8vIG9uZSBmZWxsIHN3b29wLiBC
ZWZvcmUgYWxsb2NhdGluZyB3ZSBtdXN0IGhvd2V2ZXIgbWFrZSBzdXJlIHRoYXQgdGhlIGRlY29k
ZXIgYnVmZmVyCiAgICAgICAgIC8vIGlzIGJpZyBlbm91Z2guCi0gICAgICAgIGlmICghZGVjb2Rl
ci5idWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluPFQ+KHNpemUpKQorICAgICAgICBpZiAoIWRl
Y29kZXIudGVtcGxhdGUgYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbjxUPihzaXplKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBWZWN0b3I8VCwgaW5saW5lQ2FwYWNp
dHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+IHRlbXA7CkBAIC00OTgsNiArNTExLDcg
QEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBP
dmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlw
ZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcs
IHR5cGVuYW1lIE1hcHBlZFRyYWl0c0FyZywgdHlwZW5hbWUgSGFzaFRhYmxlVHJhaXRzPiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlU
cmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPj4gewogICAgIHR5cGVk
ZWYgSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBw
ZWRUcmFpdHNBcmcsIEhhc2hUYWJsZVRyYWl0cz4gSGFzaE1hcFR5cGU7CiAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBIYXNoTWFwVHlwZSYgaGFzaE1hcCkKICAgICB7CiAgICAgICAgIGVuY29kZXIg
PDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGhhc2hNYXAuc2l6ZSgpKTsKQEAgLTUwNSw2ICs1MTks
NyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5h
bWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogICAgICAgICAgICAgZW5jb2RlciA8PCAqaXQ7
CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxIYXNoTWFwVHlwZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewog
ICAgICAgICB1aW50MzJfdCBoYXNoTWFwU2l6ZTsKQEAgLTUzNSw2ICs1NTAsNyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywg
dHlwZW5hbWUgS2V5VHJhaQogICAgICAgICByZXR1cm4gaGFzaE1hcDsKICAgICB9CiAKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSGFzaE1hcFR5cGUmIGhhc2hNYXApCiAgICAg
ewogICAgICAgICBzdGQ6Om9wdGlvbmFsPEhhc2hNYXBUeXBlPiB0ZW1wSGFzaE1hcDsKQEAgLTU0
OSw2ICs1NjUsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogdGVtcGxhdGU8dHlwZW5hbWUg
S2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1l
IEhhc2hUYWJsZVRyYWl0cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaFNldDxLZXlBcmcsIEhh
c2hBcmcsIEtleVRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPj4gewogICAgIHR5cGVkZWYgSGFz
aFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPiBIYXNo
U2V0VHlwZTsKIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEhhc2hTZXRUeXBlJiBoYXNoU2V0KQog
ICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaGFzaFNldC5z
aXplKCkpOwpAQCAtNTU2LDYgKzU3Myw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlw
ZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNoCiAgICAg
ICAgICAgICBlbmNvZGVyIDw8ICppdDsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBE
ZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgSGFzaFNldFR5cGUmIGhhc2hTZXQpCiAgICAgewogICAgICAgICBzdGQ6Om9w
dGlvbmFsPEhhc2hTZXRUeXBlPiB0ZW1wSGFzaFNldDsKQEAgLTU2Nyw2ICs1ODUsNyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0
c0FyZywgdHlwZW5hbWUgSGFzaAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEhhc2hT
ZXRUeXBlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHVpbnQ2NF90
IGhhc2hTZXRTaXplOwpAQCAtNTk2LDYgKzYxNSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNo
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtl
eVRyYWl0c0FyZz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaENvdW50ZWRTZXQ8S2V5QXJnLCBI
YXNoQXJnLCBLZXlUcmFpdHNBcmc+PiB7CiAgICAgdHlwZWRlZiBIYXNoQ291bnRlZFNldDxLZXlB
cmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZz4gSGFzaENvdW50ZWRTZXRUeXBlOwogICAgIAorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENvdW50ZWRTZXQpCiAg
ICAgewogICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihoYXNoQ291bnRl
ZFNldC5zaXplKCkpOwpAQCAtNjA2LDYgKzYyNiw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnPiBzdHJ1Y3QgQXJndW1l
CiAgICAgICAgIH0KICAgICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4K
ICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENvdW50ZWRTZXQpCiAgICAgewogICAgICAgICB1
aW50NjRfdCBoYXNoQ291bnRlZFNldFNpemU7CkBAIC02MzcsNiArNjU4LDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmc+
IHN0cnVjdCBBcmd1bWUKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5h
bWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWYWx1ZVR5cGUsIEVy
cm9yVHlwZT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBFeHBlY3RlZDxWYWx1ZVR5cGUsIEVy
cm9yVHlwZT4mIGV4cGVjdGVkKQogICAgIHsKICAgICAgICAgaWYgKCFleHBlY3RlZC5oYXNfdmFs
dWUoKSkgewpAQCAtNjQ4LDYgKzY3MCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwg
dHlwZW5hbWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWCiAgICAg
ICAgIGVuY29kZXIgPDwgZXhwZWN0ZWQudmFsdWUoKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4cGVjdGVkPFZhbHVl
VHlwZSwgRXJyb3JUeXBlPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAg
ICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGhhc1ZhbHVlOwpAQCAtNzA0LDYgKzcyNyw3IEBAIHRlbXBs
YXRlPHR5cGVuYW1lIEVycm9yVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8RXhwZWN0ZWQ8dm9p
ZCwgRXJyb3JUeXBlPj4gewogCiB0ZW1wbGF0ZTxzaXplX3QgaW5kZXgsIHR5cGVuYW1lLi4uIFR5
cGVzPgogc3RydWN0IFZhcmlhbnRDb2RlciB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rl
cj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV1RGOjpW
YXJpYW50PFR5cGVzLi4uPiYgdmFyaWFudCwgdW5zaWduZWQgaSkKICAgICB7CiAgICAgICAgIGlm
IChpID09IGluZGV4KSB7CkBAIC03MTMsNiArNzM3LDcgQEAgc3RydWN0IFZhcmlhbnRDb2RlciB7
CiAgICAgICAgIFZhcmlhbnRDb2RlcjxpbmRleCAtIDEsIFR5cGVzLi4uPjo6ZW5jb2RlKGVuY29k
ZXIsIHZhcmlhbnQsIGkpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNv
ZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgaWYgKGkg
PT0gaW5kZXgpIHsKQEAgLTcyOCwxMiArNzUzLDE0IEBAIHN0cnVjdCBWYXJpYW50Q29kZXIgewog
CiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4KIHN0cnVjdCBWYXJpYW50Q29kZXI8MCwgVHlw
ZXMuLi4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+JiB2
YXJpYW50LCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChpLCAhaSk7
CiAgICAgICAgIGVuY29kZXIgPDwgV1RGOjpnZXQ8MD4odmFyaWFudCk7CiAgICAgfQogICAgIAor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIsIHVuc2lnbmVk
IGkpCiAgICAgewogICAgICAgICBBU1NFUlRfVU5VU0VEKGksICFpKTsKQEAgLTc0Niw2ICs3NzMs
NyBAQCBzdHJ1Y3QgVmFyaWFudENvZGVyPDAsIFR5cGVzLi4uPiB7CiB9OwogCiB0ZW1wbGF0ZTx0
eXBlbmFtZS4uLiBUeXBlcz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpWYXJpYW50PFR5cGVz
Li4uPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6VmFyaWFudDxUeXBlcy4uLj4mIHZh
cmlhbnQpCiAgICAgewogICAgICAgICB1bnNpZ25lZCBpID0gdmFyaWFudC5pbmRleCgpOwpAQCAt
NzUzLDYgKzc4MSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+PiB7CiAgICAgICAgIFZhcmlhbnRDb2Rlcjxz
aXplb2YuLi4oVHlwZXMpIC0gMSwgVHlwZXMuLi4+OjplbmNvZGUoZW5jb2RlciwgdmFyaWFudCwg
aSk7CiAgICAgfQogICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBpOwpAQCAt
ODA0LDggKzgzMywxNCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rv
a2VuX3Q+IHsKICNlbmRpZgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPE1vbm9z
dGF0ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgTW9ub3N0YXRl
Jik7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBkZWNvZGUoRGVjb2RlciYp
OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CisgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBNb25vc3RhdGUmKSB7IH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1l
IERlY29kZXI+CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBkZWNvZGUoRGVj
b2RlciYpCisgICAgeworICAgICAgICByZXR1cm4gTW9ub3N0YXRlIHsgfTsKKyAgICB9CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwCmluZGV4IGVlZWU2YWViNjFhMzM4YWY4ZDNjYWVmYmY1MjQ5MTk0MGFm
NzA1NWIuLjg2N2Y2ZDU0OGI5ZTI5ODRlYzcxZjMzZGEwMjg5ODcyMzk3MWNkMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMTI1LDYg
KzEyNSw0MiBAQCBuYW1lc3BhY2UgSVBDIHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKIAorI2RlZmluZSBERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NP
REVSX0ZPUl9TT1VSQ0UoVHlwZSkgXAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IFwK
KyAgICB2b2lkIEFyZ3VtZW50Q29kZXI8VHlwZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBUeXBlJiB2YWx1ZSkgeyBTaW1wbGVBcmd1bWVudENvZGVyPFR5cGU+OjplbmNvZGUoZW5j
b2RlciwgdmFsdWUpOyB9IFwKKyAgICBib29sIEFyZ3VtZW50Q29kZXI8VHlwZT46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBUeXBlJiB2YWx1ZSkgeyByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2Rl
cjxUeXBlPjo6ZGVjb2RlKGRlY29kZXIsIHZhbHVlKTsgfSBcCisgICAgc3RkOjpvcHRpb25hbDxU
eXBlPiBBcmd1bWVudENvZGVyPFR5cGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikgXAorICAg
IHsgXAorICAgICAgICBUeXBlIHZhbHVlOyBcCisgICAgICAgIGlmICghZGVjb2RlKGRlY29kZXIs
IHZhbHVlKSkgXAorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgXAorICAgICAgICBy
ZXR1cm4gdmFsdWU7IFwKKyAgICB9IFwKKyAgICB0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8
VHlwZT46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVyJiwgY29uc3QgVHlwZSYpOyBcCisgICAgdGVt
cGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFR5cGU+OjplbmNvZGU8U3RyZWFtQ29ubmVjdGlvbkVu
Y29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwgY29uc3QgVHlwZSYpOworCitERUZJTkVf
U0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoQWZmaW5lVHJhbnNmb3JtKQorREVGSU5F
X1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0Qm94RXh0ZW50KQorREVGSU5F
X1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0UG9pbnQpCitERUZJTkVfU0lN
UExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoRmxvYXRQb2ludDNEKQorREVGSU5FX1NJTVBM
RV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0UmVjdCkKK0RFRklORV9TSU1QTEVfQVJH
VU1FTlRfQ09ERVJfRk9SX1NPVVJDRShGbG9hdFJvdW5kZWRSZWN0KQorREVGSU5FX1NJTVBMRV9B
UkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1F
TlRfQ09ERVJfRk9SX1NPVVJDRShJbnRQb2ludCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09E
RVJfRk9SX1NPVVJDRShJbnRSZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
U09VUkNFKEludFNpemUpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0Uo
TGF5b3V0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoTGF5
b3V0U2l6ZSkKKworI2lmIFVTRShDRykKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9S
X1NPVVJDRShDR1JlY3QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0Uo
Q0dTaXplKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKENHUG9pbnQp
CitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoQ0dBZmZpbmVUcmFuc2Zv
cm0pCisjZW5kaWYKKworI3VuZGVmIERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX1NP
VVJDRQorCiBzdGF0aWMgdm9pZCBlbmNvZGVTaGFyZWRCdWZmZXIoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgU2hhcmVkQnVmZmVyKiBidWZmZXIpCiB7CiAgICAgYm9vbCBpc051bGwgPSAhYnVmZmVy
OwpAQCAtMjMxLDE2ICsyNjcsNiBAQCBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlVHlwZXNBbmREYXRhKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxTdHJpbgogICAgIHJldHVy
biB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgYWZmaW5lVHJhbnNmb3Jt
KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2RlKGVu
Y29kZXIsIGFmZmluZVRyYW5zZm9ybSk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxBZmZpbmVU
cmFuc2Zvcm0+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgQWZmaW5lVHJhbnNmb3JtJiBhZmZp
bmVUcmFuc2Zvcm0pCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJh
bnNmb3JtPjo6ZGVjb2RlKGRlY29kZXIsIGFmZmluZVRyYW5zZm9ybSk7Ci19Ci0KIHZvaWQgQXJn
dW1lbnRDb2RlcjxDYWNoZVF1ZXJ5T3B0aW9ucz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBDYWNoZVF1ZXJ5T3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBlbmNvZGVyIDw8IG9wdGlv
bnMuaWdub3JlU2VhcmNoOwpAQCAtNDI1LDYgKzQ1MSw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxF
dmVudFRyYWNraW5nUmVnaW9ucz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBFdmVudFRyYWNr
aW5nCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiB2
b2lkIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybWF0aW9uTWF0cml4
KQogewogICAgIGVuY29kZXIgPDwgdHJhbnNmb3JtYXRpb25NYXRyaXgubTExKCk7CkBAIC01MDYs
NiArNTMzLDkgQEAgYm9vbCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFRyYW5zZm9ybWF0aW8KICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAordGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5j
b2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwordGVt
cGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5jb2RlPFN0
cmVhbUNvbm5lY3Rpb25FbmNvZGVyPihTdHJlYW1Db25uZWN0aW9uRW5jb2RlciYsIGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4Jik7CisKIHZvaWQgQXJndW1lbnRDb2RlcjxMaW5lYXJUaW1pbmdG
dW5jdGlvbj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMaW5lYXJUaW1pbmdGdW5j
dGlvbiYgdGltaW5nRnVuY3Rpb24pCiB7CiAgICAgZW5jb2RlciA8PCB0aW1pbmdGdW5jdGlvbi50
eXBlKCk7CkBAIC02MTcsNjUgKzY0Nyw2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxTcHJpbmdUaW1p
bmdGdW5jdGlvbj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTcHJpbmdUaW1pbmdGCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UG9pbnQmIGZsb2F0UG9pbnQpCi17Ci0gICAg
U2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0UG9p
bnQpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBGbG9hdFBvaW50JiBmbG9hdFBvaW50KQotewotICAgIHJldHVybiBTaW1wbGVB
cmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRQb2ludCk7Ci19
Ci0KLXN0ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4gQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgRmxvYXRQb2ludCBmbG9hdFBvaW50Owot
ICAgIGlmICghU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2RlKGRlY29kZXIs
IGZsb2F0UG9pbnQpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBm
bG9hdFBvaW50OwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UG9pbnQzRCYgZmxvYXRQb2ludCkKLXsKLSAg
ICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmVuY29kZShlbmNvZGVyLCBmbG9h
dFBvaW50KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFBvaW50M0QmIGZsb2F0UG9pbnQpCi17Ci0gICAgcmV0dXJu
IFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0
UG9pbnQpOwotfQotCi0KLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRSZWN0JiBmbG9hdFJlY3QpCi17Ci0gICAgU2ltcGxl
QXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRSZWN0KTsKLX0K
LQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBGbG9hdFJlY3QmIGZsb2F0UmVjdCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2Rl
cjxGbG9hdFJlY3Q+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRSZWN0KTsKLX0KLQotc3RkOjpvcHRp
b25hbDxGbG9hdFJlY3Q+IEFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCi17Ci0gICAgRmxvYXRSZWN0IGZsb2F0UmVjdDsKLSAgICBpZiAoIVNpbXBsZUFy
Z3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0UmVjdCkpCi0gICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIGZsb2F0UmVjdDsKLX0KLQotCi12
b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgRmxvYXRCb3hFeHRlbnQmIGZsb2F0Qm94RXh0ZW50KQotewotICAgIFNpbXBsZUFy
Z3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRCb3hFeHRl
bnQpOwotfQotICAgIAotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIEZsb2F0Qm94RXh0ZW50JiBmbG9hdEJveEV4dGVudCkKLXsKLSAg
ICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZShkZWNv
ZGVyLCBmbG9hdEJveEV4dGVudCk7Ci19Ci0KLQogdm9pZCBBcmd1bWVudENvZGVyPFJlY3RFZGdl
czxib29sPj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWN0RWRnZXM8Ym9vbD4m
IGJveEVkZ2VzKQogewogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8UmVjdEVkZ2VzPGJvb2w+Pjo6
ZW5jb2RlKGVuY29kZXIsIGJveEVkZ2VzKTsKQEAgLTY4NiwyOCArNjU3LDYgQEAgYm9vbCBBcmd1
bWVudENvZGVyPFJlY3RFZGdlczxib29sPj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZWN0
RWRnZXM8Ym9vbD4mIGIKICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxSZWN0RWRnZXM8
Ym9vbD4+OjpkZWNvZGUoZGVjb2RlciwgYm94RWRnZXMpOwogfQogCi0KLXZvaWQgQXJndW1lbnRD
b2RlcjxGbG9hdFNpemU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRTaXpl
JiBmbG9hdFNpemUpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjplbmNv
ZGUoZW5jb2RlciwgZmxvYXRTaXplKTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0U2l6
ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFNpemUmIGZsb2F0U2l6ZSkKLXsKLSAg
ICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjpkZWNvZGUoZGVjb2Rlciwg
ZmxvYXRTaXplKTsKLX0KLQotCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByb3VuZGVk
UmVjdCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjplbmNv
ZGUoZW5jb2Rlciwgcm91bmRlZFJlY3QpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRS
b3VuZGVkUmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFJvdW5kZWRSZWN0JiBy
b3VuZGVkUmVjdCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFJvdW5k
ZWRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIHJvdW5kZWRSZWN0KTsKLX0KLQogI2lmIEVOQUJMRShN
RVRBX1ZJRVdQT1JUKQogdm9pZCBBcmd1bWVudENvZGVyPFZpZXdwb3J0QXJndW1lbnRzPjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJiB2aWV3cG9ydEFy
Z3VtZW50cykKIHsKQEAgLTczOSw4NyArNjg4LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPFZpZXdw
b3J0QXR0cmlidXRlcz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBWaWV3cG9ydEF0dHJpYnUK
ICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxWaWV3cG9ydEF0dHJpYnV0ZXM+OjpkZWNv
ZGUoZGVjb2Rlciwgdmlld3BvcnRBdHRyaWJ1dGVzKTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVy
PEludFBvaW50Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEludFBvaW50JiBpbnRQ
b2ludCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZW5jb2RlKGVuY29k
ZXIsIGludFBvaW50KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIEludFBvaW50JiBpbnRQb2ludCkKLXsKLSAgICByZXR1cm4gU2lt
cGxlQXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZShkZWNvZGVyLCBpbnRQb2ludCk7Ci19
Ci0KLXN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+IEFyZ3VtZW50Q29kZXI8SW50UG9p
bnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBJbnRQb2ludCBpbnRQb2ludDsK
LSAgICBpZiAoIVNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoZGVjb2Rlciwg
aW50UG9pbnQpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBpbnRQ
b2ludDsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPEludFJlY3Q+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgSW50UmVjdCYgaW50UmVjdCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENv
ZGVyPEludFJlY3Q+OjplbmNvZGUoZW5jb2RlciwgaW50UmVjdCk7Ci19Ci0KLWJvb2wgQXJndW1l
bnRDb2RlcjxJbnRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEludFJlY3QmIGludFJl
Y3QpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZShk
ZWNvZGVyLCBpbnRSZWN0KTsKLX0KLQotc3RkOjpvcHRpb25hbDxJbnRSZWN0PiBBcmd1bWVudENv
ZGVyPEludFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBJbnRSZWN0IHJl
Y3Q7Ci0gICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgcmVjdCkpCi0gICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7Ci0gICAgcmV0dXJuIHJlY3Q7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIEVuY29k
ZXI+Ci12b2lkIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBJbnRTaXplJiBpbnRTaXplKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50
U2l6ZT46OmVuY29kZShlbmNvZGVyLCBpbnRTaXplKTsKLX0KLQotdGVtcGxhdGUKLXZvaWQgQXJn
dW1lbnRDb2RlcjxJbnRTaXplPjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBJbnRT
aXplJik7Ci10ZW1wbGF0ZQotdm9pZCBBcmd1bWVudENvZGVyPEludFNpemU+OjplbmNvZGU8U3Ry
ZWFtQ29ubmVjdGlvbkVuY29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwgY29uc3QgSW50
U2l6ZSYpOwotCi1ib29sIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBJbnRTaXplJiBpbnRTaXplKQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENv
ZGVyPEludFNpemU+OjpkZWNvZGUoZGVjb2RlciwgaW50U2l6ZSk7Ci19Ci0KLXN0ZDo6b3B0aW9u
YWw8SW50U2l6ZT4gQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCi17Ci0gICAgSW50U2l6ZSBpbnRTaXplOwotICAgIGlmICghU2ltcGxlQXJndW1lbnRDb2Rl
cjxJbnRTaXplPjo6ZGVjb2RlKGRlY29kZXIsIGludFNpemUpKQotICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwotICAgIHJldHVybiBpbnRTaXplOwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8
TGF5b3V0U2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMYXlvdXRTaXplJiBs
YXlvdXRTaXplKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmVuY29k
ZShlbmNvZGVyLCBsYXlvdXRTaXplKTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPExheW91dFNp
emU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTGF5b3V0U2l6ZSYgbGF5b3V0U2l6ZSkKLXsK
LSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxMYXlvdXRTaXplPjo6ZGVjb2RlKGRlY29k
ZXIsIGxheW91dFNpemUpOwotfQotCi0KLXZvaWQgQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMYXlvdXRQb2ludCYgbGF5b3V0UG9pbnQp
Ci17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46OmVuY29kZShlbmNvZGVy
LCBsYXlvdXRQb2ludCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCBMYXlvdXRQb2ludCYgbGF5b3V0UG9pbnQpCi17Ci0gICAg
cmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+OjpkZWNvZGUoZGVjb2Rlciwg
bGF5b3V0UG9pbnQpOwotfQotCiB2b2lkIEFyZ3VtZW50Q29kZXI8UmVjZW50U2VhcmNoPjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlY2VudFNlYXJjaCYgcmVjZW50U2VhcmNoKQog
ewogICAgIGVuY29kZXIgPDwgcmVjZW50U2VhcmNoLnN0cmluZyA8PCByZWNlbnRTZWFyY2gudGlt
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXgg
MzUxMzhmNWRlMzJkN2UxZjFmZDE1NGMyNjFmOGU3OTJlNDczNzcxMC4uN2U4ZmVjOWZiM2Y2Mjg1
YWU3ZTYwYjNmMDQ4NGExZWY5OWM3NmU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTI2LDEyICsyNiwyNCBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQWZmaW5lVHJh
bnNmb3JtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRvcGxheUV2ZW50Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Db2xvclNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvRmxvYXRQb2ludDNELmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0Zsb2F0Um91bmRlZFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zs
b2F0U2l6ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvSW5kZXhlZERCLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnB1dE1vZGUuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0ludFBvaW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9MYXlv
dXRQb2ludC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGF5b3V0U2l6ZS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvTGVuZ3RoQm94Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlbGVjdGlvbk9wdGlv
bi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmF0aXZlSW1hZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L05ldHdvcmtMb2FkTWV0cmljcy5oPgpAQCAtOTYsNyArMTA4LDYgQEAgdHlwZWRlZiBzdHJ1Y3Qg
X19DVkJ1ZmZlciogQ1ZQaXhlbEJ1ZmZlclJlZjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgQWJzb2x1dGVQb3NpdGlvbkNvbnN0cmFpbnRzOwotY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwog
Y2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7CiBjbGFzcyBCbG9iUGFydDsKIGNsYXNzIENl
cnRpZmljYXRlSW5mbzsKQEAgLTEwOSwyMSArMTIwLDExIEBAIGNsYXNzIERyYWdEYXRhOwogY2xh
c3MgRmlsZTsKIGNsYXNzIEZpbHRlck9wZXJhdGlvbjsKIGNsYXNzIEZpbHRlck9wZXJhdGlvbnM7
Ci1jbGFzcyBGbG9hdFBvaW50OwotY2xhc3MgRmxvYXRQb2ludDNEOwotY2xhc3MgRmxvYXRSZWN0
OwotY2xhc3MgRmxvYXRSb3VuZGVkUmVjdDsKLWNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIEZpeGVk
UG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzOwogY2xhc3MgRm9udDsKIGNsYXNzIEZvbnRQbGF0
Zm9ybURhdGE7CiBjbGFzcyBIVFRQSGVhZGVyTWFwOwotY2xhc3MgSW50UG9pbnQ7Ci1jbGFzcyBJ
bnRSZWN0OwotY2xhc3MgSW50U2l6ZTsKIGNsYXNzIEtleWZyYW1lVmFsdWVMaXN0OwotY2xhc3Mg
TGF5b3V0U2l6ZTsKLWNsYXNzIExheW91dFBvaW50OwogY2xhc3MgTGluZWFyVGltaW5nRnVuY3Rp
b247CiBjbGFzcyBOb3RpZmljYXRpb247CiBjbGFzcyBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTsKQEAg
LTE3NCw5ICsxNzUsNyBAQCBzdHJ1Y3QgVG91Y2hBY3Rpb25EYXRhOwogc3RydWN0IFZlbG9jaXR5
RGF0YTsKIHN0cnVjdCBWaWV3cG9ydEF0dHJpYnV0ZXM7CiBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7
Ci0gICAgCi10ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgUmVjdEVkZ2VzOwotdXNpbmcgRmxvYXRC
b3hFeHRlbnQgPSBSZWN0RWRnZXM8ZmxvYXQ+OworCiB1c2luZyBJREJLZXlQYXRoID0gVmFyaWFu
dDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+PjsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMjI3
LDEwICsyMjYsMzQgQEAgc3RydWN0IFJlY29yZDsKIAogbmFtZXNwYWNlIElQQyB7CiAKLXRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtPiB7Ci0g
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFu
c2Zvcm0mKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29k
ZXImLCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mKTsKLX07CisjZGVmaW5lIERFRklORV9TSU1Q
TEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihUeXBlKSBcCisgICAgdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxUeXBlPiB7IFwKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5j
b2Rlcj4gc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBUeXBlJik7IFwKKyAgICAg
ICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgVHlwZSYp
OyBcCisgICAgICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFR5cGU+IGRlY29kZShEZWNvZGVyJik7
IFwKKyAgICB9OworCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoV2Vi
Q29yZTo6QWZmaW5lVHJhbnNmb3JtKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
SEVBREVSKFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9D
T0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VN
RU5UX0NPREVSX0ZPUl9IRUFERVIoV2ViQ29yZTo6RmxvYXRQb2ludDNEKQorREVGSU5FX1NJTVBM
RV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0UmVjdCkKK0RFRklORV9T
SU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0
KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0
U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3JlOjpJ
bnRQb2ludCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3Jl
OjpJbnRSZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNv
cmU6OkludFNpemUpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoV2Vi
Q29yZTo6TGF5b3V0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFE
RVIoV2ViQ29yZTo6TGF5b3V0U2l6ZSkKKworI2lmIFVTRShDRykKK0RFRklORV9TSU1QTEVfQVJH
VU1FTlRfQ09ERVJfRk9SX0hFQURFUihDR1JlY3QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NP
REVSX0ZPUl9IRUFERVIoQ0dTaXplKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
SEVBREVSKENHUG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIo
Q0dBZmZpbmVUcmFuc2Zvcm0pCisjZW5kaWYKKworI3VuZGVmIERFRklORV9TSU1QTEVfQVJHVU1F
TlRfQ09ERVJfRk9SX0hFQURFUgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmc+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmcmKTsKQEAgLTI2OCw2ICsyOTEsNyBA
QCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkV2ZW50VHJhY2tpbmdS
ZWdpb25zPiB7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlRyYW5zZm9ybWF0aW9uTWF0cml4PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4K
ICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9y
bWF0aW9uTWF0cml4Jik7CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29k
ZShEZWNvZGVyJiwgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKIH07CkBAIC0yOTks
NDMgKzMyMywxMSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNl
cnRpZmljYXRlSW5mbz4gewogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNlcnRp
ZmljYXRlSW5mbz4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwotICAgIHN0YXRpYyBXQVJO
X1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQm
KTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBkZWNvZGUo
RGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpGbG9hdFBvaW50M0Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotfTsKLQotdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFJlY3Q+IHsKLSAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwot
ICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNv
cmU6OkZsb2F0UmVjdCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0
UmVjdD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0gICAgCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYpOwotICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0
Qm94RXh0ZW50Jik7Ci19OwotCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OlJlY3RFZGdlczxib29sPj4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwg
Y29uc3QgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+Jik7CiAgICAgc3RhdGljIFdBUk5fVU5VU0VE
X1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+Jik7
CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0U2l6
ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNv
ZGVyJiwgV2ViQ29yZTo6RmxvYXRTaXplJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q+IHsKLSAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3QmKTsKLSAgICBz
dGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpG
bG9hdFJvdW5kZWRSZWN0Jik7Ci19OwotCiAjaWYgRU5BQkxFKE1FVEFfVklFV1BPUlQpCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiB7
CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpWaWV3cG9y
dEFyZ3VtZW50cyYpOwpAQCAtMzUwLDM1ICszNDIsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcz4gewogICAgIHN0YXRpYyBXQVJO
X1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlZpZXdwb3J0QXR0
cmlidXRlcyYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpJbnRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlKERlY29kZXImLCBXZWJDb3JlOjpJbnRQb2ludCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OkludFBvaW50PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRSZWN0PiB7Ci0gICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0gICAgc3RhdGlj
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6SW50UmVj
dCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFJlY3Q+IGRlY29kZShE
ZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OkludFNpemU+IHsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgotICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwotICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkludFNp
emUmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRTaXplPiBkZWNvZGUo
RGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpMYXlvdXRTaXplPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBX
ZWJDb3JlOjpMYXlvdXRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29s
IGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6TGF5b3V0U2l6ZSYpOwotfTsKLQotdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMYXlvdXRQb2ludD4gewotICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmKTsKLSAg
ICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3Jl
OjpMYXlvdXRQb2ludCYpOwotfTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpMZW5ndGg+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6Okxlbmd0aCYpOwogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBk
ZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6Okxlbmd0aCYpOwpAQCAtNDU3LDYgKzQyMCw3IEBAIHRl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RHJhZ0RhdGE+IHsKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V1RGOjpNYWNoU2VuZFJpZ2h0PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmKTsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5j
b2RlciYsIFdURjo6TWFjaFNlbmRSaWdodCYmKTsKQEAgLTQ2OCwyNiArNDMyLDcgQEAgdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IHsKICAg
ICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IGRlY29kZShE
ZWNvZGVyJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHUG9pbnQ+
IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIENHUG9pbnQpOwotICAgIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPENHUG9pbnQ+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHU2l6ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgQ0dTaXplKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDR1NpemU+IGRl
Y29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENH
UmVjdD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dSZWN0KTsKLSAgICBz
dGF0aWMgc3RkOjpvcHRpb25hbDxDR1JlY3Q+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPiB7Ci0gICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBDR0FmZmluZVRyYW5zZm9ybSk7Ci0gICAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8Q0dBZmZpbmVUcmFuc2Zvcm0+IGRlY29kZShEZWNvZGVyJik7Ci19Owot
I2VuZGlmCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZWxlY3Rpb25H
ZW9tZXRyeT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVB
cmd1bWVudENvZGVyc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJn
dW1lbnRDb2RlcnNNYWMubW0KaW5kZXggOGU0ZDVmMTMxZDgyZjFkZWZlMjZkMTVhYmZlZTA2NGEz
Yjk4OTBmOC4uNmE0MzQwNjcxNDYzZDk0NzA3MTkyMzEwYjFmN2JhMGJkMDNhNzZmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFj
Lm1tCkBAIC0zMjEsNzkgKzMyMSw2IEBAIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6S2V5cHJlc3ND
b21tYW5kPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD46CiAgICAgcmV0
dXJuIFdURk1vdmUoY29tbWFuZCk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxDR1JlY3Q+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0dSZWN0IHJlY3QpCi17Ci0gICAgZW5jb2RlciA8PCBy
ZWN0Lm9yaWdpbiA8PCByZWN0LnNpemU7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8Q0dSZWN0PiBBcmd1
bWVudENvZGVyPENHUmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIHN0ZDo6
b3B0aW9uYWw8Q0dQb2ludD4gb3JpZ2luOwotICAgIGRlY29kZXIgPj4gb3JpZ2luOwotICAgIGlm
ICghb3JpZ2luKQotICAgICAgICByZXR1cm4geyB9OwotCi0gICAgc3RkOjpvcHRpb25hbDxDR1Np
emU+IHNpemU7Ci0gICAgZGVjb2RlciA+PiBzaXplOwotICAgIGlmICghc2l6ZSkKLSAgICAgICAg
cmV0dXJuIHsgfTsKLQotICAgIHJldHVybiBDR1JlY3QgeyAqb3JpZ2luLCAqc2l6ZSB9OwotfQot
Ci12b2lkIEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENH
U2l6ZSBzaXplKQotewotICAgIGVuY29kZXIgPDwgc2l6ZS53aWR0aCA8PCBzaXplLmhlaWdodDsK
LX0KLQotc3RkOjpvcHRpb25hbDxDR1NpemU+IEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgQ0dTaXplIHNpemU7Ci0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZShzaXplLndpZHRoKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHNpemUuaGVpZ2h0KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4g
c2l6ZTsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPENHUG9pbnQ+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgQ0dQb2ludCBwb2ludCkKLXsKLSAgICBlbmNvZGVyIDw8IHBvaW50LnggPDwgcG9p
bnQueTsKLX0KLQotc3RkOjpvcHRpb25hbDxDR1BvaW50PiBBcmd1bWVudENvZGVyPENHUG9pbnQ+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBDR1BvaW50IHBvaW50OwotICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocG9pbnQueCkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwb2ludC55KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1
cm4gcG9pbnQ7Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxDR0FmZmluZVRyYW5zZm9ybT46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0pCi17Ci0g
ICAgZW5jb2RlciA8PCB0cmFuc2Zvcm0uYSA8PCB0cmFuc2Zvcm0uYiA8PCB0cmFuc2Zvcm0uYyA8
PCB0cmFuc2Zvcm0uZCA8PCB0cmFuc2Zvcm0udHggPDwgdHJhbnNmb3JtLnR5OwotfQotCi1zdGQ6
Om9wdGlvbmFsPENHQWZmaW5lVHJhbnNmb3JtPiBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNm
b3JtPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgQ0dBZmZpbmVUcmFuc2Zvcm0g
dHJhbnNmb3JtOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmEpKQotICAgICAg
ICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmIpKQotICAg
ICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmMpKQot
ICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmQp
KQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3Jt
LnR4KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5z
Zm9ybS50eSkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgcmV0dXJuIHRyYW5zZm9ybTsKLX0K
LQogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKIAogdm9pZCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcj46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIGNvbnRlbnRG
aWx0ZXJVbmJsb2NrSGFuZGxlcikK
</data>
<flag name="commit-queue"
          id="464185"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440307</attachid>
            <date>2021-10-05 17:23:29 -0700</date>
            <delta_ts>2021-10-05 17:51:56 -0700</delta_ts>
            <desc>Try to fix the WPE build again? (2)</desc>
            <filename>bug-230714-20211005172329.patch</filename>
            <type>text/plain</type>
            <size>37071</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcwMTIxY2IyMGJiMWM2YThl
MDhkZjNkZGVjMjNjNzVlZWMwMmIwODIuLmU0ZjAyMDQ2MmFjZjdjODc4ZjZhMmFmNDE2YTMwYzQ3
OTMwMzkxYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzEgQEAKKzIwMjEtMTAtMDUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIFJlZmFj
dG9yIHNvbWUgSVBDIGFyZ3VtZW50IGVuY29kZXIgbG9naWMgdG8gd29yayB3aXRoIFN0cmVhbUNv
bm5lY3Rpb25FbmNvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA3MTQKKyAgICAgICAgcmRhcjovLzgzNDc3NTkxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byB1c2Ug
YElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXJgIHRvIGVuY29kZSBkaXNwbGF5IGxpc3QgaXRl
bXMgKGFuZCB0aGVpciBtZW1iZXJzKSBpbiBhbgorICAgICAgICBJUEMgc3RyZWFtLiBUaGlzIHBh
dGNoIGNvbXByaXNlcyB0d28gbWFpbiBzZXRzIG9mIGNoYW5nZXMgaW4gYEFyZ3VtZW50Q29kZXJz
YCwgYW5kIGBXZWJDb3JlQXJndW1lbnRDb2RlcnNgLiBTZWUKKyAgICAgICAgYmVsb3cgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmRlY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNb25vc3RhdGU+OjpkZWNvZGUpOiBEZWxldGVk
LgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2RlKToKKworICAgICAgICBNYW55IG9mIHRoZXNlIGBl
bmNvZGUoKWAgbWV0aG9kcyBhcmUgY3VycmVudGx5IG5vbi10ZW1wbGF0ZWQsIHdoaWNoIG1lYW5z
IHRoYXQgRW5jb2RlciBhbmQgRGVjb2RlciB1c2VkIGhlcmUKKyAgICAgICAgcmVmZXIgc29sZWx5
IHRvIElQQzo6RW5jb2RlciBhbmQgSVBDOjpEZWNvZGVyIChyZXNwZWN0aXZlbHkpIGluc3RlYWQg
b2Ygb3RoZXIgdHlwZXMgb2YgZW5jb2RlcnMgKG5hbWVseSwKKyAgICAgICAgU3RyZWFtQ29ubmVj
dGlvbkVuY29kZXIpLiBNYWtlIHRoZXNlIHVzZSB0ZW1wbGF0ZWQgYGVuY29kZWAgbWV0aG9kcyBp
bnRlYWQsIHNvIHRoYXQgdGhleSB3b3JrIHdpdGggZ2VuZXJpYworICAgICAgICBlbmNvZGVycy4K
KworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmVuY29kZSk6IERlbGV0ZWQuCisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2RlKTog
RGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQz
RD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRS
ZWN0Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9h
dFJlY3Q+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZs
b2F0Qm94RXh0ZW50Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjplbmNvZGUpOiBEZWxldGVkLgorICAg
ICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjpkZWNvZGUpOiBEZWxl
dGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZW5jb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmRlY29k
ZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPExheW91dFBvaW50
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKworICAgICAgICBUaGVzZSBXZWJDb3JlIGFyZ3VtZW50IGNv
ZGVycyBhcmUgYWxzbyBjdXJyZW50bHkgaW5jb21wYXRpYmxlIHdpdGggU3RyZWFtQ29ubmVjdGlv
bkVuY29kZXIsIHNpbmNlIHRoZXkgYXJlIG5vbi0KKyAgICAgICAgdGVtcGxhdGVkIChhbmQgdGh1
cyBvbmx5IHdvcmsgd2l0aCBJUEM6OkVuY29kZXIpLiBTaW5jZSB0aGVzZSBhcmUgYWxsIGVuY29k
YWJsZSBhcyBQT0QgdHlwZXMsIHdlIGNhbiBqdXN0IHVzZQorICAgICAgICBTaW1wbGVBcmd1bWVu
dENvZGVyIGZvciBhbGwgb2YgdGhlc2UuIFdlIGFsc28gYWRkIG5ldyBgREVGSU5FX1NJTVBMRV9B
UkdVTUVOVF9DT0RFUl9GT1JfKEhFQURFUnxTT1VSQ0UpYCBtYWNyb3MKKyAgICAgICAgdG8gbWFr
ZSB0aGlzIGNvZGUgYSBiaXQgZWFzaWVyIHRvIHJlYWQsIHdoaWNoIGFkZHMgU2ltcGxlQXJndW1l
bnRDb2RlciBmb3IgdGhlIGdpdmVuIHR5cGUsIGZvciBib3RoIHN0YW5kYXJkCisgICAgICAgIElQ
Qzo6RW5jb2RlciBhcyB3ZWxsIGFzIElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXIuCisKKyAg
ICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogU2hhcmVk
L21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW06CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8Q0dSZWN0Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxDR1JlY3Q+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPENHU2l6ZT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8Q0dTaXplPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR1BvaW50Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR1BvaW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR0FmZmluZVRyYW5zZm9ybT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+OjpkZWNvZGUpOiBEZWxldGVkLgorCiAyMDIx
LTEwLTA1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAg
IE1vdmUgRmx1c2hJZGVudGlmaWVyIG91dCBvZiB0aGUgRGlzcGxheUxpc3QgbmFtZXNwYWNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKaW5kZXggYTMy
MDU1MTg3OThiNzRkY2VkYjhhMDEzZjljOWM5ODg1YWFlNjYxNi4uZTdmMjc4MDM2MmRkMjAzNzQz
NGNhMWNiMzkwZGRlNmVmNzkxNTkzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L0FyZ3VtZW50Q29kZXJzLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlByaXZhdGVD
bGlja01lYXN1cmVtZW50RGVjb2Rlci5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVt
ZW50RW5jb2Rlci5oIgogI2luY2x1ZGUgIlN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyLmgiCisjaW5j
bHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMjE4LDYgKzIxOSw3IEBA
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIEFyZ3VtZW50Q29kZXI8U0hBMTo6RGlnZXN0Pjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFNICiB9CiAKICNpZiBIQVZFKEFVRElUX1RPS0VOKQorCiB2
b2lkIEFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBhdWRpdF90b2tlbl90JiBhdWRpdFRva2VuKQogewogICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGF1ZGl0VG9rZW4udmFsKTsgaSsrKQpAQCAtMjMy
LDE1ICsyMzQsNyBAQCBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBBcmd1bWVudENvZGVyPGF1ZGl0
X3Rva2VuX3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgYQogICAgIH0KICAgICByZXR1cm4g
dHJ1ZTsKIH0KLSNlbmRpZgotCi12b2lkIEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBNb25vc3RhdGUmKQotewotfQogCi1XQVJOX1VOVVNFRF9SRVRVUk4g
c3RkOjpvcHRpb25hbDxNb25vc3RhdGU+IEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2Rl
KERlY29kZXImKQotewotICAgIHJldHVybiBNb25vc3RhdGUgeyB9OwotfQorI2VuZGlmIC8vIEhB
VkUoQVVESVRfVE9LRU4pCiAKIH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKaW5kZXggNDc5ZGI2MGVkYzI3MTZkNTU2MDZmNjUy
ZjI0MzFhZDM2OWY2NTcwYy4uZDk3Nzg3N2M1ZmIzNjUwN2JiNjUzMjRjMDY2M2Y4NjE1NjZkNTkz
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCkBAIC0x
MDgsMTIgKzEwOCwxNCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxBcnJheVJlZmVyZW5jZTxULCBhcnJheVJlZmVyZW5jZUR5bmFtaQogfTsKIAogdGVtcGxhdGU8
dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8T3B0aW9uU2V0PFQ+PiB7CisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgT3B0aW9uU2V0PFQ+JiBvcHRpb25TZXQpCiAgICAgewogICAgICAgICBB
U1NFUlQoV1RGOjppc1ZhbGlkT3B0aW9uU2V0KG9wdGlvblNldCkpOwogICAgICAgICBlbmNvZGVy
IDw8IG9wdGlvblNldC50b1JhdygpOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERl
Y29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBPcHRpb25TZXQ8VD4mIG9wdGlvblNldCkKICAgICB7CiAgICAgICAgIHR5cGVu
YW1lIE9wdGlvblNldDxUPjo6U3RvcmFnZVR5cGUgdmFsdWU7CkBAIC0xMjUsNiArMTI3LDcgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8T3B0aW9uU2V0PFQ+PiB7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERl
Y29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8T3B0aW9uU2V0PFQ+PiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgT3B0
aW9uU2V0PFQ+OjpTdG9yYWdlVHlwZT4gdmFsdWU7CkBAIC0xODgsNiArMTkxLDcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpvcHRpb25hbDxUPj4gewog
fTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQm94PFQ+JiBib3gpCiAgICAgewogICAgICAgICBpZiAo
IWJveCkgewpAQCAtMTk5LDYgKzIwMyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBB
cmd1bWVudENvZGVyPEJveDxUPj4gewogICAgICAgICBlbmNvZGVyIDw8ICpib3guZ2V0KCk7CiAg
ICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9V
TlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEJveDxUPiYgYm94KQog
ICAgIHsKICAgICAgICAgYm9vbCBpc0VuZ2FnZWQ7CkBAIC0yMTgsNiArMjIzLDcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8Qm94PFQ+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAg
ICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gaXNFbmdhZ2VkOwpAQCAtMjM2LDExICsy
NDIsMTMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+
PiB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxzdGQ6OnBhaXI8VCwgVT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
PgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBzdGQ6OnBh
aXI8VCwgVT4mIHBhaXIpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHBhaXIuZmlyc3QgPDwg
cGFpci5zZWNvbmQ7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAg
ICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IHN0ZDo6cGFpcjxULCBVPiYgcGFpcikKICAgICB7CiAgICAgICAgIFQgZmlyc3Q7CkBAIC0yNTYs
NiArMjY0LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8c3RkOjpwYWlyPFQsIFU+PiB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
IAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8c3RkOjpwYWlyPFQsIFU+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8VD4gZmlyc3Q7CkBAIC0zNjYsMTEgKzM3NSwxMyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZS4uLiBFbGVtZW50cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjp0dXBsZTxF
bGVtZW50cy4uLj4+IHsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEtleVR5cGUsIHR5cGVuYW1l
IFZhbHVlVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpLZXlWYWx1ZVBhaXI8S2V5VHlw
ZSwgVmFsdWVUeXBlPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6S2V5VmFsdWVQYWly
PEtleVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHBh
aXIua2V5IDw8IHBhaXIudmFsdWU7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVj
b2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFdURjo6S2V5VmFsdWVQYWlyPEtleVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAg
ICAgewogICAgICAgICBLZXlUeXBlIGtleTsKQEAgLTM5OCw2ICs0MDksNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxl
ciwgc2l6ZV90IG1pbgogICAgICAgICAgICAgZW5jb2RlciA8PCB2ZWN0b3JbaV07CiAgICAgfQog
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURf
UkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxULCBpbmxpbmVDYXBh
Y2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4mIHZlY3RvcikKICAgICB7CiAgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRs
ZXIsIG1pbkNhcGFjaXR5Pj4gb3B0aW9uYWw7CkBAIC00MzcsNiArNDQ5LDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRs
ZXIsIHNpemVfdCBtaW4KICAgICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVp
bnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4odmVjdG9yLmRhdGEoKSksIHZlY3Rvci5zaXpl
KCkgKiBzaXplb2YoVCksIGFsaWdub2YoVCkpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hh
bmRsZXIsIG1pbkNhcGFjaXR5PiYgdmVjdG9yKQogICAgIHsKICAgICAgICAgdWludDY0X3QgZGVj
b2RlZFNpemU7CkBAIC00NTEsNyArNDY0LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90
IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KICAg
ICAgICAgLy8gU2luY2Ugd2Uga25vdyB0aGUgdG90YWwgc2l6ZSBvZiB0aGUgZWxlbWVudHMsIHdl
IGNhbiBhbGxvY2F0ZSB0aGUgdmVjdG9yIGluCiAgICAgICAgIC8vIG9uZSBmZWxsIHN3b29wLiBC
ZWZvcmUgYWxsb2NhdGluZyB3ZSBtdXN0IGhvd2V2ZXIgbWFrZSBzdXJlIHRoYXQgdGhlIGRlY29k
ZXIgYnVmZmVyCiAgICAgICAgIC8vIGlzIGJpZyBlbm91Z2guCi0gICAgICAgIGlmICghZGVjb2Rl
ci5idWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluPFQ+KHNpemUpKQorICAgICAgICBpZiAoIWRl
Y29kZXIudGVtcGxhdGUgYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbjxUPihzaXplKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBWZWN0b3I8VCwgaW5saW5lQ2FwYWNp
dHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+IHRlbXA7CkBAIC00OTgsNiArNTExLDcg
QEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBP
dmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlw
ZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcs
IHR5cGVuYW1lIE1hcHBlZFRyYWl0c0FyZywgdHlwZW5hbWUgSGFzaFRhYmxlVHJhaXRzPiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlU
cmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPj4gewogICAgIHR5cGVk
ZWYgSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBw
ZWRUcmFpdHNBcmcsIEhhc2hUYWJsZVRyYWl0cz4gSGFzaE1hcFR5cGU7CiAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBIYXNoTWFwVHlwZSYgaGFzaE1hcCkKICAgICB7CiAgICAgICAgIGVuY29kZXIg
PDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGhhc2hNYXAuc2l6ZSgpKTsKQEAgLTUwNSw2ICs1MTks
NyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5h
bWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogICAgICAgICAgICAgZW5jb2RlciA8PCAqaXQ7
CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxIYXNoTWFwVHlwZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewog
ICAgICAgICB1aW50MzJfdCBoYXNoTWFwU2l6ZTsKQEAgLTUzNSw2ICs1NTAsNyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywg
dHlwZW5hbWUgS2V5VHJhaQogICAgICAgICByZXR1cm4gaGFzaE1hcDsKICAgICB9CiAKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSGFzaE1hcFR5cGUmIGhhc2hNYXApCiAgICAg
ewogICAgICAgICBzdGQ6Om9wdGlvbmFsPEhhc2hNYXBUeXBlPiB0ZW1wSGFzaE1hcDsKQEAgLTU0
OSw2ICs1NjUsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogdGVtcGxhdGU8dHlwZW5hbWUg
S2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1l
IEhhc2hUYWJsZVRyYWl0cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaFNldDxLZXlBcmcsIEhh
c2hBcmcsIEtleVRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPj4gewogICAgIHR5cGVkZWYgSGFz
aFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPiBIYXNo
U2V0VHlwZTsKIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEhhc2hTZXRUeXBlJiBoYXNoU2V0KQog
ICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaGFzaFNldC5z
aXplKCkpOwpAQCAtNTU2LDYgKzU3Myw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlw
ZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNoCiAgICAg
ICAgICAgICBlbmNvZGVyIDw8ICppdDsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBE
ZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgSGFzaFNldFR5cGUmIGhhc2hTZXQpCiAgICAgewogICAgICAgICBzdGQ6Om9w
dGlvbmFsPEhhc2hTZXRUeXBlPiB0ZW1wSGFzaFNldDsKQEAgLTU2Nyw2ICs1ODUsNyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0
c0FyZywgdHlwZW5hbWUgSGFzaAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEhhc2hT
ZXRUeXBlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHVpbnQ2NF90
IGhhc2hTZXRTaXplOwpAQCAtNTk2LDYgKzYxNSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNo
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtl
eVRyYWl0c0FyZz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaENvdW50ZWRTZXQ8S2V5QXJnLCBI
YXNoQXJnLCBLZXlUcmFpdHNBcmc+PiB7CiAgICAgdHlwZWRlZiBIYXNoQ291bnRlZFNldDxLZXlB
cmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZz4gSGFzaENvdW50ZWRTZXRUeXBlOwogICAgIAorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENvdW50ZWRTZXQpCiAg
ICAgewogICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihoYXNoQ291bnRl
ZFNldC5zaXplKCkpOwpAQCAtNjA2LDYgKzYyNiw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnPiBzdHJ1Y3QgQXJndW1l
CiAgICAgICAgIH0KICAgICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4K
ICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENvdW50ZWRTZXQpCiAgICAgewogICAgICAgICB1
aW50NjRfdCBoYXNoQ291bnRlZFNldFNpemU7CkBAIC02MzcsNiArNjU4LDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmc+
IHN0cnVjdCBBcmd1bWUKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5h
bWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWYWx1ZVR5cGUsIEVy
cm9yVHlwZT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBFeHBlY3RlZDxWYWx1ZVR5cGUsIEVy
cm9yVHlwZT4mIGV4cGVjdGVkKQogICAgIHsKICAgICAgICAgaWYgKCFleHBlY3RlZC5oYXNfdmFs
dWUoKSkgewpAQCAtNjQ4LDYgKzY3MCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwg
dHlwZW5hbWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWCiAgICAg
ICAgIGVuY29kZXIgPDwgZXhwZWN0ZWQudmFsdWUoKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4cGVjdGVkPFZhbHVl
VHlwZSwgRXJyb3JUeXBlPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAg
ICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGhhc1ZhbHVlOwpAQCAtNzA0LDYgKzcyNyw3IEBAIHRlbXBs
YXRlPHR5cGVuYW1lIEVycm9yVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8RXhwZWN0ZWQ8dm9p
ZCwgRXJyb3JUeXBlPj4gewogCiB0ZW1wbGF0ZTxzaXplX3QgaW5kZXgsIHR5cGVuYW1lLi4uIFR5
cGVzPgogc3RydWN0IFZhcmlhbnRDb2RlciB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rl
cj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV1RGOjpW
YXJpYW50PFR5cGVzLi4uPiYgdmFyaWFudCwgdW5zaWduZWQgaSkKICAgICB7CiAgICAgICAgIGlm
IChpID09IGluZGV4KSB7CkBAIC03MTMsNiArNzM3LDcgQEAgc3RydWN0IFZhcmlhbnRDb2RlciB7
CiAgICAgICAgIFZhcmlhbnRDb2RlcjxpbmRleCAtIDEsIFR5cGVzLi4uPjo6ZW5jb2RlKGVuY29k
ZXIsIHZhcmlhbnQsIGkpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNv
ZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgaWYgKGkg
PT0gaW5kZXgpIHsKQEAgLTcyOCwxMiArNzUzLDE0IEBAIHN0cnVjdCBWYXJpYW50Q29kZXIgewog
CiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4KIHN0cnVjdCBWYXJpYW50Q29kZXI8MCwgVHlw
ZXMuLi4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+JiB2
YXJpYW50LCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChpLCAhaSk7
CiAgICAgICAgIGVuY29kZXIgPDwgV1RGOjpnZXQ8MD4odmFyaWFudCk7CiAgICAgfQogICAgIAor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIsIHVuc2lnbmVk
IGkpCiAgICAgewogICAgICAgICBBU1NFUlRfVU5VU0VEKGksICFpKTsKQEAgLTc0Niw2ICs3NzMs
NyBAQCBzdHJ1Y3QgVmFyaWFudENvZGVyPDAsIFR5cGVzLi4uPiB7CiB9OwogCiB0ZW1wbGF0ZTx0
eXBlbmFtZS4uLiBUeXBlcz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpWYXJpYW50PFR5cGVz
Li4uPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6VmFyaWFudDxUeXBlcy4uLj4mIHZh
cmlhbnQpCiAgICAgewogICAgICAgICB1bnNpZ25lZCBpID0gdmFyaWFudC5pbmRleCgpOwpAQCAt
NzUzLDYgKzc4MSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+PiB7CiAgICAgICAgIFZhcmlhbnRDb2Rlcjxz
aXplb2YuLi4oVHlwZXMpIC0gMSwgVHlwZXMuLi4+OjplbmNvZGUoZW5jb2RlciwgdmFyaWFudCwg
aSk7CiAgICAgfQogICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBpOwpAQCAt
ODA0LDggKzgzMywxNCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rv
a2VuX3Q+IHsKICNlbmRpZgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPE1vbm9z
dGF0ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgTW9ub3N0YXRl
Jik7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBkZWNvZGUoRGVjb2RlciYp
OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CisgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBNb25vc3RhdGUmKSB7IH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1l
IERlY29kZXI+CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBkZWNvZGUoRGVj
b2RlciYpCisgICAgeworICAgICAgICByZXR1cm4gTW9ub3N0YXRlIHsgfTsKKyAgICB9CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwCmluZGV4IGVlZWU2YWViNjFhMzM4YWY4ZDNjYWVmYmY1MjQ5MTk0MGFm
NzA1NWIuLjg2N2Y2ZDU0OGI5ZTI5ODRlYzcxZjMzZGEwMjg5ODcyMzk3MWNkMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMTI1LDYg
KzEyNSw0MiBAQCBuYW1lc3BhY2UgSVBDIHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKIAorI2RlZmluZSBERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NP
REVSX0ZPUl9TT1VSQ0UoVHlwZSkgXAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IFwK
KyAgICB2b2lkIEFyZ3VtZW50Q29kZXI8VHlwZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBUeXBlJiB2YWx1ZSkgeyBTaW1wbGVBcmd1bWVudENvZGVyPFR5cGU+OjplbmNvZGUoZW5j
b2RlciwgdmFsdWUpOyB9IFwKKyAgICBib29sIEFyZ3VtZW50Q29kZXI8VHlwZT46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBUeXBlJiB2YWx1ZSkgeyByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2Rl
cjxUeXBlPjo6ZGVjb2RlKGRlY29kZXIsIHZhbHVlKTsgfSBcCisgICAgc3RkOjpvcHRpb25hbDxU
eXBlPiBBcmd1bWVudENvZGVyPFR5cGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikgXAorICAg
IHsgXAorICAgICAgICBUeXBlIHZhbHVlOyBcCisgICAgICAgIGlmICghZGVjb2RlKGRlY29kZXIs
IHZhbHVlKSkgXAorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgXAorICAgICAgICBy
ZXR1cm4gdmFsdWU7IFwKKyAgICB9IFwKKyAgICB0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8
VHlwZT46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVyJiwgY29uc3QgVHlwZSYpOyBcCisgICAgdGVt
cGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFR5cGU+OjplbmNvZGU8U3RyZWFtQ29ubmVjdGlvbkVu
Y29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwgY29uc3QgVHlwZSYpOworCitERUZJTkVf
U0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoQWZmaW5lVHJhbnNmb3JtKQorREVGSU5F
X1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0Qm94RXh0ZW50KQorREVGSU5F
X1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0UG9pbnQpCitERUZJTkVfU0lN
UExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoRmxvYXRQb2ludDNEKQorREVGSU5FX1NJTVBM
RV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0UmVjdCkKK0RFRklORV9TSU1QTEVfQVJH
VU1FTlRfQ09ERVJfRk9SX1NPVVJDRShGbG9hdFJvdW5kZWRSZWN0KQorREVGSU5FX1NJTVBMRV9B
UkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1F
TlRfQ09ERVJfRk9SX1NPVVJDRShJbnRQb2ludCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09E
RVJfRk9SX1NPVVJDRShJbnRSZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
U09VUkNFKEludFNpemUpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0Uo
TGF5b3V0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoTGF5
b3V0U2l6ZSkKKworI2lmIFVTRShDRykKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9S
X1NPVVJDRShDR1JlY3QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0Uo
Q0dTaXplKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKENHUG9pbnQp
CitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoQ0dBZmZpbmVUcmFuc2Zv
cm0pCisjZW5kaWYKKworI3VuZGVmIERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX1NP
VVJDRQorCiBzdGF0aWMgdm9pZCBlbmNvZGVTaGFyZWRCdWZmZXIoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgU2hhcmVkQnVmZmVyKiBidWZmZXIpCiB7CiAgICAgYm9vbCBpc051bGwgPSAhYnVmZmVy
OwpAQCAtMjMxLDE2ICsyNjcsNiBAQCBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlVHlwZXNBbmREYXRhKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxTdHJpbgogICAgIHJldHVy
biB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgYWZmaW5lVHJhbnNmb3Jt
KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2RlKGVu
Y29kZXIsIGFmZmluZVRyYW5zZm9ybSk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxBZmZpbmVU
cmFuc2Zvcm0+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgQWZmaW5lVHJhbnNmb3JtJiBhZmZp
bmVUcmFuc2Zvcm0pCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJh
bnNmb3JtPjo6ZGVjb2RlKGRlY29kZXIsIGFmZmluZVRyYW5zZm9ybSk7Ci19Ci0KIHZvaWQgQXJn
dW1lbnRDb2RlcjxDYWNoZVF1ZXJ5T3B0aW9ucz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBDYWNoZVF1ZXJ5T3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBlbmNvZGVyIDw8IG9wdGlv
bnMuaWdub3JlU2VhcmNoOwpAQCAtNDI1LDYgKzQ1MSw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxF
dmVudFRyYWNraW5nUmVnaW9ucz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBFdmVudFRyYWNr
aW5nCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiB2
b2lkIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybWF0aW9uTWF0cml4
KQogewogICAgIGVuY29kZXIgPDwgdHJhbnNmb3JtYXRpb25NYXRyaXgubTExKCk7CkBAIC01MDYs
NiArNTMzLDkgQEAgYm9vbCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFRyYW5zZm9ybWF0aW8KICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAordGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5j
b2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwordGVt
cGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5jb2RlPFN0
cmVhbUNvbm5lY3Rpb25FbmNvZGVyPihTdHJlYW1Db25uZWN0aW9uRW5jb2RlciYsIGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4Jik7CisKIHZvaWQgQXJndW1lbnRDb2RlcjxMaW5lYXJUaW1pbmdG
dW5jdGlvbj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMaW5lYXJUaW1pbmdGdW5j
dGlvbiYgdGltaW5nRnVuY3Rpb24pCiB7CiAgICAgZW5jb2RlciA8PCB0aW1pbmdGdW5jdGlvbi50
eXBlKCk7CkBAIC02MTcsNjUgKzY0Nyw2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxTcHJpbmdUaW1p
bmdGdW5jdGlvbj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTcHJpbmdUaW1pbmdGCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UG9pbnQmIGZsb2F0UG9pbnQpCi17Ci0gICAg
U2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0UG9p
bnQpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBGbG9hdFBvaW50JiBmbG9hdFBvaW50KQotewotICAgIHJldHVybiBTaW1wbGVB
cmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRQb2ludCk7Ci19
Ci0KLXN0ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4gQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgRmxvYXRQb2ludCBmbG9hdFBvaW50Owot
ICAgIGlmICghU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2RlKGRlY29kZXIs
IGZsb2F0UG9pbnQpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBm
bG9hdFBvaW50OwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UG9pbnQzRCYgZmxvYXRQb2ludCkKLXsKLSAg
ICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmVuY29kZShlbmNvZGVyLCBmbG9h
dFBvaW50KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFBvaW50M0QmIGZsb2F0UG9pbnQpCi17Ci0gICAgcmV0dXJu
IFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0
UG9pbnQpOwotfQotCi0KLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRSZWN0JiBmbG9hdFJlY3QpCi17Ci0gICAgU2ltcGxl
QXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRSZWN0KTsKLX0K
LQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBGbG9hdFJlY3QmIGZsb2F0UmVjdCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2Rl
cjxGbG9hdFJlY3Q+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRSZWN0KTsKLX0KLQotc3RkOjpvcHRp
b25hbDxGbG9hdFJlY3Q+IEFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCi17Ci0gICAgRmxvYXRSZWN0IGZsb2F0UmVjdDsKLSAgICBpZiAoIVNpbXBsZUFy
Z3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0UmVjdCkpCi0gICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIGZsb2F0UmVjdDsKLX0KLQotCi12
b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgRmxvYXRCb3hFeHRlbnQmIGZsb2F0Qm94RXh0ZW50KQotewotICAgIFNpbXBsZUFy
Z3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRCb3hFeHRl
bnQpOwotfQotICAgIAotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIEZsb2F0Qm94RXh0ZW50JiBmbG9hdEJveEV4dGVudCkKLXsKLSAg
ICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZShkZWNv
ZGVyLCBmbG9hdEJveEV4dGVudCk7Ci19Ci0KLQogdm9pZCBBcmd1bWVudENvZGVyPFJlY3RFZGdl
czxib29sPj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWN0RWRnZXM8Ym9vbD4m
IGJveEVkZ2VzKQogewogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8UmVjdEVkZ2VzPGJvb2w+Pjo6
ZW5jb2RlKGVuY29kZXIsIGJveEVkZ2VzKTsKQEAgLTY4NiwyOCArNjU3LDYgQEAgYm9vbCBBcmd1
bWVudENvZGVyPFJlY3RFZGdlczxib29sPj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZWN0
RWRnZXM8Ym9vbD4mIGIKICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxSZWN0RWRnZXM8
Ym9vbD4+OjpkZWNvZGUoZGVjb2RlciwgYm94RWRnZXMpOwogfQogCi0KLXZvaWQgQXJndW1lbnRD
b2RlcjxGbG9hdFNpemU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRTaXpl
JiBmbG9hdFNpemUpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjplbmNv
ZGUoZW5jb2RlciwgZmxvYXRTaXplKTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0U2l6
ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFNpemUmIGZsb2F0U2l6ZSkKLXsKLSAg
ICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjpkZWNvZGUoZGVjb2Rlciwg
ZmxvYXRTaXplKTsKLX0KLQotCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByb3VuZGVk
UmVjdCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjplbmNv
ZGUoZW5jb2Rlciwgcm91bmRlZFJlY3QpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRS
b3VuZGVkUmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFJvdW5kZWRSZWN0JiBy
b3VuZGVkUmVjdCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFJvdW5k
ZWRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIHJvdW5kZWRSZWN0KTsKLX0KLQogI2lmIEVOQUJMRShN
RVRBX1ZJRVdQT1JUKQogdm9pZCBBcmd1bWVudENvZGVyPFZpZXdwb3J0QXJndW1lbnRzPjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJiB2aWV3cG9ydEFy
Z3VtZW50cykKIHsKQEAgLTczOSw4NyArNjg4LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPFZpZXdw
b3J0QXR0cmlidXRlcz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBWaWV3cG9ydEF0dHJpYnUK
ICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxWaWV3cG9ydEF0dHJpYnV0ZXM+OjpkZWNv
ZGUoZGVjb2Rlciwgdmlld3BvcnRBdHRyaWJ1dGVzKTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVy
PEludFBvaW50Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEludFBvaW50JiBpbnRQ
b2ludCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZW5jb2RlKGVuY29k
ZXIsIGludFBvaW50KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIEludFBvaW50JiBpbnRQb2ludCkKLXsKLSAgICByZXR1cm4gU2lt
cGxlQXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZShkZWNvZGVyLCBpbnRQb2ludCk7Ci19
Ci0KLXN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+IEFyZ3VtZW50Q29kZXI8SW50UG9p
bnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBJbnRQb2ludCBpbnRQb2ludDsK
LSAgICBpZiAoIVNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoZGVjb2Rlciwg
aW50UG9pbnQpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBpbnRQ
b2ludDsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPEludFJlY3Q+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgSW50UmVjdCYgaW50UmVjdCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENv
ZGVyPEludFJlY3Q+OjplbmNvZGUoZW5jb2RlciwgaW50UmVjdCk7Ci19Ci0KLWJvb2wgQXJndW1l
bnRDb2RlcjxJbnRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEludFJlY3QmIGludFJl
Y3QpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZShk
ZWNvZGVyLCBpbnRSZWN0KTsKLX0KLQotc3RkOjpvcHRpb25hbDxJbnRSZWN0PiBBcmd1bWVudENv
ZGVyPEludFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBJbnRSZWN0IHJl
Y3Q7Ci0gICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgcmVjdCkpCi0gICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7Ci0gICAgcmV0dXJuIHJlY3Q7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIEVuY29k
ZXI+Ci12b2lkIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBJbnRTaXplJiBpbnRTaXplKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50
U2l6ZT46OmVuY29kZShlbmNvZGVyLCBpbnRTaXplKTsKLX0KLQotdGVtcGxhdGUKLXZvaWQgQXJn
dW1lbnRDb2RlcjxJbnRTaXplPjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBJbnRT
aXplJik7Ci10ZW1wbGF0ZQotdm9pZCBBcmd1bWVudENvZGVyPEludFNpemU+OjplbmNvZGU8U3Ry
ZWFtQ29ubmVjdGlvbkVuY29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwgY29uc3QgSW50
U2l6ZSYpOwotCi1ib29sIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBJbnRTaXplJiBpbnRTaXplKQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENv
ZGVyPEludFNpemU+OjpkZWNvZGUoZGVjb2RlciwgaW50U2l6ZSk7Ci19Ci0KLXN0ZDo6b3B0aW9u
YWw8SW50U2l6ZT4gQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCi17Ci0gICAgSW50U2l6ZSBpbnRTaXplOwotICAgIGlmICghU2ltcGxlQXJndW1lbnRDb2Rl
cjxJbnRTaXplPjo6ZGVjb2RlKGRlY29kZXIsIGludFNpemUpKQotICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwotICAgIHJldHVybiBpbnRTaXplOwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8
TGF5b3V0U2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMYXlvdXRTaXplJiBs
YXlvdXRTaXplKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmVuY29k
ZShlbmNvZGVyLCBsYXlvdXRTaXplKTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPExheW91dFNp
emU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTGF5b3V0U2l6ZSYgbGF5b3V0U2l6ZSkKLXsK
LSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxMYXlvdXRTaXplPjo6ZGVjb2RlKGRlY29k
ZXIsIGxheW91dFNpemUpOwotfQotCi0KLXZvaWQgQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMYXlvdXRQb2ludCYgbGF5b3V0UG9pbnQp
Ci17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46OmVuY29kZShlbmNvZGVy
LCBsYXlvdXRQb2ludCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCBMYXlvdXRQb2ludCYgbGF5b3V0UG9pbnQpCi17Ci0gICAg
cmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+OjpkZWNvZGUoZGVjb2Rlciwg
bGF5b3V0UG9pbnQpOwotfQotCiB2b2lkIEFyZ3VtZW50Q29kZXI8UmVjZW50U2VhcmNoPjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlY2VudFNlYXJjaCYgcmVjZW50U2VhcmNoKQog
ewogICAgIGVuY29kZXIgPDwgcmVjZW50U2VhcmNoLnN0cmluZyA8PCByZWNlbnRTZWFyY2gudGlt
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXgg
MzUxMzhmNWRlMzJkN2UxZjFmZDE1NGMyNjFmOGU3OTJlNDczNzcxMC4uN2U4ZmVjOWZiM2Y2Mjg1
YWU3ZTYwYjNmMDQ4NGExZWY5OWM3NmU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTI2LDEyICsyNiwyNCBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQWZmaW5lVHJh
bnNmb3JtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRvcGxheUV2ZW50Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Db2xvclNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvRmxvYXRQb2ludDNELmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0Zsb2F0Um91bmRlZFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zs
b2F0U2l6ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvSW5kZXhlZERCLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnB1dE1vZGUuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0ludFBvaW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9MYXlv
dXRQb2ludC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGF5b3V0U2l6ZS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvTGVuZ3RoQm94Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlbGVjdGlvbk9wdGlv
bi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmF0aXZlSW1hZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L05ldHdvcmtMb2FkTWV0cmljcy5oPgpAQCAtOTYsNyArMTA4LDYgQEAgdHlwZWRlZiBzdHJ1Y3Qg
X19DVkJ1ZmZlciogQ1ZQaXhlbEJ1ZmZlclJlZjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgQWJzb2x1dGVQb3NpdGlvbkNvbnN0cmFpbnRzOwotY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwog
Y2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7CiBjbGFzcyBCbG9iUGFydDsKIGNsYXNzIENl
cnRpZmljYXRlSW5mbzsKQEAgLTEwOSwyMSArMTIwLDExIEBAIGNsYXNzIERyYWdEYXRhOwogY2xh
c3MgRmlsZTsKIGNsYXNzIEZpbHRlck9wZXJhdGlvbjsKIGNsYXNzIEZpbHRlck9wZXJhdGlvbnM7
Ci1jbGFzcyBGbG9hdFBvaW50OwotY2xhc3MgRmxvYXRQb2ludDNEOwotY2xhc3MgRmxvYXRSZWN0
OwotY2xhc3MgRmxvYXRSb3VuZGVkUmVjdDsKLWNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIEZpeGVk
UG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzOwogY2xhc3MgRm9udDsKIGNsYXNzIEZvbnRQbGF0
Zm9ybURhdGE7CiBjbGFzcyBIVFRQSGVhZGVyTWFwOwotY2xhc3MgSW50UG9pbnQ7Ci1jbGFzcyBJ
bnRSZWN0OwotY2xhc3MgSW50U2l6ZTsKIGNsYXNzIEtleWZyYW1lVmFsdWVMaXN0OwotY2xhc3Mg
TGF5b3V0U2l6ZTsKLWNsYXNzIExheW91dFBvaW50OwogY2xhc3MgTGluZWFyVGltaW5nRnVuY3Rp
b247CiBjbGFzcyBOb3RpZmljYXRpb247CiBjbGFzcyBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTsKQEAg
LTE3NCw5ICsxNzUsNyBAQCBzdHJ1Y3QgVG91Y2hBY3Rpb25EYXRhOwogc3RydWN0IFZlbG9jaXR5
RGF0YTsKIHN0cnVjdCBWaWV3cG9ydEF0dHJpYnV0ZXM7CiBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7
Ci0gICAgCi10ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgUmVjdEVkZ2VzOwotdXNpbmcgRmxvYXRC
b3hFeHRlbnQgPSBSZWN0RWRnZXM8ZmxvYXQ+OworCiB1c2luZyBJREJLZXlQYXRoID0gVmFyaWFu
dDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+PjsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMjI3
LDEwICsyMjYsMzQgQEAgc3RydWN0IFJlY29yZDsKIAogbmFtZXNwYWNlIElQQyB7CiAKLXRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtPiB7Ci0g
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFu
c2Zvcm0mKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29k
ZXImLCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mKTsKLX07CisjZGVmaW5lIERFRklORV9TSU1Q
TEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihUeXBlKSBcCisgICAgdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxUeXBlPiB7IFwKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5j
b2Rlcj4gc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBUeXBlJik7IFwKKyAgICAg
ICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgVHlwZSYp
OyBcCisgICAgICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFR5cGU+IGRlY29kZShEZWNvZGVyJik7
IFwKKyAgICB9OworCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoV2Vi
Q29yZTo6QWZmaW5lVHJhbnNmb3JtKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
SEVBREVSKFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9D
T0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VN
RU5UX0NPREVSX0ZPUl9IRUFERVIoV2ViQ29yZTo6RmxvYXRQb2ludDNEKQorREVGSU5FX1NJTVBM
RV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0UmVjdCkKK0RFRklORV9T
SU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0
KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0
U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3JlOjpJ
bnRQb2ludCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3Jl
OjpJbnRSZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNv
cmU6OkludFNpemUpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoV2Vi
Q29yZTo6TGF5b3V0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFE
RVIoV2ViQ29yZTo6TGF5b3V0U2l6ZSkKKworI2lmIFVTRShDRykKK0RFRklORV9TSU1QTEVfQVJH
VU1FTlRfQ09ERVJfRk9SX0hFQURFUihDR1JlY3QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NP
REVSX0ZPUl9IRUFERVIoQ0dTaXplKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
SEVBREVSKENHUG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIo
Q0dBZmZpbmVUcmFuc2Zvcm0pCisjZW5kaWYKKworI3VuZGVmIERFRklORV9TSU1QTEVfQVJHVU1F
TlRfQ09ERVJfRk9SX0hFQURFUgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmc+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmcmKTsKQEAgLTI2OCw2ICsyOTEsNyBA
QCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkV2ZW50VHJhY2tpbmdS
ZWdpb25zPiB7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlRyYW5zZm9ybWF0aW9uTWF0cml4PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4K
ICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9y
bWF0aW9uTWF0cml4Jik7CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29k
ZShEZWNvZGVyJiwgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKIH07CkBAIC0yOTks
NDMgKzMyMywxMSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNl
cnRpZmljYXRlSW5mbz4gewogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNlcnRp
ZmljYXRlSW5mbz4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwotICAgIHN0YXRpYyBXQVJO
X1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQm
KTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBkZWNvZGUo
RGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpGbG9hdFBvaW50M0Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotfTsKLQotdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFJlY3Q+IHsKLSAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwot
ICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNv
cmU6OkZsb2F0UmVjdCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0
UmVjdD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0gICAgCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYpOwotICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0
Qm94RXh0ZW50Jik7Ci19OwotCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OlJlY3RFZGdlczxib29sPj4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwg
Y29uc3QgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+Jik7CiAgICAgc3RhdGljIFdBUk5fVU5VU0VE
X1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+Jik7
CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0U2l6
ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNv
ZGVyJiwgV2ViQ29yZTo6RmxvYXRTaXplJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q+IHsKLSAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3QmKTsKLSAgICBz
dGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpG
bG9hdFJvdW5kZWRSZWN0Jik7Ci19OwotCiAjaWYgRU5BQkxFKE1FVEFfVklFV1BPUlQpCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiB7
CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpWaWV3cG9y
dEFyZ3VtZW50cyYpOwpAQCAtMzUwLDM1ICszNDIsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcz4gewogICAgIHN0YXRpYyBXQVJO
X1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlZpZXdwb3J0QXR0
cmlidXRlcyYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpJbnRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlKERlY29kZXImLCBXZWJDb3JlOjpJbnRQb2ludCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OkludFBvaW50PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRSZWN0PiB7Ci0gICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0gICAgc3RhdGlj
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6SW50UmVj
dCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFJlY3Q+IGRlY29kZShE
ZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OkludFNpemU+IHsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgotICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwotICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkludFNp
emUmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRTaXplPiBkZWNvZGUo
RGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpMYXlvdXRTaXplPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBX
ZWJDb3JlOjpMYXlvdXRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29s
IGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6TGF5b3V0U2l6ZSYpOwotfTsKLQotdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMYXlvdXRQb2ludD4gewotICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmKTsKLSAg
ICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3Jl
OjpMYXlvdXRQb2ludCYpOwotfTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpMZW5ndGg+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6Okxlbmd0aCYpOwogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBk
ZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6Okxlbmd0aCYpOwpAQCAtNDU3LDYgKzQyMCw3IEBAIHRl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RHJhZ0RhdGE+IHsKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V1RGOjpNYWNoU2VuZFJpZ2h0PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmKTsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5j
b2RlciYsIFdURjo6TWFjaFNlbmRSaWdodCYmKTsKQEAgLTQ2OCwyNiArNDMyLDcgQEAgdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IHsKICAg
ICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IGRlY29kZShE
ZWNvZGVyJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHUG9pbnQ+
IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIENHUG9pbnQpOwotICAgIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPENHUG9pbnQ+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHU2l6ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgQ0dTaXplKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDR1NpemU+IGRl
Y29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENH
UmVjdD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dSZWN0KTsKLSAgICBz
dGF0aWMgc3RkOjpvcHRpb25hbDxDR1JlY3Q+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPiB7Ci0gICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBDR0FmZmluZVRyYW5zZm9ybSk7Ci0gICAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8Q0dBZmZpbmVUcmFuc2Zvcm0+IGRlY29kZShEZWNvZGVyJik7Ci19Owot
I2VuZGlmCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZWxlY3Rpb25H
ZW9tZXRyeT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVB
cmd1bWVudENvZGVyc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJn
dW1lbnRDb2RlcnNNYWMubW0KaW5kZXggOGU0ZDVmMTMxZDgyZjFkZWZlMjZkMTVhYmZlZTA2NGEz
Yjk4OTBmOC4uNmE0MzQwNjcxNDYzZDk0NzA3MTkyMzEwYjFmN2JhMGJkMDNhNzZmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFj
Lm1tCkBAIC0zMjEsNzkgKzMyMSw2IEBAIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6S2V5cHJlc3ND
b21tYW5kPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD46CiAgICAgcmV0
dXJuIFdURk1vdmUoY29tbWFuZCk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxDR1JlY3Q+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0dSZWN0IHJlY3QpCi17Ci0gICAgZW5jb2RlciA8PCBy
ZWN0Lm9yaWdpbiA8PCByZWN0LnNpemU7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8Q0dSZWN0PiBBcmd1
bWVudENvZGVyPENHUmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIHN0ZDo6
b3B0aW9uYWw8Q0dQb2ludD4gb3JpZ2luOwotICAgIGRlY29kZXIgPj4gb3JpZ2luOwotICAgIGlm
ICghb3JpZ2luKQotICAgICAgICByZXR1cm4geyB9OwotCi0gICAgc3RkOjpvcHRpb25hbDxDR1Np
emU+IHNpemU7Ci0gICAgZGVjb2RlciA+PiBzaXplOwotICAgIGlmICghc2l6ZSkKLSAgICAgICAg
cmV0dXJuIHsgfTsKLQotICAgIHJldHVybiBDR1JlY3QgeyAqb3JpZ2luLCAqc2l6ZSB9OwotfQot
Ci12b2lkIEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENH
U2l6ZSBzaXplKQotewotICAgIGVuY29kZXIgPDwgc2l6ZS53aWR0aCA8PCBzaXplLmhlaWdodDsK
LX0KLQotc3RkOjpvcHRpb25hbDxDR1NpemU+IEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgQ0dTaXplIHNpemU7Ci0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZShzaXplLndpZHRoKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHNpemUuaGVpZ2h0KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4g
c2l6ZTsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPENHUG9pbnQ+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgQ0dQb2ludCBwb2ludCkKLXsKLSAgICBlbmNvZGVyIDw8IHBvaW50LnggPDwgcG9p
bnQueTsKLX0KLQotc3RkOjpvcHRpb25hbDxDR1BvaW50PiBBcmd1bWVudENvZGVyPENHUG9pbnQ+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBDR1BvaW50IHBvaW50OwotICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocG9pbnQueCkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwb2ludC55KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1
cm4gcG9pbnQ7Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxDR0FmZmluZVRyYW5zZm9ybT46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0pCi17Ci0g
ICAgZW5jb2RlciA8PCB0cmFuc2Zvcm0uYSA8PCB0cmFuc2Zvcm0uYiA8PCB0cmFuc2Zvcm0uYyA8
PCB0cmFuc2Zvcm0uZCA8PCB0cmFuc2Zvcm0udHggPDwgdHJhbnNmb3JtLnR5OwotfQotCi1zdGQ6
Om9wdGlvbmFsPENHQWZmaW5lVHJhbnNmb3JtPiBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNm
b3JtPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgQ0dBZmZpbmVUcmFuc2Zvcm0g
dHJhbnNmb3JtOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmEpKQotICAgICAg
ICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmIpKQotICAg
ICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmMpKQot
ICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmQp
KQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3Jt
LnR4KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5z
Zm9ybS50eSkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgcmV0dXJuIHRyYW5zZm9ybTsKLX0K
LQogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKIAogdm9pZCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcj46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIGNvbnRlbnRG
aWx0ZXJVbmJsb2NrSGFuZGxlcikK
</data>
<flag name="commit-queue"
          id="464187"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440308</attachid>
            <date>2021-10-05 17:24:06 -0700</date>
            <delta_ts>2021-10-05 17:52:11 -0700</delta_ts>
            <desc>Try to fix the WPE build again? (3)</desc>
            <filename>bug-230714-20211005172405.patch</filename>
            <type>text/plain</type>
            <size>37071</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcwMTIxY2IyMGJiMWM2YThl
MDhkZjNkZGVjMjNjNzVlZWMwMmIwODIuLmU0ZjAyMDQ2MmFjZjdjODc4ZjZhMmFmNDE2YTMwYzQ3
OTMwMzkxYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzEgQEAKKzIwMjEtMTAtMDUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIFJlZmFj
dG9yIHNvbWUgSVBDIGFyZ3VtZW50IGVuY29kZXIgbG9naWMgdG8gd29yayB3aXRoIFN0cmVhbUNv
bm5lY3Rpb25FbmNvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA3MTQKKyAgICAgICAgcmRhcjovLzgzNDc3NTkxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byB1c2Ug
YElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXJgIHRvIGVuY29kZSBkaXNwbGF5IGxpc3QgaXRl
bXMgKGFuZCB0aGVpciBtZW1iZXJzKSBpbiBhbgorICAgICAgICBJUEMgc3RyZWFtLiBUaGlzIHBh
dGNoIGNvbXByaXNlcyB0d28gbWFpbiBzZXRzIG9mIGNoYW5nZXMgaW4gYEFyZ3VtZW50Q29kZXJz
YCwgYW5kIGBXZWJDb3JlQXJndW1lbnRDb2RlcnNgLiBTZWUKKyAgICAgICAgYmVsb3cgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmRlY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNb25vc3RhdGU+OjpkZWNvZGUpOiBEZWxldGVk
LgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2RlKToKKworICAgICAgICBNYW55IG9mIHRoZXNlIGBl
bmNvZGUoKWAgbWV0aG9kcyBhcmUgY3VycmVudGx5IG5vbi10ZW1wbGF0ZWQsIHdoaWNoIG1lYW5z
IHRoYXQgRW5jb2RlciBhbmQgRGVjb2RlciB1c2VkIGhlcmUKKyAgICAgICAgcmVmZXIgc29sZWx5
IHRvIElQQzo6RW5jb2RlciBhbmQgSVBDOjpEZWNvZGVyIChyZXNwZWN0aXZlbHkpIGluc3RlYWQg
b2Ygb3RoZXIgdHlwZXMgb2YgZW5jb2RlcnMgKG5hbWVseSwKKyAgICAgICAgU3RyZWFtQ29ubmVj
dGlvbkVuY29kZXIpLiBNYWtlIHRoZXNlIHVzZSB0ZW1wbGF0ZWQgYGVuY29kZWAgbWV0aG9kcyBp
bnRlYWQsIHNvIHRoYXQgdGhleSB3b3JrIHdpdGggZ2VuZXJpYworICAgICAgICBlbmNvZGVycy4K
KworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmVuY29kZSk6IERlbGV0ZWQuCisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2RlKTog
RGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQz
RD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRS
ZWN0Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9h
dFJlY3Q+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZs
b2F0Qm94RXh0ZW50Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjplbmNvZGUpOiBEZWxldGVkLgorICAg
ICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjpkZWNvZGUpOiBEZWxl
dGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZW5jb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmRlY29k
ZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPExheW91dFBvaW50
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKworICAgICAgICBUaGVzZSBXZWJDb3JlIGFyZ3VtZW50IGNv
ZGVycyBhcmUgYWxzbyBjdXJyZW50bHkgaW5jb21wYXRpYmxlIHdpdGggU3RyZWFtQ29ubmVjdGlv
bkVuY29kZXIsIHNpbmNlIHRoZXkgYXJlIG5vbi0KKyAgICAgICAgdGVtcGxhdGVkIChhbmQgdGh1
cyBvbmx5IHdvcmsgd2l0aCBJUEM6OkVuY29kZXIpLiBTaW5jZSB0aGVzZSBhcmUgYWxsIGVuY29k
YWJsZSBhcyBQT0QgdHlwZXMsIHdlIGNhbiBqdXN0IHVzZQorICAgICAgICBTaW1wbGVBcmd1bWVu
dENvZGVyIGZvciBhbGwgb2YgdGhlc2UuIFdlIGFsc28gYWRkIG5ldyBgREVGSU5FX1NJTVBMRV9B
UkdVTUVOVF9DT0RFUl9GT1JfKEhFQURFUnxTT1VSQ0UpYCBtYWNyb3MKKyAgICAgICAgdG8gbWFr
ZSB0aGlzIGNvZGUgYSBiaXQgZWFzaWVyIHRvIHJlYWQsIHdoaWNoIGFkZHMgU2ltcGxlQXJndW1l
bnRDb2RlciBmb3IgdGhlIGdpdmVuIHR5cGUsIGZvciBib3RoIHN0YW5kYXJkCisgICAgICAgIElQ
Qzo6RW5jb2RlciBhcyB3ZWxsIGFzIElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXIuCisKKyAg
ICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogU2hhcmVk
L21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW06CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8Q0dSZWN0Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxDR1JlY3Q+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPENHU2l6ZT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8Q0dTaXplPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR1BvaW50Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR1BvaW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR0FmZmluZVRyYW5zZm9ybT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+OjpkZWNvZGUpOiBEZWxldGVkLgorCiAyMDIx
LTEwLTA1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAg
IE1vdmUgRmx1c2hJZGVudGlmaWVyIG91dCBvZiB0aGUgRGlzcGxheUxpc3QgbmFtZXNwYWNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKaW5kZXggYTMy
MDU1MTg3OThiNzRkY2VkYjhhMDEzZjljOWM5ODg1YWFlNjYxNi4uZTdmMjc4MDM2MmRkMjAzNzQz
NGNhMWNiMzkwZGRlNmVmNzkxNTkzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L0FyZ3VtZW50Q29kZXJzLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlByaXZhdGVD
bGlja01lYXN1cmVtZW50RGVjb2Rlci5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVt
ZW50RW5jb2Rlci5oIgogI2luY2x1ZGUgIlN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyLmgiCisjaW5j
bHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMjE4LDYgKzIxOSw3IEBA
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIEFyZ3VtZW50Q29kZXI8U0hBMTo6RGlnZXN0Pjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFNICiB9CiAKICNpZiBIQVZFKEFVRElUX1RPS0VOKQorCiB2
b2lkIEFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBhdWRpdF90b2tlbl90JiBhdWRpdFRva2VuKQogewogICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGF1ZGl0VG9rZW4udmFsKTsgaSsrKQpAQCAtMjMy
LDE1ICsyMzQsNyBAQCBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBBcmd1bWVudENvZGVyPGF1ZGl0
X3Rva2VuX3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgYQogICAgIH0KICAgICByZXR1cm4g
dHJ1ZTsKIH0KLSNlbmRpZgotCi12b2lkIEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBNb25vc3RhdGUmKQotewotfQogCi1XQVJOX1VOVVNFRF9SRVRVUk4g
c3RkOjpvcHRpb25hbDxNb25vc3RhdGU+IEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2Rl
KERlY29kZXImKQotewotICAgIHJldHVybiBNb25vc3RhdGUgeyB9OwotfQorI2VuZGlmIC8vIEhB
VkUoQVVESVRfVE9LRU4pCiAKIH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKaW5kZXggNDc5ZGI2MGVkYzI3MTZkNTU2MDZmNjUy
ZjI0MzFhZDM2OWY2NTcwYy4uZDk3Nzg3N2M1ZmIzNjUwN2JiNjUzMjRjMDY2M2Y4NjE1NjZkNTkz
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCkBAIC0x
MDgsMTIgKzEwOCwxNCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxBcnJheVJlZmVyZW5jZTxULCBhcnJheVJlZmVyZW5jZUR5bmFtaQogfTsKIAogdGVtcGxhdGU8
dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8T3B0aW9uU2V0PFQ+PiB7CisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgT3B0aW9uU2V0PFQ+JiBvcHRpb25TZXQpCiAgICAgewogICAgICAgICBB
U1NFUlQoV1RGOjppc1ZhbGlkT3B0aW9uU2V0KG9wdGlvblNldCkpOwogICAgICAgICBlbmNvZGVy
IDw8IG9wdGlvblNldC50b1JhdygpOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERl
Y29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBPcHRpb25TZXQ8VD4mIG9wdGlvblNldCkKICAgICB7CiAgICAgICAgIHR5cGVu
YW1lIE9wdGlvblNldDxUPjo6U3RvcmFnZVR5cGUgdmFsdWU7CkBAIC0xMjUsNiArMTI3LDcgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8T3B0aW9uU2V0PFQ+PiB7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERl
Y29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8T3B0aW9uU2V0PFQ+PiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgT3B0
aW9uU2V0PFQ+OjpTdG9yYWdlVHlwZT4gdmFsdWU7CkBAIC0xODgsNiArMTkxLDcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpvcHRpb25hbDxUPj4gewog
fTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQm94PFQ+JiBib3gpCiAgICAgewogICAgICAgICBpZiAo
IWJveCkgewpAQCAtMTk5LDYgKzIwMyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBB
cmd1bWVudENvZGVyPEJveDxUPj4gewogICAgICAgICBlbmNvZGVyIDw8ICpib3guZ2V0KCk7CiAg
ICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9V
TlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEJveDxUPiYgYm94KQog
ICAgIHsKICAgICAgICAgYm9vbCBpc0VuZ2FnZWQ7CkBAIC0yMTgsNiArMjIzLDcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8Qm94PFQ+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAg
ICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gaXNFbmdhZ2VkOwpAQCAtMjM2LDExICsy
NDIsMTMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+
PiB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxzdGQ6OnBhaXI8VCwgVT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
PgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBzdGQ6OnBh
aXI8VCwgVT4mIHBhaXIpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHBhaXIuZmlyc3QgPDwg
cGFpci5zZWNvbmQ7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAg
ICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IHN0ZDo6cGFpcjxULCBVPiYgcGFpcikKICAgICB7CiAgICAgICAgIFQgZmlyc3Q7CkBAIC0yNTYs
NiArMjY0LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8c3RkOjpwYWlyPFQsIFU+PiB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
IAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8c3RkOjpwYWlyPFQsIFU+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8VD4gZmlyc3Q7CkBAIC0zNjYsMTEgKzM3NSwxMyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZS4uLiBFbGVtZW50cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjp0dXBsZTxF
bGVtZW50cy4uLj4+IHsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEtleVR5cGUsIHR5cGVuYW1l
IFZhbHVlVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpLZXlWYWx1ZVBhaXI8S2V5VHlw
ZSwgVmFsdWVUeXBlPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6S2V5VmFsdWVQYWly
PEtleVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHBh
aXIua2V5IDw8IHBhaXIudmFsdWU7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVj
b2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFdURjo6S2V5VmFsdWVQYWlyPEtleVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAg
ICAgewogICAgICAgICBLZXlUeXBlIGtleTsKQEAgLTM5OCw2ICs0MDksNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxl
ciwgc2l6ZV90IG1pbgogICAgICAgICAgICAgZW5jb2RlciA8PCB2ZWN0b3JbaV07CiAgICAgfQog
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURf
UkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxULCBpbmxpbmVDYXBh
Y2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4mIHZlY3RvcikKICAgICB7CiAgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRs
ZXIsIG1pbkNhcGFjaXR5Pj4gb3B0aW9uYWw7CkBAIC00MzcsNiArNDQ5LDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRs
ZXIsIHNpemVfdCBtaW4KICAgICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVp
bnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4odmVjdG9yLmRhdGEoKSksIHZlY3Rvci5zaXpl
KCkgKiBzaXplb2YoVCksIGFsaWdub2YoVCkpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hh
bmRsZXIsIG1pbkNhcGFjaXR5PiYgdmVjdG9yKQogICAgIHsKICAgICAgICAgdWludDY0X3QgZGVj
b2RlZFNpemU7CkBAIC00NTEsNyArNDY0LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90
IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KICAg
ICAgICAgLy8gU2luY2Ugd2Uga25vdyB0aGUgdG90YWwgc2l6ZSBvZiB0aGUgZWxlbWVudHMsIHdl
IGNhbiBhbGxvY2F0ZSB0aGUgdmVjdG9yIGluCiAgICAgICAgIC8vIG9uZSBmZWxsIHN3b29wLiBC
ZWZvcmUgYWxsb2NhdGluZyB3ZSBtdXN0IGhvd2V2ZXIgbWFrZSBzdXJlIHRoYXQgdGhlIGRlY29k
ZXIgYnVmZmVyCiAgICAgICAgIC8vIGlzIGJpZyBlbm91Z2guCi0gICAgICAgIGlmICghZGVjb2Rl
ci5idWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluPFQ+KHNpemUpKQorICAgICAgICBpZiAoIWRl
Y29kZXIudGVtcGxhdGUgYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbjxUPihzaXplKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBWZWN0b3I8VCwgaW5saW5lQ2FwYWNp
dHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+IHRlbXA7CkBAIC00OTgsNiArNTExLDcg
QEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBP
dmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlw
ZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcs
IHR5cGVuYW1lIE1hcHBlZFRyYWl0c0FyZywgdHlwZW5hbWUgSGFzaFRhYmxlVHJhaXRzPiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlU
cmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPj4gewogICAgIHR5cGVk
ZWYgSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBw
ZWRUcmFpdHNBcmcsIEhhc2hUYWJsZVRyYWl0cz4gSGFzaE1hcFR5cGU7CiAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBIYXNoTWFwVHlwZSYgaGFzaE1hcCkKICAgICB7CiAgICAgICAgIGVuY29kZXIg
PDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGhhc2hNYXAuc2l6ZSgpKTsKQEAgLTUwNSw2ICs1MTks
NyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5h
bWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogICAgICAgICAgICAgZW5jb2RlciA8PCAqaXQ7
CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxIYXNoTWFwVHlwZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewog
ICAgICAgICB1aW50MzJfdCBoYXNoTWFwU2l6ZTsKQEAgLTUzNSw2ICs1NTAsNyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywg
dHlwZW5hbWUgS2V5VHJhaQogICAgICAgICByZXR1cm4gaGFzaE1hcDsKICAgICB9CiAKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSGFzaE1hcFR5cGUmIGhhc2hNYXApCiAgICAg
ewogICAgICAgICBzdGQ6Om9wdGlvbmFsPEhhc2hNYXBUeXBlPiB0ZW1wSGFzaE1hcDsKQEAgLTU0
OSw2ICs1NjUsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogdGVtcGxhdGU8dHlwZW5hbWUg
S2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1l
IEhhc2hUYWJsZVRyYWl0cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaFNldDxLZXlBcmcsIEhh
c2hBcmcsIEtleVRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPj4gewogICAgIHR5cGVkZWYgSGFz
aFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPiBIYXNo
U2V0VHlwZTsKIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEhhc2hTZXRUeXBlJiBoYXNoU2V0KQog
ICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaGFzaFNldC5z
aXplKCkpOwpAQCAtNTU2LDYgKzU3Myw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlw
ZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNoCiAgICAg
ICAgICAgICBlbmNvZGVyIDw8ICppdDsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBE
ZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgSGFzaFNldFR5cGUmIGhhc2hTZXQpCiAgICAgewogICAgICAgICBzdGQ6Om9w
dGlvbmFsPEhhc2hTZXRUeXBlPiB0ZW1wSGFzaFNldDsKQEAgLTU2Nyw2ICs1ODUsNyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0
c0FyZywgdHlwZW5hbWUgSGFzaAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEhhc2hT
ZXRUeXBlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHVpbnQ2NF90
IGhhc2hTZXRTaXplOwpAQCAtNTk2LDYgKzYxNSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNo
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtl
eVRyYWl0c0FyZz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaENvdW50ZWRTZXQ8S2V5QXJnLCBI
YXNoQXJnLCBLZXlUcmFpdHNBcmc+PiB7CiAgICAgdHlwZWRlZiBIYXNoQ291bnRlZFNldDxLZXlB
cmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZz4gSGFzaENvdW50ZWRTZXRUeXBlOwogICAgIAorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENvdW50ZWRTZXQpCiAg
ICAgewogICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihoYXNoQ291bnRl
ZFNldC5zaXplKCkpOwpAQCAtNjA2LDYgKzYyNiw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnPiBzdHJ1Y3QgQXJndW1l
CiAgICAgICAgIH0KICAgICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4K
ICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENvdW50ZWRTZXQpCiAgICAgewogICAgICAgICB1
aW50NjRfdCBoYXNoQ291bnRlZFNldFNpemU7CkBAIC02MzcsNiArNjU4LDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmc+
IHN0cnVjdCBBcmd1bWUKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5h
bWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWYWx1ZVR5cGUsIEVy
cm9yVHlwZT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBFeHBlY3RlZDxWYWx1ZVR5cGUsIEVy
cm9yVHlwZT4mIGV4cGVjdGVkKQogICAgIHsKICAgICAgICAgaWYgKCFleHBlY3RlZC5oYXNfdmFs
dWUoKSkgewpAQCAtNjQ4LDYgKzY3MCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwg
dHlwZW5hbWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWCiAgICAg
ICAgIGVuY29kZXIgPDwgZXhwZWN0ZWQudmFsdWUoKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4cGVjdGVkPFZhbHVl
VHlwZSwgRXJyb3JUeXBlPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAg
ICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGhhc1ZhbHVlOwpAQCAtNzA0LDYgKzcyNyw3IEBAIHRlbXBs
YXRlPHR5cGVuYW1lIEVycm9yVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8RXhwZWN0ZWQ8dm9p
ZCwgRXJyb3JUeXBlPj4gewogCiB0ZW1wbGF0ZTxzaXplX3QgaW5kZXgsIHR5cGVuYW1lLi4uIFR5
cGVzPgogc3RydWN0IFZhcmlhbnRDb2RlciB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rl
cj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV1RGOjpW
YXJpYW50PFR5cGVzLi4uPiYgdmFyaWFudCwgdW5zaWduZWQgaSkKICAgICB7CiAgICAgICAgIGlm
IChpID09IGluZGV4KSB7CkBAIC03MTMsNiArNzM3LDcgQEAgc3RydWN0IFZhcmlhbnRDb2RlciB7
CiAgICAgICAgIFZhcmlhbnRDb2RlcjxpbmRleCAtIDEsIFR5cGVzLi4uPjo6ZW5jb2RlKGVuY29k
ZXIsIHZhcmlhbnQsIGkpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNv
ZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgaWYgKGkg
PT0gaW5kZXgpIHsKQEAgLTcyOCwxMiArNzUzLDE0IEBAIHN0cnVjdCBWYXJpYW50Q29kZXIgewog
CiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4KIHN0cnVjdCBWYXJpYW50Q29kZXI8MCwgVHlw
ZXMuLi4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+JiB2
YXJpYW50LCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChpLCAhaSk7
CiAgICAgICAgIGVuY29kZXIgPDwgV1RGOjpnZXQ8MD4odmFyaWFudCk7CiAgICAgfQogICAgIAor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIsIHVuc2lnbmVk
IGkpCiAgICAgewogICAgICAgICBBU1NFUlRfVU5VU0VEKGksICFpKTsKQEAgLTc0Niw2ICs3NzMs
NyBAQCBzdHJ1Y3QgVmFyaWFudENvZGVyPDAsIFR5cGVzLi4uPiB7CiB9OwogCiB0ZW1wbGF0ZTx0
eXBlbmFtZS4uLiBUeXBlcz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpWYXJpYW50PFR5cGVz
Li4uPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6VmFyaWFudDxUeXBlcy4uLj4mIHZh
cmlhbnQpCiAgICAgewogICAgICAgICB1bnNpZ25lZCBpID0gdmFyaWFudC5pbmRleCgpOwpAQCAt
NzUzLDYgKzc4MSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+PiB7CiAgICAgICAgIFZhcmlhbnRDb2Rlcjxz
aXplb2YuLi4oVHlwZXMpIC0gMSwgVHlwZXMuLi4+OjplbmNvZGUoZW5jb2RlciwgdmFyaWFudCwg
aSk7CiAgICAgfQogICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBpOwpAQCAt
ODA0LDggKzgzMywxNCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rv
a2VuX3Q+IHsKICNlbmRpZgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPE1vbm9z
dGF0ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgTW9ub3N0YXRl
Jik7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBkZWNvZGUoRGVjb2RlciYp
OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CisgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBNb25vc3RhdGUmKSB7IH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1l
IERlY29kZXI+CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBkZWNvZGUoRGVj
b2RlciYpCisgICAgeworICAgICAgICByZXR1cm4gTW9ub3N0YXRlIHsgfTsKKyAgICB9CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwCmluZGV4IGVlZWU2YWViNjFhMzM4YWY4ZDNjYWVmYmY1MjQ5MTk0MGFm
NzA1NWIuLjg2N2Y2ZDU0OGI5ZTI5ODRlYzcxZjMzZGEwMjg5ODcyMzk3MWNkMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMTI1LDYg
KzEyNSw0MiBAQCBuYW1lc3BhY2UgSVBDIHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKIAorI2RlZmluZSBERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NP
REVSX0ZPUl9TT1VSQ0UoVHlwZSkgXAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IFwK
KyAgICB2b2lkIEFyZ3VtZW50Q29kZXI8VHlwZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBUeXBlJiB2YWx1ZSkgeyBTaW1wbGVBcmd1bWVudENvZGVyPFR5cGU+OjplbmNvZGUoZW5j
b2RlciwgdmFsdWUpOyB9IFwKKyAgICBib29sIEFyZ3VtZW50Q29kZXI8VHlwZT46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBUeXBlJiB2YWx1ZSkgeyByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2Rl
cjxUeXBlPjo6ZGVjb2RlKGRlY29kZXIsIHZhbHVlKTsgfSBcCisgICAgc3RkOjpvcHRpb25hbDxU
eXBlPiBBcmd1bWVudENvZGVyPFR5cGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikgXAorICAg
IHsgXAorICAgICAgICBUeXBlIHZhbHVlOyBcCisgICAgICAgIGlmICghZGVjb2RlKGRlY29kZXIs
IHZhbHVlKSkgXAorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgXAorICAgICAgICBy
ZXR1cm4gdmFsdWU7IFwKKyAgICB9IFwKKyAgICB0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8
VHlwZT46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVyJiwgY29uc3QgVHlwZSYpOyBcCisgICAgdGVt
cGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFR5cGU+OjplbmNvZGU8U3RyZWFtQ29ubmVjdGlvbkVu
Y29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwgY29uc3QgVHlwZSYpOworCitERUZJTkVf
U0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoQWZmaW5lVHJhbnNmb3JtKQorREVGSU5F
X1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0Qm94RXh0ZW50KQorREVGSU5F
X1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0UG9pbnQpCitERUZJTkVfU0lN
UExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoRmxvYXRQb2ludDNEKQorREVGSU5FX1NJTVBM
RV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0UmVjdCkKK0RFRklORV9TSU1QTEVfQVJH
VU1FTlRfQ09ERVJfRk9SX1NPVVJDRShGbG9hdFJvdW5kZWRSZWN0KQorREVGSU5FX1NJTVBMRV9B
UkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1F
TlRfQ09ERVJfRk9SX1NPVVJDRShJbnRQb2ludCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09E
RVJfRk9SX1NPVVJDRShJbnRSZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
U09VUkNFKEludFNpemUpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0Uo
TGF5b3V0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoTGF5
b3V0U2l6ZSkKKworI2lmIFVTRShDRykKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9S
X1NPVVJDRShDR1JlY3QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0Uo
Q0dTaXplKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKENHUG9pbnQp
CitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoQ0dBZmZpbmVUcmFuc2Zv
cm0pCisjZW5kaWYKKworI3VuZGVmIERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX1NP
VVJDRQorCiBzdGF0aWMgdm9pZCBlbmNvZGVTaGFyZWRCdWZmZXIoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgU2hhcmVkQnVmZmVyKiBidWZmZXIpCiB7CiAgICAgYm9vbCBpc051bGwgPSAhYnVmZmVy
OwpAQCAtMjMxLDE2ICsyNjcsNiBAQCBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlVHlwZXNBbmREYXRhKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxTdHJpbgogICAgIHJldHVy
biB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgYWZmaW5lVHJhbnNmb3Jt
KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2RlKGVu
Y29kZXIsIGFmZmluZVRyYW5zZm9ybSk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxBZmZpbmVU
cmFuc2Zvcm0+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgQWZmaW5lVHJhbnNmb3JtJiBhZmZp
bmVUcmFuc2Zvcm0pCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJh
bnNmb3JtPjo6ZGVjb2RlKGRlY29kZXIsIGFmZmluZVRyYW5zZm9ybSk7Ci19Ci0KIHZvaWQgQXJn
dW1lbnRDb2RlcjxDYWNoZVF1ZXJ5T3B0aW9ucz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBDYWNoZVF1ZXJ5T3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBlbmNvZGVyIDw8IG9wdGlv
bnMuaWdub3JlU2VhcmNoOwpAQCAtNDI1LDYgKzQ1MSw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxF
dmVudFRyYWNraW5nUmVnaW9ucz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBFdmVudFRyYWNr
aW5nCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiB2
b2lkIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybWF0aW9uTWF0cml4
KQogewogICAgIGVuY29kZXIgPDwgdHJhbnNmb3JtYXRpb25NYXRyaXgubTExKCk7CkBAIC01MDYs
NiArNTMzLDkgQEAgYm9vbCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFRyYW5zZm9ybWF0aW8KICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAordGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5j
b2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwordGVt
cGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5jb2RlPFN0
cmVhbUNvbm5lY3Rpb25FbmNvZGVyPihTdHJlYW1Db25uZWN0aW9uRW5jb2RlciYsIGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4Jik7CisKIHZvaWQgQXJndW1lbnRDb2RlcjxMaW5lYXJUaW1pbmdG
dW5jdGlvbj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMaW5lYXJUaW1pbmdGdW5j
dGlvbiYgdGltaW5nRnVuY3Rpb24pCiB7CiAgICAgZW5jb2RlciA8PCB0aW1pbmdGdW5jdGlvbi50
eXBlKCk7CkBAIC02MTcsNjUgKzY0Nyw2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxTcHJpbmdUaW1p
bmdGdW5jdGlvbj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTcHJpbmdUaW1pbmdGCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UG9pbnQmIGZsb2F0UG9pbnQpCi17Ci0gICAg
U2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0UG9p
bnQpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBGbG9hdFBvaW50JiBmbG9hdFBvaW50KQotewotICAgIHJldHVybiBTaW1wbGVB
cmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRQb2ludCk7Ci19
Ci0KLXN0ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4gQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgRmxvYXRQb2ludCBmbG9hdFBvaW50Owot
ICAgIGlmICghU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2RlKGRlY29kZXIs
IGZsb2F0UG9pbnQpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBm
bG9hdFBvaW50OwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UG9pbnQzRCYgZmxvYXRQb2ludCkKLXsKLSAg
ICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmVuY29kZShlbmNvZGVyLCBmbG9h
dFBvaW50KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFBvaW50M0QmIGZsb2F0UG9pbnQpCi17Ci0gICAgcmV0dXJu
IFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0
UG9pbnQpOwotfQotCi0KLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRSZWN0JiBmbG9hdFJlY3QpCi17Ci0gICAgU2ltcGxl
QXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRSZWN0KTsKLX0K
LQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBGbG9hdFJlY3QmIGZsb2F0UmVjdCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2Rl
cjxGbG9hdFJlY3Q+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRSZWN0KTsKLX0KLQotc3RkOjpvcHRp
b25hbDxGbG9hdFJlY3Q+IEFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCi17Ci0gICAgRmxvYXRSZWN0IGZsb2F0UmVjdDsKLSAgICBpZiAoIVNpbXBsZUFy
Z3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0UmVjdCkpCi0gICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIGZsb2F0UmVjdDsKLX0KLQotCi12
b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgRmxvYXRCb3hFeHRlbnQmIGZsb2F0Qm94RXh0ZW50KQotewotICAgIFNpbXBsZUFy
Z3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRCb3hFeHRl
bnQpOwotfQotICAgIAotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIEZsb2F0Qm94RXh0ZW50JiBmbG9hdEJveEV4dGVudCkKLXsKLSAg
ICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZShkZWNv
ZGVyLCBmbG9hdEJveEV4dGVudCk7Ci19Ci0KLQogdm9pZCBBcmd1bWVudENvZGVyPFJlY3RFZGdl
czxib29sPj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWN0RWRnZXM8Ym9vbD4m
IGJveEVkZ2VzKQogewogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8UmVjdEVkZ2VzPGJvb2w+Pjo6
ZW5jb2RlKGVuY29kZXIsIGJveEVkZ2VzKTsKQEAgLTY4NiwyOCArNjU3LDYgQEAgYm9vbCBBcmd1
bWVudENvZGVyPFJlY3RFZGdlczxib29sPj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZWN0
RWRnZXM8Ym9vbD4mIGIKICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxSZWN0RWRnZXM8
Ym9vbD4+OjpkZWNvZGUoZGVjb2RlciwgYm94RWRnZXMpOwogfQogCi0KLXZvaWQgQXJndW1lbnRD
b2RlcjxGbG9hdFNpemU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRTaXpl
JiBmbG9hdFNpemUpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjplbmNv
ZGUoZW5jb2RlciwgZmxvYXRTaXplKTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0U2l6
ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFNpemUmIGZsb2F0U2l6ZSkKLXsKLSAg
ICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjpkZWNvZGUoZGVjb2Rlciwg
ZmxvYXRTaXplKTsKLX0KLQotCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByb3VuZGVk
UmVjdCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjplbmNv
ZGUoZW5jb2Rlciwgcm91bmRlZFJlY3QpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRS
b3VuZGVkUmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFJvdW5kZWRSZWN0JiBy
b3VuZGVkUmVjdCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFJvdW5k
ZWRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIHJvdW5kZWRSZWN0KTsKLX0KLQogI2lmIEVOQUJMRShN
RVRBX1ZJRVdQT1JUKQogdm9pZCBBcmd1bWVudENvZGVyPFZpZXdwb3J0QXJndW1lbnRzPjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJiB2aWV3cG9ydEFy
Z3VtZW50cykKIHsKQEAgLTczOSw4NyArNjg4LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPFZpZXdw
b3J0QXR0cmlidXRlcz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBWaWV3cG9ydEF0dHJpYnUK
ICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxWaWV3cG9ydEF0dHJpYnV0ZXM+OjpkZWNv
ZGUoZGVjb2Rlciwgdmlld3BvcnRBdHRyaWJ1dGVzKTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVy
PEludFBvaW50Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEludFBvaW50JiBpbnRQ
b2ludCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZW5jb2RlKGVuY29k
ZXIsIGludFBvaW50KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIEludFBvaW50JiBpbnRQb2ludCkKLXsKLSAgICByZXR1cm4gU2lt
cGxlQXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZShkZWNvZGVyLCBpbnRQb2ludCk7Ci19
Ci0KLXN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+IEFyZ3VtZW50Q29kZXI8SW50UG9p
bnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBJbnRQb2ludCBpbnRQb2ludDsK
LSAgICBpZiAoIVNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoZGVjb2Rlciwg
aW50UG9pbnQpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBpbnRQ
b2ludDsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPEludFJlY3Q+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgSW50UmVjdCYgaW50UmVjdCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENv
ZGVyPEludFJlY3Q+OjplbmNvZGUoZW5jb2RlciwgaW50UmVjdCk7Ci19Ci0KLWJvb2wgQXJndW1l
bnRDb2RlcjxJbnRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEludFJlY3QmIGludFJl
Y3QpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZShk
ZWNvZGVyLCBpbnRSZWN0KTsKLX0KLQotc3RkOjpvcHRpb25hbDxJbnRSZWN0PiBBcmd1bWVudENv
ZGVyPEludFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBJbnRSZWN0IHJl
Y3Q7Ci0gICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgcmVjdCkpCi0gICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7Ci0gICAgcmV0dXJuIHJlY3Q7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIEVuY29k
ZXI+Ci12b2lkIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBJbnRTaXplJiBpbnRTaXplKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50
U2l6ZT46OmVuY29kZShlbmNvZGVyLCBpbnRTaXplKTsKLX0KLQotdGVtcGxhdGUKLXZvaWQgQXJn
dW1lbnRDb2RlcjxJbnRTaXplPjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBJbnRT
aXplJik7Ci10ZW1wbGF0ZQotdm9pZCBBcmd1bWVudENvZGVyPEludFNpemU+OjplbmNvZGU8U3Ry
ZWFtQ29ubmVjdGlvbkVuY29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwgY29uc3QgSW50
U2l6ZSYpOwotCi1ib29sIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBJbnRTaXplJiBpbnRTaXplKQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENv
ZGVyPEludFNpemU+OjpkZWNvZGUoZGVjb2RlciwgaW50U2l6ZSk7Ci19Ci0KLXN0ZDo6b3B0aW9u
YWw8SW50U2l6ZT4gQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCi17Ci0gICAgSW50U2l6ZSBpbnRTaXplOwotICAgIGlmICghU2ltcGxlQXJndW1lbnRDb2Rl
cjxJbnRTaXplPjo6ZGVjb2RlKGRlY29kZXIsIGludFNpemUpKQotICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwotICAgIHJldHVybiBpbnRTaXplOwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8
TGF5b3V0U2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMYXlvdXRTaXplJiBs
YXlvdXRTaXplKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmVuY29k
ZShlbmNvZGVyLCBsYXlvdXRTaXplKTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPExheW91dFNp
emU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTGF5b3V0U2l6ZSYgbGF5b3V0U2l6ZSkKLXsK
LSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxMYXlvdXRTaXplPjo6ZGVjb2RlKGRlY29k
ZXIsIGxheW91dFNpemUpOwotfQotCi0KLXZvaWQgQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMYXlvdXRQb2ludCYgbGF5b3V0UG9pbnQp
Ci17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46OmVuY29kZShlbmNvZGVy
LCBsYXlvdXRQb2ludCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCBMYXlvdXRQb2ludCYgbGF5b3V0UG9pbnQpCi17Ci0gICAg
cmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+OjpkZWNvZGUoZGVjb2Rlciwg
bGF5b3V0UG9pbnQpOwotfQotCiB2b2lkIEFyZ3VtZW50Q29kZXI8UmVjZW50U2VhcmNoPjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlY2VudFNlYXJjaCYgcmVjZW50U2VhcmNoKQog
ewogICAgIGVuY29kZXIgPDwgcmVjZW50U2VhcmNoLnN0cmluZyA8PCByZWNlbnRTZWFyY2gudGlt
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXgg
MzUxMzhmNWRlMzJkN2UxZjFmZDE1NGMyNjFmOGU3OTJlNDczNzcxMC4uN2U4ZmVjOWZiM2Y2Mjg1
YWU3ZTYwYjNmMDQ4NGExZWY5OWM3NmU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTI2LDEyICsyNiwyNCBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQWZmaW5lVHJh
bnNmb3JtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRvcGxheUV2ZW50Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Db2xvclNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvRmxvYXRQb2ludDNELmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0Zsb2F0Um91bmRlZFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zs
b2F0U2l6ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvSW5kZXhlZERCLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnB1dE1vZGUuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0ludFBvaW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9MYXlv
dXRQb2ludC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGF5b3V0U2l6ZS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvTGVuZ3RoQm94Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlbGVjdGlvbk9wdGlv
bi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmF0aXZlSW1hZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L05ldHdvcmtMb2FkTWV0cmljcy5oPgpAQCAtOTYsNyArMTA4LDYgQEAgdHlwZWRlZiBzdHJ1Y3Qg
X19DVkJ1ZmZlciogQ1ZQaXhlbEJ1ZmZlclJlZjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgQWJzb2x1dGVQb3NpdGlvbkNvbnN0cmFpbnRzOwotY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwog
Y2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7CiBjbGFzcyBCbG9iUGFydDsKIGNsYXNzIENl
cnRpZmljYXRlSW5mbzsKQEAgLTEwOSwyMSArMTIwLDExIEBAIGNsYXNzIERyYWdEYXRhOwogY2xh
c3MgRmlsZTsKIGNsYXNzIEZpbHRlck9wZXJhdGlvbjsKIGNsYXNzIEZpbHRlck9wZXJhdGlvbnM7
Ci1jbGFzcyBGbG9hdFBvaW50OwotY2xhc3MgRmxvYXRQb2ludDNEOwotY2xhc3MgRmxvYXRSZWN0
OwotY2xhc3MgRmxvYXRSb3VuZGVkUmVjdDsKLWNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIEZpeGVk
UG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzOwogY2xhc3MgRm9udDsKIGNsYXNzIEZvbnRQbGF0
Zm9ybURhdGE7CiBjbGFzcyBIVFRQSGVhZGVyTWFwOwotY2xhc3MgSW50UG9pbnQ7Ci1jbGFzcyBJ
bnRSZWN0OwotY2xhc3MgSW50U2l6ZTsKIGNsYXNzIEtleWZyYW1lVmFsdWVMaXN0OwotY2xhc3Mg
TGF5b3V0U2l6ZTsKLWNsYXNzIExheW91dFBvaW50OwogY2xhc3MgTGluZWFyVGltaW5nRnVuY3Rp
b247CiBjbGFzcyBOb3RpZmljYXRpb247CiBjbGFzcyBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTsKQEAg
LTE3NCw5ICsxNzUsNyBAQCBzdHJ1Y3QgVG91Y2hBY3Rpb25EYXRhOwogc3RydWN0IFZlbG9jaXR5
RGF0YTsKIHN0cnVjdCBWaWV3cG9ydEF0dHJpYnV0ZXM7CiBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7
Ci0gICAgCi10ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgUmVjdEVkZ2VzOwotdXNpbmcgRmxvYXRC
b3hFeHRlbnQgPSBSZWN0RWRnZXM8ZmxvYXQ+OworCiB1c2luZyBJREJLZXlQYXRoID0gVmFyaWFu
dDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+PjsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMjI3
LDEwICsyMjYsMzQgQEAgc3RydWN0IFJlY29yZDsKIAogbmFtZXNwYWNlIElQQyB7CiAKLXRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtPiB7Ci0g
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFu
c2Zvcm0mKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29k
ZXImLCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mKTsKLX07CisjZGVmaW5lIERFRklORV9TSU1Q
TEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihUeXBlKSBcCisgICAgdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxUeXBlPiB7IFwKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5j
b2Rlcj4gc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBUeXBlJik7IFwKKyAgICAg
ICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgVHlwZSYp
OyBcCisgICAgICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFR5cGU+IGRlY29kZShEZWNvZGVyJik7
IFwKKyAgICB9OworCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoV2Vi
Q29yZTo6QWZmaW5lVHJhbnNmb3JtKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
SEVBREVSKFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9D
T0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VN
RU5UX0NPREVSX0ZPUl9IRUFERVIoV2ViQ29yZTo6RmxvYXRQb2ludDNEKQorREVGSU5FX1NJTVBM
RV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0UmVjdCkKK0RFRklORV9T
SU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0
KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0
U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3JlOjpJ
bnRQb2ludCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3Jl
OjpJbnRSZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNv
cmU6OkludFNpemUpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoV2Vi
Q29yZTo6TGF5b3V0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFE
RVIoV2ViQ29yZTo6TGF5b3V0U2l6ZSkKKworI2lmIFVTRShDRykKK0RFRklORV9TSU1QTEVfQVJH
VU1FTlRfQ09ERVJfRk9SX0hFQURFUihDR1JlY3QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NP
REVSX0ZPUl9IRUFERVIoQ0dTaXplKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
SEVBREVSKENHUG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIo
Q0dBZmZpbmVUcmFuc2Zvcm0pCisjZW5kaWYKKworI3VuZGVmIERFRklORV9TSU1QTEVfQVJHVU1F
TlRfQ09ERVJfRk9SX0hFQURFUgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmc+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmcmKTsKQEAgLTI2OCw2ICsyOTEsNyBA
QCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkV2ZW50VHJhY2tpbmdS
ZWdpb25zPiB7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlRyYW5zZm9ybWF0aW9uTWF0cml4PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4K
ICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9y
bWF0aW9uTWF0cml4Jik7CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29k
ZShEZWNvZGVyJiwgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKIH07CkBAIC0yOTks
NDMgKzMyMywxMSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNl
cnRpZmljYXRlSW5mbz4gewogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNlcnRp
ZmljYXRlSW5mbz4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwotICAgIHN0YXRpYyBXQVJO
X1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQm
KTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBkZWNvZGUo
RGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpGbG9hdFBvaW50M0Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotfTsKLQotdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFJlY3Q+IHsKLSAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwot
ICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNv
cmU6OkZsb2F0UmVjdCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0
UmVjdD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0gICAgCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYpOwotICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0
Qm94RXh0ZW50Jik7Ci19OwotCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OlJlY3RFZGdlczxib29sPj4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwg
Y29uc3QgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+Jik7CiAgICAgc3RhdGljIFdBUk5fVU5VU0VE
X1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+Jik7
CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0U2l6
ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNv
ZGVyJiwgV2ViQ29yZTo6RmxvYXRTaXplJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q+IHsKLSAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3QmKTsKLSAgICBz
dGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpG
bG9hdFJvdW5kZWRSZWN0Jik7Ci19OwotCiAjaWYgRU5BQkxFKE1FVEFfVklFV1BPUlQpCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiB7
CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpWaWV3cG9y
dEFyZ3VtZW50cyYpOwpAQCAtMzUwLDM1ICszNDIsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcz4gewogICAgIHN0YXRpYyBXQVJO
X1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlZpZXdwb3J0QXR0
cmlidXRlcyYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpJbnRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlKERlY29kZXImLCBXZWJDb3JlOjpJbnRQb2ludCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OkludFBvaW50PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRSZWN0PiB7Ci0gICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0gICAgc3RhdGlj
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6SW50UmVj
dCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFJlY3Q+IGRlY29kZShE
ZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OkludFNpemU+IHsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgotICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwotICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkludFNp
emUmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRTaXplPiBkZWNvZGUo
RGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpMYXlvdXRTaXplPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBX
ZWJDb3JlOjpMYXlvdXRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29s
IGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6TGF5b3V0U2l6ZSYpOwotfTsKLQotdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMYXlvdXRQb2ludD4gewotICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmKTsKLSAg
ICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3Jl
OjpMYXlvdXRQb2ludCYpOwotfTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpMZW5ndGg+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6Okxlbmd0aCYpOwogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBk
ZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6Okxlbmd0aCYpOwpAQCAtNDU3LDYgKzQyMCw3IEBAIHRl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RHJhZ0RhdGE+IHsKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V1RGOjpNYWNoU2VuZFJpZ2h0PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmKTsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5j
b2RlciYsIFdURjo6TWFjaFNlbmRSaWdodCYmKTsKQEAgLTQ2OCwyNiArNDMyLDcgQEAgdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IHsKICAg
ICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IGRlY29kZShE
ZWNvZGVyJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHUG9pbnQ+
IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIENHUG9pbnQpOwotICAgIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPENHUG9pbnQ+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHU2l6ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgQ0dTaXplKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDR1NpemU+IGRl
Y29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENH
UmVjdD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dSZWN0KTsKLSAgICBz
dGF0aWMgc3RkOjpvcHRpb25hbDxDR1JlY3Q+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPiB7Ci0gICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBDR0FmZmluZVRyYW5zZm9ybSk7Ci0gICAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8Q0dBZmZpbmVUcmFuc2Zvcm0+IGRlY29kZShEZWNvZGVyJik7Ci19Owot
I2VuZGlmCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZWxlY3Rpb25H
ZW9tZXRyeT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVB
cmd1bWVudENvZGVyc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJn
dW1lbnRDb2RlcnNNYWMubW0KaW5kZXggOGU0ZDVmMTMxZDgyZjFkZWZlMjZkMTVhYmZlZTA2NGEz
Yjk4OTBmOC4uNmE0MzQwNjcxNDYzZDk0NzA3MTkyMzEwYjFmN2JhMGJkMDNhNzZmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFj
Lm1tCkBAIC0zMjEsNzkgKzMyMSw2IEBAIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6S2V5cHJlc3ND
b21tYW5kPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD46CiAgICAgcmV0
dXJuIFdURk1vdmUoY29tbWFuZCk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxDR1JlY3Q+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0dSZWN0IHJlY3QpCi17Ci0gICAgZW5jb2RlciA8PCBy
ZWN0Lm9yaWdpbiA8PCByZWN0LnNpemU7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8Q0dSZWN0PiBBcmd1
bWVudENvZGVyPENHUmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIHN0ZDo6
b3B0aW9uYWw8Q0dQb2ludD4gb3JpZ2luOwotICAgIGRlY29kZXIgPj4gb3JpZ2luOwotICAgIGlm
ICghb3JpZ2luKQotICAgICAgICByZXR1cm4geyB9OwotCi0gICAgc3RkOjpvcHRpb25hbDxDR1Np
emU+IHNpemU7Ci0gICAgZGVjb2RlciA+PiBzaXplOwotICAgIGlmICghc2l6ZSkKLSAgICAgICAg
cmV0dXJuIHsgfTsKLQotICAgIHJldHVybiBDR1JlY3QgeyAqb3JpZ2luLCAqc2l6ZSB9OwotfQot
Ci12b2lkIEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENH
U2l6ZSBzaXplKQotewotICAgIGVuY29kZXIgPDwgc2l6ZS53aWR0aCA8PCBzaXplLmhlaWdodDsK
LX0KLQotc3RkOjpvcHRpb25hbDxDR1NpemU+IEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgQ0dTaXplIHNpemU7Ci0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZShzaXplLndpZHRoKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHNpemUuaGVpZ2h0KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4g
c2l6ZTsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPENHUG9pbnQ+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgQ0dQb2ludCBwb2ludCkKLXsKLSAgICBlbmNvZGVyIDw8IHBvaW50LnggPDwgcG9p
bnQueTsKLX0KLQotc3RkOjpvcHRpb25hbDxDR1BvaW50PiBBcmd1bWVudENvZGVyPENHUG9pbnQ+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBDR1BvaW50IHBvaW50OwotICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocG9pbnQueCkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwb2ludC55KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1
cm4gcG9pbnQ7Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxDR0FmZmluZVRyYW5zZm9ybT46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0pCi17Ci0g
ICAgZW5jb2RlciA8PCB0cmFuc2Zvcm0uYSA8PCB0cmFuc2Zvcm0uYiA8PCB0cmFuc2Zvcm0uYyA8
PCB0cmFuc2Zvcm0uZCA8PCB0cmFuc2Zvcm0udHggPDwgdHJhbnNmb3JtLnR5OwotfQotCi1zdGQ6
Om9wdGlvbmFsPENHQWZmaW5lVHJhbnNmb3JtPiBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNm
b3JtPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgQ0dBZmZpbmVUcmFuc2Zvcm0g
dHJhbnNmb3JtOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmEpKQotICAgICAg
ICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmIpKQotICAg
ICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmMpKQot
ICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmQp
KQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3Jt
LnR4KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5z
Zm9ybS50eSkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgcmV0dXJuIHRyYW5zZm9ybTsKLX0K
LQogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKIAogdm9pZCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcj46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIGNvbnRlbnRG
aWx0ZXJVbmJsb2NrSGFuZGxlcikK
</data>
<flag name="commit-queue"
          id="464190"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440309</attachid>
            <date>2021-10-05 17:27:31 -0700</date>
            <delta_ts>2021-10-06 07:56:43 -0700</delta_ts>
            <desc>Try to fix the WPE build again? (4)</desc>
            <filename>bug-230714-20211005172730.patch</filename>
            <type>text/plain</type>
            <size>37071</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcwMTIxY2IyMGJiMWM2YThl
MDhkZjNkZGVjMjNjNzVlZWMwMmIwODIuLmU0ZjAyMDQ2MmFjZjdjODc4ZjZhMmFmNDE2YTMwYzQ3
OTMwMzkxYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzEgQEAKKzIwMjEtMTAtMDUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIFJlZmFj
dG9yIHNvbWUgSVBDIGFyZ3VtZW50IGVuY29kZXIgbG9naWMgdG8gd29yayB3aXRoIFN0cmVhbUNv
bm5lY3Rpb25FbmNvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA3MTQKKyAgICAgICAgcmRhcjovLzgzNDc3NTkxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byB1c2Ug
YElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXJgIHRvIGVuY29kZSBkaXNwbGF5IGxpc3QgaXRl
bXMgKGFuZCB0aGVpciBtZW1iZXJzKSBpbiBhbgorICAgICAgICBJUEMgc3RyZWFtLiBUaGlzIHBh
dGNoIGNvbXByaXNlcyB0d28gbWFpbiBzZXRzIG9mIGNoYW5nZXMgaW4gYEFyZ3VtZW50Q29kZXJz
YCwgYW5kIGBXZWJDb3JlQXJndW1lbnRDb2RlcnNgLiBTZWUKKyAgICAgICAgYmVsb3cgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmRlY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNb25vc3RhdGU+OjpkZWNvZGUpOiBEZWxldGVk
LgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2RlKToKKworICAgICAgICBNYW55IG9mIHRoZXNlIGBl
bmNvZGUoKWAgbWV0aG9kcyBhcmUgY3VycmVudGx5IG5vbi10ZW1wbGF0ZWQsIHdoaWNoIG1lYW5z
IHRoYXQgRW5jb2RlciBhbmQgRGVjb2RlciB1c2VkIGhlcmUKKyAgICAgICAgcmVmZXIgc29sZWx5
IHRvIElQQzo6RW5jb2RlciBhbmQgSVBDOjpEZWNvZGVyIChyZXNwZWN0aXZlbHkpIGluc3RlYWQg
b2Ygb3RoZXIgdHlwZXMgb2YgZW5jb2RlcnMgKG5hbWVseSwKKyAgICAgICAgU3RyZWFtQ29ubmVj
dGlvbkVuY29kZXIpLiBNYWtlIHRoZXNlIHVzZSB0ZW1wbGF0ZWQgYGVuY29kZWAgbWV0aG9kcyBp
bnRlYWQsIHNvIHRoYXQgdGhleSB3b3JrIHdpdGggZ2VuZXJpYworICAgICAgICBlbmNvZGVycy4K
KworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmVuY29kZSk6IERlbGV0ZWQuCisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2RlKTog
RGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQz
RD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRS
ZWN0Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9h
dFJlY3Q+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZs
b2F0Qm94RXh0ZW50Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjplbmNvZGUpOiBEZWxldGVkLgorICAg
ICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjpkZWNvZGUpOiBEZWxl
dGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZW5jb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmRlY29k
ZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPExheW91dFBvaW50
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKworICAgICAgICBUaGVzZSBXZWJDb3JlIGFyZ3VtZW50IGNv
ZGVycyBhcmUgYWxzbyBjdXJyZW50bHkgaW5jb21wYXRpYmxlIHdpdGggU3RyZWFtQ29ubmVjdGlv
bkVuY29kZXIsIHNpbmNlIHRoZXkgYXJlIG5vbi0KKyAgICAgICAgdGVtcGxhdGVkIChhbmQgdGh1
cyBvbmx5IHdvcmsgd2l0aCBJUEM6OkVuY29kZXIpLiBTaW5jZSB0aGVzZSBhcmUgYWxsIGVuY29k
YWJsZSBhcyBQT0QgdHlwZXMsIHdlIGNhbiBqdXN0IHVzZQorICAgICAgICBTaW1wbGVBcmd1bWVu
dENvZGVyIGZvciBhbGwgb2YgdGhlc2UuIFdlIGFsc28gYWRkIG5ldyBgREVGSU5FX1NJTVBMRV9B
UkdVTUVOVF9DT0RFUl9GT1JfKEhFQURFUnxTT1VSQ0UpYCBtYWNyb3MKKyAgICAgICAgdG8gbWFr
ZSB0aGlzIGNvZGUgYSBiaXQgZWFzaWVyIHRvIHJlYWQsIHdoaWNoIGFkZHMgU2ltcGxlQXJndW1l
bnRDb2RlciBmb3IgdGhlIGdpdmVuIHR5cGUsIGZvciBib3RoIHN0YW5kYXJkCisgICAgICAgIElQ
Qzo6RW5jb2RlciBhcyB3ZWxsIGFzIElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXIuCisKKyAg
ICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogU2hhcmVk
L21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW06CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8Q0dSZWN0Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxDR1JlY3Q+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPENHU2l6ZT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8Q0dTaXplPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR1BvaW50Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR1BvaW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR0FmZmluZVRyYW5zZm9ybT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+OjpkZWNvZGUpOiBEZWxldGVkLgorCiAyMDIx
LTEwLTA1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAg
IE1vdmUgRmx1c2hJZGVudGlmaWVyIG91dCBvZiB0aGUgRGlzcGxheUxpc3QgbmFtZXNwYWNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKaW5kZXggYTMy
MDU1MTg3OThiNzRkY2VkYjhhMDEzZjljOWM5ODg1YWFlNjYxNi4uZTdmMjc4MDM2MmRkMjAzNzQz
NGNhMWNiMzkwZGRlNmVmNzkxNTkzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L0FyZ3VtZW50Q29kZXJzLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlByaXZhdGVD
bGlja01lYXN1cmVtZW50RGVjb2Rlci5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVt
ZW50RW5jb2Rlci5oIgogI2luY2x1ZGUgIlN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyLmgiCisjaW5j
bHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMjE4LDYgKzIxOSw3IEBA
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIEFyZ3VtZW50Q29kZXI8U0hBMTo6RGlnZXN0Pjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFNICiB9CiAKICNpZiBIQVZFKEFVRElUX1RPS0VOKQorCiB2
b2lkIEFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBhdWRpdF90b2tlbl90JiBhdWRpdFRva2VuKQogewogICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGF1ZGl0VG9rZW4udmFsKTsgaSsrKQpAQCAtMjMy
LDE1ICsyMzQsNyBAQCBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBBcmd1bWVudENvZGVyPGF1ZGl0
X3Rva2VuX3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgYQogICAgIH0KICAgICByZXR1cm4g
dHJ1ZTsKIH0KLSNlbmRpZgotCi12b2lkIEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBNb25vc3RhdGUmKQotewotfQogCi1XQVJOX1VOVVNFRF9SRVRVUk4g
c3RkOjpvcHRpb25hbDxNb25vc3RhdGU+IEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2Rl
KERlY29kZXImKQotewotICAgIHJldHVybiBNb25vc3RhdGUgeyB9OwotfQorI2VuZGlmIC8vIEhB
VkUoQVVESVRfVE9LRU4pCiAKIH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKaW5kZXggNDc5ZGI2MGVkYzI3MTZkNTU2MDZmNjUy
ZjI0MzFhZDM2OWY2NTcwYy4uZDk3Nzg3N2M1ZmIzNjUwN2JiNjUzMjRjMDY2M2Y4NjE1NjZkNTkz
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCkBAIC0x
MDgsMTIgKzEwOCwxNCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxBcnJheVJlZmVyZW5jZTxULCBhcnJheVJlZmVyZW5jZUR5bmFtaQogfTsKIAogdGVtcGxhdGU8
dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8T3B0aW9uU2V0PFQ+PiB7CisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgT3B0aW9uU2V0PFQ+JiBvcHRpb25TZXQpCiAgICAgewogICAgICAgICBB
U1NFUlQoV1RGOjppc1ZhbGlkT3B0aW9uU2V0KG9wdGlvblNldCkpOwogICAgICAgICBlbmNvZGVy
IDw8IG9wdGlvblNldC50b1JhdygpOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERl
Y29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBPcHRpb25TZXQ8VD4mIG9wdGlvblNldCkKICAgICB7CiAgICAgICAgIHR5cGVu
YW1lIE9wdGlvblNldDxUPjo6U3RvcmFnZVR5cGUgdmFsdWU7CkBAIC0xMjUsNiArMTI3LDcgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8T3B0aW9uU2V0PFQ+PiB7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERl
Y29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8T3B0aW9uU2V0PFQ+PiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgT3B0
aW9uU2V0PFQ+OjpTdG9yYWdlVHlwZT4gdmFsdWU7CkBAIC0xODgsNiArMTkxLDcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpvcHRpb25hbDxUPj4gewog
fTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQm94PFQ+JiBib3gpCiAgICAgewogICAgICAgICBpZiAo
IWJveCkgewpAQCAtMTk5LDYgKzIwMyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBB
cmd1bWVudENvZGVyPEJveDxUPj4gewogICAgICAgICBlbmNvZGVyIDw8ICpib3guZ2V0KCk7CiAg
ICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9V
TlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEJveDxUPiYgYm94KQog
ICAgIHsKICAgICAgICAgYm9vbCBpc0VuZ2FnZWQ7CkBAIC0yMTgsNiArMjIzLDcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8Qm94PFQ+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAg
ICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gaXNFbmdhZ2VkOwpAQCAtMjM2LDExICsy
NDIsMTMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+
PiB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxzdGQ6OnBhaXI8VCwgVT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
PgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBzdGQ6OnBh
aXI8VCwgVT4mIHBhaXIpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHBhaXIuZmlyc3QgPDwg
cGFpci5zZWNvbmQ7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAg
ICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IHN0ZDo6cGFpcjxULCBVPiYgcGFpcikKICAgICB7CiAgICAgICAgIFQgZmlyc3Q7CkBAIC0yNTYs
NiArMjY0LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8c3RkOjpwYWlyPFQsIFU+PiB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
IAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8c3RkOjpwYWlyPFQsIFU+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8VD4gZmlyc3Q7CkBAIC0zNjYsMTEgKzM3NSwxMyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZS4uLiBFbGVtZW50cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjp0dXBsZTxF
bGVtZW50cy4uLj4+IHsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEtleVR5cGUsIHR5cGVuYW1l
IFZhbHVlVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpLZXlWYWx1ZVBhaXI8S2V5VHlw
ZSwgVmFsdWVUeXBlPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6S2V5VmFsdWVQYWly
PEtleVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHBh
aXIua2V5IDw8IHBhaXIudmFsdWU7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVj
b2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFdURjo6S2V5VmFsdWVQYWlyPEtleVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAg
ICAgewogICAgICAgICBLZXlUeXBlIGtleTsKQEAgLTM5OCw2ICs0MDksNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxl
ciwgc2l6ZV90IG1pbgogICAgICAgICAgICAgZW5jb2RlciA8PCB2ZWN0b3JbaV07CiAgICAgfQog
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURf
UkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxULCBpbmxpbmVDYXBh
Y2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4mIHZlY3RvcikKICAgICB7CiAgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRs
ZXIsIG1pbkNhcGFjaXR5Pj4gb3B0aW9uYWw7CkBAIC00MzcsNiArNDQ5LDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRs
ZXIsIHNpemVfdCBtaW4KICAgICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVp
bnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4odmVjdG9yLmRhdGEoKSksIHZlY3Rvci5zaXpl
KCkgKiBzaXplb2YoVCksIGFsaWdub2YoVCkpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hh
bmRsZXIsIG1pbkNhcGFjaXR5PiYgdmVjdG9yKQogICAgIHsKICAgICAgICAgdWludDY0X3QgZGVj
b2RlZFNpemU7CkBAIC00NTEsNyArNDY0LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90
IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KICAg
ICAgICAgLy8gU2luY2Ugd2Uga25vdyB0aGUgdG90YWwgc2l6ZSBvZiB0aGUgZWxlbWVudHMsIHdl
IGNhbiBhbGxvY2F0ZSB0aGUgdmVjdG9yIGluCiAgICAgICAgIC8vIG9uZSBmZWxsIHN3b29wLiBC
ZWZvcmUgYWxsb2NhdGluZyB3ZSBtdXN0IGhvd2V2ZXIgbWFrZSBzdXJlIHRoYXQgdGhlIGRlY29k
ZXIgYnVmZmVyCiAgICAgICAgIC8vIGlzIGJpZyBlbm91Z2guCi0gICAgICAgIGlmICghZGVjb2Rl
ci5idWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluPFQ+KHNpemUpKQorICAgICAgICBpZiAoIWRl
Y29kZXIudGVtcGxhdGUgYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbjxUPihzaXplKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBWZWN0b3I8VCwgaW5saW5lQ2FwYWNp
dHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+IHRlbXA7CkBAIC00OTgsNiArNTExLDcg
QEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBP
dmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlw
ZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcs
IHR5cGVuYW1lIE1hcHBlZFRyYWl0c0FyZywgdHlwZW5hbWUgSGFzaFRhYmxlVHJhaXRzPiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlU
cmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPj4gewogICAgIHR5cGVk
ZWYgSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBw
ZWRUcmFpdHNBcmcsIEhhc2hUYWJsZVRyYWl0cz4gSGFzaE1hcFR5cGU7CiAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBIYXNoTWFwVHlwZSYgaGFzaE1hcCkKICAgICB7CiAgICAgICAgIGVuY29kZXIg
PDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGhhc2hNYXAuc2l6ZSgpKTsKQEAgLTUwNSw2ICs1MTks
NyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5h
bWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogICAgICAgICAgICAgZW5jb2RlciA8PCAqaXQ7
CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxIYXNoTWFwVHlwZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewog
ICAgICAgICB1aW50MzJfdCBoYXNoTWFwU2l6ZTsKQEAgLTUzNSw2ICs1NTAsNyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywg
dHlwZW5hbWUgS2V5VHJhaQogICAgICAgICByZXR1cm4gaGFzaE1hcDsKICAgICB9CiAKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSGFzaE1hcFR5cGUmIGhhc2hNYXApCiAgICAg
ewogICAgICAgICBzdGQ6Om9wdGlvbmFsPEhhc2hNYXBUeXBlPiB0ZW1wSGFzaE1hcDsKQEAgLTU0
OSw2ICs1NjUsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogdGVtcGxhdGU8dHlwZW5hbWUg
S2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1l
IEhhc2hUYWJsZVRyYWl0cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaFNldDxLZXlBcmcsIEhh
c2hBcmcsIEtleVRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPj4gewogICAgIHR5cGVkZWYgSGFz
aFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPiBIYXNo
U2V0VHlwZTsKIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEhhc2hTZXRUeXBlJiBoYXNoU2V0KQog
ICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaGFzaFNldC5z
aXplKCkpOwpAQCAtNTU2LDYgKzU3Myw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlw
ZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNoCiAgICAg
ICAgICAgICBlbmNvZGVyIDw8ICppdDsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBE
ZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgSGFzaFNldFR5cGUmIGhhc2hTZXQpCiAgICAgewogICAgICAgICBzdGQ6Om9w
dGlvbmFsPEhhc2hTZXRUeXBlPiB0ZW1wSGFzaFNldDsKQEAgLTU2Nyw2ICs1ODUsNyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0
c0FyZywgdHlwZW5hbWUgSGFzaAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEhhc2hT
ZXRUeXBlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHVpbnQ2NF90
IGhhc2hTZXRTaXplOwpAQCAtNTk2LDYgKzYxNSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNo
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtl
eVRyYWl0c0FyZz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaENvdW50ZWRTZXQ8S2V5QXJnLCBI
YXNoQXJnLCBLZXlUcmFpdHNBcmc+PiB7CiAgICAgdHlwZWRlZiBIYXNoQ291bnRlZFNldDxLZXlB
cmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZz4gSGFzaENvdW50ZWRTZXRUeXBlOwogICAgIAorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENvdW50ZWRTZXQpCiAg
ICAgewogICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihoYXNoQ291bnRl
ZFNldC5zaXplKCkpOwpAQCAtNjA2LDYgKzYyNiw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnPiBzdHJ1Y3QgQXJndW1l
CiAgICAgICAgIH0KICAgICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4K
ICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENvdW50ZWRTZXQpCiAgICAgewogICAgICAgICB1
aW50NjRfdCBoYXNoQ291bnRlZFNldFNpemU7CkBAIC02MzcsNiArNjU4LDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmc+
IHN0cnVjdCBBcmd1bWUKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5h
bWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWYWx1ZVR5cGUsIEVy
cm9yVHlwZT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBFeHBlY3RlZDxWYWx1ZVR5cGUsIEVy
cm9yVHlwZT4mIGV4cGVjdGVkKQogICAgIHsKICAgICAgICAgaWYgKCFleHBlY3RlZC5oYXNfdmFs
dWUoKSkgewpAQCAtNjQ4LDYgKzY3MCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwg
dHlwZW5hbWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWCiAgICAg
ICAgIGVuY29kZXIgPDwgZXhwZWN0ZWQudmFsdWUoKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4cGVjdGVkPFZhbHVl
VHlwZSwgRXJyb3JUeXBlPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAg
ICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGhhc1ZhbHVlOwpAQCAtNzA0LDYgKzcyNyw3IEBAIHRlbXBs
YXRlPHR5cGVuYW1lIEVycm9yVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8RXhwZWN0ZWQ8dm9p
ZCwgRXJyb3JUeXBlPj4gewogCiB0ZW1wbGF0ZTxzaXplX3QgaW5kZXgsIHR5cGVuYW1lLi4uIFR5
cGVzPgogc3RydWN0IFZhcmlhbnRDb2RlciB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rl
cj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV1RGOjpW
YXJpYW50PFR5cGVzLi4uPiYgdmFyaWFudCwgdW5zaWduZWQgaSkKICAgICB7CiAgICAgICAgIGlm
IChpID09IGluZGV4KSB7CkBAIC03MTMsNiArNzM3LDcgQEAgc3RydWN0IFZhcmlhbnRDb2RlciB7
CiAgICAgICAgIFZhcmlhbnRDb2RlcjxpbmRleCAtIDEsIFR5cGVzLi4uPjo6ZW5jb2RlKGVuY29k
ZXIsIHZhcmlhbnQsIGkpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNv
ZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgaWYgKGkg
PT0gaW5kZXgpIHsKQEAgLTcyOCwxMiArNzUzLDE0IEBAIHN0cnVjdCBWYXJpYW50Q29kZXIgewog
CiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4KIHN0cnVjdCBWYXJpYW50Q29kZXI8MCwgVHlw
ZXMuLi4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+JiB2
YXJpYW50LCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChpLCAhaSk7
CiAgICAgICAgIGVuY29kZXIgPDwgV1RGOjpnZXQ8MD4odmFyaWFudCk7CiAgICAgfQogICAgIAor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIsIHVuc2lnbmVk
IGkpCiAgICAgewogICAgICAgICBBU1NFUlRfVU5VU0VEKGksICFpKTsKQEAgLTc0Niw2ICs3NzMs
NyBAQCBzdHJ1Y3QgVmFyaWFudENvZGVyPDAsIFR5cGVzLi4uPiB7CiB9OwogCiB0ZW1wbGF0ZTx0
eXBlbmFtZS4uLiBUeXBlcz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpWYXJpYW50PFR5cGVz
Li4uPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6VmFyaWFudDxUeXBlcy4uLj4mIHZh
cmlhbnQpCiAgICAgewogICAgICAgICB1bnNpZ25lZCBpID0gdmFyaWFudC5pbmRleCgpOwpAQCAt
NzUzLDYgKzc4MSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+PiB7CiAgICAgICAgIFZhcmlhbnRDb2Rlcjxz
aXplb2YuLi4oVHlwZXMpIC0gMSwgVHlwZXMuLi4+OjplbmNvZGUoZW5jb2RlciwgdmFyaWFudCwg
aSk7CiAgICAgfQogICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBpOwpAQCAt
ODA0LDggKzgzMywxNCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rv
a2VuX3Q+IHsKICNlbmRpZgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPE1vbm9z
dGF0ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgTW9ub3N0YXRl
Jik7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBkZWNvZGUoRGVjb2RlciYp
OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CisgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBNb25vc3RhdGUmKSB7IH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1l
IERlY29kZXI+CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBkZWNvZGUoRGVj
b2RlciYpCisgICAgeworICAgICAgICByZXR1cm4gTW9ub3N0YXRlIHsgfTsKKyAgICB9CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwCmluZGV4IGVlZWU2YWViNjFhMzM4YWY4ZDNjYWVmYmY1MjQ5MTk0MGFm
NzA1NWIuLjg2N2Y2ZDU0OGI5ZTI5ODRlYzcxZjMzZGEwMjg5ODcyMzk3MWNkMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMTI1LDYg
KzEyNSw0MiBAQCBuYW1lc3BhY2UgSVBDIHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKIAorI2RlZmluZSBERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NP
REVSX0ZPUl9TT1VSQ0UoVHlwZSkgXAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IFwK
KyAgICB2b2lkIEFyZ3VtZW50Q29kZXI8VHlwZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBUeXBlJiB2YWx1ZSkgeyBTaW1wbGVBcmd1bWVudENvZGVyPFR5cGU+OjplbmNvZGUoZW5j
b2RlciwgdmFsdWUpOyB9IFwKKyAgICBib29sIEFyZ3VtZW50Q29kZXI8VHlwZT46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBUeXBlJiB2YWx1ZSkgeyByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2Rl
cjxUeXBlPjo6ZGVjb2RlKGRlY29kZXIsIHZhbHVlKTsgfSBcCisgICAgc3RkOjpvcHRpb25hbDxU
eXBlPiBBcmd1bWVudENvZGVyPFR5cGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikgXAorICAg
IHsgXAorICAgICAgICBUeXBlIHZhbHVlOyBcCisgICAgICAgIGlmICghZGVjb2RlKGRlY29kZXIs
IHZhbHVlKSkgXAorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgXAorICAgICAgICBy
ZXR1cm4gdmFsdWU7IFwKKyAgICB9IFwKKyAgICB0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8
VHlwZT46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVyJiwgY29uc3QgVHlwZSYpOyBcCisgICAgdGVt
cGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFR5cGU+OjplbmNvZGU8U3RyZWFtQ29ubmVjdGlvbkVu
Y29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwgY29uc3QgVHlwZSYpOworCitERUZJTkVf
U0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoQWZmaW5lVHJhbnNmb3JtKQorREVGSU5F
X1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0Qm94RXh0ZW50KQorREVGSU5F
X1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0UG9pbnQpCitERUZJTkVfU0lN
UExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoRmxvYXRQb2ludDNEKQorREVGSU5FX1NJTVBM
RV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0UmVjdCkKK0RFRklORV9TSU1QTEVfQVJH
VU1FTlRfQ09ERVJfRk9SX1NPVVJDRShGbG9hdFJvdW5kZWRSZWN0KQorREVGSU5FX1NJTVBMRV9B
UkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1F
TlRfQ09ERVJfRk9SX1NPVVJDRShJbnRQb2ludCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09E
RVJfRk9SX1NPVVJDRShJbnRSZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
U09VUkNFKEludFNpemUpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0Uo
TGF5b3V0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoTGF5
b3V0U2l6ZSkKKworI2lmIFVTRShDRykKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9S
X1NPVVJDRShDR1JlY3QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0Uo
Q0dTaXplKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKENHUG9pbnQp
CitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoQ0dBZmZpbmVUcmFuc2Zv
cm0pCisjZW5kaWYKKworI3VuZGVmIERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX1NP
VVJDRQorCiBzdGF0aWMgdm9pZCBlbmNvZGVTaGFyZWRCdWZmZXIoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgU2hhcmVkQnVmZmVyKiBidWZmZXIpCiB7CiAgICAgYm9vbCBpc051bGwgPSAhYnVmZmVy
OwpAQCAtMjMxLDE2ICsyNjcsNiBAQCBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlVHlwZXNBbmREYXRhKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxTdHJpbgogICAgIHJldHVy
biB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgYWZmaW5lVHJhbnNmb3Jt
KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2RlKGVu
Y29kZXIsIGFmZmluZVRyYW5zZm9ybSk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxBZmZpbmVU
cmFuc2Zvcm0+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgQWZmaW5lVHJhbnNmb3JtJiBhZmZp
bmVUcmFuc2Zvcm0pCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJh
bnNmb3JtPjo6ZGVjb2RlKGRlY29kZXIsIGFmZmluZVRyYW5zZm9ybSk7Ci19Ci0KIHZvaWQgQXJn
dW1lbnRDb2RlcjxDYWNoZVF1ZXJ5T3B0aW9ucz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBDYWNoZVF1ZXJ5T3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBlbmNvZGVyIDw8IG9wdGlv
bnMuaWdub3JlU2VhcmNoOwpAQCAtNDI1LDYgKzQ1MSw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxF
dmVudFRyYWNraW5nUmVnaW9ucz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBFdmVudFRyYWNr
aW5nCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiB2
b2lkIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybWF0aW9uTWF0cml4
KQogewogICAgIGVuY29kZXIgPDwgdHJhbnNmb3JtYXRpb25NYXRyaXgubTExKCk7CkBAIC01MDYs
NiArNTMzLDkgQEAgYm9vbCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFRyYW5zZm9ybWF0aW8KICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAordGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5j
b2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwordGVt
cGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5jb2RlPFN0
cmVhbUNvbm5lY3Rpb25FbmNvZGVyPihTdHJlYW1Db25uZWN0aW9uRW5jb2RlciYsIGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4Jik7CisKIHZvaWQgQXJndW1lbnRDb2RlcjxMaW5lYXJUaW1pbmdG
dW5jdGlvbj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMaW5lYXJUaW1pbmdGdW5j
dGlvbiYgdGltaW5nRnVuY3Rpb24pCiB7CiAgICAgZW5jb2RlciA8PCB0aW1pbmdGdW5jdGlvbi50
eXBlKCk7CkBAIC02MTcsNjUgKzY0Nyw2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxTcHJpbmdUaW1p
bmdGdW5jdGlvbj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTcHJpbmdUaW1pbmdGCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UG9pbnQmIGZsb2F0UG9pbnQpCi17Ci0gICAg
U2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0UG9p
bnQpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBGbG9hdFBvaW50JiBmbG9hdFBvaW50KQotewotICAgIHJldHVybiBTaW1wbGVB
cmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRQb2ludCk7Ci19
Ci0KLXN0ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4gQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgRmxvYXRQb2ludCBmbG9hdFBvaW50Owot
ICAgIGlmICghU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2RlKGRlY29kZXIs
IGZsb2F0UG9pbnQpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBm
bG9hdFBvaW50OwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UG9pbnQzRCYgZmxvYXRQb2ludCkKLXsKLSAg
ICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmVuY29kZShlbmNvZGVyLCBmbG9h
dFBvaW50KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFBvaW50M0QmIGZsb2F0UG9pbnQpCi17Ci0gICAgcmV0dXJu
IFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0
UG9pbnQpOwotfQotCi0KLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRSZWN0JiBmbG9hdFJlY3QpCi17Ci0gICAgU2ltcGxl
QXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRSZWN0KTsKLX0K
LQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBGbG9hdFJlY3QmIGZsb2F0UmVjdCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2Rl
cjxGbG9hdFJlY3Q+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRSZWN0KTsKLX0KLQotc3RkOjpvcHRp
b25hbDxGbG9hdFJlY3Q+IEFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCi17Ci0gICAgRmxvYXRSZWN0IGZsb2F0UmVjdDsKLSAgICBpZiAoIVNpbXBsZUFy
Z3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0UmVjdCkpCi0gICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIGZsb2F0UmVjdDsKLX0KLQotCi12
b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgRmxvYXRCb3hFeHRlbnQmIGZsb2F0Qm94RXh0ZW50KQotewotICAgIFNpbXBsZUFy
Z3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRCb3hFeHRl
bnQpOwotfQotICAgIAotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIEZsb2F0Qm94RXh0ZW50JiBmbG9hdEJveEV4dGVudCkKLXsKLSAg
ICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZShkZWNv
ZGVyLCBmbG9hdEJveEV4dGVudCk7Ci19Ci0KLQogdm9pZCBBcmd1bWVudENvZGVyPFJlY3RFZGdl
czxib29sPj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWN0RWRnZXM8Ym9vbD4m
IGJveEVkZ2VzKQogewogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8UmVjdEVkZ2VzPGJvb2w+Pjo6
ZW5jb2RlKGVuY29kZXIsIGJveEVkZ2VzKTsKQEAgLTY4NiwyOCArNjU3LDYgQEAgYm9vbCBBcmd1
bWVudENvZGVyPFJlY3RFZGdlczxib29sPj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZWN0
RWRnZXM8Ym9vbD4mIGIKICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxSZWN0RWRnZXM8
Ym9vbD4+OjpkZWNvZGUoZGVjb2RlciwgYm94RWRnZXMpOwogfQogCi0KLXZvaWQgQXJndW1lbnRD
b2RlcjxGbG9hdFNpemU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRTaXpl
JiBmbG9hdFNpemUpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjplbmNv
ZGUoZW5jb2RlciwgZmxvYXRTaXplKTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0U2l6
ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFNpemUmIGZsb2F0U2l6ZSkKLXsKLSAg
ICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjpkZWNvZGUoZGVjb2Rlciwg
ZmxvYXRTaXplKTsKLX0KLQotCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByb3VuZGVk
UmVjdCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjplbmNv
ZGUoZW5jb2Rlciwgcm91bmRlZFJlY3QpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRS
b3VuZGVkUmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFJvdW5kZWRSZWN0JiBy
b3VuZGVkUmVjdCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFJvdW5k
ZWRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIHJvdW5kZWRSZWN0KTsKLX0KLQogI2lmIEVOQUJMRShN
RVRBX1ZJRVdQT1JUKQogdm9pZCBBcmd1bWVudENvZGVyPFZpZXdwb3J0QXJndW1lbnRzPjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJiB2aWV3cG9ydEFy
Z3VtZW50cykKIHsKQEAgLTczOSw4NyArNjg4LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPFZpZXdw
b3J0QXR0cmlidXRlcz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBWaWV3cG9ydEF0dHJpYnUK
ICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxWaWV3cG9ydEF0dHJpYnV0ZXM+OjpkZWNv
ZGUoZGVjb2Rlciwgdmlld3BvcnRBdHRyaWJ1dGVzKTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVy
PEludFBvaW50Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEludFBvaW50JiBpbnRQ
b2ludCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZW5jb2RlKGVuY29k
ZXIsIGludFBvaW50KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIEludFBvaW50JiBpbnRQb2ludCkKLXsKLSAgICByZXR1cm4gU2lt
cGxlQXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZShkZWNvZGVyLCBpbnRQb2ludCk7Ci19
Ci0KLXN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+IEFyZ3VtZW50Q29kZXI8SW50UG9p
bnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBJbnRQb2ludCBpbnRQb2ludDsK
LSAgICBpZiAoIVNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoZGVjb2Rlciwg
aW50UG9pbnQpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBpbnRQ
b2ludDsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPEludFJlY3Q+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgSW50UmVjdCYgaW50UmVjdCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENv
ZGVyPEludFJlY3Q+OjplbmNvZGUoZW5jb2RlciwgaW50UmVjdCk7Ci19Ci0KLWJvb2wgQXJndW1l
bnRDb2RlcjxJbnRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEludFJlY3QmIGludFJl
Y3QpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZShk
ZWNvZGVyLCBpbnRSZWN0KTsKLX0KLQotc3RkOjpvcHRpb25hbDxJbnRSZWN0PiBBcmd1bWVudENv
ZGVyPEludFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBJbnRSZWN0IHJl
Y3Q7Ci0gICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgcmVjdCkpCi0gICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7Ci0gICAgcmV0dXJuIHJlY3Q7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIEVuY29k
ZXI+Ci12b2lkIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBJbnRTaXplJiBpbnRTaXplKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50
U2l6ZT46OmVuY29kZShlbmNvZGVyLCBpbnRTaXplKTsKLX0KLQotdGVtcGxhdGUKLXZvaWQgQXJn
dW1lbnRDb2RlcjxJbnRTaXplPjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBJbnRT
aXplJik7Ci10ZW1wbGF0ZQotdm9pZCBBcmd1bWVudENvZGVyPEludFNpemU+OjplbmNvZGU8U3Ry
ZWFtQ29ubmVjdGlvbkVuY29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwgY29uc3QgSW50
U2l6ZSYpOwotCi1ib29sIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBJbnRTaXplJiBpbnRTaXplKQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENv
ZGVyPEludFNpemU+OjpkZWNvZGUoZGVjb2RlciwgaW50U2l6ZSk7Ci19Ci0KLXN0ZDo6b3B0aW9u
YWw8SW50U2l6ZT4gQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCi17Ci0gICAgSW50U2l6ZSBpbnRTaXplOwotICAgIGlmICghU2ltcGxlQXJndW1lbnRDb2Rl
cjxJbnRTaXplPjo6ZGVjb2RlKGRlY29kZXIsIGludFNpemUpKQotICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwotICAgIHJldHVybiBpbnRTaXplOwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8
TGF5b3V0U2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMYXlvdXRTaXplJiBs
YXlvdXRTaXplKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmVuY29k
ZShlbmNvZGVyLCBsYXlvdXRTaXplKTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPExheW91dFNp
emU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTGF5b3V0U2l6ZSYgbGF5b3V0U2l6ZSkKLXsK
LSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxMYXlvdXRTaXplPjo6ZGVjb2RlKGRlY29k
ZXIsIGxheW91dFNpemUpOwotfQotCi0KLXZvaWQgQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMYXlvdXRQb2ludCYgbGF5b3V0UG9pbnQp
Ci17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46OmVuY29kZShlbmNvZGVy
LCBsYXlvdXRQb2ludCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCBMYXlvdXRQb2ludCYgbGF5b3V0UG9pbnQpCi17Ci0gICAg
cmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+OjpkZWNvZGUoZGVjb2Rlciwg
bGF5b3V0UG9pbnQpOwotfQotCiB2b2lkIEFyZ3VtZW50Q29kZXI8UmVjZW50U2VhcmNoPjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlY2VudFNlYXJjaCYgcmVjZW50U2VhcmNoKQog
ewogICAgIGVuY29kZXIgPDwgcmVjZW50U2VhcmNoLnN0cmluZyA8PCByZWNlbnRTZWFyY2gudGlt
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXgg
MzUxMzhmNWRlMzJkN2UxZjFmZDE1NGMyNjFmOGU3OTJlNDczNzcxMC4uN2U4ZmVjOWZiM2Y2Mjg1
YWU3ZTYwYjNmMDQ4NGExZWY5OWM3NmU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTI2LDEyICsyNiwyNCBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQWZmaW5lVHJh
bnNmb3JtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRvcGxheUV2ZW50Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Db2xvclNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvRmxvYXRQb2ludDNELmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0Zsb2F0Um91bmRlZFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zs
b2F0U2l6ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvSW5kZXhlZERCLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnB1dE1vZGUuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0ludFBvaW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9MYXlv
dXRQb2ludC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGF5b3V0U2l6ZS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvTGVuZ3RoQm94Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlbGVjdGlvbk9wdGlv
bi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmF0aXZlSW1hZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L05ldHdvcmtMb2FkTWV0cmljcy5oPgpAQCAtOTYsNyArMTA4LDYgQEAgdHlwZWRlZiBzdHJ1Y3Qg
X19DVkJ1ZmZlciogQ1ZQaXhlbEJ1ZmZlclJlZjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgQWJzb2x1dGVQb3NpdGlvbkNvbnN0cmFpbnRzOwotY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwog
Y2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7CiBjbGFzcyBCbG9iUGFydDsKIGNsYXNzIENl
cnRpZmljYXRlSW5mbzsKQEAgLTEwOSwyMSArMTIwLDExIEBAIGNsYXNzIERyYWdEYXRhOwogY2xh
c3MgRmlsZTsKIGNsYXNzIEZpbHRlck9wZXJhdGlvbjsKIGNsYXNzIEZpbHRlck9wZXJhdGlvbnM7
Ci1jbGFzcyBGbG9hdFBvaW50OwotY2xhc3MgRmxvYXRQb2ludDNEOwotY2xhc3MgRmxvYXRSZWN0
OwotY2xhc3MgRmxvYXRSb3VuZGVkUmVjdDsKLWNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIEZpeGVk
UG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzOwogY2xhc3MgRm9udDsKIGNsYXNzIEZvbnRQbGF0
Zm9ybURhdGE7CiBjbGFzcyBIVFRQSGVhZGVyTWFwOwotY2xhc3MgSW50UG9pbnQ7Ci1jbGFzcyBJ
bnRSZWN0OwotY2xhc3MgSW50U2l6ZTsKIGNsYXNzIEtleWZyYW1lVmFsdWVMaXN0OwotY2xhc3Mg
TGF5b3V0U2l6ZTsKLWNsYXNzIExheW91dFBvaW50OwogY2xhc3MgTGluZWFyVGltaW5nRnVuY3Rp
b247CiBjbGFzcyBOb3RpZmljYXRpb247CiBjbGFzcyBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTsKQEAg
LTE3NCw5ICsxNzUsNyBAQCBzdHJ1Y3QgVG91Y2hBY3Rpb25EYXRhOwogc3RydWN0IFZlbG9jaXR5
RGF0YTsKIHN0cnVjdCBWaWV3cG9ydEF0dHJpYnV0ZXM7CiBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7
Ci0gICAgCi10ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgUmVjdEVkZ2VzOwotdXNpbmcgRmxvYXRC
b3hFeHRlbnQgPSBSZWN0RWRnZXM8ZmxvYXQ+OworCiB1c2luZyBJREJLZXlQYXRoID0gVmFyaWFu
dDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+PjsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMjI3
LDEwICsyMjYsMzQgQEAgc3RydWN0IFJlY29yZDsKIAogbmFtZXNwYWNlIElQQyB7CiAKLXRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtPiB7Ci0g
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFu
c2Zvcm0mKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29k
ZXImLCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mKTsKLX07CisjZGVmaW5lIERFRklORV9TSU1Q
TEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihUeXBlKSBcCisgICAgdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxUeXBlPiB7IFwKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5j
b2Rlcj4gc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBUeXBlJik7IFwKKyAgICAg
ICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgVHlwZSYp
OyBcCisgICAgICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFR5cGU+IGRlY29kZShEZWNvZGVyJik7
IFwKKyAgICB9OworCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoV2Vi
Q29yZTo6QWZmaW5lVHJhbnNmb3JtKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
SEVBREVSKFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9D
T0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VN
RU5UX0NPREVSX0ZPUl9IRUFERVIoV2ViQ29yZTo6RmxvYXRQb2ludDNEKQorREVGSU5FX1NJTVBM
RV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0UmVjdCkKK0RFRklORV9T
SU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0
KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0
U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3JlOjpJ
bnRQb2ludCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3Jl
OjpJbnRSZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNv
cmU6OkludFNpemUpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoV2Vi
Q29yZTo6TGF5b3V0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFE
RVIoV2ViQ29yZTo6TGF5b3V0U2l6ZSkKKworI2lmIFVTRShDRykKK0RFRklORV9TSU1QTEVfQVJH
VU1FTlRfQ09ERVJfRk9SX0hFQURFUihDR1JlY3QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NP
REVSX0ZPUl9IRUFERVIoQ0dTaXplKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
SEVBREVSKENHUG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIo
Q0dBZmZpbmVUcmFuc2Zvcm0pCisjZW5kaWYKKworI3VuZGVmIERFRklORV9TSU1QTEVfQVJHVU1F
TlRfQ09ERVJfRk9SX0hFQURFUgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmc+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmcmKTsKQEAgLTI2OCw2ICsyOTEsNyBA
QCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkV2ZW50VHJhY2tpbmdS
ZWdpb25zPiB7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlRyYW5zZm9ybWF0aW9uTWF0cml4PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4K
ICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9y
bWF0aW9uTWF0cml4Jik7CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29k
ZShEZWNvZGVyJiwgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKIH07CkBAIC0yOTks
NDMgKzMyMywxMSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNl
cnRpZmljYXRlSW5mbz4gewogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNlcnRp
ZmljYXRlSW5mbz4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwotICAgIHN0YXRpYyBXQVJO
X1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQm
KTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBkZWNvZGUo
RGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpGbG9hdFBvaW50M0Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotfTsKLQotdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFJlY3Q+IHsKLSAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwot
ICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNv
cmU6OkZsb2F0UmVjdCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0
UmVjdD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0gICAgCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYpOwotICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0
Qm94RXh0ZW50Jik7Ci19OwotCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OlJlY3RFZGdlczxib29sPj4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwg
Y29uc3QgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+Jik7CiAgICAgc3RhdGljIFdBUk5fVU5VU0VE
X1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+Jik7
CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0U2l6
ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNv
ZGVyJiwgV2ViQ29yZTo6RmxvYXRTaXplJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q+IHsKLSAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3QmKTsKLSAgICBz
dGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpG
bG9hdFJvdW5kZWRSZWN0Jik7Ci19OwotCiAjaWYgRU5BQkxFKE1FVEFfVklFV1BPUlQpCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiB7
CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpWaWV3cG9y
dEFyZ3VtZW50cyYpOwpAQCAtMzUwLDM1ICszNDIsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcz4gewogICAgIHN0YXRpYyBXQVJO
X1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlZpZXdwb3J0QXR0
cmlidXRlcyYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpJbnRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlKERlY29kZXImLCBXZWJDb3JlOjpJbnRQb2ludCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OkludFBvaW50PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRSZWN0PiB7Ci0gICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0gICAgc3RhdGlj
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6SW50UmVj
dCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFJlY3Q+IGRlY29kZShE
ZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OkludFNpemU+IHsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgotICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwotICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkludFNp
emUmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRTaXplPiBkZWNvZGUo
RGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpMYXlvdXRTaXplPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBX
ZWJDb3JlOjpMYXlvdXRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29s
IGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6TGF5b3V0U2l6ZSYpOwotfTsKLQotdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMYXlvdXRQb2ludD4gewotICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmKTsKLSAg
ICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3Jl
OjpMYXlvdXRQb2ludCYpOwotfTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpMZW5ndGg+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6Okxlbmd0aCYpOwogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBk
ZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6Okxlbmd0aCYpOwpAQCAtNDU3LDYgKzQyMCw3IEBAIHRl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RHJhZ0RhdGE+IHsKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V1RGOjpNYWNoU2VuZFJpZ2h0PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmKTsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5j
b2RlciYsIFdURjo6TWFjaFNlbmRSaWdodCYmKTsKQEAgLTQ2OCwyNiArNDMyLDcgQEAgdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IHsKICAg
ICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IGRlY29kZShE
ZWNvZGVyJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHUG9pbnQ+
IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIENHUG9pbnQpOwotICAgIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPENHUG9pbnQ+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHU2l6ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgQ0dTaXplKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDR1NpemU+IGRl
Y29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENH
UmVjdD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dSZWN0KTsKLSAgICBz
dGF0aWMgc3RkOjpvcHRpb25hbDxDR1JlY3Q+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPiB7Ci0gICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBDR0FmZmluZVRyYW5zZm9ybSk7Ci0gICAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8Q0dBZmZpbmVUcmFuc2Zvcm0+IGRlY29kZShEZWNvZGVyJik7Ci19Owot
I2VuZGlmCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZWxlY3Rpb25H
ZW9tZXRyeT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVB
cmd1bWVudENvZGVyc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJn
dW1lbnRDb2RlcnNNYWMubW0KaW5kZXggOGU0ZDVmMTMxZDgyZjFkZWZlMjZkMTVhYmZlZTA2NGEz
Yjk4OTBmOC4uNmE0MzQwNjcxNDYzZDk0NzA3MTkyMzEwYjFmN2JhMGJkMDNhNzZmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFj
Lm1tCkBAIC0zMjEsNzkgKzMyMSw2IEBAIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6S2V5cHJlc3ND
b21tYW5kPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD46CiAgICAgcmV0
dXJuIFdURk1vdmUoY29tbWFuZCk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxDR1JlY3Q+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0dSZWN0IHJlY3QpCi17Ci0gICAgZW5jb2RlciA8PCBy
ZWN0Lm9yaWdpbiA8PCByZWN0LnNpemU7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8Q0dSZWN0PiBBcmd1
bWVudENvZGVyPENHUmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIHN0ZDo6
b3B0aW9uYWw8Q0dQb2ludD4gb3JpZ2luOwotICAgIGRlY29kZXIgPj4gb3JpZ2luOwotICAgIGlm
ICghb3JpZ2luKQotICAgICAgICByZXR1cm4geyB9OwotCi0gICAgc3RkOjpvcHRpb25hbDxDR1Np
emU+IHNpemU7Ci0gICAgZGVjb2RlciA+PiBzaXplOwotICAgIGlmICghc2l6ZSkKLSAgICAgICAg
cmV0dXJuIHsgfTsKLQotICAgIHJldHVybiBDR1JlY3QgeyAqb3JpZ2luLCAqc2l6ZSB9OwotfQot
Ci12b2lkIEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENH
U2l6ZSBzaXplKQotewotICAgIGVuY29kZXIgPDwgc2l6ZS53aWR0aCA8PCBzaXplLmhlaWdodDsK
LX0KLQotc3RkOjpvcHRpb25hbDxDR1NpemU+IEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgQ0dTaXplIHNpemU7Ci0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZShzaXplLndpZHRoKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHNpemUuaGVpZ2h0KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4g
c2l6ZTsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPENHUG9pbnQ+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgQ0dQb2ludCBwb2ludCkKLXsKLSAgICBlbmNvZGVyIDw8IHBvaW50LnggPDwgcG9p
bnQueTsKLX0KLQotc3RkOjpvcHRpb25hbDxDR1BvaW50PiBBcmd1bWVudENvZGVyPENHUG9pbnQ+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBDR1BvaW50IHBvaW50OwotICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocG9pbnQueCkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwb2ludC55KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1
cm4gcG9pbnQ7Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxDR0FmZmluZVRyYW5zZm9ybT46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0pCi17Ci0g
ICAgZW5jb2RlciA8PCB0cmFuc2Zvcm0uYSA8PCB0cmFuc2Zvcm0uYiA8PCB0cmFuc2Zvcm0uYyA8
PCB0cmFuc2Zvcm0uZCA8PCB0cmFuc2Zvcm0udHggPDwgdHJhbnNmb3JtLnR5OwotfQotCi1zdGQ6
Om9wdGlvbmFsPENHQWZmaW5lVHJhbnNmb3JtPiBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNm
b3JtPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgQ0dBZmZpbmVUcmFuc2Zvcm0g
dHJhbnNmb3JtOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmEpKQotICAgICAg
ICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmIpKQotICAg
ICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmMpKQot
ICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmQp
KQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3Jt
LnR4KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5z
Zm9ybS50eSkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgcmV0dXJuIHRyYW5zZm9ybTsKLX0K
LQogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKIAogdm9pZCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcj46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIGNvbnRlbnRG
aWx0ZXJVbmJsb2NrSGFuZGxlcikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440311</attachid>
            <date>2021-10-05 17:29:52 -0700</date>
            <delta_ts>2021-10-05 17:52:01 -0700</delta_ts>
            <desc>Try to fix the WPE build again? (5)</desc>
            <filename>bug-230714-20211005172951.patch</filename>
            <type>text/plain</type>
            <size>37071</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcwMTIxY2IyMGJiMWM2YThl
MDhkZjNkZGVjMjNjNzVlZWMwMmIwODIuLmU0ZjAyMDQ2MmFjZjdjODc4ZjZhMmFmNDE2YTMwYzQ3
OTMwMzkxYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzEgQEAKKzIwMjEtMTAtMDUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIFJlZmFj
dG9yIHNvbWUgSVBDIGFyZ3VtZW50IGVuY29kZXIgbG9naWMgdG8gd29yayB3aXRoIFN0cmVhbUNv
bm5lY3Rpb25FbmNvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA3MTQKKyAgICAgICAgcmRhcjovLzgzNDc3NTkxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byB1c2Ug
YElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXJgIHRvIGVuY29kZSBkaXNwbGF5IGxpc3QgaXRl
bXMgKGFuZCB0aGVpciBtZW1iZXJzKSBpbiBhbgorICAgICAgICBJUEMgc3RyZWFtLiBUaGlzIHBh
dGNoIGNvbXByaXNlcyB0d28gbWFpbiBzZXRzIG9mIGNoYW5nZXMgaW4gYEFyZ3VtZW50Q29kZXJz
YCwgYW5kIGBXZWJDb3JlQXJndW1lbnRDb2RlcnNgLiBTZWUKKyAgICAgICAgYmVsb3cgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmRlY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNb25vc3RhdGU+OjpkZWNvZGUpOiBEZWxldGVk
LgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2RlKToKKworICAgICAgICBNYW55IG9mIHRoZXNlIGBl
bmNvZGUoKWAgbWV0aG9kcyBhcmUgY3VycmVudGx5IG5vbi10ZW1wbGF0ZWQsIHdoaWNoIG1lYW5z
IHRoYXQgRW5jb2RlciBhbmQgRGVjb2RlciB1c2VkIGhlcmUKKyAgICAgICAgcmVmZXIgc29sZWx5
IHRvIElQQzo6RW5jb2RlciBhbmQgSVBDOjpEZWNvZGVyIChyZXNwZWN0aXZlbHkpIGluc3RlYWQg
b2Ygb3RoZXIgdHlwZXMgb2YgZW5jb2RlcnMgKG5hbWVseSwKKyAgICAgICAgU3RyZWFtQ29ubmVj
dGlvbkVuY29kZXIpLiBNYWtlIHRoZXNlIHVzZSB0ZW1wbGF0ZWQgYGVuY29kZWAgbWV0aG9kcyBp
bnRlYWQsIHNvIHRoYXQgdGhleSB3b3JrIHdpdGggZ2VuZXJpYworICAgICAgICBlbmNvZGVycy4K
KworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmVuY29kZSk6IERlbGV0ZWQuCisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2RlKTog
RGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQz
RD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRS
ZWN0Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9h
dFJlY3Q+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZs
b2F0Qm94RXh0ZW50Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjplbmNvZGUpOiBEZWxldGVkLgorICAg
ICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjpkZWNvZGUpOiBEZWxl
dGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZW5jb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmRlY29k
ZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPExheW91dFBvaW50
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKworICAgICAgICBUaGVzZSBXZWJDb3JlIGFyZ3VtZW50IGNv
ZGVycyBhcmUgYWxzbyBjdXJyZW50bHkgaW5jb21wYXRpYmxlIHdpdGggU3RyZWFtQ29ubmVjdGlv
bkVuY29kZXIsIHNpbmNlIHRoZXkgYXJlIG5vbi0KKyAgICAgICAgdGVtcGxhdGVkIChhbmQgdGh1
cyBvbmx5IHdvcmsgd2l0aCBJUEM6OkVuY29kZXIpLiBTaW5jZSB0aGVzZSBhcmUgYWxsIGVuY29k
YWJsZSBhcyBQT0QgdHlwZXMsIHdlIGNhbiBqdXN0IHVzZQorICAgICAgICBTaW1wbGVBcmd1bWVu
dENvZGVyIGZvciBhbGwgb2YgdGhlc2UuIFdlIGFsc28gYWRkIG5ldyBgREVGSU5FX1NJTVBMRV9B
UkdVTUVOVF9DT0RFUl9GT1JfKEhFQURFUnxTT1VSQ0UpYCBtYWNyb3MKKyAgICAgICAgdG8gbWFr
ZSB0aGlzIGNvZGUgYSBiaXQgZWFzaWVyIHRvIHJlYWQsIHdoaWNoIGFkZHMgU2ltcGxlQXJndW1l
bnRDb2RlciBmb3IgdGhlIGdpdmVuIHR5cGUsIGZvciBib3RoIHN0YW5kYXJkCisgICAgICAgIElQ
Qzo6RW5jb2RlciBhcyB3ZWxsIGFzIElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXIuCisKKyAg
ICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogU2hhcmVk
L21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW06CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8Q0dSZWN0Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxDR1JlY3Q+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPENHU2l6ZT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8Q0dTaXplPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR1BvaW50Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR1BvaW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR0FmZmluZVRyYW5zZm9ybT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+OjpkZWNvZGUpOiBEZWxldGVkLgorCiAyMDIx
LTEwLTA1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAg
IE1vdmUgRmx1c2hJZGVudGlmaWVyIG91dCBvZiB0aGUgRGlzcGxheUxpc3QgbmFtZXNwYWNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKaW5kZXggYTMy
MDU1MTg3OThiNzRkY2VkYjhhMDEzZjljOWM5ODg1YWFlNjYxNi4uZTdmMjc4MDM2MmRkMjAzNzQz
NGNhMWNiMzkwZGRlNmVmNzkxNTkzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L0FyZ3VtZW50Q29kZXJzLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlByaXZhdGVD
bGlja01lYXN1cmVtZW50RGVjb2Rlci5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVt
ZW50RW5jb2Rlci5oIgogI2luY2x1ZGUgIlN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyLmgiCisjaW5j
bHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMjE4LDYgKzIxOSw3IEBA
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIEFyZ3VtZW50Q29kZXI8U0hBMTo6RGlnZXN0Pjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFNICiB9CiAKICNpZiBIQVZFKEFVRElUX1RPS0VOKQorCiB2
b2lkIEFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBhdWRpdF90b2tlbl90JiBhdWRpdFRva2VuKQogewogICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGF1ZGl0VG9rZW4udmFsKTsgaSsrKQpAQCAtMjMy
LDE1ICsyMzQsNyBAQCBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBBcmd1bWVudENvZGVyPGF1ZGl0
X3Rva2VuX3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgYQogICAgIH0KICAgICByZXR1cm4g
dHJ1ZTsKIH0KLSNlbmRpZgotCi12b2lkIEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBNb25vc3RhdGUmKQotewotfQogCi1XQVJOX1VOVVNFRF9SRVRVUk4g
c3RkOjpvcHRpb25hbDxNb25vc3RhdGU+IEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2Rl
KERlY29kZXImKQotewotICAgIHJldHVybiBNb25vc3RhdGUgeyB9OwotfQorI2VuZGlmIC8vIEhB
VkUoQVVESVRfVE9LRU4pCiAKIH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKaW5kZXggNDc5ZGI2MGVkYzI3MTZkNTU2MDZmNjUy
ZjI0MzFhZDM2OWY2NTcwYy4uZDk3Nzg3N2M1ZmIzNjUwN2JiNjUzMjRjMDY2M2Y4NjE1NjZkNTkz
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCkBAIC0x
MDgsMTIgKzEwOCwxNCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxBcnJheVJlZmVyZW5jZTxULCBhcnJheVJlZmVyZW5jZUR5bmFtaQogfTsKIAogdGVtcGxhdGU8
dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8T3B0aW9uU2V0PFQ+PiB7CisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgT3B0aW9uU2V0PFQ+JiBvcHRpb25TZXQpCiAgICAgewogICAgICAgICBB
U1NFUlQoV1RGOjppc1ZhbGlkT3B0aW9uU2V0KG9wdGlvblNldCkpOwogICAgICAgICBlbmNvZGVy
IDw8IG9wdGlvblNldC50b1JhdygpOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERl
Y29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBPcHRpb25TZXQ8VD4mIG9wdGlvblNldCkKICAgICB7CiAgICAgICAgIHR5cGVu
YW1lIE9wdGlvblNldDxUPjo6U3RvcmFnZVR5cGUgdmFsdWU7CkBAIC0xMjUsNiArMTI3LDcgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8T3B0aW9uU2V0PFQ+PiB7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERl
Y29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8T3B0aW9uU2V0PFQ+PiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgT3B0
aW9uU2V0PFQ+OjpTdG9yYWdlVHlwZT4gdmFsdWU7CkBAIC0xODgsNiArMTkxLDcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpvcHRpb25hbDxUPj4gewog
fTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQm94PFQ+JiBib3gpCiAgICAgewogICAgICAgICBpZiAo
IWJveCkgewpAQCAtMTk5LDYgKzIwMyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBB
cmd1bWVudENvZGVyPEJveDxUPj4gewogICAgICAgICBlbmNvZGVyIDw8ICpib3guZ2V0KCk7CiAg
ICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9V
TlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEJveDxUPiYgYm94KQog
ICAgIHsKICAgICAgICAgYm9vbCBpc0VuZ2FnZWQ7CkBAIC0yMTgsNiArMjIzLDcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8Qm94PFQ+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAg
ICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gaXNFbmdhZ2VkOwpAQCAtMjM2LDExICsy
NDIsMTMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+
PiB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxzdGQ6OnBhaXI8VCwgVT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
PgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBzdGQ6OnBh
aXI8VCwgVT4mIHBhaXIpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHBhaXIuZmlyc3QgPDwg
cGFpci5zZWNvbmQ7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAg
ICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IHN0ZDo6cGFpcjxULCBVPiYgcGFpcikKICAgICB7CiAgICAgICAgIFQgZmlyc3Q7CkBAIC0yNTYs
NiArMjY0LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8c3RkOjpwYWlyPFQsIFU+PiB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
IAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8c3RkOjpwYWlyPFQsIFU+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8VD4gZmlyc3Q7CkBAIC0zNjYsMTEgKzM3NSwxMyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZS4uLiBFbGVtZW50cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjp0dXBsZTxF
bGVtZW50cy4uLj4+IHsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEtleVR5cGUsIHR5cGVuYW1l
IFZhbHVlVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpLZXlWYWx1ZVBhaXI8S2V5VHlw
ZSwgVmFsdWVUeXBlPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6S2V5VmFsdWVQYWly
PEtleVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHBh
aXIua2V5IDw8IHBhaXIudmFsdWU7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVj
b2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFdURjo6S2V5VmFsdWVQYWlyPEtleVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAg
ICAgewogICAgICAgICBLZXlUeXBlIGtleTsKQEAgLTM5OCw2ICs0MDksNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxl
ciwgc2l6ZV90IG1pbgogICAgICAgICAgICAgZW5jb2RlciA8PCB2ZWN0b3JbaV07CiAgICAgfQog
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURf
UkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxULCBpbmxpbmVDYXBh
Y2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4mIHZlY3RvcikKICAgICB7CiAgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRs
ZXIsIG1pbkNhcGFjaXR5Pj4gb3B0aW9uYWw7CkBAIC00MzcsNiArNDQ5LDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRs
ZXIsIHNpemVfdCBtaW4KICAgICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVp
bnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4odmVjdG9yLmRhdGEoKSksIHZlY3Rvci5zaXpl
KCkgKiBzaXplb2YoVCksIGFsaWdub2YoVCkpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hh
bmRsZXIsIG1pbkNhcGFjaXR5PiYgdmVjdG9yKQogICAgIHsKICAgICAgICAgdWludDY0X3QgZGVj
b2RlZFNpemU7CkBAIC00NTEsNyArNDY0LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90
IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KICAg
ICAgICAgLy8gU2luY2Ugd2Uga25vdyB0aGUgdG90YWwgc2l6ZSBvZiB0aGUgZWxlbWVudHMsIHdl
IGNhbiBhbGxvY2F0ZSB0aGUgdmVjdG9yIGluCiAgICAgICAgIC8vIG9uZSBmZWxsIHN3b29wLiBC
ZWZvcmUgYWxsb2NhdGluZyB3ZSBtdXN0IGhvd2V2ZXIgbWFrZSBzdXJlIHRoYXQgdGhlIGRlY29k
ZXIgYnVmZmVyCiAgICAgICAgIC8vIGlzIGJpZyBlbm91Z2guCi0gICAgICAgIGlmICghZGVjb2Rl
ci5idWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluPFQ+KHNpemUpKQorICAgICAgICBpZiAoIWRl
Y29kZXIudGVtcGxhdGUgYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbjxUPihzaXplKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBWZWN0b3I8VCwgaW5saW5lQ2FwYWNp
dHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+IHRlbXA7CkBAIC00OTgsNiArNTExLDcg
QEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBP
dmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlw
ZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcs
IHR5cGVuYW1lIE1hcHBlZFRyYWl0c0FyZywgdHlwZW5hbWUgSGFzaFRhYmxlVHJhaXRzPiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlU
cmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPj4gewogICAgIHR5cGVk
ZWYgSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBw
ZWRUcmFpdHNBcmcsIEhhc2hUYWJsZVRyYWl0cz4gSGFzaE1hcFR5cGU7CiAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBIYXNoTWFwVHlwZSYgaGFzaE1hcCkKICAgICB7CiAgICAgICAgIGVuY29kZXIg
PDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGhhc2hNYXAuc2l6ZSgpKTsKQEAgLTUwNSw2ICs1MTks
NyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5h
bWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogICAgICAgICAgICAgZW5jb2RlciA8PCAqaXQ7
CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxIYXNoTWFwVHlwZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewog
ICAgICAgICB1aW50MzJfdCBoYXNoTWFwU2l6ZTsKQEAgLTUzNSw2ICs1NTAsNyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywg
dHlwZW5hbWUgS2V5VHJhaQogICAgICAgICByZXR1cm4gaGFzaE1hcDsKICAgICB9CiAKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSGFzaE1hcFR5cGUmIGhhc2hNYXApCiAgICAg
ewogICAgICAgICBzdGQ6Om9wdGlvbmFsPEhhc2hNYXBUeXBlPiB0ZW1wSGFzaE1hcDsKQEAgLTU0
OSw2ICs1NjUsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogdGVtcGxhdGU8dHlwZW5hbWUg
S2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1l
IEhhc2hUYWJsZVRyYWl0cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaFNldDxLZXlBcmcsIEhh
c2hBcmcsIEtleVRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPj4gewogICAgIHR5cGVkZWYgSGFz
aFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPiBIYXNo
U2V0VHlwZTsKIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEhhc2hTZXRUeXBlJiBoYXNoU2V0KQog
ICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaGFzaFNldC5z
aXplKCkpOwpAQCAtNTU2LDYgKzU3Myw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlw
ZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNoCiAgICAg
ICAgICAgICBlbmNvZGVyIDw8ICppdDsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBE
ZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgSGFzaFNldFR5cGUmIGhhc2hTZXQpCiAgICAgewogICAgICAgICBzdGQ6Om9w
dGlvbmFsPEhhc2hTZXRUeXBlPiB0ZW1wSGFzaFNldDsKQEAgLTU2Nyw2ICs1ODUsNyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0
c0FyZywgdHlwZW5hbWUgSGFzaAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEhhc2hT
ZXRUeXBlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHVpbnQ2NF90
IGhhc2hTZXRTaXplOwpAQCAtNTk2LDYgKzYxNSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNo
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtl
eVRyYWl0c0FyZz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaENvdW50ZWRTZXQ8S2V5QXJnLCBI
YXNoQXJnLCBLZXlUcmFpdHNBcmc+PiB7CiAgICAgdHlwZWRlZiBIYXNoQ291bnRlZFNldDxLZXlB
cmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZz4gSGFzaENvdW50ZWRTZXRUeXBlOwogICAgIAorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENvdW50ZWRTZXQpCiAg
ICAgewogICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihoYXNoQ291bnRl
ZFNldC5zaXplKCkpOwpAQCAtNjA2LDYgKzYyNiw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnPiBzdHJ1Y3QgQXJndW1l
CiAgICAgICAgIH0KICAgICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4K
ICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENvdW50ZWRTZXQpCiAgICAgewogICAgICAgICB1
aW50NjRfdCBoYXNoQ291bnRlZFNldFNpemU7CkBAIC02MzcsNiArNjU4LDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmc+
IHN0cnVjdCBBcmd1bWUKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5h
bWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWYWx1ZVR5cGUsIEVy
cm9yVHlwZT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBFeHBlY3RlZDxWYWx1ZVR5cGUsIEVy
cm9yVHlwZT4mIGV4cGVjdGVkKQogICAgIHsKICAgICAgICAgaWYgKCFleHBlY3RlZC5oYXNfdmFs
dWUoKSkgewpAQCAtNjQ4LDYgKzY3MCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwg
dHlwZW5hbWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWCiAgICAg
ICAgIGVuY29kZXIgPDwgZXhwZWN0ZWQudmFsdWUoKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4cGVjdGVkPFZhbHVl
VHlwZSwgRXJyb3JUeXBlPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAg
ICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGhhc1ZhbHVlOwpAQCAtNzA0LDYgKzcyNyw3IEBAIHRlbXBs
YXRlPHR5cGVuYW1lIEVycm9yVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8RXhwZWN0ZWQ8dm9p
ZCwgRXJyb3JUeXBlPj4gewogCiB0ZW1wbGF0ZTxzaXplX3QgaW5kZXgsIHR5cGVuYW1lLi4uIFR5
cGVzPgogc3RydWN0IFZhcmlhbnRDb2RlciB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rl
cj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV1RGOjpW
YXJpYW50PFR5cGVzLi4uPiYgdmFyaWFudCwgdW5zaWduZWQgaSkKICAgICB7CiAgICAgICAgIGlm
IChpID09IGluZGV4KSB7CkBAIC03MTMsNiArNzM3LDcgQEAgc3RydWN0IFZhcmlhbnRDb2RlciB7
CiAgICAgICAgIFZhcmlhbnRDb2RlcjxpbmRleCAtIDEsIFR5cGVzLi4uPjo6ZW5jb2RlKGVuY29k
ZXIsIHZhcmlhbnQsIGkpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNv
ZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgaWYgKGkg
PT0gaW5kZXgpIHsKQEAgLTcyOCwxMiArNzUzLDE0IEBAIHN0cnVjdCBWYXJpYW50Q29kZXIgewog
CiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4KIHN0cnVjdCBWYXJpYW50Q29kZXI8MCwgVHlw
ZXMuLi4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+JiB2
YXJpYW50LCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChpLCAhaSk7
CiAgICAgICAgIGVuY29kZXIgPDwgV1RGOjpnZXQ8MD4odmFyaWFudCk7CiAgICAgfQogICAgIAor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIsIHVuc2lnbmVk
IGkpCiAgICAgewogICAgICAgICBBU1NFUlRfVU5VU0VEKGksICFpKTsKQEAgLTc0Niw2ICs3NzMs
NyBAQCBzdHJ1Y3QgVmFyaWFudENvZGVyPDAsIFR5cGVzLi4uPiB7CiB9OwogCiB0ZW1wbGF0ZTx0
eXBlbmFtZS4uLiBUeXBlcz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpWYXJpYW50PFR5cGVz
Li4uPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6VmFyaWFudDxUeXBlcy4uLj4mIHZh
cmlhbnQpCiAgICAgewogICAgICAgICB1bnNpZ25lZCBpID0gdmFyaWFudC5pbmRleCgpOwpAQCAt
NzUzLDYgKzc4MSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+PiB7CiAgICAgICAgIFZhcmlhbnRDb2Rlcjxz
aXplb2YuLi4oVHlwZXMpIC0gMSwgVHlwZXMuLi4+OjplbmNvZGUoZW5jb2RlciwgdmFyaWFudCwg
aSk7CiAgICAgfQogICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBpOwpAQCAt
ODA0LDggKzgzMywxNCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rv
a2VuX3Q+IHsKICNlbmRpZgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPE1vbm9z
dGF0ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgTW9ub3N0YXRl
Jik7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBkZWNvZGUoRGVjb2RlciYp
OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CisgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBNb25vc3RhdGUmKSB7IH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1l
IERlY29kZXI+CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBkZWNvZGUoRGVj
b2RlciYpCisgICAgeworICAgICAgICByZXR1cm4gTW9ub3N0YXRlIHsgfTsKKyAgICB9CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwCmluZGV4IGVlZWU2YWViNjFhMzM4YWY4ZDNjYWVmYmY1MjQ5MTk0MGFm
NzA1NWIuLjg2N2Y2ZDU0OGI5ZTI5ODRlYzcxZjMzZGEwMjg5ODcyMzk3MWNkMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMTI1LDYg
KzEyNSw0MiBAQCBuYW1lc3BhY2UgSVBDIHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKIAorI2RlZmluZSBERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NP
REVSX0ZPUl9TT1VSQ0UoVHlwZSkgXAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IFwK
KyAgICB2b2lkIEFyZ3VtZW50Q29kZXI8VHlwZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBUeXBlJiB2YWx1ZSkgeyBTaW1wbGVBcmd1bWVudENvZGVyPFR5cGU+OjplbmNvZGUoZW5j
b2RlciwgdmFsdWUpOyB9IFwKKyAgICBib29sIEFyZ3VtZW50Q29kZXI8VHlwZT46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBUeXBlJiB2YWx1ZSkgeyByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2Rl
cjxUeXBlPjo6ZGVjb2RlKGRlY29kZXIsIHZhbHVlKTsgfSBcCisgICAgc3RkOjpvcHRpb25hbDxU
eXBlPiBBcmd1bWVudENvZGVyPFR5cGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikgXAorICAg
IHsgXAorICAgICAgICBUeXBlIHZhbHVlOyBcCisgICAgICAgIGlmICghZGVjb2RlKGRlY29kZXIs
IHZhbHVlKSkgXAorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgXAorICAgICAgICBy
ZXR1cm4gdmFsdWU7IFwKKyAgICB9IFwKKyAgICB0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8
VHlwZT46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVyJiwgY29uc3QgVHlwZSYpOyBcCisgICAgdGVt
cGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFR5cGU+OjplbmNvZGU8U3RyZWFtQ29ubmVjdGlvbkVu
Y29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwgY29uc3QgVHlwZSYpOworCitERUZJTkVf
U0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoQWZmaW5lVHJhbnNmb3JtKQorREVGSU5F
X1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0Qm94RXh0ZW50KQorREVGSU5F
X1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0UG9pbnQpCitERUZJTkVfU0lN
UExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoRmxvYXRQb2ludDNEKQorREVGSU5FX1NJTVBM
RV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0UmVjdCkKK0RFRklORV9TSU1QTEVfQVJH
VU1FTlRfQ09ERVJfRk9SX1NPVVJDRShGbG9hdFJvdW5kZWRSZWN0KQorREVGSU5FX1NJTVBMRV9B
UkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1F
TlRfQ09ERVJfRk9SX1NPVVJDRShJbnRQb2ludCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09E
RVJfRk9SX1NPVVJDRShJbnRSZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
U09VUkNFKEludFNpemUpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0Uo
TGF5b3V0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoTGF5
b3V0U2l6ZSkKKworI2lmIFVTRShDRykKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9S
X1NPVVJDRShDR1JlY3QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0Uo
Q0dTaXplKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKENHUG9pbnQp
CitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoQ0dBZmZpbmVUcmFuc2Zv
cm0pCisjZW5kaWYKKworI3VuZGVmIERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX1NP
VVJDRQorCiBzdGF0aWMgdm9pZCBlbmNvZGVTaGFyZWRCdWZmZXIoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgU2hhcmVkQnVmZmVyKiBidWZmZXIpCiB7CiAgICAgYm9vbCBpc051bGwgPSAhYnVmZmVy
OwpAQCAtMjMxLDE2ICsyNjcsNiBAQCBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlVHlwZXNBbmREYXRhKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxTdHJpbgogICAgIHJldHVy
biB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgYWZmaW5lVHJhbnNmb3Jt
KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2RlKGVu
Y29kZXIsIGFmZmluZVRyYW5zZm9ybSk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxBZmZpbmVU
cmFuc2Zvcm0+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgQWZmaW5lVHJhbnNmb3JtJiBhZmZp
bmVUcmFuc2Zvcm0pCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJh
bnNmb3JtPjo6ZGVjb2RlKGRlY29kZXIsIGFmZmluZVRyYW5zZm9ybSk7Ci19Ci0KIHZvaWQgQXJn
dW1lbnRDb2RlcjxDYWNoZVF1ZXJ5T3B0aW9ucz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBDYWNoZVF1ZXJ5T3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBlbmNvZGVyIDw8IG9wdGlv
bnMuaWdub3JlU2VhcmNoOwpAQCAtNDI1LDYgKzQ1MSw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxF
dmVudFRyYWNraW5nUmVnaW9ucz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBFdmVudFRyYWNr
aW5nCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiB2
b2lkIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybWF0aW9uTWF0cml4
KQogewogICAgIGVuY29kZXIgPDwgdHJhbnNmb3JtYXRpb25NYXRyaXgubTExKCk7CkBAIC01MDYs
NiArNTMzLDkgQEAgYm9vbCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFRyYW5zZm9ybWF0aW8KICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAordGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5j
b2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwordGVt
cGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5jb2RlPFN0
cmVhbUNvbm5lY3Rpb25FbmNvZGVyPihTdHJlYW1Db25uZWN0aW9uRW5jb2RlciYsIGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4Jik7CisKIHZvaWQgQXJndW1lbnRDb2RlcjxMaW5lYXJUaW1pbmdG
dW5jdGlvbj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMaW5lYXJUaW1pbmdGdW5j
dGlvbiYgdGltaW5nRnVuY3Rpb24pCiB7CiAgICAgZW5jb2RlciA8PCB0aW1pbmdGdW5jdGlvbi50
eXBlKCk7CkBAIC02MTcsNjUgKzY0Nyw2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxTcHJpbmdUaW1p
bmdGdW5jdGlvbj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTcHJpbmdUaW1pbmdGCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UG9pbnQmIGZsb2F0UG9pbnQpCi17Ci0gICAg
U2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0UG9p
bnQpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBGbG9hdFBvaW50JiBmbG9hdFBvaW50KQotewotICAgIHJldHVybiBTaW1wbGVB
cmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRQb2ludCk7Ci19
Ci0KLXN0ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4gQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgRmxvYXRQb2ludCBmbG9hdFBvaW50Owot
ICAgIGlmICghU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2RlKGRlY29kZXIs
IGZsb2F0UG9pbnQpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBm
bG9hdFBvaW50OwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UG9pbnQzRCYgZmxvYXRQb2ludCkKLXsKLSAg
ICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmVuY29kZShlbmNvZGVyLCBmbG9h
dFBvaW50KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFBvaW50M0QmIGZsb2F0UG9pbnQpCi17Ci0gICAgcmV0dXJu
IFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0
UG9pbnQpOwotfQotCi0KLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRSZWN0JiBmbG9hdFJlY3QpCi17Ci0gICAgU2ltcGxl
QXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRSZWN0KTsKLX0K
LQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBGbG9hdFJlY3QmIGZsb2F0UmVjdCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2Rl
cjxGbG9hdFJlY3Q+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRSZWN0KTsKLX0KLQotc3RkOjpvcHRp
b25hbDxGbG9hdFJlY3Q+IEFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCi17Ci0gICAgRmxvYXRSZWN0IGZsb2F0UmVjdDsKLSAgICBpZiAoIVNpbXBsZUFy
Z3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0UmVjdCkpCi0gICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIGZsb2F0UmVjdDsKLX0KLQotCi12
b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgRmxvYXRCb3hFeHRlbnQmIGZsb2F0Qm94RXh0ZW50KQotewotICAgIFNpbXBsZUFy
Z3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRCb3hFeHRl
bnQpOwotfQotICAgIAotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIEZsb2F0Qm94RXh0ZW50JiBmbG9hdEJveEV4dGVudCkKLXsKLSAg
ICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZShkZWNv
ZGVyLCBmbG9hdEJveEV4dGVudCk7Ci19Ci0KLQogdm9pZCBBcmd1bWVudENvZGVyPFJlY3RFZGdl
czxib29sPj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWN0RWRnZXM8Ym9vbD4m
IGJveEVkZ2VzKQogewogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8UmVjdEVkZ2VzPGJvb2w+Pjo6
ZW5jb2RlKGVuY29kZXIsIGJveEVkZ2VzKTsKQEAgLTY4NiwyOCArNjU3LDYgQEAgYm9vbCBBcmd1
bWVudENvZGVyPFJlY3RFZGdlczxib29sPj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZWN0
RWRnZXM8Ym9vbD4mIGIKICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxSZWN0RWRnZXM8
Ym9vbD4+OjpkZWNvZGUoZGVjb2RlciwgYm94RWRnZXMpOwogfQogCi0KLXZvaWQgQXJndW1lbnRD
b2RlcjxGbG9hdFNpemU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRTaXpl
JiBmbG9hdFNpemUpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjplbmNv
ZGUoZW5jb2RlciwgZmxvYXRTaXplKTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0U2l6
ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFNpemUmIGZsb2F0U2l6ZSkKLXsKLSAg
ICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjpkZWNvZGUoZGVjb2Rlciwg
ZmxvYXRTaXplKTsKLX0KLQotCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByb3VuZGVk
UmVjdCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjplbmNv
ZGUoZW5jb2Rlciwgcm91bmRlZFJlY3QpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRS
b3VuZGVkUmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFJvdW5kZWRSZWN0JiBy
b3VuZGVkUmVjdCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFJvdW5k
ZWRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIHJvdW5kZWRSZWN0KTsKLX0KLQogI2lmIEVOQUJMRShN
RVRBX1ZJRVdQT1JUKQogdm9pZCBBcmd1bWVudENvZGVyPFZpZXdwb3J0QXJndW1lbnRzPjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJiB2aWV3cG9ydEFy
Z3VtZW50cykKIHsKQEAgLTczOSw4NyArNjg4LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPFZpZXdw
b3J0QXR0cmlidXRlcz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBWaWV3cG9ydEF0dHJpYnUK
ICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxWaWV3cG9ydEF0dHJpYnV0ZXM+OjpkZWNv
ZGUoZGVjb2Rlciwgdmlld3BvcnRBdHRyaWJ1dGVzKTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVy
PEludFBvaW50Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEludFBvaW50JiBpbnRQ
b2ludCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZW5jb2RlKGVuY29k
ZXIsIGludFBvaW50KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIEludFBvaW50JiBpbnRQb2ludCkKLXsKLSAgICByZXR1cm4gU2lt
cGxlQXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZShkZWNvZGVyLCBpbnRQb2ludCk7Ci19
Ci0KLXN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+IEFyZ3VtZW50Q29kZXI8SW50UG9p
bnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBJbnRQb2ludCBpbnRQb2ludDsK
LSAgICBpZiAoIVNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoZGVjb2Rlciwg
aW50UG9pbnQpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBpbnRQ
b2ludDsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPEludFJlY3Q+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgSW50UmVjdCYgaW50UmVjdCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENv
ZGVyPEludFJlY3Q+OjplbmNvZGUoZW5jb2RlciwgaW50UmVjdCk7Ci19Ci0KLWJvb2wgQXJndW1l
bnRDb2RlcjxJbnRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEludFJlY3QmIGludFJl
Y3QpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZShk
ZWNvZGVyLCBpbnRSZWN0KTsKLX0KLQotc3RkOjpvcHRpb25hbDxJbnRSZWN0PiBBcmd1bWVudENv
ZGVyPEludFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBJbnRSZWN0IHJl
Y3Q7Ci0gICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgcmVjdCkpCi0gICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7Ci0gICAgcmV0dXJuIHJlY3Q7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIEVuY29k
ZXI+Ci12b2lkIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBJbnRTaXplJiBpbnRTaXplKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50
U2l6ZT46OmVuY29kZShlbmNvZGVyLCBpbnRTaXplKTsKLX0KLQotdGVtcGxhdGUKLXZvaWQgQXJn
dW1lbnRDb2RlcjxJbnRTaXplPjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBJbnRT
aXplJik7Ci10ZW1wbGF0ZQotdm9pZCBBcmd1bWVudENvZGVyPEludFNpemU+OjplbmNvZGU8U3Ry
ZWFtQ29ubmVjdGlvbkVuY29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwgY29uc3QgSW50
U2l6ZSYpOwotCi1ib29sIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBJbnRTaXplJiBpbnRTaXplKQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENv
ZGVyPEludFNpemU+OjpkZWNvZGUoZGVjb2RlciwgaW50U2l6ZSk7Ci19Ci0KLXN0ZDo6b3B0aW9u
YWw8SW50U2l6ZT4gQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCi17Ci0gICAgSW50U2l6ZSBpbnRTaXplOwotICAgIGlmICghU2ltcGxlQXJndW1lbnRDb2Rl
cjxJbnRTaXplPjo6ZGVjb2RlKGRlY29kZXIsIGludFNpemUpKQotICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwotICAgIHJldHVybiBpbnRTaXplOwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8
TGF5b3V0U2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMYXlvdXRTaXplJiBs
YXlvdXRTaXplKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmVuY29k
ZShlbmNvZGVyLCBsYXlvdXRTaXplKTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPExheW91dFNp
emU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTGF5b3V0U2l6ZSYgbGF5b3V0U2l6ZSkKLXsK
LSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxMYXlvdXRTaXplPjo6ZGVjb2RlKGRlY29k
ZXIsIGxheW91dFNpemUpOwotfQotCi0KLXZvaWQgQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMYXlvdXRQb2ludCYgbGF5b3V0UG9pbnQp
Ci17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46OmVuY29kZShlbmNvZGVy
LCBsYXlvdXRQb2ludCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCBMYXlvdXRQb2ludCYgbGF5b3V0UG9pbnQpCi17Ci0gICAg
cmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+OjpkZWNvZGUoZGVjb2Rlciwg
bGF5b3V0UG9pbnQpOwotfQotCiB2b2lkIEFyZ3VtZW50Q29kZXI8UmVjZW50U2VhcmNoPjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlY2VudFNlYXJjaCYgcmVjZW50U2VhcmNoKQog
ewogICAgIGVuY29kZXIgPDwgcmVjZW50U2VhcmNoLnN0cmluZyA8PCByZWNlbnRTZWFyY2gudGlt
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXgg
MzUxMzhmNWRlMzJkN2UxZjFmZDE1NGMyNjFmOGU3OTJlNDczNzcxMC4uN2U4ZmVjOWZiM2Y2Mjg1
YWU3ZTYwYjNmMDQ4NGExZWY5OWM3NmU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTI2LDEyICsyNiwyNCBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQWZmaW5lVHJh
bnNmb3JtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRvcGxheUV2ZW50Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Db2xvclNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvRmxvYXRQb2ludDNELmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0Zsb2F0Um91bmRlZFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zs
b2F0U2l6ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvSW5kZXhlZERCLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnB1dE1vZGUuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0ludFBvaW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9MYXlv
dXRQb2ludC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGF5b3V0U2l6ZS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvTGVuZ3RoQm94Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlbGVjdGlvbk9wdGlv
bi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmF0aXZlSW1hZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L05ldHdvcmtMb2FkTWV0cmljcy5oPgpAQCAtOTYsNyArMTA4LDYgQEAgdHlwZWRlZiBzdHJ1Y3Qg
X19DVkJ1ZmZlciogQ1ZQaXhlbEJ1ZmZlclJlZjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgQWJzb2x1dGVQb3NpdGlvbkNvbnN0cmFpbnRzOwotY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwog
Y2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7CiBjbGFzcyBCbG9iUGFydDsKIGNsYXNzIENl
cnRpZmljYXRlSW5mbzsKQEAgLTEwOSwyMSArMTIwLDExIEBAIGNsYXNzIERyYWdEYXRhOwogY2xh
c3MgRmlsZTsKIGNsYXNzIEZpbHRlck9wZXJhdGlvbjsKIGNsYXNzIEZpbHRlck9wZXJhdGlvbnM7
Ci1jbGFzcyBGbG9hdFBvaW50OwotY2xhc3MgRmxvYXRQb2ludDNEOwotY2xhc3MgRmxvYXRSZWN0
OwotY2xhc3MgRmxvYXRSb3VuZGVkUmVjdDsKLWNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIEZpeGVk
UG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzOwogY2xhc3MgRm9udDsKIGNsYXNzIEZvbnRQbGF0
Zm9ybURhdGE7CiBjbGFzcyBIVFRQSGVhZGVyTWFwOwotY2xhc3MgSW50UG9pbnQ7Ci1jbGFzcyBJ
bnRSZWN0OwotY2xhc3MgSW50U2l6ZTsKIGNsYXNzIEtleWZyYW1lVmFsdWVMaXN0OwotY2xhc3Mg
TGF5b3V0U2l6ZTsKLWNsYXNzIExheW91dFBvaW50OwogY2xhc3MgTGluZWFyVGltaW5nRnVuY3Rp
b247CiBjbGFzcyBOb3RpZmljYXRpb247CiBjbGFzcyBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTsKQEAg
LTE3NCw5ICsxNzUsNyBAQCBzdHJ1Y3QgVG91Y2hBY3Rpb25EYXRhOwogc3RydWN0IFZlbG9jaXR5
RGF0YTsKIHN0cnVjdCBWaWV3cG9ydEF0dHJpYnV0ZXM7CiBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7
Ci0gICAgCi10ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgUmVjdEVkZ2VzOwotdXNpbmcgRmxvYXRC
b3hFeHRlbnQgPSBSZWN0RWRnZXM8ZmxvYXQ+OworCiB1c2luZyBJREJLZXlQYXRoID0gVmFyaWFu
dDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+PjsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMjI3
LDEwICsyMjYsMzQgQEAgc3RydWN0IFJlY29yZDsKIAogbmFtZXNwYWNlIElQQyB7CiAKLXRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtPiB7Ci0g
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFu
c2Zvcm0mKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29k
ZXImLCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mKTsKLX07CisjZGVmaW5lIERFRklORV9TSU1Q
TEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihUeXBlKSBcCisgICAgdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxUeXBlPiB7IFwKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5j
b2Rlcj4gc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBUeXBlJik7IFwKKyAgICAg
ICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgVHlwZSYp
OyBcCisgICAgICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFR5cGU+IGRlY29kZShEZWNvZGVyJik7
IFwKKyAgICB9OworCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoV2Vi
Q29yZTo6QWZmaW5lVHJhbnNmb3JtKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
SEVBREVSKFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9D
T0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VN
RU5UX0NPREVSX0ZPUl9IRUFERVIoV2ViQ29yZTo6RmxvYXRQb2ludDNEKQorREVGSU5FX1NJTVBM
RV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0UmVjdCkKK0RFRklORV9T
SU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0
KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0
U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3JlOjpJ
bnRQb2ludCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3Jl
OjpJbnRSZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNv
cmU6OkludFNpemUpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoV2Vi
Q29yZTo6TGF5b3V0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFE
RVIoV2ViQ29yZTo6TGF5b3V0U2l6ZSkKKworI2lmIFVTRShDRykKK0RFRklORV9TSU1QTEVfQVJH
VU1FTlRfQ09ERVJfRk9SX0hFQURFUihDR1JlY3QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NP
REVSX0ZPUl9IRUFERVIoQ0dTaXplKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
SEVBREVSKENHUG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIo
Q0dBZmZpbmVUcmFuc2Zvcm0pCisjZW5kaWYKKworI3VuZGVmIERFRklORV9TSU1QTEVfQVJHVU1F
TlRfQ09ERVJfRk9SX0hFQURFUgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmc+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmcmKTsKQEAgLTI2OCw2ICsyOTEsNyBA
QCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkV2ZW50VHJhY2tpbmdS
ZWdpb25zPiB7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlRyYW5zZm9ybWF0aW9uTWF0cml4PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4K
ICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9y
bWF0aW9uTWF0cml4Jik7CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29k
ZShEZWNvZGVyJiwgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKIH07CkBAIC0yOTks
NDMgKzMyMywxMSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNl
cnRpZmljYXRlSW5mbz4gewogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNlcnRp
ZmljYXRlSW5mbz4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwotICAgIHN0YXRpYyBXQVJO
X1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQm
KTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBkZWNvZGUo
RGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpGbG9hdFBvaW50M0Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotfTsKLQotdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFJlY3Q+IHsKLSAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwot
ICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNv
cmU6OkZsb2F0UmVjdCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0
UmVjdD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0gICAgCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYpOwotICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0
Qm94RXh0ZW50Jik7Ci19OwotCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OlJlY3RFZGdlczxib29sPj4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwg
Y29uc3QgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+Jik7CiAgICAgc3RhdGljIFdBUk5fVU5VU0VE
X1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+Jik7
CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0U2l6
ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNv
ZGVyJiwgV2ViQ29yZTo6RmxvYXRTaXplJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q+IHsKLSAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3QmKTsKLSAgICBz
dGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpG
bG9hdFJvdW5kZWRSZWN0Jik7Ci19OwotCiAjaWYgRU5BQkxFKE1FVEFfVklFV1BPUlQpCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiB7
CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpWaWV3cG9y
dEFyZ3VtZW50cyYpOwpAQCAtMzUwLDM1ICszNDIsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcz4gewogICAgIHN0YXRpYyBXQVJO
X1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlZpZXdwb3J0QXR0
cmlidXRlcyYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpJbnRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlKERlY29kZXImLCBXZWJDb3JlOjpJbnRQb2ludCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OkludFBvaW50PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRSZWN0PiB7Ci0gICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0gICAgc3RhdGlj
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6SW50UmVj
dCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFJlY3Q+IGRlY29kZShE
ZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OkludFNpemU+IHsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgotICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwotICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkludFNp
emUmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRTaXplPiBkZWNvZGUo
RGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpMYXlvdXRTaXplPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBX
ZWJDb3JlOjpMYXlvdXRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29s
IGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6TGF5b3V0U2l6ZSYpOwotfTsKLQotdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMYXlvdXRQb2ludD4gewotICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmKTsKLSAg
ICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3Jl
OjpMYXlvdXRQb2ludCYpOwotfTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpMZW5ndGg+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6Okxlbmd0aCYpOwogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBk
ZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6Okxlbmd0aCYpOwpAQCAtNDU3LDYgKzQyMCw3IEBAIHRl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RHJhZ0RhdGE+IHsKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V1RGOjpNYWNoU2VuZFJpZ2h0PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmKTsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5j
b2RlciYsIFdURjo6TWFjaFNlbmRSaWdodCYmKTsKQEAgLTQ2OCwyNiArNDMyLDcgQEAgdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IHsKICAg
ICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IGRlY29kZShE
ZWNvZGVyJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHUG9pbnQ+
IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIENHUG9pbnQpOwotICAgIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPENHUG9pbnQ+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHU2l6ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgQ0dTaXplKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDR1NpemU+IGRl
Y29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENH
UmVjdD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dSZWN0KTsKLSAgICBz
dGF0aWMgc3RkOjpvcHRpb25hbDxDR1JlY3Q+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPiB7Ci0gICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBDR0FmZmluZVRyYW5zZm9ybSk7Ci0gICAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8Q0dBZmZpbmVUcmFuc2Zvcm0+IGRlY29kZShEZWNvZGVyJik7Ci19Owot
I2VuZGlmCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZWxlY3Rpb25H
ZW9tZXRyeT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVB
cmd1bWVudENvZGVyc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJn
dW1lbnRDb2RlcnNNYWMubW0KaW5kZXggOGU0ZDVmMTMxZDgyZjFkZWZlMjZkMTVhYmZlZTA2NGEz
Yjk4OTBmOC4uNmE0MzQwNjcxNDYzZDk0NzA3MTkyMzEwYjFmN2JhMGJkMDNhNzZmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFj
Lm1tCkBAIC0zMjEsNzkgKzMyMSw2IEBAIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6S2V5cHJlc3ND
b21tYW5kPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD46CiAgICAgcmV0
dXJuIFdURk1vdmUoY29tbWFuZCk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxDR1JlY3Q+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0dSZWN0IHJlY3QpCi17Ci0gICAgZW5jb2RlciA8PCBy
ZWN0Lm9yaWdpbiA8PCByZWN0LnNpemU7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8Q0dSZWN0PiBBcmd1
bWVudENvZGVyPENHUmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIHN0ZDo6
b3B0aW9uYWw8Q0dQb2ludD4gb3JpZ2luOwotICAgIGRlY29kZXIgPj4gb3JpZ2luOwotICAgIGlm
ICghb3JpZ2luKQotICAgICAgICByZXR1cm4geyB9OwotCi0gICAgc3RkOjpvcHRpb25hbDxDR1Np
emU+IHNpemU7Ci0gICAgZGVjb2RlciA+PiBzaXplOwotICAgIGlmICghc2l6ZSkKLSAgICAgICAg
cmV0dXJuIHsgfTsKLQotICAgIHJldHVybiBDR1JlY3QgeyAqb3JpZ2luLCAqc2l6ZSB9OwotfQot
Ci12b2lkIEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENH
U2l6ZSBzaXplKQotewotICAgIGVuY29kZXIgPDwgc2l6ZS53aWR0aCA8PCBzaXplLmhlaWdodDsK
LX0KLQotc3RkOjpvcHRpb25hbDxDR1NpemU+IEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgQ0dTaXplIHNpemU7Ci0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZShzaXplLndpZHRoKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHNpemUuaGVpZ2h0KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4g
c2l6ZTsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPENHUG9pbnQ+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgQ0dQb2ludCBwb2ludCkKLXsKLSAgICBlbmNvZGVyIDw8IHBvaW50LnggPDwgcG9p
bnQueTsKLX0KLQotc3RkOjpvcHRpb25hbDxDR1BvaW50PiBBcmd1bWVudENvZGVyPENHUG9pbnQ+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBDR1BvaW50IHBvaW50OwotICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocG9pbnQueCkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwb2ludC55KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1
cm4gcG9pbnQ7Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxDR0FmZmluZVRyYW5zZm9ybT46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0pCi17Ci0g
ICAgZW5jb2RlciA8PCB0cmFuc2Zvcm0uYSA8PCB0cmFuc2Zvcm0uYiA8PCB0cmFuc2Zvcm0uYyA8
PCB0cmFuc2Zvcm0uZCA8PCB0cmFuc2Zvcm0udHggPDwgdHJhbnNmb3JtLnR5OwotfQotCi1zdGQ6
Om9wdGlvbmFsPENHQWZmaW5lVHJhbnNmb3JtPiBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNm
b3JtPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgQ0dBZmZpbmVUcmFuc2Zvcm0g
dHJhbnNmb3JtOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmEpKQotICAgICAg
ICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmIpKQotICAg
ICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmMpKQot
ICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmQp
KQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3Jt
LnR4KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5z
Zm9ybS50eSkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgcmV0dXJuIHRyYW5zZm9ybTsKLX0K
LQogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKIAogdm9pZCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcj46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIGNvbnRlbnRG
aWx0ZXJVbmJsb2NrSGFuZGxlcikK
</data>
<flag name="commit-queue"
          id="464194"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440312</attachid>
            <date>2021-10-05 17:34:10 -0700</date>
            <delta_ts>2021-10-05 17:44:53 -0700</delta_ts>
            <desc>Try to fix the WPE build again? (6)</desc>
            <filename>bug-230714-20211005173409.patch</filename>
            <type>text/plain</type>
            <size>37071</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcwMTIxY2IyMGJiMWM2YThl
MDhkZjNkZGVjMjNjNzVlZWMwMmIwODIuLmU0ZjAyMDQ2MmFjZjdjODc4ZjZhMmFmNDE2YTMwYzQ3
OTMwMzkxYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzEgQEAKKzIwMjEtMTAtMDUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIFJlZmFj
dG9yIHNvbWUgSVBDIGFyZ3VtZW50IGVuY29kZXIgbG9naWMgdG8gd29yayB3aXRoIFN0cmVhbUNv
bm5lY3Rpb25FbmNvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA3MTQKKyAgICAgICAgcmRhcjovLzgzNDc3NTkxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byB1c2Ug
YElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXJgIHRvIGVuY29kZSBkaXNwbGF5IGxpc3QgaXRl
bXMgKGFuZCB0aGVpciBtZW1iZXJzKSBpbiBhbgorICAgICAgICBJUEMgc3RyZWFtLiBUaGlzIHBh
dGNoIGNvbXByaXNlcyB0d28gbWFpbiBzZXRzIG9mIGNoYW5nZXMgaW4gYEFyZ3VtZW50Q29kZXJz
YCwgYW5kIGBXZWJDb3JlQXJndW1lbnRDb2RlcnNgLiBTZWUKKyAgICAgICAgYmVsb3cgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmRlY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNb25vc3RhdGU+OjpkZWNvZGUpOiBEZWxldGVk
LgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2RlKToKKworICAgICAgICBNYW55IG9mIHRoZXNlIGBl
bmNvZGUoKWAgbWV0aG9kcyBhcmUgY3VycmVudGx5IG5vbi10ZW1wbGF0ZWQsIHdoaWNoIG1lYW5z
IHRoYXQgRW5jb2RlciBhbmQgRGVjb2RlciB1c2VkIGhlcmUKKyAgICAgICAgcmVmZXIgc29sZWx5
IHRvIElQQzo6RW5jb2RlciBhbmQgSVBDOjpEZWNvZGVyIChyZXNwZWN0aXZlbHkpIGluc3RlYWQg
b2Ygb3RoZXIgdHlwZXMgb2YgZW5jb2RlcnMgKG5hbWVseSwKKyAgICAgICAgU3RyZWFtQ29ubmVj
dGlvbkVuY29kZXIpLiBNYWtlIHRoZXNlIHVzZSB0ZW1wbGF0ZWQgYGVuY29kZWAgbWV0aG9kcyBp
bnRlYWQsIHNvIHRoYXQgdGhleSB3b3JrIHdpdGggZ2VuZXJpYworICAgICAgICBlbmNvZGVycy4K
KworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmVuY29kZSk6IERlbGV0ZWQuCisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2RlKTog
RGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQz
RD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRS
ZWN0Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9h
dFJlY3Q+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZs
b2F0Qm94RXh0ZW50Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjplbmNvZGUpOiBEZWxldGVkLgorICAg
ICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjpkZWNvZGUpOiBEZWxl
dGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZW5jb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmRlY29k
ZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPExheW91dFBvaW50
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKworICAgICAgICBUaGVzZSBXZWJDb3JlIGFyZ3VtZW50IGNv
ZGVycyBhcmUgYWxzbyBjdXJyZW50bHkgaW5jb21wYXRpYmxlIHdpdGggU3RyZWFtQ29ubmVjdGlv
bkVuY29kZXIsIHNpbmNlIHRoZXkgYXJlIG5vbi0KKyAgICAgICAgdGVtcGxhdGVkIChhbmQgdGh1
cyBvbmx5IHdvcmsgd2l0aCBJUEM6OkVuY29kZXIpLiBTaW5jZSB0aGVzZSBhcmUgYWxsIGVuY29k
YWJsZSBhcyBQT0QgdHlwZXMsIHdlIGNhbiBqdXN0IHVzZQorICAgICAgICBTaW1wbGVBcmd1bWVu
dENvZGVyIGZvciBhbGwgb2YgdGhlc2UuIFdlIGFsc28gYWRkIG5ldyBgREVGSU5FX1NJTVBMRV9B
UkdVTUVOVF9DT0RFUl9GT1JfKEhFQURFUnxTT1VSQ0UpYCBtYWNyb3MKKyAgICAgICAgdG8gbWFr
ZSB0aGlzIGNvZGUgYSBiaXQgZWFzaWVyIHRvIHJlYWQsIHdoaWNoIGFkZHMgU2ltcGxlQXJndW1l
bnRDb2RlciBmb3IgdGhlIGdpdmVuIHR5cGUsIGZvciBib3RoIHN0YW5kYXJkCisgICAgICAgIElQ
Qzo6RW5jb2RlciBhcyB3ZWxsIGFzIElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXIuCisKKyAg
ICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogU2hhcmVk
L21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW06CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8Q0dSZWN0Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxDR1JlY3Q+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPENHU2l6ZT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8Q0dTaXplPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR1BvaW50Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR1BvaW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR0FmZmluZVRyYW5zZm9ybT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+OjpkZWNvZGUpOiBEZWxldGVkLgorCiAyMDIx
LTEwLTA1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAg
IE1vdmUgRmx1c2hJZGVudGlmaWVyIG91dCBvZiB0aGUgRGlzcGxheUxpc3QgbmFtZXNwYWNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKaW5kZXggYTMy
MDU1MTg3OThiNzRkY2VkYjhhMDEzZjljOWM5ODg1YWFlNjYxNi4uZTdmMjc4MDM2MmRkMjAzNzQz
NGNhMWNiMzkwZGRlNmVmNzkxNTkzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L0FyZ3VtZW50Q29kZXJzLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlByaXZhdGVD
bGlja01lYXN1cmVtZW50RGVjb2Rlci5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVt
ZW50RW5jb2Rlci5oIgogI2luY2x1ZGUgIlN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyLmgiCisjaW5j
bHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMjE4LDYgKzIxOSw3IEBA
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIEFyZ3VtZW50Q29kZXI8U0hBMTo6RGlnZXN0Pjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFNICiB9CiAKICNpZiBIQVZFKEFVRElUX1RPS0VOKQorCiB2
b2lkIEFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBhdWRpdF90b2tlbl90JiBhdWRpdFRva2VuKQogewogICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGF1ZGl0VG9rZW4udmFsKTsgaSsrKQpAQCAtMjMy
LDE1ICsyMzQsNyBAQCBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBBcmd1bWVudENvZGVyPGF1ZGl0
X3Rva2VuX3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgYQogICAgIH0KICAgICByZXR1cm4g
dHJ1ZTsKIH0KLSNlbmRpZgotCi12b2lkIEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBNb25vc3RhdGUmKQotewotfQogCi1XQVJOX1VOVVNFRF9SRVRVUk4g
c3RkOjpvcHRpb25hbDxNb25vc3RhdGU+IEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2Rl
KERlY29kZXImKQotewotICAgIHJldHVybiBNb25vc3RhdGUgeyB9OwotfQorI2VuZGlmIC8vIEhB
VkUoQVVESVRfVE9LRU4pCiAKIH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKaW5kZXggNDc5ZGI2MGVkYzI3MTZkNTU2MDZmNjUy
ZjI0MzFhZDM2OWY2NTcwYy4uZDk3Nzg3N2M1ZmIzNjUwN2JiNjUzMjRjMDY2M2Y4NjE1NjZkNTkz
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCkBAIC0x
MDgsMTIgKzEwOCwxNCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxBcnJheVJlZmVyZW5jZTxULCBhcnJheVJlZmVyZW5jZUR5bmFtaQogfTsKIAogdGVtcGxhdGU8
dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8T3B0aW9uU2V0PFQ+PiB7CisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgT3B0aW9uU2V0PFQ+JiBvcHRpb25TZXQpCiAgICAgewogICAgICAgICBB
U1NFUlQoV1RGOjppc1ZhbGlkT3B0aW9uU2V0KG9wdGlvblNldCkpOwogICAgICAgICBlbmNvZGVy
IDw8IG9wdGlvblNldC50b1JhdygpOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERl
Y29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBPcHRpb25TZXQ8VD4mIG9wdGlvblNldCkKICAgICB7CiAgICAgICAgIHR5cGVu
YW1lIE9wdGlvblNldDxUPjo6U3RvcmFnZVR5cGUgdmFsdWU7CkBAIC0xMjUsNiArMTI3LDcgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8T3B0aW9uU2V0PFQ+PiB7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERl
Y29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8T3B0aW9uU2V0PFQ+PiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgT3B0
aW9uU2V0PFQ+OjpTdG9yYWdlVHlwZT4gdmFsdWU7CkBAIC0xODgsNiArMTkxLDcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpvcHRpb25hbDxUPj4gewog
fTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQm94PFQ+JiBib3gpCiAgICAgewogICAgICAgICBpZiAo
IWJveCkgewpAQCAtMTk5LDYgKzIwMyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBB
cmd1bWVudENvZGVyPEJveDxUPj4gewogICAgICAgICBlbmNvZGVyIDw8ICpib3guZ2V0KCk7CiAg
ICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9V
TlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEJveDxUPiYgYm94KQog
ICAgIHsKICAgICAgICAgYm9vbCBpc0VuZ2FnZWQ7CkBAIC0yMTgsNiArMjIzLDcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8Qm94PFQ+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAg
ICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gaXNFbmdhZ2VkOwpAQCAtMjM2LDExICsy
NDIsMTMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+
PiB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxzdGQ6OnBhaXI8VCwgVT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
PgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBzdGQ6OnBh
aXI8VCwgVT4mIHBhaXIpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHBhaXIuZmlyc3QgPDwg
cGFpci5zZWNvbmQ7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAg
ICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IHN0ZDo6cGFpcjxULCBVPiYgcGFpcikKICAgICB7CiAgICAgICAgIFQgZmlyc3Q7CkBAIC0yNTYs
NiArMjY0LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8c3RkOjpwYWlyPFQsIFU+PiB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
IAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8c3RkOjpwYWlyPFQsIFU+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8VD4gZmlyc3Q7CkBAIC0zNjYsMTEgKzM3NSwxMyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZS4uLiBFbGVtZW50cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjp0dXBsZTxF
bGVtZW50cy4uLj4+IHsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEtleVR5cGUsIHR5cGVuYW1l
IFZhbHVlVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpLZXlWYWx1ZVBhaXI8S2V5VHlw
ZSwgVmFsdWVUeXBlPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6S2V5VmFsdWVQYWly
PEtleVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHBh
aXIua2V5IDw8IHBhaXIudmFsdWU7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVj
b2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFdURjo6S2V5VmFsdWVQYWlyPEtleVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAg
ICAgewogICAgICAgICBLZXlUeXBlIGtleTsKQEAgLTM5OCw2ICs0MDksNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxl
ciwgc2l6ZV90IG1pbgogICAgICAgICAgICAgZW5jb2RlciA8PCB2ZWN0b3JbaV07CiAgICAgfQog
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURf
UkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxULCBpbmxpbmVDYXBh
Y2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4mIHZlY3RvcikKICAgICB7CiAgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRs
ZXIsIG1pbkNhcGFjaXR5Pj4gb3B0aW9uYWw7CkBAIC00MzcsNiArNDQ5LDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRs
ZXIsIHNpemVfdCBtaW4KICAgICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVp
bnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4odmVjdG9yLmRhdGEoKSksIHZlY3Rvci5zaXpl
KCkgKiBzaXplb2YoVCksIGFsaWdub2YoVCkpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hh
bmRsZXIsIG1pbkNhcGFjaXR5PiYgdmVjdG9yKQogICAgIHsKICAgICAgICAgdWludDY0X3QgZGVj
b2RlZFNpemU7CkBAIC00NTEsNyArNDY0LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90
IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KICAg
ICAgICAgLy8gU2luY2Ugd2Uga25vdyB0aGUgdG90YWwgc2l6ZSBvZiB0aGUgZWxlbWVudHMsIHdl
IGNhbiBhbGxvY2F0ZSB0aGUgdmVjdG9yIGluCiAgICAgICAgIC8vIG9uZSBmZWxsIHN3b29wLiBC
ZWZvcmUgYWxsb2NhdGluZyB3ZSBtdXN0IGhvd2V2ZXIgbWFrZSBzdXJlIHRoYXQgdGhlIGRlY29k
ZXIgYnVmZmVyCiAgICAgICAgIC8vIGlzIGJpZyBlbm91Z2guCi0gICAgICAgIGlmICghZGVjb2Rl
ci5idWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluPFQ+KHNpemUpKQorICAgICAgICBpZiAoIWRl
Y29kZXIudGVtcGxhdGUgYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbjxUPihzaXplKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBWZWN0b3I8VCwgaW5saW5lQ2FwYWNp
dHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+IHRlbXA7CkBAIC00OTgsNiArNTExLDcg
QEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBP
dmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlw
ZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcs
IHR5cGVuYW1lIE1hcHBlZFRyYWl0c0FyZywgdHlwZW5hbWUgSGFzaFRhYmxlVHJhaXRzPiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlU
cmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPj4gewogICAgIHR5cGVk
ZWYgSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBw
ZWRUcmFpdHNBcmcsIEhhc2hUYWJsZVRyYWl0cz4gSGFzaE1hcFR5cGU7CiAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBIYXNoTWFwVHlwZSYgaGFzaE1hcCkKICAgICB7CiAgICAgICAgIGVuY29kZXIg
PDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGhhc2hNYXAuc2l6ZSgpKTsKQEAgLTUwNSw2ICs1MTks
NyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5h
bWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogICAgICAgICAgICAgZW5jb2RlciA8PCAqaXQ7
CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxIYXNoTWFwVHlwZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewog
ICAgICAgICB1aW50MzJfdCBoYXNoTWFwU2l6ZTsKQEAgLTUzNSw2ICs1NTAsNyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywg
dHlwZW5hbWUgS2V5VHJhaQogICAgICAgICByZXR1cm4gaGFzaE1hcDsKICAgICB9CiAKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSGFzaE1hcFR5cGUmIGhhc2hNYXApCiAgICAg
ewogICAgICAgICBzdGQ6Om9wdGlvbmFsPEhhc2hNYXBUeXBlPiB0ZW1wSGFzaE1hcDsKQEAgLTU0
OSw2ICs1NjUsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogdGVtcGxhdGU8dHlwZW5hbWUg
S2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1l
IEhhc2hUYWJsZVRyYWl0cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaFNldDxLZXlBcmcsIEhh
c2hBcmcsIEtleVRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPj4gewogICAgIHR5cGVkZWYgSGFz
aFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPiBIYXNo
U2V0VHlwZTsKIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEhhc2hTZXRUeXBlJiBoYXNoU2V0KQog
ICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaGFzaFNldC5z
aXplKCkpOwpAQCAtNTU2LDYgKzU3Myw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlw
ZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNoCiAgICAg
ICAgICAgICBlbmNvZGVyIDw8ICppdDsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBE
ZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgSGFzaFNldFR5cGUmIGhhc2hTZXQpCiAgICAgewogICAgICAgICBzdGQ6Om9w
dGlvbmFsPEhhc2hTZXRUeXBlPiB0ZW1wSGFzaFNldDsKQEAgLTU2Nyw2ICs1ODUsNyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0
c0FyZywgdHlwZW5hbWUgSGFzaAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEhhc2hT
ZXRUeXBlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHVpbnQ2NF90
IGhhc2hTZXRTaXplOwpAQCAtNTk2LDYgKzYxNSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNo
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtl
eVRyYWl0c0FyZz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaENvdW50ZWRTZXQ8S2V5QXJnLCBI
YXNoQXJnLCBLZXlUcmFpdHNBcmc+PiB7CiAgICAgdHlwZWRlZiBIYXNoQ291bnRlZFNldDxLZXlB
cmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZz4gSGFzaENvdW50ZWRTZXRUeXBlOwogICAgIAorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENvdW50ZWRTZXQpCiAg
ICAgewogICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihoYXNoQ291bnRl
ZFNldC5zaXplKCkpOwpAQCAtNjA2LDYgKzYyNiw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnPiBzdHJ1Y3QgQXJndW1l
CiAgICAgICAgIH0KICAgICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4K
ICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENvdW50ZWRTZXQpCiAgICAgewogICAgICAgICB1
aW50NjRfdCBoYXNoQ291bnRlZFNldFNpemU7CkBAIC02MzcsNiArNjU4LDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmc+
IHN0cnVjdCBBcmd1bWUKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5h
bWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWYWx1ZVR5cGUsIEVy
cm9yVHlwZT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBFeHBlY3RlZDxWYWx1ZVR5cGUsIEVy
cm9yVHlwZT4mIGV4cGVjdGVkKQogICAgIHsKICAgICAgICAgaWYgKCFleHBlY3RlZC5oYXNfdmFs
dWUoKSkgewpAQCAtNjQ4LDYgKzY3MCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwg
dHlwZW5hbWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWCiAgICAg
ICAgIGVuY29kZXIgPDwgZXhwZWN0ZWQudmFsdWUoKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4cGVjdGVkPFZhbHVl
VHlwZSwgRXJyb3JUeXBlPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAg
ICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGhhc1ZhbHVlOwpAQCAtNzA0LDYgKzcyNyw3IEBAIHRlbXBs
YXRlPHR5cGVuYW1lIEVycm9yVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8RXhwZWN0ZWQ8dm9p
ZCwgRXJyb3JUeXBlPj4gewogCiB0ZW1wbGF0ZTxzaXplX3QgaW5kZXgsIHR5cGVuYW1lLi4uIFR5
cGVzPgogc3RydWN0IFZhcmlhbnRDb2RlciB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rl
cj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV1RGOjpW
YXJpYW50PFR5cGVzLi4uPiYgdmFyaWFudCwgdW5zaWduZWQgaSkKICAgICB7CiAgICAgICAgIGlm
IChpID09IGluZGV4KSB7CkBAIC03MTMsNiArNzM3LDcgQEAgc3RydWN0IFZhcmlhbnRDb2RlciB7
CiAgICAgICAgIFZhcmlhbnRDb2RlcjxpbmRleCAtIDEsIFR5cGVzLi4uPjo6ZW5jb2RlKGVuY29k
ZXIsIHZhcmlhbnQsIGkpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNv
ZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgaWYgKGkg
PT0gaW5kZXgpIHsKQEAgLTcyOCwxMiArNzUzLDE0IEBAIHN0cnVjdCBWYXJpYW50Q29kZXIgewog
CiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4KIHN0cnVjdCBWYXJpYW50Q29kZXI8MCwgVHlw
ZXMuLi4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+JiB2
YXJpYW50LCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChpLCAhaSk7
CiAgICAgICAgIGVuY29kZXIgPDwgV1RGOjpnZXQ8MD4odmFyaWFudCk7CiAgICAgfQogICAgIAor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIsIHVuc2lnbmVk
IGkpCiAgICAgewogICAgICAgICBBU1NFUlRfVU5VU0VEKGksICFpKTsKQEAgLTc0Niw2ICs3NzMs
NyBAQCBzdHJ1Y3QgVmFyaWFudENvZGVyPDAsIFR5cGVzLi4uPiB7CiB9OwogCiB0ZW1wbGF0ZTx0
eXBlbmFtZS4uLiBUeXBlcz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpWYXJpYW50PFR5cGVz
Li4uPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6VmFyaWFudDxUeXBlcy4uLj4mIHZh
cmlhbnQpCiAgICAgewogICAgICAgICB1bnNpZ25lZCBpID0gdmFyaWFudC5pbmRleCgpOwpAQCAt
NzUzLDYgKzc4MSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+PiB7CiAgICAgICAgIFZhcmlhbnRDb2Rlcjxz
aXplb2YuLi4oVHlwZXMpIC0gMSwgVHlwZXMuLi4+OjplbmNvZGUoZW5jb2RlciwgdmFyaWFudCwg
aSk7CiAgICAgfQogICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBpOwpAQCAt
ODA0LDggKzgzMywxNCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rv
a2VuX3Q+IHsKICNlbmRpZgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPE1vbm9z
dGF0ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgTW9ub3N0YXRl
Jik7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBkZWNvZGUoRGVjb2RlciYp
OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CisgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBNb25vc3RhdGUmKSB7IH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1l
IERlY29kZXI+CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBkZWNvZGUoRGVj
b2RlciYpCisgICAgeworICAgICAgICByZXR1cm4gTW9ub3N0YXRlIHsgfTsKKyAgICB9CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwCmluZGV4IGVlZWU2YWViNjFhMzM4YWY4ZDNjYWVmYmY1MjQ5MTk0MGFm
NzA1NWIuLjg2N2Y2ZDU0OGI5ZTI5ODRlYzcxZjMzZGEwMjg5ODcyMzk3MWNkMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMTI1LDYg
KzEyNSw0MiBAQCBuYW1lc3BhY2UgSVBDIHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKIAorI2RlZmluZSBERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NP
REVSX0ZPUl9TT1VSQ0UoVHlwZSkgXAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IFwK
KyAgICB2b2lkIEFyZ3VtZW50Q29kZXI8VHlwZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBUeXBlJiB2YWx1ZSkgeyBTaW1wbGVBcmd1bWVudENvZGVyPFR5cGU+OjplbmNvZGUoZW5j
b2RlciwgdmFsdWUpOyB9IFwKKyAgICBib29sIEFyZ3VtZW50Q29kZXI8VHlwZT46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBUeXBlJiB2YWx1ZSkgeyByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2Rl
cjxUeXBlPjo6ZGVjb2RlKGRlY29kZXIsIHZhbHVlKTsgfSBcCisgICAgc3RkOjpvcHRpb25hbDxU
eXBlPiBBcmd1bWVudENvZGVyPFR5cGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikgXAorICAg
IHsgXAorICAgICAgICBUeXBlIHZhbHVlOyBcCisgICAgICAgIGlmICghZGVjb2RlKGRlY29kZXIs
IHZhbHVlKSkgXAorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgXAorICAgICAgICBy
ZXR1cm4gdmFsdWU7IFwKKyAgICB9IFwKKyAgICB0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8
VHlwZT46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVyJiwgY29uc3QgVHlwZSYpOyBcCisgICAgdGVt
cGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFR5cGU+OjplbmNvZGU8U3RyZWFtQ29ubmVjdGlvbkVu
Y29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwgY29uc3QgVHlwZSYpOworCitERUZJTkVf
U0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoQWZmaW5lVHJhbnNmb3JtKQorREVGSU5F
X1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0Qm94RXh0ZW50KQorREVGSU5F
X1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0UG9pbnQpCitERUZJTkVfU0lN
UExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoRmxvYXRQb2ludDNEKQorREVGSU5FX1NJTVBM
RV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0UmVjdCkKK0RFRklORV9TSU1QTEVfQVJH
VU1FTlRfQ09ERVJfRk9SX1NPVVJDRShGbG9hdFJvdW5kZWRSZWN0KQorREVGSU5FX1NJTVBMRV9B
UkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1F
TlRfQ09ERVJfRk9SX1NPVVJDRShJbnRQb2ludCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09E
RVJfRk9SX1NPVVJDRShJbnRSZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
U09VUkNFKEludFNpemUpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0Uo
TGF5b3V0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoTGF5
b3V0U2l6ZSkKKworI2lmIFVTRShDRykKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9S
X1NPVVJDRShDR1JlY3QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0Uo
Q0dTaXplKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKENHUG9pbnQp
CitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoQ0dBZmZpbmVUcmFuc2Zv
cm0pCisjZW5kaWYKKworI3VuZGVmIERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX1NP
VVJDRQorCiBzdGF0aWMgdm9pZCBlbmNvZGVTaGFyZWRCdWZmZXIoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgU2hhcmVkQnVmZmVyKiBidWZmZXIpCiB7CiAgICAgYm9vbCBpc051bGwgPSAhYnVmZmVy
OwpAQCAtMjMxLDE2ICsyNjcsNiBAQCBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlVHlwZXNBbmREYXRhKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxTdHJpbgogICAgIHJldHVy
biB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgYWZmaW5lVHJhbnNmb3Jt
KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2RlKGVu
Y29kZXIsIGFmZmluZVRyYW5zZm9ybSk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxBZmZpbmVU
cmFuc2Zvcm0+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgQWZmaW5lVHJhbnNmb3JtJiBhZmZp
bmVUcmFuc2Zvcm0pCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJh
bnNmb3JtPjo6ZGVjb2RlKGRlY29kZXIsIGFmZmluZVRyYW5zZm9ybSk7Ci19Ci0KIHZvaWQgQXJn
dW1lbnRDb2RlcjxDYWNoZVF1ZXJ5T3B0aW9ucz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBDYWNoZVF1ZXJ5T3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBlbmNvZGVyIDw8IG9wdGlv
bnMuaWdub3JlU2VhcmNoOwpAQCAtNDI1LDYgKzQ1MSw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxF
dmVudFRyYWNraW5nUmVnaW9ucz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBFdmVudFRyYWNr
aW5nCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiB2
b2lkIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybWF0aW9uTWF0cml4
KQogewogICAgIGVuY29kZXIgPDwgdHJhbnNmb3JtYXRpb25NYXRyaXgubTExKCk7CkBAIC01MDYs
NiArNTMzLDkgQEAgYm9vbCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFRyYW5zZm9ybWF0aW8KICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAordGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5j
b2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwordGVt
cGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5jb2RlPFN0
cmVhbUNvbm5lY3Rpb25FbmNvZGVyPihTdHJlYW1Db25uZWN0aW9uRW5jb2RlciYsIGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4Jik7CisKIHZvaWQgQXJndW1lbnRDb2RlcjxMaW5lYXJUaW1pbmdG
dW5jdGlvbj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMaW5lYXJUaW1pbmdGdW5j
dGlvbiYgdGltaW5nRnVuY3Rpb24pCiB7CiAgICAgZW5jb2RlciA8PCB0aW1pbmdGdW5jdGlvbi50
eXBlKCk7CkBAIC02MTcsNjUgKzY0Nyw2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxTcHJpbmdUaW1p
bmdGdW5jdGlvbj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTcHJpbmdUaW1pbmdGCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UG9pbnQmIGZsb2F0UG9pbnQpCi17Ci0gICAg
U2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0UG9p
bnQpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBGbG9hdFBvaW50JiBmbG9hdFBvaW50KQotewotICAgIHJldHVybiBTaW1wbGVB
cmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRQb2ludCk7Ci19
Ci0KLXN0ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4gQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgRmxvYXRQb2ludCBmbG9hdFBvaW50Owot
ICAgIGlmICghU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2RlKGRlY29kZXIs
IGZsb2F0UG9pbnQpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBm
bG9hdFBvaW50OwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UG9pbnQzRCYgZmxvYXRQb2ludCkKLXsKLSAg
ICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmVuY29kZShlbmNvZGVyLCBmbG9h
dFBvaW50KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFBvaW50M0QmIGZsb2F0UG9pbnQpCi17Ci0gICAgcmV0dXJu
IFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0
UG9pbnQpOwotfQotCi0KLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRSZWN0JiBmbG9hdFJlY3QpCi17Ci0gICAgU2ltcGxl
QXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRSZWN0KTsKLX0K
LQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBGbG9hdFJlY3QmIGZsb2F0UmVjdCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2Rl
cjxGbG9hdFJlY3Q+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRSZWN0KTsKLX0KLQotc3RkOjpvcHRp
b25hbDxGbG9hdFJlY3Q+IEFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCi17Ci0gICAgRmxvYXRSZWN0IGZsb2F0UmVjdDsKLSAgICBpZiAoIVNpbXBsZUFy
Z3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0UmVjdCkpCi0gICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIGZsb2F0UmVjdDsKLX0KLQotCi12
b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgRmxvYXRCb3hFeHRlbnQmIGZsb2F0Qm94RXh0ZW50KQotewotICAgIFNpbXBsZUFy
Z3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRCb3hFeHRl
bnQpOwotfQotICAgIAotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIEZsb2F0Qm94RXh0ZW50JiBmbG9hdEJveEV4dGVudCkKLXsKLSAg
ICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZShkZWNv
ZGVyLCBmbG9hdEJveEV4dGVudCk7Ci19Ci0KLQogdm9pZCBBcmd1bWVudENvZGVyPFJlY3RFZGdl
czxib29sPj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWN0RWRnZXM8Ym9vbD4m
IGJveEVkZ2VzKQogewogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8UmVjdEVkZ2VzPGJvb2w+Pjo6
ZW5jb2RlKGVuY29kZXIsIGJveEVkZ2VzKTsKQEAgLTY4NiwyOCArNjU3LDYgQEAgYm9vbCBBcmd1
bWVudENvZGVyPFJlY3RFZGdlczxib29sPj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZWN0
RWRnZXM8Ym9vbD4mIGIKICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxSZWN0RWRnZXM8
Ym9vbD4+OjpkZWNvZGUoZGVjb2RlciwgYm94RWRnZXMpOwogfQogCi0KLXZvaWQgQXJndW1lbnRD
b2RlcjxGbG9hdFNpemU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRTaXpl
JiBmbG9hdFNpemUpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjplbmNv
ZGUoZW5jb2RlciwgZmxvYXRTaXplKTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0U2l6
ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFNpemUmIGZsb2F0U2l6ZSkKLXsKLSAg
ICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjpkZWNvZGUoZGVjb2Rlciwg
ZmxvYXRTaXplKTsKLX0KLQotCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByb3VuZGVk
UmVjdCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjplbmNv
ZGUoZW5jb2Rlciwgcm91bmRlZFJlY3QpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRS
b3VuZGVkUmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFJvdW5kZWRSZWN0JiBy
b3VuZGVkUmVjdCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFJvdW5k
ZWRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIHJvdW5kZWRSZWN0KTsKLX0KLQogI2lmIEVOQUJMRShN
RVRBX1ZJRVdQT1JUKQogdm9pZCBBcmd1bWVudENvZGVyPFZpZXdwb3J0QXJndW1lbnRzPjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJiB2aWV3cG9ydEFy
Z3VtZW50cykKIHsKQEAgLTczOSw4NyArNjg4LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPFZpZXdw
b3J0QXR0cmlidXRlcz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBWaWV3cG9ydEF0dHJpYnUK
ICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxWaWV3cG9ydEF0dHJpYnV0ZXM+OjpkZWNv
ZGUoZGVjb2Rlciwgdmlld3BvcnRBdHRyaWJ1dGVzKTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVy
PEludFBvaW50Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEludFBvaW50JiBpbnRQ
b2ludCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZW5jb2RlKGVuY29k
ZXIsIGludFBvaW50KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIEludFBvaW50JiBpbnRQb2ludCkKLXsKLSAgICByZXR1cm4gU2lt
cGxlQXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZShkZWNvZGVyLCBpbnRQb2ludCk7Ci19
Ci0KLXN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+IEFyZ3VtZW50Q29kZXI8SW50UG9p
bnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBJbnRQb2ludCBpbnRQb2ludDsK
LSAgICBpZiAoIVNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoZGVjb2Rlciwg
aW50UG9pbnQpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBpbnRQ
b2ludDsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPEludFJlY3Q+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgSW50UmVjdCYgaW50UmVjdCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENv
ZGVyPEludFJlY3Q+OjplbmNvZGUoZW5jb2RlciwgaW50UmVjdCk7Ci19Ci0KLWJvb2wgQXJndW1l
bnRDb2RlcjxJbnRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEludFJlY3QmIGludFJl
Y3QpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZShk
ZWNvZGVyLCBpbnRSZWN0KTsKLX0KLQotc3RkOjpvcHRpb25hbDxJbnRSZWN0PiBBcmd1bWVudENv
ZGVyPEludFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBJbnRSZWN0IHJl
Y3Q7Ci0gICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgcmVjdCkpCi0gICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7Ci0gICAgcmV0dXJuIHJlY3Q7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIEVuY29k
ZXI+Ci12b2lkIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBJbnRTaXplJiBpbnRTaXplKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50
U2l6ZT46OmVuY29kZShlbmNvZGVyLCBpbnRTaXplKTsKLX0KLQotdGVtcGxhdGUKLXZvaWQgQXJn
dW1lbnRDb2RlcjxJbnRTaXplPjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBJbnRT
aXplJik7Ci10ZW1wbGF0ZQotdm9pZCBBcmd1bWVudENvZGVyPEludFNpemU+OjplbmNvZGU8U3Ry
ZWFtQ29ubmVjdGlvbkVuY29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwgY29uc3QgSW50
U2l6ZSYpOwotCi1ib29sIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBJbnRTaXplJiBpbnRTaXplKQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENv
ZGVyPEludFNpemU+OjpkZWNvZGUoZGVjb2RlciwgaW50U2l6ZSk7Ci19Ci0KLXN0ZDo6b3B0aW9u
YWw8SW50U2l6ZT4gQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCi17Ci0gICAgSW50U2l6ZSBpbnRTaXplOwotICAgIGlmICghU2ltcGxlQXJndW1lbnRDb2Rl
cjxJbnRTaXplPjo6ZGVjb2RlKGRlY29kZXIsIGludFNpemUpKQotICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwotICAgIHJldHVybiBpbnRTaXplOwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8
TGF5b3V0U2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMYXlvdXRTaXplJiBs
YXlvdXRTaXplKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmVuY29k
ZShlbmNvZGVyLCBsYXlvdXRTaXplKTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPExheW91dFNp
emU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTGF5b3V0U2l6ZSYgbGF5b3V0U2l6ZSkKLXsK
LSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxMYXlvdXRTaXplPjo6ZGVjb2RlKGRlY29k
ZXIsIGxheW91dFNpemUpOwotfQotCi0KLXZvaWQgQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMYXlvdXRQb2ludCYgbGF5b3V0UG9pbnQp
Ci17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46OmVuY29kZShlbmNvZGVy
LCBsYXlvdXRQb2ludCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCBMYXlvdXRQb2ludCYgbGF5b3V0UG9pbnQpCi17Ci0gICAg
cmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+OjpkZWNvZGUoZGVjb2Rlciwg
bGF5b3V0UG9pbnQpOwotfQotCiB2b2lkIEFyZ3VtZW50Q29kZXI8UmVjZW50U2VhcmNoPjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlY2VudFNlYXJjaCYgcmVjZW50U2VhcmNoKQog
ewogICAgIGVuY29kZXIgPDwgcmVjZW50U2VhcmNoLnN0cmluZyA8PCByZWNlbnRTZWFyY2gudGlt
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXgg
MzUxMzhmNWRlMzJkN2UxZjFmZDE1NGMyNjFmOGU3OTJlNDczNzcxMC4uN2U4ZmVjOWZiM2Y2Mjg1
YWU3ZTYwYjNmMDQ4NGExZWY5OWM3NmU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTI2LDEyICsyNiwyNCBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQWZmaW5lVHJh
bnNmb3JtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRvcGxheUV2ZW50Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Db2xvclNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvRmxvYXRQb2ludDNELmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0Zsb2F0Um91bmRlZFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zs
b2F0U2l6ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvSW5kZXhlZERCLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnB1dE1vZGUuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0ludFBvaW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9MYXlv
dXRQb2ludC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGF5b3V0U2l6ZS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvTGVuZ3RoQm94Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlbGVjdGlvbk9wdGlv
bi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmF0aXZlSW1hZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L05ldHdvcmtMb2FkTWV0cmljcy5oPgpAQCAtOTYsNyArMTA4LDYgQEAgdHlwZWRlZiBzdHJ1Y3Qg
X19DVkJ1ZmZlciogQ1ZQaXhlbEJ1ZmZlclJlZjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgQWJzb2x1dGVQb3NpdGlvbkNvbnN0cmFpbnRzOwotY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwog
Y2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7CiBjbGFzcyBCbG9iUGFydDsKIGNsYXNzIENl
cnRpZmljYXRlSW5mbzsKQEAgLTEwOSwyMSArMTIwLDExIEBAIGNsYXNzIERyYWdEYXRhOwogY2xh
c3MgRmlsZTsKIGNsYXNzIEZpbHRlck9wZXJhdGlvbjsKIGNsYXNzIEZpbHRlck9wZXJhdGlvbnM7
Ci1jbGFzcyBGbG9hdFBvaW50OwotY2xhc3MgRmxvYXRQb2ludDNEOwotY2xhc3MgRmxvYXRSZWN0
OwotY2xhc3MgRmxvYXRSb3VuZGVkUmVjdDsKLWNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIEZpeGVk
UG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzOwogY2xhc3MgRm9udDsKIGNsYXNzIEZvbnRQbGF0
Zm9ybURhdGE7CiBjbGFzcyBIVFRQSGVhZGVyTWFwOwotY2xhc3MgSW50UG9pbnQ7Ci1jbGFzcyBJ
bnRSZWN0OwotY2xhc3MgSW50U2l6ZTsKIGNsYXNzIEtleWZyYW1lVmFsdWVMaXN0OwotY2xhc3Mg
TGF5b3V0U2l6ZTsKLWNsYXNzIExheW91dFBvaW50OwogY2xhc3MgTGluZWFyVGltaW5nRnVuY3Rp
b247CiBjbGFzcyBOb3RpZmljYXRpb247CiBjbGFzcyBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTsKQEAg
LTE3NCw5ICsxNzUsNyBAQCBzdHJ1Y3QgVG91Y2hBY3Rpb25EYXRhOwogc3RydWN0IFZlbG9jaXR5
RGF0YTsKIHN0cnVjdCBWaWV3cG9ydEF0dHJpYnV0ZXM7CiBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7
Ci0gICAgCi10ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgUmVjdEVkZ2VzOwotdXNpbmcgRmxvYXRC
b3hFeHRlbnQgPSBSZWN0RWRnZXM8ZmxvYXQ+OworCiB1c2luZyBJREJLZXlQYXRoID0gVmFyaWFu
dDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+PjsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMjI3
LDEwICsyMjYsMzQgQEAgc3RydWN0IFJlY29yZDsKIAogbmFtZXNwYWNlIElQQyB7CiAKLXRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtPiB7Ci0g
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFu
c2Zvcm0mKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29k
ZXImLCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mKTsKLX07CisjZGVmaW5lIERFRklORV9TSU1Q
TEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihUeXBlKSBcCisgICAgdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxUeXBlPiB7IFwKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5j
b2Rlcj4gc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBUeXBlJik7IFwKKyAgICAg
ICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgVHlwZSYp
OyBcCisgICAgICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFR5cGU+IGRlY29kZShEZWNvZGVyJik7
IFwKKyAgICB9OworCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoV2Vi
Q29yZTo6QWZmaW5lVHJhbnNmb3JtKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
SEVBREVSKFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9D
T0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VN
RU5UX0NPREVSX0ZPUl9IRUFERVIoV2ViQ29yZTo6RmxvYXRQb2ludDNEKQorREVGSU5FX1NJTVBM
RV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0UmVjdCkKK0RFRklORV9T
SU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0
KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0
U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3JlOjpJ
bnRQb2ludCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3Jl
OjpJbnRSZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNv
cmU6OkludFNpemUpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoV2Vi
Q29yZTo6TGF5b3V0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFE
RVIoV2ViQ29yZTo6TGF5b3V0U2l6ZSkKKworI2lmIFVTRShDRykKK0RFRklORV9TSU1QTEVfQVJH
VU1FTlRfQ09ERVJfRk9SX0hFQURFUihDR1JlY3QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NP
REVSX0ZPUl9IRUFERVIoQ0dTaXplKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
SEVBREVSKENHUG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIo
Q0dBZmZpbmVUcmFuc2Zvcm0pCisjZW5kaWYKKworI3VuZGVmIERFRklORV9TSU1QTEVfQVJHVU1F
TlRfQ09ERVJfRk9SX0hFQURFUgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmc+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmcmKTsKQEAgLTI2OCw2ICsyOTEsNyBA
QCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkV2ZW50VHJhY2tpbmdS
ZWdpb25zPiB7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlRyYW5zZm9ybWF0aW9uTWF0cml4PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4K
ICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9y
bWF0aW9uTWF0cml4Jik7CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29k
ZShEZWNvZGVyJiwgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKIH07CkBAIC0yOTks
NDMgKzMyMywxMSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNl
cnRpZmljYXRlSW5mbz4gewogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNlcnRp
ZmljYXRlSW5mbz4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwotICAgIHN0YXRpYyBXQVJO
X1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQm
KTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBkZWNvZGUo
RGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpGbG9hdFBvaW50M0Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotfTsKLQotdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFJlY3Q+IHsKLSAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwot
ICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNv
cmU6OkZsb2F0UmVjdCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0
UmVjdD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0gICAgCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYpOwotICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0
Qm94RXh0ZW50Jik7Ci19OwotCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OlJlY3RFZGdlczxib29sPj4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwg
Y29uc3QgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+Jik7CiAgICAgc3RhdGljIFdBUk5fVU5VU0VE
X1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+Jik7
CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0U2l6
ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNv
ZGVyJiwgV2ViQ29yZTo6RmxvYXRTaXplJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q+IHsKLSAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3QmKTsKLSAgICBz
dGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpG
bG9hdFJvdW5kZWRSZWN0Jik7Ci19OwotCiAjaWYgRU5BQkxFKE1FVEFfVklFV1BPUlQpCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiB7
CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpWaWV3cG9y
dEFyZ3VtZW50cyYpOwpAQCAtMzUwLDM1ICszNDIsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcz4gewogICAgIHN0YXRpYyBXQVJO
X1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlZpZXdwb3J0QXR0
cmlidXRlcyYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpJbnRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlKERlY29kZXImLCBXZWJDb3JlOjpJbnRQb2ludCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OkludFBvaW50PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRSZWN0PiB7Ci0gICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0gICAgc3RhdGlj
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6SW50UmVj
dCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFJlY3Q+IGRlY29kZShE
ZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OkludFNpemU+IHsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgotICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwotICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkludFNp
emUmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRTaXplPiBkZWNvZGUo
RGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpMYXlvdXRTaXplPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBX
ZWJDb3JlOjpMYXlvdXRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29s
IGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6TGF5b3V0U2l6ZSYpOwotfTsKLQotdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMYXlvdXRQb2ludD4gewotICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmKTsKLSAg
ICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3Jl
OjpMYXlvdXRQb2ludCYpOwotfTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpMZW5ndGg+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6Okxlbmd0aCYpOwogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBk
ZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6Okxlbmd0aCYpOwpAQCAtNDU3LDYgKzQyMCw3IEBAIHRl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RHJhZ0RhdGE+IHsKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V1RGOjpNYWNoU2VuZFJpZ2h0PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmKTsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5j
b2RlciYsIFdURjo6TWFjaFNlbmRSaWdodCYmKTsKQEAgLTQ2OCwyNiArNDMyLDcgQEAgdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IHsKICAg
ICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IGRlY29kZShE
ZWNvZGVyJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHUG9pbnQ+
IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIENHUG9pbnQpOwotICAgIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPENHUG9pbnQ+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHU2l6ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgQ0dTaXplKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDR1NpemU+IGRl
Y29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENH
UmVjdD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dSZWN0KTsKLSAgICBz
dGF0aWMgc3RkOjpvcHRpb25hbDxDR1JlY3Q+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPiB7Ci0gICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBDR0FmZmluZVRyYW5zZm9ybSk7Ci0gICAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8Q0dBZmZpbmVUcmFuc2Zvcm0+IGRlY29kZShEZWNvZGVyJik7Ci19Owot
I2VuZGlmCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZWxlY3Rpb25H
ZW9tZXRyeT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVB
cmd1bWVudENvZGVyc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJn
dW1lbnRDb2RlcnNNYWMubW0KaW5kZXggOGU0ZDVmMTMxZDgyZjFkZWZlMjZkMTVhYmZlZTA2NGEz
Yjk4OTBmOC4uNmE0MzQwNjcxNDYzZDk0NzA3MTkyMzEwYjFmN2JhMGJkMDNhNzZmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFj
Lm1tCkBAIC0zMjEsNzkgKzMyMSw2IEBAIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6S2V5cHJlc3ND
b21tYW5kPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD46CiAgICAgcmV0
dXJuIFdURk1vdmUoY29tbWFuZCk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxDR1JlY3Q+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0dSZWN0IHJlY3QpCi17Ci0gICAgZW5jb2RlciA8PCBy
ZWN0Lm9yaWdpbiA8PCByZWN0LnNpemU7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8Q0dSZWN0PiBBcmd1
bWVudENvZGVyPENHUmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIHN0ZDo6
b3B0aW9uYWw8Q0dQb2ludD4gb3JpZ2luOwotICAgIGRlY29kZXIgPj4gb3JpZ2luOwotICAgIGlm
ICghb3JpZ2luKQotICAgICAgICByZXR1cm4geyB9OwotCi0gICAgc3RkOjpvcHRpb25hbDxDR1Np
emU+IHNpemU7Ci0gICAgZGVjb2RlciA+PiBzaXplOwotICAgIGlmICghc2l6ZSkKLSAgICAgICAg
cmV0dXJuIHsgfTsKLQotICAgIHJldHVybiBDR1JlY3QgeyAqb3JpZ2luLCAqc2l6ZSB9OwotfQot
Ci12b2lkIEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENH
U2l6ZSBzaXplKQotewotICAgIGVuY29kZXIgPDwgc2l6ZS53aWR0aCA8PCBzaXplLmhlaWdodDsK
LX0KLQotc3RkOjpvcHRpb25hbDxDR1NpemU+IEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgQ0dTaXplIHNpemU7Ci0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZShzaXplLndpZHRoKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHNpemUuaGVpZ2h0KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4g
c2l6ZTsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPENHUG9pbnQ+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgQ0dQb2ludCBwb2ludCkKLXsKLSAgICBlbmNvZGVyIDw8IHBvaW50LnggPDwgcG9p
bnQueTsKLX0KLQotc3RkOjpvcHRpb25hbDxDR1BvaW50PiBBcmd1bWVudENvZGVyPENHUG9pbnQ+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBDR1BvaW50IHBvaW50OwotICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocG9pbnQueCkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwb2ludC55KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1
cm4gcG9pbnQ7Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxDR0FmZmluZVRyYW5zZm9ybT46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0pCi17Ci0g
ICAgZW5jb2RlciA8PCB0cmFuc2Zvcm0uYSA8PCB0cmFuc2Zvcm0uYiA8PCB0cmFuc2Zvcm0uYyA8
PCB0cmFuc2Zvcm0uZCA8PCB0cmFuc2Zvcm0udHggPDwgdHJhbnNmb3JtLnR5OwotfQotCi1zdGQ6
Om9wdGlvbmFsPENHQWZmaW5lVHJhbnNmb3JtPiBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNm
b3JtPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgQ0dBZmZpbmVUcmFuc2Zvcm0g
dHJhbnNmb3JtOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmEpKQotICAgICAg
ICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmIpKQotICAg
ICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmMpKQot
ICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmQp
KQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3Jt
LnR4KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5z
Zm9ybS50eSkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgcmV0dXJuIHRyYW5zZm9ybTsKLX0K
LQogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKIAogdm9pZCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcj46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIGNvbnRlbnRG
aWx0ZXJVbmJsb2NrSGFuZGxlcikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440313</attachid>
            <date>2021-10-05 17:34:42 -0700</date>
            <delta_ts>2021-10-05 17:44:47 -0700</delta_ts>
            <desc>Try to fix the WPE build again? (7)</desc>
            <filename>bug-230714-20211005173442.patch</filename>
            <type>text/plain</type>
            <size>37071</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcwMTIxY2IyMGJiMWM2YThl
MDhkZjNkZGVjMjNjNzVlZWMwMmIwODIuLmU0ZjAyMDQ2MmFjZjdjODc4ZjZhMmFmNDE2YTMwYzQ3
OTMwMzkxYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzEgQEAKKzIwMjEtMTAtMDUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIFJlZmFj
dG9yIHNvbWUgSVBDIGFyZ3VtZW50IGVuY29kZXIgbG9naWMgdG8gd29yayB3aXRoIFN0cmVhbUNv
bm5lY3Rpb25FbmNvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA3MTQKKyAgICAgICAgcmRhcjovLzgzNDc3NTkxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byB1c2Ug
YElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXJgIHRvIGVuY29kZSBkaXNwbGF5IGxpc3QgaXRl
bXMgKGFuZCB0aGVpciBtZW1iZXJzKSBpbiBhbgorICAgICAgICBJUEMgc3RyZWFtLiBUaGlzIHBh
dGNoIGNvbXByaXNlcyB0d28gbWFpbiBzZXRzIG9mIGNoYW5nZXMgaW4gYEFyZ3VtZW50Q29kZXJz
YCwgYW5kIGBXZWJDb3JlQXJndW1lbnRDb2RlcnNgLiBTZWUKKyAgICAgICAgYmVsb3cgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmRlY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNb25vc3RhdGU+OjpkZWNvZGUpOiBEZWxldGVk
LgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2RlKToKKworICAgICAgICBNYW55IG9mIHRoZXNlIGBl
bmNvZGUoKWAgbWV0aG9kcyBhcmUgY3VycmVudGx5IG5vbi10ZW1wbGF0ZWQsIHdoaWNoIG1lYW5z
IHRoYXQgRW5jb2RlciBhbmQgRGVjb2RlciB1c2VkIGhlcmUKKyAgICAgICAgcmVmZXIgc29sZWx5
IHRvIElQQzo6RW5jb2RlciBhbmQgSVBDOjpEZWNvZGVyIChyZXNwZWN0aXZlbHkpIGluc3RlYWQg
b2Ygb3RoZXIgdHlwZXMgb2YgZW5jb2RlcnMgKG5hbWVseSwKKyAgICAgICAgU3RyZWFtQ29ubmVj
dGlvbkVuY29kZXIpLiBNYWtlIHRoZXNlIHVzZSB0ZW1wbGF0ZWQgYGVuY29kZWAgbWV0aG9kcyBp
bnRlYWQsIHNvIHRoYXQgdGhleSB3b3JrIHdpdGggZ2VuZXJpYworICAgICAgICBlbmNvZGVycy4K
KworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmVuY29kZSk6IERlbGV0ZWQuCisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2RlKTog
RGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQz
RD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRS
ZWN0Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9h
dFJlY3Q+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZs
b2F0Qm94RXh0ZW50Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjplbmNvZGUpOiBEZWxldGVkLgorICAg
ICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjpkZWNvZGUpOiBEZWxl
dGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZW5jb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmRlY29k
ZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPExheW91dFBvaW50
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKworICAgICAgICBUaGVzZSBXZWJDb3JlIGFyZ3VtZW50IGNv
ZGVycyBhcmUgYWxzbyBjdXJyZW50bHkgaW5jb21wYXRpYmxlIHdpdGggU3RyZWFtQ29ubmVjdGlv
bkVuY29kZXIsIHNpbmNlIHRoZXkgYXJlIG5vbi0KKyAgICAgICAgdGVtcGxhdGVkIChhbmQgdGh1
cyBvbmx5IHdvcmsgd2l0aCBJUEM6OkVuY29kZXIpLiBTaW5jZSB0aGVzZSBhcmUgYWxsIGVuY29k
YWJsZSBhcyBQT0QgdHlwZXMsIHdlIGNhbiBqdXN0IHVzZQorICAgICAgICBTaW1wbGVBcmd1bWVu
dENvZGVyIGZvciBhbGwgb2YgdGhlc2UuIFdlIGFsc28gYWRkIG5ldyBgREVGSU5FX1NJTVBMRV9B
UkdVTUVOVF9DT0RFUl9GT1JfKEhFQURFUnxTT1VSQ0UpYCBtYWNyb3MKKyAgICAgICAgdG8gbWFr
ZSB0aGlzIGNvZGUgYSBiaXQgZWFzaWVyIHRvIHJlYWQsIHdoaWNoIGFkZHMgU2ltcGxlQXJndW1l
bnRDb2RlciBmb3IgdGhlIGdpdmVuIHR5cGUsIGZvciBib3RoIHN0YW5kYXJkCisgICAgICAgIElQ
Qzo6RW5jb2RlciBhcyB3ZWxsIGFzIElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXIuCisKKyAg
ICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogU2hhcmVk
L21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW06CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8Q0dSZWN0Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxDR1JlY3Q+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPENHU2l6ZT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8Q0dTaXplPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR1BvaW50Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR1BvaW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR0FmZmluZVRyYW5zZm9ybT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+OjpkZWNvZGUpOiBEZWxldGVkLgorCiAyMDIx
LTEwLTA1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAg
IE1vdmUgRmx1c2hJZGVudGlmaWVyIG91dCBvZiB0aGUgRGlzcGxheUxpc3QgbmFtZXNwYWNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKaW5kZXggYTMy
MDU1MTg3OThiNzRkY2VkYjhhMDEzZjljOWM5ODg1YWFlNjYxNi4uZTdmMjc4MDM2MmRkMjAzNzQz
NGNhMWNiMzkwZGRlNmVmNzkxNTkzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L0FyZ3VtZW50Q29kZXJzLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlByaXZhdGVD
bGlja01lYXN1cmVtZW50RGVjb2Rlci5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVt
ZW50RW5jb2Rlci5oIgogI2luY2x1ZGUgIlN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyLmgiCisjaW5j
bHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMjE4LDYgKzIxOSw3IEBA
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIEFyZ3VtZW50Q29kZXI8U0hBMTo6RGlnZXN0Pjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFNICiB9CiAKICNpZiBIQVZFKEFVRElUX1RPS0VOKQorCiB2
b2lkIEFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBhdWRpdF90b2tlbl90JiBhdWRpdFRva2VuKQogewogICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGF1ZGl0VG9rZW4udmFsKTsgaSsrKQpAQCAtMjMy
LDE1ICsyMzQsNyBAQCBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBBcmd1bWVudENvZGVyPGF1ZGl0
X3Rva2VuX3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgYQogICAgIH0KICAgICByZXR1cm4g
dHJ1ZTsKIH0KLSNlbmRpZgotCi12b2lkIEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBNb25vc3RhdGUmKQotewotfQogCi1XQVJOX1VOVVNFRF9SRVRVUk4g
c3RkOjpvcHRpb25hbDxNb25vc3RhdGU+IEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2Rl
KERlY29kZXImKQotewotICAgIHJldHVybiBNb25vc3RhdGUgeyB9OwotfQorI2VuZGlmIC8vIEhB
VkUoQVVESVRfVE9LRU4pCiAKIH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKaW5kZXggNDc5ZGI2MGVkYzI3MTZkNTU2MDZmNjUy
ZjI0MzFhZDM2OWY2NTcwYy4uZDk3Nzg3N2M1ZmIzNjUwN2JiNjUzMjRjMDY2M2Y4NjE1NjZkNTkz
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCkBAIC0x
MDgsMTIgKzEwOCwxNCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxBcnJheVJlZmVyZW5jZTxULCBhcnJheVJlZmVyZW5jZUR5bmFtaQogfTsKIAogdGVtcGxhdGU8
dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8T3B0aW9uU2V0PFQ+PiB7CisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgT3B0aW9uU2V0PFQ+JiBvcHRpb25TZXQpCiAgICAgewogICAgICAgICBB
U1NFUlQoV1RGOjppc1ZhbGlkT3B0aW9uU2V0KG9wdGlvblNldCkpOwogICAgICAgICBlbmNvZGVy
IDw8IG9wdGlvblNldC50b1JhdygpOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERl
Y29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBPcHRpb25TZXQ8VD4mIG9wdGlvblNldCkKICAgICB7CiAgICAgICAgIHR5cGVu
YW1lIE9wdGlvblNldDxUPjo6U3RvcmFnZVR5cGUgdmFsdWU7CkBAIC0xMjUsNiArMTI3LDcgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8T3B0aW9uU2V0PFQ+PiB7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERl
Y29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8T3B0aW9uU2V0PFQ+PiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgT3B0
aW9uU2V0PFQ+OjpTdG9yYWdlVHlwZT4gdmFsdWU7CkBAIC0xODgsNiArMTkxLDcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpvcHRpb25hbDxUPj4gewog
fTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQm94PFQ+JiBib3gpCiAgICAgewogICAgICAgICBpZiAo
IWJveCkgewpAQCAtMTk5LDYgKzIwMyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBB
cmd1bWVudENvZGVyPEJveDxUPj4gewogICAgICAgICBlbmNvZGVyIDw8ICpib3guZ2V0KCk7CiAg
ICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9V
TlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEJveDxUPiYgYm94KQog
ICAgIHsKICAgICAgICAgYm9vbCBpc0VuZ2FnZWQ7CkBAIC0yMTgsNiArMjIzLDcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8Qm94PFQ+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAg
ICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gaXNFbmdhZ2VkOwpAQCAtMjM2LDExICsy
NDIsMTMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+
PiB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxzdGQ6OnBhaXI8VCwgVT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
PgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBzdGQ6OnBh
aXI8VCwgVT4mIHBhaXIpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHBhaXIuZmlyc3QgPDwg
cGFpci5zZWNvbmQ7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAg
ICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IHN0ZDo6cGFpcjxULCBVPiYgcGFpcikKICAgICB7CiAgICAgICAgIFQgZmlyc3Q7CkBAIC0yNTYs
NiArMjY0LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8c3RkOjpwYWlyPFQsIFU+PiB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
IAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8c3RkOjpwYWlyPFQsIFU+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8VD4gZmlyc3Q7CkBAIC0zNjYsMTEgKzM3NSwxMyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZS4uLiBFbGVtZW50cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjp0dXBsZTxF
bGVtZW50cy4uLj4+IHsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEtleVR5cGUsIHR5cGVuYW1l
IFZhbHVlVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpLZXlWYWx1ZVBhaXI8S2V5VHlw
ZSwgVmFsdWVUeXBlPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6S2V5VmFsdWVQYWly
PEtleVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHBh
aXIua2V5IDw8IHBhaXIudmFsdWU7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVj
b2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFdURjo6S2V5VmFsdWVQYWlyPEtleVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAg
ICAgewogICAgICAgICBLZXlUeXBlIGtleTsKQEAgLTM5OCw2ICs0MDksNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxl
ciwgc2l6ZV90IG1pbgogICAgICAgICAgICAgZW5jb2RlciA8PCB2ZWN0b3JbaV07CiAgICAgfQog
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURf
UkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxULCBpbmxpbmVDYXBh
Y2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4mIHZlY3RvcikKICAgICB7CiAgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRs
ZXIsIG1pbkNhcGFjaXR5Pj4gb3B0aW9uYWw7CkBAIC00MzcsNiArNDQ5LDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRs
ZXIsIHNpemVfdCBtaW4KICAgICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVp
bnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4odmVjdG9yLmRhdGEoKSksIHZlY3Rvci5zaXpl
KCkgKiBzaXplb2YoVCksIGFsaWdub2YoVCkpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hh
bmRsZXIsIG1pbkNhcGFjaXR5PiYgdmVjdG9yKQogICAgIHsKICAgICAgICAgdWludDY0X3QgZGVj
b2RlZFNpemU7CkBAIC00NTEsNyArNDY0LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90
IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KICAg
ICAgICAgLy8gU2luY2Ugd2Uga25vdyB0aGUgdG90YWwgc2l6ZSBvZiB0aGUgZWxlbWVudHMsIHdl
IGNhbiBhbGxvY2F0ZSB0aGUgdmVjdG9yIGluCiAgICAgICAgIC8vIG9uZSBmZWxsIHN3b29wLiBC
ZWZvcmUgYWxsb2NhdGluZyB3ZSBtdXN0IGhvd2V2ZXIgbWFrZSBzdXJlIHRoYXQgdGhlIGRlY29k
ZXIgYnVmZmVyCiAgICAgICAgIC8vIGlzIGJpZyBlbm91Z2guCi0gICAgICAgIGlmICghZGVjb2Rl
ci5idWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluPFQ+KHNpemUpKQorICAgICAgICBpZiAoIWRl
Y29kZXIudGVtcGxhdGUgYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbjxUPihzaXplKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBWZWN0b3I8VCwgaW5saW5lQ2FwYWNp
dHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+IHRlbXA7CkBAIC00OTgsNiArNTExLDcg
QEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBP
dmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlw
ZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcs
IHR5cGVuYW1lIE1hcHBlZFRyYWl0c0FyZywgdHlwZW5hbWUgSGFzaFRhYmxlVHJhaXRzPiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlU
cmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPj4gewogICAgIHR5cGVk
ZWYgSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBw
ZWRUcmFpdHNBcmcsIEhhc2hUYWJsZVRyYWl0cz4gSGFzaE1hcFR5cGU7CiAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBIYXNoTWFwVHlwZSYgaGFzaE1hcCkKICAgICB7CiAgICAgICAgIGVuY29kZXIg
PDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGhhc2hNYXAuc2l6ZSgpKTsKQEAgLTUwNSw2ICs1MTks
NyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5h
bWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogICAgICAgICAgICAgZW5jb2RlciA8PCAqaXQ7
CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxIYXNoTWFwVHlwZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewog
ICAgICAgICB1aW50MzJfdCBoYXNoTWFwU2l6ZTsKQEAgLTUzNSw2ICs1NTAsNyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywg
dHlwZW5hbWUgS2V5VHJhaQogICAgICAgICByZXR1cm4gaGFzaE1hcDsKICAgICB9CiAKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSGFzaE1hcFR5cGUmIGhhc2hNYXApCiAgICAg
ewogICAgICAgICBzdGQ6Om9wdGlvbmFsPEhhc2hNYXBUeXBlPiB0ZW1wSGFzaE1hcDsKQEAgLTU0
OSw2ICs1NjUsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogdGVtcGxhdGU8dHlwZW5hbWUg
S2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1l
IEhhc2hUYWJsZVRyYWl0cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaFNldDxLZXlBcmcsIEhh
c2hBcmcsIEtleVRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPj4gewogICAgIHR5cGVkZWYgSGFz
aFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPiBIYXNo
U2V0VHlwZTsKIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEhhc2hTZXRUeXBlJiBoYXNoU2V0KQog
ICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaGFzaFNldC5z
aXplKCkpOwpAQCAtNTU2LDYgKzU3Myw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlw
ZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNoCiAgICAg
ICAgICAgICBlbmNvZGVyIDw8ICppdDsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBE
ZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgSGFzaFNldFR5cGUmIGhhc2hTZXQpCiAgICAgewogICAgICAgICBzdGQ6Om9w
dGlvbmFsPEhhc2hTZXRUeXBlPiB0ZW1wSGFzaFNldDsKQEAgLTU2Nyw2ICs1ODUsNyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0
c0FyZywgdHlwZW5hbWUgSGFzaAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEhhc2hT
ZXRUeXBlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHVpbnQ2NF90
IGhhc2hTZXRTaXplOwpAQCAtNTk2LDYgKzYxNSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNo
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtl
eVRyYWl0c0FyZz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaENvdW50ZWRTZXQ8S2V5QXJnLCBI
YXNoQXJnLCBLZXlUcmFpdHNBcmc+PiB7CiAgICAgdHlwZWRlZiBIYXNoQ291bnRlZFNldDxLZXlB
cmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZz4gSGFzaENvdW50ZWRTZXRUeXBlOwogICAgIAorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENvdW50ZWRTZXQpCiAg
ICAgewogICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihoYXNoQ291bnRl
ZFNldC5zaXplKCkpOwpAQCAtNjA2LDYgKzYyNiw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnPiBzdHJ1Y3QgQXJndW1l
CiAgICAgICAgIH0KICAgICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4K
ICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENvdW50ZWRTZXQpCiAgICAgewogICAgICAgICB1
aW50NjRfdCBoYXNoQ291bnRlZFNldFNpemU7CkBAIC02MzcsNiArNjU4LDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmc+
IHN0cnVjdCBBcmd1bWUKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5h
bWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWYWx1ZVR5cGUsIEVy
cm9yVHlwZT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBFeHBlY3RlZDxWYWx1ZVR5cGUsIEVy
cm9yVHlwZT4mIGV4cGVjdGVkKQogICAgIHsKICAgICAgICAgaWYgKCFleHBlY3RlZC5oYXNfdmFs
dWUoKSkgewpAQCAtNjQ4LDYgKzY3MCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwg
dHlwZW5hbWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWCiAgICAg
ICAgIGVuY29kZXIgPDwgZXhwZWN0ZWQudmFsdWUoKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4cGVjdGVkPFZhbHVl
VHlwZSwgRXJyb3JUeXBlPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAg
ICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGhhc1ZhbHVlOwpAQCAtNzA0LDYgKzcyNyw3IEBAIHRlbXBs
YXRlPHR5cGVuYW1lIEVycm9yVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8RXhwZWN0ZWQ8dm9p
ZCwgRXJyb3JUeXBlPj4gewogCiB0ZW1wbGF0ZTxzaXplX3QgaW5kZXgsIHR5cGVuYW1lLi4uIFR5
cGVzPgogc3RydWN0IFZhcmlhbnRDb2RlciB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rl
cj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV1RGOjpW
YXJpYW50PFR5cGVzLi4uPiYgdmFyaWFudCwgdW5zaWduZWQgaSkKICAgICB7CiAgICAgICAgIGlm
IChpID09IGluZGV4KSB7CkBAIC03MTMsNiArNzM3LDcgQEAgc3RydWN0IFZhcmlhbnRDb2RlciB7
CiAgICAgICAgIFZhcmlhbnRDb2RlcjxpbmRleCAtIDEsIFR5cGVzLi4uPjo6ZW5jb2RlKGVuY29k
ZXIsIHZhcmlhbnQsIGkpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNv
ZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgaWYgKGkg
PT0gaW5kZXgpIHsKQEAgLTcyOCwxMiArNzUzLDE0IEBAIHN0cnVjdCBWYXJpYW50Q29kZXIgewog
CiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4KIHN0cnVjdCBWYXJpYW50Q29kZXI8MCwgVHlw
ZXMuLi4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+JiB2
YXJpYW50LCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChpLCAhaSk7
CiAgICAgICAgIGVuY29kZXIgPDwgV1RGOjpnZXQ8MD4odmFyaWFudCk7CiAgICAgfQogICAgIAor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIsIHVuc2lnbmVk
IGkpCiAgICAgewogICAgICAgICBBU1NFUlRfVU5VU0VEKGksICFpKTsKQEAgLTc0Niw2ICs3NzMs
NyBAQCBzdHJ1Y3QgVmFyaWFudENvZGVyPDAsIFR5cGVzLi4uPiB7CiB9OwogCiB0ZW1wbGF0ZTx0
eXBlbmFtZS4uLiBUeXBlcz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpWYXJpYW50PFR5cGVz
Li4uPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6VmFyaWFudDxUeXBlcy4uLj4mIHZh
cmlhbnQpCiAgICAgewogICAgICAgICB1bnNpZ25lZCBpID0gdmFyaWFudC5pbmRleCgpOwpAQCAt
NzUzLDYgKzc4MSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+PiB7CiAgICAgICAgIFZhcmlhbnRDb2Rlcjxz
aXplb2YuLi4oVHlwZXMpIC0gMSwgVHlwZXMuLi4+OjplbmNvZGUoZW5jb2RlciwgdmFyaWFudCwg
aSk7CiAgICAgfQogICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBpOwpAQCAt
ODA0LDggKzgzMywxNCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rv
a2VuX3Q+IHsKICNlbmRpZgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPE1vbm9z
dGF0ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgTW9ub3N0YXRl
Jik7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBkZWNvZGUoRGVjb2RlciYp
OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CisgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBNb25vc3RhdGUmKSB7IH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1l
IERlY29kZXI+CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBkZWNvZGUoRGVj
b2RlciYpCisgICAgeworICAgICAgICByZXR1cm4gTW9ub3N0YXRlIHsgfTsKKyAgICB9CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwCmluZGV4IGVlZWU2YWViNjFhMzM4YWY4ZDNjYWVmYmY1MjQ5MTk0MGFm
NzA1NWIuLjg2N2Y2ZDU0OGI5ZTI5ODRlYzcxZjMzZGEwMjg5ODcyMzk3MWNkMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMTI1LDYg
KzEyNSw0MiBAQCBuYW1lc3BhY2UgSVBDIHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKIAorI2RlZmluZSBERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NP
REVSX0ZPUl9TT1VSQ0UoVHlwZSkgXAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IFwK
KyAgICB2b2lkIEFyZ3VtZW50Q29kZXI8VHlwZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBUeXBlJiB2YWx1ZSkgeyBTaW1wbGVBcmd1bWVudENvZGVyPFR5cGU+OjplbmNvZGUoZW5j
b2RlciwgdmFsdWUpOyB9IFwKKyAgICBib29sIEFyZ3VtZW50Q29kZXI8VHlwZT46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBUeXBlJiB2YWx1ZSkgeyByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2Rl
cjxUeXBlPjo6ZGVjb2RlKGRlY29kZXIsIHZhbHVlKTsgfSBcCisgICAgc3RkOjpvcHRpb25hbDxU
eXBlPiBBcmd1bWVudENvZGVyPFR5cGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikgXAorICAg
IHsgXAorICAgICAgICBUeXBlIHZhbHVlOyBcCisgICAgICAgIGlmICghZGVjb2RlKGRlY29kZXIs
IHZhbHVlKSkgXAorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgXAorICAgICAgICBy
ZXR1cm4gdmFsdWU7IFwKKyAgICB9IFwKKyAgICB0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8
VHlwZT46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVyJiwgY29uc3QgVHlwZSYpOyBcCisgICAgdGVt
cGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFR5cGU+OjplbmNvZGU8U3RyZWFtQ29ubmVjdGlvbkVu
Y29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwgY29uc3QgVHlwZSYpOworCitERUZJTkVf
U0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoQWZmaW5lVHJhbnNmb3JtKQorREVGSU5F
X1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0Qm94RXh0ZW50KQorREVGSU5F
X1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0UG9pbnQpCitERUZJTkVfU0lN
UExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoRmxvYXRQb2ludDNEKQorREVGSU5FX1NJTVBM
RV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0UmVjdCkKK0RFRklORV9TSU1QTEVfQVJH
VU1FTlRfQ09ERVJfRk9SX1NPVVJDRShGbG9hdFJvdW5kZWRSZWN0KQorREVGSU5FX1NJTVBMRV9B
UkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1F
TlRfQ09ERVJfRk9SX1NPVVJDRShJbnRQb2ludCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09E
RVJfRk9SX1NPVVJDRShJbnRSZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
U09VUkNFKEludFNpemUpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0Uo
TGF5b3V0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoTGF5
b3V0U2l6ZSkKKworI2lmIFVTRShDRykKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9S
X1NPVVJDRShDR1JlY3QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0Uo
Q0dTaXplKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKENHUG9pbnQp
CitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoQ0dBZmZpbmVUcmFuc2Zv
cm0pCisjZW5kaWYKKworI3VuZGVmIERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX1NP
VVJDRQorCiBzdGF0aWMgdm9pZCBlbmNvZGVTaGFyZWRCdWZmZXIoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgU2hhcmVkQnVmZmVyKiBidWZmZXIpCiB7CiAgICAgYm9vbCBpc051bGwgPSAhYnVmZmVy
OwpAQCAtMjMxLDE2ICsyNjcsNiBAQCBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlVHlwZXNBbmREYXRhKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxTdHJpbgogICAgIHJldHVy
biB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgYWZmaW5lVHJhbnNmb3Jt
KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2RlKGVu
Y29kZXIsIGFmZmluZVRyYW5zZm9ybSk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxBZmZpbmVU
cmFuc2Zvcm0+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgQWZmaW5lVHJhbnNmb3JtJiBhZmZp
bmVUcmFuc2Zvcm0pCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJh
bnNmb3JtPjo6ZGVjb2RlKGRlY29kZXIsIGFmZmluZVRyYW5zZm9ybSk7Ci19Ci0KIHZvaWQgQXJn
dW1lbnRDb2RlcjxDYWNoZVF1ZXJ5T3B0aW9ucz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBDYWNoZVF1ZXJ5T3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBlbmNvZGVyIDw8IG9wdGlv
bnMuaWdub3JlU2VhcmNoOwpAQCAtNDI1LDYgKzQ1MSw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxF
dmVudFRyYWNraW5nUmVnaW9ucz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBFdmVudFRyYWNr
aW5nCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiB2
b2lkIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybWF0aW9uTWF0cml4
KQogewogICAgIGVuY29kZXIgPDwgdHJhbnNmb3JtYXRpb25NYXRyaXgubTExKCk7CkBAIC01MDYs
NiArNTMzLDkgQEAgYm9vbCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFRyYW5zZm9ybWF0aW8KICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAordGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5j
b2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwordGVt
cGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5jb2RlPFN0
cmVhbUNvbm5lY3Rpb25FbmNvZGVyPihTdHJlYW1Db25uZWN0aW9uRW5jb2RlciYsIGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4Jik7CisKIHZvaWQgQXJndW1lbnRDb2RlcjxMaW5lYXJUaW1pbmdG
dW5jdGlvbj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMaW5lYXJUaW1pbmdGdW5j
dGlvbiYgdGltaW5nRnVuY3Rpb24pCiB7CiAgICAgZW5jb2RlciA8PCB0aW1pbmdGdW5jdGlvbi50
eXBlKCk7CkBAIC02MTcsNjUgKzY0Nyw2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxTcHJpbmdUaW1p
bmdGdW5jdGlvbj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTcHJpbmdUaW1pbmdGCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UG9pbnQmIGZsb2F0UG9pbnQpCi17Ci0gICAg
U2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0UG9p
bnQpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBGbG9hdFBvaW50JiBmbG9hdFBvaW50KQotewotICAgIHJldHVybiBTaW1wbGVB
cmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRQb2ludCk7Ci19
Ci0KLXN0ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4gQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgRmxvYXRQb2ludCBmbG9hdFBvaW50Owot
ICAgIGlmICghU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2RlKGRlY29kZXIs
IGZsb2F0UG9pbnQpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBm
bG9hdFBvaW50OwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UG9pbnQzRCYgZmxvYXRQb2ludCkKLXsKLSAg
ICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmVuY29kZShlbmNvZGVyLCBmbG9h
dFBvaW50KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFBvaW50M0QmIGZsb2F0UG9pbnQpCi17Ci0gICAgcmV0dXJu
IFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0
UG9pbnQpOwotfQotCi0KLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRSZWN0JiBmbG9hdFJlY3QpCi17Ci0gICAgU2ltcGxl
QXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRSZWN0KTsKLX0K
LQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBGbG9hdFJlY3QmIGZsb2F0UmVjdCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2Rl
cjxGbG9hdFJlY3Q+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRSZWN0KTsKLX0KLQotc3RkOjpvcHRp
b25hbDxGbG9hdFJlY3Q+IEFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCi17Ci0gICAgRmxvYXRSZWN0IGZsb2F0UmVjdDsKLSAgICBpZiAoIVNpbXBsZUFy
Z3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0UmVjdCkpCi0gICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIGZsb2F0UmVjdDsKLX0KLQotCi12
b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgRmxvYXRCb3hFeHRlbnQmIGZsb2F0Qm94RXh0ZW50KQotewotICAgIFNpbXBsZUFy
Z3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRCb3hFeHRl
bnQpOwotfQotICAgIAotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIEZsb2F0Qm94RXh0ZW50JiBmbG9hdEJveEV4dGVudCkKLXsKLSAg
ICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZShkZWNv
ZGVyLCBmbG9hdEJveEV4dGVudCk7Ci19Ci0KLQogdm9pZCBBcmd1bWVudENvZGVyPFJlY3RFZGdl
czxib29sPj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWN0RWRnZXM8Ym9vbD4m
IGJveEVkZ2VzKQogewogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8UmVjdEVkZ2VzPGJvb2w+Pjo6
ZW5jb2RlKGVuY29kZXIsIGJveEVkZ2VzKTsKQEAgLTY4NiwyOCArNjU3LDYgQEAgYm9vbCBBcmd1
bWVudENvZGVyPFJlY3RFZGdlczxib29sPj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZWN0
RWRnZXM8Ym9vbD4mIGIKICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxSZWN0RWRnZXM8
Ym9vbD4+OjpkZWNvZGUoZGVjb2RlciwgYm94RWRnZXMpOwogfQogCi0KLXZvaWQgQXJndW1lbnRD
b2RlcjxGbG9hdFNpemU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRTaXpl
JiBmbG9hdFNpemUpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjplbmNv
ZGUoZW5jb2RlciwgZmxvYXRTaXplKTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0U2l6
ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFNpemUmIGZsb2F0U2l6ZSkKLXsKLSAg
ICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjpkZWNvZGUoZGVjb2Rlciwg
ZmxvYXRTaXplKTsKLX0KLQotCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByb3VuZGVk
UmVjdCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjplbmNv
ZGUoZW5jb2Rlciwgcm91bmRlZFJlY3QpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRS
b3VuZGVkUmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFJvdW5kZWRSZWN0JiBy
b3VuZGVkUmVjdCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFJvdW5k
ZWRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIHJvdW5kZWRSZWN0KTsKLX0KLQogI2lmIEVOQUJMRShN
RVRBX1ZJRVdQT1JUKQogdm9pZCBBcmd1bWVudENvZGVyPFZpZXdwb3J0QXJndW1lbnRzPjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJiB2aWV3cG9ydEFy
Z3VtZW50cykKIHsKQEAgLTczOSw4NyArNjg4LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPFZpZXdw
b3J0QXR0cmlidXRlcz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBWaWV3cG9ydEF0dHJpYnUK
ICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxWaWV3cG9ydEF0dHJpYnV0ZXM+OjpkZWNv
ZGUoZGVjb2Rlciwgdmlld3BvcnRBdHRyaWJ1dGVzKTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVy
PEludFBvaW50Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEludFBvaW50JiBpbnRQ
b2ludCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZW5jb2RlKGVuY29k
ZXIsIGludFBvaW50KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIEludFBvaW50JiBpbnRQb2ludCkKLXsKLSAgICByZXR1cm4gU2lt
cGxlQXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZShkZWNvZGVyLCBpbnRQb2ludCk7Ci19
Ci0KLXN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+IEFyZ3VtZW50Q29kZXI8SW50UG9p
bnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBJbnRQb2ludCBpbnRQb2ludDsK
LSAgICBpZiAoIVNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoZGVjb2Rlciwg
aW50UG9pbnQpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBpbnRQ
b2ludDsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPEludFJlY3Q+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgSW50UmVjdCYgaW50UmVjdCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENv
ZGVyPEludFJlY3Q+OjplbmNvZGUoZW5jb2RlciwgaW50UmVjdCk7Ci19Ci0KLWJvb2wgQXJndW1l
bnRDb2RlcjxJbnRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEludFJlY3QmIGludFJl
Y3QpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZShk
ZWNvZGVyLCBpbnRSZWN0KTsKLX0KLQotc3RkOjpvcHRpb25hbDxJbnRSZWN0PiBBcmd1bWVudENv
ZGVyPEludFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBJbnRSZWN0IHJl
Y3Q7Ci0gICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgcmVjdCkpCi0gICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7Ci0gICAgcmV0dXJuIHJlY3Q7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIEVuY29k
ZXI+Ci12b2lkIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBJbnRTaXplJiBpbnRTaXplKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50
U2l6ZT46OmVuY29kZShlbmNvZGVyLCBpbnRTaXplKTsKLX0KLQotdGVtcGxhdGUKLXZvaWQgQXJn
dW1lbnRDb2RlcjxJbnRTaXplPjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBJbnRT
aXplJik7Ci10ZW1wbGF0ZQotdm9pZCBBcmd1bWVudENvZGVyPEludFNpemU+OjplbmNvZGU8U3Ry
ZWFtQ29ubmVjdGlvbkVuY29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwgY29uc3QgSW50
U2l6ZSYpOwotCi1ib29sIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBJbnRTaXplJiBpbnRTaXplKQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENv
ZGVyPEludFNpemU+OjpkZWNvZGUoZGVjb2RlciwgaW50U2l6ZSk7Ci19Ci0KLXN0ZDo6b3B0aW9u
YWw8SW50U2l6ZT4gQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCi17Ci0gICAgSW50U2l6ZSBpbnRTaXplOwotICAgIGlmICghU2ltcGxlQXJndW1lbnRDb2Rl
cjxJbnRTaXplPjo6ZGVjb2RlKGRlY29kZXIsIGludFNpemUpKQotICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwotICAgIHJldHVybiBpbnRTaXplOwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8
TGF5b3V0U2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMYXlvdXRTaXplJiBs
YXlvdXRTaXplKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmVuY29k
ZShlbmNvZGVyLCBsYXlvdXRTaXplKTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPExheW91dFNp
emU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTGF5b3V0U2l6ZSYgbGF5b3V0U2l6ZSkKLXsK
LSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxMYXlvdXRTaXplPjo6ZGVjb2RlKGRlY29k
ZXIsIGxheW91dFNpemUpOwotfQotCi0KLXZvaWQgQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMYXlvdXRQb2ludCYgbGF5b3V0UG9pbnQp
Ci17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46OmVuY29kZShlbmNvZGVy
LCBsYXlvdXRQb2ludCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCBMYXlvdXRQb2ludCYgbGF5b3V0UG9pbnQpCi17Ci0gICAg
cmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+OjpkZWNvZGUoZGVjb2Rlciwg
bGF5b3V0UG9pbnQpOwotfQotCiB2b2lkIEFyZ3VtZW50Q29kZXI8UmVjZW50U2VhcmNoPjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlY2VudFNlYXJjaCYgcmVjZW50U2VhcmNoKQog
ewogICAgIGVuY29kZXIgPDwgcmVjZW50U2VhcmNoLnN0cmluZyA8PCByZWNlbnRTZWFyY2gudGlt
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXgg
MzUxMzhmNWRlMzJkN2UxZjFmZDE1NGMyNjFmOGU3OTJlNDczNzcxMC4uN2U4ZmVjOWZiM2Y2Mjg1
YWU3ZTYwYjNmMDQ4NGExZWY5OWM3NmU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTI2LDEyICsyNiwyNCBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQWZmaW5lVHJh
bnNmb3JtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRvcGxheUV2ZW50Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Db2xvclNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvRmxvYXRQb2ludDNELmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0Zsb2F0Um91bmRlZFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zs
b2F0U2l6ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvSW5kZXhlZERCLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnB1dE1vZGUuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0ludFBvaW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9MYXlv
dXRQb2ludC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGF5b3V0U2l6ZS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvTGVuZ3RoQm94Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlbGVjdGlvbk9wdGlv
bi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmF0aXZlSW1hZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L05ldHdvcmtMb2FkTWV0cmljcy5oPgpAQCAtOTYsNyArMTA4LDYgQEAgdHlwZWRlZiBzdHJ1Y3Qg
X19DVkJ1ZmZlciogQ1ZQaXhlbEJ1ZmZlclJlZjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgQWJzb2x1dGVQb3NpdGlvbkNvbnN0cmFpbnRzOwotY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwog
Y2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7CiBjbGFzcyBCbG9iUGFydDsKIGNsYXNzIENl
cnRpZmljYXRlSW5mbzsKQEAgLTEwOSwyMSArMTIwLDExIEBAIGNsYXNzIERyYWdEYXRhOwogY2xh
c3MgRmlsZTsKIGNsYXNzIEZpbHRlck9wZXJhdGlvbjsKIGNsYXNzIEZpbHRlck9wZXJhdGlvbnM7
Ci1jbGFzcyBGbG9hdFBvaW50OwotY2xhc3MgRmxvYXRQb2ludDNEOwotY2xhc3MgRmxvYXRSZWN0
OwotY2xhc3MgRmxvYXRSb3VuZGVkUmVjdDsKLWNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIEZpeGVk
UG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzOwogY2xhc3MgRm9udDsKIGNsYXNzIEZvbnRQbGF0
Zm9ybURhdGE7CiBjbGFzcyBIVFRQSGVhZGVyTWFwOwotY2xhc3MgSW50UG9pbnQ7Ci1jbGFzcyBJ
bnRSZWN0OwotY2xhc3MgSW50U2l6ZTsKIGNsYXNzIEtleWZyYW1lVmFsdWVMaXN0OwotY2xhc3Mg
TGF5b3V0U2l6ZTsKLWNsYXNzIExheW91dFBvaW50OwogY2xhc3MgTGluZWFyVGltaW5nRnVuY3Rp
b247CiBjbGFzcyBOb3RpZmljYXRpb247CiBjbGFzcyBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTsKQEAg
LTE3NCw5ICsxNzUsNyBAQCBzdHJ1Y3QgVG91Y2hBY3Rpb25EYXRhOwogc3RydWN0IFZlbG9jaXR5
RGF0YTsKIHN0cnVjdCBWaWV3cG9ydEF0dHJpYnV0ZXM7CiBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7
Ci0gICAgCi10ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgUmVjdEVkZ2VzOwotdXNpbmcgRmxvYXRC
b3hFeHRlbnQgPSBSZWN0RWRnZXM8ZmxvYXQ+OworCiB1c2luZyBJREJLZXlQYXRoID0gVmFyaWFu
dDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+PjsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMjI3
LDEwICsyMjYsMzQgQEAgc3RydWN0IFJlY29yZDsKIAogbmFtZXNwYWNlIElQQyB7CiAKLXRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtPiB7Ci0g
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFu
c2Zvcm0mKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29k
ZXImLCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mKTsKLX07CisjZGVmaW5lIERFRklORV9TSU1Q
TEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihUeXBlKSBcCisgICAgdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxUeXBlPiB7IFwKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5j
b2Rlcj4gc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBUeXBlJik7IFwKKyAgICAg
ICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgVHlwZSYp
OyBcCisgICAgICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFR5cGU+IGRlY29kZShEZWNvZGVyJik7
IFwKKyAgICB9OworCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoV2Vi
Q29yZTo6QWZmaW5lVHJhbnNmb3JtKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
SEVBREVSKFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9D
T0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VN
RU5UX0NPREVSX0ZPUl9IRUFERVIoV2ViQ29yZTo6RmxvYXRQb2ludDNEKQorREVGSU5FX1NJTVBM
RV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0UmVjdCkKK0RFRklORV9T
SU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0
KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0
U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3JlOjpJ
bnRQb2ludCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3Jl
OjpJbnRSZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNv
cmU6OkludFNpemUpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoV2Vi
Q29yZTo6TGF5b3V0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFE
RVIoV2ViQ29yZTo6TGF5b3V0U2l6ZSkKKworI2lmIFVTRShDRykKK0RFRklORV9TSU1QTEVfQVJH
VU1FTlRfQ09ERVJfRk9SX0hFQURFUihDR1JlY3QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NP
REVSX0ZPUl9IRUFERVIoQ0dTaXplKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
SEVBREVSKENHUG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIo
Q0dBZmZpbmVUcmFuc2Zvcm0pCisjZW5kaWYKKworI3VuZGVmIERFRklORV9TSU1QTEVfQVJHVU1F
TlRfQ09ERVJfRk9SX0hFQURFUgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmc+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmcmKTsKQEAgLTI2OCw2ICsyOTEsNyBA
QCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkV2ZW50VHJhY2tpbmdS
ZWdpb25zPiB7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlRyYW5zZm9ybWF0aW9uTWF0cml4PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4K
ICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9y
bWF0aW9uTWF0cml4Jik7CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29k
ZShEZWNvZGVyJiwgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKIH07CkBAIC0yOTks
NDMgKzMyMywxMSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNl
cnRpZmljYXRlSW5mbz4gewogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNlcnRp
ZmljYXRlSW5mbz4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwotICAgIHN0YXRpYyBXQVJO
X1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQm
KTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBkZWNvZGUo
RGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpGbG9hdFBvaW50M0Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotfTsKLQotdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFJlY3Q+IHsKLSAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwot
ICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNv
cmU6OkZsb2F0UmVjdCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0
UmVjdD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0gICAgCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYpOwotICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0
Qm94RXh0ZW50Jik7Ci19OwotCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OlJlY3RFZGdlczxib29sPj4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwg
Y29uc3QgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+Jik7CiAgICAgc3RhdGljIFdBUk5fVU5VU0VE
X1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+Jik7
CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0U2l6
ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNv
ZGVyJiwgV2ViQ29yZTo6RmxvYXRTaXplJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q+IHsKLSAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3QmKTsKLSAgICBz
dGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpG
bG9hdFJvdW5kZWRSZWN0Jik7Ci19OwotCiAjaWYgRU5BQkxFKE1FVEFfVklFV1BPUlQpCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiB7
CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpWaWV3cG9y
dEFyZ3VtZW50cyYpOwpAQCAtMzUwLDM1ICszNDIsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcz4gewogICAgIHN0YXRpYyBXQVJO
X1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlZpZXdwb3J0QXR0
cmlidXRlcyYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpJbnRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlKERlY29kZXImLCBXZWJDb3JlOjpJbnRQb2ludCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OkludFBvaW50PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRSZWN0PiB7Ci0gICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0gICAgc3RhdGlj
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6SW50UmVj
dCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFJlY3Q+IGRlY29kZShE
ZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OkludFNpemU+IHsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgotICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwotICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkludFNp
emUmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRTaXplPiBkZWNvZGUo
RGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpMYXlvdXRTaXplPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBX
ZWJDb3JlOjpMYXlvdXRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29s
IGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6TGF5b3V0U2l6ZSYpOwotfTsKLQotdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMYXlvdXRQb2ludD4gewotICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmKTsKLSAg
ICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3Jl
OjpMYXlvdXRQb2ludCYpOwotfTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpMZW5ndGg+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6Okxlbmd0aCYpOwogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBk
ZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6Okxlbmd0aCYpOwpAQCAtNDU3LDYgKzQyMCw3IEBAIHRl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RHJhZ0RhdGE+IHsKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V1RGOjpNYWNoU2VuZFJpZ2h0PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmKTsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5j
b2RlciYsIFdURjo6TWFjaFNlbmRSaWdodCYmKTsKQEAgLTQ2OCwyNiArNDMyLDcgQEAgdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IHsKICAg
ICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IGRlY29kZShE
ZWNvZGVyJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHUG9pbnQ+
IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIENHUG9pbnQpOwotICAgIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPENHUG9pbnQ+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHU2l6ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgQ0dTaXplKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDR1NpemU+IGRl
Y29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENH
UmVjdD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dSZWN0KTsKLSAgICBz
dGF0aWMgc3RkOjpvcHRpb25hbDxDR1JlY3Q+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPiB7Ci0gICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBDR0FmZmluZVRyYW5zZm9ybSk7Ci0gICAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8Q0dBZmZpbmVUcmFuc2Zvcm0+IGRlY29kZShEZWNvZGVyJik7Ci19Owot
I2VuZGlmCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZWxlY3Rpb25H
ZW9tZXRyeT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVB
cmd1bWVudENvZGVyc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJn
dW1lbnRDb2RlcnNNYWMubW0KaW5kZXggOGU0ZDVmMTMxZDgyZjFkZWZlMjZkMTVhYmZlZTA2NGEz
Yjk4OTBmOC4uNmE0MzQwNjcxNDYzZDk0NzA3MTkyMzEwYjFmN2JhMGJkMDNhNzZmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFj
Lm1tCkBAIC0zMjEsNzkgKzMyMSw2IEBAIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6S2V5cHJlc3ND
b21tYW5kPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD46CiAgICAgcmV0
dXJuIFdURk1vdmUoY29tbWFuZCk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxDR1JlY3Q+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0dSZWN0IHJlY3QpCi17Ci0gICAgZW5jb2RlciA8PCBy
ZWN0Lm9yaWdpbiA8PCByZWN0LnNpemU7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8Q0dSZWN0PiBBcmd1
bWVudENvZGVyPENHUmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIHN0ZDo6
b3B0aW9uYWw8Q0dQb2ludD4gb3JpZ2luOwotICAgIGRlY29kZXIgPj4gb3JpZ2luOwotICAgIGlm
ICghb3JpZ2luKQotICAgICAgICByZXR1cm4geyB9OwotCi0gICAgc3RkOjpvcHRpb25hbDxDR1Np
emU+IHNpemU7Ci0gICAgZGVjb2RlciA+PiBzaXplOwotICAgIGlmICghc2l6ZSkKLSAgICAgICAg
cmV0dXJuIHsgfTsKLQotICAgIHJldHVybiBDR1JlY3QgeyAqb3JpZ2luLCAqc2l6ZSB9OwotfQot
Ci12b2lkIEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENH
U2l6ZSBzaXplKQotewotICAgIGVuY29kZXIgPDwgc2l6ZS53aWR0aCA8PCBzaXplLmhlaWdodDsK
LX0KLQotc3RkOjpvcHRpb25hbDxDR1NpemU+IEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgQ0dTaXplIHNpemU7Ci0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZShzaXplLndpZHRoKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHNpemUuaGVpZ2h0KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4g
c2l6ZTsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPENHUG9pbnQ+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgQ0dQb2ludCBwb2ludCkKLXsKLSAgICBlbmNvZGVyIDw8IHBvaW50LnggPDwgcG9p
bnQueTsKLX0KLQotc3RkOjpvcHRpb25hbDxDR1BvaW50PiBBcmd1bWVudENvZGVyPENHUG9pbnQ+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBDR1BvaW50IHBvaW50OwotICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocG9pbnQueCkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwb2ludC55KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1
cm4gcG9pbnQ7Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxDR0FmZmluZVRyYW5zZm9ybT46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0pCi17Ci0g
ICAgZW5jb2RlciA8PCB0cmFuc2Zvcm0uYSA8PCB0cmFuc2Zvcm0uYiA8PCB0cmFuc2Zvcm0uYyA8
PCB0cmFuc2Zvcm0uZCA8PCB0cmFuc2Zvcm0udHggPDwgdHJhbnNmb3JtLnR5OwotfQotCi1zdGQ6
Om9wdGlvbmFsPENHQWZmaW5lVHJhbnNmb3JtPiBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNm
b3JtPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgQ0dBZmZpbmVUcmFuc2Zvcm0g
dHJhbnNmb3JtOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmEpKQotICAgICAg
ICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmIpKQotICAg
ICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmMpKQot
ICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmQp
KQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3Jt
LnR4KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5z
Zm9ybS50eSkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgcmV0dXJuIHRyYW5zZm9ybTsKLX0K
LQogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKIAogdm9pZCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcj46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIGNvbnRlbnRG
aWx0ZXJVbmJsb2NrSGFuZGxlcikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440314</attachid>
            <date>2021-10-05 17:35:29 -0700</date>
            <delta_ts>2021-10-05 17:44:38 -0700</delta_ts>
            <desc>Try to fix the WPE build again? (8)</desc>
            <filename>bug-230714-20211005173528.patch</filename>
            <type>text/plain</type>
            <size>37071</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcwMTIxY2IyMGJiMWM2YThl
MDhkZjNkZGVjMjNjNzVlZWMwMmIwODIuLmU0ZjAyMDQ2MmFjZjdjODc4ZjZhMmFmNDE2YTMwYzQ3
OTMwMzkxYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzEgQEAKKzIwMjEtMTAtMDUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIFJlZmFj
dG9yIHNvbWUgSVBDIGFyZ3VtZW50IGVuY29kZXIgbG9naWMgdG8gd29yayB3aXRoIFN0cmVhbUNv
bm5lY3Rpb25FbmNvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA3MTQKKyAgICAgICAgcmRhcjovLzgzNDc3NTkxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byB1c2Ug
YElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXJgIHRvIGVuY29kZSBkaXNwbGF5IGxpc3QgaXRl
bXMgKGFuZCB0aGVpciBtZW1iZXJzKSBpbiBhbgorICAgICAgICBJUEMgc3RyZWFtLiBUaGlzIHBh
dGNoIGNvbXByaXNlcyB0d28gbWFpbiBzZXRzIG9mIGNoYW5nZXMgaW4gYEFyZ3VtZW50Q29kZXJz
YCwgYW5kIGBXZWJDb3JlQXJndW1lbnRDb2RlcnNgLiBTZWUKKyAgICAgICAgYmVsb3cgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmRlY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNb25vc3RhdGU+OjpkZWNvZGUpOiBEZWxldGVk
LgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2RlKToKKworICAgICAgICBNYW55IG9mIHRoZXNlIGBl
bmNvZGUoKWAgbWV0aG9kcyBhcmUgY3VycmVudGx5IG5vbi10ZW1wbGF0ZWQsIHdoaWNoIG1lYW5z
IHRoYXQgRW5jb2RlciBhbmQgRGVjb2RlciB1c2VkIGhlcmUKKyAgICAgICAgcmVmZXIgc29sZWx5
IHRvIElQQzo6RW5jb2RlciBhbmQgSVBDOjpEZWNvZGVyIChyZXNwZWN0aXZlbHkpIGluc3RlYWQg
b2Ygb3RoZXIgdHlwZXMgb2YgZW5jb2RlcnMgKG5hbWVseSwKKyAgICAgICAgU3RyZWFtQ29ubmVj
dGlvbkVuY29kZXIpLiBNYWtlIHRoZXNlIHVzZSB0ZW1wbGF0ZWQgYGVuY29kZWAgbWV0aG9kcyBp
bnRlYWQsIHNvIHRoYXQgdGhleSB3b3JrIHdpdGggZ2VuZXJpYworICAgICAgICBlbmNvZGVycy4K
KworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmVuY29kZSk6IERlbGV0ZWQuCisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2RlKTog
RGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQz
RD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRS
ZWN0Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9h
dFJlY3Q+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZs
b2F0Qm94RXh0ZW50Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjplbmNvZGUpOiBEZWxldGVkLgorICAg
ICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjpkZWNvZGUpOiBEZWxl
dGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZW5jb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmRlY29k
ZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPExheW91dFBvaW50
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKworICAgICAgICBUaGVzZSBXZWJDb3JlIGFyZ3VtZW50IGNv
ZGVycyBhcmUgYWxzbyBjdXJyZW50bHkgaW5jb21wYXRpYmxlIHdpdGggU3RyZWFtQ29ubmVjdGlv
bkVuY29kZXIsIHNpbmNlIHRoZXkgYXJlIG5vbi0KKyAgICAgICAgdGVtcGxhdGVkIChhbmQgdGh1
cyBvbmx5IHdvcmsgd2l0aCBJUEM6OkVuY29kZXIpLiBTaW5jZSB0aGVzZSBhcmUgYWxsIGVuY29k
YWJsZSBhcyBQT0QgdHlwZXMsIHdlIGNhbiBqdXN0IHVzZQorICAgICAgICBTaW1wbGVBcmd1bWVu
dENvZGVyIGZvciBhbGwgb2YgdGhlc2UuIFdlIGFsc28gYWRkIG5ldyBgREVGSU5FX1NJTVBMRV9B
UkdVTUVOVF9DT0RFUl9GT1JfKEhFQURFUnxTT1VSQ0UpYCBtYWNyb3MKKyAgICAgICAgdG8gbWFr
ZSB0aGlzIGNvZGUgYSBiaXQgZWFzaWVyIHRvIHJlYWQsIHdoaWNoIGFkZHMgU2ltcGxlQXJndW1l
bnRDb2RlciBmb3IgdGhlIGdpdmVuIHR5cGUsIGZvciBib3RoIHN0YW5kYXJkCisgICAgICAgIElQ
Qzo6RW5jb2RlciBhcyB3ZWxsIGFzIElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXIuCisKKyAg
ICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogU2hhcmVk
L21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW06CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8Q0dSZWN0Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxDR1JlY3Q+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPENHU2l6ZT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8Q0dTaXplPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR1BvaW50Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR1BvaW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR0FmZmluZVRyYW5zZm9ybT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+OjpkZWNvZGUpOiBEZWxldGVkLgorCiAyMDIx
LTEwLTA1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAg
IE1vdmUgRmx1c2hJZGVudGlmaWVyIG91dCBvZiB0aGUgRGlzcGxheUxpc3QgbmFtZXNwYWNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKaW5kZXggYTMy
MDU1MTg3OThiNzRkY2VkYjhhMDEzZjljOWM5ODg1YWFlNjYxNi4uZTdmMjc4MDM2MmRkMjAzNzQz
NGNhMWNiMzkwZGRlNmVmNzkxNTkzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L0FyZ3VtZW50Q29kZXJzLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlByaXZhdGVD
bGlja01lYXN1cmVtZW50RGVjb2Rlci5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVt
ZW50RW5jb2Rlci5oIgogI2luY2x1ZGUgIlN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyLmgiCisjaW5j
bHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMjE4LDYgKzIxOSw3IEBA
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIEFyZ3VtZW50Q29kZXI8U0hBMTo6RGlnZXN0Pjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFNICiB9CiAKICNpZiBIQVZFKEFVRElUX1RPS0VOKQorCiB2
b2lkIEFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBhdWRpdF90b2tlbl90JiBhdWRpdFRva2VuKQogewogICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGF1ZGl0VG9rZW4udmFsKTsgaSsrKQpAQCAtMjMy
LDE1ICsyMzQsNyBAQCBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBBcmd1bWVudENvZGVyPGF1ZGl0
X3Rva2VuX3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgYQogICAgIH0KICAgICByZXR1cm4g
dHJ1ZTsKIH0KLSNlbmRpZgotCi12b2lkIEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBNb25vc3RhdGUmKQotewotfQogCi1XQVJOX1VOVVNFRF9SRVRVUk4g
c3RkOjpvcHRpb25hbDxNb25vc3RhdGU+IEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2Rl
KERlY29kZXImKQotewotICAgIHJldHVybiBNb25vc3RhdGUgeyB9OwotfQorI2VuZGlmIC8vIEhB
VkUoQVVESVRfVE9LRU4pCiAKIH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKaW5kZXggNDc5ZGI2MGVkYzI3MTZkNTU2MDZmNjUy
ZjI0MzFhZDM2OWY2NTcwYy4uZDk3Nzg3N2M1ZmIzNjUwN2JiNjUzMjRjMDY2M2Y4NjE1NjZkNTkz
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCkBAIC0x
MDgsMTIgKzEwOCwxNCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxBcnJheVJlZmVyZW5jZTxULCBhcnJheVJlZmVyZW5jZUR5bmFtaQogfTsKIAogdGVtcGxhdGU8
dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8T3B0aW9uU2V0PFQ+PiB7CisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgT3B0aW9uU2V0PFQ+JiBvcHRpb25TZXQpCiAgICAgewogICAgICAgICBB
U1NFUlQoV1RGOjppc1ZhbGlkT3B0aW9uU2V0KG9wdGlvblNldCkpOwogICAgICAgICBlbmNvZGVy
IDw8IG9wdGlvblNldC50b1JhdygpOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERl
Y29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBPcHRpb25TZXQ8VD4mIG9wdGlvblNldCkKICAgICB7CiAgICAgICAgIHR5cGVu
YW1lIE9wdGlvblNldDxUPjo6U3RvcmFnZVR5cGUgdmFsdWU7CkBAIC0xMjUsNiArMTI3LDcgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8T3B0aW9uU2V0PFQ+PiB7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERl
Y29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8T3B0aW9uU2V0PFQ+PiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgT3B0
aW9uU2V0PFQ+OjpTdG9yYWdlVHlwZT4gdmFsdWU7CkBAIC0xODgsNiArMTkxLDcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpvcHRpb25hbDxUPj4gewog
fTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQm94PFQ+JiBib3gpCiAgICAgewogICAgICAgICBpZiAo
IWJveCkgewpAQCAtMTk5LDYgKzIwMyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBB
cmd1bWVudENvZGVyPEJveDxUPj4gewogICAgICAgICBlbmNvZGVyIDw8ICpib3guZ2V0KCk7CiAg
ICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9V
TlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEJveDxUPiYgYm94KQog
ICAgIHsKICAgICAgICAgYm9vbCBpc0VuZ2FnZWQ7CkBAIC0yMTgsNiArMjIzLDcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8Qm94PFQ+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAg
ICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gaXNFbmdhZ2VkOwpAQCAtMjM2LDExICsy
NDIsMTMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+
PiB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxzdGQ6OnBhaXI8VCwgVT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
PgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBzdGQ6OnBh
aXI8VCwgVT4mIHBhaXIpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHBhaXIuZmlyc3QgPDwg
cGFpci5zZWNvbmQ7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAg
ICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IHN0ZDo6cGFpcjxULCBVPiYgcGFpcikKICAgICB7CiAgICAgICAgIFQgZmlyc3Q7CkBAIC0yNTYs
NiArMjY0LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8c3RkOjpwYWlyPFQsIFU+PiB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
IAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8c3RkOjpwYWlyPFQsIFU+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8VD4gZmlyc3Q7CkBAIC0zNjYsMTEgKzM3NSwxMyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZS4uLiBFbGVtZW50cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjp0dXBsZTxF
bGVtZW50cy4uLj4+IHsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEtleVR5cGUsIHR5cGVuYW1l
IFZhbHVlVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpLZXlWYWx1ZVBhaXI8S2V5VHlw
ZSwgVmFsdWVUeXBlPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6S2V5VmFsdWVQYWly
PEtleVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHBh
aXIua2V5IDw8IHBhaXIudmFsdWU7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVj
b2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFdURjo6S2V5VmFsdWVQYWlyPEtleVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAg
ICAgewogICAgICAgICBLZXlUeXBlIGtleTsKQEAgLTM5OCw2ICs0MDksNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxl
ciwgc2l6ZV90IG1pbgogICAgICAgICAgICAgZW5jb2RlciA8PCB2ZWN0b3JbaV07CiAgICAgfQog
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURf
UkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxULCBpbmxpbmVDYXBh
Y2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4mIHZlY3RvcikKICAgICB7CiAgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRs
ZXIsIG1pbkNhcGFjaXR5Pj4gb3B0aW9uYWw7CkBAIC00MzcsNiArNDQ5LDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRs
ZXIsIHNpemVfdCBtaW4KICAgICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVp
bnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4odmVjdG9yLmRhdGEoKSksIHZlY3Rvci5zaXpl
KCkgKiBzaXplb2YoVCksIGFsaWdub2YoVCkpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hh
bmRsZXIsIG1pbkNhcGFjaXR5PiYgdmVjdG9yKQogICAgIHsKICAgICAgICAgdWludDY0X3QgZGVj
b2RlZFNpemU7CkBAIC00NTEsNyArNDY0LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90
IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KICAg
ICAgICAgLy8gU2luY2Ugd2Uga25vdyB0aGUgdG90YWwgc2l6ZSBvZiB0aGUgZWxlbWVudHMsIHdl
IGNhbiBhbGxvY2F0ZSB0aGUgdmVjdG9yIGluCiAgICAgICAgIC8vIG9uZSBmZWxsIHN3b29wLiBC
ZWZvcmUgYWxsb2NhdGluZyB3ZSBtdXN0IGhvd2V2ZXIgbWFrZSBzdXJlIHRoYXQgdGhlIGRlY29k
ZXIgYnVmZmVyCiAgICAgICAgIC8vIGlzIGJpZyBlbm91Z2guCi0gICAgICAgIGlmICghZGVjb2Rl
ci5idWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluPFQ+KHNpemUpKQorICAgICAgICBpZiAoIWRl
Y29kZXIudGVtcGxhdGUgYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbjxUPihzaXplKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBWZWN0b3I8VCwgaW5saW5lQ2FwYWNp
dHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+IHRlbXA7CkBAIC00OTgsNiArNTExLDcg
QEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBP
dmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlw
ZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcs
IHR5cGVuYW1lIE1hcHBlZFRyYWl0c0FyZywgdHlwZW5hbWUgSGFzaFRhYmxlVHJhaXRzPiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlU
cmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPj4gewogICAgIHR5cGVk
ZWYgSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBw
ZWRUcmFpdHNBcmcsIEhhc2hUYWJsZVRyYWl0cz4gSGFzaE1hcFR5cGU7CiAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBIYXNoTWFwVHlwZSYgaGFzaE1hcCkKICAgICB7CiAgICAgICAgIGVuY29kZXIg
PDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGhhc2hNYXAuc2l6ZSgpKTsKQEAgLTUwNSw2ICs1MTks
NyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5h
bWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogICAgICAgICAgICAgZW5jb2RlciA8PCAqaXQ7
CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxIYXNoTWFwVHlwZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewog
ICAgICAgICB1aW50MzJfdCBoYXNoTWFwU2l6ZTsKQEAgLTUzNSw2ICs1NTAsNyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywg
dHlwZW5hbWUgS2V5VHJhaQogICAgICAgICByZXR1cm4gaGFzaE1hcDsKICAgICB9CiAKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSGFzaE1hcFR5cGUmIGhhc2hNYXApCiAgICAg
ewogICAgICAgICBzdGQ6Om9wdGlvbmFsPEhhc2hNYXBUeXBlPiB0ZW1wSGFzaE1hcDsKQEAgLTU0
OSw2ICs1NjUsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogdGVtcGxhdGU8dHlwZW5hbWUg
S2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1l
IEhhc2hUYWJsZVRyYWl0cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaFNldDxLZXlBcmcsIEhh
c2hBcmcsIEtleVRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPj4gewogICAgIHR5cGVkZWYgSGFz
aFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPiBIYXNo
U2V0VHlwZTsKIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEhhc2hTZXRUeXBlJiBoYXNoU2V0KQog
ICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaGFzaFNldC5z
aXplKCkpOwpAQCAtNTU2LDYgKzU3Myw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlw
ZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNoCiAgICAg
ICAgICAgICBlbmNvZGVyIDw8ICppdDsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBE
ZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgSGFzaFNldFR5cGUmIGhhc2hTZXQpCiAgICAgewogICAgICAgICBzdGQ6Om9w
dGlvbmFsPEhhc2hTZXRUeXBlPiB0ZW1wSGFzaFNldDsKQEAgLTU2Nyw2ICs1ODUsNyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0
c0FyZywgdHlwZW5hbWUgSGFzaAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEhhc2hT
ZXRUeXBlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHVpbnQ2NF90
IGhhc2hTZXRTaXplOwpAQCAtNTk2LDYgKzYxNSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNo
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtl
eVRyYWl0c0FyZz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaENvdW50ZWRTZXQ8S2V5QXJnLCBI
YXNoQXJnLCBLZXlUcmFpdHNBcmc+PiB7CiAgICAgdHlwZWRlZiBIYXNoQ291bnRlZFNldDxLZXlB
cmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZz4gSGFzaENvdW50ZWRTZXRUeXBlOwogICAgIAorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENvdW50ZWRTZXQpCiAg
ICAgewogICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihoYXNoQ291bnRl
ZFNldC5zaXplKCkpOwpAQCAtNjA2LDYgKzYyNiw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnPiBzdHJ1Y3QgQXJndW1l
CiAgICAgICAgIH0KICAgICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4K
ICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENvdW50ZWRTZXQpCiAgICAgewogICAgICAgICB1
aW50NjRfdCBoYXNoQ291bnRlZFNldFNpemU7CkBAIC02MzcsNiArNjU4LDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmc+
IHN0cnVjdCBBcmd1bWUKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5h
bWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWYWx1ZVR5cGUsIEVy
cm9yVHlwZT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBFeHBlY3RlZDxWYWx1ZVR5cGUsIEVy
cm9yVHlwZT4mIGV4cGVjdGVkKQogICAgIHsKICAgICAgICAgaWYgKCFleHBlY3RlZC5oYXNfdmFs
dWUoKSkgewpAQCAtNjQ4LDYgKzY3MCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwg
dHlwZW5hbWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWCiAgICAg
ICAgIGVuY29kZXIgPDwgZXhwZWN0ZWQudmFsdWUoKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4cGVjdGVkPFZhbHVl
VHlwZSwgRXJyb3JUeXBlPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAg
ICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGhhc1ZhbHVlOwpAQCAtNzA0LDYgKzcyNyw3IEBAIHRlbXBs
YXRlPHR5cGVuYW1lIEVycm9yVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8RXhwZWN0ZWQ8dm9p
ZCwgRXJyb3JUeXBlPj4gewogCiB0ZW1wbGF0ZTxzaXplX3QgaW5kZXgsIHR5cGVuYW1lLi4uIFR5
cGVzPgogc3RydWN0IFZhcmlhbnRDb2RlciB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rl
cj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV1RGOjpW
YXJpYW50PFR5cGVzLi4uPiYgdmFyaWFudCwgdW5zaWduZWQgaSkKICAgICB7CiAgICAgICAgIGlm
IChpID09IGluZGV4KSB7CkBAIC03MTMsNiArNzM3LDcgQEAgc3RydWN0IFZhcmlhbnRDb2RlciB7
CiAgICAgICAgIFZhcmlhbnRDb2RlcjxpbmRleCAtIDEsIFR5cGVzLi4uPjo6ZW5jb2RlKGVuY29k
ZXIsIHZhcmlhbnQsIGkpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNv
ZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgaWYgKGkg
PT0gaW5kZXgpIHsKQEAgLTcyOCwxMiArNzUzLDE0IEBAIHN0cnVjdCBWYXJpYW50Q29kZXIgewog
CiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4KIHN0cnVjdCBWYXJpYW50Q29kZXI8MCwgVHlw
ZXMuLi4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+JiB2
YXJpYW50LCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChpLCAhaSk7
CiAgICAgICAgIGVuY29kZXIgPDwgV1RGOjpnZXQ8MD4odmFyaWFudCk7CiAgICAgfQogICAgIAor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIsIHVuc2lnbmVk
IGkpCiAgICAgewogICAgICAgICBBU1NFUlRfVU5VU0VEKGksICFpKTsKQEAgLTc0Niw2ICs3NzMs
NyBAQCBzdHJ1Y3QgVmFyaWFudENvZGVyPDAsIFR5cGVzLi4uPiB7CiB9OwogCiB0ZW1wbGF0ZTx0
eXBlbmFtZS4uLiBUeXBlcz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpWYXJpYW50PFR5cGVz
Li4uPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6VmFyaWFudDxUeXBlcy4uLj4mIHZh
cmlhbnQpCiAgICAgewogICAgICAgICB1bnNpZ25lZCBpID0gdmFyaWFudC5pbmRleCgpOwpAQCAt
NzUzLDYgKzc4MSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+PiB7CiAgICAgICAgIFZhcmlhbnRDb2Rlcjxz
aXplb2YuLi4oVHlwZXMpIC0gMSwgVHlwZXMuLi4+OjplbmNvZGUoZW5jb2RlciwgdmFyaWFudCwg
aSk7CiAgICAgfQogICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBpOwpAQCAt
ODA0LDggKzgzMywxNCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rv
a2VuX3Q+IHsKICNlbmRpZgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPE1vbm9z
dGF0ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgTW9ub3N0YXRl
Jik7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBkZWNvZGUoRGVjb2RlciYp
OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CisgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBNb25vc3RhdGUmKSB7IH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1l
IERlY29kZXI+CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBkZWNvZGUoRGVj
b2RlciYpCisgICAgeworICAgICAgICByZXR1cm4gTW9ub3N0YXRlIHsgfTsKKyAgICB9CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwCmluZGV4IGVlZWU2YWViNjFhMzM4YWY4ZDNjYWVmYmY1MjQ5MTk0MGFm
NzA1NWIuLjg2N2Y2ZDU0OGI5ZTI5ODRlYzcxZjMzZGEwMjg5ODcyMzk3MWNkMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMTI1LDYg
KzEyNSw0MiBAQCBuYW1lc3BhY2UgSVBDIHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKIAorI2RlZmluZSBERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NP
REVSX0ZPUl9TT1VSQ0UoVHlwZSkgXAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IFwK
KyAgICB2b2lkIEFyZ3VtZW50Q29kZXI8VHlwZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBUeXBlJiB2YWx1ZSkgeyBTaW1wbGVBcmd1bWVudENvZGVyPFR5cGU+OjplbmNvZGUoZW5j
b2RlciwgdmFsdWUpOyB9IFwKKyAgICBib29sIEFyZ3VtZW50Q29kZXI8VHlwZT46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBUeXBlJiB2YWx1ZSkgeyByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2Rl
cjxUeXBlPjo6ZGVjb2RlKGRlY29kZXIsIHZhbHVlKTsgfSBcCisgICAgc3RkOjpvcHRpb25hbDxU
eXBlPiBBcmd1bWVudENvZGVyPFR5cGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikgXAorICAg
IHsgXAorICAgICAgICBUeXBlIHZhbHVlOyBcCisgICAgICAgIGlmICghZGVjb2RlKGRlY29kZXIs
IHZhbHVlKSkgXAorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgXAorICAgICAgICBy
ZXR1cm4gdmFsdWU7IFwKKyAgICB9IFwKKyAgICB0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8
VHlwZT46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVyJiwgY29uc3QgVHlwZSYpOyBcCisgICAgdGVt
cGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFR5cGU+OjplbmNvZGU8U3RyZWFtQ29ubmVjdGlvbkVu
Y29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwgY29uc3QgVHlwZSYpOworCitERUZJTkVf
U0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoQWZmaW5lVHJhbnNmb3JtKQorREVGSU5F
X1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0Qm94RXh0ZW50KQorREVGSU5F
X1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0UG9pbnQpCitERUZJTkVfU0lN
UExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoRmxvYXRQb2ludDNEKQorREVGSU5FX1NJTVBM
RV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0UmVjdCkKK0RFRklORV9TSU1QTEVfQVJH
VU1FTlRfQ09ERVJfRk9SX1NPVVJDRShGbG9hdFJvdW5kZWRSZWN0KQorREVGSU5FX1NJTVBMRV9B
UkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1F
TlRfQ09ERVJfRk9SX1NPVVJDRShJbnRQb2ludCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09E
RVJfRk9SX1NPVVJDRShJbnRSZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
U09VUkNFKEludFNpemUpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0Uo
TGF5b3V0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoTGF5
b3V0U2l6ZSkKKworI2lmIFVTRShDRykKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9S
X1NPVVJDRShDR1JlY3QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0Uo
Q0dTaXplKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKENHUG9pbnQp
CitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoQ0dBZmZpbmVUcmFuc2Zv
cm0pCisjZW5kaWYKKworI3VuZGVmIERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX1NP
VVJDRQorCiBzdGF0aWMgdm9pZCBlbmNvZGVTaGFyZWRCdWZmZXIoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgU2hhcmVkQnVmZmVyKiBidWZmZXIpCiB7CiAgICAgYm9vbCBpc051bGwgPSAhYnVmZmVy
OwpAQCAtMjMxLDE2ICsyNjcsNiBAQCBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlVHlwZXNBbmREYXRhKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxTdHJpbgogICAgIHJldHVy
biB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgYWZmaW5lVHJhbnNmb3Jt
KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2RlKGVu
Y29kZXIsIGFmZmluZVRyYW5zZm9ybSk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxBZmZpbmVU
cmFuc2Zvcm0+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgQWZmaW5lVHJhbnNmb3JtJiBhZmZp
bmVUcmFuc2Zvcm0pCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJh
bnNmb3JtPjo6ZGVjb2RlKGRlY29kZXIsIGFmZmluZVRyYW5zZm9ybSk7Ci19Ci0KIHZvaWQgQXJn
dW1lbnRDb2RlcjxDYWNoZVF1ZXJ5T3B0aW9ucz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBDYWNoZVF1ZXJ5T3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBlbmNvZGVyIDw8IG9wdGlv
bnMuaWdub3JlU2VhcmNoOwpAQCAtNDI1LDYgKzQ1MSw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxF
dmVudFRyYWNraW5nUmVnaW9ucz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBFdmVudFRyYWNr
aW5nCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiB2
b2lkIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybWF0aW9uTWF0cml4
KQogewogICAgIGVuY29kZXIgPDwgdHJhbnNmb3JtYXRpb25NYXRyaXgubTExKCk7CkBAIC01MDYs
NiArNTMzLDkgQEAgYm9vbCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFRyYW5zZm9ybWF0aW8KICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAordGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5j
b2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwordGVt
cGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5jb2RlPFN0
cmVhbUNvbm5lY3Rpb25FbmNvZGVyPihTdHJlYW1Db25uZWN0aW9uRW5jb2RlciYsIGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4Jik7CisKIHZvaWQgQXJndW1lbnRDb2RlcjxMaW5lYXJUaW1pbmdG
dW5jdGlvbj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMaW5lYXJUaW1pbmdGdW5j
dGlvbiYgdGltaW5nRnVuY3Rpb24pCiB7CiAgICAgZW5jb2RlciA8PCB0aW1pbmdGdW5jdGlvbi50
eXBlKCk7CkBAIC02MTcsNjUgKzY0Nyw2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxTcHJpbmdUaW1p
bmdGdW5jdGlvbj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTcHJpbmdUaW1pbmdGCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UG9pbnQmIGZsb2F0UG9pbnQpCi17Ci0gICAg
U2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0UG9p
bnQpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBGbG9hdFBvaW50JiBmbG9hdFBvaW50KQotewotICAgIHJldHVybiBTaW1wbGVB
cmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRQb2ludCk7Ci19
Ci0KLXN0ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4gQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgRmxvYXRQb2ludCBmbG9hdFBvaW50Owot
ICAgIGlmICghU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2RlKGRlY29kZXIs
IGZsb2F0UG9pbnQpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBm
bG9hdFBvaW50OwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UG9pbnQzRCYgZmxvYXRQb2ludCkKLXsKLSAg
ICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmVuY29kZShlbmNvZGVyLCBmbG9h
dFBvaW50KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFBvaW50M0QmIGZsb2F0UG9pbnQpCi17Ci0gICAgcmV0dXJu
IFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0
UG9pbnQpOwotfQotCi0KLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRSZWN0JiBmbG9hdFJlY3QpCi17Ci0gICAgU2ltcGxl
QXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRSZWN0KTsKLX0K
LQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBGbG9hdFJlY3QmIGZsb2F0UmVjdCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2Rl
cjxGbG9hdFJlY3Q+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRSZWN0KTsKLX0KLQotc3RkOjpvcHRp
b25hbDxGbG9hdFJlY3Q+IEFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCi17Ci0gICAgRmxvYXRSZWN0IGZsb2F0UmVjdDsKLSAgICBpZiAoIVNpbXBsZUFy
Z3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0UmVjdCkpCi0gICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIGZsb2F0UmVjdDsKLX0KLQotCi12
b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgRmxvYXRCb3hFeHRlbnQmIGZsb2F0Qm94RXh0ZW50KQotewotICAgIFNpbXBsZUFy
Z3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRCb3hFeHRl
bnQpOwotfQotICAgIAotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIEZsb2F0Qm94RXh0ZW50JiBmbG9hdEJveEV4dGVudCkKLXsKLSAg
ICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZShkZWNv
ZGVyLCBmbG9hdEJveEV4dGVudCk7Ci19Ci0KLQogdm9pZCBBcmd1bWVudENvZGVyPFJlY3RFZGdl
czxib29sPj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWN0RWRnZXM8Ym9vbD4m
IGJveEVkZ2VzKQogewogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8UmVjdEVkZ2VzPGJvb2w+Pjo6
ZW5jb2RlKGVuY29kZXIsIGJveEVkZ2VzKTsKQEAgLTY4NiwyOCArNjU3LDYgQEAgYm9vbCBBcmd1
bWVudENvZGVyPFJlY3RFZGdlczxib29sPj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZWN0
RWRnZXM8Ym9vbD4mIGIKICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxSZWN0RWRnZXM8
Ym9vbD4+OjpkZWNvZGUoZGVjb2RlciwgYm94RWRnZXMpOwogfQogCi0KLXZvaWQgQXJndW1lbnRD
b2RlcjxGbG9hdFNpemU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRTaXpl
JiBmbG9hdFNpemUpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjplbmNv
ZGUoZW5jb2RlciwgZmxvYXRTaXplKTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0U2l6
ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFNpemUmIGZsb2F0U2l6ZSkKLXsKLSAg
ICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjpkZWNvZGUoZGVjb2Rlciwg
ZmxvYXRTaXplKTsKLX0KLQotCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByb3VuZGVk
UmVjdCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjplbmNv
ZGUoZW5jb2Rlciwgcm91bmRlZFJlY3QpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRS
b3VuZGVkUmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFJvdW5kZWRSZWN0JiBy
b3VuZGVkUmVjdCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFJvdW5k
ZWRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIHJvdW5kZWRSZWN0KTsKLX0KLQogI2lmIEVOQUJMRShN
RVRBX1ZJRVdQT1JUKQogdm9pZCBBcmd1bWVudENvZGVyPFZpZXdwb3J0QXJndW1lbnRzPjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJiB2aWV3cG9ydEFy
Z3VtZW50cykKIHsKQEAgLTczOSw4NyArNjg4LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPFZpZXdw
b3J0QXR0cmlidXRlcz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBWaWV3cG9ydEF0dHJpYnUK
ICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxWaWV3cG9ydEF0dHJpYnV0ZXM+OjpkZWNv
ZGUoZGVjb2Rlciwgdmlld3BvcnRBdHRyaWJ1dGVzKTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVy
PEludFBvaW50Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEludFBvaW50JiBpbnRQ
b2ludCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZW5jb2RlKGVuY29k
ZXIsIGludFBvaW50KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIEludFBvaW50JiBpbnRQb2ludCkKLXsKLSAgICByZXR1cm4gU2lt
cGxlQXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZShkZWNvZGVyLCBpbnRQb2ludCk7Ci19
Ci0KLXN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+IEFyZ3VtZW50Q29kZXI8SW50UG9p
bnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBJbnRQb2ludCBpbnRQb2ludDsK
LSAgICBpZiAoIVNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoZGVjb2Rlciwg
aW50UG9pbnQpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBpbnRQ
b2ludDsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPEludFJlY3Q+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgSW50UmVjdCYgaW50UmVjdCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENv
ZGVyPEludFJlY3Q+OjplbmNvZGUoZW5jb2RlciwgaW50UmVjdCk7Ci19Ci0KLWJvb2wgQXJndW1l
bnRDb2RlcjxJbnRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEludFJlY3QmIGludFJl
Y3QpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZShk
ZWNvZGVyLCBpbnRSZWN0KTsKLX0KLQotc3RkOjpvcHRpb25hbDxJbnRSZWN0PiBBcmd1bWVudENv
ZGVyPEludFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBJbnRSZWN0IHJl
Y3Q7Ci0gICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgcmVjdCkpCi0gICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7Ci0gICAgcmV0dXJuIHJlY3Q7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIEVuY29k
ZXI+Ci12b2lkIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBJbnRTaXplJiBpbnRTaXplKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50
U2l6ZT46OmVuY29kZShlbmNvZGVyLCBpbnRTaXplKTsKLX0KLQotdGVtcGxhdGUKLXZvaWQgQXJn
dW1lbnRDb2RlcjxJbnRTaXplPjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBJbnRT
aXplJik7Ci10ZW1wbGF0ZQotdm9pZCBBcmd1bWVudENvZGVyPEludFNpemU+OjplbmNvZGU8U3Ry
ZWFtQ29ubmVjdGlvbkVuY29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwgY29uc3QgSW50
U2l6ZSYpOwotCi1ib29sIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBJbnRTaXplJiBpbnRTaXplKQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENv
ZGVyPEludFNpemU+OjpkZWNvZGUoZGVjb2RlciwgaW50U2l6ZSk7Ci19Ci0KLXN0ZDo6b3B0aW9u
YWw8SW50U2l6ZT4gQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCi17Ci0gICAgSW50U2l6ZSBpbnRTaXplOwotICAgIGlmICghU2ltcGxlQXJndW1lbnRDb2Rl
cjxJbnRTaXplPjo6ZGVjb2RlKGRlY29kZXIsIGludFNpemUpKQotICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwotICAgIHJldHVybiBpbnRTaXplOwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8
TGF5b3V0U2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMYXlvdXRTaXplJiBs
YXlvdXRTaXplKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmVuY29k
ZShlbmNvZGVyLCBsYXlvdXRTaXplKTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPExheW91dFNp
emU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTGF5b3V0U2l6ZSYgbGF5b3V0U2l6ZSkKLXsK
LSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxMYXlvdXRTaXplPjo6ZGVjb2RlKGRlY29k
ZXIsIGxheW91dFNpemUpOwotfQotCi0KLXZvaWQgQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMYXlvdXRQb2ludCYgbGF5b3V0UG9pbnQp
Ci17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46OmVuY29kZShlbmNvZGVy
LCBsYXlvdXRQb2ludCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCBMYXlvdXRQb2ludCYgbGF5b3V0UG9pbnQpCi17Ci0gICAg
cmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+OjpkZWNvZGUoZGVjb2Rlciwg
bGF5b3V0UG9pbnQpOwotfQotCiB2b2lkIEFyZ3VtZW50Q29kZXI8UmVjZW50U2VhcmNoPjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlY2VudFNlYXJjaCYgcmVjZW50U2VhcmNoKQog
ewogICAgIGVuY29kZXIgPDwgcmVjZW50U2VhcmNoLnN0cmluZyA8PCByZWNlbnRTZWFyY2gudGlt
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXgg
MzUxMzhmNWRlMzJkN2UxZjFmZDE1NGMyNjFmOGU3OTJlNDczNzcxMC4uN2U4ZmVjOWZiM2Y2Mjg1
YWU3ZTYwYjNmMDQ4NGExZWY5OWM3NmU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTI2LDEyICsyNiwyNCBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQWZmaW5lVHJh
bnNmb3JtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRvcGxheUV2ZW50Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Db2xvclNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvRmxvYXRQb2ludDNELmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0Zsb2F0Um91bmRlZFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zs
b2F0U2l6ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvSW5kZXhlZERCLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnB1dE1vZGUuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0ludFBvaW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9MYXlv
dXRQb2ludC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGF5b3V0U2l6ZS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvTGVuZ3RoQm94Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlbGVjdGlvbk9wdGlv
bi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmF0aXZlSW1hZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L05ldHdvcmtMb2FkTWV0cmljcy5oPgpAQCAtOTYsNyArMTA4LDYgQEAgdHlwZWRlZiBzdHJ1Y3Qg
X19DVkJ1ZmZlciogQ1ZQaXhlbEJ1ZmZlclJlZjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgQWJzb2x1dGVQb3NpdGlvbkNvbnN0cmFpbnRzOwotY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwog
Y2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7CiBjbGFzcyBCbG9iUGFydDsKIGNsYXNzIENl
cnRpZmljYXRlSW5mbzsKQEAgLTEwOSwyMSArMTIwLDExIEBAIGNsYXNzIERyYWdEYXRhOwogY2xh
c3MgRmlsZTsKIGNsYXNzIEZpbHRlck9wZXJhdGlvbjsKIGNsYXNzIEZpbHRlck9wZXJhdGlvbnM7
Ci1jbGFzcyBGbG9hdFBvaW50OwotY2xhc3MgRmxvYXRQb2ludDNEOwotY2xhc3MgRmxvYXRSZWN0
OwotY2xhc3MgRmxvYXRSb3VuZGVkUmVjdDsKLWNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIEZpeGVk
UG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzOwogY2xhc3MgRm9udDsKIGNsYXNzIEZvbnRQbGF0
Zm9ybURhdGE7CiBjbGFzcyBIVFRQSGVhZGVyTWFwOwotY2xhc3MgSW50UG9pbnQ7Ci1jbGFzcyBJ
bnRSZWN0OwotY2xhc3MgSW50U2l6ZTsKIGNsYXNzIEtleWZyYW1lVmFsdWVMaXN0OwotY2xhc3Mg
TGF5b3V0U2l6ZTsKLWNsYXNzIExheW91dFBvaW50OwogY2xhc3MgTGluZWFyVGltaW5nRnVuY3Rp
b247CiBjbGFzcyBOb3RpZmljYXRpb247CiBjbGFzcyBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTsKQEAg
LTE3NCw5ICsxNzUsNyBAQCBzdHJ1Y3QgVG91Y2hBY3Rpb25EYXRhOwogc3RydWN0IFZlbG9jaXR5
RGF0YTsKIHN0cnVjdCBWaWV3cG9ydEF0dHJpYnV0ZXM7CiBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7
Ci0gICAgCi10ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgUmVjdEVkZ2VzOwotdXNpbmcgRmxvYXRC
b3hFeHRlbnQgPSBSZWN0RWRnZXM8ZmxvYXQ+OworCiB1c2luZyBJREJLZXlQYXRoID0gVmFyaWFu
dDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+PjsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMjI3
LDEwICsyMjYsMzQgQEAgc3RydWN0IFJlY29yZDsKIAogbmFtZXNwYWNlIElQQyB7CiAKLXRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtPiB7Ci0g
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFu
c2Zvcm0mKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29k
ZXImLCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mKTsKLX07CisjZGVmaW5lIERFRklORV9TSU1Q
TEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihUeXBlKSBcCisgICAgdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxUeXBlPiB7IFwKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5j
b2Rlcj4gc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBUeXBlJik7IFwKKyAgICAg
ICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgVHlwZSYp
OyBcCisgICAgICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFR5cGU+IGRlY29kZShEZWNvZGVyJik7
IFwKKyAgICB9OworCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoV2Vi
Q29yZTo6QWZmaW5lVHJhbnNmb3JtKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
SEVBREVSKFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9D
T0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VN
RU5UX0NPREVSX0ZPUl9IRUFERVIoV2ViQ29yZTo6RmxvYXRQb2ludDNEKQorREVGSU5FX1NJTVBM
RV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0UmVjdCkKK0RFRklORV9T
SU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0
KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0
U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3JlOjpJ
bnRQb2ludCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3Jl
OjpJbnRSZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNv
cmU6OkludFNpemUpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoV2Vi
Q29yZTo6TGF5b3V0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFE
RVIoV2ViQ29yZTo6TGF5b3V0U2l6ZSkKKworI2lmIFVTRShDRykKK0RFRklORV9TSU1QTEVfQVJH
VU1FTlRfQ09ERVJfRk9SX0hFQURFUihDR1JlY3QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NP
REVSX0ZPUl9IRUFERVIoQ0dTaXplKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
SEVBREVSKENHUG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIo
Q0dBZmZpbmVUcmFuc2Zvcm0pCisjZW5kaWYKKworI3VuZGVmIERFRklORV9TSU1QTEVfQVJHVU1F
TlRfQ09ERVJfRk9SX0hFQURFUgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmc+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmcmKTsKQEAgLTI2OCw2ICsyOTEsNyBA
QCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkV2ZW50VHJhY2tpbmdS
ZWdpb25zPiB7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlRyYW5zZm9ybWF0aW9uTWF0cml4PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4K
ICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9y
bWF0aW9uTWF0cml4Jik7CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29k
ZShEZWNvZGVyJiwgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKIH07CkBAIC0yOTks
NDMgKzMyMywxMSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNl
cnRpZmljYXRlSW5mbz4gewogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNlcnRp
ZmljYXRlSW5mbz4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwotICAgIHN0YXRpYyBXQVJO
X1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQm
KTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBkZWNvZGUo
RGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpGbG9hdFBvaW50M0Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotfTsKLQotdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFJlY3Q+IHsKLSAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwot
ICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNv
cmU6OkZsb2F0UmVjdCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0
UmVjdD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0gICAgCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYpOwotICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0
Qm94RXh0ZW50Jik7Ci19OwotCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OlJlY3RFZGdlczxib29sPj4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwg
Y29uc3QgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+Jik7CiAgICAgc3RhdGljIFdBUk5fVU5VU0VE
X1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+Jik7
CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0U2l6
ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNv
ZGVyJiwgV2ViQ29yZTo6RmxvYXRTaXplJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q+IHsKLSAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3QmKTsKLSAgICBz
dGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpG
bG9hdFJvdW5kZWRSZWN0Jik7Ci19OwotCiAjaWYgRU5BQkxFKE1FVEFfVklFV1BPUlQpCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiB7
CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpWaWV3cG9y
dEFyZ3VtZW50cyYpOwpAQCAtMzUwLDM1ICszNDIsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcz4gewogICAgIHN0YXRpYyBXQVJO
X1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlZpZXdwb3J0QXR0
cmlidXRlcyYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpJbnRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlKERlY29kZXImLCBXZWJDb3JlOjpJbnRQb2ludCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OkludFBvaW50PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRSZWN0PiB7Ci0gICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0gICAgc3RhdGlj
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6SW50UmVj
dCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFJlY3Q+IGRlY29kZShE
ZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OkludFNpemU+IHsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgotICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwotICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkludFNp
emUmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRTaXplPiBkZWNvZGUo
RGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpMYXlvdXRTaXplPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBX
ZWJDb3JlOjpMYXlvdXRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29s
IGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6TGF5b3V0U2l6ZSYpOwotfTsKLQotdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMYXlvdXRQb2ludD4gewotICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmKTsKLSAg
ICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3Jl
OjpMYXlvdXRQb2ludCYpOwotfTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpMZW5ndGg+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6Okxlbmd0aCYpOwogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBk
ZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6Okxlbmd0aCYpOwpAQCAtNDU3LDYgKzQyMCw3IEBAIHRl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RHJhZ0RhdGE+IHsKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V1RGOjpNYWNoU2VuZFJpZ2h0PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmKTsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5j
b2RlciYsIFdURjo6TWFjaFNlbmRSaWdodCYmKTsKQEAgLTQ2OCwyNiArNDMyLDcgQEAgdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IHsKICAg
ICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IGRlY29kZShE
ZWNvZGVyJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHUG9pbnQ+
IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIENHUG9pbnQpOwotICAgIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPENHUG9pbnQ+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHU2l6ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgQ0dTaXplKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDR1NpemU+IGRl
Y29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENH
UmVjdD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dSZWN0KTsKLSAgICBz
dGF0aWMgc3RkOjpvcHRpb25hbDxDR1JlY3Q+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPiB7Ci0gICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBDR0FmZmluZVRyYW5zZm9ybSk7Ci0gICAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8Q0dBZmZpbmVUcmFuc2Zvcm0+IGRlY29kZShEZWNvZGVyJik7Ci19Owot
I2VuZGlmCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZWxlY3Rpb25H
ZW9tZXRyeT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVB
cmd1bWVudENvZGVyc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJn
dW1lbnRDb2RlcnNNYWMubW0KaW5kZXggOGU0ZDVmMTMxZDgyZjFkZWZlMjZkMTVhYmZlZTA2NGEz
Yjk4OTBmOC4uNmE0MzQwNjcxNDYzZDk0NzA3MTkyMzEwYjFmN2JhMGJkMDNhNzZmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFj
Lm1tCkBAIC0zMjEsNzkgKzMyMSw2IEBAIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6S2V5cHJlc3ND
b21tYW5kPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD46CiAgICAgcmV0
dXJuIFdURk1vdmUoY29tbWFuZCk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxDR1JlY3Q+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0dSZWN0IHJlY3QpCi17Ci0gICAgZW5jb2RlciA8PCBy
ZWN0Lm9yaWdpbiA8PCByZWN0LnNpemU7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8Q0dSZWN0PiBBcmd1
bWVudENvZGVyPENHUmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIHN0ZDo6
b3B0aW9uYWw8Q0dQb2ludD4gb3JpZ2luOwotICAgIGRlY29kZXIgPj4gb3JpZ2luOwotICAgIGlm
ICghb3JpZ2luKQotICAgICAgICByZXR1cm4geyB9OwotCi0gICAgc3RkOjpvcHRpb25hbDxDR1Np
emU+IHNpemU7Ci0gICAgZGVjb2RlciA+PiBzaXplOwotICAgIGlmICghc2l6ZSkKLSAgICAgICAg
cmV0dXJuIHsgfTsKLQotICAgIHJldHVybiBDR1JlY3QgeyAqb3JpZ2luLCAqc2l6ZSB9OwotfQot
Ci12b2lkIEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENH
U2l6ZSBzaXplKQotewotICAgIGVuY29kZXIgPDwgc2l6ZS53aWR0aCA8PCBzaXplLmhlaWdodDsK
LX0KLQotc3RkOjpvcHRpb25hbDxDR1NpemU+IEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgQ0dTaXplIHNpemU7Ci0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZShzaXplLndpZHRoKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHNpemUuaGVpZ2h0KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4g
c2l6ZTsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPENHUG9pbnQ+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgQ0dQb2ludCBwb2ludCkKLXsKLSAgICBlbmNvZGVyIDw8IHBvaW50LnggPDwgcG9p
bnQueTsKLX0KLQotc3RkOjpvcHRpb25hbDxDR1BvaW50PiBBcmd1bWVudENvZGVyPENHUG9pbnQ+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBDR1BvaW50IHBvaW50OwotICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocG9pbnQueCkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwb2ludC55KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1
cm4gcG9pbnQ7Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxDR0FmZmluZVRyYW5zZm9ybT46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0pCi17Ci0g
ICAgZW5jb2RlciA8PCB0cmFuc2Zvcm0uYSA8PCB0cmFuc2Zvcm0uYiA8PCB0cmFuc2Zvcm0uYyA8
PCB0cmFuc2Zvcm0uZCA8PCB0cmFuc2Zvcm0udHggPDwgdHJhbnNmb3JtLnR5OwotfQotCi1zdGQ6
Om9wdGlvbmFsPENHQWZmaW5lVHJhbnNmb3JtPiBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNm
b3JtPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgQ0dBZmZpbmVUcmFuc2Zvcm0g
dHJhbnNmb3JtOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmEpKQotICAgICAg
ICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmIpKQotICAg
ICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmMpKQot
ICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmQp
KQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3Jt
LnR4KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5z
Zm9ybS50eSkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgcmV0dXJuIHRyYW5zZm9ybTsKLX0K
LQogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKIAogdm9pZCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcj46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIGNvbnRlbnRG
aWx0ZXJVbmJsb2NrSGFuZGxlcikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440315</attachid>
            <date>2021-10-05 17:36:02 -0700</date>
            <delta_ts>2021-10-05 17:44:30 -0700</delta_ts>
            <desc>Try to fix the WPE build again? (9)</desc>
            <filename>bug-230714-20211005173601.patch</filename>
            <type>text/plain</type>
            <size>37071</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcwMTIxY2IyMGJiMWM2YThl
MDhkZjNkZGVjMjNjNzVlZWMwMmIwODIuLmU0ZjAyMDQ2MmFjZjdjODc4ZjZhMmFmNDE2YTMwYzQ3
OTMwMzkxYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzEgQEAKKzIwMjEtMTAtMDUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIFJlZmFj
dG9yIHNvbWUgSVBDIGFyZ3VtZW50IGVuY29kZXIgbG9naWMgdG8gd29yayB3aXRoIFN0cmVhbUNv
bm5lY3Rpb25FbmNvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzA3MTQKKyAgICAgICAgcmRhcjovLzgzNDc3NTkxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byB1c2Ug
YElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXJgIHRvIGVuY29kZSBkaXNwbGF5IGxpc3QgaXRl
bXMgKGFuZCB0aGVpciBtZW1iZXJzKSBpbiBhbgorICAgICAgICBJUEMgc3RyZWFtLiBUaGlzIHBh
dGNoIGNvbXByaXNlcyB0d28gbWFpbiBzZXRzIG9mIGNoYW5nZXMgaW4gYEFyZ3VtZW50Q29kZXJz
YCwgYW5kIGBXZWJDb3JlQXJndW1lbnRDb2RlcnNgLiBTZWUKKyAgICAgICAgYmVsb3cgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmRlY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNb25vc3RhdGU+OjpkZWNvZGUpOiBEZWxldGVk
LgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPE1vbm9zdGF0ZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2RlKToKKworICAgICAgICBNYW55IG9mIHRoZXNlIGBl
bmNvZGUoKWAgbWV0aG9kcyBhcmUgY3VycmVudGx5IG5vbi10ZW1wbGF0ZWQsIHdoaWNoIG1lYW5z
IHRoYXQgRW5jb2RlciBhbmQgRGVjb2RlciB1c2VkIGhlcmUKKyAgICAgICAgcmVmZXIgc29sZWx5
IHRvIElQQzo6RW5jb2RlciBhbmQgSVBDOjpEZWNvZGVyIChyZXNwZWN0aXZlbHkpIGluc3RlYWQg
b2Ygb3RoZXIgdHlwZXMgb2YgZW5jb2RlcnMgKG5hbWVseSwKKyAgICAgICAgU3RyZWFtQ29ubmVj
dGlvbkVuY29kZXIpLiBNYWtlIHRoZXNlIHVzZSB0ZW1wbGF0ZWQgYGVuY29kZWAgbWV0aG9kcyBp
bnRlYWQsIHNvIHRoYXQgdGhleSB3b3JrIHdpdGggZ2VuZXJpYworICAgICAgICBlbmNvZGVycy4K
KworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmVuY29kZSk6IERlbGV0ZWQuCisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2RlKTog
RGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQz
RD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRS
ZWN0Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9h
dFJlY3Q+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZs
b2F0Qm94RXh0ZW50Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjplbmNvZGUpOiBEZWxldGVkLgorICAg
ICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjpkZWNvZGUpOiBEZWxl
dGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZW5jb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmRlY29k
ZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPExheW91dFBvaW50
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKworICAgICAgICBUaGVzZSBXZWJDb3JlIGFyZ3VtZW50IGNv
ZGVycyBhcmUgYWxzbyBjdXJyZW50bHkgaW5jb21wYXRpYmxlIHdpdGggU3RyZWFtQ29ubmVjdGlv
bkVuY29kZXIsIHNpbmNlIHRoZXkgYXJlIG5vbi0KKyAgICAgICAgdGVtcGxhdGVkIChhbmQgdGh1
cyBvbmx5IHdvcmsgd2l0aCBJUEM6OkVuY29kZXIpLiBTaW5jZSB0aGVzZSBhcmUgYWxsIGVuY29k
YWJsZSBhcyBQT0QgdHlwZXMsIHdlIGNhbiBqdXN0IHVzZQorICAgICAgICBTaW1wbGVBcmd1bWVu
dENvZGVyIGZvciBhbGwgb2YgdGhlc2UuIFdlIGFsc28gYWRkIG5ldyBgREVGSU5FX1NJTVBMRV9B
UkdVTUVOVF9DT0RFUl9GT1JfKEhFQURFUnxTT1VSQ0UpYCBtYWNyb3MKKyAgICAgICAgdG8gbWFr
ZSB0aGlzIGNvZGUgYSBiaXQgZWFzaWVyIHRvIHJlYWQsIHdoaWNoIGFkZHMgU2ltcGxlQXJndW1l
bnRDb2RlciBmb3IgdGhlIGdpdmVuIHR5cGUsIGZvciBib3RoIHN0YW5kYXJkCisgICAgICAgIElQ
Qzo6RW5jb2RlciBhcyB3ZWxsIGFzIElQQzo6U3RyZWFtQ29ubmVjdGlvbkVuY29kZXIuCisKKyAg
ICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogU2hhcmVk
L21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW06CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8Q0dSZWN0Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxDR1JlY3Q+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPENHU2l6ZT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8Q0dTaXplPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR1BvaW50Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR1BvaW50Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxDR0FmZmluZVRyYW5zZm9ybT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8Q0dBZmZpbmVUcmFuc2Zvcm0+OjpkZWNvZGUpOiBEZWxldGVkLgorCiAyMDIx
LTEwLTA1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAg
IE1vdmUgRmx1c2hJZGVudGlmaWVyIG91dCBvZiB0aGUgRGlzcGxheUxpc3QgbmFtZXNwYWNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKaW5kZXggYTMy
MDU1MTg3OThiNzRkY2VkYjhhMDEzZjljOWM5ODg1YWFlNjYxNi4uZTdmMjc4MDM2MmRkMjAzNzQz
NGNhMWNiMzkwZGRlNmVmNzkxNTkzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L0FyZ3VtZW50Q29kZXJzLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlByaXZhdGVD
bGlja01lYXN1cmVtZW50RGVjb2Rlci5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVt
ZW50RW5jb2Rlci5oIgogI2luY2x1ZGUgIlN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyLmgiCisjaW5j
bHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMjE4LDYgKzIxOSw3IEBA
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIEFyZ3VtZW50Q29kZXI8U0hBMTo6RGlnZXN0Pjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFNICiB9CiAKICNpZiBIQVZFKEFVRElUX1RPS0VOKQorCiB2
b2lkIEFyZ3VtZW50Q29kZXI8YXVkaXRfdG9rZW5fdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBhdWRpdF90b2tlbl90JiBhdWRpdFRva2VuKQogewogICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGF1ZGl0VG9rZW4udmFsKTsgaSsrKQpAQCAtMjMy
LDE1ICsyMzQsNyBAQCBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBBcmd1bWVudENvZGVyPGF1ZGl0
X3Rva2VuX3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgYQogICAgIH0KICAgICByZXR1cm4g
dHJ1ZTsKIH0KLSNlbmRpZgotCi12b2lkIEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBNb25vc3RhdGUmKQotewotfQogCi1XQVJOX1VOVVNFRF9SRVRVUk4g
c3RkOjpvcHRpb25hbDxNb25vc3RhdGU+IEFyZ3VtZW50Q29kZXI8TW9ub3N0YXRlPjo6ZGVjb2Rl
KERlY29kZXImKQotewotICAgIHJldHVybiBNb25vc3RhdGUgeyB9OwotfQorI2VuZGlmIC8vIEhB
VkUoQVVESVRfVE9LRU4pCiAKIH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKaW5kZXggNDc5ZGI2MGVkYzI3MTZkNTU2MDZmNjUy
ZjI0MzFhZDM2OWY2NTcwYy4uZDk3Nzg3N2M1ZmIzNjUwN2JiNjUzMjRjMDY2M2Y4NjE1NjZkNTkz
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCkBAIC0x
MDgsMTIgKzEwOCwxNCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxBcnJheVJlZmVyZW5jZTxULCBhcnJheVJlZmVyZW5jZUR5bmFtaQogfTsKIAogdGVtcGxhdGU8
dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8T3B0aW9uU2V0PFQ+PiB7CisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgT3B0aW9uU2V0PFQ+JiBvcHRpb25TZXQpCiAgICAgewogICAgICAgICBB
U1NFUlQoV1RGOjppc1ZhbGlkT3B0aW9uU2V0KG9wdGlvblNldCkpOwogICAgICAgICBlbmNvZGVy
IDw8IG9wdGlvblNldC50b1JhdygpOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERl
Y29kZXI+CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBPcHRpb25TZXQ8VD4mIG9wdGlvblNldCkKICAgICB7CiAgICAgICAgIHR5cGVu
YW1lIE9wdGlvblNldDxUPjo6U3RvcmFnZVR5cGUgdmFsdWU7CkBAIC0xMjUsNiArMTI3LDcgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8T3B0aW9uU2V0PFQ+PiB7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERl
Y29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8T3B0aW9uU2V0PFQ+PiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgT3B0
aW9uU2V0PFQ+OjpTdG9yYWdlVHlwZT4gdmFsdWU7CkBAIC0xODgsNiArMTkxLDcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpvcHRpb25hbDxUPj4gewog
fTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQm94PFQ+JiBib3gpCiAgICAgewogICAgICAgICBpZiAo
IWJveCkgewpAQCAtMTk5LDYgKzIwMyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBB
cmd1bWVudENvZGVyPEJveDxUPj4gewogICAgICAgICBlbmNvZGVyIDw8ICpib3guZ2V0KCk7CiAg
ICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9V
TlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEJveDxUPiYgYm94KQog
ICAgIHsKICAgICAgICAgYm9vbCBpc0VuZ2FnZWQ7CkBAIC0yMTgsNiArMjIzLDcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+PiB7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8Qm94PFQ+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAg
ICB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gaXNFbmdhZ2VkOwpAQCAtMjM2LDExICsy
NDIsMTMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Qm94PFQ+
PiB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxzdGQ6OnBhaXI8VCwgVT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
PgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBzdGQ6OnBh
aXI8VCwgVT4mIHBhaXIpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHBhaXIuZmlyc3QgPDwg
cGFpci5zZWNvbmQ7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAg
ICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IHN0ZDo6cGFpcjxULCBVPiYgcGFpcikKICAgICB7CiAgICAgICAgIFQgZmlyc3Q7CkBAIC0yNTYs
NiArMjY0LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8c3RkOjpwYWlyPFQsIFU+PiB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
IAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8c3RkOjpwYWlyPFQsIFU+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8VD4gZmlyc3Q7CkBAIC0zNjYsMTEgKzM3NSwxMyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZS4uLiBFbGVtZW50cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjp0dXBsZTxF
bGVtZW50cy4uLj4+IHsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEtleVR5cGUsIHR5cGVuYW1l
IFZhbHVlVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpLZXlWYWx1ZVBhaXI8S2V5VHlw
ZSwgVmFsdWVUeXBlPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6S2V5VmFsdWVQYWly
PEtleVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAgICAgewogICAgICAgICBlbmNvZGVyIDw8IHBh
aXIua2V5IDw8IHBhaXIudmFsdWU7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVj
b2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFdURjo6S2V5VmFsdWVQYWlyPEtleVR5cGUsIFZhbHVlVHlwZT4mIHBhaXIpCiAg
ICAgewogICAgICAgICBLZXlUeXBlIGtleTsKQEAgLTM5OCw2ICs0MDksNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxl
ciwgc2l6ZV90IG1pbgogICAgICAgICAgICAgZW5jb2RlciA8PCB2ZWN0b3JbaV07CiAgICAgfQog
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgV0FSTl9VTlVTRURf
UkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxULCBpbmxpbmVDYXBh
Y2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT4mIHZlY3RvcikKICAgICB7CiAgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRs
ZXIsIG1pbkNhcGFjaXR5Pj4gb3B0aW9uYWw7CkBAIC00MzcsNiArNDQ5LDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRs
ZXIsIHNpemVfdCBtaW4KICAgICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVp
bnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4odmVjdG9yLmRhdGEoKSksIHZlY3Rvci5zaXpl
KCkgKiBzaXplb2YoVCksIGFsaWdub2YoVCkpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hh
bmRsZXIsIG1pbkNhcGFjaXR5PiYgdmVjdG9yKQogICAgIHsKICAgICAgICAgdWludDY0X3QgZGVj
b2RlZFNpemU7CkBAIC00NTEsNyArNDY0LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90
IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KICAg
ICAgICAgLy8gU2luY2Ugd2Uga25vdyB0aGUgdG90YWwgc2l6ZSBvZiB0aGUgZWxlbWVudHMsIHdl
IGNhbiBhbGxvY2F0ZSB0aGUgdmVjdG9yIGluCiAgICAgICAgIC8vIG9uZSBmZWxsIHN3b29wLiBC
ZWZvcmUgYWxsb2NhdGluZyB3ZSBtdXN0IGhvd2V2ZXIgbWFrZSBzdXJlIHRoYXQgdGhlIGRlY29k
ZXIgYnVmZmVyCiAgICAgICAgIC8vIGlzIGJpZyBlbm91Z2guCi0gICAgICAgIGlmICghZGVjb2Rl
ci5idWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluPFQ+KHNpemUpKQorICAgICAgICBpZiAoIWRl
Y29kZXIudGVtcGxhdGUgYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbjxUPihzaXplKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBWZWN0b3I8VCwgaW5saW5lQ2FwYWNp
dHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+IHRlbXA7CkBAIC00OTgsNiArNTExLDcg
QEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBP
dmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlw
ZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcs
IHR5cGVuYW1lIE1hcHBlZFRyYWl0c0FyZywgdHlwZW5hbWUgSGFzaFRhYmxlVHJhaXRzPiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlU
cmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPj4gewogICAgIHR5cGVk
ZWYgSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBw
ZWRUcmFpdHNBcmcsIEhhc2hUYWJsZVRyYWl0cz4gSGFzaE1hcFR5cGU7CiAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBIYXNoTWFwVHlwZSYgaGFzaE1hcCkKICAgICB7CiAgICAgICAgIGVuY29kZXIg
PDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGhhc2hNYXAuc2l6ZSgpKTsKQEAgLTUwNSw2ICs1MTks
NyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5h
bWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogICAgICAgICAgICAgZW5jb2RlciA8PCAqaXQ7
CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxIYXNoTWFwVHlwZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewog
ICAgICAgICB1aW50MzJfdCBoYXNoTWFwU2l6ZTsKQEAgLTUzNSw2ICs1NTAsNyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywg
dHlwZW5hbWUgS2V5VHJhaQogICAgICAgICByZXR1cm4gaGFzaE1hcDsKICAgICB9CiAKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSGFzaE1hcFR5cGUmIGhhc2hNYXApCiAgICAg
ewogICAgICAgICBzdGQ6Om9wdGlvbmFsPEhhc2hNYXBUeXBlPiB0ZW1wSGFzaE1hcDsKQEAgLTU0
OSw2ICs1NjUsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogdGVtcGxhdGU8dHlwZW5hbWUg
S2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1l
IEhhc2hUYWJsZVRyYWl0cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaFNldDxLZXlBcmcsIEhh
c2hBcmcsIEtleVRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPj4gewogICAgIHR5cGVkZWYgSGFz
aFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgSGFzaFRhYmxlVHJhaXRzPiBIYXNo
U2V0VHlwZTsKIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEhhc2hTZXRUeXBlJiBoYXNoU2V0KQog
ICAgIHsKICAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaGFzaFNldC5z
aXplKCkpOwpAQCAtNTU2LDYgKzU3Myw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlw
ZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNoCiAgICAg
ICAgICAgICBlbmNvZGVyIDw8ICppdDsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBE
ZWNvZGVyPgogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgSGFzaFNldFR5cGUmIGhhc2hTZXQpCiAgICAgewogICAgICAgICBzdGQ6Om9w
dGlvbmFsPEhhc2hTZXRUeXBlPiB0ZW1wSGFzaFNldDsKQEAgLTU2Nyw2ICs1ODUsNyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0
c0FyZywgdHlwZW5hbWUgSGFzaAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEhhc2hT
ZXRUeXBlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIHVpbnQ2NF90
IGhhc2hTZXRTaXplOwpAQCAtNTk2LDYgKzYxNSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBIYXNo
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtl
eVRyYWl0c0FyZz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaENvdW50ZWRTZXQ8S2V5QXJnLCBI
YXNoQXJnLCBLZXlUcmFpdHNBcmc+PiB7CiAgICAgdHlwZWRlZiBIYXNoQ291bnRlZFNldDxLZXlB
cmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZz4gSGFzaENvdW50ZWRTZXRUeXBlOwogICAgIAorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENvdW50ZWRTZXQpCiAg
ICAgewogICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihoYXNoQ291bnRl
ZFNldC5zaXplKCkpOwpAQCAtNjA2LDYgKzYyNiw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnPiBzdHJ1Y3QgQXJndW1l
CiAgICAgICAgIH0KICAgICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4K
ICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENvdW50ZWRTZXQpCiAgICAgewogICAgICAgICB1
aW50NjRfdCBoYXNoQ291bnRlZFNldFNpemU7CkBAIC02MzcsNiArNjU4LDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmc+
IHN0cnVjdCBBcmd1bWUKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5h
bWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWYWx1ZVR5cGUsIEVy
cm9yVHlwZT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBFeHBlY3RlZDxWYWx1ZVR5cGUsIEVy
cm9yVHlwZT4mIGV4cGVjdGVkKQogICAgIHsKICAgICAgICAgaWYgKCFleHBlY3RlZC5oYXNfdmFs
dWUoKSkgewpAQCAtNjQ4LDYgKzY3MCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwg
dHlwZW5hbWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBlY3RlZDxWCiAgICAg
ICAgIGVuY29kZXIgPDwgZXhwZWN0ZWQudmFsdWUoKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4cGVjdGVkPFZhbHVl
VHlwZSwgRXJyb3JUeXBlPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewogICAgICAg
ICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGhhc1ZhbHVlOwpAQCAtNzA0LDYgKzcyNyw3IEBAIHRlbXBs
YXRlPHR5cGVuYW1lIEVycm9yVHlwZT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8RXhwZWN0ZWQ8dm9p
ZCwgRXJyb3JUeXBlPj4gewogCiB0ZW1wbGF0ZTxzaXplX3QgaW5kZXgsIHR5cGVuYW1lLi4uIFR5
cGVzPgogc3RydWN0IFZhcmlhbnRDb2RlciB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rl
cj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV1RGOjpW
YXJpYW50PFR5cGVzLi4uPiYgdmFyaWFudCwgdW5zaWduZWQgaSkKICAgICB7CiAgICAgICAgIGlm
IChpID09IGluZGV4KSB7CkBAIC03MTMsNiArNzM3LDcgQEAgc3RydWN0IFZhcmlhbnRDb2RlciB7
CiAgICAgICAgIFZhcmlhbnRDb2RlcjxpbmRleCAtIDEsIFR5cGVzLi4uPjo6ZW5jb2RlKGVuY29k
ZXIsIHZhcmlhbnQsIGkpOwogICAgIH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNv
ZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgaWYgKGkg
PT0gaW5kZXgpIHsKQEAgLTcyOCwxMiArNzUzLDE0IEBAIHN0cnVjdCBWYXJpYW50Q29kZXIgewog
CiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4KIHN0cnVjdCBWYXJpYW50Q29kZXI8MCwgVHlw
ZXMuLi4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+JiB2
YXJpYW50LCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChpLCAhaSk7
CiAgICAgICAgIGVuY29kZXIgPDwgV1RGOjpnZXQ8MD4odmFyaWFudCk7CiAgICAgfQogICAgIAor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIsIHVuc2lnbmVk
IGkpCiAgICAgewogICAgICAgICBBU1NFUlRfVU5VU0VEKGksICFpKTsKQEAgLTc0Niw2ICs3NzMs
NyBAQCBzdHJ1Y3QgVmFyaWFudENvZGVyPDAsIFR5cGVzLi4uPiB7CiB9OwogCiB0ZW1wbGF0ZTx0
eXBlbmFtZS4uLiBUeXBlcz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpWYXJpYW50PFR5cGVz
Li4uPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdURjo6VmFyaWFudDxUeXBlcy4uLj4mIHZh
cmlhbnQpCiAgICAgewogICAgICAgICB1bnNpZ25lZCBpID0gdmFyaWFudC5pbmRleCgpOwpAQCAt
NzUzLDYgKzc4MSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+PiB7CiAgICAgICAgIFZhcmlhbnRDb2Rlcjxz
aXplb2YuLi4oVHlwZXMpIC0gMSwgVHlwZXMuLi4+OjplbmNvZGUoZW5jb2RlciwgdmFyaWFudCwg
aSk7CiAgICAgfQogICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBpOwpAQCAt
ODA0LDggKzgzMywxNCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPGF1ZGl0X3Rv
a2VuX3Q+IHsKICNlbmRpZgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPE1vbm9z
dGF0ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgTW9ub3N0YXRl
Jik7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBkZWNvZGUoRGVjb2RlciYp
OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CisgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBNb25vc3RhdGUmKSB7IH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1l
IERlY29kZXI+CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TW9ub3N0YXRlPiBkZWNvZGUoRGVj
b2RlciYpCisgICAgeworICAgICAgICByZXR1cm4gTW9ub3N0YXRlIHsgfTsKKyAgICB9CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwCmluZGV4IGVlZWU2YWViNjFhMzM4YWY4ZDNjYWVmYmY1MjQ5MTk0MGFm
NzA1NWIuLjg2N2Y2ZDU0OGI5ZTI5ODRlYzcxZjMzZGEwMjg5ODcyMzk3MWNkMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMTI1LDYg
KzEyNSw0MiBAQCBuYW1lc3BhY2UgSVBDIHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKIAorI2RlZmluZSBERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NP
REVSX0ZPUl9TT1VSQ0UoVHlwZSkgXAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IFwK
KyAgICB2b2lkIEFyZ3VtZW50Q29kZXI8VHlwZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBUeXBlJiB2YWx1ZSkgeyBTaW1wbGVBcmd1bWVudENvZGVyPFR5cGU+OjplbmNvZGUoZW5j
b2RlciwgdmFsdWUpOyB9IFwKKyAgICBib29sIEFyZ3VtZW50Q29kZXI8VHlwZT46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBUeXBlJiB2YWx1ZSkgeyByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2Rl
cjxUeXBlPjo6ZGVjb2RlKGRlY29kZXIsIHZhbHVlKTsgfSBcCisgICAgc3RkOjpvcHRpb25hbDxU
eXBlPiBBcmd1bWVudENvZGVyPFR5cGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikgXAorICAg
IHsgXAorICAgICAgICBUeXBlIHZhbHVlOyBcCisgICAgICAgIGlmICghZGVjb2RlKGRlY29kZXIs
IHZhbHVlKSkgXAorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgXAorICAgICAgICBy
ZXR1cm4gdmFsdWU7IFwKKyAgICB9IFwKKyAgICB0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8
VHlwZT46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVyJiwgY29uc3QgVHlwZSYpOyBcCisgICAgdGVt
cGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFR5cGU+OjplbmNvZGU8U3RyZWFtQ29ubmVjdGlvbkVu
Y29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwgY29uc3QgVHlwZSYpOworCitERUZJTkVf
U0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoQWZmaW5lVHJhbnNmb3JtKQorREVGSU5F
X1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0Qm94RXh0ZW50KQorREVGSU5F
X1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0UG9pbnQpCitERUZJTkVfU0lN
UExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoRmxvYXRQb2ludDNEKQorREVGSU5FX1NJTVBM
RV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0UmVjdCkKK0RFRklORV9TSU1QTEVfQVJH
VU1FTlRfQ09ERVJfRk9SX1NPVVJDRShGbG9hdFJvdW5kZWRSZWN0KQorREVGSU5FX1NJTVBMRV9B
UkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKEZsb2F0U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1F
TlRfQ09ERVJfRk9SX1NPVVJDRShJbnRQb2ludCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09E
RVJfRk9SX1NPVVJDRShJbnRSZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
U09VUkNFKEludFNpemUpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0Uo
TGF5b3V0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoTGF5
b3V0U2l6ZSkKKworI2lmIFVTRShDRykKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9S
X1NPVVJDRShDR1JlY3QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0Uo
Q0dTaXplKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKENHUG9pbnQp
CitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoQ0dBZmZpbmVUcmFuc2Zv
cm0pCisjZW5kaWYKKworI3VuZGVmIERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX1NP
VVJDRQorCiBzdGF0aWMgdm9pZCBlbmNvZGVTaGFyZWRCdWZmZXIoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgU2hhcmVkQnVmZmVyKiBidWZmZXIpCiB7CiAgICAgYm9vbCBpc051bGwgPSAhYnVmZmVy
OwpAQCAtMjMxLDE2ICsyNjcsNiBAQCBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlVHlwZXNBbmREYXRhKERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxTdHJpbgogICAgIHJldHVy
biB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgYWZmaW5lVHJhbnNmb3Jt
KQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2RlKGVu
Y29kZXIsIGFmZmluZVRyYW5zZm9ybSk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxBZmZpbmVU
cmFuc2Zvcm0+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgQWZmaW5lVHJhbnNmb3JtJiBhZmZp
bmVUcmFuc2Zvcm0pCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJh
bnNmb3JtPjo6ZGVjb2RlKGRlY29kZXIsIGFmZmluZVRyYW5zZm9ybSk7Ci19Ci0KIHZvaWQgQXJn
dW1lbnRDb2RlcjxDYWNoZVF1ZXJ5T3B0aW9ucz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBDYWNoZVF1ZXJ5T3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBlbmNvZGVyIDw8IG9wdGlv
bnMuaWdub3JlU2VhcmNoOwpAQCAtNDI1LDYgKzQ1MSw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxF
dmVudFRyYWNraW5nUmVnaW9ucz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBFdmVudFRyYWNr
aW5nCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiB2
b2lkIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybWF0aW9uTWF0cml4
KQogewogICAgIGVuY29kZXIgPDwgdHJhbnNmb3JtYXRpb25NYXRyaXgubTExKCk7CkBAIC01MDYs
NiArNTMzLDkgQEAgYm9vbCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFRyYW5zZm9ybWF0aW8KICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAordGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5j
b2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwordGVt
cGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5jb2RlPFN0
cmVhbUNvbm5lY3Rpb25FbmNvZGVyPihTdHJlYW1Db25uZWN0aW9uRW5jb2RlciYsIGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4Jik7CisKIHZvaWQgQXJndW1lbnRDb2RlcjxMaW5lYXJUaW1pbmdG
dW5jdGlvbj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMaW5lYXJUaW1pbmdGdW5j
dGlvbiYgdGltaW5nRnVuY3Rpb24pCiB7CiAgICAgZW5jb2RlciA8PCB0aW1pbmdGdW5jdGlvbi50
eXBlKCk7CkBAIC02MTcsNjUgKzY0Nyw2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxTcHJpbmdUaW1p
bmdGdW5jdGlvbj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTcHJpbmdUaW1pbmdGCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UG9pbnQmIGZsb2F0UG9pbnQpCi17Ci0gICAg
U2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0UG9p
bnQpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBGbG9hdFBvaW50JiBmbG9hdFBvaW50KQotewotICAgIHJldHVybiBTaW1wbGVB
cmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRQb2ludCk7Ci19
Ci0KLXN0ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4gQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgRmxvYXRQb2ludCBmbG9hdFBvaW50Owot
ICAgIGlmICghU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZGVjb2RlKGRlY29kZXIs
IGZsb2F0UG9pbnQpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBm
bG9hdFBvaW50OwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UG9pbnQzRCYgZmxvYXRQb2ludCkKLXsKLSAg
ICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmVuY29kZShlbmNvZGVyLCBmbG9h
dFBvaW50KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFBvaW50M0QmIGZsb2F0UG9pbnQpCi17Ci0gICAgcmV0dXJu
IFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0
UG9pbnQpOwotfQotCi0KLXZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRSZWN0JiBmbG9hdFJlY3QpCi17Ci0gICAgU2ltcGxl
QXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRSZWN0KTsKLX0K
LQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBGbG9hdFJlY3QmIGZsb2F0UmVjdCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2Rl
cjxGbG9hdFJlY3Q+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRSZWN0KTsKLX0KLQotc3RkOjpvcHRp
b25hbDxGbG9hdFJlY3Q+IEFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCi17Ci0gICAgRmxvYXRSZWN0IGZsb2F0UmVjdDsKLSAgICBpZiAoIVNpbXBsZUFy
Z3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0UmVjdCkpCi0gICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIGZsb2F0UmVjdDsKLX0KLQotCi12
b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgRmxvYXRCb3hFeHRlbnQmIGZsb2F0Qm94RXh0ZW50KQotewotICAgIFNpbXBsZUFy
Z3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRCb3hFeHRl
bnQpOwotfQotICAgIAotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIEZsb2F0Qm94RXh0ZW50JiBmbG9hdEJveEV4dGVudCkKLXsKLSAg
ICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZShkZWNv
ZGVyLCBmbG9hdEJveEV4dGVudCk7Ci19Ci0KLQogdm9pZCBBcmd1bWVudENvZGVyPFJlY3RFZGdl
czxib29sPj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWN0RWRnZXM8Ym9vbD4m
IGJveEVkZ2VzKQogewogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8UmVjdEVkZ2VzPGJvb2w+Pjo6
ZW5jb2RlKGVuY29kZXIsIGJveEVkZ2VzKTsKQEAgLTY4NiwyOCArNjU3LDYgQEAgYm9vbCBBcmd1
bWVudENvZGVyPFJlY3RFZGdlczxib29sPj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZWN0
RWRnZXM8Ym9vbD4mIGIKICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxSZWN0RWRnZXM8
Ym9vbD4+OjpkZWNvZGUoZGVjb2RlciwgYm94RWRnZXMpOwogfQogCi0KLXZvaWQgQXJndW1lbnRD
b2RlcjxGbG9hdFNpemU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRTaXpl
JiBmbG9hdFNpemUpCi17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjplbmNv
ZGUoZW5jb2RlciwgZmxvYXRTaXplKTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0U2l6
ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFNpemUmIGZsb2F0U2l6ZSkKLXsKLSAg
ICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjpkZWNvZGUoZGVjb2Rlciwg
ZmxvYXRTaXplKTsKLX0KLQotCi12b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRSb3VuZGVkUmVjdD46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByb3VuZGVk
UmVjdCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjplbmNv
ZGUoZW5jb2Rlciwgcm91bmRlZFJlY3QpOwotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRS
b3VuZGVkUmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFJvdW5kZWRSZWN0JiBy
b3VuZGVkUmVjdCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFJvdW5k
ZWRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIHJvdW5kZWRSZWN0KTsKLX0KLQogI2lmIEVOQUJMRShN
RVRBX1ZJRVdQT1JUKQogdm9pZCBBcmd1bWVudENvZGVyPFZpZXdwb3J0QXJndW1lbnRzPjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJiB2aWV3cG9ydEFy
Z3VtZW50cykKIHsKQEAgLTczOSw4NyArNjg4LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPFZpZXdw
b3J0QXR0cmlidXRlcz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBWaWV3cG9ydEF0dHJpYnUK
ICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxWaWV3cG9ydEF0dHJpYnV0ZXM+OjpkZWNv
ZGUoZGVjb2Rlciwgdmlld3BvcnRBdHRyaWJ1dGVzKTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVy
PEludFBvaW50Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEludFBvaW50JiBpbnRQ
b2ludCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZW5jb2RlKGVuY29k
ZXIsIGludFBvaW50KTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPEludFBvaW50Pjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIEludFBvaW50JiBpbnRQb2ludCkKLXsKLSAgICByZXR1cm4gU2lt
cGxlQXJndW1lbnRDb2RlcjxJbnRQb2ludD46OmRlY29kZShkZWNvZGVyLCBpbnRQb2ludCk7Ci19
Ci0KLXN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+IEFyZ3VtZW50Q29kZXI8SW50UG9p
bnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBJbnRQb2ludCBpbnRQb2ludDsK
LSAgICBpZiAoIVNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoZGVjb2Rlciwg
aW50UG9pbnQpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBpbnRQ
b2ludDsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPEludFJlY3Q+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgSW50UmVjdCYgaW50UmVjdCkKLXsKLSAgICBTaW1wbGVBcmd1bWVudENv
ZGVyPEludFJlY3Q+OjplbmNvZGUoZW5jb2RlciwgaW50UmVjdCk7Ci19Ci0KLWJvb2wgQXJndW1l
bnRDb2RlcjxJbnRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEludFJlY3QmIGludFJl
Y3QpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmRlY29kZShk
ZWNvZGVyLCBpbnRSZWN0KTsKLX0KLQotc3RkOjpvcHRpb25hbDxJbnRSZWN0PiBBcmd1bWVudENv
ZGVyPEludFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBJbnRSZWN0IHJl
Y3Q7Ci0gICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgcmVjdCkpCi0gICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7Ci0gICAgcmV0dXJuIHJlY3Q7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIEVuY29k
ZXI+Ci12b2lkIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBJbnRTaXplJiBpbnRTaXplKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50
U2l6ZT46OmVuY29kZShlbmNvZGVyLCBpbnRTaXplKTsKLX0KLQotdGVtcGxhdGUKLXZvaWQgQXJn
dW1lbnRDb2RlcjxJbnRTaXplPjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBJbnRT
aXplJik7Ci10ZW1wbGF0ZQotdm9pZCBBcmd1bWVudENvZGVyPEludFNpemU+OjplbmNvZGU8U3Ry
ZWFtQ29ubmVjdGlvbkVuY29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwgY29uc3QgSW50
U2l6ZSYpOwotCi1ib29sIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBJbnRTaXplJiBpbnRTaXplKQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENv
ZGVyPEludFNpemU+OjpkZWNvZGUoZGVjb2RlciwgaW50U2l6ZSk7Ci19Ci0KLXN0ZDo6b3B0aW9u
YWw8SW50U2l6ZT4gQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCi17Ci0gICAgSW50U2l6ZSBpbnRTaXplOwotICAgIGlmICghU2ltcGxlQXJndW1lbnRDb2Rl
cjxJbnRTaXplPjo6ZGVjb2RlKGRlY29kZXIsIGludFNpemUpKQotICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwotICAgIHJldHVybiBpbnRTaXplOwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8
TGF5b3V0U2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMYXlvdXRTaXplJiBs
YXlvdXRTaXplKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0U2l6ZT46OmVuY29k
ZShlbmNvZGVyLCBsYXlvdXRTaXplKTsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPExheW91dFNp
emU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTGF5b3V0U2l6ZSYgbGF5b3V0U2l6ZSkKLXsK
LSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxMYXlvdXRTaXplPjo6ZGVjb2RlKGRlY29k
ZXIsIGxheW91dFNpemUpOwotfQotCi0KLXZvaWQgQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMYXlvdXRQb2ludCYgbGF5b3V0UG9pbnQp
Ci17Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46OmVuY29kZShlbmNvZGVy
LCBsYXlvdXRQb2ludCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxMYXlvdXRQb2ludD46OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCBMYXlvdXRQb2ludCYgbGF5b3V0UG9pbnQpCi17Ci0gICAg
cmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGF5b3V0UG9pbnQ+OjpkZWNvZGUoZGVjb2Rlciwg
bGF5b3V0UG9pbnQpOwotfQotCiB2b2lkIEFyZ3VtZW50Q29kZXI8UmVjZW50U2VhcmNoPjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlY2VudFNlYXJjaCYgcmVjZW50U2VhcmNoKQog
ewogICAgIGVuY29kZXIgPDwgcmVjZW50U2VhcmNoLnN0cmluZyA8PCByZWNlbnRTZWFyY2gudGlt
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXgg
MzUxMzhmNWRlMzJkN2UxZjFmZDE1NGMyNjFmOGU3OTJlNDczNzcxMC4uN2U4ZmVjOWZiM2Y2Mjg1
YWU3ZTYwYjNmMDQ4NGExZWY5OWM3NmU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTI2LDEyICsyNiwyNCBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQWZmaW5lVHJh
bnNmb3JtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRvcGxheUV2ZW50Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Db2xvclNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvRmxvYXRQb2ludDNELmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0Zsb2F0Um91bmRlZFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zs
b2F0U2l6ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvSW5kZXhlZERCLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnB1dE1vZGUuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0ludFBvaW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9MYXlv
dXRQb2ludC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGF5b3V0U2l6ZS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvTGVuZ3RoQm94Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlbGVjdGlvbk9wdGlv
bi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmF0aXZlSW1hZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L05ldHdvcmtMb2FkTWV0cmljcy5oPgpAQCAtOTYsNyArMTA4LDYgQEAgdHlwZWRlZiBzdHJ1Y3Qg
X19DVkJ1ZmZlciogQ1ZQaXhlbEJ1ZmZlclJlZjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgQWJzb2x1dGVQb3NpdGlvbkNvbnN0cmFpbnRzOwotY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwog
Y2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7CiBjbGFzcyBCbG9iUGFydDsKIGNsYXNzIENl
cnRpZmljYXRlSW5mbzsKQEAgLTEwOSwyMSArMTIwLDExIEBAIGNsYXNzIERyYWdEYXRhOwogY2xh
c3MgRmlsZTsKIGNsYXNzIEZpbHRlck9wZXJhdGlvbjsKIGNsYXNzIEZpbHRlck9wZXJhdGlvbnM7
Ci1jbGFzcyBGbG9hdFBvaW50OwotY2xhc3MgRmxvYXRQb2ludDNEOwotY2xhc3MgRmxvYXRSZWN0
OwotY2xhc3MgRmxvYXRSb3VuZGVkUmVjdDsKLWNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIEZpeGVk
UG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzOwogY2xhc3MgRm9udDsKIGNsYXNzIEZvbnRQbGF0
Zm9ybURhdGE7CiBjbGFzcyBIVFRQSGVhZGVyTWFwOwotY2xhc3MgSW50UG9pbnQ7Ci1jbGFzcyBJ
bnRSZWN0OwotY2xhc3MgSW50U2l6ZTsKIGNsYXNzIEtleWZyYW1lVmFsdWVMaXN0OwotY2xhc3Mg
TGF5b3V0U2l6ZTsKLWNsYXNzIExheW91dFBvaW50OwogY2xhc3MgTGluZWFyVGltaW5nRnVuY3Rp
b247CiBjbGFzcyBOb3RpZmljYXRpb247CiBjbGFzcyBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTsKQEAg
LTE3NCw5ICsxNzUsNyBAQCBzdHJ1Y3QgVG91Y2hBY3Rpb25EYXRhOwogc3RydWN0IFZlbG9jaXR5
RGF0YTsKIHN0cnVjdCBWaWV3cG9ydEF0dHJpYnV0ZXM7CiBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7
Ci0gICAgCi10ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgUmVjdEVkZ2VzOwotdXNpbmcgRmxvYXRC
b3hFeHRlbnQgPSBSZWN0RWRnZXM8ZmxvYXQ+OworCiB1c2luZyBJREJLZXlQYXRoID0gVmFyaWFu
dDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+PjsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMjI3
LDEwICsyMjYsMzQgQEAgc3RydWN0IFJlY29yZDsKIAogbmFtZXNwYWNlIElQQyB7CiAKLXRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtPiB7Ci0g
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFu
c2Zvcm0mKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29k
ZXImLCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mKTsKLX07CisjZGVmaW5lIERFRklORV9TSU1Q
TEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihUeXBlKSBcCisgICAgdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxUeXBlPiB7IFwKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5j
b2Rlcj4gc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBUeXBlJik7IFwKKyAgICAg
ICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgVHlwZSYp
OyBcCisgICAgICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFR5cGU+IGRlY29kZShEZWNvZGVyJik7
IFwKKyAgICB9OworCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoV2Vi
Q29yZTo6QWZmaW5lVHJhbnNmb3JtKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
SEVBREVSKFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9D
T0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VN
RU5UX0NPREVSX0ZPUl9IRUFERVIoV2ViQ29yZTo6RmxvYXRQb2ludDNEKQorREVGSU5FX1NJTVBM
RV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0UmVjdCkKK0RFRklORV9T
SU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0
KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkZsb2F0
U2l6ZSkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3JlOjpJ
bnRQb2ludCkKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3Jl
OjpJbnRSZWN0KQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNv
cmU6OkludFNpemUpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoV2Vi
Q29yZTo6TGF5b3V0UG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFE
RVIoV2ViQ29yZTo6TGF5b3V0U2l6ZSkKKworI2lmIFVTRShDRykKK0RFRklORV9TSU1QTEVfQVJH
VU1FTlRfQ09ERVJfRk9SX0hFQURFUihDR1JlY3QpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NP
REVSX0ZPUl9IRUFERVIoQ0dTaXplKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1Jf
SEVBREVSKENHUG9pbnQpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIo
Q0dBZmZpbmVUcmFuc2Zvcm0pCisjZW5kaWYKKworI3VuZGVmIERFRklORV9TSU1QTEVfQVJHVU1F
TlRfQ09ERVJfRk9SX0hFQURFUgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmc+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmcmKTsKQEAgLTI2OCw2ICsyOTEsNyBA
QCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkV2ZW50VHJhY2tpbmdS
ZWdpb25zPiB7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlRyYW5zZm9ybWF0aW9uTWF0cml4PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4K
ICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9y
bWF0aW9uTWF0cml4Jik7CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29k
ZShEZWNvZGVyJiwgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKIH07CkBAIC0yOTks
NDMgKzMyMywxMSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNl
cnRpZmljYXRlSW5mbz4gewogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNlcnRp
ZmljYXRlSW5mbz4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwotICAgIHN0YXRpYyBXQVJO
X1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQm
KTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBkZWNvZGUo
RGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpGbG9hdFBvaW50M0Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwotfTsKLQotdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFJlY3Q+IHsKLSAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwot
ICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNv
cmU6OkZsb2F0UmVjdCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0
UmVjdD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0gICAgCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYpOwotICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0
Qm94RXh0ZW50Jik7Ci19OwotCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OlJlY3RFZGdlczxib29sPj4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwg
Y29uc3QgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+Jik7CiAgICAgc3RhdGljIFdBUk5fVU5VU0VE
X1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6UmVjdEVkZ2VzPGJvb2w+Jik7
CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0U2l6
ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNv
ZGVyJiwgV2ViQ29yZTo6RmxvYXRTaXplJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q+IHsKLSAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3QmKTsKLSAgICBz
dGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpG
bG9hdFJvdW5kZWRSZWN0Jik7Ci19OwotCiAjaWYgRU5BQkxFKE1FVEFfVklFV1BPUlQpCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiB7
CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpWaWV3cG9y
dEFyZ3VtZW50cyYpOwpAQCAtMzUwLDM1ICszNDIsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcz4gewogICAgIHN0YXRpYyBXQVJO
X1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlZpZXdwb3J0QXR0
cmlidXRlcyYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpJbnRQb2ludD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlKERlY29kZXImLCBXZWJDb3JlOjpJbnRQb2ludCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OkludFBvaW50PiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRSZWN0PiB7Ci0gICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0gICAgc3RhdGlj
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6SW50UmVj
dCYpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFJlY3Q+IGRlY29kZShE
ZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OkludFNpemU+IHsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgotICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwotICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkludFNp
emUmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRTaXplPiBkZWNvZGUo
RGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpMYXlvdXRTaXplPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBX
ZWJDb3JlOjpMYXlvdXRTaXplJik7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29s
IGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6TGF5b3V0U2l6ZSYpOwotfTsKLQotdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMYXlvdXRQb2ludD4gewotICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmKTsKLSAg
ICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3Jl
OjpMYXlvdXRQb2ludCYpOwotfTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpMZW5ndGg+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6Okxlbmd0aCYpOwogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBk
ZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6Okxlbmd0aCYpOwpAQCAtNDU3LDYgKzQyMCw3IEBAIHRl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RHJhZ0RhdGE+IHsKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V1RGOjpNYWNoU2VuZFJpZ2h0PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmKTsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5j
b2RlciYsIFdURjo6TWFjaFNlbmRSaWdodCYmKTsKQEAgLTQ2OCwyNiArNDMyLDcgQEAgdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IHsKICAg
ICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IGRlY29kZShE
ZWNvZGVyJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHUG9pbnQ+
IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIENHUG9pbnQpOwotICAgIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPENHUG9pbnQ+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHU2l6ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgQ0dTaXplKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDR1NpemU+IGRl
Y29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENH
UmVjdD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0dSZWN0KTsKLSAgICBz
dGF0aWMgc3RkOjpvcHRpb25hbDxDR1JlY3Q+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNmb3JtPiB7Ci0gICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBDR0FmZmluZVRyYW5zZm9ybSk7Ci0gICAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8Q0dBZmZpbmVUcmFuc2Zvcm0+IGRlY29kZShEZWNvZGVyJik7Ci19Owot
I2VuZGlmCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZWxlY3Rpb25H
ZW9tZXRyeT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVB
cmd1bWVudENvZGVyc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJn
dW1lbnRDb2RlcnNNYWMubW0KaW5kZXggOGU0ZDVmMTMxZDgyZjFkZWZlMjZkMTVhYmZlZTA2NGEz
Yjk4OTBmOC4uNmE0MzQwNjcxNDYzZDk0NzA3MTkyMzEwYjFmN2JhMGJkMDNhNzZmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFj
Lm1tCkBAIC0zMjEsNzkgKzMyMSw2IEBAIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6S2V5cHJlc3ND
b21tYW5kPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD46CiAgICAgcmV0
dXJuIFdURk1vdmUoY29tbWFuZCk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxDR1JlY3Q+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0dSZWN0IHJlY3QpCi17Ci0gICAgZW5jb2RlciA8PCBy
ZWN0Lm9yaWdpbiA8PCByZWN0LnNpemU7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8Q0dSZWN0PiBBcmd1
bWVudENvZGVyPENHUmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIHN0ZDo6
b3B0aW9uYWw8Q0dQb2ludD4gb3JpZ2luOwotICAgIGRlY29kZXIgPj4gb3JpZ2luOwotICAgIGlm
ICghb3JpZ2luKQotICAgICAgICByZXR1cm4geyB9OwotCi0gICAgc3RkOjpvcHRpb25hbDxDR1Np
emU+IHNpemU7Ci0gICAgZGVjb2RlciA+PiBzaXplOwotICAgIGlmICghc2l6ZSkKLSAgICAgICAg
cmV0dXJuIHsgfTsKLQotICAgIHJldHVybiBDR1JlY3QgeyAqb3JpZ2luLCAqc2l6ZSB9OwotfQot
Ci12b2lkIEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENH
U2l6ZSBzaXplKQotewotICAgIGVuY29kZXIgPDwgc2l6ZS53aWR0aCA8PCBzaXplLmhlaWdodDsK
LX0KLQotc3RkOjpvcHRpb25hbDxDR1NpemU+IEFyZ3VtZW50Q29kZXI8Q0dTaXplPjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgQ0dTaXplIHNpemU7Ci0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZShzaXplLndpZHRoKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHNpemUuaGVpZ2h0KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4g
c2l6ZTsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPENHUG9pbnQ+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgQ0dQb2ludCBwb2ludCkKLXsKLSAgICBlbmNvZGVyIDw8IHBvaW50LnggPDwgcG9p
bnQueTsKLX0KLQotc3RkOjpvcHRpb25hbDxDR1BvaW50PiBBcmd1bWVudENvZGVyPENHUG9pbnQ+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBDR1BvaW50IHBvaW50OwotICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocG9pbnQueCkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwb2ludC55KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1
cm4gcG9pbnQ7Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxDR0FmZmluZVRyYW5zZm9ybT46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0pCi17Ci0g
ICAgZW5jb2RlciA8PCB0cmFuc2Zvcm0uYSA8PCB0cmFuc2Zvcm0uYiA8PCB0cmFuc2Zvcm0uYyA8
PCB0cmFuc2Zvcm0uZCA8PCB0cmFuc2Zvcm0udHggPDwgdHJhbnNmb3JtLnR5OwotfQotCi1zdGQ6
Om9wdGlvbmFsPENHQWZmaW5lVHJhbnNmb3JtPiBBcmd1bWVudENvZGVyPENHQWZmaW5lVHJhbnNm
b3JtPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgQ0dBZmZpbmVUcmFuc2Zvcm0g
dHJhbnNmb3JtOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmEpKQotICAgICAg
ICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmIpKQotICAg
ICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmMpKQot
ICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtLmQp
KQotICAgICAgICByZXR1cm4geyB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3Jt
LnR4KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5z
Zm9ybS50eSkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgcmV0dXJuIHRyYW5zZm9ybTsKLX0K
LQogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKIAogdm9pZCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcj46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIGNvbnRlbnRG
aWx0ZXJVbmJsb2NrSGFuZGxlcikK
</data>

          </attachment>
      

    </bug>

</bugzilla>