<?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>212734</bug_id>
          
          <creation_ts>2020-06-04 02:22:16 -0700</creation_ts>
          <short_desc>Reduce DFGDoesGCCheck to only storing a uint32_t.</short_desc>
          <delta_ts>2020-06-04 12:55:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=212735</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Paulo Matos">pmatos</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1659019</commentid>
    <comment_count>0</comment_count>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2020-06-04 02:22:16 -0700</bug_when>
    <thetext>Port DFGDoesGCCheck to 32 bits</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659020</commentid>
    <comment_count>1</comment_count>
      <attachid>401009</attachid>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2020-06-04 02:26:40 -0700</bug_when>
    <thetext>Created attachment 401009
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659027</commentid>
    <comment_count>2</comment_count>
      <attachid>401009</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2020-06-04 03:15:01 -0700</bug_when>
    <thetext>Comment on attachment 401009
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGDoesGCCheck.h:130
&gt; +    static constexpr unsigned nodeIndexShift = 16;

Is 8 bits enough to encode nodeOp?

&gt; Source/JavaScriptCore/dfg/DFGDoesGCCheck.h:133
&gt; +    static constexpr unsigned specialMask = 0x7fff;

Is this correct? This mask seems to be ok when we have 15 bits to store special, but here we only have 7.

&gt; Source/JavaScriptCore/dfg/DFGDoesGCCheck.h:134
&gt; +    static constexpr unsigned nodeOpMask = 0xffff;

The  same applies here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659037</commentid>
    <comment_count>3</comment_count>
      <attachid>401009</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2020-06-04 03:43:38 -0700</bug_when>
    <thetext>Comment on attachment 401009
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGDoesGCCheck.h:66
&gt; +#else

Wouldn&apos;t be possible to use `size_t` and avoid this divergence from 32-bits and 64-bits?

&gt;&gt; Source/JavaScriptCore/dfg/DFGDoesGCCheck.h:130
&gt;&gt; +    static constexpr unsigned nodeIndexShift = 16;
&gt; 
&gt; Is 8 bits enough to encode nodeOp?

For reference, `Node::op` into `dfg/DFGNode.h` uses 10 bits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659040</commentid>
    <comment_count>4</comment_count>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2020-06-04 04:10:03 -0700</bug_when>
    <thetext>I&apos;m also checking that we don&apos;t have a proper setup of doesGC into `dfg/DFGSpeculativeJIT32_64.cpp` like we have for `dfg/DFGSpeculativeJIT64.cpp` into `SpeculativeJIT::compile(Node* node)`. It would be necessary to include this for proper 32-bits support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659041</commentid>
    <comment_count>5</comment_count>
      <attachid>401013</attachid>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2020-06-04 04:10:23 -0700</bug_when>
    <thetext>Created attachment 401013
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659042</commentid>
    <comment_count>6</comment_count>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2020-06-04 04:11:09 -0700</bug_when>
    <thetext>(In reply to Caio Lima from comment #3)
&gt; Comment on attachment 401009 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=401009&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/dfg/DFGDoesGCCheck.h:66
&gt; &gt; +#else
&gt; 
&gt; Wouldn&apos;t be possible to use `size_t` and avoid this divergence from 32-bits
&gt; and 64-bits?
&gt; 
&gt; &gt;&gt; Source/JavaScriptCore/dfg/DFGDoesGCCheck.h:130
&gt; &gt;&gt; +    static constexpr unsigned nodeIndexShift = 16;
&gt; &gt; 
&gt; &gt; Is 8 bits enough to encode nodeOp?
&gt; 
&gt; For reference, `Node::op` into `dfg/DFGNode.h` uses 10 bits.

Thanks for the comments - I have addressed this. Now nodeOp has 15 bits available.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659043</commentid>
    <comment_count>7</comment_count>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2020-06-04 04:12:03 -0700</bug_when>
    <thetext>(In reply to Caio Lima from comment #4)
&gt; I&apos;m also checking that we don&apos;t have a proper setup of doesGC into
&gt; `dfg/DFGSpeculativeJIT32_64.cpp` like we have for
&gt; `dfg/DFGSpeculativeJIT64.cpp` into `SpeculativeJIT::compile(Node* node)`. It
&gt; would be necessary to include this for proper 32-bits support.

I hadn&apos;t noticed that - I will take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659049</commentid>
    <comment_count>8</comment_count>
      <attachid>401014</attachid>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2020-06-04 04:52:20 -0700</bug_when>
    <thetext>Created attachment 401014
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659091</commentid>
    <comment_count>9</comment_count>
      <attachid>401014</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-04 07:27:37 -0700</bug_when>
    <thetext>Comment on attachment 401014
Patch

r- because this appears to be breaking the build (see mac-debug bot).  I also have an alternate solution which I&apos;ll try to upload later today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659094</commentid>
    <comment_count>10</comment_count>
      <attachid>401022</attachid>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2020-06-04 07:39:44 -0700</bug_when>
    <thetext>Created attachment 401022
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659096</commentid>
    <comment_count>11</comment_count>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2020-06-04 07:40:26 -0700</bug_when>
    <thetext>(In reply to Mark Lam from comment #9)
&gt; Comment on attachment 401014 [details]
&gt; Patch
&gt; 
&gt; r- because this appears to be breaking the build (see mac-debug bot).  I
&gt; also have an alternate solution which I&apos;ll try to upload later today.

Yes, I forgot to define a variable for 64bit. Now added new patch which should fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659104</commentid>
    <comment_count>12</comment_count>
      <attachid>401022</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-04 08:07:26 -0700</bug_when>
    <thetext>Comment on attachment 401022
Patch

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

There is some value in this patch, but the 32-bit encoding is just wrong and won&apos;t work.  As I said before, I already have a patch brewing that will solve the 32-bit encoding problem.  Since the build is no longer breaking, can you wait for my patch?

&gt; Source/JavaScriptCore/ChangeLog:10
&gt; +        This change implements a port of the initial patch for 32bits. As it stands, 32bits ports
&gt; +        are not compiling.

It&apos;s no longer true the 32-bits ports are not compiling.  Can you remove this?

&gt; Source/JavaScriptCore/dfg/DFGDoesGCCheck.h:50
&gt; +    static size_t encode(bool expectDoesGC, unsigned nodeIndex, unsigned nodeOp)

size_t is the wrong type to use here.  This can break the build for the arm64_32 port.  I recommend that you add the following at the top of this struct:

#if USE(JSVALUE64)
using EncodedWord = uint64_t;
#else
using EncodedWord = uint32_t;
#endif

... and use EncodedWord here instead of size_t.

&gt; Source/JavaScriptCore/dfg/DFGDoesGCCheck.h:67
&gt; -
&gt; +    

please undo this.

&gt; Source/JavaScriptCore/dfg/DFGDoesGCCheck.h:114
&gt; +    static constexpr unsigned specialShift = 1;
&gt; +    static constexpr unsigned nodeOpShift = 1;

This is wrong.  Based on the present encoding, the special section will collide with the nodeOp section, and you will get non-sensical results from the doesGC error messages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659106</commentid>
    <comment_count>13</comment_count>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2020-06-04 08:09:20 -0700</bug_when>
    <thetext>(In reply to Mark Lam from comment #12)
&gt; Comment on attachment 401022 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=401022&amp;action=review
&gt; 
&gt; There is some value in this patch, but the 32-bit encoding is just wrong and
&gt; won&apos;t work.  As I said before, I already have a patch brewing that will
&gt; solve the 32-bit encoding problem.  Since the build is no longer breaking,
&gt; can you wait for my patch?
&gt; 

Thanks for the comments - I will wait for your patch as per your suggestion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659133</commentid>
    <comment_count>14</comment_count>
      <attachid>401030</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-04 09:56:26 -0700</bug_when>
    <thetext>Created attachment 401030
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659150</commentid>
    <comment_count>15</comment_count>
      <attachid>401037</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-04 10:29:05 -0700</bug_when>
    <thetext>Created attachment 401037
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659151</commentid>
    <comment_count>16</comment_count>
      <attachid>401038</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-04 10:31:18 -0700</bug_when>
    <thetext>Created attachment 401038
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659166</commentid>
    <comment_count>17</comment_count>
      <attachid>401042</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-04 10:51:09 -0700</bug_when>
    <thetext>Created attachment 401042
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659170</commentid>
    <comment_count>18</comment_count>
      <attachid>401043</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-04 10:54:30 -0700</bug_when>
    <thetext>Created attachment 401043
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659227</commentid>
    <comment_count>19</comment_count>
      <attachid>401043</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2020-06-04 12:00:10 -0700</bug_when>
    <thetext>Comment on attachment 401043
proposed patch.

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

Informal r+ with comments. I tested compiling 32-bits locally (queue is not going to process it anytime soon) and both Release and Debug build if we  just add `#include &quot;DFGDoesGC.h&quot;` in `DFGSpeculativeJIT32_64.cpp`.

&gt; Source/JavaScriptCore/dfg/DFGDoesGCCheck.cpp:45
&gt; +    // We do this chck here just so we don&apos;t have to #include DFGNodeType.h

typo: s/chck/check/

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:1810
&gt; +        bool expectDoesGC = doesGC(m_jit.graph(), node);

We are missing `#include &quot;DFGDoesGC.h&quot;` into this file. I tested the patch locally and it is causing compilation error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659248</commentid>
    <comment_count>20</comment_count>
      <attachid>401043</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-06-04 12:27:26 -0700</bug_when>
    <thetext>Comment on attachment 401043
proposed patch.

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

&gt; Source/JavaScriptCore/ChangeLog:28
&gt; +        This patch also makes ENABLE_DFG_DOES_GC_VALIDATION dependent on ENABLE(DFG_JIT).

can we also add a runtime flag for this to make it easy not to clutter the emitted assembly on debug builds?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659249</commentid>
    <comment_count>21</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-04 12:35:22 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #20)
&gt; Comment on attachment 401043 [details]
&gt; proposed patch.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=401043&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:28
&gt; &gt; +        This patch also makes ENABLE_DFG_DOES_GC_VALIDATION dependent on ENABLE(DFG_JIT).
&gt; 
&gt; can we also add a runtime flag for this to make it easy not to clutter the
&gt; emitted assembly on debug builds?

I&apos;ll do this in a separate patch.  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659268</commentid>
    <comment_count>22</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-04 12:54:54 -0700</bug_when>
    <thetext>Thanks for the reviews.  Landing in r262562: &lt;http://trac.webkit.org/r262562&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659269</commentid>
    <comment_count>23</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-04 12:55:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/63991469&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401009</attachid>
            <date>2020-06-04 02:26:40 -0700</date>
            <delta_ts>2020-06-04 04:10:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212734-20200604112636.patch</filename>
            <type>text/plain</type>
            <size>4597</size>
            <attacher name="Paulo Matos">pmatos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
ODg4ZTZjMmZkYWQ2YWVmNDk5ZTNmY2VkYjBlYzA4ODQzZmFhYzVjLi4wNDM2N2YzOTgyODc1NjYw
ZTQwZjQ5MWZlMGFhODFiZjhiN2EwYjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAyMC0wNi0wNCAgUGF1bG8gTWF0b3MgIDxwbWF0b3NAaWdhbGlhLmNvbT4K
KworICAgICAgICBQb3J0IERGR0RvZXNHQ0NoZWNrIHRvIDMyIGJpdHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjczNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSByMjYyNTEzIGltcGxlbWVu
dGVkIERvZXNHQyB2ZXJpZmljYXRpb24gZW5oYW5jZW1lbnQgYnV0IGl0IG9ubHkgd29ya3MgZm9y
IDY0Yml0LgorICAgICAgICBUaGlzIGNoYW5nZSBpbXBsZW1lbnRzIGEgcG9ydCBvZiB0aGUgaW5p
dGlhbCBwYXRjaCBmb3IgMzJiaXRzLiBBcyBpdCBzdGFuZHMsIDMyYml0cyBwb3J0cworICAgICAg
ICBhcmUgbm90IGNvbXBpbGluZy4KKworICAgICAgICAqIGRmZy9ERkdEb2VzR0NDaGVjay5oOgor
ICAgICAgICAoSlNDOjpERkc6OkRvZXNHQ0NoZWNrOjplbmNvZGUpOgorICAgICAgICAoSlNDOjpE
Rkc6OkRvZXNHQ0NoZWNrOjpiaXRzKToKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6T1NSRXhpdDo6Y29tcGlsZUV4aXQpOgorCiAyMDIwLTA2LTAzICBU
YWRldSBaYWdhbGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgogCiAgICAgICAgIERpc2FibGUgQjMg
aG9pc3RMb29wSW52YXJpYW50VmFsdWVzIGJ5IGRlZmF1bHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDQ2hlY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRG9lc0dDQ2hlY2suaAppbmRleCBiZWM2YjcxZTJiZDU1ODM1YzQxMThjYjcyYzYw
YjU2ZThiODE5MTA5Li40NmFlZGY0ZWIzNTFmNGU2NGU0MzBkMDgyMzVkMmQ1NDMzZGYxZTA2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQ0NoZWNrLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0NDaGVjay5oCkBAIC00Nyw2ICs0
Nyw3IEBAIHN0cnVjdCBEb2VzR0NDaGVjayB7CiAgICAgICAgIDogbV92YWx1ZShlbmNvZGUodHJ1
ZSwgU3BlY2lhbDo6VW5pbml0aWFsaXplZCkpCiAgICAgeyB9CiAKKyNpZiBVU0UoSlNWQUxVRTY0
KQogICAgIHN0YXRpYyB1aW50NjRfdCBlbmNvZGUoYm9vbCBleHBlY3REb2VzR0MsIHVuc2lnbmVk
IG5vZGVJbmRleCwgdW5zaWduZWQgbm9kZU9wKQogICAgIHsKICAgICAgICAgdWludDY0X3QgcmVz
dWx0ID0gYml0cyhub2RlSW5kZXgpIDw8IG5vZGVJbmRleFNoaWZ0OwpAQCAtNjIsNyArNjMsMjQg
QEAgc3RydWN0IERvZXNHQ0NoZWNrIHsKICAgICAgICAgcmVzdWx0IHw9IGJpdHMoZXhwZWN0RG9l
c0dDKSA8PCBleHBlY3REb2VzR0NTaGlmdDsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9
CisjZWxzZQorICAgIHN0YXRpYyB1aW50MzJfdCBlbmNvZGUoYm9vbCBleHBlY3REb2VzR0MsIHVu
c2lnbmVkIG5vZGVJbmRleCwgdW5zaWduZWQgbm9kZU9wKQorICAgIHsKKyAgICAgICAgdWludDMy
X3QgcmVzdWx0ID0gYml0cyhub2RlSW5kZXgpIDw8IG5vZGVJbmRleFNoaWZ0OworICAgICAgICBy
ZXN1bHQgfD0gYml0cyhub2RlT3ApIDw8IG5vZGVPcFNoaWZ0OworICAgICAgICByZXN1bHQgfD0g
Yml0cyhleHBlY3REb2VzR0MpIDw8IGV4cGVjdERvZXNHQ1NoaWZ0OworICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgIH0KIAorICAgIHN0YXRpYyB1aW50MzJfdCBlbmNvZGUoYm9vbCBleHBlY3RE
b2VzR0MsIFNwZWNpYWwgc3BlY2lhbCkKKyAgICB7CisgICAgICAgIEFTU0VSVChiaXRzKHNwZWNp
YWwpIDwgbnVtYmVyT2ZTcGVjaWFscyk7CisgICAgICAgIHVpbnQzMl90IHJlc3VsdCA9IGJpdHMo
c3BlY2lhbCkgPDwgc3BlY2lhbFNoaWZ0OworICAgICAgICByZXN1bHQgfD0gYml0cyhleHBlY3RE
b2VzR0MpIDw8IGV4cGVjdERvZXNHQ1NoaWZ0OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
IH0KKyNlbmRpZgorICAgIAogICAgIHZvaWQgc2V0KGJvb2wgZXhwZWN0RG9lc0dDLCB1bnNpZ25l
ZCBub2RlSW5kZXgsIHVuc2lnbmVkIG5vZGVPcCkKICAgICB7CiAgICAgICAgIG1fdmFsdWUgPSBl
bmNvZGUoZXhwZWN0RG9lc0dDLCBub2RlSW5kZXgsIG5vZGVPcCk7CkBAIC04NSw2ICsxMDMsNyBA
QCBzdHJ1Y3QgRG9lc0dDQ2hlY2sgewogcHJpdmF0ZToKICAgICB1bnNpZ25lZCBzcGVjaWFsSW5k
ZXgoKSB7IHJldHVybiAobV92YWx1ZSA+PiBzcGVjaWFsU2hpZnQpICYgc3BlY2lhbE1hc2s7IH0K
IAorI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIHVp
bnQ2NF90IGJpdHMoVCB2YWx1ZSkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHZhbHVl
KTsgfQogCiAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50NjRfdCBudW1iZXJPZlNwZWNpYWxzID0g
c3RhdGljX2Nhc3Q8dWludDY0X3Q+KFNwZWNpYWw6Ok51bWJlck9mU3BlY2lhbHMpOwpAQCAtOTks
NiArMTE4LDIzIEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBub2Rl
T3BNYXNrID0gMHhmZmZmOwogCiAgICAgdWludDY0X3QgbV92YWx1ZSB7IDAgfTsKKyNlbHNlCisg
ICAgLyogMzIgYml0cyBTZWN0aW9uKi8KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMg
dWludDMyX3QgYml0cyhUIHZhbHVlKSB7IHJldHVybiBzdGF0aWNfY2FzdDx1aW50MzJfdD4odmFs
dWUpOyB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IG51bWJlck9mU3BlY2lhbHMg
PSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oU3BlY2lhbDo6TnVtYmVyT2ZTcGVjaWFscyk7CisKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGV4cGVjdERvZXNHQ1NoaWZ0ID0gMDsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHNwZWNpYWxTaGlmdCA9IDE7CisgICAgc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCBub2RlT3BTaGlmdCA9IDg7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBub2RlSW5kZXhTaGlmdCA9IDE2OworCisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBleHBlY3REb2VzR0NNYXNrID0gMHgxOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgc3BlY2lhbE1hc2sgPSAweDdmZmY7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBu
b2RlT3BNYXNrID0gMHhmZmZmOworCisgICAgdWludDMyX3QgbV92YWx1ZSB7IDAgfTsKKyNlbmRp
ZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgREZHCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09TUkV4aXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFeGl0LmNwcAppbmRleCAxODUwNWI0MzkxOGNjZDljMjQzYmFlMTUwOGM3NDFhZTljY2MzMTk4
Li40NWM0NDcwZWNiZWZiNjg2NmEzODYwNzc0ZWU2Y2YyNGIxYTg1ODI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAKQEAgLTU1OSw3ICs1NTksMTEgQEAgdm9pZCBP
U1JFeGl0Ojpjb21waWxlRXhpdChDQ2FsbEhlbHBlcnMmIGppdCwgVk0mIHZtLCBjb25zdCBPU1JF
eGl0JiBleGl0LCBjb25zdAogICAgICAgICAvLyB0byBzZXQgaXQgaGVyZSBiZWNhdXNlIGNvbXBp
bGVPU1JFeGl0KCkgaXMgb25seSBjYWxsZWQgb24gdGhlIGZpcnN0IHRpbWUKICAgICAgICAgLy8g
d2UgZXhpdCBmcm9tIHRoaXMgc2l0ZSwgYnV0IGFsbCBzdWJzZXF1ZW50IGV4aXRzIHdpbGwgdGFr
ZSB0aGlzIGNvbXBpbGVkCiAgICAgICAgIC8vIHJhbXAgd2l0aG91dCBjYWxsaW5nIGNvbXBpbGVP
U1JFeGl0KCkgZmlyc3QuCisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgaml0LnN0b3JlNjQo
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tNjQoRG9lc0dDQ2hlY2s6OmVuY29kZSh0cnVlLCBEb2Vz
R0NDaGVjazo6U3BlY2lhbDo6REZHT1NSRXhpdCkpLCB2bS5oZWFwLmFkZHJlc3NPZkRvZXNHQygp
KTsKKyNlbHNlCisgICAgICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMy
KERvZXNHQ0NoZWNrOjplbmNvZGUodHJ1ZSwgRG9lc0dDQ2hlY2s6OlNwZWNpYWw6OkRGR09TUkV4
aXQpKSwgdm0uaGVhcC5hZGRyZXNzT2ZEb2VzR0MoKSk7CisjZW5kaWYKICAgICB9CiAKICAgICAv
LyBOZWVkIHRvIGVuc3VyZSB0aGF0IHRoZSBzdGFjayBwb2ludGVyIGFjY291bnRzIGZvciB0aGUg
d29yc3QtY2FzZSBzdGFjayB1c2FnZSBhdCBleGl0LiBUaGlzCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401013</attachid>
            <date>2020-06-04 04:10:23 -0700</date>
            <delta_ts>2020-06-04 04:52:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212734-20200604131018.patch</filename>
            <type>text/plain</type>
            <size>4705</size>
            <attacher name="Paulo Matos">pmatos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
ODg4ZTZjMmZkYWQ2YWVmNDk5ZTNmY2VkYjBlYzA4ODQzZmFhYzVjLi4wNDM2N2YzOTgyODc1NjYw
ZTQwZjQ5MWZlMGFhODFiZjhiN2EwYjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAyMC0wNi0wNCAgUGF1bG8gTWF0b3MgIDxwbWF0b3NAaWdhbGlhLmNvbT4K
KworICAgICAgICBQb3J0IERGR0RvZXNHQ0NoZWNrIHRvIDMyIGJpdHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjczNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSByMjYyNTEzIGltcGxlbWVu
dGVkIERvZXNHQyB2ZXJpZmljYXRpb24gZW5oYW5jZW1lbnQgYnV0IGl0IG9ubHkgd29ya3MgZm9y
IDY0Yml0LgorICAgICAgICBUaGlzIGNoYW5nZSBpbXBsZW1lbnRzIGEgcG9ydCBvZiB0aGUgaW5p
dGlhbCBwYXRjaCBmb3IgMzJiaXRzLiBBcyBpdCBzdGFuZHMsIDMyYml0cyBwb3J0cworICAgICAg
ICBhcmUgbm90IGNvbXBpbGluZy4KKworICAgICAgICAqIGRmZy9ERkdEb2VzR0NDaGVjay5oOgor
ICAgICAgICAoSlNDOjpERkc6OkRvZXNHQ0NoZWNrOjplbmNvZGUpOgorICAgICAgICAoSlNDOjpE
Rkc6OkRvZXNHQ0NoZWNrOjpiaXRzKToKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6T1NSRXhpdDo6Y29tcGlsZUV4aXQpOgorCiAyMDIwLTA2LTAzICBU
YWRldSBaYWdhbGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgogCiAgICAgICAgIERpc2FibGUgQjMg
aG9pc3RMb29wSW52YXJpYW50VmFsdWVzIGJ5IGRlZmF1bHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDQ2hlY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRG9lc0dDQ2hlY2suaAppbmRleCBiZWM2YjcxZTJiZDU1ODM1YzQxMThjYjcyYzYw
YjU2ZThiODE5MTA5Li4zYTUyNGM5MDI1M2UwM2I1MzViMjJmOGYzZDk1Y2VmOWE0OGI1ZmU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQ0NoZWNrLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0NDaGVjay5oCkBAIC00NywyMiAr
NDcsMjQgQEAgc3RydWN0IERvZXNHQ0NoZWNrIHsKICAgICAgICAgOiBtX3ZhbHVlKGVuY29kZSh0
cnVlLCBTcGVjaWFsOjpVbmluaXRpYWxpemVkKSkKICAgICB7IH0KIAotICAgIHN0YXRpYyB1aW50
NjRfdCBlbmNvZGUoYm9vbCBleHBlY3REb2VzR0MsIHVuc2lnbmVkIG5vZGVJbmRleCwgdW5zaWdu
ZWQgbm9kZU9wKQorICAgIHN0YXRpYyBzaXplX3QgZW5jb2RlKGJvb2wgZXhwZWN0RG9lc0dDLCB1
bnNpZ25lZCBub2RlSW5kZXgsIHVuc2lnbmVkIG5vZGVPcCkKICAgICB7Ci0gICAgICAgIHVpbnQ2
NF90IHJlc3VsdCA9IGJpdHMobm9kZUluZGV4KSA8PCBub2RlSW5kZXhTaGlmdDsKKyAgICAgICAg
QVNTRVJUKChub2RlSW5kZXggJiBub2RlSW5kZXhNYXNrKSA9PSBub2RlSW5kZXgpOworICAgICAg
ICBBU1NFUlQoKG5vZGVPcCAmIG5vZGVPcE1hc2spID09IG5vZGVPcCk7CisgICAgICAgIHNpemVf
dCByZXN1bHQgPSBiaXRzKG5vZGVJbmRleCkgPDwgbm9kZUluZGV4U2hpZnQ7CiAgICAgICAgIHJl
c3VsdCB8PSBiaXRzKG5vZGVPcCkgPDwgbm9kZU9wU2hpZnQ7CiAgICAgICAgIHJlc3VsdCB8PSBi
aXRzKGV4cGVjdERvZXNHQykgPDwgZXhwZWN0RG9lc0dDU2hpZnQ7CiAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CiAgICAgfQogCi0gICAgc3RhdGljIHVpbnQ2NF90IGVuY29kZShib29sIGV4cGVjdERv
ZXNHQywgU3BlY2lhbCBzcGVjaWFsKQorICAgIHN0YXRpYyBzaXplX3QgZW5jb2RlKGJvb2wgZXhw
ZWN0RG9lc0dDLCBTcGVjaWFsIHNwZWNpYWwpCiAgICAgewogICAgICAgICBBU1NFUlQoYml0cyhz
cGVjaWFsKSA8IG51bWJlck9mU3BlY2lhbHMpOwotICAgICAgICB1aW50NjRfdCByZXN1bHQgPSBi
aXRzKHNwZWNpYWwpIDw8IHNwZWNpYWxTaGlmdDsKKyAgICAgICAgc2l6ZV90IHJlc3VsdCA9IGJp
dHMoc3BlY2lhbCkgPDwgc3BlY2lhbFNoaWZ0OwogICAgICAgICByZXN1bHQgfD0gYml0cyhleHBl
Y3REb2VzR0MpIDw8IGV4cGVjdERvZXNHQ1NoaWZ0OwogICAgICAgICByZXR1cm4gcmVzdWx0Owog
ICAgIH0KLQorICAgIAogICAgIHZvaWQgc2V0KGJvb2wgZXhwZWN0RG9lc0dDLCB1bnNpZ25lZCBu
b2RlSW5kZXgsIHVuc2lnbmVkIG5vZGVPcCkKICAgICB7CiAgICAgICAgIG1fdmFsdWUgPSBlbmNv
ZGUoZXhwZWN0RG9lc0dDLCBub2RlSW5kZXgsIG5vZGVPcCk7CkBAIC04NSw2ICs4Nyw3IEBAIHN0
cnVjdCBEb2VzR0NDaGVjayB7CiBwcml2YXRlOgogICAgIHVuc2lnbmVkIHNwZWNpYWxJbmRleCgp
IHsgcmV0dXJuIChtX3ZhbHVlID4+IHNwZWNpYWxTaGlmdCkgJiBzcGVjaWFsTWFzazsgfQogCisj
aWYgVVNFKEpTVkFMVUU2NCkKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgdWludDY0
X3QgYml0cyhUIHZhbHVlKSB7IHJldHVybiBzdGF0aWNfY2FzdDx1aW50NjRfdD4odmFsdWUpOyB9
CiAKICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQ2NF90IG51bWJlck9mU3BlY2lhbHMgPSBzdGF0
aWNfY2FzdDx1aW50NjRfdD4oU3BlY2lhbDo6TnVtYmVyT2ZTcGVjaWFscyk7CkBAIC05OSw2ICsx
MDIsMjQgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG5vZGVPcE1h
c2sgPSAweGZmZmY7CiAKICAgICB1aW50NjRfdCBtX3ZhbHVlIHsgMCB9OworI2Vsc2UKKyAgICAv
KiAzMiBiaXRzIFNlY3Rpb24qLworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyB1aW50
MzJfdCBiaXRzKFQgdmFsdWUpIHsgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQzMl90Pih2YWx1ZSk7
IH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbnVtYmVyT2ZTcGVjaWFscyA9IHN0
YXRpY19jYXN0PHVpbnQzMl90PihTcGVjaWFsOjpOdW1iZXJPZlNwZWNpYWxzKTsKKworICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgZXhwZWN0RG9lc0dDU2hpZnQgPSAwOworICAgIHN0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgc3BlY2lhbFNoaWZ0ID0gMTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIG5vZGVPcFNoaWZ0ID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIG5vZGVJbmRleFNoaWZ0ID0gMTY7CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IGV4cGVjdERvZXNHQ01hc2sgPSAweDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBz
cGVjaWFsTWFzayA9IDB4N2ZmZjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG5vZGVP
cE1hc2sgPSAweDdmZmY7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBub2RlSW5kZXhN
YXNrID0gMHhmZmZmOworCisgICAgdWludDMyX3QgbV92YWx1ZSB7IDAgfTsKKyNlbmRpZgogfTsK
IAogfSAvLyBuYW1lc3BhY2UgREZHCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09TUkV4aXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0
LmNwcAppbmRleCAxODUwNWI0MzkxOGNjZDljMjQzYmFlMTUwOGM3NDFhZTljY2MzMTk4Li40NWM0
NDcwZWNiZWZiNjg2NmEzODYwNzc0ZWU2Y2YyNGIxYTg1ODI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAKQEAgLTU1OSw3ICs1NTksMTEgQEAgdm9pZCBPU1JFeGl0
Ojpjb21waWxlRXhpdChDQ2FsbEhlbHBlcnMmIGppdCwgVk0mIHZtLCBjb25zdCBPU1JFeGl0JiBl
eGl0LCBjb25zdAogICAgICAgICAvLyB0byBzZXQgaXQgaGVyZSBiZWNhdXNlIGNvbXBpbGVPU1JF
eGl0KCkgaXMgb25seSBjYWxsZWQgb24gdGhlIGZpcnN0IHRpbWUKICAgICAgICAgLy8gd2UgZXhp
dCBmcm9tIHRoaXMgc2l0ZSwgYnV0IGFsbCBzdWJzZXF1ZW50IGV4aXRzIHdpbGwgdGFrZSB0aGlz
IGNvbXBpbGVkCiAgICAgICAgIC8vIHJhbXAgd2l0aG91dCBjYWxsaW5nIGNvbXBpbGVPU1JFeGl0
KCkgZmlyc3QuCisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgaml0LnN0b3JlNjQoQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tNjQoRG9lc0dDQ2hlY2s6OmVuY29kZSh0cnVlLCBEb2VzR0NDaGVj
azo6U3BlY2lhbDo6REZHT1NSRXhpdCkpLCB2bS5oZWFwLmFkZHJlc3NPZkRvZXNHQygpKTsKKyNl
bHNlCisgICAgICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKERvZXNH
Q0NoZWNrOjplbmNvZGUodHJ1ZSwgRG9lc0dDQ2hlY2s6OlNwZWNpYWw6OkRGR09TUkV4aXQpKSwg
dm0uaGVhcC5hZGRyZXNzT2ZEb2VzR0MoKSk7CisjZW5kaWYKICAgICB9CiAKICAgICAvLyBOZWVk
IHRvIGVuc3VyZSB0aGF0IHRoZSBzdGFjayBwb2ludGVyIGFjY291bnRzIGZvciB0aGUgd29yc3Qt
Y2FzZSBzdGFjayB1c2FnZSBhdCBleGl0LiBUaGlzCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401014</attachid>
            <date>2020-06-04 04:52:20 -0700</date>
            <delta_ts>2020-06-04 07:39:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212734-20200604135216.patch</filename>
            <type>text/plain</type>
            <size>5731</size>
            <attacher name="Paulo Matos">pmatos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
ODg4ZTZjMmZkYWQ2YWVmNDk5ZTNmY2VkYjBlYzA4ODQzZmFhYzVjLi4wNDM2N2YzOTgyODc1NjYw
ZTQwZjQ5MWZlMGFhODFiZjhiN2EwYjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAyMC0wNi0wNCAgUGF1bG8gTWF0b3MgIDxwbWF0b3NAaWdhbGlhLmNvbT4K
KworICAgICAgICBQb3J0IERGR0RvZXNHQ0NoZWNrIHRvIDMyIGJpdHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjczNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSByMjYyNTEzIGltcGxlbWVu
dGVkIERvZXNHQyB2ZXJpZmljYXRpb24gZW5oYW5jZW1lbnQgYnV0IGl0IG9ubHkgd29ya3MgZm9y
IDY0Yml0LgorICAgICAgICBUaGlzIGNoYW5nZSBpbXBsZW1lbnRzIGEgcG9ydCBvZiB0aGUgaW5p
dGlhbCBwYXRjaCBmb3IgMzJiaXRzLiBBcyBpdCBzdGFuZHMsIDMyYml0cyBwb3J0cworICAgICAg
ICBhcmUgbm90IGNvbXBpbGluZy4KKworICAgICAgICAqIGRmZy9ERkdEb2VzR0NDaGVjay5oOgor
ICAgICAgICAoSlNDOjpERkc6OkRvZXNHQ0NoZWNrOjplbmNvZGUpOgorICAgICAgICAoSlNDOjpE
Rkc6OkRvZXNHQ0NoZWNrOjpiaXRzKToKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6T1NSRXhpdDo6Y29tcGlsZUV4aXQpOgorCiAyMDIwLTA2LTAzICBU
YWRldSBaYWdhbGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgogCiAgICAgICAgIERpc2FibGUgQjMg
aG9pc3RMb29wSW52YXJpYW50VmFsdWVzIGJ5IGRlZmF1bHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDQ2hlY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRG9lc0dDQ2hlY2suaAppbmRleCBiZWM2YjcxZTJiZDU1ODM1YzQxMThjYjcyYzYw
YjU2ZThiODE5MTA5Li4zYTUyNGM5MDI1M2UwM2I1MzViMjJmOGYzZDk1Y2VmOWE0OGI1ZmU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQ0NoZWNrLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0NDaGVjay5oCkBAIC00NywyMiAr
NDcsMjQgQEAgc3RydWN0IERvZXNHQ0NoZWNrIHsKICAgICAgICAgOiBtX3ZhbHVlKGVuY29kZSh0
cnVlLCBTcGVjaWFsOjpVbmluaXRpYWxpemVkKSkKICAgICB7IH0KIAotICAgIHN0YXRpYyB1aW50
NjRfdCBlbmNvZGUoYm9vbCBleHBlY3REb2VzR0MsIHVuc2lnbmVkIG5vZGVJbmRleCwgdW5zaWdu
ZWQgbm9kZU9wKQorICAgIHN0YXRpYyBzaXplX3QgZW5jb2RlKGJvb2wgZXhwZWN0RG9lc0dDLCB1
bnNpZ25lZCBub2RlSW5kZXgsIHVuc2lnbmVkIG5vZGVPcCkKICAgICB7Ci0gICAgICAgIHVpbnQ2
NF90IHJlc3VsdCA9IGJpdHMobm9kZUluZGV4KSA8PCBub2RlSW5kZXhTaGlmdDsKKyAgICAgICAg
QVNTRVJUKChub2RlSW5kZXggJiBub2RlSW5kZXhNYXNrKSA9PSBub2RlSW5kZXgpOworICAgICAg
ICBBU1NFUlQoKG5vZGVPcCAmIG5vZGVPcE1hc2spID09IG5vZGVPcCk7CisgICAgICAgIHNpemVf
dCByZXN1bHQgPSBiaXRzKG5vZGVJbmRleCkgPDwgbm9kZUluZGV4U2hpZnQ7CiAgICAgICAgIHJl
c3VsdCB8PSBiaXRzKG5vZGVPcCkgPDwgbm9kZU9wU2hpZnQ7CiAgICAgICAgIHJlc3VsdCB8PSBi
aXRzKGV4cGVjdERvZXNHQykgPDwgZXhwZWN0RG9lc0dDU2hpZnQ7CiAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CiAgICAgfQogCi0gICAgc3RhdGljIHVpbnQ2NF90IGVuY29kZShib29sIGV4cGVjdERv
ZXNHQywgU3BlY2lhbCBzcGVjaWFsKQorICAgIHN0YXRpYyBzaXplX3QgZW5jb2RlKGJvb2wgZXhw
ZWN0RG9lc0dDLCBTcGVjaWFsIHNwZWNpYWwpCiAgICAgewogICAgICAgICBBU1NFUlQoYml0cyhz
cGVjaWFsKSA8IG51bWJlck9mU3BlY2lhbHMpOwotICAgICAgICB1aW50NjRfdCByZXN1bHQgPSBi
aXRzKHNwZWNpYWwpIDw8IHNwZWNpYWxTaGlmdDsKKyAgICAgICAgc2l6ZV90IHJlc3VsdCA9IGJp
dHMoc3BlY2lhbCkgPDwgc3BlY2lhbFNoaWZ0OwogICAgICAgICByZXN1bHQgfD0gYml0cyhleHBl
Y3REb2VzR0MpIDw8IGV4cGVjdERvZXNHQ1NoaWZ0OwogICAgICAgICByZXR1cm4gcmVzdWx0Owog
ICAgIH0KLQorICAgIAogICAgIHZvaWQgc2V0KGJvb2wgZXhwZWN0RG9lc0dDLCB1bnNpZ25lZCBu
b2RlSW5kZXgsIHVuc2lnbmVkIG5vZGVPcCkKICAgICB7CiAgICAgICAgIG1fdmFsdWUgPSBlbmNv
ZGUoZXhwZWN0RG9lc0dDLCBub2RlSW5kZXgsIG5vZGVPcCk7CkBAIC04NSw2ICs4Nyw3IEBAIHN0
cnVjdCBEb2VzR0NDaGVjayB7CiBwcml2YXRlOgogICAgIHVuc2lnbmVkIHNwZWNpYWxJbmRleCgp
IHsgcmV0dXJuIChtX3ZhbHVlID4+IHNwZWNpYWxTaGlmdCkgJiBzcGVjaWFsTWFzazsgfQogCisj
aWYgVVNFKEpTVkFMVUU2NCkKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgdWludDY0
X3QgYml0cyhUIHZhbHVlKSB7IHJldHVybiBzdGF0aWNfY2FzdDx1aW50NjRfdD4odmFsdWUpOyB9
CiAKICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQ2NF90IG51bWJlck9mU3BlY2lhbHMgPSBzdGF0
aWNfY2FzdDx1aW50NjRfdD4oU3BlY2lhbDo6TnVtYmVyT2ZTcGVjaWFscyk7CkBAIC05OSw2ICsx
MDIsMjQgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG5vZGVPcE1h
c2sgPSAweGZmZmY7CiAKICAgICB1aW50NjRfdCBtX3ZhbHVlIHsgMCB9OworI2Vsc2UKKyAgICAv
KiAzMiBiaXRzIFNlY3Rpb24qLworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyB1aW50
MzJfdCBiaXRzKFQgdmFsdWUpIHsgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQzMl90Pih2YWx1ZSk7
IH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbnVtYmVyT2ZTcGVjaWFscyA9IHN0
YXRpY19jYXN0PHVpbnQzMl90PihTcGVjaWFsOjpOdW1iZXJPZlNwZWNpYWxzKTsKKworICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgZXhwZWN0RG9lc0dDU2hpZnQgPSAwOworICAgIHN0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgc3BlY2lhbFNoaWZ0ID0gMTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIG5vZGVPcFNoaWZ0ID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIG5vZGVJbmRleFNoaWZ0ID0gMTY7CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IGV4cGVjdERvZXNHQ01hc2sgPSAweDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBz
cGVjaWFsTWFzayA9IDB4N2ZmZjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG5vZGVP
cE1hc2sgPSAweDdmZmY7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBub2RlSW5kZXhN
YXNrID0gMHhmZmZmOworCisgICAgdWludDMyX3QgbV92YWx1ZSB7IDAgfTsKKyNlbmRpZgogfTsK
IAogfSAvLyBuYW1lc3BhY2UgREZHCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09TUkV4aXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0
LmNwcAppbmRleCAxODUwNWI0MzkxOGNjZDljMjQzYmFlMTUwOGM3NDFhZTljY2MzMTk4Li40NWM0
NDcwZWNiZWZiNjg2NmEzODYwNzc0ZWU2Y2YyNGIxYTg1ODI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAKQEAgLTU1OSw3ICs1NTksMTEgQEAgdm9pZCBPU1JFeGl0
Ojpjb21waWxlRXhpdChDQ2FsbEhlbHBlcnMmIGppdCwgVk0mIHZtLCBjb25zdCBPU1JFeGl0JiBl
eGl0LCBjb25zdAogICAgICAgICAvLyB0byBzZXQgaXQgaGVyZSBiZWNhdXNlIGNvbXBpbGVPU1JF
eGl0KCkgaXMgb25seSBjYWxsZWQgb24gdGhlIGZpcnN0IHRpbWUKICAgICAgICAgLy8gd2UgZXhp
dCBmcm9tIHRoaXMgc2l0ZSwgYnV0IGFsbCBzdWJzZXF1ZW50IGV4aXRzIHdpbGwgdGFrZSB0aGlz
IGNvbXBpbGVkCiAgICAgICAgIC8vIHJhbXAgd2l0aG91dCBjYWxsaW5nIGNvbXBpbGVPU1JFeGl0
KCkgZmlyc3QuCisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgaml0LnN0b3JlNjQoQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tNjQoRG9lc0dDQ2hlY2s6OmVuY29kZSh0cnVlLCBEb2VzR0NDaGVj
azo6U3BlY2lhbDo6REZHT1NSRXhpdCkpLCB2bS5oZWFwLmFkZHJlc3NPZkRvZXNHQygpKTsKKyNl
bHNlCisgICAgICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKERvZXNH
Q0NoZWNrOjplbmNvZGUodHJ1ZSwgRG9lc0dDQ2hlY2s6OlNwZWNpYWw6OkRGR09TUkV4aXQpKSwg
dm0uaGVhcC5hZGRyZXNzT2ZEb2VzR0MoKSk7CisjZW5kaWYKICAgICB9CiAKICAgICAvLyBOZWVk
IHRvIGVuc3VyZSB0aGF0IHRoZSBzdGFjayBwb2ludGVyIGFjY291bnRzIGZvciB0aGUgd29yc3Qt
Y2FzZSBzdGFjayB1c2FnZSBhdCBleGl0LiBUaGlzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCA2OTgyOWE3ODcxMmU0
YWNmNTI4NDZiYWU0NWIzMzQxMjZhMGYxMGFmLi4zNzA2YWM1YmIzNmRjZDQ0ZmEyMWZmY2JhYzE2
ODc2NzI1ZWQ3YzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJDYWxs
RnJhbWVTaHVmZmxlci5oIgogI2luY2x1ZGUgIkRGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiREZHQ2FsbEFycmF5QWxsb2NhdG9yU2xvd1BhdGhHZW5lcmF0b3IuaCIK
KyNpbmNsdWRlICJERkdEb2VzR0MuaCIKICNpbmNsdWRlICJERkdPcGVyYXRpb25zLmgiCiAjaW5j
bHVkZSAiREZHU2xvd1BhdGhHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJEaXJlY3RBcmd1bWVudHMu
aCIKQEAgLTE4MDYsNiArMTgwNywxMSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5v
ZGUqIG5vZGUpCiB7CiAgICAgTm9kZVR5cGUgb3AgPSBub2RlLT5vcCgpOwogCisgICAgaWYgKHZh
bGlkYXRlREZHRG9lc0dDKSB7CisgICAgICAgIGJvb2wgZXhwZWN0RG9lc0dDID0gZG9lc0dDKG1f
aml0LmdyYXBoKCksIG5vZGUpOworICAgICAgICBtX2ppdC5zdG9yZTMyKFRydXN0ZWRJbW0zMihE
b2VzR0NDaGVjazo6ZW5jb2RlKGV4cGVjdERvZXNHQywgbm9kZS0+aW5kZXgoKSwgbm9kZS0+b3Ao
KSkpLCB2bSgpLmhlYXAuYWRkcmVzc09mRG9lc0dDKCkpOworICAgIH0KKwogI2lmIEVOQUJMRShE
RkdfUkVHSVNURVJfQUxMT0NBVElPTl9WQUxJREFUSU9OKQogICAgIG1faml0LmNsZWFyUmVnaXN0
ZXJBbGxvY2F0aW9uT2Zmc2V0cygpOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401022</attachid>
            <date>2020-06-04 07:39:44 -0700</date>
            <delta_ts>2020-06-04 09:56:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212734-20200604163940.patch</filename>
            <type>text/plain</type>
            <size>5794</size>
            <attacher name="Paulo Matos">pmatos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
NjJjNTkzYjMzMTBhNWE1MTc5MDU2MTQwNDM0OGJlNzRiOGNlNWRhLi41ZTk3MzExZTViMDhjYzcw
NzUwZjIxYjMxMWRmY2YyMDk1M2M2ODM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAyMC0wNi0wNCAgUGF1bG8gTWF0b3MgIDxwbWF0b3NAaWdhbGlhLmNvbT4K
KworICAgICAgICBQb3J0IERGR0RvZXNHQ0NoZWNrIHRvIDMyIGJpdHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjczNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSByMjYyNTEzIGltcGxlbWVu
dGVkIERvZXNHQyB2ZXJpZmljYXRpb24gZW5oYW5jZW1lbnQgYnV0IGl0IG9ubHkgd29ya3MgZm9y
IDY0Yml0LgorICAgICAgICBUaGlzIGNoYW5nZSBpbXBsZW1lbnRzIGEgcG9ydCBvZiB0aGUgaW5p
dGlhbCBwYXRjaCBmb3IgMzJiaXRzLiBBcyBpdCBzdGFuZHMsIDMyYml0cyBwb3J0cworICAgICAg
ICBhcmUgbm90IGNvbXBpbGluZy4KKworICAgICAgICAqIGRmZy9ERkdEb2VzR0NDaGVjay5oOgor
ICAgICAgICAoSlNDOjpERkc6OkRvZXNHQ0NoZWNrOjplbmNvZGUpOgorICAgICAgICAoSlNDOjpE
Rkc6OkRvZXNHQ0NoZWNrOjpiaXRzKToKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6T1NSRXhpdDo6Y29tcGlsZUV4aXQpOgorCiAyMDIwLTA2LTA0ICBQ
YXVsbyBNYXRvcyAgPHBtYXRvc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEZpeCAzMmJpdCBidWls
ZCBicm9rZW4gYXQgcjI2MjUxMwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdEb2VzR0NDaGVjay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0ND
aGVjay5oCmluZGV4IGJlYzZiNzFlMmJkNTU4MzVjNDExOGNiNzJjNjBiNTZlOGI4MTkxMDkuLmVm
MzE0N2EzMjg3MGU4NDk5YWM2MTQxZDg0ZGY3NWYzMTM5OWIzZDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDQ2hlY2suaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0RvZXNHQ0NoZWNrLmgKQEAgLTQ3LDIyICs0NywyNCBAQCBzdHJ1Y3Qg
RG9lc0dDQ2hlY2sgewogICAgICAgICA6IG1fdmFsdWUoZW5jb2RlKHRydWUsIFNwZWNpYWw6OlVu
aW5pdGlhbGl6ZWQpKQogICAgIHsgfQogCi0gICAgc3RhdGljIHVpbnQ2NF90IGVuY29kZShib29s
IGV4cGVjdERvZXNHQywgdW5zaWduZWQgbm9kZUluZGV4LCB1bnNpZ25lZCBub2RlT3ApCisgICAg
c3RhdGljIHNpemVfdCBlbmNvZGUoYm9vbCBleHBlY3REb2VzR0MsIHVuc2lnbmVkIG5vZGVJbmRl
eCwgdW5zaWduZWQgbm9kZU9wKQogICAgIHsKLSAgICAgICAgdWludDY0X3QgcmVzdWx0ID0gYml0
cyhub2RlSW5kZXgpIDw8IG5vZGVJbmRleFNoaWZ0OworICAgICAgICBBU1NFUlQoKG5vZGVJbmRl
eCAmIG5vZGVJbmRleE1hc2spID09IG5vZGVJbmRleCk7CisgICAgICAgIEFTU0VSVCgobm9kZU9w
ICYgbm9kZU9wTWFzaykgPT0gbm9kZU9wKTsKKyAgICAgICAgc2l6ZV90IHJlc3VsdCA9IGJpdHMo
bm9kZUluZGV4KSA8PCBub2RlSW5kZXhTaGlmdDsKICAgICAgICAgcmVzdWx0IHw9IGJpdHMobm9k
ZU9wKSA8PCBub2RlT3BTaGlmdDsKICAgICAgICAgcmVzdWx0IHw9IGJpdHMoZXhwZWN0RG9lc0dD
KSA8PCBleHBlY3REb2VzR0NTaGlmdDsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAK
LSAgICBzdGF0aWMgdWludDY0X3QgZW5jb2RlKGJvb2wgZXhwZWN0RG9lc0dDLCBTcGVjaWFsIHNw
ZWNpYWwpCisgICAgc3RhdGljIHNpemVfdCBlbmNvZGUoYm9vbCBleHBlY3REb2VzR0MsIFNwZWNp
YWwgc3BlY2lhbCkKICAgICB7CiAgICAgICAgIEFTU0VSVChiaXRzKHNwZWNpYWwpIDwgbnVtYmVy
T2ZTcGVjaWFscyk7Ci0gICAgICAgIHVpbnQ2NF90IHJlc3VsdCA9IGJpdHMoc3BlY2lhbCkgPDwg
c3BlY2lhbFNoaWZ0OworICAgICAgICBzaXplX3QgcmVzdWx0ID0gYml0cyhzcGVjaWFsKSA8PCBz
cGVjaWFsU2hpZnQ7CiAgICAgICAgIHJlc3VsdCB8PSBiaXRzKGV4cGVjdERvZXNHQykgPDwgZXhw
ZWN0RG9lc0dDU2hpZnQ7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQotCisgICAgCiAg
ICAgdm9pZCBzZXQoYm9vbCBleHBlY3REb2VzR0MsIHVuc2lnbmVkIG5vZGVJbmRleCwgdW5zaWdu
ZWQgbm9kZU9wKQogICAgIHsKICAgICAgICAgbV92YWx1ZSA9IGVuY29kZShleHBlY3REb2VzR0Ms
IG5vZGVJbmRleCwgbm9kZU9wKTsKQEAgLTg1LDYgKzg3LDcgQEAgc3RydWN0IERvZXNHQ0NoZWNr
IHsKIHByaXZhdGU6CiAgICAgdW5zaWduZWQgc3BlY2lhbEluZGV4KCkgeyByZXR1cm4gKG1fdmFs
dWUgPj4gc3BlY2lhbFNoaWZ0KSAmIHNwZWNpYWxNYXNrOyB9CiAKKyNpZiBVU0UoSlNWQUxVRTY0
KQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyB1aW50NjRfdCBiaXRzKFQgdmFsdWUp
IHsgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ2NF90Pih2YWx1ZSk7IH0KIAogICAgIHN0YXRpYyBj
b25zdGV4cHIgdWludDY0X3QgbnVtYmVyT2ZTcGVjaWFscyA9IHN0YXRpY19jYXN0PHVpbnQ2NF90
PihTcGVjaWFsOjpOdW1iZXJPZlNwZWNpYWxzKTsKQEAgLTk3LDggKzEwMCwyNyBAQCBwcml2YXRl
OgogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgZXhwZWN0RG9lc0dDTWFzayA9IDB4MTsK
ICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHNwZWNpYWxNYXNrID0gMHg3ZmZmOwogICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbm9kZU9wTWFzayA9IDB4ZmZmZjsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIG5vZGVJbmRleE1hc2sgPSAweGZmZmZmZmZmOwogCiAgICAg
dWludDY0X3QgbV92YWx1ZSB7IDAgfTsKKyNlbHNlCisgICAgLyogMzIgYml0cyBTZWN0aW9uKi8K
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgdWludDMyX3QgYml0cyhUIHZhbHVlKSB7
IHJldHVybiBzdGF0aWNfY2FzdDx1aW50MzJfdD4odmFsdWUpOyB9CisKKyAgICBzdGF0aWMgY29u
c3RleHByIHVpbnQzMl90IG51bWJlck9mU3BlY2lhbHMgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4o
U3BlY2lhbDo6TnVtYmVyT2ZTcGVjaWFscyk7CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIGV4cGVjdERvZXNHQ1NoaWZ0ID0gMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IHNwZWNpYWxTaGlmdCA9IDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBub2RlT3BT
aGlmdCA9IDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBub2RlSW5kZXhTaGlmdCA9
IDE2OworCisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBleHBlY3REb2VzR0NNYXNrID0g
MHgxOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgc3BlY2lhbE1hc2sgPSAweDdmZmY7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBub2RlT3BNYXNrID0gMHg3ZmZmOworICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbm9kZUluZGV4TWFzayA9IDB4ZmZmZjsKKworICAg
IHVpbnQzMl90IG1fdmFsdWUgeyAwIH07CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIERG
RwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAKaW5kZXggOWI1NGQ1NDM2
NmRmNTQwYTk3OTIzMzllNjQyYTczNjVmMGZhYjM4YS4uOWZiYWRmNmQxYzJlZjEwOTY5M2MzNTJj
MDE4OGExMjUzMzY1NTVhMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPU1JFeGl0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQu
Y3BwCkBAIC01NjAsNyArNTYwLDExIEBAIHZvaWQgT1NSRXhpdDo6Y29tcGlsZUV4aXQoQ0NhbGxI
ZWxwZXJzJiBqaXQsIFZNJiB2bSwgY29uc3QgT1NSRXhpdCYgZXhpdCwgY29uc3QKICAgICAgICAg
Ly8gdG8gc2V0IGl0IGhlcmUgYmVjYXVzZSBjb21waWxlT1NSRXhpdCgpIGlzIG9ubHkgY2FsbGVk
IG9uIHRoZSBmaXJzdCB0aW1lCiAgICAgICAgIC8vIHdlIGV4aXQgZnJvbSB0aGlzIHNpdGUsIGJ1
dCBhbGwgc3Vic2VxdWVudCBleGl0cyB3aWxsIHRha2UgdGhpcyBjb21waWxlZAogICAgICAgICAv
LyByYW1wIHdpdGhvdXQgY2FsbGluZyBjb21waWxlT1NSRXhpdCgpIGZpcnN0LgorI2lmIFVTRShK
U1ZBTFVFNjQpCiAgICAgICAgIGppdC5zdG9yZTY0KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTY0
KERvZXNHQ0NoZWNrOjplbmNvZGUodHJ1ZSwgRG9lc0dDQ2hlY2s6OlNwZWNpYWw6OkRGR09TUkV4
aXQpKSwgdm0uaGVhcC5hZGRyZXNzT2ZEb2VzR0MoKSk7CisjZWxzZQorICAgICAgICBqaXQuc3Rv
cmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihEb2VzR0NDaGVjazo6ZW5jb2RlKHRydWUs
IERvZXNHQ0NoZWNrOjpTcGVjaWFsOjpERkdPU1JFeGl0KSksIHZtLmhlYXAuYWRkcmVzc09mRG9l
c0dDKCkpOworI2VuZGlmCiAgICAgfQogI2VuZGlmCiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCA2OTgyOWE3
ODcxMmU0YWNmNTI4NDZiYWU0NWIzMzQxMjZhMGYxMGFmLi4zNzA2YWM1YmIzNmRjZDQ0ZmEyMWZm
Y2JhYzE2ODc2NzI1ZWQ3YzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRl
ICJDYWxsRnJhbWVTaHVmZmxlci5oIgogI2luY2x1ZGUgIkRGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiREZHQ2FsbEFycmF5QWxsb2NhdG9yU2xvd1BhdGhHZW5lcmF0
b3IuaCIKKyNpbmNsdWRlICJERkdEb2VzR0MuaCIKICNpbmNsdWRlICJERkdPcGVyYXRpb25zLmgi
CiAjaW5jbHVkZSAiREZHU2xvd1BhdGhHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJEaXJlY3RBcmd1
bWVudHMuaCIKQEAgLTE4MDYsNiArMTgwNywxMSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlKE5vZGUqIG5vZGUpCiB7CiAgICAgTm9kZVR5cGUgb3AgPSBub2RlLT5vcCgpOwogCisgICAg
aWYgKHZhbGlkYXRlREZHRG9lc0dDKSB7CisgICAgICAgIGJvb2wgZXhwZWN0RG9lc0dDID0gZG9l
c0dDKG1faml0LmdyYXBoKCksIG5vZGUpOworICAgICAgICBtX2ppdC5zdG9yZTMyKFRydXN0ZWRJ
bW0zMihEb2VzR0NDaGVjazo6ZW5jb2RlKGV4cGVjdERvZXNHQywgbm9kZS0+aW5kZXgoKSwgbm9k
ZS0+b3AoKSkpLCB2bSgpLmhlYXAuYWRkcmVzc09mRG9lc0dDKCkpOworICAgIH0KKwogI2lmIEVO
QUJMRShERkdfUkVHSVNURVJfQUxMT0NBVElPTl9WQUxJREFUSU9OKQogICAgIG1faml0LmNsZWFy
UmVnaXN0ZXJBbGxvY2F0aW9uT2Zmc2V0cygpOwogI2VuZGlmCg==
</data>
<flag name="review"
          id="416407"
          type_id="1"
          status="-"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401030</attachid>
            <date>2020-06-04 09:56:26 -0700</date>
            <delta_ts>2020-06-04 10:29:05 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-212734.patch</filename>
            <type>text/plain</type>
            <size>12680</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjYyNTQyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBA
CisyMDIwLTA2LTA0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZWR1Y2UgREZHRG9lc0dDQ2hlY2sgdG8gb25seSBzdG9yaW5nIGEgdWludDMyX3QuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTI3MzQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGNoYW5n
ZXMgdGhlIGVuY29kaW5nIG9mIERvZXNHQ0NoZWNrIHNvIHRoYXQgaXQgd2lsbCBmaXQgYmV0dGVy
IGluIGEKKyAgICAgICAgdWludDMyX3QuICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGJlbmVmaXRz
OgorICAgICAgICAxLiBzcGVlZCBpbXByb3ZlbWVudCBmb3IgZGVidWcgYnVpbGRzIGJlY2F1c2Ug
aXQgbm93IHRha2VzIGxlc3MgaW5zdHJ1Y3Rpb25zCisgICAgICAgICAgIChlc3BlY2lhbGx5IGlu
IEpJVHRlZCBjb2RlKSB0byBzdG9yZSB0byBEb2VzR0NDaGVjazo6bV92YWx1ZS4KKyAgICAgICAg
Mi4gZW5hYmxlcyB0aGlzIGNoZWNrIGZvciAzMi1iaXQgcGxhdGZvcm1zIGFzIHdlbGwuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBhbHNvIG1ha2VzIEVOQUJMRV9ERkdfRE9FU19HQ19WQUxJREFUSU9O
IGRlcGVuZGVudCBvbiBFTkFCTEUoREZHX0pJVCkuCisgICAgICAgIERvZXNHQyBpcyBvbmx5IHJl
bGV2YW50IGZvciB0aGUgREZHIGFuZCBGVEwgSklUcy4KKworICAgICAgICAqIGRmZy9ERkdEb2Vz
R0NDaGVjay5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hlY2s6OnZlcmlmeUNhbkdD
KToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDQ2hlY2suaDoKKyAgICAgICAgKEpTQzo6REZHOjpE
b2VzR0NDaGVjazo6ZW5jb2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpEb2VzR0NDaGVjazo6ZXhw
ZWN0RG9lc0dDIGNvbnN0KToKKyAgICAgICAgKEpTQzo6REZHOjpEb2VzR0NDaGVjazo6aXNTcGVj
aWFsIGNvbnN0KToKKyAgICAgICAgKEpTQzo6REZHOjpEb2VzR0NDaGVjazo6c3BlY2lhbCk6Cisg
ICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hlY2s6Om5vZGVPcCk6CisgICAgICAgIChKU0M6OkRG
Rzo6RG9lc0dDQ2hlY2s6Om5vZGVJbmRleCk6CisgICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hl
Y2s6OmV4cGVjdERvZXNHQyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hl
Y2s6OmlzU3BlY2lhbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hlY2s6
OnNwZWNpYWxJbmRleCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hlY2s6
OmJpdHMpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAq
IGRmZy9ERkdPU1JFeGl0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Ojpjb21waWxl
RXhpdCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAo
SlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlTm9kZSk6CisgICAgICAgICogZnRs
L0ZUTE9TUkV4aXRDb21waWxlci5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y29tcGlsZVN0dWIp
OgorICAgICAgICAqIGhlYXAvSGVhcC5oOgorCiAyMDIwLTA2LTA0ICBUaW0gSG9ydG9uICA8dGlt
b3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFdvcmsgYXJvdW5kIGJyb2tlbiBzeXN0
ZW0gdmVyc2lvbiBtYWNybwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2Vz
R0NDaGVjay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdE
b2VzR0NDaGVjay5jcHAJKHJldmlzaW9uIDI2MjUzNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRG9lc0dDQ2hlY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBA
CiAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKKyNpbmNs
dWRlICJERkdOb2RlVHlwZS5oIgogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJWTUluc3Bl
Y3Rvci5oIgogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CkBAIC00MSw2ICs0MiwxMCBAQCBleHRl
cm4gY29uc3QgY2hhciogZGZnT3BOYW1lc1tdOwogCiB2b2lkIERvZXNHQ0NoZWNrOjp2ZXJpZnlD
YW5HQyhWTSYgdm0pCiB7CisgICAgLy8gV2UgZG8gdGhpcyBjaGNrIGhlcmUganVzdCBzbyB3ZSBk
b24ndCBoYXZlIHRvICNpbmNsdWRlIERGR05vZGVUeXBlLmgKKyAgICAvLyBpbiB0aGUgaGVhZGVy
IGZpbGUuCisgICAgc3RhdGljX2Fzc2VydChudW1iZXJPZk5vZGVUeXBlcyA8PSAoMSA8PCBub2Rl
T3BCaXRzKSk7CisKICAgICBpZiAoIWV4cGVjdERvZXNHQygpKSB7CiAgICAgICAgIGRhdGFMb2co
IkVycm9yOiBEb2VzR0MgZmFpbGVkIik7CiAgICAgICAgIGlmIChpc1NwZWNpYWwoKSkgewpAQCAt
NTMsNyArNTgsNiBAQCB2b2lkIERvZXNHQ0NoZWNrOjp2ZXJpZnlDYW5HQyhWTSYgdm0pCiAgICAg
ICAgICAgICBjYXNlIFNwZWNpYWw6OkZUTE9TUkV4aXQ6CiAgICAgICAgICAgICAgICAgZGF0YUxv
ZygiIEAgRlRMIG9zciBleGl0Iik7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICBjYXNlIFNwZWNpYWw6OlJlc2VydmVkVW51c2VkOgogICAgICAgICAgICAgY2FzZSBTcGVjaWFs
OjpOdW1iZXJPZlNwZWNpYWxzOgogICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgICAgICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0RvZXNHQ0NoZWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdEb2VzR0NDaGVjay5oCShyZXZpc2lvbiAyNjI1MzQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0RvZXNHQ0NoZWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDYg
QEAgbmFtZXNwYWNlIERGRyB7CiAKIHN0cnVjdCBEb2VzR0NDaGVjayB7CiAgICAgZW51bSBjbGFz
cyBTcGVjaWFsIHsKLSAgICAgICAgUmVzZXJ2ZWRVbnVzZWQsIC8vIHNvIHRoYXQgc3BlY2lhbHMg
c3RhcnQgd2l0aCAxLiBpc1NwZWNpYWwoKSByZWxpZXMgb24gdGhpcy4KICAgICAgICAgVW5pbml0
aWFsaXplZCwKICAgICAgICAgREZHT1NSRXhpdCwKICAgICAgICAgRlRMT1NSRXhpdCwKQEAgLTQ3
LDIwICs0NiwxNiBAQCBzdHJ1Y3QgRG9lc0dDQ2hlY2sgewogICAgICAgICA6IG1fdmFsdWUoZW5j
b2RlKHRydWUsIFNwZWNpYWw6OlVuaW5pdGlhbGl6ZWQpKQogICAgIHsgfQogCi0gICAgc3RhdGlj
IHVpbnQ2NF90IGVuY29kZShib29sIGV4cGVjdERvZXNHQywgdW5zaWduZWQgbm9kZUluZGV4LCB1
bnNpZ25lZCBub2RlT3ApCisgICAgc3RhdGljIHVpbnQzMl90IGVuY29kZShib29sIGV4cGVjdERv
ZXNHQywgdW5zaWduZWQgbm9kZUluZGV4LCB1bnNpZ25lZCBub2RlT3ApCiAgICAgewotICAgICAg
ICB1aW50NjRfdCByZXN1bHQgPSBiaXRzKG5vZGVJbmRleCkgPDwgbm9kZUluZGV4U2hpZnQ7Ci0g
ICAgICAgIHJlc3VsdCB8PSBiaXRzKG5vZGVPcCkgPDwgbm9kZU9wU2hpZnQ7Ci0gICAgICAgIHJl
c3VsdCB8PSBiaXRzKGV4cGVjdERvZXNHQykgPDwgZXhwZWN0RG9lc0dDU2hpZnQ7Ci0gICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgIC8vIFdlIGtub3cgbm9kZU9wIGFsd2F5cyBmaXRzIGJl
Y2F1c2Ugb2YgdGhlIHN0YXRpY19hc3NlcnQgaW4gREZHRG9lc0dDQ2hlY2suY3BwLgorICAgICAg
ICBBU1NFUlQoKG5vZGVJbmRleCA8PCBub2RlSW5kZXhTaGlmdCkgPj4gbm9kZUluZGV4U2hpZnQg
PT0gbm9kZUluZGV4KTsKKyAgICAgICAgcmV0dXJuIG5vZGVJbmRleCA8PCBub2RlSW5kZXhTaGlm
dCB8IG5vZGVPcCA8PCBub2RlT3BTaGlmdCB8IGV4cGVjdERvZXNHQzsKICAgICB9CiAKLSAgICBz
dGF0aWMgdWludDY0X3QgZW5jb2RlKGJvb2wgZXhwZWN0RG9lc0dDLCBTcGVjaWFsIHNwZWNpYWwp
CisgICAgc3RhdGljIHVpbnQzMl90IGVuY29kZShib29sIGV4cGVjdERvZXNHQywgU3BlY2lhbCBz
cGVjaWFsKQogICAgIHsKLSAgICAgICAgQVNTRVJUKGJpdHMoc3BlY2lhbCkgPCBudW1iZXJPZlNw
ZWNpYWxzKTsKLSAgICAgICAgdWludDY0X3QgcmVzdWx0ID0gYml0cyhzcGVjaWFsKSA8PCBzcGVj
aWFsU2hpZnQ7Ci0gICAgICAgIHJlc3VsdCB8PSBiaXRzKGV4cGVjdERvZXNHQykgPDwgZXhwZWN0
RG9lc0dDU2hpZnQ7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDx1aW50MzJfdD4oc3BlY2lhbCkgPDwgc3BlY2lhbFNoaWZ0IHwgaXNTcGVjaWFsQml0
IHwgZXhwZWN0RG9lc0dDOwogICAgIH0KIAogICAgIHZvaWQgc2V0KGJvb2wgZXhwZWN0RG9lc0dD
LCB1bnNpZ25lZCBub2RlSW5kZXgsIHVuc2lnbmVkIG5vZGVPcCkKQEAgLTczLDMyICs2OCwzNyBA
QCBzdHJ1Y3QgRG9lc0dDQ2hlY2sgewogICAgICAgICBtX3ZhbHVlID0gZW5jb2RlKGV4cGVjdERv
ZXNHQywgc3BlY2lhbCk7CiAgICAgfQogCi0gICAgYm9vbCBleHBlY3REb2VzR0MoKSB7IHJldHVy
biBtX3ZhbHVlICYgZXhwZWN0RG9lc0dDTWFzazsgfQotICAgIFNwZWNpYWwgc3BlY2lhbCgpIHsg
cmV0dXJuIHN0YXRpY19jYXN0PFNwZWNpYWw+KHNwZWNpYWxJbmRleCgpKTsgfQotICAgIHVuc2ln
bmVkIG5vZGVJbmRleCgpIHsgcmV0dXJuIG1fdmFsdWUgPj4gbm9kZUluZGV4U2hpZnQ7IH0KLSAg
ICB1bnNpZ25lZCBub2RlT3AoKSB7IHJldHVybiAobV92YWx1ZSA+PiBub2RlT3BTaGlmdCkgJiBu
b2RlT3BNYXNrOyB9CisgICAgYm9vbCBleHBlY3REb2VzR0MoKSBjb25zdCB7IHJldHVybiBtX3Zh
bHVlICYgZXhwZWN0RG9lc0dDQml0OyB9CisgICAgYm9vbCBpc1NwZWNpYWwoKSBjb25zdCB7IHJl
dHVybiBtX3ZhbHVlICYgaXNTcGVjaWFsQml0OyB9CisKKyAgICBTcGVjaWFsIHNwZWNpYWwoKSB7
IHJldHVybiBzdGF0aWNfY2FzdDxTcGVjaWFsPihtX3ZhbHVlID4+IHNwZWNpYWxTaGlmdCk7IH0K
IAotICAgIGJvb2wgaXNTcGVjaWFsKCkgeyByZXR1cm4gc3BlY2lhbEluZGV4KCk7IH0KKyAgICB1
bnNpZ25lZCBub2RlT3AoKSB7IHJldHVybiAobV92YWx1ZSA+PiBub2RlT3BTaGlmdCkgJiBub2Rl
T3BNYXNrOyB9CisgICAgdW5zaWduZWQgbm9kZUluZGV4KCkgeyByZXR1cm4gbV92YWx1ZSA+PiBu
b2RlSW5kZXhTaGlmdDsgfQogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCB2ZXJpZnlDYW5H
QyhWTSYpOwogCiBwcml2YXRlOgotICAgIHVuc2lnbmVkIHNwZWNpYWxJbmRleCgpIHsgcmV0dXJu
IChtX3ZhbHVlID4+IHNwZWNpYWxTaGlmdCkgJiBzcGVjaWFsTWFzazsgfQotCi0gICAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RhdGljIHVpbnQ2NF90IGJpdHMoVCB2YWx1ZSkgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8dWludDY0X3Q+KHZhbHVlKTsgfQotCi0gICAgc3RhdGljIGNvbnN0ZXhwciB1aW50
NjRfdCBudW1iZXJPZlNwZWNpYWxzID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KFNwZWNpYWw6Ok51
bWJlck9mU3BlY2lhbHMpOwotCi0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBleHBlY3RE
b2VzR0NTaGlmdCA9IDA7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBzcGVjaWFsU2hp
ZnQgPSAxOwotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbm9kZU9wU2hpZnQgPSAxNjsK
LSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG5vZGVJbmRleFNoaWZ0ID0gMzI7Ci0KLSAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGV4cGVjdERvZXNHQ01hc2sgPSAweDE7Ci0gICAg
c3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBzcGVjaWFsTWFzayA9IDB4N2ZmZjsKLSAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIG5vZGVPcE1hc2sgPSAweGZmZmY7CisgICAgLy8gVGhlIHZh
bHVlIGNhbm5vdCBiZSBib3RoIGEgU3BlY2lhbCBhbmQgY29udGFpbiBub2RlIGluZm9ybWF0aW9u
IGF0IHRoZQorICAgIC8vIHRpbWUuIEhlbmNlLCB0aGUgMiBjYW4gaGF2ZSBzZXBhcmF0ZSBlbmNv
ZGluZ3MuIFRoZSBpc1NwZWNpYWwgYml0CisgICAgLy8gZGV0ZXJtaW5lcyB3aGljaCBlbmNvZGlu
ZyBpcyBpbiB1c2UuCisKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGV4cGVjdERvZXNH
Q0JpdCA9IDEgPDwgMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGlzU3BlY2lhbEJp
dCA9IDEgPDwgMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGNvbW1vbkJpdHMgPSAy
OworICAgIHN0YXRpY19hc3NlcnQoKGV4cGVjdERvZXNHQ0JpdCB8IGlzU3BlY2lhbEJpdCkgPT0g
KDEgPDwgY29tbW9uQml0cykgLSAxKTsKKworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
c3BlY2lhbFNoaWZ0ID0gY29tbW9uQml0czsKKworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgbm9kZU9wQml0cyA9IDk7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBub2RlT3BN
YXNrID0gKDEgPDwgbm9kZU9wQml0cykgLSAxOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgbm9kZU9wU2hpZnQgPSBjb21tb25CaXRzOworCisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBub2RlSW5kZXhCaXRzID0gMjE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBu
b2RlSW5kZXhTaGlmdCA9IG5vZGVPcFNoaWZ0ICsgbm9kZU9wQml0czsKKyAgICBzdGF0aWNfYXNz
ZXJ0KG5vZGVJbmRleFNoaWZ0ICsgbm9kZUluZGV4Qml0cyA9PSAzMik7CiAKLSAgICB1aW50NjRf
dCBtX3ZhbHVlIHsgMCB9OworICAgIHVpbnQzMl90IG1fdmFsdWUgeyAwIH07CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBERkcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5
cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBl
LmgJKHJldmlzaW9uIDI2MjUzNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9k
ZVR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTItMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTItMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU1Miw2ICs1NTIsMTAgQEAgZW51bSBOb2RlVHlw
ZSB7CiAgICAgTGFzdE5vZGVUeXBlCiB9OwogCisjZGVmaW5lIERGR19PUF9DT1VOVChvcGNvZGUs
IGZsYWdzKSArIDEKK2NvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZk5vZGVUeXBlcyA9IEZPUl9F
QUNIX0RGR19PUChERkdfT1BfQ09VTlQpOworI3VuZGVmIERGR19PUF9DT1VOVAorCiAvLyBTcGVj
aWZpZXMgdGhlIGRlZmF1bHQgZmxhZ3MgZm9yIGVhY2ggbm9kZS4KIGlubGluZSBOb2RlRmxhZ3Mg
ZGVmYXVsdEZsYWdzKE5vZGVUeXBlIG9wKQogewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPU1JFeGl0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09TUkV4aXQuY3BwCShyZXZpc2lvbiAyNjI1MzQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09TUkV4aXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NjAsNyArNTYwLDcg
QEAgdm9pZCBPU1JFeGl0Ojpjb21waWxlRXhpdChDQ2FsbEhlbHBlcnMmIAogICAgICAgICAvLyB0
byBzZXQgaXQgaGVyZSBiZWNhdXNlIGNvbXBpbGVPU1JFeGl0KCkgaXMgb25seSBjYWxsZWQgb24g
dGhlIGZpcnN0IHRpbWUKICAgICAgICAgLy8gd2UgZXhpdCBmcm9tIHRoaXMgc2l0ZSwgYnV0IGFs
bCBzdWJzZXF1ZW50IGV4aXRzIHdpbGwgdGFrZSB0aGlzIGNvbXBpbGVkCiAgICAgICAgIC8vIHJh
bXAgd2l0aG91dCBjYWxsaW5nIGNvbXBpbGVPU1JFeGl0KCkgZmlyc3QuCi0gICAgICAgIGppdC5z
dG9yZTY0KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTY0KERvZXNHQ0NoZWNrOjplbmNvZGUodHJ1
ZSwgRG9lc0dDQ2hlY2s6OlNwZWNpYWw6OkRGR09TUkV4aXQpKSwgdm0uaGVhcC5hZGRyZXNzT2ZE
b2VzR0MoKSk7CisgICAgICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMy
KERvZXNHQ0NoZWNrOjplbmNvZGUodHJ1ZSwgRG9lc0dDQ2hlY2s6OlNwZWNpYWw6OkRGR09TUkV4
aXQpKSwgdm0uaGVhcC5hZGRyZXNzT2ZEb2VzR0MoKSk7CiAgICAgfQogI2VuZGlmCiAgICAgCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQzMl82NC5jcHAJKHJldmlzaW9uIDI2MjUzNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4MDYsNiAr
MTgwNiwxMSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiB7CiAg
ICAgTm9kZVR5cGUgb3AgPSBub2RlLT5vcCgpOwogCisgICAgaWYgKHZhbGlkYXRlREZHRG9lc0dD
KSB7CisgICAgICAgIGJvb2wgZXhwZWN0RG9lc0dDID0gZG9lc0dDKG1faml0LmdyYXBoKCksIG5v
ZGUpOworICAgICAgICBtX2ppdC5zdG9yZTMyKFRydXN0ZWRJbW0zMihEb2VzR0NDaGVjazo6ZW5j
b2RlKGV4cGVjdERvZXNHQywgbm9kZS0+aW5kZXgoKSwgbm9kZS0+b3AoKSkpLCB2bSgpLmhlYXAu
YWRkcmVzc09mRG9lc0dDKCkpOworICAgIH0KKwogI2lmIEVOQUJMRShERkdfUkVHSVNURVJfQUxM
T0NBVElPTl9WQUxJREFUSU9OKQogICAgIG1faml0LmNsZWFyUmVnaXN0ZXJBbGxvY2F0aW9uT2Zm
c2V0cygpOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklUNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJldmlzaW9uIDI2MjUzNSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIxMzgsNyArMjEzOCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9k
ZSkKIAogICAgIGlmICh2YWxpZGF0ZURGR0RvZXNHQykgewogICAgICAgICBib29sIGV4cGVjdERv
ZXNHQyA9IGRvZXNHQyhtX2ppdC5ncmFwaCgpLCBub2RlKTsKLSAgICAgICAgbV9qaXQuc3RvcmU2
NChUcnVzdGVkSW1tNjQoRG9lc0dDQ2hlY2s6OmVuY29kZShleHBlY3REb2VzR0MsIG5vZGUtPmlu
ZGV4KCksIG5vZGUtPm9wKCkpKSwgdm0oKS5oZWFwLmFkZHJlc3NPZkRvZXNHQygpKTsKKyAgICAg
ICAgbV9qaXQuc3RvcmUzMihUcnVzdGVkSW1tMzIoRG9lc0dDQ2hlY2s6OmVuY29kZShleHBlY3RE
b2VzR0MsIG5vZGUtPmluZGV4KCksIG5vZGUtPm9wKCkpKSwgdm0oKS5oZWFwLmFkZHJlc3NPZkRv
ZXNHQygpKTsKICAgICB9CiAKICNpZiBFTkFCTEUoREZHX1JFR0lTVEVSX0FMTE9DQVRJT05fVkFM
SURBVElPTikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0Iz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHAJKHJldmlzaW9uIDI2MjUzNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMTG93ZXJERkdUb0IzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzA0LDcgKzcwNCw3IEBAIHBy
aXZhdGU6CiAKICAgICAgICAgaWYgKHZhbGlkYXRlREZHRG9lc0dDKSB7CiAgICAgICAgICAgICBi
b29sIGV4cGVjdERvZXNHQyA9IGRvZXNHQyhtX2dyYXBoLCBtX25vZGUpOwotICAgICAgICAgICAg
bV9vdXQuc3RvcmUobV9vdXQuY29uc3RJbnQ2NChEb2VzR0NDaGVjazo6ZW5jb2RlKGV4cGVjdERv
ZXNHQywgbV9ub2RlLT5pbmRleCgpLCBtX25vZGUtPm9wKCkpKSwgbV9vdXQuYWJzb2x1dGUodm0o
KS5oZWFwLmFkZHJlc3NPZkRvZXNHQygpKSk7CisgICAgICAgICAgICBtX291dC5zdG9yZShtX291
dC5jb25zdEludDMyKERvZXNHQ0NoZWNrOjplbmNvZGUoZXhwZWN0RG9lc0dDLCBtX25vZGUtPmlu
ZGV4KCksIG1fbm9kZS0+b3AoKSkpLCBtX291dC5hYnNvbHV0ZSh2bSgpLmhlYXAuYWRkcmVzc09m
RG9lc0dDKCkpKTsKICAgICAgICAgfQogCiAgICAgICAgIHN3aXRjaCAobV9ub2RlLT5vcCgpKSB7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGls
ZXIuY3BwCShyZXZpc2lvbiAyNjI1MzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TE9TUkV4aXRDb21waWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxNSw3ICsyMTUsNyBAQCBz
dGF0aWMgdm9pZCBjb21waWxlU3R1YihWTSYgdm0sIHVuc2lnbmVkCiAgICAgICAgIC8vIHRvIHNl
dCBpdCBoZXJlIGJlY2F1c2UgY29tcGlsZUZUTE9TUkV4aXQoKSBpcyBvbmx5IGNhbGxlZCBvbiB0
aGUgZmlyc3QgdGltZQogICAgICAgICAvLyB3ZSBleGl0IGZyb20gdGhpcyBzaXRlLCBidXQgYWxs
IHN1YnNlcXVlbnQgZXhpdHMgd2lsbCB0YWtlIHRoaXMgY29tcGlsZWQKICAgICAgICAgLy8gcmFt
cCB3aXRob3V0IGNhbGxpbmcgY29tcGlsZUZUTE9TUkV4aXQoKSBmaXJzdC4KLSAgICAgICAgaml0
LnN0b3JlNjQoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tNjQoRG9lc0dDQ2hlY2s6OmVuY29kZSh0
cnVlLCBEb2VzR0NDaGVjazo6U3BlY2lhbDo6RlRMT1NSRXhpdCkpLCB2bS5oZWFwLmFkZHJlc3NP
ZkRvZXNHQygpKTsKKyAgICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
MzIoRG9lc0dDQ2hlY2s6OmVuY29kZSh0cnVlLCBEb2VzR0NDaGVjazo6U3BlY2lhbDo6RlRMT1NS
RXhpdCkpLCB2bS5oZWFwLmFkZHJlc3NPZkRvZXNHQygpKTsKICAgICB9CiAKICAgICAvLyBCcmlu
ZyB0aGUgc3RhY2sgYmFjayBpbnRvIGEgc2FuZSBmb3JtIGFuZCBhc3NlcnQgdGhhdCBpdCdzIHNh
bmUuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCShyZXZpc2lvbiAyNjI1MzQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTk4
LDcgKzk4LDEyIEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUOwogY2xhc3MgV29ya2xpc3Q7CiB9CiAK
LSNkZWZpbmUgRU5BQkxFX0RGR19ET0VTX0dDX1ZBTElEQVRJT04gQVNTRVJUX0VOQUJMRUQKKyNp
ZiBFTkFCTEUoREZHX0pJVCkgJiYgQVNTRVJUX0VOQUJMRUQKKyNkZWZpbmUgRU5BQkxFX0RGR19E
T0VTX0dDX1ZBTElEQVRJT04gMQorI2Vsc2UKKyNkZWZpbmUgRU5BQkxFX0RGR19ET0VTX0dDX1ZB
TElEQVRJT04gMAorI2VuZGlmCisKIGNvbnN0ZXhwciBib29sIHZhbGlkYXRlREZHRG9lc0dDID0g
RU5BQkxFX0RGR19ET0VTX0dDX1ZBTElEQVRJT047CiAKIHR5cGVkZWYgSGFzaENvdW50ZWRTZXQ8
SlNDZWxsKj4gUHJvdGVjdENvdW50U2V0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401037</attachid>
            <date>2020-06-04 10:29:05 -0700</date>
            <delta_ts>2020-06-04 10:31:18 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-212734.patch</filename>
            <type>text/plain</type>
            <size>12759</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjYyNTQ0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBA
CisyMDIwLTA2LTA0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZWR1Y2UgREZHRG9lc0dDQ2hlY2sgdG8gb25seSBzdG9yaW5nIGEgdWludDMyX3QuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTI3MzQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGNoYW5n
ZXMgdGhlIGVuY29kaW5nIG9mIERvZXNHQ0NoZWNrIHNvIHRoYXQgaXQgd2lsbCBmaXQgYmV0dGVy
IGluIGEKKyAgICAgICAgdWludDMyX3QuICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGJlbmVmaXRz
OgorICAgICAgICAxLiBzcGVlZCBpbXByb3ZlbWVudCBmb3IgZGVidWcgYnVpbGRzIGJlY2F1c2Ug
aXQgbm93IHRha2VzIGxlc3MgaW5zdHJ1Y3Rpb25zCisgICAgICAgICAgIChlc3BlY2lhbGx5IGlu
IEpJVHRlZCBjb2RlKSB0byBzdG9yZSB0byBEb2VzR0NDaGVjazo6bV92YWx1ZS4KKyAgICAgICAg
Mi4gZW5hYmxlcyB0aGlzIGNoZWNrIGZvciAzMi1iaXQgcGxhdGZvcm1zIGFzIHdlbGwuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBhbHNvIG1ha2VzIEVOQUJMRV9ERkdfRE9FU19HQ19WQUxJREFUSU9O
IGRlcGVuZGVudCBvbiBFTkFCTEUoREZHX0pJVCkuCisgICAgICAgIERvZXNHQyBpcyBvbmx5IHJl
bGV2YW50IGZvciB0aGUgREZHIGFuZCBGVEwgSklUcy4KKworICAgICAgICAqIGRmZy9ERkdEb2Vz
R0NDaGVjay5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hlY2s6OnZlcmlmeUNhbkdD
KToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDQ2hlY2suaDoKKyAgICAgICAgKEpTQzo6REZHOjpE
b2VzR0NDaGVjazo6ZW5jb2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpEb2VzR0NDaGVjazo6ZXhw
ZWN0RG9lc0dDIGNvbnN0KToKKyAgICAgICAgKEpTQzo6REZHOjpEb2VzR0NDaGVjazo6aXNTcGVj
aWFsIGNvbnN0KToKKyAgICAgICAgKEpTQzo6REZHOjpEb2VzR0NDaGVjazo6c3BlY2lhbCk6Cisg
ICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hlY2s6Om5vZGVPcCk6CisgICAgICAgIChKU0M6OkRG
Rzo6RG9lc0dDQ2hlY2s6Om5vZGVJbmRleCk6CisgICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hl
Y2s6OmV4cGVjdERvZXNHQyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hl
Y2s6OmlzU3BlY2lhbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hlY2s6
OnNwZWNpYWxJbmRleCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hlY2s6
OmJpdHMpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAq
IGRmZy9ERkdPU1JFeGl0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Ojpjb21waWxl
RXhpdCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAo
SlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlTm9kZSk6CisgICAgICAgICogZnRs
L0ZUTE9TUkV4aXRDb21waWxlci5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y29tcGlsZVN0dWIp
OgorICAgICAgICAqIGhlYXAvSGVhcC5oOgorCiAyMDIwLTA2LTA0ICBUaW0gSG9ydG9uICA8dGlt
b3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFdvcmsgYXJvdW5kIGJyb2tlbiBzeXN0
ZW0gdmVyc2lvbiBtYWNybwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2Vz
R0NDaGVjay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdE
b2VzR0NDaGVjay5jcHAJKHJldmlzaW9uIDI2MjU0NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRG9lc0dDQ2hlY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBA
CiAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKKyNpbmNs
dWRlICJERkdOb2RlVHlwZS5oIgogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJWTUluc3Bl
Y3Rvci5oIgogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CkBAIC00MSw2ICs0MiwxMCBAQCBleHRl
cm4gY29uc3QgY2hhciogZGZnT3BOYW1lc1tdOwogCiB2b2lkIERvZXNHQ0NoZWNrOjp2ZXJpZnlD
YW5HQyhWTSYgdm0pCiB7CisgICAgLy8gV2UgZG8gdGhpcyBjaGNrIGhlcmUganVzdCBzbyB3ZSBk
b24ndCBoYXZlIHRvICNpbmNsdWRlIERGR05vZGVUeXBlLmgKKyAgICAvLyBpbiB0aGUgaGVhZGVy
IGZpbGUuCisgICAgc3RhdGljX2Fzc2VydChudW1iZXJPZk5vZGVUeXBlcyA8PSAoMSA8PCBub2Rl
T3BCaXRzKSk7CisKICAgICBpZiAoIWV4cGVjdERvZXNHQygpKSB7CiAgICAgICAgIGRhdGFMb2co
IkVycm9yOiBEb2VzR0MgZmFpbGVkIik7CiAgICAgICAgIGlmIChpc1NwZWNpYWwoKSkgewpAQCAt
NTMsNyArNTgsNiBAQCB2b2lkIERvZXNHQ0NoZWNrOjp2ZXJpZnlDYW5HQyhWTSYgdm0pCiAgICAg
ICAgICAgICBjYXNlIFNwZWNpYWw6OkZUTE9TUkV4aXQ6CiAgICAgICAgICAgICAgICAgZGF0YUxv
ZygiIEAgRlRMIG9zciBleGl0Iik7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICBjYXNlIFNwZWNpYWw6OlJlc2VydmVkVW51c2VkOgogICAgICAgICAgICAgY2FzZSBTcGVjaWFs
OjpOdW1iZXJPZlNwZWNpYWxzOgogICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgICAgICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0RvZXNHQ0NoZWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdEb2VzR0NDaGVjay5oCShyZXZpc2lvbiAyNjI1NDQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0RvZXNHQ0NoZWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDYg
QEAgbmFtZXNwYWNlIERGRyB7CiAKIHN0cnVjdCBEb2VzR0NDaGVjayB7CiAgICAgZW51bSBjbGFz
cyBTcGVjaWFsIHsKLSAgICAgICAgUmVzZXJ2ZWRVbnVzZWQsIC8vIHNvIHRoYXQgc3BlY2lhbHMg
c3RhcnQgd2l0aCAxLiBpc1NwZWNpYWwoKSByZWxpZXMgb24gdGhpcy4KICAgICAgICAgVW5pbml0
aWFsaXplZCwKICAgICAgICAgREZHT1NSRXhpdCwKICAgICAgICAgRlRMT1NSRXhpdCwKQEAgLTQ3
LDIwICs0NiwxNiBAQCBzdHJ1Y3QgRG9lc0dDQ2hlY2sgewogICAgICAgICA6IG1fdmFsdWUoZW5j
b2RlKHRydWUsIFNwZWNpYWw6OlVuaW5pdGlhbGl6ZWQpKQogICAgIHsgfQogCi0gICAgc3RhdGlj
IHVpbnQ2NF90IGVuY29kZShib29sIGV4cGVjdERvZXNHQywgdW5zaWduZWQgbm9kZUluZGV4LCB1
bnNpZ25lZCBub2RlT3ApCisgICAgc3RhdGljIHVpbnQzMl90IGVuY29kZShib29sIGV4cGVjdERv
ZXNHQywgdW5zaWduZWQgbm9kZUluZGV4LCB1bnNpZ25lZCBub2RlT3ApCiAgICAgewotICAgICAg
ICB1aW50NjRfdCByZXN1bHQgPSBiaXRzKG5vZGVJbmRleCkgPDwgbm9kZUluZGV4U2hpZnQ7Ci0g
ICAgICAgIHJlc3VsdCB8PSBiaXRzKG5vZGVPcCkgPDwgbm9kZU9wU2hpZnQ7Ci0gICAgICAgIHJl
c3VsdCB8PSBiaXRzKGV4cGVjdERvZXNHQykgPDwgZXhwZWN0RG9lc0dDU2hpZnQ7Ci0gICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgIC8vIFdlIGtub3cgbm9kZU9wIGFsd2F5cyBmaXRzIGJl
Y2F1c2Ugb2YgdGhlIHN0YXRpY19hc3NlcnQgaW4gREZHRG9lc0dDQ2hlY2suY3BwLgorICAgICAg
ICBBU1NFUlQoKG5vZGVJbmRleCA8PCBub2RlSW5kZXhTaGlmdCkgPj4gbm9kZUluZGV4U2hpZnQg
PT0gbm9kZUluZGV4KTsKKyAgICAgICAgcmV0dXJuIG5vZGVJbmRleCA8PCBub2RlSW5kZXhTaGlm
dCB8IG5vZGVPcCA8PCBub2RlT3BTaGlmdCB8IGJpdHMoZXhwZWN0RG9lc0dDKTsKICAgICB9CiAK
LSAgICBzdGF0aWMgdWludDY0X3QgZW5jb2RlKGJvb2wgZXhwZWN0RG9lc0dDLCBTcGVjaWFsIHNw
ZWNpYWwpCisgICAgc3RhdGljIHVpbnQzMl90IGVuY29kZShib29sIGV4cGVjdERvZXNHQywgU3Bl
Y2lhbCBzcGVjaWFsKQogICAgIHsKLSAgICAgICAgQVNTRVJUKGJpdHMoc3BlY2lhbCkgPCBudW1i
ZXJPZlNwZWNpYWxzKTsKLSAgICAgICAgdWludDY0X3QgcmVzdWx0ID0gYml0cyhzcGVjaWFsKSA8
PCBzcGVjaWFsU2hpZnQ7Ci0gICAgICAgIHJlc3VsdCB8PSBiaXRzKGV4cGVjdERvZXNHQykgPDwg
ZXhwZWN0RG9lc0dDU2hpZnQ7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIHJldHVy
biBiaXRzKHNwZWNpYWwpIDw8IHNwZWNpYWxTaGlmdCB8IGlzU3BlY2lhbEJpdCB8IGJpdHMoZXhw
ZWN0RG9lc0dDKTsKICAgICB9CiAKICAgICB2b2lkIHNldChib29sIGV4cGVjdERvZXNHQywgdW5z
aWduZWQgbm9kZUluZGV4LCB1bnNpZ25lZCBub2RlT3ApCkBAIC03MywzMiArNjgsMzkgQEAgc3Ry
dWN0IERvZXNHQ0NoZWNrIHsKICAgICAgICAgbV92YWx1ZSA9IGVuY29kZShleHBlY3REb2VzR0Ms
IHNwZWNpYWwpOwogICAgIH0KIAotICAgIGJvb2wgZXhwZWN0RG9lc0dDKCkgeyByZXR1cm4gbV92
YWx1ZSAmIGV4cGVjdERvZXNHQ01hc2s7IH0KLSAgICBTcGVjaWFsIHNwZWNpYWwoKSB7IHJldHVy
biBzdGF0aWNfY2FzdDxTcGVjaWFsPihzcGVjaWFsSW5kZXgoKSk7IH0KLSAgICB1bnNpZ25lZCBu
b2RlSW5kZXgoKSB7IHJldHVybiBtX3ZhbHVlID4+IG5vZGVJbmRleFNoaWZ0OyB9Ci0gICAgdW5z
aWduZWQgbm9kZU9wKCkgeyByZXR1cm4gKG1fdmFsdWUgPj4gbm9kZU9wU2hpZnQpICYgbm9kZU9w
TWFzazsgfQorICAgIGJvb2wgZXhwZWN0RG9lc0dDKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZSAm
IGV4cGVjdERvZXNHQ0JpdDsgfQorICAgIGJvb2wgaXNTcGVjaWFsKCkgY29uc3QgeyByZXR1cm4g
bV92YWx1ZSAmIGlzU3BlY2lhbEJpdDsgfQorCisgICAgU3BlY2lhbCBzcGVjaWFsKCkgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8U3BlY2lhbD4obV92YWx1ZSA+PiBzcGVjaWFsU2hpZnQpOyB9CiAKLSAg
ICBib29sIGlzU3BlY2lhbCgpIHsgcmV0dXJuIHNwZWNpYWxJbmRleCgpOyB9CisgICAgdW5zaWdu
ZWQgbm9kZU9wKCkgeyByZXR1cm4gKG1fdmFsdWUgPj4gbm9kZU9wU2hpZnQpICYgbm9kZU9wTWFz
azsgfQorICAgIHVuc2lnbmVkIG5vZGVJbmRleCgpIHsgcmV0dXJuIG1fdmFsdWUgPj4gbm9kZUlu
ZGV4U2hpZnQ7IH0KIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgdmVyaWZ5Q2FuR0MoVk0m
KTsKIAogcHJpdmF0ZToKLSAgICB1bnNpZ25lZCBzcGVjaWFsSW5kZXgoKSB7IHJldHVybiAobV92
YWx1ZSA+PiBzcGVjaWFsU2hpZnQpICYgc3BlY2lhbE1hc2s7IH0KKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiB1aW50MzJfdCBiaXRzKFQgdmFsdWUpIHsgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQz
Ml90Pih2YWx1ZSk7IH0KKworICAgIC8vIFRoZSB2YWx1ZSBjYW5ub3QgYmUgYm90aCBhIFNwZWNp
YWwgYW5kIGNvbnRhaW4gbm9kZSBpbmZvcm1hdGlvbiBhdCB0aGUKKyAgICAvLyB0aW1lLiBIZW5j
ZSwgdGhlIDIgY2FuIGhhdmUgc2VwYXJhdGUgZW5jb2RpbmdzLiBUaGUgaXNTcGVjaWFsIGJpdAor
ICAgIC8vIGRldGVybWluZXMgd2hpY2ggZW5jb2RpbmcgaXMgaW4gdXNlLgogCi0gICAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RhdGljIHVpbnQ2NF90IGJpdHMoVCB2YWx1ZSkgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8dWludDY0X3Q+KHZhbHVlKTsgfQorICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgZXhwZWN0RG9lc0dDQml0ID0gMSA8PCAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgaXNTcGVjaWFsQml0ID0gMSA8PCAxOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
Y29tbW9uQml0cyA9IDI7CisgICAgc3RhdGljX2Fzc2VydCgoZXhwZWN0RG9lc0dDQml0IHwgaXNT
cGVjaWFsQml0KSA9PSAoMSA8PCBjb21tb25CaXRzKSAtIDEpOwogCi0gICAgc3RhdGljIGNvbnN0
ZXhwciB1aW50NjRfdCBudW1iZXJPZlNwZWNpYWxzID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KFNw
ZWNpYWw6Ok51bWJlck9mU3BlY2lhbHMpOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
c3BlY2lhbFNoaWZ0ID0gY29tbW9uQml0czsKIAotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgZXhwZWN0RG9lc0dDU2hpZnQgPSAwOwotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
c3BlY2lhbFNoaWZ0ID0gMTsKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG5vZGVPcFNo
aWZ0ID0gMTY7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBub2RlSW5kZXhTaGlmdCA9
IDMyOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbm9kZU9wQml0cyA9IDk7CisgICAg
c3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBub2RlT3BNYXNrID0gKDEgPDwgbm9kZU9wQml0cykg
LSAxOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbm9kZU9wU2hpZnQgPSBjb21tb25C
aXRzOwogCi0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBleHBlY3REb2VzR0NNYXNrID0g
MHgxOwotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgc3BlY2lhbE1hc2sgPSAweDdmZmY7
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBub2RlT3BNYXNrID0gMHhmZmZmOworICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbm9kZUluZGV4Qml0cyA9IDIxOworICAgIHN0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgbm9kZUluZGV4U2hpZnQgPSBub2RlT3BTaGlmdCArIG5vZGVP
cEJpdHM7CisgICAgc3RhdGljX2Fzc2VydChub2RlSW5kZXhTaGlmdCArIG5vZGVJbmRleEJpdHMg
PT0gMzIpOwogCi0gICAgdWludDY0X3QgbV92YWx1ZSB7IDAgfTsKKyAgICB1aW50MzJfdCBtX3Zh
bHVlIHsgMCB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgREZHCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCShyZXZpc2lvbiAyNjI1NDQpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01NTIsNiAr
NTUyLDEwIEBAIGVudW0gTm9kZVR5cGUgewogICAgIExhc3ROb2RlVHlwZQogfTsKIAorI2RlZmlu
ZSBERkdfT1BfQ09VTlQob3Bjb2RlLCBmbGFncykgKyAxCitjb25zdGV4cHIgdW5zaWduZWQgbnVt
YmVyT2ZOb2RlVHlwZXMgPSBGT1JfRUFDSF9ERkdfT1AoREZHX09QX0NPVU5UKTsKKyN1bmRlZiBE
RkdfT1BfQ09VTlQKKwogLy8gU3BlY2lmaWVzIHRoZSBkZWZhdWx0IGZsYWdzIGZvciBlYWNoIG5v
ZGUuCiBpbmxpbmUgTm9kZUZsYWdzIGRlZmF1bHRGbGFncyhOb2RlVHlwZSBvcCkKIHsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmNwcAkocmV2aXNpb24gMjYyNTQ0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTYwLDcgKzU2MCw3IEBAIHZvaWQgT1NSRXhpdDo6Y29tcGlsZUV4aXQoQ0NhbGxI
ZWxwZXJzJiAKICAgICAgICAgLy8gdG8gc2V0IGl0IGhlcmUgYmVjYXVzZSBjb21waWxlT1NSRXhp
dCgpIGlzIG9ubHkgY2FsbGVkIG9uIHRoZSBmaXJzdCB0aW1lCiAgICAgICAgIC8vIHdlIGV4aXQg
ZnJvbSB0aGlzIHNpdGUsIGJ1dCBhbGwgc3Vic2VxdWVudCBleGl0cyB3aWxsIHRha2UgdGhpcyBj
b21waWxlZAogICAgICAgICAvLyByYW1wIHdpdGhvdXQgY2FsbGluZyBjb21waWxlT1NSRXhpdCgp
IGZpcnN0LgotICAgICAgICBqaXQuc3RvcmU2NChDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW02NChE
b2VzR0NDaGVjazo6ZW5jb2RlKHRydWUsIERvZXNHQ0NoZWNrOjpTcGVjaWFsOjpERkdPU1JFeGl0
KSksIHZtLmhlYXAuYWRkcmVzc09mRG9lc0dDKCkpOworICAgICAgICBqaXQuc3RvcmUzMihDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW0zMihEb2VzR0NDaGVjazo6ZW5jb2RlKHRydWUsIERvZXNHQ0No
ZWNrOjpTcGVjaWFsOjpERkdPU1JFeGl0KSksIHZtLmhlYXAuYWRkcmVzc09mRG9lc0dDKCkpOwog
ICAgIH0KICNlbmRpZgogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCShyZXZpc2lvbiAyNjI1NDQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xODA2LDYgKzE4MDYsMTEgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZShOb2RlKiBub2RlKQogewogICAgIE5vZGVUeXBlIG9wID0gbm9kZS0+b3AoKTsKIAorICAg
IGlmICh2YWxpZGF0ZURGR0RvZXNHQykgeworICAgICAgICBib29sIGV4cGVjdERvZXNHQyA9IGRv
ZXNHQyhtX2ppdC5ncmFwaCgpLCBub2RlKTsKKyAgICAgICAgbV9qaXQuc3RvcmUzMihUcnVzdGVk
SW1tMzIoRG9lc0dDQ2hlY2s6OmVuY29kZShleHBlY3REb2VzR0MsIG5vZGUtPmluZGV4KCksIG5v
ZGUtPm9wKCkpKSwgdm0oKS5oZWFwLmFkZHJlc3NPZkRvZXNHQygpKTsKKyAgICB9CisKICNpZiBF
TkFCTEUoREZHX1JFR0lTVEVSX0FMTE9DQVRJT05fVkFMSURBVElPTikKICAgICBtX2ppdC5jbGVh
clJlZ2lzdGVyQWxsb2NhdGlvbk9mZnNldHMoKTsKICNlbmRpZgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCShyZXZpc2lvbiAy
NjI1NDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTM4LDcgKzIxMzgsNyBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAKICAgICBpZiAodmFsaWRhdGVERkdEb2VzR0MpIHsK
ICAgICAgICAgYm9vbCBleHBlY3REb2VzR0MgPSBkb2VzR0MobV9qaXQuZ3JhcGgoKSwgbm9kZSk7
Ci0gICAgICAgIG1faml0LnN0b3JlNjQoVHJ1c3RlZEltbTY0KERvZXNHQ0NoZWNrOjplbmNvZGUo
ZXhwZWN0RG9lc0dDLCBub2RlLT5pbmRleCgpLCBub2RlLT5vcCgpKSksIHZtKCkuaGVhcC5hZGRy
ZXNzT2ZEb2VzR0MoKSk7CisgICAgICAgIG1faml0LnN0b3JlMzIoVHJ1c3RlZEltbTMyKERvZXNH
Q0NoZWNrOjplbmNvZGUoZXhwZWN0RG9lc0dDLCBub2RlLT5pbmRleCgpLCBub2RlLT5vcCgpKSks
IHZtKCkuaGVhcC5hZGRyZXNzT2ZEb2VzR0MoKSk7CiAgICAgfQogCiAjaWYgRU5BQkxFKERGR19S
RUdJU1RFUl9BTExPQ0FUSU9OX1ZBTElEQVRJT04pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCShyZXZpc2lvbiAyNjI1NDQpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTcwNCw3ICs3MDQsNyBAQCBwcml2YXRlOgogCiAgICAgICAgIGlmICh2YWxpZGF0ZURGR0Rv
ZXNHQykgewogICAgICAgICAgICAgYm9vbCBleHBlY3REb2VzR0MgPSBkb2VzR0MobV9ncmFwaCwg
bV9ub2RlKTsKLSAgICAgICAgICAgIG1fb3V0LnN0b3JlKG1fb3V0LmNvbnN0SW50NjQoRG9lc0dD
Q2hlY2s6OmVuY29kZShleHBlY3REb2VzR0MsIG1fbm9kZS0+aW5kZXgoKSwgbV9ub2RlLT5vcCgp
KSksIG1fb3V0LmFic29sdXRlKHZtKCkuaGVhcC5hZGRyZXNzT2ZEb2VzR0MoKSkpOworICAgICAg
ICAgICAgbV9vdXQuc3RvcmUobV9vdXQuY29uc3RJbnQzMihEb2VzR0NDaGVjazo6ZW5jb2RlKGV4
cGVjdERvZXNHQywgbV9ub2RlLT5pbmRleCgpLCBtX25vZGUtPm9wKCkpKSwgbV9vdXQuYWJzb2x1
dGUodm0oKS5oZWFwLmFkZHJlc3NPZkRvZXNHQygpKSk7CiAgICAgICAgIH0KIAogICAgICAgICBz
d2l0Y2ggKG1fbm9kZS0+b3AoKSkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExPU1JFeGl0Q29tcGlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAkocmV2aXNpb24gMjYyNTQ0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMTUsNyArMjE1LDcgQEAgc3RhdGljIHZvaWQgY29tcGlsZVN0dWIoVk0mIHZtLCB1bnNp
Z25lZAogICAgICAgICAvLyB0byBzZXQgaXQgaGVyZSBiZWNhdXNlIGNvbXBpbGVGVExPU1JFeGl0
KCkgaXMgb25seSBjYWxsZWQgb24gdGhlIGZpcnN0IHRpbWUKICAgICAgICAgLy8gd2UgZXhpdCBm
cm9tIHRoaXMgc2l0ZSwgYnV0IGFsbCBzdWJzZXF1ZW50IGV4aXRzIHdpbGwgdGFrZSB0aGlzIGNv
bXBpbGVkCiAgICAgICAgIC8vIHJhbXAgd2l0aG91dCBjYWxsaW5nIGNvbXBpbGVGVExPU1JFeGl0
KCkgZmlyc3QuCi0gICAgICAgIGppdC5zdG9yZTY0KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTY0
KERvZXNHQ0NoZWNrOjplbmNvZGUodHJ1ZSwgRG9lc0dDQ2hlY2s6OlNwZWNpYWw6OkZUTE9TUkV4
aXQpKSwgdm0uaGVhcC5hZGRyZXNzT2ZEb2VzR0MoKSk7CisgICAgICAgIGppdC5zdG9yZTMyKEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKERvZXNHQ0NoZWNrOjplbmNvZGUodHJ1ZSwgRG9lc0dD
Q2hlY2s6OlNwZWNpYWw6OkZUTE9TUkV4aXQpKSwgdm0uaGVhcC5hZGRyZXNzT2ZEb2VzR0MoKSk7
CiAgICAgfQogCiAgICAgLy8gQnJpbmcgdGhlIHN0YWNrIGJhY2sgaW50byBhIHNhbmUgZm9ybSBh
bmQgYXNzZXJ0IHRoYXQgaXQncyBzYW5lLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSGVhcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAu
aAkocmV2aXNpb24gMjYyNTQ0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5o
CSh3b3JraW5nIGNvcHkpCkBAIC05OCw3ICs5OCwxMiBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVDsK
IGNsYXNzIFdvcmtsaXN0OwogfQogCi0jZGVmaW5lIEVOQUJMRV9ERkdfRE9FU19HQ19WQUxJREFU
SU9OIEFTU0VSVF9FTkFCTEVECisjaWYgRU5BQkxFKERGR19KSVQpICYmIEFTU0VSVF9FTkFCTEVE
CisjZGVmaW5lIEVOQUJMRV9ERkdfRE9FU19HQ19WQUxJREFUSU9OIDEKKyNlbHNlCisjZGVmaW5l
IEVOQUJMRV9ERkdfRE9FU19HQ19WQUxJREFUSU9OIDAKKyNlbmRpZgorCiBjb25zdGV4cHIgYm9v
bCB2YWxpZGF0ZURGR0RvZXNHQyA9IEVOQUJMRV9ERkdfRE9FU19HQ19WQUxJREFUSU9OOwogCiB0
eXBlZGVmIEhhc2hDb3VudGVkU2V0PEpTQ2VsbCo+IFByb3RlY3RDb3VudFNldDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401038</attachid>
            <date>2020-06-04 10:31:18 -0700</date>
            <delta_ts>2020-06-04 10:51:09 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-212734.patch</filename>
            <type>text/plain</type>
            <size>12766</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjYyNTQ0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBA
CisyMDIwLTA2LTA0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZWR1Y2UgREZHRG9lc0dDQ2hlY2sgdG8gb25seSBzdG9yaW5nIGEgdWludDMyX3QuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTI3MzQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGNoYW5n
ZXMgdGhlIGVuY29kaW5nIG9mIERvZXNHQ0NoZWNrIHNvIHRoYXQgaXQgd2lsbCBmaXQgYmV0dGVy
IGluIGEKKyAgICAgICAgdWludDMyX3QuICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGJlbmVmaXRz
OgorICAgICAgICAxLiBzcGVlZCBpbXByb3ZlbWVudCBmb3IgZGVidWcgYnVpbGRzIGJlY2F1c2Ug
aXQgbm93IHRha2VzIGxlc3MgaW5zdHJ1Y3Rpb25zCisgICAgICAgICAgIChlc3BlY2lhbGx5IGlu
IEpJVHRlZCBjb2RlKSB0byBzdG9yZSB0byBEb2VzR0NDaGVjazo6bV92YWx1ZS4KKyAgICAgICAg
Mi4gZW5hYmxlcyB0aGlzIGNoZWNrIGZvciAzMi1iaXQgcGxhdGZvcm1zIGFzIHdlbGwuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBhbHNvIG1ha2VzIEVOQUJMRV9ERkdfRE9FU19HQ19WQUxJREFUSU9O
IGRlcGVuZGVudCBvbiBFTkFCTEUoREZHX0pJVCkuCisgICAgICAgIERvZXNHQyBpcyBvbmx5IHJl
bGV2YW50IGZvciB0aGUgREZHIGFuZCBGVEwgSklUcy4KKworICAgICAgICAqIGRmZy9ERkdEb2Vz
R0NDaGVjay5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hlY2s6OnZlcmlmeUNhbkdD
KToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDQ2hlY2suaDoKKyAgICAgICAgKEpTQzo6REZHOjpE
b2VzR0NDaGVjazo6ZW5jb2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpEb2VzR0NDaGVjazo6ZXhw
ZWN0RG9lc0dDIGNvbnN0KToKKyAgICAgICAgKEpTQzo6REZHOjpEb2VzR0NDaGVjazo6aXNTcGVj
aWFsIGNvbnN0KToKKyAgICAgICAgKEpTQzo6REZHOjpEb2VzR0NDaGVjazo6c3BlY2lhbCk6Cisg
ICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hlY2s6Om5vZGVPcCk6CisgICAgICAgIChKU0M6OkRG
Rzo6RG9lc0dDQ2hlY2s6Om5vZGVJbmRleCk6CisgICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hl
Y2s6OmV4cGVjdERvZXNHQyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hl
Y2s6OmlzU3BlY2lhbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hlY2s6
OnNwZWNpYWxJbmRleCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hlY2s6
OmJpdHMpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAq
IGRmZy9ERkdPU1JFeGl0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Ojpjb21waWxl
RXhpdCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAo
SlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlTm9kZSk6CisgICAgICAgICogZnRs
L0ZUTE9TUkV4aXRDb21waWxlci5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y29tcGlsZVN0dWIp
OgorICAgICAgICAqIGhlYXAvSGVhcC5oOgorCiAyMDIwLTA2LTA0ICBUaW0gSG9ydG9uICA8dGlt
b3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFdvcmsgYXJvdW5kIGJyb2tlbiBzeXN0
ZW0gdmVyc2lvbiBtYWNybwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2Vz
R0NDaGVjay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdE
b2VzR0NDaGVjay5jcHAJKHJldmlzaW9uIDI2MjU0NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRG9lc0dDQ2hlY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBA
CiAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKKyNpbmNs
dWRlICJERkdOb2RlVHlwZS5oIgogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJWTUluc3Bl
Y3Rvci5oIgogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CkBAIC00MSw2ICs0MiwxMCBAQCBleHRl
cm4gY29uc3QgY2hhciogZGZnT3BOYW1lc1tdOwogCiB2b2lkIERvZXNHQ0NoZWNrOjp2ZXJpZnlD
YW5HQyhWTSYgdm0pCiB7CisgICAgLy8gV2UgZG8gdGhpcyBjaGNrIGhlcmUganVzdCBzbyB3ZSBk
b24ndCBoYXZlIHRvICNpbmNsdWRlIERGR05vZGVUeXBlLmgKKyAgICAvLyBpbiB0aGUgaGVhZGVy
IGZpbGUuCisgICAgc3RhdGljX2Fzc2VydChudW1iZXJPZk5vZGVUeXBlcyA8PSAoMSA8PCBub2Rl
T3BCaXRzKSk7CisKICAgICBpZiAoIWV4cGVjdERvZXNHQygpKSB7CiAgICAgICAgIGRhdGFMb2co
IkVycm9yOiBEb2VzR0MgZmFpbGVkIik7CiAgICAgICAgIGlmIChpc1NwZWNpYWwoKSkgewpAQCAt
NTMsNyArNTgsNiBAQCB2b2lkIERvZXNHQ0NoZWNrOjp2ZXJpZnlDYW5HQyhWTSYgdm0pCiAgICAg
ICAgICAgICBjYXNlIFNwZWNpYWw6OkZUTE9TUkV4aXQ6CiAgICAgICAgICAgICAgICAgZGF0YUxv
ZygiIEAgRlRMIG9zciBleGl0Iik7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICBjYXNlIFNwZWNpYWw6OlJlc2VydmVkVW51c2VkOgogICAgICAgICAgICAgY2FzZSBTcGVjaWFs
OjpOdW1iZXJPZlNwZWNpYWxzOgogICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgICAgICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0RvZXNHQ0NoZWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdEb2VzR0NDaGVjay5oCShyZXZpc2lvbiAyNjI1NDQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0RvZXNHQ0NoZWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDYg
QEAgbmFtZXNwYWNlIERGRyB7CiAKIHN0cnVjdCBEb2VzR0NDaGVjayB7CiAgICAgZW51bSBjbGFz
cyBTcGVjaWFsIHsKLSAgICAgICAgUmVzZXJ2ZWRVbnVzZWQsIC8vIHNvIHRoYXQgc3BlY2lhbHMg
c3RhcnQgd2l0aCAxLiBpc1NwZWNpYWwoKSByZWxpZXMgb24gdGhpcy4KICAgICAgICAgVW5pbml0
aWFsaXplZCwKICAgICAgICAgREZHT1NSRXhpdCwKICAgICAgICAgRlRMT1NSRXhpdCwKQEAgLTQ3
LDIwICs0NiwxNiBAQCBzdHJ1Y3QgRG9lc0dDQ2hlY2sgewogICAgICAgICA6IG1fdmFsdWUoZW5j
b2RlKHRydWUsIFNwZWNpYWw6OlVuaW5pdGlhbGl6ZWQpKQogICAgIHsgfQogCi0gICAgc3RhdGlj
IHVpbnQ2NF90IGVuY29kZShib29sIGV4cGVjdERvZXNHQywgdW5zaWduZWQgbm9kZUluZGV4LCB1
bnNpZ25lZCBub2RlT3ApCisgICAgc3RhdGljIHVpbnQzMl90IGVuY29kZShib29sIGV4cGVjdERv
ZXNHQywgdW5zaWduZWQgbm9kZUluZGV4LCB1bnNpZ25lZCBub2RlT3ApCiAgICAgewotICAgICAg
ICB1aW50NjRfdCByZXN1bHQgPSBiaXRzKG5vZGVJbmRleCkgPDwgbm9kZUluZGV4U2hpZnQ7Ci0g
ICAgICAgIHJlc3VsdCB8PSBiaXRzKG5vZGVPcCkgPDwgbm9kZU9wU2hpZnQ7Ci0gICAgICAgIHJl
c3VsdCB8PSBiaXRzKGV4cGVjdERvZXNHQykgPDwgZXhwZWN0RG9lc0dDU2hpZnQ7Ci0gICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgIC8vIFdlIGtub3cgbm9kZU9wIGFsd2F5cyBmaXRzIGJl
Y2F1c2Ugb2YgdGhlIHN0YXRpY19hc3NlcnQgaW4gREZHRG9lc0dDQ2hlY2suY3BwLgorICAgICAg
ICBBU1NFUlQoKG5vZGVJbmRleCA8PCBub2RlSW5kZXhTaGlmdCkgPj4gbm9kZUluZGV4U2hpZnQg
PT0gbm9kZUluZGV4KTsKKyAgICAgICAgcmV0dXJuIG5vZGVJbmRleCA8PCBub2RlSW5kZXhTaGlm
dCB8IG5vZGVPcCA8PCBub2RlT3BTaGlmdCB8IGJpdHMoZXhwZWN0RG9lc0dDKTsKICAgICB9CiAK
LSAgICBzdGF0aWMgdWludDY0X3QgZW5jb2RlKGJvb2wgZXhwZWN0RG9lc0dDLCBTcGVjaWFsIHNw
ZWNpYWwpCisgICAgc3RhdGljIHVpbnQzMl90IGVuY29kZShib29sIGV4cGVjdERvZXNHQywgU3Bl
Y2lhbCBzcGVjaWFsKQogICAgIHsKLSAgICAgICAgQVNTRVJUKGJpdHMoc3BlY2lhbCkgPCBudW1i
ZXJPZlNwZWNpYWxzKTsKLSAgICAgICAgdWludDY0X3QgcmVzdWx0ID0gYml0cyhzcGVjaWFsKSA8
PCBzcGVjaWFsU2hpZnQ7Ci0gICAgICAgIHJlc3VsdCB8PSBiaXRzKGV4cGVjdERvZXNHQykgPDwg
ZXhwZWN0RG9lc0dDU2hpZnQ7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIHJldHVy
biBiaXRzKHNwZWNpYWwpIDw8IHNwZWNpYWxTaGlmdCB8IGlzU3BlY2lhbEJpdCB8IGJpdHMoZXhw
ZWN0RG9lc0dDKTsKICAgICB9CiAKICAgICB2b2lkIHNldChib29sIGV4cGVjdERvZXNHQywgdW5z
aWduZWQgbm9kZUluZGV4LCB1bnNpZ25lZCBub2RlT3ApCkBAIC03MywzMiArNjgsMzkgQEAgc3Ry
dWN0IERvZXNHQ0NoZWNrIHsKICAgICAgICAgbV92YWx1ZSA9IGVuY29kZShleHBlY3REb2VzR0Ms
IHNwZWNpYWwpOwogICAgIH0KIAotICAgIGJvb2wgZXhwZWN0RG9lc0dDKCkgeyByZXR1cm4gbV92
YWx1ZSAmIGV4cGVjdERvZXNHQ01hc2s7IH0KLSAgICBTcGVjaWFsIHNwZWNpYWwoKSB7IHJldHVy
biBzdGF0aWNfY2FzdDxTcGVjaWFsPihzcGVjaWFsSW5kZXgoKSk7IH0KLSAgICB1bnNpZ25lZCBu
b2RlSW5kZXgoKSB7IHJldHVybiBtX3ZhbHVlID4+IG5vZGVJbmRleFNoaWZ0OyB9Ci0gICAgdW5z
aWduZWQgbm9kZU9wKCkgeyByZXR1cm4gKG1fdmFsdWUgPj4gbm9kZU9wU2hpZnQpICYgbm9kZU9w
TWFzazsgfQorICAgIGJvb2wgZXhwZWN0RG9lc0dDKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZSAm
IGV4cGVjdERvZXNHQ0JpdDsgfQorICAgIGJvb2wgaXNTcGVjaWFsKCkgY29uc3QgeyByZXR1cm4g
bV92YWx1ZSAmIGlzU3BlY2lhbEJpdDsgfQorCisgICAgU3BlY2lhbCBzcGVjaWFsKCkgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8U3BlY2lhbD4obV92YWx1ZSA+PiBzcGVjaWFsU2hpZnQpOyB9CiAKLSAg
ICBib29sIGlzU3BlY2lhbCgpIHsgcmV0dXJuIHNwZWNpYWxJbmRleCgpOyB9CisgICAgdW5zaWdu
ZWQgbm9kZU9wKCkgeyByZXR1cm4gKG1fdmFsdWUgPj4gbm9kZU9wU2hpZnQpICYgbm9kZU9wTWFz
azsgfQorICAgIHVuc2lnbmVkIG5vZGVJbmRleCgpIHsgcmV0dXJuIG1fdmFsdWUgPj4gbm9kZUlu
ZGV4U2hpZnQ7IH0KIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgdmVyaWZ5Q2FuR0MoVk0m
KTsKIAogcHJpdmF0ZToKLSAgICB1bnNpZ25lZCBzcGVjaWFsSW5kZXgoKSB7IHJldHVybiAobV92
YWx1ZSA+PiBzcGVjaWFsU2hpZnQpICYgc3BlY2lhbE1hc2s7IH0KKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBzdGF0aWMgdWludDMyX3QgYml0cyhUIHZhbHVlKSB7IHJldHVybiBzdGF0aWNfY2Fz
dDx1aW50MzJfdD4odmFsdWUpOyB9CisKKyAgICAvLyBUaGUgdmFsdWUgY2Fubm90IGJlIGJvdGgg
YSBTcGVjaWFsIGFuZCBjb250YWluIG5vZGUgaW5mb3JtYXRpb24gYXQgdGhlCisgICAgLy8gdGlt
ZS4gSGVuY2UsIHRoZSAyIGNhbiBoYXZlIHNlcGFyYXRlIGVuY29kaW5ncy4gVGhlIGlzU3BlY2lh
bCBiaXQKKyAgICAvLyBkZXRlcm1pbmVzIHdoaWNoIGVuY29kaW5nIGlzIGluIHVzZS4KIAotICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyB1aW50NjRfdCBiaXRzKFQgdmFsdWUpIHsgcmV0
dXJuIHN0YXRpY19jYXN0PHVpbnQ2NF90Pih2YWx1ZSk7IH0KKyAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIGV4cGVjdERvZXNHQ0JpdCA9IDEgPDwgMDsKKyAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIGlzU3BlY2lhbEJpdCA9IDEgPDwgMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIGNvbW1vbkJpdHMgPSAyOworICAgIHN0YXRpY19hc3NlcnQoKGV4cGVjdERvZXNHQ0Jp
dCB8IGlzU3BlY2lhbEJpdCkgPT0gKDEgPDwgY29tbW9uQml0cykgLSAxKTsKIAotICAgIHN0YXRp
YyBjb25zdGV4cHIgdWludDY0X3QgbnVtYmVyT2ZTcGVjaWFscyA9IHN0YXRpY19jYXN0PHVpbnQ2
NF90PihTcGVjaWFsOjpOdW1iZXJPZlNwZWNpYWxzKTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIHNwZWNpYWxTaGlmdCA9IGNvbW1vbkJpdHM7CiAKLSAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIGV4cGVjdERvZXNHQ1NoaWZ0ID0gMDsKLSAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIHNwZWNpYWxTaGlmdCA9IDE7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBu
b2RlT3BTaGlmdCA9IDE2OwotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbm9kZUluZGV4
U2hpZnQgPSAzMjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG5vZGVPcEJpdHMgPSA5
OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbm9kZU9wTWFzayA9ICgxIDw8IG5vZGVP
cEJpdHMpIC0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG5vZGVPcFNoaWZ0ID0g
Y29tbW9uQml0czsKIAotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgZXhwZWN0RG9lc0dD
TWFzayA9IDB4MTsKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHNwZWNpYWxNYXNrID0g
MHg3ZmZmOwotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbm9kZU9wTWFzayA9IDB4ZmZm
ZjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG5vZGVJbmRleEJpdHMgPSAyMTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG5vZGVJbmRleFNoaWZ0ID0gbm9kZU9wU2hpZnQg
KyBub2RlT3BCaXRzOworICAgIHN0YXRpY19hc3NlcnQobm9kZUluZGV4U2hpZnQgKyBub2RlSW5k
ZXhCaXRzID09IDMyKTsKIAotICAgIHVpbnQ2NF90IG1fdmFsdWUgeyAwIH07CisgICAgdWludDMy
X3QgbV92YWx1ZSB7IDAgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIERGRwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAkocmV2aXNpb24gMjYyNTQ0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
NTUyLDYgKzU1MiwxMCBAQCBlbnVtIE5vZGVUeXBlIHsKICAgICBMYXN0Tm9kZVR5cGUKIH07CiAK
KyNkZWZpbmUgREZHX09QX0NPVU5UKG9wY29kZSwgZmxhZ3MpICsgMQorY29uc3RleHByIHVuc2ln
bmVkIG51bWJlck9mTm9kZVR5cGVzID0gRk9SX0VBQ0hfREZHX09QKERGR19PUF9DT1VOVCk7Cisj
dW5kZWYgREZHX09QX0NPVU5UCisKIC8vIFNwZWNpZmllcyB0aGUgZGVmYXVsdCBmbGFncyBmb3Ig
ZWFjaCBub2RlLgogaW5saW5lIE5vZGVGbGFncyBkZWZhdWx0RmxhZ3MoTm9kZVR5cGUgb3ApCiB7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAJKHJldmlzaW9u
IDI2MjU0NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTU2MCw3ICs1NjAsNyBAQCB2b2lkIE9TUkV4aXQ6OmNvbXBpbGVFeGl0
KENDYWxsSGVscGVycyYgCiAgICAgICAgIC8vIHRvIHNldCBpdCBoZXJlIGJlY2F1c2UgY29tcGls
ZU9TUkV4aXQoKSBpcyBvbmx5IGNhbGxlZCBvbiB0aGUgZmlyc3QgdGltZQogICAgICAgICAvLyB3
ZSBleGl0IGZyb20gdGhpcyBzaXRlLCBidXQgYWxsIHN1YnNlcXVlbnQgZXhpdHMgd2lsbCB0YWtl
IHRoaXMgY29tcGlsZWQKICAgICAgICAgLy8gcmFtcCB3aXRob3V0IGNhbGxpbmcgY29tcGlsZU9T
UkV4aXQoKSBmaXJzdC4KLSAgICAgICAgaml0LnN0b3JlNjQoQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tNjQoRG9lc0dDQ2hlY2s6OmVuY29kZSh0cnVlLCBEb2VzR0NDaGVjazo6U3BlY2lhbDo6REZH
T1NSRXhpdCkpLCB2bS5oZWFwLmFkZHJlc3NPZkRvZXNHQygpKTsKKyAgICAgICAgaml0LnN0b3Jl
MzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoRG9lc0dDQ2hlY2s6OmVuY29kZSh0cnVlLCBE
b2VzR0NDaGVjazo6U3BlY2lhbDo6REZHT1NSRXhpdCkpLCB2bS5oZWFwLmFkZHJlc3NPZkRvZXNH
QygpKTsKICAgICB9CiAjZW5kaWYKICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkocmV2aXNpb24gMjYyNTQ0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTgwNiw2ICsxODA2LDExIEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKIHsKICAgICBOb2RlVHlwZSBvcCA9IG5vZGUtPm9wKCk7
CiAKKyAgICBpZiAodmFsaWRhdGVERkdEb2VzR0MpIHsKKyAgICAgICAgYm9vbCBleHBlY3REb2Vz
R0MgPSBkb2VzR0MobV9qaXQuZ3JhcGgoKSwgbm9kZSk7CisgICAgICAgIG1faml0LnN0b3JlMzIo
VHJ1c3RlZEltbTMyKERvZXNHQ0NoZWNrOjplbmNvZGUoZXhwZWN0RG9lc0dDLCBub2RlLT5pbmRl
eCgpLCBub2RlLT5vcCgpKSksIHZtKCkuaGVhcC5hZGRyZXNzT2ZEb2VzR0MoKSk7CisgICAgfQor
CiAjaWYgRU5BQkxFKERGR19SRUdJU1RFUl9BTExPQ0FUSU9OX1ZBTElEQVRJT04pCiAgICAgbV9q
aXQuY2xlYXJSZWdpc3RlckFsbG9jYXRpb25PZmZzZXRzKCk7CiAjZW5kaWYKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkocmV2
aXNpb24gMjYyNTQ0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEzOCw3ICsyMTM4LDcgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogCiAgICAgaWYgKHZhbGlkYXRlREZHRG9l
c0dDKSB7CiAgICAgICAgIGJvb2wgZXhwZWN0RG9lc0dDID0gZG9lc0dDKG1faml0LmdyYXBoKCks
IG5vZGUpOwotICAgICAgICBtX2ppdC5zdG9yZTY0KFRydXN0ZWRJbW02NChEb2VzR0NDaGVjazo6
ZW5jb2RlKGV4cGVjdERvZXNHQywgbm9kZS0+aW5kZXgoKSwgbm9kZS0+b3AoKSkpLCB2bSgpLmhl
YXAuYWRkcmVzc09mRG9lc0dDKCkpOworICAgICAgICBtX2ppdC5zdG9yZTMyKFRydXN0ZWRJbW0z
MihEb2VzR0NDaGVjazo6ZW5jb2RlKGV4cGVjdERvZXNHQywgbm9kZS0+aW5kZXgoKSwgbm9kZS0+
b3AoKSkpLCB2bSgpLmhlYXAuYWRkcmVzc09mRG9lc0dDKCkpOwogICAgIH0KIAogI2lmIEVOQUJM
RShERkdfUkVHSVNURVJfQUxMT0NBVElPTl9WQUxJREFUSU9OKQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAkocmV2aXNpb24gMjYyNTQ0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC03MDQsNyArNzA0LDcgQEAgcHJpdmF0ZToKIAogICAgICAgICBpZiAodmFsaWRh
dGVERkdEb2VzR0MpIHsKICAgICAgICAgICAgIGJvb2wgZXhwZWN0RG9lc0dDID0gZG9lc0dDKG1f
Z3JhcGgsIG1fbm9kZSk7Ci0gICAgICAgICAgICBtX291dC5zdG9yZShtX291dC5jb25zdEludDY0
KERvZXNHQ0NoZWNrOjplbmNvZGUoZXhwZWN0RG9lc0dDLCBtX25vZGUtPmluZGV4KCksIG1fbm9k
ZS0+b3AoKSkpLCBtX291dC5hYnNvbHV0ZSh2bSgpLmhlYXAuYWRkcmVzc09mRG9lc0dDKCkpKTsK
KyAgICAgICAgICAgIG1fb3V0LnN0b3JlKG1fb3V0LmNvbnN0SW50MzIoRG9lc0dDQ2hlY2s6OmVu
Y29kZShleHBlY3REb2VzR0MsIG1fbm9kZS0+aW5kZXgoKSwgbV9ub2RlLT5vcCgpKSksIG1fb3V0
LmFic29sdXRlKHZtKCkuaGVhcC5hZGRyZXNzT2ZEb2VzR0MoKSkpOwogICAgICAgICB9CiAKICAg
ICAgICAgc3dpdGNoIChtX25vZGUtPm9wKCkpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAJKHJldmlzaW9uIDI2MjU0NCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjE1LDcgKzIxNSw3IEBAIHN0YXRpYyB2b2lkIGNvbXBpbGVTdHViKFZNJiB2
bSwgdW5zaWduZWQKICAgICAgICAgLy8gdG8gc2V0IGl0IGhlcmUgYmVjYXVzZSBjb21waWxlRlRM
T1NSRXhpdCgpIGlzIG9ubHkgY2FsbGVkIG9uIHRoZSBmaXJzdCB0aW1lCiAgICAgICAgIC8vIHdl
IGV4aXQgZnJvbSB0aGlzIHNpdGUsIGJ1dCBhbGwgc3Vic2VxdWVudCBleGl0cyB3aWxsIHRha2Ug
dGhpcyBjb21waWxlZAogICAgICAgICAvLyByYW1wIHdpdGhvdXQgY2FsbGluZyBjb21waWxlRlRM
T1NSRXhpdCgpIGZpcnN0LgotICAgICAgICBqaXQuc3RvcmU2NChDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW02NChEb2VzR0NDaGVjazo6ZW5jb2RlKHRydWUsIERvZXNHQ0NoZWNrOjpTcGVjaWFsOjpG
VExPU1JFeGl0KSksIHZtLmhlYXAuYWRkcmVzc09mRG9lc0dDKCkpOworICAgICAgICBqaXQuc3Rv
cmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihEb2VzR0NDaGVjazo6ZW5jb2RlKHRydWUs
IERvZXNHQ0NoZWNrOjpTcGVjaWFsOjpGVExPU1JFeGl0KSksIHZtLmhlYXAuYWRkcmVzc09mRG9l
c0dDKCkpOwogICAgIH0KIAogICAgIC8vIEJyaW5nIHRoZSBzdGFjayBiYWNrIGludG8gYSBzYW5l
IGZvcm0gYW5kIGFzc2VydCB0aGF0IGl0J3Mgc2FuZS4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0hlYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwLmgJKHJldmlzaW9uIDI2MjU0NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtOTgsNyArOTgsMTIgQEAgY2xhc3MgU3BlY3VsYXRp
dmVKSVQ7CiBjbGFzcyBXb3JrbGlzdDsKIH0KIAotI2RlZmluZSBFTkFCTEVfREZHX0RPRVNfR0Nf
VkFMSURBVElPTiBBU1NFUlRfRU5BQkxFRAorI2lmIEVOQUJMRShERkdfSklUKSAmJiBBU1NFUlRf
RU5BQkxFRAorI2RlZmluZSBFTkFCTEVfREZHX0RPRVNfR0NfVkFMSURBVElPTiAxCisjZWxzZQor
I2RlZmluZSBFTkFCTEVfREZHX0RPRVNfR0NfVkFMSURBVElPTiAwCisjZW5kaWYKKwogY29uc3Rl
eHByIGJvb2wgdmFsaWRhdGVERkdEb2VzR0MgPSBFTkFCTEVfREZHX0RPRVNfR0NfVkFMSURBVElP
TjsKIAogdHlwZWRlZiBIYXNoQ291bnRlZFNldDxKU0NlbGwqPiBQcm90ZWN0Q291bnRTZXQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401042</attachid>
            <date>2020-06-04 10:51:09 -0700</date>
            <delta_ts>2020-06-04 10:54:30 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-212734.patch</filename>
            <type>text/plain</type>
            <size>13585</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjYyNTQ0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU5IEBA
CisyMDIwLTA2LTA0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZWR1Y2UgREZHRG9lc0dDQ2hlY2sgdG8gb25seSBzdG9yaW5nIGEgdWludDMyX3QuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTI3MzQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGNoYW5n
ZXMgdGhlIGVuY29kaW5nIG9mIERvZXNHQ0NoZWNrIHNvIHRoYXQgaXQgd2lsbCBmaXQgYmV0dGVy
IGluIGEKKyAgICAgICAgdWludDMyX3QuICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGJlbmVmaXRz
OgorICAgICAgICAxLiBzcGVlZCBpbXByb3ZlbWVudCBmb3IgZGVidWcgYnVpbGRzIGJlY2F1c2Ug
aXQgbm93IHRha2VzIGxlc3MgaW5zdHJ1Y3Rpb25zCisgICAgICAgICAgIChlc3BlY2lhbGx5IGlu
IEpJVHRlZCBjb2RlKSB0byBzdG9yZSB0byBEb2VzR0NDaGVjazo6bV92YWx1ZS4KKyAgICAgICAg
Mi4gZW5hYmxlcyB0aGlzIGNoZWNrIGZvciAzMi1iaXQgcGxhdGZvcm1zIGFzIHdlbGwuCisKKyAg
ICAgICAgRnVuIGZhY3Q6IHdlIGN1cnJlbnRseSBoYXZlIDM3MyBERkc6Ok5vZGVUeXBlcy4gIEhl
bmNlLCA5IGJpdHMgZm9yIG5vZGVPcC4KKworICAgICAgICBUaGUgbmV3IGVuY29kaW5nIHByb3Zp
ZGVzIDIxIGJpcyBmb3IgdGhlIG5vZGVJbmRleC4gIFRoaXMgZ2l2ZXMgdXMgdXAgdG8gMjA5NzE1
MgorICAgICAgICBub2RlIGluZGV4ZXMuICBJbiBteSBleHBlcmllbmNlLCBJJ3ZlIG5ldmVyIHNl
ZW4gbW9yZSB0aGFuIDMgZGVjaW1hbCBkaWdpdHMgZm9yCisgICAgICAgIHRoZSBub2RlSW5kZXgg
c28gZmFyLiAgSWYgd2UgZXZlciBmaW5kIHRoYXQgd2UgbmVlZCBtb3JlIHRoYW4gMjEgYml0cyBv
ZiBub2RlSW5kZXgsCisgICAgICAgIHdlIGhhdmUgMiBvcHRpb25zIHRvIGRlYWwgd2l0aCBpdDoK
KworICAgICAgICAxLiBXZSBjYW4ganVzdCBpZ25vcmUgdGhlIGhpZ2ggYml0cy4gIEFmdGVyIGFs
bCwgaXQgaXMgdGhlIG5vZGVPcCB0aGF0IGlzIHRoZQorICAgICAgICAgICBtb3N0IGludGVyZXN0
aW5nIHBpZWNlIG9mIGRhdGEgd2UgbmVlZCB0byBkZWJ1ZyBkb2VzR0MgaXNzdWVzLgorCisgICAg
ICAgIDIuIFdlIGNhbiBtYWtlIERvZXNHQ0NoZWNrIHVzZSBhIHVpbnQ2NF90IGZvciBzdG9yYWdl
LiAgVGhpcyBlbmNvZGluZyB3b3JrcworICAgICAgICAgICBhdXRvbWF0aWNhbGx5IHNjYWxlcyB0
byA2NC1iaXQsIHdoaWxlIHN0aWxsIGFsbG93aW5nIHRoZSBtb3JlIGVmZmljaWVudCBmb3JtCisg
ICAgICAgICAgIG9mIHN0b3JpbmcgYSAzMi1iaXQgaW1tZWRpYXRlIHRvIGJlIHVzZWQgZm9yIHRo
ZSBjb21tb24gY2FzZXMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhbHNvIG1ha2VzIEVOQUJMRV9E
RkdfRE9FU19HQ19WQUxJREFUSU9OIGRlcGVuZGVudCBvbiBFTkFCTEUoREZHX0pJVCkuCisgICAg
ICAgIERvZXNHQyBpcyBvbmx5IHJlbGV2YW50IGZvciB0aGUgREZHIGFuZCBGVEwgSklUcy4KKwor
ICAgICAgICAqIGRmZy9ERkdEb2VzR0NDaGVjay5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6RG9l
c0dDQ2hlY2s6OnZlcmlmeUNhbkdDKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDQ2hlY2suaDoK
KyAgICAgICAgKEpTQzo6REZHOjpEb2VzR0NDaGVjazo6ZW5jb2RlKToKKyAgICAgICAgKEpTQzo6
REZHOjpEb2VzR0NDaGVjazo6ZXhwZWN0RG9lc0dDIGNvbnN0KToKKyAgICAgICAgKEpTQzo6REZH
OjpEb2VzR0NDaGVjazo6aXNTcGVjaWFsIGNvbnN0KToKKyAgICAgICAgKEpTQzo6REZHOjpEb2Vz
R0NDaGVjazo6c3BlY2lhbCk6CisgICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hlY2s6Om5vZGVP
cCk6CisgICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hlY2s6Om5vZGVJbmRleCk6CisgICAgICAg
IChKU0M6OkRGRzo6RG9lc0dDQ2hlY2s6OmV4cGVjdERvZXNHQyk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6RG9lc0dDQ2hlY2s6OmlzU3BlY2lhbCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6RG9lc0dDQ2hlY2s6OnNwZWNpYWxJbmRleCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6RG9lc0dDQ2hlY2s6OmJpdHMpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdO
b2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0LmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpPU1JFeGl0Ojpjb21waWxlRXhpdCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZl
SklUMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
KToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRG
R1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxl
Tm9kZSk6CisgICAgICAgICogZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHA6CisgICAgICAgIChK
U0M6OkZUTDo6Y29tcGlsZVN0dWIpOgorICAgICAgICAqIGhlYXAvSGVhcC5oOgorCiAyMDIwLTA2
LTA0ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFdv
cmsgYXJvdW5kIGJyb2tlbiBzeXN0ZW0gdmVyc2lvbiBtYWNybwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdEb2VzR0NDaGVjay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0NDaGVjay5jcHAJKHJldmlzaW9uIDI2MjU0NCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDQ2hlY2suY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRl
ICJDb2RlQmxvY2suaCIKKyNpbmNsdWRlICJERkdOb2RlVHlwZS5oIgogI2luY2x1ZGUgIkhlYXAu
aCIKICNpbmNsdWRlICJWTUluc3BlY3Rvci5oIgogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CkBA
IC00MSw2ICs0MiwxMCBAQCBleHRlcm4gY29uc3QgY2hhciogZGZnT3BOYW1lc1tdOwogCiB2b2lk
IERvZXNHQ0NoZWNrOjp2ZXJpZnlDYW5HQyhWTSYgdm0pCiB7CisgICAgLy8gV2UgZG8gdGhpcyBj
aGNrIGhlcmUganVzdCBzbyB3ZSBkb24ndCBoYXZlIHRvICNpbmNsdWRlIERGR05vZGVUeXBlLmgK
KyAgICAvLyBpbiB0aGUgaGVhZGVyIGZpbGUuCisgICAgc3RhdGljX2Fzc2VydChudW1iZXJPZk5v
ZGVUeXBlcyA8PSAoMSA8PCBub2RlT3BCaXRzKSk7CisKICAgICBpZiAoIWV4cGVjdERvZXNHQygp
KSB7CiAgICAgICAgIGRhdGFMb2coIkVycm9yOiBEb2VzR0MgZmFpbGVkIik7CiAgICAgICAgIGlm
IChpc1NwZWNpYWwoKSkgewpAQCAtNTMsNyArNTgsNiBAQCB2b2lkIERvZXNHQ0NoZWNrOjp2ZXJp
ZnlDYW5HQyhWTSYgdm0pCiAgICAgICAgICAgICBjYXNlIFNwZWNpYWw6OkZUTE9TUkV4aXQ6CiAg
ICAgICAgICAgICAgICAgZGF0YUxvZygiIEAgRlRMIG9zciBleGl0Iik7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFNwZWNpYWw6OlJlc2VydmVkVW51c2VkOgogICAg
ICAgICAgICAgY2FzZSBTcGVjaWFsOjpOdW1iZXJPZlNwZWNpYWxzOgogICAgICAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICB9CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQ0NoZWNrLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0NDaGVjay5oCShyZXZpc2lvbiAyNjI1NDQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQ0NoZWNrLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM2LDcgKzM2LDYgQEAgbmFtZXNwYWNlIERGRyB7CiAKIHN0cnVjdCBEb2VzR0ND
aGVjayB7CiAgICAgZW51bSBjbGFzcyBTcGVjaWFsIHsKLSAgICAgICAgUmVzZXJ2ZWRVbnVzZWQs
IC8vIHNvIHRoYXQgc3BlY2lhbHMgc3RhcnQgd2l0aCAxLiBpc1NwZWNpYWwoKSByZWxpZXMgb24g
dGhpcy4KICAgICAgICAgVW5pbml0aWFsaXplZCwKICAgICAgICAgREZHT1NSRXhpdCwKICAgICAg
ICAgRlRMT1NSRXhpdCwKQEAgLTQ3LDIwICs0NiwxNiBAQCBzdHJ1Y3QgRG9lc0dDQ2hlY2sgewog
ICAgICAgICA6IG1fdmFsdWUoZW5jb2RlKHRydWUsIFNwZWNpYWw6OlVuaW5pdGlhbGl6ZWQpKQog
ICAgIHsgfQogCi0gICAgc3RhdGljIHVpbnQ2NF90IGVuY29kZShib29sIGV4cGVjdERvZXNHQywg
dW5zaWduZWQgbm9kZUluZGV4LCB1bnNpZ25lZCBub2RlT3ApCisgICAgc3RhdGljIHVpbnQzMl90
IGVuY29kZShib29sIGV4cGVjdERvZXNHQywgdW5zaWduZWQgbm9kZUluZGV4LCB1bnNpZ25lZCBu
b2RlT3ApCiAgICAgewotICAgICAgICB1aW50NjRfdCByZXN1bHQgPSBiaXRzKG5vZGVJbmRleCkg
PDwgbm9kZUluZGV4U2hpZnQ7Ci0gICAgICAgIHJlc3VsdCB8PSBiaXRzKG5vZGVPcCkgPDwgbm9k
ZU9wU2hpZnQ7Ci0gICAgICAgIHJlc3VsdCB8PSBiaXRzKGV4cGVjdERvZXNHQykgPDwgZXhwZWN0
RG9lc0dDU2hpZnQ7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIC8vIFdlIGtub3cg
bm9kZU9wIGFsd2F5cyBmaXRzIGJlY2F1c2Ugb2YgdGhlIHN0YXRpY19hc3NlcnQgaW4gREZHRG9l
c0dDQ2hlY2suY3BwLgorICAgICAgICBBU1NFUlQoKG5vZGVJbmRleCA8PCBub2RlSW5kZXhTaGlm
dCkgPj4gbm9kZUluZGV4U2hpZnQgPT0gbm9kZUluZGV4KTsKKyAgICAgICAgcmV0dXJuIG5vZGVJ
bmRleCA8PCBub2RlSW5kZXhTaGlmdCB8IG5vZGVPcCA8PCBub2RlT3BTaGlmdCB8IGJpdHMoZXhw
ZWN0RG9lc0dDKTsKICAgICB9CiAKLSAgICBzdGF0aWMgdWludDY0X3QgZW5jb2RlKGJvb2wgZXhw
ZWN0RG9lc0dDLCBTcGVjaWFsIHNwZWNpYWwpCisgICAgc3RhdGljIHVpbnQzMl90IGVuY29kZShi
b29sIGV4cGVjdERvZXNHQywgU3BlY2lhbCBzcGVjaWFsKQogICAgIHsKLSAgICAgICAgQVNTRVJU
KGJpdHMoc3BlY2lhbCkgPCBudW1iZXJPZlNwZWNpYWxzKTsKLSAgICAgICAgdWludDY0X3QgcmVz
dWx0ID0gYml0cyhzcGVjaWFsKSA8PCBzcGVjaWFsU2hpZnQ7Ci0gICAgICAgIHJlc3VsdCB8PSBi
aXRzKGV4cGVjdERvZXNHQykgPDwgZXhwZWN0RG9lc0dDU2hpZnQ7Ci0gICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgIHJldHVybiBiaXRzKHNwZWNpYWwpIDw8IHNwZWNpYWxTaGlmdCB8IGlz
U3BlY2lhbEJpdCB8IGJpdHMoZXhwZWN0RG9lc0dDKTsKICAgICB9CiAKICAgICB2b2lkIHNldChi
b29sIGV4cGVjdERvZXNHQywgdW5zaWduZWQgbm9kZUluZGV4LCB1bnNpZ25lZCBub2RlT3ApCkBA
IC03MywzMiArNjgsMzkgQEAgc3RydWN0IERvZXNHQ0NoZWNrIHsKICAgICAgICAgbV92YWx1ZSA9
IGVuY29kZShleHBlY3REb2VzR0MsIHNwZWNpYWwpOwogICAgIH0KIAotICAgIGJvb2wgZXhwZWN0
RG9lc0dDKCkgeyByZXR1cm4gbV92YWx1ZSAmIGV4cGVjdERvZXNHQ01hc2s7IH0KLSAgICBTcGVj
aWFsIHNwZWNpYWwoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxTcGVjaWFsPihzcGVjaWFsSW5kZXgo
KSk7IH0KLSAgICB1bnNpZ25lZCBub2RlSW5kZXgoKSB7IHJldHVybiBtX3ZhbHVlID4+IG5vZGVJ
bmRleFNoaWZ0OyB9Ci0gICAgdW5zaWduZWQgbm9kZU9wKCkgeyByZXR1cm4gKG1fdmFsdWUgPj4g
bm9kZU9wU2hpZnQpICYgbm9kZU9wTWFzazsgfQorICAgIGJvb2wgZXhwZWN0RG9lc0dDKCkgY29u
c3QgeyByZXR1cm4gbV92YWx1ZSAmIGV4cGVjdERvZXNHQ0JpdDsgfQorICAgIGJvb2wgaXNTcGVj
aWFsKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZSAmIGlzU3BlY2lhbEJpdDsgfQorCisgICAgU3Bl
Y2lhbCBzcGVjaWFsKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U3BlY2lhbD4obV92YWx1ZSA+PiBz
cGVjaWFsU2hpZnQpOyB9CiAKLSAgICBib29sIGlzU3BlY2lhbCgpIHsgcmV0dXJuIHNwZWNpYWxJ
bmRleCgpOyB9CisgICAgdW5zaWduZWQgbm9kZU9wKCkgeyByZXR1cm4gKG1fdmFsdWUgPj4gbm9k
ZU9wU2hpZnQpICYgbm9kZU9wTWFzazsgfQorICAgIHVuc2lnbmVkIG5vZGVJbmRleCgpIHsgcmV0
dXJuIG1fdmFsdWUgPj4gbm9kZUluZGV4U2hpZnQ7IH0KIAogICAgIEpTX0VYUE9SVF9QUklWQVRF
IHZvaWQgdmVyaWZ5Q2FuR0MoVk0mKTsKIAogcHJpdmF0ZToKLSAgICB1bnNpZ25lZCBzcGVjaWFs
SW5kZXgoKSB7IHJldHVybiAobV92YWx1ZSA+PiBzcGVjaWFsU2hpZnQpICYgc3BlY2lhbE1hc2s7
IH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgdWludDMyX3QgYml0cyhUIHZhbHVl
KSB7IHJldHVybiBzdGF0aWNfY2FzdDx1aW50MzJfdD4odmFsdWUpOyB9CisKKyAgICAvLyBUaGUg
dmFsdWUgY2Fubm90IGJlIGJvdGggYSBTcGVjaWFsIGFuZCBjb250YWluIG5vZGUgaW5mb3JtYXRp
b24gYXQgdGhlCisgICAgLy8gdGltZS4gSGVuY2UsIHRoZSAyIGNhbiBoYXZlIHNlcGFyYXRlIGVu
Y29kaW5ncy4gVGhlIGlzU3BlY2lhbCBiaXQKKyAgICAvLyBkZXRlcm1pbmVzIHdoaWNoIGVuY29k
aW5nIGlzIGluIHVzZS4KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyB1aW50NjRf
dCBiaXRzKFQgdmFsdWUpIHsgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ2NF90Pih2YWx1ZSk7IH0K
KyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGV4cGVjdERvZXNHQ0JpdCA9IDEgPDwgMDsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGlzU3BlY2lhbEJpdCA9IDEgPDwgMTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGNvbW1vbkJpdHMgPSAyOworICAgIHN0YXRpY19h
c3NlcnQoKGV4cGVjdERvZXNHQ0JpdCB8IGlzU3BlY2lhbEJpdCkgPT0gKDEgPDwgY29tbW9uQml0
cykgLSAxKTsKIAotICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDY0X3QgbnVtYmVyT2ZTcGVjaWFs
cyA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihTcGVjaWFsOjpOdW1iZXJPZlNwZWNpYWxzKTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHNwZWNpYWxTaGlmdCA9IGNvbW1vbkJpdHM7CiAK
LSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGV4cGVjdERvZXNHQ1NoaWZ0ID0gMDsKLSAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHNwZWNpYWxTaGlmdCA9IDE7Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBub2RlT3BTaGlmdCA9IDE2OwotICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgbm9kZUluZGV4U2hpZnQgPSAzMjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIG5vZGVPcEJpdHMgPSA5OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbm9k
ZU9wTWFzayA9ICgxIDw8IG5vZGVPcEJpdHMpIC0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIG5vZGVPcFNoaWZ0ID0gY29tbW9uQml0czsKIAotICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgZXhwZWN0RG9lc0dDTWFzayA9IDB4MTsKLSAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIHNwZWNpYWxNYXNrID0gMHg3ZmZmOwotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgbm9kZU9wTWFzayA9IDB4ZmZmZjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG5v
ZGVJbmRleEJpdHMgPSAyMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG5vZGVJbmRl
eFNoaWZ0ID0gbm9kZU9wU2hpZnQgKyBub2RlT3BCaXRzOworICAgIHN0YXRpY19hc3NlcnQobm9k
ZUluZGV4U2hpZnQgKyBub2RlSW5kZXhCaXRzID09IDMyKTsKIAotICAgIHVpbnQ2NF90IG1fdmFs
dWUgeyAwIH07CisgICAgdWludDMyX3QgbV92YWx1ZSB7IDAgfTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIERGRwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAkocmV2
aXNpb24gMjYyNTQ0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
Mi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMi0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNTUyLDYgKzU1MiwxMCBAQCBlbnVtIE5vZGVUeXBlIHsKICAg
ICBMYXN0Tm9kZVR5cGUKIH07CiAKKyNkZWZpbmUgREZHX09QX0NPVU5UKG9wY29kZSwgZmxhZ3Mp
ICsgMQorY29uc3RleHByIHVuc2lnbmVkIG51bWJlck9mTm9kZVR5cGVzID0gRk9SX0VBQ0hfREZH
X09QKERGR19PUF9DT1VOVCk7CisjdW5kZWYgREZHX09QX0NPVU5UCisKIC8vIFNwZWNpZmllcyB0
aGUgZGVmYXVsdCBmbGFncyBmb3IgZWFjaCBub2RlLgogaW5saW5lIE5vZGVGbGFncyBkZWZhdWx0
RmxhZ3MoTm9kZVR5cGUgb3ApCiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09TUkV4aXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T1NSRXhpdC5jcHAJKHJldmlzaW9uIDI2MjU0NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT1NSRXhpdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2MCw3ICs1NjAsNyBAQCB2b2lk
IE9TUkV4aXQ6OmNvbXBpbGVFeGl0KENDYWxsSGVscGVycyYgCiAgICAgICAgIC8vIHRvIHNldCBp
dCBoZXJlIGJlY2F1c2UgY29tcGlsZU9TUkV4aXQoKSBpcyBvbmx5IGNhbGxlZCBvbiB0aGUgZmly
c3QgdGltZQogICAgICAgICAvLyB3ZSBleGl0IGZyb20gdGhpcyBzaXRlLCBidXQgYWxsIHN1YnNl
cXVlbnQgZXhpdHMgd2lsbCB0YWtlIHRoaXMgY29tcGlsZWQKICAgICAgICAgLy8gcmFtcCB3aXRo
b3V0IGNhbGxpbmcgY29tcGlsZU9TUkV4aXQoKSBmaXJzdC4KLSAgICAgICAgaml0LnN0b3JlNjQo
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tNjQoRG9lc0dDQ2hlY2s6OmVuY29kZSh0cnVlLCBEb2Vz
R0NDaGVjazo6U3BlY2lhbDo6REZHT1NSRXhpdCkpLCB2bS5oZWFwLmFkZHJlc3NPZkRvZXNHQygp
KTsKKyAgICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoRG9lc0dD
Q2hlY2s6OmVuY29kZSh0cnVlLCBEb2VzR0NDaGVjazo6U3BlY2lhbDo6REZHT1NSRXhpdCkpLCB2
bS5oZWFwLmFkZHJlc3NPZkRvZXNHQygpKTsKICAgICB9CiAjZW5kaWYKICAgICAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcAkocmV2aXNpb24gMjYyNTQ0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgwNiw2ICsxODA2LDEx
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKIHsKICAgICBOb2Rl
VHlwZSBvcCA9IG5vZGUtPm9wKCk7CiAKKyAgICBpZiAodmFsaWRhdGVERkdEb2VzR0MpIHsKKyAg
ICAgICAgYm9vbCBleHBlY3REb2VzR0MgPSBkb2VzR0MobV9qaXQuZ3JhcGgoKSwgbm9kZSk7Cisg
ICAgICAgIG1faml0LnN0b3JlMzIoVHJ1c3RlZEltbTMyKERvZXNHQ0NoZWNrOjplbmNvZGUoZXhw
ZWN0RG9lc0dDLCBub2RlLT5pbmRleCgpLCBub2RlLT5vcCgpKSksIHZtKCkuaGVhcC5hZGRyZXNz
T2ZEb2VzR0MoKSk7CisgICAgfQorCiAjaWYgRU5BQkxFKERGR19SRUdJU1RFUl9BTExPQ0FUSU9O
X1ZBTElEQVRJT04pCiAgICAgbV9qaXQuY2xlYXJSZWdpc3RlckFsbG9jYXRpb25PZmZzZXRzKCk7
CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDY0LmNwcAkocmV2aXNpb24gMjYyNTQ0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEzOCw3
ICsyMTM4LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogCiAg
ICAgaWYgKHZhbGlkYXRlREZHRG9lc0dDKSB7CiAgICAgICAgIGJvb2wgZXhwZWN0RG9lc0dDID0g
ZG9lc0dDKG1faml0LmdyYXBoKCksIG5vZGUpOwotICAgICAgICBtX2ppdC5zdG9yZTY0KFRydXN0
ZWRJbW02NChEb2VzR0NDaGVjazo6ZW5jb2RlKGV4cGVjdERvZXNHQywgbm9kZS0+aW5kZXgoKSwg
bm9kZS0+b3AoKSkpLCB2bSgpLmhlYXAuYWRkcmVzc09mRG9lc0dDKCkpOworICAgICAgICBtX2pp
dC5zdG9yZTMyKFRydXN0ZWRJbW0zMihEb2VzR0NDaGVjazo6ZW5jb2RlKGV4cGVjdERvZXNHQywg
bm9kZS0+aW5kZXgoKSwgbm9kZS0+b3AoKSkpLCB2bSgpLmhlYXAuYWRkcmVzc09mRG9lc0dDKCkp
OwogICAgIH0KIAogI2lmIEVOQUJMRShERkdfUkVHSVNURVJfQUxMT0NBVElPTl9WQUxJREFUSU9O
KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNw
cAkocmV2aXNpb24gMjYyNTQ0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvQjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MDQsNyArNzA0LDcgQEAgcHJpdmF0ZToK
IAogICAgICAgICBpZiAodmFsaWRhdGVERkdEb2VzR0MpIHsKICAgICAgICAgICAgIGJvb2wgZXhw
ZWN0RG9lc0dDID0gZG9lc0dDKG1fZ3JhcGgsIG1fbm9kZSk7Ci0gICAgICAgICAgICBtX291dC5z
dG9yZShtX291dC5jb25zdEludDY0KERvZXNHQ0NoZWNrOjplbmNvZGUoZXhwZWN0RG9lc0dDLCBt
X25vZGUtPmluZGV4KCksIG1fbm9kZS0+b3AoKSkpLCBtX291dC5hYnNvbHV0ZSh2bSgpLmhlYXAu
YWRkcmVzc09mRG9lc0dDKCkpKTsKKyAgICAgICAgICAgIG1fb3V0LnN0b3JlKG1fb3V0LmNvbnN0
SW50MzIoRG9lc0dDQ2hlY2s6OmVuY29kZShleHBlY3REb2VzR0MsIG1fbm9kZS0+aW5kZXgoKSwg
bV9ub2RlLT5vcCgpKSksIG1fb3V0LmFic29sdXRlKHZtKCkuaGVhcC5hZGRyZXNzT2ZEb2VzR0Mo
KSkpOwogICAgICAgICB9CiAKICAgICAgICAgc3dpdGNoIChtX25vZGUtPm9wKCkpIHsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAJ
KHJldmlzaW9uIDI2MjU0NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhp
dENvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjE1LDcgKzIxNSw3IEBAIHN0YXRpYyB2
b2lkIGNvbXBpbGVTdHViKFZNJiB2bSwgdW5zaWduZWQKICAgICAgICAgLy8gdG8gc2V0IGl0IGhl
cmUgYmVjYXVzZSBjb21waWxlRlRMT1NSRXhpdCgpIGlzIG9ubHkgY2FsbGVkIG9uIHRoZSBmaXJz
dCB0aW1lCiAgICAgICAgIC8vIHdlIGV4aXQgZnJvbSB0aGlzIHNpdGUsIGJ1dCBhbGwgc3Vic2Vx
dWVudCBleGl0cyB3aWxsIHRha2UgdGhpcyBjb21waWxlZAogICAgICAgICAvLyByYW1wIHdpdGhv
dXQgY2FsbGluZyBjb21waWxlRlRMT1NSRXhpdCgpIGZpcnN0LgotICAgICAgICBqaXQuc3RvcmU2
NChDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW02NChEb2VzR0NDaGVjazo6ZW5jb2RlKHRydWUsIERv
ZXNHQ0NoZWNrOjpTcGVjaWFsOjpGVExPU1JFeGl0KSksIHZtLmhlYXAuYWRkcmVzc09mRG9lc0dD
KCkpOworICAgICAgICBqaXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihEb2Vz
R0NDaGVjazo6ZW5jb2RlKHRydWUsIERvZXNHQ0NoZWNrOjpTcGVjaWFsOjpGVExPU1JFeGl0KSks
IHZtLmhlYXAuYWRkcmVzc09mRG9lc0dDKCkpOwogICAgIH0KIAogICAgIC8vIEJyaW5nIHRoZSBz
dGFjayBiYWNrIGludG8gYSBzYW5lIGZvcm0gYW5kIGFzc2VydCB0aGF0IGl0J3Mgc2FuZS4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgJKHJldmlzaW9uIDI2MjU0NCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtOTgsNyArOTgs
MTIgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQ7CiBjbGFzcyBXb3JrbGlzdDsKIH0KIAotI2RlZmlu
ZSBFTkFCTEVfREZHX0RPRVNfR0NfVkFMSURBVElPTiBBU1NFUlRfRU5BQkxFRAorI2lmIEVOQUJM
RShERkdfSklUKSAmJiBBU1NFUlRfRU5BQkxFRAorI2RlZmluZSBFTkFCTEVfREZHX0RPRVNfR0Nf
VkFMSURBVElPTiAxCisjZWxzZQorI2RlZmluZSBFTkFCTEVfREZHX0RPRVNfR0NfVkFMSURBVElP
TiAwCisjZW5kaWYKKwogY29uc3RleHByIGJvb2wgdmFsaWRhdGVERkdEb2VzR0MgPSBFTkFCTEVf
REZHX0RPRVNfR0NfVkFMSURBVElPTjsKIAogdHlwZWRlZiBIYXNoQ291bnRlZFNldDxKU0NlbGwq
PiBQcm90ZWN0Q291bnRTZXQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401043</attachid>
            <date>2020-06-04 10:54:30 -0700</date>
            <delta_ts>2020-06-04 12:27:26 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-212734.patch</filename>
            <type>text/plain</type>
            <size>13577</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjYyNTQ0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU5IEBA
CisyMDIwLTA2LTA0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZWR1Y2UgREZHRG9lc0dDQ2hlY2sgdG8gb25seSBzdG9yaW5nIGEgdWludDMyX3QuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTI3MzQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGNoYW5n
ZXMgdGhlIGVuY29kaW5nIG9mIERvZXNHQ0NoZWNrIHNvIHRoYXQgaXQgd2lsbCBmaXQgYmV0dGVy
IGluIGEKKyAgICAgICAgdWludDMyX3QuICBUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGJlbmVmaXRz
OgorICAgICAgICAxLiBzcGVlZCBpbXByb3ZlbWVudCBmb3IgZGVidWcgYnVpbGRzIGJlY2F1c2Ug
aXQgbm93IHRha2VzIGxlc3MgaW5zdHJ1Y3Rpb25zCisgICAgICAgICAgIChlc3BlY2lhbGx5IGlu
IEpJVHRlZCBjb2RlKSB0byBzdG9yZSB0byBEb2VzR0NDaGVjazo6bV92YWx1ZS4KKyAgICAgICAg
Mi4gZW5hYmxlcyB0aGlzIGNoZWNrIGZvciAzMi1iaXQgcGxhdGZvcm1zIGFzIHdlbGwuCisKKyAg
ICAgICAgRnVuIGZhY3Q6IHdlIGN1cnJlbnRseSBoYXZlIDM3MyBERkc6Ok5vZGVUeXBlcy4gIEhl
bmNlLCA5IGJpdHMgZm9yIG5vZGVPcC4KKworICAgICAgICBUaGUgbmV3IGVuY29kaW5nIHByb3Zp
ZGVzIDIxIGJpcyBmb3IgdGhlIG5vZGVJbmRleC4gIFRoaXMgZ2l2ZXMgdXMgdXAgdG8gMjA5NzE1
MgorICAgICAgICBub2RlIGluZGV4ZXMuICBJbiBteSBleHBlcmllbmNlLCBJJ3ZlIG5ldmVyIHNl
ZW4gbW9yZSB0aGFuIDMgZGVjaW1hbCBkaWdpdHMgZm9yCisgICAgICAgIHRoZSBub2RlSW5kZXgg
c28gZmFyLiAgSWYgd2UgZXZlciBmaW5kIHRoYXQgd2UgbmVlZCBtb3JlIHRoYW4gMjEgYml0cyBv
ZiBub2RlSW5kZXgsCisgICAgICAgIHdlIGhhdmUgMiBvcHRpb25zIHRvIGRlYWwgd2l0aCBpdDoK
KworICAgICAgICAxLiBXZSBjYW4ganVzdCBpZ25vcmUgdGhlIGhpZ2ggYml0cy4gIEFmdGVyIGFs
bCwgaXQgaXMgdGhlIG5vZGVPcCB0aGF0IGlzIHRoZQorICAgICAgICAgICBtb3N0IGludGVyZXN0
aW5nIHBpZWNlIG9mIGRhdGEgd2UgbmVlZCB0byBkZWJ1ZyBkb2VzR0MgaXNzdWVzLgorCisgICAg
ICAgIDIuIFdlIGNhbiBtYWtlIERvZXNHQ0NoZWNrIHVzZSB1aW50NjRfdCBmb3Igc3RvcmFnZS4g
IFRoaXMgZW5jb2RpbmcgYXV0b21hdGljYWxseQorICAgICAgICAgICBzY2FsZXMgdG8gNjQtYml0
LCB3aGlsZSBzdGlsbCBhbGxvd2luZyB0aGUgbW9yZSBlZmZpY2llbnQgZm9ybSBvZiBzdG9yaW5n
IGEKKyAgICAgICAgICAgMzItYml0IGltbWVkaWF0ZSB0byBiZSB1c2VkIGZvciB0aGUgY29tbW9u
IGNhc2VzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBtYWtlcyBFTkFCTEVfREZHX0RPRVNf
R0NfVkFMSURBVElPTiBkZXBlbmRlbnQgb24gRU5BQkxFKERGR19KSVQpLgorICAgICAgICBEb2Vz
R0MgaXMgb25seSByZWxldmFudCBmb3IgdGhlIERGRyBhbmQgRlRMIEpJVHMuCisKKyAgICAgICAg
KiBkZmcvREZHRG9lc0dDQ2hlY2suY3BwOgorICAgICAgICAoSlNDOjpERkc6OkRvZXNHQ0NoZWNr
Ojp2ZXJpZnlDYW5HQyk6CisgICAgICAgICogZGZnL0RGR0RvZXNHQ0NoZWNrLmg6CisgICAgICAg
IChKU0M6OkRGRzo6RG9lc0dDQ2hlY2s6OmVuY29kZSk6CisgICAgICAgIChKU0M6OkRGRzo6RG9l
c0dDQ2hlY2s6OmV4cGVjdERvZXNHQyBjb25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6RG9lc0dD
Q2hlY2s6OmlzU3BlY2lhbCBjb25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hlY2s6
OnNwZWNpYWwpOgorICAgICAgICAoSlNDOjpERkc6OkRvZXNHQ0NoZWNrOjpub2RlT3ApOgorICAg
ICAgICAoSlNDOjpERkc6OkRvZXNHQ0NoZWNrOjpub2RlSW5kZXgpOgorICAgICAgICAoSlNDOjpE
Rkc6OkRvZXNHQ0NoZWNrOjpleHBlY3REb2VzR0MpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OkRvZXNHQ0NoZWNrOjppc1NwZWNpYWwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OkRvZXNHQ0NoZWNrOjpzcGVjaWFsSW5kZXgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OkRvZXNHQ0NoZWNrOjpiaXRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUu
aDoKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6T1NS
RXhpdDo6Y29tcGlsZUV4aXQpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAg
ICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNw
cDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZU5vZGUpOgor
ICAgICAgICAqIGZ0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwOgorICAgICAgICAoSlNDOjpGVEw6
OmNvbXBpbGVTdHViKToKKyAgICAgICAgKiBoZWFwL0hlYXAuaDoKKwogMjAyMC0wNi0wNCAgVGlt
IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBXb3JrIGFyb3Vu
ZCBicm9rZW4gc3lzdGVtIHZlcnNpb24gbWFjcm8KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRG9lc0dDQ2hlY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRG9lc0dDQ2hlY2suY3BwCShyZXZpc2lvbiAyNjI1NDQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQ0NoZWNrLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiQ29kZUJs
b2NrLmgiCisjaW5jbHVkZSAiREZHTm9kZVR5cGUuaCIKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5j
bHVkZSAiVk1JbnNwZWN0b3IuaCIKICNpbmNsdWRlIDx3dGYvRGF0YUxvZy5oPgpAQCAtNDEsNiAr
NDIsMTAgQEAgZXh0ZXJuIGNvbnN0IGNoYXIqIGRmZ09wTmFtZXNbXTsKIAogdm9pZCBEb2VzR0ND
aGVjazo6dmVyaWZ5Q2FuR0MoVk0mIHZtKQogeworICAgIC8vIFdlIGRvIHRoaXMgY2hjayBoZXJl
IGp1c3Qgc28gd2UgZG9uJ3QgaGF2ZSB0byAjaW5jbHVkZSBERkdOb2RlVHlwZS5oCisgICAgLy8g
aW4gdGhlIGhlYWRlciBmaWxlLgorICAgIHN0YXRpY19hc3NlcnQobnVtYmVyT2ZOb2RlVHlwZXMg
PD0gKDEgPDwgbm9kZU9wQml0cykpOworCiAgICAgaWYgKCFleHBlY3REb2VzR0MoKSkgewogICAg
ICAgICBkYXRhTG9nKCJFcnJvcjogRG9lc0dDIGZhaWxlZCIpOwogICAgICAgICBpZiAoaXNTcGVj
aWFsKCkpIHsKQEAgLTUzLDcgKzU4LDYgQEAgdm9pZCBEb2VzR0NDaGVjazo6dmVyaWZ5Q2FuR0Mo
Vk0mIHZtKQogICAgICAgICAgICAgY2FzZSBTcGVjaWFsOjpGVExPU1JFeGl0OgogICAgICAgICAg
ICAgICAgIGRhdGFMb2coIiBAIEZUTCBvc3IgZXhpdCIpOwogICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgY2FzZSBTcGVjaWFsOjpSZXNlcnZlZFVudXNlZDoKICAgICAgICAgICAg
IGNhc2UgU3BlY2lhbDo6TnVtYmVyT2ZTcGVjaWFsczoKICAgICAgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgfQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdEb2VzR0NDaGVjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDQ2hlY2suaAkocmV2aXNpb24gMjYyNTQ0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0NDaGVjay5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zNiw3ICszNiw2IEBAIG5hbWVzcGFjZSBERkcgewogCiBzdHJ1Y3QgRG9lc0dDQ2hlY2sgewog
ICAgIGVudW0gY2xhc3MgU3BlY2lhbCB7Ci0gICAgICAgIFJlc2VydmVkVW51c2VkLCAvLyBzbyB0
aGF0IHNwZWNpYWxzIHN0YXJ0IHdpdGggMS4gaXNTcGVjaWFsKCkgcmVsaWVzIG9uIHRoaXMuCiAg
ICAgICAgIFVuaW5pdGlhbGl6ZWQsCiAgICAgICAgIERGR09TUkV4aXQsCiAgICAgICAgIEZUTE9T
UkV4aXQsCkBAIC00NywyMCArNDYsMTYgQEAgc3RydWN0IERvZXNHQ0NoZWNrIHsKICAgICAgICAg
OiBtX3ZhbHVlKGVuY29kZSh0cnVlLCBTcGVjaWFsOjpVbmluaXRpYWxpemVkKSkKICAgICB7IH0K
IAotICAgIHN0YXRpYyB1aW50NjRfdCBlbmNvZGUoYm9vbCBleHBlY3REb2VzR0MsIHVuc2lnbmVk
IG5vZGVJbmRleCwgdW5zaWduZWQgbm9kZU9wKQorICAgIHN0YXRpYyB1aW50MzJfdCBlbmNvZGUo
Ym9vbCBleHBlY3REb2VzR0MsIHVuc2lnbmVkIG5vZGVJbmRleCwgdW5zaWduZWQgbm9kZU9wKQog
ICAgIHsKLSAgICAgICAgdWludDY0X3QgcmVzdWx0ID0gYml0cyhub2RlSW5kZXgpIDw8IG5vZGVJ
bmRleFNoaWZ0OwotICAgICAgICByZXN1bHQgfD0gYml0cyhub2RlT3ApIDw8IG5vZGVPcFNoaWZ0
OwotICAgICAgICByZXN1bHQgfD0gYml0cyhleHBlY3REb2VzR0MpIDw8IGV4cGVjdERvZXNHQ1No
aWZ0OwotICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAvLyBXZSBrbm93IG5vZGVPcCBh
bHdheXMgZml0cyBiZWNhdXNlIG9mIHRoZSBzdGF0aWNfYXNzZXJ0IGluIERGR0RvZXNHQ0NoZWNr
LmNwcC4KKyAgICAgICAgQVNTRVJUKChub2RlSW5kZXggPDwgbm9kZUluZGV4U2hpZnQpID4+IG5v
ZGVJbmRleFNoaWZ0ID09IG5vZGVJbmRleCk7CisgICAgICAgIHJldHVybiBub2RlSW5kZXggPDwg
bm9kZUluZGV4U2hpZnQgfCBub2RlT3AgPDwgbm9kZU9wU2hpZnQgfCBiaXRzKGV4cGVjdERvZXNH
Qyk7CiAgICAgfQogCi0gICAgc3RhdGljIHVpbnQ2NF90IGVuY29kZShib29sIGV4cGVjdERvZXNH
QywgU3BlY2lhbCBzcGVjaWFsKQorICAgIHN0YXRpYyB1aW50MzJfdCBlbmNvZGUoYm9vbCBleHBl
Y3REb2VzR0MsIFNwZWNpYWwgc3BlY2lhbCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChiaXRzKHNw
ZWNpYWwpIDwgbnVtYmVyT2ZTcGVjaWFscyk7Ci0gICAgICAgIHVpbnQ2NF90IHJlc3VsdCA9IGJp
dHMoc3BlY2lhbCkgPDwgc3BlY2lhbFNoaWZ0OwotICAgICAgICByZXN1bHQgfD0gYml0cyhleHBl
Y3REb2VzR0MpIDw8IGV4cGVjdERvZXNHQ1NoaWZ0OwotICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgICByZXR1cm4gYml0cyhzcGVjaWFsKSA8PCBzcGVjaWFsU2hpZnQgfCBpc1NwZWNpYWxC
aXQgfCBiaXRzKGV4cGVjdERvZXNHQyk7CiAgICAgfQogCiAgICAgdm9pZCBzZXQoYm9vbCBleHBl
Y3REb2VzR0MsIHVuc2lnbmVkIG5vZGVJbmRleCwgdW5zaWduZWQgbm9kZU9wKQpAQCAtNzMsMzIg
KzY4LDM5IEBAIHN0cnVjdCBEb2VzR0NDaGVjayB7CiAgICAgICAgIG1fdmFsdWUgPSBlbmNvZGUo
ZXhwZWN0RG9lc0dDLCBzcGVjaWFsKTsKICAgICB9CiAKLSAgICBib29sIGV4cGVjdERvZXNHQygp
IHsgcmV0dXJuIG1fdmFsdWUgJiBleHBlY3REb2VzR0NNYXNrOyB9Ci0gICAgU3BlY2lhbCBzcGVj
aWFsKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U3BlY2lhbD4oc3BlY2lhbEluZGV4KCkpOyB9Ci0g
ICAgdW5zaWduZWQgbm9kZUluZGV4KCkgeyByZXR1cm4gbV92YWx1ZSA+PiBub2RlSW5kZXhTaGlm
dDsgfQotICAgIHVuc2lnbmVkIG5vZGVPcCgpIHsgcmV0dXJuIChtX3ZhbHVlID4+IG5vZGVPcFNo
aWZ0KSAmIG5vZGVPcE1hc2s7IH0KKyAgICBib29sIGV4cGVjdERvZXNHQygpIGNvbnN0IHsgcmV0
dXJuIG1fdmFsdWUgJiBleHBlY3REb2VzR0NCaXQ7IH0KKyAgICBib29sIGlzU3BlY2lhbCgpIGNv
bnN0IHsgcmV0dXJuIG1fdmFsdWUgJiBpc1NwZWNpYWxCaXQ7IH0KKworICAgIFNwZWNpYWwgc3Bl
Y2lhbCgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFNwZWNpYWw+KG1fdmFsdWUgPj4gc3BlY2lhbFNo
aWZ0KTsgfQogCi0gICAgYm9vbCBpc1NwZWNpYWwoKSB7IHJldHVybiBzcGVjaWFsSW5kZXgoKTsg
fQorICAgIHVuc2lnbmVkIG5vZGVPcCgpIHsgcmV0dXJuIChtX3ZhbHVlID4+IG5vZGVPcFNoaWZ0
KSAmIG5vZGVPcE1hc2s7IH0KKyAgICB1bnNpZ25lZCBub2RlSW5kZXgoKSB7IHJldHVybiBtX3Zh
bHVlID4+IG5vZGVJbmRleFNoaWZ0OyB9CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHZl
cmlmeUNhbkdDKFZNJik7CiAKIHByaXZhdGU6Ci0gICAgdW5zaWduZWQgc3BlY2lhbEluZGV4KCkg
eyByZXR1cm4gKG1fdmFsdWUgPj4gc3BlY2lhbFNoaWZ0KSAmIHNwZWNpYWxNYXNrOyB9CisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIHVpbnQzMl90IGJpdHMoVCB2YWx1ZSkgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHZhbHVlKTsgfQorCisgICAgLy8gVGhlIHZhbHVlIGNh
bm5vdCBiZSBib3RoIGEgU3BlY2lhbCBhbmQgY29udGFpbiBub2RlIGluZm9ybWF0aW9uIGF0IHRo
ZQorICAgIC8vIHRpbWUuIEhlbmNlLCB0aGUgMiBjYW4gaGF2ZSBzZXBhcmF0ZSBlbmNvZGluZ3Mu
IFRoZSBpc1NwZWNpYWwgYml0CisgICAgLy8gZGV0ZXJtaW5lcyB3aGljaCBlbmNvZGluZyBpcyBp
biB1c2UuCiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgdWludDY0X3QgYml0cyhU
IHZhbHVlKSB7IHJldHVybiBzdGF0aWNfY2FzdDx1aW50NjRfdD4odmFsdWUpOyB9CisgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBleHBlY3REb2VzR0NCaXQgPSAxIDw8IDA7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBpc1NwZWNpYWxCaXQgPSAxIDw8IDE7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBjb21tb25CaXRzID0gMjsKKyAgICBzdGF0aWNfYXNzZXJ0KChl
eHBlY3REb2VzR0NCaXQgfCBpc1NwZWNpYWxCaXQpID09ICgxIDw8IGNvbW1vbkJpdHMpIC0gMSk7
CiAKLSAgICBzdGF0aWMgY29uc3RleHByIHVpbnQ2NF90IG51bWJlck9mU3BlY2lhbHMgPSBzdGF0
aWNfY2FzdDx1aW50NjRfdD4oU3BlY2lhbDo6TnVtYmVyT2ZTcGVjaWFscyk7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBzcGVjaWFsU2hpZnQgPSBjb21tb25CaXRzOwogCi0gICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBleHBlY3REb2VzR0NTaGlmdCA9IDA7Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBzcGVjaWFsU2hpZnQgPSAxOwotICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgbm9kZU9wU2hpZnQgPSAxNjsKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIG5vZGVJbmRleFNoaWZ0ID0gMzI7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBu
b2RlT3BCaXRzID0gOTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG5vZGVPcE1hc2sg
PSAoMSA8PCBub2RlT3BCaXRzKSAtIDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBu
b2RlT3BTaGlmdCA9IGNvbW1vbkJpdHM7CiAKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IGV4cGVjdERvZXNHQ01hc2sgPSAweDE7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBz
cGVjaWFsTWFzayA9IDB4N2ZmZjsKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG5vZGVP
cE1hc2sgPSAweGZmZmY7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBub2RlSW5kZXhC
aXRzID0gMjE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBub2RlSW5kZXhTaGlmdCA9
IG5vZGVPcFNoaWZ0ICsgbm9kZU9wQml0czsKKyAgICBzdGF0aWNfYXNzZXJ0KG5vZGVJbmRleFNo
aWZ0ICsgbm9kZUluZGV4Qml0cyA9PSAzMik7CiAKLSAgICB1aW50NjRfdCBtX3ZhbHVlIHsgMCB9
OworICAgIHVpbnQzMl90IG1fdmFsdWUgeyAwIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBERkcK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgJKHJldmlzaW9uIDI2
MjU0NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTU1Miw2ICs1NTIsMTAgQEAgZW51bSBOb2RlVHlwZSB7CiAgICAgTGFzdE5v
ZGVUeXBlCiB9OwogCisjZGVmaW5lIERGR19PUF9DT1VOVChvcGNvZGUsIGZsYWdzKSArIDEKK2Nv
bnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZk5vZGVUeXBlcyA9IEZPUl9FQUNIX0RGR19PUChERkdf
T1BfQ09VTlQpOworI3VuZGVmIERGR19PUF9DT1VOVAorCiAvLyBTcGVjaWZpZXMgdGhlIGRlZmF1
bHQgZmxhZ3MgZm9yIGVhY2ggbm9kZS4KIGlubGluZSBOb2RlRmxhZ3MgZGVmYXVsdEZsYWdzKE5v
ZGVUeXBlIG9wKQogewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQu
Y3BwCShyZXZpc2lvbiAyNjI1NDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09T
UkV4aXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NjAsNyArNTYwLDcgQEAgdm9pZCBPU1JFeGl0
Ojpjb21waWxlRXhpdChDQ2FsbEhlbHBlcnMmIAogICAgICAgICAvLyB0byBzZXQgaXQgaGVyZSBi
ZWNhdXNlIGNvbXBpbGVPU1JFeGl0KCkgaXMgb25seSBjYWxsZWQgb24gdGhlIGZpcnN0IHRpbWUK
ICAgICAgICAgLy8gd2UgZXhpdCBmcm9tIHRoaXMgc2l0ZSwgYnV0IGFsbCBzdWJzZXF1ZW50IGV4
aXRzIHdpbGwgdGFrZSB0aGlzIGNvbXBpbGVkCiAgICAgICAgIC8vIHJhbXAgd2l0aG91dCBjYWxs
aW5nIGNvbXBpbGVPU1JFeGl0KCkgZmlyc3QuCi0gICAgICAgIGppdC5zdG9yZTY0KENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbTY0KERvZXNHQ0NoZWNrOjplbmNvZGUodHJ1ZSwgRG9lc0dDQ2hlY2s6
OlNwZWNpYWw6OkRGR09TUkV4aXQpKSwgdm0uaGVhcC5hZGRyZXNzT2ZEb2VzR0MoKSk7CisgICAg
ICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKERvZXNHQ0NoZWNrOjpl
bmNvZGUodHJ1ZSwgRG9lc0dDQ2hlY2s6OlNwZWNpYWw6OkRGR09TUkV4aXQpKSwgdm0uaGVhcC5h
ZGRyZXNzT2ZEb2VzR0MoKSk7CiAgICAgfQogI2VuZGlmCiAgICAgCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHJl
dmlzaW9uIDI2MjU0NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4MDYsNiArMTgwNiwxMSBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiB7CiAgICAgTm9kZVR5cGUgb3Ag
PSBub2RlLT5vcCgpOwogCisgICAgaWYgKHZhbGlkYXRlREZHRG9lc0dDKSB7CisgICAgICAgIGJv
b2wgZXhwZWN0RG9lc0dDID0gZG9lc0dDKG1faml0LmdyYXBoKCksIG5vZGUpOworICAgICAgICBt
X2ppdC5zdG9yZTMyKFRydXN0ZWRJbW0zMihEb2VzR0NDaGVjazo6ZW5jb2RlKGV4cGVjdERvZXNH
Qywgbm9kZS0+aW5kZXgoKSwgbm9kZS0+b3AoKSkpLCB2bSgpLmhlYXAuYWRkcmVzc09mRG9lc0dD
KCkpOworICAgIH0KKwogI2lmIEVOQUJMRShERkdfUkVHSVNURVJfQUxMT0NBVElPTl9WQUxJREFU
SU9OKQogICAgIG1faml0LmNsZWFyUmVnaXN0ZXJBbGxvY2F0aW9uT2Zmc2V0cygpOwogI2VuZGlm
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHAJKHJldmlzaW9uIDI2MjU0NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxMzgsNyArMjEzOCw3
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKIAogICAgIGlmICh2
YWxpZGF0ZURGR0RvZXNHQykgewogICAgICAgICBib29sIGV4cGVjdERvZXNHQyA9IGRvZXNHQyht
X2ppdC5ncmFwaCgpLCBub2RlKTsKLSAgICAgICAgbV9qaXQuc3RvcmU2NChUcnVzdGVkSW1tNjQo
RG9lc0dDQ2hlY2s6OmVuY29kZShleHBlY3REb2VzR0MsIG5vZGUtPmluZGV4KCksIG5vZGUtPm9w
KCkpKSwgdm0oKS5oZWFwLmFkZHJlc3NPZkRvZXNHQygpKTsKKyAgICAgICAgbV9qaXQuc3RvcmUz
MihUcnVzdGVkSW1tMzIoRG9lc0dDQ2hlY2s6OmVuY29kZShleHBlY3REb2VzR0MsIG5vZGUtPmlu
ZGV4KCksIG5vZGUtPm9wKCkpKSwgdm0oKS5oZWFwLmFkZHJlc3NPZkRvZXNHQygpKTsKICAgICB9
CiAKICNpZiBFTkFCTEUoREZHX1JFR0lTVEVSX0FMTE9DQVRJT05fVkFMSURBVElPTikKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJKHJldmlz
aW9uIDI2MjU0NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0Iz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzA0LDcgKzcwNCw3IEBAIHByaXZhdGU6CiAKICAgICAg
ICAgaWYgKHZhbGlkYXRlREZHRG9lc0dDKSB7CiAgICAgICAgICAgICBib29sIGV4cGVjdERvZXNH
QyA9IGRvZXNHQyhtX2dyYXBoLCBtX25vZGUpOwotICAgICAgICAgICAgbV9vdXQuc3RvcmUobV9v
dXQuY29uc3RJbnQ2NChEb2VzR0NDaGVjazo6ZW5jb2RlKGV4cGVjdERvZXNHQywgbV9ub2RlLT5p
bmRleCgpLCBtX25vZGUtPm9wKCkpKSwgbV9vdXQuYWJzb2x1dGUodm0oKS5oZWFwLmFkZHJlc3NP
ZkRvZXNHQygpKSk7CisgICAgICAgICAgICBtX291dC5zdG9yZShtX291dC5jb25zdEludDMyKERv
ZXNHQ0NoZWNrOjplbmNvZGUoZXhwZWN0RG9lc0dDLCBtX25vZGUtPmluZGV4KCksIG1fbm9kZS0+
b3AoKSkpLCBtX291dC5hYnNvbHV0ZSh2bSgpLmhlYXAuYWRkcmVzc09mRG9lc0dDKCkpKTsKICAg
ICAgICAgfQogCiAgICAgICAgIHN3aXRjaCAobV9ub2RlLT5vcCgpKSB7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCShyZXZpc2lv
biAyNjI1NDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxNSw3ICsyMTUsNyBAQCBzdGF0aWMgdm9pZCBjb21w
aWxlU3R1YihWTSYgdm0sIHVuc2lnbmVkCiAgICAgICAgIC8vIHRvIHNldCBpdCBoZXJlIGJlY2F1
c2UgY29tcGlsZUZUTE9TUkV4aXQoKSBpcyBvbmx5IGNhbGxlZCBvbiB0aGUgZmlyc3QgdGltZQog
ICAgICAgICAvLyB3ZSBleGl0IGZyb20gdGhpcyBzaXRlLCBidXQgYWxsIHN1YnNlcXVlbnQgZXhp
dHMgd2lsbCB0YWtlIHRoaXMgY29tcGlsZWQKICAgICAgICAgLy8gcmFtcCB3aXRob3V0IGNhbGxp
bmcgY29tcGlsZUZUTE9TUkV4aXQoKSBmaXJzdC4KLSAgICAgICAgaml0LnN0b3JlNjQoQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tNjQoRG9lc0dDQ2hlY2s6OmVuY29kZSh0cnVlLCBEb2VzR0NDaGVj
azo6U3BlY2lhbDo6RlRMT1NSRXhpdCkpLCB2bS5oZWFwLmFkZHJlc3NPZkRvZXNHQygpKTsKKyAg
ICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoRG9lc0dDQ2hlY2s6
OmVuY29kZSh0cnVlLCBEb2VzR0NDaGVjazo6U3BlY2lhbDo6RlRMT1NSRXhpdCkpLCB2bS5oZWFw
LmFkZHJlc3NPZkRvZXNHQygpKTsKICAgICB9CiAKICAgICAvLyBCcmluZyB0aGUgc3RhY2sgYmFj
ayBpbnRvIGEgc2FuZSBmb3JtIGFuZCBhc3NlcnQgdGhhdCBpdCdzIHNhbmUuCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcC5oCShyZXZpc2lvbiAyNjI1NDQpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTk4LDcgKzk4LDEyIEBAIGNs
YXNzIFNwZWN1bGF0aXZlSklUOwogY2xhc3MgV29ya2xpc3Q7CiB9CiAKLSNkZWZpbmUgRU5BQkxF
X0RGR19ET0VTX0dDX1ZBTElEQVRJT04gQVNTRVJUX0VOQUJMRUQKKyNpZiBFTkFCTEUoREZHX0pJ
VCkgJiYgQVNTRVJUX0VOQUJMRUQKKyNkZWZpbmUgRU5BQkxFX0RGR19ET0VTX0dDX1ZBTElEQVRJ
T04gMQorI2Vsc2UKKyNkZWZpbmUgRU5BQkxFX0RGR19ET0VTX0dDX1ZBTElEQVRJT04gMAorI2Vu
ZGlmCisKIGNvbnN0ZXhwciBib29sIHZhbGlkYXRlREZHRG9lc0dDID0gRU5BQkxFX0RGR19ET0VT
X0dDX1ZBTElEQVRJT047CiAKIHR5cGVkZWYgSGFzaENvdW50ZWRTZXQ8SlNDZWxsKj4gUHJvdGVj
dENvdW50U2V0Owo=
</data>
<flag name="review"
          id="416432"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>