<?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>226937</bug_id>
          
          <creation_ts>2021-06-11 12:07:27 -0700</creation_ts>
          <short_desc>Add Air opcode sub32/64(Reg, Imm, Reg) form for ARM64 and select this instruction in Air</short_desc>
          <delta_ts>2021-06-16 12:14:35 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>227060</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yijia Huang">yijia_huang</reporter>
          <assigned_to name="Yijia Huang">yijia_huang</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1769019</commentid>
    <comment_count>0</comment_count>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-06-11 12:07:27 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769299</commentid>
    <comment_count>1</comment_count>
      <attachid>431287</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-06-13 14:28:50 -0700</bug_when>
    <thetext>Created attachment 431287
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769300</commentid>
    <comment_count>2</comment_count>
      <attachid>431288</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-06-13 14:36:08 -0700</bug_when>
    <thetext>Created attachment 431288
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769319</commentid>
    <comment_count>3</comment_count>
      <attachid>431299</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-06-13 20:42:26 -0700</bug_when>
    <thetext>Created attachment 431299
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769320</commentid>
    <comment_count>4</comment_count>
      <attachid>431300</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-06-13 20:47:32 -0700</bug_when>
    <thetext>Created attachment 431300
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769397</commentid>
    <comment_count>5</comment_count>
      <attachid>431300</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-06-14 08:26:05 -0700</bug_when>
    <thetext>Comment on attachment 431300
Patch

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

R- but only because part of your change removes something that we don&apos;t want to remove.

&gt; Source/JavaScriptCore/b3/B3ReduceStrength.cpp:-636
&gt; -                // Turn this: Sub(value, constant)
&gt; -                // Into this: Add(value, -constant)
&gt; -                if (Value* negatedConstant = m_value-&gt;child(1)-&gt;negConstant(m_proc)) {
&gt; -                    m_insertionSet.insertValue(m_index, negatedConstant);
&gt; -                    replaceWithNew&lt;Value&gt;(
&gt; -                        Add, m_value-&gt;origin(), m_value-&gt;child(0), negatedConstant);
&gt; -                    break;
&gt; -                }
&gt; -                

I don&apos;t think you want to remove this.

I get that this strength reduction makes it harder to test your change.  But, this strength reduction is necessary so that other things work:

- It&apos;s important for strength reduction to bring programs into a canonical form.  That is, to reduce the likelihood that two programs that do the same thing have different IR.  Canonicalization makes it easier to then remove redundant code.  For example: say that the program first did &quot;Add(x, -42)&quot; and then did &quot;Sub(x, 42)&quot;.  So, the two pieces of code do not seem redundant, so common subexpression elimination (CSE) won&apos;t remove the second one.  This canonicalization rule that you removed makes it so they will both say &quot;Add(x, -42)&quot;, so then CSE can remove the second one.

– Address expressions on both x86 and arm64 are matched by looking for &quot;Add(something, constant)&quot;.  So, it&apos;s important for other parts of the instruction selector to see &quot;Add(something, constant)&quot; rather than &quot;Sub(something, constant)&quot;.

I would just revert this part of your change.  If you want to make sure you&apos;re testing the instruction you added, you can write a testb3 test that skips reduceStrength.  I&apos;m not sure that&apos;s worth it, though.  I would just land your change with this part reverted so you can move onto more interesting things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769404</commentid>
    <comment_count>6</comment_count>
      <attachid>431326</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-06-14 08:40:53 -0700</bug_when>
    <thetext>Created attachment 431326
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769407</commentid>
    <comment_count>7</comment_count>
      <attachid>431328</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-06-14 08:44:11 -0700</bug_when>
    <thetext>Created attachment 431328
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769442</commentid>
    <comment_count>8</comment_count>
      <attachid>431328</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-06-14 10:13:11 -0700</bug_when>
    <thetext>Comment on attachment 431328
Patch

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

&gt; Source/JavaScriptCore/b3/testb3_2.cpp:2095
&gt; +void testSubArgs32ZeroExtend(int a, int b)

I think we should adds tests for imm sub forms you added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769444</commentid>
    <comment_count>9</comment_count>
      <attachid>431328</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-06-14 10:14:13 -0700</bug_when>
    <thetext>Comment on attachment 431328
Patch

Everything else looks really good. Your testmasm tests are good</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769445</commentid>
    <comment_count>10</comment_count>
      <attachid>431328</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-06-14 10:18:44 -0700</bug_when>
    <thetext>Comment on attachment 431328
Patch

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

Reinstating r+

&gt;&gt; Source/JavaScriptCore/b3/testb3_2.cpp:2095
&gt;&gt; +void testSubArgs32ZeroExtend(int a, int b)
&gt; 
&gt; I think we should adds tests for imm sub forms you added.

Yijia informed me we already test this in testSubArgImm pre-existing test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769447</commentid>
    <comment_count>11</comment_count>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-06-14 10:21:33 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #9)
&gt; Comment on attachment 431328 [details]
&gt; Patch
&gt; 
&gt; Everything else looks really good. Your testmasm tests are good

Actually, both 64-bit void testSubArgImm(int64_t a, int64_t b) and 32-bit void testSubArgImm32(int a, int b) are pre-existing in the testb3_2.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769504</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-14 12:44:08 -0700</bug_when>
    <thetext>Committed r278846 (238792@main): &lt;https://commits.webkit.org/238792@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 431328.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770126</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-06-16 02:37:21 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 227060</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770292</commentid>
    <comment_count>14</comment_count>
      <attachid>431572</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-06-16 11:25:20 -0700</bug_when>
    <thetext>Created attachment 431572
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770296</commentid>
    <comment_count>15</comment_count>
      <attachid>431572</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-06-16 11:29:07 -0700</bug_when>
    <thetext>Comment on attachment 431572
Patch

rs=me for relanding this patch since it was not the cause of the regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770331</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-16 12:14:33 -0700</bug_when>
    <thetext>Committed r278950 (238879@main): &lt;https://commits.webkit.org/238879@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 431572.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431287</attachid>
            <date>2021-06-13 14:28:50 -0700</date>
            <delta_ts>2021-06-13 14:36:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226937-20210613162849.patch</filename>
            <type>text/plain</type>
            <size>15178</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4ODE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NWQxODU3NjdkNGZmNjY1NzAxZThkYTM3OWUzNDAyMTMwNTNkMjhkLi45NmIyODQxMWRlOGNjMzhm
NTVmNGNmMjc5NDljY2U0MmI0NGNhMWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2OSBAQAorMjAyMS0wNi0xMyAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIEFpciBvcGNvZGUgc3ViMzIvNjQoUmVnLCBJbW0sIFJlZykgZm9y
bSBmb3IgQVJNNjQgYW5kIHNlbGVjdCB0aGlzIGluc3RydWN0aW9uIGluIEFpcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2OTM3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorCVByZXZpb3VzbHksIEFpciBh
cm02NCBzdWIzMi82NCB1dGlsaXplIHN1YihJbW0sIFRtcCkgYXQgb3B0bGV2ZWwgPSAwIGFuZCAK
KyAgICAgICAgYWRkKFRtcCwgLUltbSkgYXQgb3B0bGV2ZWwgPiAwIHRvIHBlcmZvcm0gYW5kIG9w
dGltaXplIHN1YihUbXAsIEltbSwgVG1wKS4KKyAgICAgICAgVGhlIGlzc3VlIHdpdGggdGhpcyBp
cyB0aGF0IHdlIHdlcmUgbm90IGVsaWRpbmcgcmVkdW5kYW50IG9wZXJhdGlvbnMuCisKKyAgICAg
ICAgRm9yIGV4YW1wbGU6CisgICAgICAgIC8vIEIzIElSCisgICAgICAgIEAwID0gVHJ1bmMoQXJn
dW1lbnRSZWcoMCkpCisgICAgICAgIEAxID0gQ29uc3QKKyAgICAgICAgQDIgPSBTdWIoQDAsIEAx
KQorICAgICAgICBAMyA9IFJldHVybihAMikKKworICAgICAgICAvLyBPbGQgb3B0aW1pemVkIEFp
ciBJUgorICAgICAgICAvLyBPcHRMZXZlbCA9IDAKKyAgICAgICAgTW92ZSAgICAleDAsICV0bXAx
LCBAMAorICAgICAgICBNb3ZlICRDb25zdCwgJXRtcDIsIEAxCisgICAgICAgIE1vdmUgICV0bXAx
LCAldG1wMCwgQDIgLy8gUmVkdW5kYW50CisgICAgICAgIFN1YiAgJENvbnN0LCAldG1wMCwgQDIK
KyAgICAgICAgTW92ZSAgJXRtcDAsICAgJXgwLCBAMworICAgICAgICBSZXQzMiAgICV4MCwgICAg
ICAgIEAzCisKKyAgICAgICAgLy8gT3B0TGV2ZWwgPSAyCisgICAgICAgIE1vdmUgJC1Db25zdCwg
JXgxLCAgICAgIEAyIC8vIFJlZHVuZGFudAorICAgICAgICBBZGQgICAgICAleDAsICV4MSwgJXgw
LCBAMgorICAgICAgICBSZXQgICAgICAleDAsICAgICAgICAgICBAMworICAgICAgICAKKyAgICAg
ICAgVG8gcmVtb3ZlIHRob3NlIHJlZHVuZGFudCBpbnN0cnVjdGlvbnMsIEFpciBhcm02NCBzdWIz
Mi82NCBvcGNvZGUgc2hvdWxkIAorICAgICAgICBpbmRpY2F0ZSBhIG5ldyBmb3JtIHN1YihUbXAs
IEltbSwgVG1wKS4KKyAgICAgICAgCisgICAgICAgIC8vIE5ldyBvcHRpbWl6ZWQgQWlyIElSCisg
ICAgICAgIC8vIE9wdExldmVsID0gMAorICAgICAgICBNb3ZlICAgICV4MCwgICV0bXAxLCAgICAg
ICAgQDAKKyAgICAgICAgTW92ZSAkQ29uc3QsICAldG1wMiwgICAgICAgIEAxCisgICAgICAgIFN1
YiAgICV0bXAxLCAkQ29uc3QsICV0bXAwLCBAMgorICAgICAgICBNb3ZlICAldG1wMCwgICAgJXgw
LCAgICAgICAgQDMKKyAgICAgICAgUmV0MzIgICAleDAsICAgICAgICAgICAgICAgIEAzCisgICAg
ICAgIAorICAgICAgICAvLyBPcHRMZXZlbCA9IDIKKwlTdWIgJXgwLCAkQ29uc3QsICV4MCwgQDIK
KwlSZXQgJXgwLCAgICAgICAgICAgICAgQDMKKworICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlckFSTTY0Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN1YjMy
KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3ViNjQpOgorICAgICAgICAq
IGFzc2VtYmxlci90ZXN0bWFzbS5jcHA6CisgICAgICAgIChKU0M6OnRlc3RTdWIzMkFyZ3MpOgor
ICAgICAgICAoSlNDOjp0ZXN0U3ViMzJJbW0pOgorICAgICAgICAoSlNDOjp0ZXN0U3ViMzJBcmdJ
bW0pOgorICAgICAgICAoSlNDOjp0ZXN0U3ViNjRJbW0zMik6CisgICAgICAgIChKU0M6OnRlc3RT
dWI2NEFyZ0ltbTMyKToKKyAgICAgICAgKEpTQzo6dGVzdFN1YjY0SW1tNjQpOgorICAgICAgICAo
SlNDOjp0ZXN0U3ViNjRBcmdJbW02NCk6CisgICAgICAgICogYjMvQjNSZWR1Y2VTdHJlbmd0aC5j
cHA6CisgICAgICAgICogYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzOgorICAgICAgICAqIGIzL3Rl
c3RiMy5oOgorICAgICAgICAqIGIzL3Rlc3RiM18yLmNwcDoKKyAgICAgICAgKHRlc3RTdWJBcmdz
MzJaZXJvRXh0ZW5kKToKKyAgICAgICAgKiBiMy90ZXN0YjNfMy5jcHA6CisgICAgICAgIChhZGRB
cmdUZXN0cyk6CisKIDIwMjEtMDYtMTIgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0Bn
bm9tZS5vcmc+CiAKICAgICAgICAgLVdub25udWxsIHdhcm5pbmcgaW4gSklUQ2FsbC5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJB
Uk02NC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TTY0LmgKaW5kZXggNTQ0NjRmMDQwOGM4YWY1NGNhZWViYzM0NDAyYmUzMWRiNmE3NWJjZi4uZjg2
YWVjMWM1NDAwNmVlZDFkNWM1ZGQzZDU2ZDhkMDAzZmY3NjEyYiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKQEAgLTg5
MywxNyArODkzLDI0IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc3ViMzIoVHJ1c3RlZEltbTMyIGlt
bSwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgaWYgKGlzVUludDEyKGltbS5tX3Zh
bHVlKSkgewotICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3ViPDMyPihkZXN0LCBkZXN0LCBVSW50
MTIoaW1tLm1fdmFsdWUpKTsKKyAgICAgICAgc3ViMzIoZGVzdCwgaW1tLCBkZXN0KTsKKyAgICB9
CisKKyAgICB2b2lkIHN1YjMyKFJlZ2lzdGVySUQgbGVmdCwgVHJ1c3RlZEltbTMyIGltbSwgUmVn
aXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgaW50cHRyX3QgaW1tZWRpYXRlID0gaW1tLm1f
dmFsdWU7CisKKyAgICAgICAgaWYgKGlzVUludDEyKGltbWVkaWF0ZSkpIHsKKyAgICAgICAgICAg
IG1fYXNzZW1ibGVyLnN1YjwzMj4oZGVzdCwgbGVmdCwgVUludDEyKGltbWVkaWF0ZSkpOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGlmIChpc1VJbnQxMigtaW1tLm1f
dmFsdWUpKSB7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGQ8MzI+KGRlc3QsIGRlc3QsIFVJ
bnQxMigtaW1tLm1fdmFsdWUpKTsKKyAgICAgICAgaWYgKGlzVUludDEyKC1pbW1lZGlhdGUpKSB7
CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGQ8MzI+KGRlc3QsIGxlZnQsIFVJbnQxMigtaW1t
ZWRpYXRlKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICBtb3Zl
KGltbSwgZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpKTsKLSAgICAg
ICAgbV9hc3NlbWJsZXIuc3ViPDMyPihkZXN0LCBkZXN0LCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAg
ICAgICAgbV9hc3NlbWJsZXIuc3ViPDMyPihkZXN0LCBsZWZ0LCBkYXRhVGVtcFJlZ2lzdGVyKTsK
ICAgICB9CiAKICAgICB2b2lkIHN1YjMyKFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVz
cykKQEAgLTk1NCw0MSArOTYxLDUzIEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIuc3Vi
PDY0PihkZXN0LCBkZXN0LCBzcmMpOwogICAgIH0KIAotICAgIHZvaWQgc3ViNjQoUmVnaXN0ZXJJ
RCBhLCBSZWdpc3RlcklEIGIsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIHN1YjY0KFJlZ2lz
dGVySUQgbGVmdCwgUmVnaXN0ZXJJRCByaWdodCwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAg
ICAgICAgbV9hc3NlbWJsZXIuc3ViPDY0PihkZXN0LCBhLCBiKTsKKyAgICAgICAgbV9hc3NlbWJs
ZXIuc3ViPDY0PihkZXN0LCBsZWZ0LCByaWdodCk7CiAgICAgfQotICAgIAorCiAgICAgdm9pZCBz
dWI2NChUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBp
ZiAoaXNVSW50MTIoaW1tLm1fdmFsdWUpKSB7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5zdWI8
NjQ+KGRlc3QsIGRlc3QsIFVJbnQxMihpbW0ubV92YWx1ZSkpOworICAgICAgICBzdWI2NChkZXN0
LCBpbW0sIGRlc3QpOworICAgIH0KKworICAgIHZvaWQgc3ViNjQoUmVnaXN0ZXJJRCBsZWZ0LCBU
cnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBpbnRwdHJf
dCBpbW1lZGlhdGUgPSBpbW0ubV92YWx1ZTsKKworICAgICAgICBpZiAoaXNVSW50MTIoaW1tZWRp
YXRlKSkgeworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3ViPDY0PihkZXN0LCBsZWZ0LCBVSW50
MTIoaW1tZWRpYXRlKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAg
aWYgKGlzVUludDEyKC1pbW0ubV92YWx1ZSkpIHsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFk
ZDw2ND4oZGVzdCwgZGVzdCwgVUludDEyKC1pbW0ubV92YWx1ZSkpOworICAgICAgICBpZiAoaXNV
SW50MTIoLWltbWVkaWF0ZSkpIHsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZDw2ND4oZGVz
dCwgbGVmdCwgVUludDEyKC1pbW1lZGlhdGUpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogCiAgICAgICAgIHNpZ25FeHRlbmQzMlRvUHRyKGltbSwgZ2V0Q2FjaGVkRGF0YVRlbXBS
ZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpKTsKLSAgICAgICAgbV9hc3NlbWJsZXIuc3ViPDY0Pihk
ZXN0LCBkZXN0LCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuc3ViPDY0
PihkZXN0LCBsZWZ0LCBkYXRhVGVtcFJlZ2lzdGVyKTsKICAgICB9Ci0gICAgCisKICAgICB2b2lk
IHN1YjY0KFRydXN0ZWRJbW02NCBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAg
IHN1YjY0KGRlc3QsIGltbSwgZGVzdCk7CisgICAgfQorCisgICAgdm9pZCBzdWI2NChSZWdpc3Rl
cklEIGxlZnQsIFRydXN0ZWRJbW02NCBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAg
ICAgIGludHB0cl90IGltbWVkaWF0ZSA9IGltbS5tX3ZhbHVlOwogCiAgICAgICAgIGlmIChpc1VJ
bnQxMihpbW1lZGlhdGUpKSB7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRlc3Qs
IGRlc3QsIFVJbnQxMihzdGF0aWNfY2FzdDxpbnQzMl90PihpbW1lZGlhdGUpKSk7CisgICAgICAg
ICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRlc3QsIGxlZnQsIFVJbnQxMihzdGF0aWNfY2FzdDxp
bnQzMl90PihpbW1lZGlhdGUpKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAg
ICAgICAgaWYgKGlzVUludDEyKC1pbW1lZGlhdGUpKSB7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxl
ci5hZGQ8NjQ+KGRlc3QsIGRlc3QsIFVJbnQxMihzdGF0aWNfY2FzdDxpbnQzMl90PigtaW1tZWRp
YXRlKSkpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkPDY0PihkZXN0LCBsZWZ0LCBVSW50
MTIoc3RhdGljX2Nhc3Q8aW50MzJfdD4oLWltbWVkaWF0ZSkpKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogCiAgICAgICAgIG1vdmUoaW1tLCBnZXRDYWNoZWREYXRhVGVtcFJlZ2lz
dGVySURBbmRJbnZhbGlkYXRlKCkpOwotICAgICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRlc3Qs
IGRlc3QsIGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRl
c3QsIGxlZnQsIGRhdGFUZW1wUmVnaXN0ZXIpOwogICAgIH0KIAogICAgIHZvaWQgdXJzaGlmdDMy
KFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIHNoaWZ0QW1vdW50LCBSZWdpc3RlcklEIGRlc3Qp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCmluZGV4IDE3
OTk4NzE0ZmQyMWMzODljZmQ0MGQ0ZmE0MjYzZmY5NDlhMWJiODcuLmJhNTEwMmEyYmI5OTlhZDU3
NDhmNjg0NzVkNmM4YzQ1ZDUwYTIxYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvdGVzdG1hc20uY3BwCkBAIC05MjAsNiArOTIwLDEyOCBAQCB2b2lkIHRlc3RNdWwzMlNp
Z25FeHRlbmQoKQogICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGxvbmcgaW50PihtdWwsIHZh
bHVlLCB2YWx1ZTIpLCAoKGxvbmcgaW50KSB2YWx1ZSkgKiAoKGxvbmcgaW50KSB2YWx1ZTIpKTsK
ICAgICB9CiB9CisKK3ZvaWQgdGVzdFN1YjMyQXJncygpCit7CisgICAgZm9yIChhdXRvIHZhbHVl
IDogaW50MzJPcGVyYW5kcygpKSB7CisgICAgICAgIGF1dG8gc3ViID0gY29tcGlsZShbPV0gKEND
YWxsSGVscGVycyYgaml0KSB7CisgICAgICAgICAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZShqaXQp
OworCisgICAgICAgICAgICBqaXQuc3ViMzIoR1BSSW5mbzo6YXJndW1lbnRHUFIwLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjEsIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKworICAgICAgICAgICAg
ZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKKyAgICAgICAgICAgIGppdC5yZXQoKTsKKyAgICAg
ICAgfSk7CisKKyAgICAgICAgZm9yIChhdXRvIHZhbHVlMiA6IGludDMyT3BlcmFuZHMoKSkKKyAg
ICAgICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50MzJfdD4oc3ViLCB2YWx1ZSwgdmFsdWUyKSwg
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KHZhbHVlIC0gdmFsdWUyKSk7CisgICAgfQorfQorCit2b2lk
IHRlc3RTdWIzMkltbSgpCit7CisgICAgZm9yIChhdXRvIGltbWVkaWF0ZSA6IGludDMyT3BlcmFu
ZHMoKSkgeworICAgICAgICBmb3IgKGF1dG8gaW1tZWRpYXRlMiA6IGludDMyT3BlcmFuZHMoKSkg
eworICAgICAgICAgICAgYXV0byBzdWIgPSBjb21waWxlKFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQp
IHsKKyAgICAgICAgICAgICAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZShqaXQpOworCisgICAgICAg
ICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoaW1tZWRpYXRlKSwg
R1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworICAgICAgICAgICAgICAgIGppdC5zdWIzMihDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW0zMihpbW1lZGlhdGUyKSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVH
UFIpOworCisgICAgICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKKyAgICAg
ICAgICAgICAgICBqaXQucmV0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIENIRUNL
X0VRKGludm9rZTx1aW50MzJfdD4oc3ViKSwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGltbWVkaWF0
ZSAtIGltbWVkaWF0ZTIpKTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCB0ZXN0U3ViMzJB
cmdJbW0oKQoreworICAgIGZvciAoYXV0byBpbW1lZGlhdGUgOiBpbnQzMk9wZXJhbmRzKCkpIHsK
KyAgICAgICAgYXV0byBzdWIgPSBjb21waWxlKFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAg
ICAgICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKGppdCk7CisKKyAgICAgICAgICAgIGppdC5z
dWIzMihHUFJJbmZvOjphcmd1bWVudEdQUjAsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKGlt
bWVkaWF0ZSksIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKworICAgICAgICAgICAgZW1pdEZ1
bmN0aW9uRXBpbG9ndWUoaml0KTsKKyAgICAgICAgICAgIGppdC5yZXQoKTsKKyAgICAgICAgfSk7
CisKKyAgICAgICAgZm9yIChhdXRvIHZhbHVlIDogaW50MzJPcGVyYW5kcygpKQorICAgICAgICAg
ICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQzMl90PihzdWIsIHZhbHVlKSwgc3RhdGljX2Nhc3Q8dWlu
dDMyX3Q+KHZhbHVlIC0gaW1tZWRpYXRlKSk7CisgICAgfQorfQorCit2b2lkIHRlc3RTdWI2NElt
bTMyKCkKK3sKKyAgICBmb3IgKGF1dG8gaW1tZWRpYXRlIDogaW50NjRPcGVyYW5kcygpKSB7Cisg
ICAgICAgIGZvciAoYXV0byBpbW1lZGlhdGUyIDogaW50MzJPcGVyYW5kcygpKSB7CisgICAgICAg
ICAgICBhdXRvIHN1YiA9IGNvbXBpbGUoWz1dIChDQ2FsbEhlbHBlcnMmIGppdCkgeworICAgICAg
ICAgICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKGppdCk7CisKKyAgICAgICAgICAgICAgICBq
aXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW02NChpbW1lZGlhdGUpLCBHUFJJbmZvOjpy
ZXR1cm5WYWx1ZUdQUik7CisgICAgICAgICAgICAgICAgaml0LnN1YjY0KENDYWxsSGVscGVyczo6
VHJ1c3RlZEltbTMyKGltbWVkaWF0ZTIpLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisKKyAg
ICAgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOworICAgICAgICAgICAgICAg
IGppdC5yZXQoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tl
PHVpbnQ2NF90PihzdWIpLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaW1tZWRpYXRlIC0gaW1tZWRp
YXRlMikpOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIHRlc3RTdWI2NEFyZ0ltbTMyKCkK
K3sKKyAgICBmb3IgKGF1dG8gaW1tZWRpYXRlIDogaW50MzJPcGVyYW5kcygpKSB7CisgICAgICAg
IGF1dG8gc3ViID0gY29tcGlsZShbPV0gKENDYWxsSGVscGVycyYgaml0KSB7CisgICAgICAgICAg
ICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZShqaXQpOworCisgICAgICAgICAgICBqaXQuc3ViNjQoR1BS
SW5mbzo6YXJndW1lbnRHUFIwLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihpbW1lZGlhdGUp
LCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisKKyAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVw
aWxvZ3VlKGppdCk7CisgICAgICAgICAgICBqaXQucmV0KCk7CisgICAgICAgIH0pOworCisgICAg
ICAgIGZvciAoYXV0byB2YWx1ZSA6IGludDY0T3BlcmFuZHMoKSkKKyAgICAgICAgICAgIENIRUNL
X0VRKGludm9rZTxpbnQ2NF90PihzdWIsIHZhbHVlKSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4odmFs
dWUgLSBpbW1lZGlhdGUpKTsKKyAgICB9Cit9CisKK3ZvaWQgdGVzdFN1YjY0SW1tNjQoKQorewor
ICAgIGZvciAoYXV0byBpbW1lZGlhdGUgOiBpbnQ2NE9wZXJhbmRzKCkpIHsKKyAgICAgICAgZm9y
IChhdXRvIGltbWVkaWF0ZTIgOiBpbnQ2NE9wZXJhbmRzKCkpIHsKKyAgICAgICAgICAgIGF1dG8g
c3ViID0gY29tcGlsZShbPV0gKENDYWxsSGVscGVycyYgaml0KSB7CisgICAgICAgICAgICAgICAg
ZW1pdEZ1bmN0aW9uUHJvbG9ndWUoaml0KTsKKworICAgICAgICAgICAgICAgIGppdC5tb3ZlKEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbTY0KGltbWVkaWF0ZSksIEdQUkluZm86OnJldHVyblZhbHVl
R1BSKTsKKyAgICAgICAgICAgICAgICBqaXQuc3ViNjQoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
NjQoaW1tZWRpYXRlMiksIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKworICAgICAgICAgICAg
ICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7CisgICAgICAgICAgICAgICAgaml0LnJldCgp
OworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+
KHN1YiksIHN0YXRpY19jYXN0PHVpbnQ2NF90PihpbW1lZGlhdGUgLSBpbW1lZGlhdGUyKSk7Cisg
ICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgdGVzdFN1YjY0QXJnSW1tNjQoKQoreworICAgIGZv
ciAoYXV0byBpbW1lZGlhdGUgOiBpbnQ2NE9wZXJhbmRzKCkpIHsKKyAgICAgICAgYXV0byBzdWIg
PSBjb21waWxlKFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAgICAgICAgICAgIGVtaXRGdW5j
dGlvblByb2xvZ3VlKGppdCk7CisKKyAgICAgICAgICAgIGppdC5zdWI2NChHUFJJbmZvOjphcmd1
bWVudEdQUjAsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTY0KGltbWVkaWF0ZSksIEdQUkluZm86
OnJldHVyblZhbHVlR1BSKTsKKworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0
KTsKKyAgICAgICAgICAgIGppdC5yZXQoKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZm9yIChh
dXRvIHZhbHVlIDogaW50NjRPcGVyYW5kcygpKQorICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tl
PGludDY0X3Q+KHN1YiwgdmFsdWUpLCBzdGF0aWNfY2FzdDxpbnQ2NF90Pih2YWx1ZSAtIGltbWVk
aWF0ZSkpOworICAgIH0KK30KICNlbmRpZgogCiAjaWYgQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkg
fHwgQ1BVKEFSTTY0KQpAQCAtMjY0MCw2ICsyNzYyLDEzIEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIq
IGZpbHRlcikgV1RGX0lHTk9SRVNfVEhSRUFEX1NBRkVUWV9BTkFMWVNJUwogCiAjaWYgQ1BVKEFS
TTY0KQogICAgIFJVTih0ZXN0TXVsMzJTaWduRXh0ZW5kKCkpOworICAgIFJVTih0ZXN0U3ViMzJB
cmdzKCkpOworICAgIFJVTih0ZXN0U3ViMzJJbW0oKSk7CisgICAgUlVOKHRlc3RTdWIzMkFyZ0lt
bSgpKTsKKyAgICBSVU4odGVzdFN1YjY0SW1tMzIoKSk7CisgICAgUlVOKHRlc3RTdWI2NEFyZ0lt
bTMyKCkpOworICAgIFJVTih0ZXN0U3ViNjRJbW02NCgpKTsKKyAgICBSVU4odGVzdFN1YjY0QXJn
SW1tNjQoKSk7CiAjZW5kaWYKIAogI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpIHx8IENQVShB
Uk02NCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVu
Z3RoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcApp
bmRleCA5ZWZkMzkwYWJlY2U2MmYwNjEzMDliMmE5YjUwOTMyMjU3NWI0YWViLi40NDM4MTMyMmRi
NTRmNWVhN2I0OGFlN2Y5Njk1MWQxNjcyZjVkNjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCkBAIC02MjUsMTUgKzYyNSw2IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5pc0ludGVnZXIoKSkg
ewotICAgICAgICAgICAgICAgIC8vIFR1cm4gdGhpczogU3ViKHZhbHVlLCBjb25zdGFudCkKLSAg
ICAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IEFkZCh2YWx1ZSwgLWNvbnN0YW50KQotICAgICAg
ICAgICAgICAgIGlmIChWYWx1ZSogbmVnYXRlZENvbnN0YW50ID0gbV92YWx1ZS0+Y2hpbGQoMSkt
Pm5lZ0NvbnN0YW50KG1fcHJvYykpIHsKLSAgICAgICAgICAgICAgICAgICAgbV9pbnNlcnRpb25T
ZXQuaW5zZXJ0VmFsdWUobV9pbmRleCwgbmVnYXRlZENvbnN0YW50KTsKLSAgICAgICAgICAgICAg
ICAgICAgcmVwbGFjZVdpdGhOZXc8VmFsdWU+KAotICAgICAgICAgICAgICAgICAgICAgICAgQWRk
LCBtX3ZhbHVlLT5vcmlnaW4oKSwgbV92YWx1ZS0+Y2hpbGQoMCksIG5lZ2F0ZWRDb25zdGFudCk7
Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IFN1YigwLCB2YWx1ZSkKICAg
ICAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IE5lZyh2YWx1ZSkKICAgICAgICAgICAgICAgICBp
ZiAobV92YWx1ZS0+Y2hpbGQoMCktPmlzSW50KDApKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcwppbmRleCBmODQzNmFkOTM0YWQ3NTZjYWY5YzVi
ODUzYjk4NDRjMDU2MTIyNzA5Li4xMzgwOGRlODNiZGIxMTc3MDFmMThhNTY1NTY5ODJkZTM4ZDNi
M2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5v
cGNvZGVzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29k
ZXMKQEAgLTE3OSw2ICsxNzksNyBAQCBTdWIzMiBVOkc6MzIsIFVaRDpHOjMyCiAKIGFybTY0OiBT
dWIzMiBVOkc6MzIsIFU6RzozMiwgWkQ6RzozMgogICAgIFRtcCwgVG1wLCBUbXAKKyAgICBUbXAs
IEltbSwgVG1wCiAKIDY0OiBTdWI2NCBVOkc6NjQsIFVEOkc6NjQKICAgICBUbXAsIFRtcApAQCAt
MTkyLDYgKzE5Myw3IEBAIGFybTY0OiBTdWIzMiBVOkc6MzIsIFU6RzozMiwgWkQ6RzozMgogCiBh
cm02NDogU3ViNjQgVTpHOjY0LCBVOkc6NjQsIEQ6Rzo2NAogICAgIFRtcCwgVG1wLCBUbXAKKyAg
ICBUbXAsIEltbSwgVG1wCiAKIFN1YkRvdWJsZSBVOkY6NjQsIFU6Rjo2NCwgRDpGOjY0CiAgICAg
YXJtNjQ6IFRtcCwgVG1wLCBUbXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My90ZXN0YjMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaAppbmRleCBhMmNh
MTM1YjBkZjU5N2ExOThiMjAyYTIwMjk1ZDQ1YjYxNTNkMjg5Li42ODA2NTNjNjE2NWFjZWM2N2U1
ZTRiNmRlMmZkY2EwZGE0MTA5Nzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvdGVzdGIzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oCkBAIC0x
MDI3LDYgKzEwMjcsNyBAQCB2b2lkIHRlc3RTdWJNZW1BcmcoaW50NjRfdCwgaW50NjRfdCk7CiB2
b2lkIHRlc3RTdWJJbW1NZW0oaW50NjRfdCwgaW50NjRfdCk7CiB2b2lkIHRlc3RTdWJNZW1JbW0o
aW50NjRfdCwgaW50NjRfdCk7CiB2b2lkIHRlc3RTdWJBcmdzMzIoaW50LCBpbnQpOwordm9pZCB0
ZXN0U3ViQXJnczMyWmVyb0V4dGVuZChpbnQsIGludCk7CiB2b2lkIHRlc3RTdWJBcmdJbW0zMihp
bnQsIGludCk7CiB2b2lkIHRlc3RTdWJJbW1BcmczMihpbnQsIGludCk7CiB2b2lkIHRlc3RTdWJN
ZW1BcmczMihpbnQzMl90LCBpbnQzMl90KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy90ZXN0YjNfMi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzIu
Y3BwCmluZGV4IDdjYjM0YzhhMGI3NzEzYjU2NTE2NWQ2OWYyZTdhNjY0YTA0Yzk5NjcuLjQ4MjM2
MDI3NGMyN2M4N2VhZTA0N2E0NTdmMjI2YmMwNThlNWM4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL3Rlc3RiM18yLmNwcApAQCAtMjA5Miw2ICsyMDkyLDI4IEBAIHZvaWQgdGVzdFN1YkFyZ3Mz
MihpbnQgYSwgaW50IGIpCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIGEsIGIp
ID09IGEgLSBiKTsKIH0KIAordm9pZCB0ZXN0U3ViQXJnczMyWmVyb0V4dGVuZChpbnQgYSwgaW50
IGIpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgaWYgKHByb2Mub3B0TGV2ZWwoKSA8IDEp
CisgICAgICAgIHJldHVybjsKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKKyAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAg
IHByb2MsIFpFeHQzMiwgT3JpZ2luKCksCisgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAorICAgICAgICAgICAgICAgIHByb2MsIFN1YiwgT3JpZ2luKCksCisgICAgICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgcHJvYywgVHJ1
bmMsIE9yaWdpbigpLAorICAgICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAorICAg
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAg
IHByb2MsIFRydW5jLCBPcmlnaW4oKSwKKyAgICAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjEpKSkpKTsKKworICAgIENIRUNLKGNvbXBpbGVBbmRSdW48dWludDY0X3Q+KHByb2MsIGEsIGIp
ID09IHN0YXRpY19jYXN0PHVpbnQ2NF90PihzdGF0aWNfY2FzdDx1aW50MzJfdD4oYSAtIGIpKSk7
Cit9CisKIHZvaWQgdGVzdFN1YkFyZ0ltbTMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1
cmUgcHJvYzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzMuY3BwCmluZGV4IGI3MTRjMzU3
NzQ0OGJjNWI2OTE4OTc1N2RjMTk4YjgzMTI0ODcwZjIuLjg1OWI4ZmM5ZTYzNTU4NDYyZDg1ZjFj
NWU3ZDNhMDEwNDI1OGYwNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90
ZXN0YjNfMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18zLmNwcApA
QCAtMzMwMSw2ICszMzAxLDEwIEBAIHZvaWQgYWRkQXJnVGVzdHMoY29uc3QgY2hhciogZmlsdGVy
LCBEZXF1ZTxSZWZQdHI8U2hhcmVkVGFzazx2b2lkKCk+Pj4mIHRhc2tzKQogICAgIFJVTih0ZXN0
U3ViQXJnczMyKDEsIDIpKTsKICAgICBSVU4odGVzdFN1YkFyZ3MzMigxMywgLTQyKSk7CiAgICAg
UlVOKHRlc3RTdWJBcmdzMzIoLTEzLCA0MikpOworICAgIFJVTih0ZXN0U3ViQXJnczMyWmVyb0V4
dGVuZCgxLCAxKSk7CisgICAgUlVOKHRlc3RTdWJBcmdzMzJaZXJvRXh0ZW5kKDEsIDIpKTsKKyAg
ICBSVU4odGVzdFN1YkFyZ3MzMlplcm9FeHRlbmQoMTMsIC00MikpOworICAgIFJVTih0ZXN0U3Vi
QXJnczMyWmVyb0V4dGVuZCgtMTMsIDQyKSk7CiAgICAgUlVOKHRlc3RTdWJBcmdJbW0zMigxLCAx
KSk7CiAgICAgUlVOKHRlc3RTdWJBcmdJbW0zMigxLCAyKSk7CiAgICAgUlVOKHRlc3RTdWJBcmdJ
bW0zMigxMywgLTQyKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431288</attachid>
            <date>2021-06-13 14:36:08 -0700</date>
            <delta_ts>2021-06-13 20:42:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226937-20210613163607.patch</filename>
            <type>text/plain</type>
            <size>15199</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4ODE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NWQxODU3NjdkNGZmNjY1NzAxZThkYTM3OWUzNDAyMTMwNTNkMjhkLi40NjhkM2VhOWY4ZGI0ZDdh
MDJjODI0YTBmZWU4Y2E0MGNlZTRmMmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2OSBAQAorMjAyMS0wNi0xMyAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIEFpciBvcGNvZGUgc3ViMzIvNjQoUmVnLCBJbW0sIFJlZykgZm9y
bSBmb3IgQVJNNjQgYW5kIHNlbGVjdCB0aGlzIGluc3RydWN0aW9uIGluIEFpcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2OTM3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBQcmV2aW91c2x5
LCBBaXIgYXJtNjQgc3ViMzIvNjQgdXRpbGl6ZSBzdWIoSW1tLCBUbXApIGF0IG9wdGxldmVsID0g
MCBhbmQgCisgICAgICAgIGFkZChUbXAsIC1JbW0pIGF0IG9wdGxldmVsID4gMCB0byBwZXJmb3Jt
IGFuZCBvcHRpbWl6ZSBzdWIoVG1wLCBJbW0sIFRtcCkuCisgICAgICAgIFRoZSBpc3N1ZSB3aXRo
IHRoaXMgaXMgdGhhdCB3ZSB3ZXJlIG5vdCBlbGlkaW5nIHJlZHVuZGFudCBvcGVyYXRpb25zLgor
CisgICAgICAgIEZvciBleGFtcGxlOgorICAgICAgICAvLyBCMyBJUgorICAgICAgICBAMCA9IFRy
dW5jKEFyZ3VtZW50UmVnKDApKQorICAgICAgICBAMSA9IENvbnN0CisgICAgICAgIEAyID0gU3Vi
KEAwLCBAMSkKKyAgICAgICAgQDMgPSBSZXR1cm4oQDIpCisKKyAgICAgICAgLy8gT2xkIG9wdGlt
aXplZCBBaXIgSVIKKyAgICAgICAgLy8gT3B0TGV2ZWwgPSAwCisgICAgICAgIE1vdmUgICAgJXgw
LCAldG1wMSwgQDAKKyAgICAgICAgTW92ZSAkQ29uc3QsICV0bXAyLCBAMQorICAgICAgICBNb3Zl
ICAldG1wMSwgJXRtcDAsIEAyIC8vIFJlZHVuZGFudAorICAgICAgICBTdWIgICRDb25zdCwgJXRt
cDAsIEAyCisgICAgICAgIE1vdmUgICV0bXAwLCAgICV4MCwgQDMKKyAgICAgICAgUmV0MzIgICAl
eDAsICAgICAgICBAMworCisgICAgICAgIC8vIE9wdExldmVsID0gMgorICAgICAgICBNb3ZlICQt
Q29uc3QsICV4MSwgICAgICBAMiAvLyBSZWR1bmRhbnQKKyAgICAgICAgQWRkICAgICAgJXgwLCAl
eDEsICV4MCwgQDIKKyAgICAgICAgUmV0ICAgICAgJXgwLCAgICAgICAgICAgQDMKKyAgICAgICAg
CisgICAgICAgIFRvIHJlbW92ZSB0aG9zZSByZWR1bmRhbnQgaW5zdHJ1Y3Rpb25zLCBBaXIgYXJt
NjQgc3ViMzIvNjQgb3Bjb2RlIHNob3VsZCAKKyAgICAgICAgaW5kaWNhdGUgYSBuZXcgZm9ybSBz
dWIoVG1wLCBJbW0sIFRtcCkuCisgICAgICAgIAorICAgICAgICAvLyBOZXcgb3B0aW1pemVkIEFp
ciBJUgorICAgICAgICAvLyBPcHRMZXZlbCA9IDAKKyAgICAgICAgTW92ZSAgICAleDAsICAldG1w
MSwgICAgICAgIEAwCisgICAgICAgIE1vdmUgJENvbnN0LCAgJXRtcDIsICAgICAgICBAMQorICAg
ICAgICBTdWIgICAldG1wMSwgJENvbnN0LCAldG1wMCwgQDIKKyAgICAgICAgTW92ZSAgJXRtcDAs
ICAgICV4MCwgICAgICAgIEAzCisgICAgICAgIFJldDMyICAgJXgwLCAgICAgICAgICAgICAgICBA
MworICAgICAgICAKKyAgICAgICAgLy8gT3B0TGV2ZWwgPSAyCisgICAgICAgIFN1YiAleDAsICRD
b25zdCwgJXgwLCBAMgorICAgICAgICBSZXQgJXgwLCAgICAgICAgICAgICAgQDMKKworICAgICAg
ICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0Lmg6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNNjQ6OnN1YjMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02
NDo6c3ViNjQpOgorICAgICAgICAqIGFzc2VtYmxlci90ZXN0bWFzbS5jcHA6CisgICAgICAgIChK
U0M6OnRlc3RTdWIzMkFyZ3MpOgorICAgICAgICAoSlNDOjp0ZXN0U3ViMzJJbW0pOgorICAgICAg
ICAoSlNDOjp0ZXN0U3ViMzJBcmdJbW0pOgorICAgICAgICAoSlNDOjp0ZXN0U3ViNjRJbW0zMik6
CisgICAgICAgIChKU0M6OnRlc3RTdWI2NEFyZ0ltbTMyKToKKyAgICAgICAgKEpTQzo6dGVzdFN1
YjY0SW1tNjQpOgorICAgICAgICAoSlNDOjp0ZXN0U3ViNjRBcmdJbW02NCk6CisgICAgICAgICog
YjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHA6CisgICAgICAgICogYjMvYWlyL0Fpck9wY29kZS5vcGNv
ZGVzOgorICAgICAgICAqIGIzL3Rlc3RiMy5oOgorICAgICAgICAqIGIzL3Rlc3RiM18yLmNwcDoK
KyAgICAgICAgKHRlc3RTdWJBcmdzMzJaZXJvRXh0ZW5kKToKKyAgICAgICAgKiBiMy90ZXN0YjNf
My5jcHA6CisgICAgICAgIChhZGRBcmdUZXN0cyk6CisKIDIwMjEtMDYtMTIgIE1pY2hhZWwgQ2F0
YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CiAKICAgICAgICAgLVdub25udWxsIHdhcm5p
bmcgaW4gSklUQ2FsbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKaW5kZXggNTQ0NjRmMDQwOGM4YWY1NGNhZWViYzM0
NDAyYmUzMWRiNmE3NWJjZi4uZjg2YWVjMWM1NDAwNmVlZDFkNWM1ZGQzZDU2ZDhkMDAzZmY3NjEy
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTTY0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlckFSTTY0LmgKQEAgLTg5MywxNyArODkzLDI0IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
c3ViMzIoVHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAg
aWYgKGlzVUludDEyKGltbS5tX3ZhbHVlKSkgewotICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3Vi
PDMyPihkZXN0LCBkZXN0LCBVSW50MTIoaW1tLm1fdmFsdWUpKTsKKyAgICAgICAgc3ViMzIoZGVz
dCwgaW1tLCBkZXN0KTsKKyAgICB9CisKKyAgICB2b2lkIHN1YjMyKFJlZ2lzdGVySUQgbGVmdCwg
VHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgaW50cHRy
X3QgaW1tZWRpYXRlID0gaW1tLm1fdmFsdWU7CisKKyAgICAgICAgaWYgKGlzVUludDEyKGltbWVk
aWF0ZSkpIHsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN1YjwzMj4oZGVzdCwgbGVmdCwgVUlu
dDEyKGltbWVkaWF0ZSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAg
IGlmIChpc1VJbnQxMigtaW1tLm1fdmFsdWUpKSB7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5h
ZGQ8MzI+KGRlc3QsIGRlc3QsIFVJbnQxMigtaW1tLm1fdmFsdWUpKTsKKyAgICAgICAgaWYgKGlz
VUludDEyKC1pbW1lZGlhdGUpKSB7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGQ8MzI+KGRl
c3QsIGxlZnQsIFVJbnQxMigtaW1tZWRpYXRlKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KIAogICAgICAgICBtb3ZlKGltbSwgZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklEQW5k
SW52YWxpZGF0ZSgpKTsKLSAgICAgICAgbV9hc3NlbWJsZXIuc3ViPDMyPihkZXN0LCBkZXN0LCBk
YXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuc3ViPDMyPihkZXN0LCBsZWZ0
LCBkYXRhVGVtcFJlZ2lzdGVyKTsKICAgICB9CiAKICAgICB2b2lkIHN1YjMyKFRydXN0ZWRJbW0z
MiBpbW0sIEFkZHJlc3MgYWRkcmVzcykKQEAgLTk1NCw0MSArOTYxLDUzIEBAIHB1YmxpYzoKICAg
ICAgICAgbV9hc3NlbWJsZXIuc3ViPDY0PihkZXN0LCBkZXN0LCBzcmMpOwogICAgIH0KIAotICAg
IHZvaWQgc3ViNjQoUmVnaXN0ZXJJRCBhLCBSZWdpc3RlcklEIGIsIFJlZ2lzdGVySUQgZGVzdCkK
KyAgICB2b2lkIHN1YjY0KFJlZ2lzdGVySUQgbGVmdCwgUmVnaXN0ZXJJRCByaWdodCwgUmVnaXN0
ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgbV9hc3NlbWJsZXIuc3ViPDY0PihkZXN0LCBhLCBi
KTsKKyAgICAgICAgbV9hc3NlbWJsZXIuc3ViPDY0PihkZXN0LCBsZWZ0LCByaWdodCk7CiAgICAg
fQotICAgIAorCiAgICAgdm9pZCBzdWI2NChUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRl
c3QpCiAgICAgewotICAgICAgICBpZiAoaXNVSW50MTIoaW1tLm1fdmFsdWUpKSB7Ci0gICAgICAg
ICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRlc3QsIGRlc3QsIFVJbnQxMihpbW0ubV92YWx1ZSkp
OworICAgICAgICBzdWI2NChkZXN0LCBpbW0sIGRlc3QpOworICAgIH0KKworICAgIHZvaWQgc3Vi
NjQoUmVnaXN0ZXJJRCBsZWZ0LCBUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCisg
ICAgeworICAgICAgICBpbnRwdHJfdCBpbW1lZGlhdGUgPSBpbW0ubV92YWx1ZTsKKworICAgICAg
ICBpZiAoaXNVSW50MTIoaW1tZWRpYXRlKSkgeworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3Vi
PDY0PihkZXN0LCBsZWZ0LCBVSW50MTIoaW1tZWRpYXRlKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGlzVUludDEyKC1pbW0ubV92YWx1ZSkpIHsKLSAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLmFkZDw2ND4oZGVzdCwgZGVzdCwgVUludDEyKC1pbW0ubV92YWx1
ZSkpOworICAgICAgICBpZiAoaXNVSW50MTIoLWltbWVkaWF0ZSkpIHsKKyAgICAgICAgICAgIG1f
YXNzZW1ibGVyLmFkZDw2ND4oZGVzdCwgbGVmdCwgVUludDEyKC1pbW1lZGlhdGUpKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIHNpZ25FeHRlbmQzMlRvUHRyKGlt
bSwgZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpKTsKLSAgICAgICAg
bV9hc3NlbWJsZXIuc3ViPDY0PihkZXN0LCBkZXN0LCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAg
ICAgbV9hc3NlbWJsZXIuc3ViPDY0PihkZXN0LCBsZWZ0LCBkYXRhVGVtcFJlZ2lzdGVyKTsKICAg
ICB9Ci0gICAgCisKICAgICB2b2lkIHN1YjY0KFRydXN0ZWRJbW02NCBpbW0sIFJlZ2lzdGVySUQg
ZGVzdCkKKyAgICB7CisgICAgICAgIHN1YjY0KGRlc3QsIGltbSwgZGVzdCk7CisgICAgfQorCisg
ICAgdm9pZCBzdWI2NChSZWdpc3RlcklEIGxlZnQsIFRydXN0ZWRJbW02NCBpbW0sIFJlZ2lzdGVy
SUQgZGVzdCkKICAgICB7CiAgICAgICAgIGludHB0cl90IGltbWVkaWF0ZSA9IGltbS5tX3ZhbHVl
OwogCiAgICAgICAgIGlmIChpc1VJbnQxMihpbW1lZGlhdGUpKSB7Ci0gICAgICAgICAgICBtX2Fz
c2VtYmxlci5zdWI8NjQ+KGRlc3QsIGRlc3QsIFVJbnQxMihzdGF0aWNfY2FzdDxpbnQzMl90Pihp
bW1lZGlhdGUpKSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRlc3QsIGxlZnQs
IFVJbnQxMihzdGF0aWNfY2FzdDxpbnQzMl90PihpbW1lZGlhdGUpKSk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgaWYgKGlzVUludDEyKC1pbW1lZGlhdGUpKSB7Ci0g
ICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGQ8NjQ+KGRlc3QsIGRlc3QsIFVJbnQxMihzdGF0aWNf
Y2FzdDxpbnQzMl90PigtaW1tZWRpYXRlKSkpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRk
PDY0PihkZXN0LCBsZWZ0LCBVSW50MTIoc3RhdGljX2Nhc3Q8aW50MzJfdD4oLWltbWVkaWF0ZSkp
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIG1vdmUoaW1tLCBn
ZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOwotICAgICAgICBtX2Fz
c2VtYmxlci5zdWI8NjQ+KGRlc3QsIGRlc3QsIGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAgICBt
X2Fzc2VtYmxlci5zdWI8NjQ+KGRlc3QsIGxlZnQsIGRhdGFUZW1wUmVnaXN0ZXIpOwogICAgIH0K
IAogICAgIHZvaWQgdXJzaGlmdDMyKFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIHNoaWZ0QW1v
dW50LCBSZWdpc3RlcklEIGRlc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL3Rlc3RtYXNtLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
dGVzdG1hc20uY3BwCmluZGV4IDE3OTk4NzE0ZmQyMWMzODljZmQ0MGQ0ZmE0MjYzZmY5NDlhMWJi
ODcuLmJhNTEwMmEyYmI5OTlhZDU3NDhmNjg0NzVkNmM4YzQ1ZDUwYTIxYjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCkBAIC05MjAsNiArOTIwLDEy
OCBAQCB2b2lkIHRlc3RNdWwzMlNpZ25FeHRlbmQoKQogICAgICAgICAgICAgQ0hFQ0tfRVEoaW52
b2tlPGxvbmcgaW50PihtdWwsIHZhbHVlLCB2YWx1ZTIpLCAoKGxvbmcgaW50KSB2YWx1ZSkgKiAo
KGxvbmcgaW50KSB2YWx1ZTIpKTsKICAgICB9CiB9CisKK3ZvaWQgdGVzdFN1YjMyQXJncygpCit7
CisgICAgZm9yIChhdXRvIHZhbHVlIDogaW50MzJPcGVyYW5kcygpKSB7CisgICAgICAgIGF1dG8g
c3ViID0gY29tcGlsZShbPV0gKENDYWxsSGVscGVycyYgaml0KSB7CisgICAgICAgICAgICBlbWl0
RnVuY3Rpb25Qcm9sb2d1ZShqaXQpOworCisgICAgICAgICAgICBqaXQuc3ViMzIoR1BSSW5mbzo6
YXJndW1lbnRHUFIwLCBHUFJJbmZvOjphcmd1bWVudEdQUjEsIEdQUkluZm86OnJldHVyblZhbHVl
R1BSKTsKKworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKKyAgICAgICAg
ICAgIGppdC5yZXQoKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZm9yIChhdXRvIHZhbHVlMiA6
IGludDMyT3BlcmFuZHMoKSkKKyAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50MzJfdD4o
c3ViLCB2YWx1ZSwgdmFsdWUyKSwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHZhbHVlIC0gdmFsdWUy
KSk7CisgICAgfQorfQorCit2b2lkIHRlc3RTdWIzMkltbSgpCit7CisgICAgZm9yIChhdXRvIGlt
bWVkaWF0ZSA6IGludDMyT3BlcmFuZHMoKSkgeworICAgICAgICBmb3IgKGF1dG8gaW1tZWRpYXRl
MiA6IGludDMyT3BlcmFuZHMoKSkgeworICAgICAgICAgICAgYXV0byBzdWIgPSBjb21waWxlKFs9
XSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAgICAgICAgICAgICAgICBlbWl0RnVuY3Rpb25Qcm9s
b2d1ZShqaXQpOworCisgICAgICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoaW1tZWRpYXRlKSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworICAgICAgICAg
ICAgICAgIGppdC5zdWIzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihpbW1lZGlhdGUyKSwg
R1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworCisgICAgICAgICAgICAgICAgZW1pdEZ1bmN0aW9u
RXBpbG9ndWUoaml0KTsKKyAgICAgICAgICAgICAgICBqaXQucmV0KCk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50MzJfdD4oc3ViKSwgc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KGltbWVkaWF0ZSAtIGltbWVkaWF0ZTIpKTsKKyAgICAgICAgfQorICAgIH0K
K30KKwordm9pZCB0ZXN0U3ViMzJBcmdJbW0oKQoreworICAgIGZvciAoYXV0byBpbW1lZGlhdGUg
OiBpbnQzMk9wZXJhbmRzKCkpIHsKKyAgICAgICAgYXV0byBzdWIgPSBjb21waWxlKFs9XSAoQ0Nh
bGxIZWxwZXJzJiBqaXQpIHsKKyAgICAgICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKGppdCk7
CisKKyAgICAgICAgICAgIGppdC5zdWIzMihHUFJJbmZvOjphcmd1bWVudEdQUjAsIENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbTMyKGltbWVkaWF0ZSksIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsK
KworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKKyAgICAgICAgICAgIGpp
dC5yZXQoKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZm9yIChhdXRvIHZhbHVlIDogaW50MzJP
cGVyYW5kcygpKQorICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQzMl90PihzdWIsIHZh
bHVlKSwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHZhbHVlIC0gaW1tZWRpYXRlKSk7CisgICAgfQor
fQorCit2b2lkIHRlc3RTdWI2NEltbTMyKCkKK3sKKyAgICBmb3IgKGF1dG8gaW1tZWRpYXRlIDog
aW50NjRPcGVyYW5kcygpKSB7CisgICAgICAgIGZvciAoYXV0byBpbW1lZGlhdGUyIDogaW50MzJP
cGVyYW5kcygpKSB7CisgICAgICAgICAgICBhdXRvIHN1YiA9IGNvbXBpbGUoWz1dIChDQ2FsbEhl
bHBlcnMmIGppdCkgeworICAgICAgICAgICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKGppdCk7
CisKKyAgICAgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW02NChp
bW1lZGlhdGUpLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAgICAgICAgICAgaml0
LnN1YjY0KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKGltbWVkaWF0ZTIpLCBHUFJJbmZvOjpy
ZXR1cm5WYWx1ZUdQUik7CisKKyAgICAgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShq
aXQpOworICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90PihzdWIpLCBzdGF0aWNfY2FzdDx1aW50NjRf
dD4oaW1tZWRpYXRlIC0gaW1tZWRpYXRlMikpOworICAgICAgICB9CisgICAgfQorfQorCit2b2lk
IHRlc3RTdWI2NEFyZ0ltbTMyKCkKK3sKKyAgICBmb3IgKGF1dG8gaW1tZWRpYXRlIDogaW50MzJP
cGVyYW5kcygpKSB7CisgICAgICAgIGF1dG8gc3ViID0gY29tcGlsZShbPV0gKENDYWxsSGVscGVy
cyYgaml0KSB7CisgICAgICAgICAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZShqaXQpOworCisgICAg
ICAgICAgICBqaXQuc3ViNjQoR1BSSW5mbzo6YXJndW1lbnRHUFIwLCBDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW0zMihpbW1lZGlhdGUpLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisKKyAgICAg
ICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7CisgICAgICAgICAgICBqaXQucmV0KCk7
CisgICAgICAgIH0pOworCisgICAgICAgIGZvciAoYXV0byB2YWx1ZSA6IGludDY0T3BlcmFuZHMo
KSkKKyAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ2NF90PihzdWIsIHZhbHVlKSwgc3Rh
dGljX2Nhc3Q8aW50NjRfdD4odmFsdWUgLSBpbW1lZGlhdGUpKTsKKyAgICB9Cit9CisKK3ZvaWQg
dGVzdFN1YjY0SW1tNjQoKQoreworICAgIGZvciAoYXV0byBpbW1lZGlhdGUgOiBpbnQ2NE9wZXJh
bmRzKCkpIHsKKyAgICAgICAgZm9yIChhdXRvIGltbWVkaWF0ZTIgOiBpbnQ2NE9wZXJhbmRzKCkp
IHsKKyAgICAgICAgICAgIGF1dG8gc3ViID0gY29tcGlsZShbPV0gKENDYWxsSGVscGVycyYgaml0
KSB7CisgICAgICAgICAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoaml0KTsKKworICAgICAg
ICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTY0KGltbWVkaWF0ZSks
IEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgICAgICAgICBqaXQuc3ViNjQoQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tNjQoaW1tZWRpYXRlMiksIEdQUkluZm86OnJldHVyblZhbHVl
R1BSKTsKKworICAgICAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7CisgICAg
ICAgICAgICAgICAgaml0LnJldCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBDSEVD
S19FUShpbnZva2U8dWludDY0X3Q+KHN1YiksIHN0YXRpY19jYXN0PHVpbnQ2NF90PihpbW1lZGlh
dGUgLSBpbW1lZGlhdGUyKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgdGVzdFN1YjY0
QXJnSW1tNjQoKQoreworICAgIGZvciAoYXV0byBpbW1lZGlhdGUgOiBpbnQ2NE9wZXJhbmRzKCkp
IHsKKyAgICAgICAgYXV0byBzdWIgPSBjb21waWxlKFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsK
KyAgICAgICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKGppdCk7CisKKyAgICAgICAgICAgIGpp
dC5zdWI2NChHUFJJbmZvOjphcmd1bWVudEdQUjAsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTY0
KGltbWVkaWF0ZSksIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKworICAgICAgICAgICAgZW1p
dEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKKyAgICAgICAgICAgIGppdC5yZXQoKTsKKyAgICAgICAg
fSk7CisKKyAgICAgICAgZm9yIChhdXRvIHZhbHVlIDogaW50NjRPcGVyYW5kcygpKQorICAgICAg
ICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludDY0X3Q+KHN1YiwgdmFsdWUpLCBzdGF0aWNfY2FzdDxp
bnQ2NF90Pih2YWx1ZSAtIGltbWVkaWF0ZSkpOworICAgIH0KK30KICNlbmRpZgogCiAjaWYgQ1BV
KFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KQpAQCAtMjY0MCw2ICsyNzYyLDEzIEBA
IHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikgV1RGX0lHTk9SRVNfVEhSRUFEX1NBRkVUWV9B
TkFMWVNJUwogCiAjaWYgQ1BVKEFSTTY0KQogICAgIFJVTih0ZXN0TXVsMzJTaWduRXh0ZW5kKCkp
OworICAgIFJVTih0ZXN0U3ViMzJBcmdzKCkpOworICAgIFJVTih0ZXN0U3ViMzJJbW0oKSk7Cisg
ICAgUlVOKHRlc3RTdWIzMkFyZ0ltbSgpKTsKKyAgICBSVU4odGVzdFN1YjY0SW1tMzIoKSk7Cisg
ICAgUlVOKHRlc3RTdWI2NEFyZ0ltbTMyKCkpOworICAgIFJVTih0ZXN0U3ViNjRJbW02NCgpKTsK
KyAgICBSVU4odGVzdFN1YjY0QXJnSW1tNjQoKSk7CiAjZW5kaWYKIAogI2lmIENQVShYODYpIHx8
IENQVShYODZfNjQpIHx8IENQVShBUk02NCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1JlZHVjZVN0cmVuZ3RoLmNwcAppbmRleCA5ZWZkMzkwYWJlY2U2MmYwNjEzMDliMmE5YjUwOTMy
MjU3NWI0YWViLi40NDM4MTMyMmRiNTRmNWVhN2I0OGFlN2Y5Njk1MWQxNjcyZjVkNjA2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCkBAIC02MjUs
MTUgKzYyNSw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmICht
X3ZhbHVlLT5pc0ludGVnZXIoKSkgewotICAgICAgICAgICAgICAgIC8vIFR1cm4gdGhpczogU3Vi
KHZhbHVlLCBjb25zdGFudCkKLSAgICAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IEFkZCh2YWx1
ZSwgLWNvbnN0YW50KQotICAgICAgICAgICAgICAgIGlmIChWYWx1ZSogbmVnYXRlZENvbnN0YW50
ID0gbV92YWx1ZS0+Y2hpbGQoMSktPm5lZ0NvbnN0YW50KG1fcHJvYykpIHsKLSAgICAgICAgICAg
ICAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0VmFsdWUobV9pbmRleCwgbmVnYXRlZENvbnN0
YW50KTsKLSAgICAgICAgICAgICAgICAgICAgcmVwbGFjZVdpdGhOZXc8VmFsdWU+KAotICAgICAg
ICAgICAgICAgICAgICAgICAgQWRkLCBtX3ZhbHVlLT5vcmlnaW4oKSwgbV92YWx1ZS0+Y2hpbGQo
MCksIG5lZ2F0ZWRDb25zdGFudCk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAvLyBUdXJuIHRo
aXM6IFN1YigwLCB2YWx1ZSkKICAgICAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IE5lZyh2YWx1
ZSkKICAgICAgICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMCktPmlzSW50KDApKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVz
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcwppbmRleCBm
ODQzNmFkOTM0YWQ3NTZjYWY5YzViODUzYjk4NDRjMDU2MTIyNzA5Li4xMzgwOGRlODNiZGIxMTc3
MDFmMThhNTY1NTY5ODJkZTM4ZDNiM2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyT3Bjb2RlLm9wY29kZXMKQEAgLTE3OSw2ICsxNzksNyBAQCBTdWIzMiBVOkc6MzIs
IFVaRDpHOjMyCiAKIGFybTY0OiBTdWIzMiBVOkc6MzIsIFU6RzozMiwgWkQ6RzozMgogICAgIFRt
cCwgVG1wLCBUbXAKKyAgICBUbXAsIEltbSwgVG1wCiAKIDY0OiBTdWI2NCBVOkc6NjQsIFVEOkc6
NjQKICAgICBUbXAsIFRtcApAQCAtMTkyLDYgKzE5Myw3IEBAIGFybTY0OiBTdWIzMiBVOkc6MzIs
IFU6RzozMiwgWkQ6RzozMgogCiBhcm02NDogU3ViNjQgVTpHOjY0LCBVOkc6NjQsIEQ6Rzo2NAog
ICAgIFRtcCwgVG1wLCBUbXAKKyAgICBUbXAsIEltbSwgVG1wCiAKIFN1YkRvdWJsZSBVOkY6NjQs
IFU6Rjo2NCwgRDpGOjY0CiAgICAgYXJtNjQ6IFRtcCwgVG1wLCBUbXAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My90ZXN0YjMuaAppbmRleCBhMmNhMTM1YjBkZjU5N2ExOThiMjAyYTIwMjk1ZDQ1YjYxNTNkMjg5
Li42ODA2NTNjNjE2NWFjZWM2N2U1ZTRiNmRlMmZkY2EwZGE0MTA5Nzc3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL3Rlc3RiMy5oCkBAIC0xMDI3LDYgKzEwMjcsNyBAQCB2b2lkIHRlc3RTdWJNZW1Bcmco
aW50NjRfdCwgaW50NjRfdCk7CiB2b2lkIHRlc3RTdWJJbW1NZW0oaW50NjRfdCwgaW50NjRfdCk7
CiB2b2lkIHRlc3RTdWJNZW1JbW0oaW50NjRfdCwgaW50NjRfdCk7CiB2b2lkIHRlc3RTdWJBcmdz
MzIoaW50LCBpbnQpOwordm9pZCB0ZXN0U3ViQXJnczMyWmVyb0V4dGVuZChpbnQsIGludCk7CiB2
b2lkIHRlc3RTdWJBcmdJbW0zMihpbnQsIGludCk7CiB2b2lkIHRlc3RTdWJJbW1BcmczMihpbnQs
IGludCk7CiB2b2lkIHRlc3RTdWJNZW1BcmczMihpbnQzMl90LCBpbnQzMl90KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMi5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvdGVzdGIzXzIuY3BwCmluZGV4IDdjYjM0YzhhMGI3NzEzYjU2NTE2NWQ2OWYy
ZTdhNjY0YTA0Yzk5NjcuLjQ4MjM2MDI3NGMyN2M4N2VhZTA0N2E0NTdmMjI2YmMwNThlNWM4Y2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMi5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18yLmNwcApAQCAtMjA5Miw2ICsyMDkyLDI4
IEBAIHZvaWQgdGVzdFN1YkFyZ3MzMihpbnQgYSwgaW50IGIpCiAgICAgQ0hFQ0soY29tcGlsZUFu
ZFJ1bjxpbnQ+KHByb2MsIGEsIGIpID09IGEgLSBiKTsKIH0KIAordm9pZCB0ZXN0U3ViQXJnczMy
WmVyb0V4dGVuZChpbnQgYSwgaW50IGIpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgaWYg
KHByb2Mub3B0TGV2ZWwoKSA8IDEpCisgICAgICAgIHJldHVybjsKKyAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
KyAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIFpFeHQzMiwgT3JpZ2luKCksCisgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIFN1YiwgT3Jp
Z2luKCksCisgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAg
ICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAorICAgICAgICAgICAgICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCkpLAorICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CisgICAgICAgICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKKyAgICAgICAgICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKSkpKTsKKworICAgIENIRUNLKGNvbXBpbGVBbmRSdW48
dWludDY0X3Q+KHByb2MsIGEsIGIpID09IHN0YXRpY19jYXN0PHVpbnQ2NF90PihzdGF0aWNfY2Fz
dDx1aW50MzJfdD4oYSAtIGIpKSk7Cit9CisKIHZvaWQgdGVzdFN1YkFyZ0ltbTMyKGludCBhLCBp
bnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy90ZXN0YjNfMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIz
XzMuY3BwCmluZGV4IGI3MTRjMzU3NzQ0OGJjNWI2OTE4OTc1N2RjMTk4YjgzMTI0ODcwZjIuLjg1
OWI4ZmM5ZTYzNTU4NDYyZDg1ZjFjNWU3ZDNhMDEwNDI1OGYwNTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL3Rlc3RiM18zLmNwcApAQCAtMzMwMSw2ICszMzAxLDEwIEBAIHZvaWQgYWRkQXJnVGVz
dHMoY29uc3QgY2hhciogZmlsdGVyLCBEZXF1ZTxSZWZQdHI8U2hhcmVkVGFzazx2b2lkKCk+Pj4m
IHRhc2tzKQogICAgIFJVTih0ZXN0U3ViQXJnczMyKDEsIDIpKTsKICAgICBSVU4odGVzdFN1YkFy
Z3MzMigxMywgLTQyKSk7CiAgICAgUlVOKHRlc3RTdWJBcmdzMzIoLTEzLCA0MikpOworICAgIFJV
Tih0ZXN0U3ViQXJnczMyWmVyb0V4dGVuZCgxLCAxKSk7CisgICAgUlVOKHRlc3RTdWJBcmdzMzJa
ZXJvRXh0ZW5kKDEsIDIpKTsKKyAgICBSVU4odGVzdFN1YkFyZ3MzMlplcm9FeHRlbmQoMTMsIC00
MikpOworICAgIFJVTih0ZXN0U3ViQXJnczMyWmVyb0V4dGVuZCgtMTMsIDQyKSk7CiAgICAgUlVO
KHRlc3RTdWJBcmdJbW0zMigxLCAxKSk7CiAgICAgUlVOKHRlc3RTdWJBcmdJbW0zMigxLCAyKSk7
CiAgICAgUlVOKHRlc3RTdWJBcmdJbW0zMigxMywgLTQyKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431299</attachid>
            <date>2021-06-13 20:42:26 -0700</date>
            <delta_ts>2021-06-13 20:47:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226937-20210613224225.patch</filename>
            <type>text/plain</type>
            <size>15420</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4ODE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NWQxODU3NjdkNGZmNjY1NzAxZThkYTM3OWUzNDAyMTMwNTNkMjhkLi5jM2ZmM2Q5YTc3YmJhYTk5
Y2M5ZGQ1OTU4N2EzZWU4YTUyNmQzNGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3MiBAQAorMjAyMS0wNi0xMyAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIEFpciBvcGNvZGUgc3ViMzIvNjQoUmVnLCBJbW0sIFJlZykgZm9y
bSBmb3IgQVJNNjQgYW5kIHNlbGVjdCB0aGlzIGluc3RydWN0aW9uIGluIEFpcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2OTM3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBQcmV2aW91c2x5
LCBBaXIgYXJtNjQgc3ViMzIvNjQgdXRpbGl6ZSBzdWIoSW1tLCBUbXApIGF0IG9wdGxldmVsID0g
MCBhbmQgCisgICAgICAgIGFkZChUbXAsIC1JbW0pIGF0IG9wdGxldmVsID4gMCB0byBwZXJmb3Jt
IGFuZCBvcHRpbWl6ZSBzdWIoVG1wLCBJbW0sIFRtcCkuCisgICAgICAgIFRoZSBpc3N1ZSB3aXRo
IHRoaXMgaXMgdGhhdCB3ZSB3ZXJlIG5vdCBlbGlkaW5nIHJlZHVuZGFudCBvcGVyYXRpb25zLiBJ
biAKKyAgICAgICAgYWRkaXRpb24sIHRoZSBpbnN0cnVjdGlvbiBzZWxlY3RvciBzaG91bGQgbm90
IGhhdmUgdG9vIHN0cm9uZyBvZiByZWxpYW5jZSAKKyAgICAgICAgb24gdGhpcyBraW5kIG9mIGNh
bm9uaWNhbGl6YXRpb24uCisKKyAgICAgICAgRm9yIGV4YW1wbGU6CisgICAgICAgIC8vIEIzIElS
CisgICAgICAgIEAwID0gVHJ1bmMoQXJndW1lbnRSZWcoMCkpCisgICAgICAgIEAxID0gQ29uc3QK
KyAgICAgICAgQDIgPSBTdWIoQDAsIEAxKQorICAgICAgICBAMyA9IFJldHVybihAMikKKworICAg
ICAgICAvLyBPbGQgb3B0aW1pemVkIEFpciBJUgorICAgICAgICAvLyBPcHRMZXZlbCA9IDAKKyAg
ICAgICAgTW92ZSAgICAleDAsICV0bXAxLCBAMAorICAgICAgICBNb3ZlICRDb25zdCwgJXRtcDIs
IEAxCisgICAgICAgIE1vdmUgICV0bXAxLCAldG1wMCwgQDIgLy8gUmVkdW5kYW50CisgICAgICAg
IFN1YiAgJENvbnN0LCAldG1wMCwgQDIKKyAgICAgICAgTW92ZSAgJXRtcDAsICAgJXgwLCBAMwor
ICAgICAgICBSZXQzMiAgICV4MCwgICAgICAgIEAzCisKKyAgICAgICAgLy8gT3B0TGV2ZWwgPSAy
CisgICAgICAgIE1vdmUgJC1Db25zdCwgJXgxLCAgICAgIEAyIC8vIFJlZHVuZGFudAorICAgICAg
ICBBZGQgICAgICAleDAsICV4MSwgJXgwLCBAMgorICAgICAgICBSZXQgICAgICAleDAsICAgICAg
ICAgICBAMworICAgICAgICAKKyAgICAgICAgVG8gcmVtb3ZlIHRob3NlIHJlZHVuZGFudCBpbnN0
cnVjdGlvbnMsIEFpciBhcm02NCBzdWIzMi82NCBvcGNvZGUgc2hvdWxkIAorICAgICAgICBpbmRp
Y2F0ZSBhIG5ldyBmb3JtIHN1YihUbXAsIEltbSwgVG1wKS4gSW4gdGhpcyBjYXNlLCB0aGUgU3Vi
IGltbWVkaWF0ZSBpcworICAgICAgICBubyBsb25nZXIgc3Vic3VtZWQgYnkgdGhlIEFkZCBpbW1l
ZGlhdGUgZm9ybS4KKyAgICAgICAgCisgICAgICAgIC8vIE5ldyBvcHRpbWl6ZWQgQWlyIElSCisg
ICAgICAgIC8vIE9wdExldmVsID0gMAorICAgICAgICBNb3ZlICAgICV4MCwgICV0bXAxLCAgICAg
ICAgQDAKKyAgICAgICAgTW92ZSAkQ29uc3QsICAldG1wMiwgICAgICAgIEAxCisgICAgICAgIFN1
YiAgICV0bXAxLCAkQ29uc3QsICV0bXAwLCBAMgorICAgICAgICBNb3ZlICAldG1wMCwgICAgJXgw
LCAgICAgICAgQDMKKyAgICAgICAgUmV0MzIgICAleDAsICAgICAgICAgICAgICAgIEAzCisgICAg
ICAgIAorICAgICAgICAvLyBPcHRMZXZlbCA9IDIKKyAgICAgICAgU3ViICV4MCwgJENvbnN0LCAl
eDAsIEAyCisgICAgICAgIFJldCAleDAsICAgICAgICAgICAgICBAMworCisgICAgICAgICogYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJBUk02NDo6c3ViMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdWI2
NCk6CisgICAgICAgICogYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcDoKKyAgICAgICAgKEpTQzo6dGVz
dFN1YjMyQXJncyk6CisgICAgICAgIChKU0M6OnRlc3RTdWIzMkltbSk6CisgICAgICAgIChKU0M6
OnRlc3RTdWIzMkFyZ0ltbSk6CisgICAgICAgIChKU0M6OnRlc3RTdWI2NEltbTMyKToKKyAgICAg
ICAgKEpTQzo6dGVzdFN1YjY0QXJnSW1tMzIpOgorICAgICAgICAoSlNDOjp0ZXN0U3ViNjRJbW02
NCk6CisgICAgICAgIChKU0M6OnRlc3RTdWI2NEFyZ0ltbTY0KToKKyAgICAgICAgKiBiMy9CM1Jl
ZHVjZVN0cmVuZ3RoLmNwcDoKKyAgICAgICAgKiBiMy9haXIvQWlyT3Bjb2RlLm9wY29kZXM6Cisg
ICAgICAgICogYjMvdGVzdGIzLmg6CisgICAgICAgICogYjMvdGVzdGIzXzIuY3BwOgorICAgICAg
ICAodGVzdFN1YkFyZ3MzMlplcm9FeHRlbmQpOgorICAgICAgICAqIGIzL3Rlc3RiM18zLmNwcDoK
KyAgICAgICAgKGFkZEFyZ1Rlc3RzKToKKwogMjAyMS0wNi0xMiAgTWljaGFlbCBDYXRhbnphcm8g
IDxtY2F0YW56YXJvQGdub21lLm9yZz4KIAogICAgICAgICAtV25vbm51bGwgd2FybmluZyBpbiBK
SVRDYWxsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlckFSTTY0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyQVJNNjQuaAppbmRleCA1NDQ2NGYwNDA4YzhhZjU0Y2FlZWJjMzQ0MDJiZTMx
ZGI2YTc1YmNmLi5mODZhZWMxYzU0MDA2ZWVkMWQ1YzVkZDNkNTZkOGQwMDNmZjc2MTJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
NjQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNNjQuaApAQCAtODkzLDE3ICs4OTMsMjQgQEAgcHVibGljOgogCiAgICAgdm9pZCBzdWIzMihU
cnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBpZiAoaXNV
SW50MTIoaW1tLm1fdmFsdWUpKSB7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5zdWI8MzI+KGRl
c3QsIGRlc3QsIFVJbnQxMihpbW0ubV92YWx1ZSkpOworICAgICAgICBzdWIzMihkZXN0LCBpbW0s
IGRlc3QpOworICAgIH0KKworICAgIHZvaWQgc3ViMzIoUmVnaXN0ZXJJRCBsZWZ0LCBUcnVzdGVk
SW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBpbnRwdHJfdCBpbW1l
ZGlhdGUgPSBpbW0ubV92YWx1ZTsKKworICAgICAgICBpZiAoaXNVSW50MTIoaW1tZWRpYXRlKSkg
eworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3ViPDMyPihkZXN0LCBsZWZ0LCBVSW50MTIoaW1t
ZWRpYXRlKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGlz
VUludDEyKC1pbW0ubV92YWx1ZSkpIHsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZDwzMj4o
ZGVzdCwgZGVzdCwgVUludDEyKC1pbW0ubV92YWx1ZSkpOworICAgICAgICBpZiAoaXNVSW50MTIo
LWltbWVkaWF0ZSkpIHsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZDwzMj4oZGVzdCwgbGVm
dCwgVUludDEyKC1pbW1lZGlhdGUpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
CiAgICAgICAgIG1vdmUoaW1tLCBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlk
YXRlKCkpOwotICAgICAgICBtX2Fzc2VtYmxlci5zdWI8MzI+KGRlc3QsIGRlc3QsIGRhdGFUZW1w
UmVnaXN0ZXIpOworICAgICAgICBtX2Fzc2VtYmxlci5zdWI8MzI+KGRlc3QsIGxlZnQsIGRhdGFU
ZW1wUmVnaXN0ZXIpOwogICAgIH0KIAogICAgIHZvaWQgc3ViMzIoVHJ1c3RlZEltbTMyIGltbSwg
QWRkcmVzcyBhZGRyZXNzKQpAQCAtOTU0LDQxICs5NjEsNTMgQEAgcHVibGljOgogICAgICAgICBt
X2Fzc2VtYmxlci5zdWI8NjQ+KGRlc3QsIGRlc3QsIHNyYyk7CiAgICAgfQogCi0gICAgdm9pZCBz
dWI2NChSZWdpc3RlcklEIGEsIFJlZ2lzdGVySUQgYiwgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZv
aWQgc3ViNjQoUmVnaXN0ZXJJRCBsZWZ0LCBSZWdpc3RlcklEIHJpZ2h0LCBSZWdpc3RlcklEIGRl
c3QpCiAgICAgewotICAgICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRlc3QsIGEsIGIpOworICAg
ICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRlc3QsIGxlZnQsIHJpZ2h0KTsKICAgICB9Ci0gICAg
CisKICAgICB2b2lkIHN1YjY0KFRydXN0ZWRJbW0zMiBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKICAg
ICB7Ci0gICAgICAgIGlmIChpc1VJbnQxMihpbW0ubV92YWx1ZSkpIHsKLSAgICAgICAgICAgIG1f
YXNzZW1ibGVyLnN1Yjw2ND4oZGVzdCwgZGVzdCwgVUludDEyKGltbS5tX3ZhbHVlKSk7CisgICAg
ICAgIHN1YjY0KGRlc3QsIGltbSwgZGVzdCk7CisgICAgfQorCisgICAgdm9pZCBzdWI2NChSZWdp
c3RlcklEIGxlZnQsIFRydXN0ZWRJbW0zMiBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7Cisg
ICAgICAgIGludHB0cl90IGltbWVkaWF0ZSA9IGltbS5tX3ZhbHVlOworCisgICAgICAgIGlmIChp
c1VJbnQxMihpbW1lZGlhdGUpKSB7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRl
c3QsIGxlZnQsIFVJbnQxMihpbW1lZGlhdGUpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQotICAgICAgICBpZiAoaXNVSW50MTIoLWltbS5tX3ZhbHVlKSkgewotICAgICAgICAgICAg
bV9hc3NlbWJsZXIuYWRkPDY0PihkZXN0LCBkZXN0LCBVSW50MTIoLWltbS5tX3ZhbHVlKSk7Cisg
ICAgICAgIGlmIChpc1VJbnQxMigtaW1tZWRpYXRlKSkgeworICAgICAgICAgICAgbV9hc3NlbWJs
ZXIuYWRkPDY0PihkZXN0LCBsZWZ0LCBVSW50MTIoLWltbWVkaWF0ZSkpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgc2lnbkV4dGVuZDMyVG9QdHIoaW1tLCBnZXRD
YWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOwotICAgICAgICBtX2Fzc2Vt
Ymxlci5zdWI8NjQ+KGRlc3QsIGRlc3QsIGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAgICBtX2Fz
c2VtYmxlci5zdWI8NjQ+KGRlc3QsIGxlZnQsIGRhdGFUZW1wUmVnaXN0ZXIpOwogICAgIH0KLSAg
ICAKKwogICAgIHZvaWQgc3ViNjQoVHJ1c3RlZEltbTY0IGltbSwgUmVnaXN0ZXJJRCBkZXN0KQor
ICAgIHsKKyAgICAgICAgc3ViNjQoZGVzdCwgaW1tLCBkZXN0KTsKKyAgICB9CisKKyAgICB2b2lk
IHN1YjY0KFJlZ2lzdGVySUQgbGVmdCwgVHJ1c3RlZEltbTY0IGltbSwgUmVnaXN0ZXJJRCBkZXN0
KQogICAgIHsKICAgICAgICAgaW50cHRyX3QgaW1tZWRpYXRlID0gaW1tLm1fdmFsdWU7CiAKICAg
ICAgICAgaWYgKGlzVUludDEyKGltbWVkaWF0ZSkpIHsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVy
LnN1Yjw2ND4oZGVzdCwgZGVzdCwgVUludDEyKHN0YXRpY19jYXN0PGludDMyX3Q+KGltbWVkaWF0
ZSkpKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN1Yjw2ND4oZGVzdCwgbGVmdCwgVUludDEy
KHN0YXRpY19jYXN0PGludDMyX3Q+KGltbWVkaWF0ZSkpKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogICAgICAgICBpZiAoaXNVSW50MTIoLWltbWVkaWF0ZSkpIHsKLSAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLmFkZDw2ND4oZGVzdCwgZGVzdCwgVUludDEyKHN0YXRpY19jYXN0PGlu
dDMyX3Q+KC1pbW1lZGlhdGUpKSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGQ8NjQ+KGRl
c3QsIGxlZnQsIFVJbnQxMihzdGF0aWNfY2FzdDxpbnQzMl90PigtaW1tZWRpYXRlKSkpOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgbW92ZShpbW0sIGdldENhY2hl
ZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKSk7Ci0gICAgICAgIG1fYXNzZW1ibGVy
LnN1Yjw2ND4oZGVzdCwgZGVzdCwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgIG1fYXNzZW1i
bGVyLnN1Yjw2ND4oZGVzdCwgbGVmdCwgZGF0YVRlbXBSZWdpc3Rlcik7CiAgICAgfQogCiAgICAg
dm9pZCB1cnNoaWZ0MzIoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgc2hpZnRBbW91bnQsIFJl
Z2lzdGVySUQgZGVzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvdGVzdG1hc20uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFz
bS5jcHAKaW5kZXggMTc5OTg3MTRmZDIxYzM4OWNmZDQwZDRmYTQyNjNmZjk0OWExYmI4Ny4uYmE1
MTAyYTJiYjk5OWFkNTc0OGY2ODQ3NWQ2YzhjNDVkNTBhMjFiNiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKQEAgLTkyMCw2ICs5MjAsMTI4IEBAIHZv
aWQgdGVzdE11bDMyU2lnbkV4dGVuZCgpCiAgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8bG9u
ZyBpbnQ+KG11bCwgdmFsdWUsIHZhbHVlMiksICgobG9uZyBpbnQpIHZhbHVlKSAqICgobG9uZyBp
bnQpIHZhbHVlMikpOwogICAgIH0KIH0KKwordm9pZCB0ZXN0U3ViMzJBcmdzKCkKK3sKKyAgICBm
b3IgKGF1dG8gdmFsdWUgOiBpbnQzMk9wZXJhbmRzKCkpIHsKKyAgICAgICAgYXV0byBzdWIgPSBj
b21waWxlKFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAgICAgICAgICAgIGVtaXRGdW5jdGlv
blByb2xvZ3VlKGppdCk7CisKKyAgICAgICAgICAgIGppdC5zdWIzMihHUFJJbmZvOjphcmd1bWVu
dEdQUjAsIEdQUkluZm86OmFyZ3VtZW50R1BSMSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOwor
CisgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOworICAgICAgICAgICAgaml0
LnJldCgpOworICAgICAgICB9KTsKKworICAgICAgICBmb3IgKGF1dG8gdmFsdWUyIDogaW50MzJP
cGVyYW5kcygpKQorICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQzMl90PihzdWIsIHZh
bHVlLCB2YWx1ZTIpLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4odmFsdWUgLSB2YWx1ZTIpKTsKKyAg
ICB9Cit9CisKK3ZvaWQgdGVzdFN1YjMySW1tKCkKK3sKKyAgICBmb3IgKGF1dG8gaW1tZWRpYXRl
IDogaW50MzJPcGVyYW5kcygpKSB7CisgICAgICAgIGZvciAoYXV0byBpbW1lZGlhdGUyIDogaW50
MzJPcGVyYW5kcygpKSB7CisgICAgICAgICAgICBhdXRvIHN1YiA9IGNvbXBpbGUoWz1dIChDQ2Fs
bEhlbHBlcnMmIGppdCkgeworICAgICAgICAgICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKGpp
dCk7CisKKyAgICAgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0z
MihpbW1lZGlhdGUpLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAgICAgICAgICAg
aml0LnN1YjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKGltbWVkaWF0ZTIpLCBHUFJJbmZv
OjpyZXR1cm5WYWx1ZUdQUik7CisKKyAgICAgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1
ZShqaXQpOworICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQzMl90PihzdWIpLCBzdGF0aWNfY2FzdDx1aW50
MzJfdD4oaW1tZWRpYXRlIC0gaW1tZWRpYXRlMikpOworICAgICAgICB9CisgICAgfQorfQorCit2
b2lkIHRlc3RTdWIzMkFyZ0ltbSgpCit7CisgICAgZm9yIChhdXRvIGltbWVkaWF0ZSA6IGludDMy
T3BlcmFuZHMoKSkgeworICAgICAgICBhdXRvIHN1YiA9IGNvbXBpbGUoWz1dIChDQ2FsbEhlbHBl
cnMmIGppdCkgeworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoaml0KTsKKworICAg
ICAgICAgICAgaml0LnN1YjMyKEdQUkluZm86OmFyZ3VtZW50R1BSMCwgQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoaW1tZWRpYXRlKSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworCisgICAg
ICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOworICAgICAgICAgICAgaml0LnJldCgp
OworICAgICAgICB9KTsKKworICAgICAgICBmb3IgKGF1dG8gdmFsdWUgOiBpbnQzMk9wZXJhbmRz
KCkpCisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDMyX3Q+KHN1YiwgdmFsdWUpLCBz
dGF0aWNfY2FzdDx1aW50MzJfdD4odmFsdWUgLSBpbW1lZGlhdGUpKTsKKyAgICB9Cit9CisKK3Zv
aWQgdGVzdFN1YjY0SW1tMzIoKQoreworICAgIGZvciAoYXV0byBpbW1lZGlhdGUgOiBpbnQ2NE9w
ZXJhbmRzKCkpIHsKKyAgICAgICAgZm9yIChhdXRvIGltbWVkaWF0ZTIgOiBpbnQzMk9wZXJhbmRz
KCkpIHsKKyAgICAgICAgICAgIGF1dG8gc3ViID0gY29tcGlsZShbPV0gKENDYWxsSGVscGVycyYg
aml0KSB7CisgICAgICAgICAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoaml0KTsKKworICAg
ICAgICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTY0KGltbWVkaWF0
ZSksIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgICAgICAgICBqaXQuc3ViNjQo
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoaW1tZWRpYXRlMiksIEdQUkluZm86OnJldHVyblZh
bHVlR1BSKTsKKworICAgICAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7Cisg
ICAgICAgICAgICAgICAgaml0LnJldCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBD
SEVDS19FUShpbnZva2U8dWludDY0X3Q+KHN1YiksIHN0YXRpY19jYXN0PHVpbnQ2NF90PihpbW1l
ZGlhdGUgLSBpbW1lZGlhdGUyKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgdGVzdFN1
YjY0QXJnSW1tMzIoKQoreworICAgIGZvciAoYXV0byBpbW1lZGlhdGUgOiBpbnQzMk9wZXJhbmRz
KCkpIHsKKyAgICAgICAgYXV0byBzdWIgPSBjb21waWxlKFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQp
IHsKKyAgICAgICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKGppdCk7CisKKyAgICAgICAgICAg
IGppdC5zdWI2NChHUFJJbmZvOjphcmd1bWVudEdQUjAsIENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bTMyKGltbWVkaWF0ZSksIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKworICAgICAgICAgICAg
ZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKKyAgICAgICAgICAgIGppdC5yZXQoKTsKKyAgICAg
ICAgfSk7CisKKyAgICAgICAgZm9yIChhdXRvIHZhbHVlIDogaW50NjRPcGVyYW5kcygpKQorICAg
ICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludDY0X3Q+KHN1YiwgdmFsdWUpLCBzdGF0aWNfY2Fz
dDxpbnQ2NF90Pih2YWx1ZSAtIGltbWVkaWF0ZSkpOworICAgIH0KK30KKwordm9pZCB0ZXN0U3Vi
NjRJbW02NCgpCit7CisgICAgZm9yIChhdXRvIGltbWVkaWF0ZSA6IGludDY0T3BlcmFuZHMoKSkg
eworICAgICAgICBmb3IgKGF1dG8gaW1tZWRpYXRlMiA6IGludDY0T3BlcmFuZHMoKSkgeworICAg
ICAgICAgICAgYXV0byBzdWIgPSBjb21waWxlKFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAg
ICAgICAgICAgICAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZShqaXQpOworCisgICAgICAgICAgICAg
ICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tNjQoaW1tZWRpYXRlKSwgR1BSSW5m
bzo6cmV0dXJuVmFsdWVHUFIpOworICAgICAgICAgICAgICAgIGppdC5zdWI2NChDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW02NChpbW1lZGlhdGUyKSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOwor
CisgICAgICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKKyAgICAgICAgICAg
ICAgICBqaXQucmV0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIENIRUNLX0VRKGlu
dm9rZTx1aW50NjRfdD4oc3ViKSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGltbWVkaWF0ZSAtIGlt
bWVkaWF0ZTIpKTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCB0ZXN0U3ViNjRBcmdJbW02
NCgpCit7CisgICAgZm9yIChhdXRvIGltbWVkaWF0ZSA6IGludDY0T3BlcmFuZHMoKSkgeworICAg
ICAgICBhdXRvIHN1YiA9IGNvbXBpbGUoWz1dIChDQ2FsbEhlbHBlcnMmIGppdCkgeworICAgICAg
ICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoaml0KTsKKworICAgICAgICAgICAgaml0LnN1YjY0
KEdQUkluZm86OmFyZ3VtZW50R1BSMCwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tNjQoaW1tZWRp
YXRlKSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworCisgICAgICAgICAgICBlbWl0RnVuY3Rp
b25FcGlsb2d1ZShqaXQpOworICAgICAgICAgICAgaml0LnJldCgpOworICAgICAgICB9KTsKKwor
ICAgICAgICBmb3IgKGF1dG8gdmFsdWUgOiBpbnQ2NE9wZXJhbmRzKCkpCisgICAgICAgICAgICBD
SEVDS19FUShpbnZva2U8aW50NjRfdD4oc3ViLCB2YWx1ZSksIHN0YXRpY19jYXN0PGludDY0X3Q+
KHZhbHVlIC0gaW1tZWRpYXRlKSk7CisgICAgfQorfQogI2VuZGlmCiAKICNpZiBDUFUoWDg2KSB8
fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpCkBAIC0yNjQwLDYgKzI3NjIsMTMgQEAgdm9pZCBy
dW4oY29uc3QgY2hhciogZmlsdGVyKSBXVEZfSUdOT1JFU19USFJFQURfU0FGRVRZX0FOQUxZU0lT
CiAKICNpZiBDUFUoQVJNNjQpCiAgICAgUlVOKHRlc3RNdWwzMlNpZ25FeHRlbmQoKSk7CisgICAg
UlVOKHRlc3RTdWIzMkFyZ3MoKSk7CisgICAgUlVOKHRlc3RTdWIzMkltbSgpKTsKKyAgICBSVU4o
dGVzdFN1YjMyQXJnSW1tKCkpOworICAgIFJVTih0ZXN0U3ViNjRJbW0zMigpKTsKKyAgICBSVU4o
dGVzdFN1YjY0QXJnSW1tMzIoKSk7CisgICAgUlVOKHRlc3RTdWI2NEltbTY0KCkpOworICAgIFJV
Tih0ZXN0U3ViNjRBcmdJbW02NCgpKTsKICNlbmRpZgogCiAjaWYgQ1BVKFg4NikgfHwgQ1BVKFg4
Nl82NCkgfHwgQ1BVKEFSTTY0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzUmVkdWNlU3RyZW5ndGguY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNl
U3RyZW5ndGguY3BwCmluZGV4IDllZmQzOTBhYmVjZTYyZjA2MTMwOWIyYTliNTA5MzIyNTc1YjRh
ZWIuLjQ0MzgxMzIyZGI1NGY1ZWE3YjQ4YWU3Zjk2OTUxZDE2NzJmNWQ2MDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAKQEAgLTYyNSwxNSArNjI1
LDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKG1fdmFsdWUt
PmlzSW50ZWdlcigpKSB7Ci0gICAgICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBTdWIodmFsdWUs
IGNvbnN0YW50KQotICAgICAgICAgICAgICAgIC8vIEludG8gdGhpczogQWRkKHZhbHVlLCAtY29u
c3RhbnQpCi0gICAgICAgICAgICAgICAgaWYgKFZhbHVlKiBuZWdhdGVkQ29uc3RhbnQgPSBtX3Zh
bHVlLT5jaGlsZCgxKS0+bmVnQ29uc3RhbnQobV9wcm9jKSkgewotICAgICAgICAgICAgICAgICAg
ICBtX2luc2VydGlvblNldC5pbnNlcnRWYWx1ZShtX2luZGV4LCBuZWdhdGVkQ29uc3RhbnQpOwot
ICAgICAgICAgICAgICAgICAgICByZXBsYWNlV2l0aE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICAg
ICAgICAgICAgICBBZGQsIG1fdmFsdWUtPm9yaWdpbigpLCBtX3ZhbHVlLT5jaGlsZCgwKSwgbmVn
YXRlZENvbnN0YW50KTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIC8vIFR1cm4gdGhpczogU3Vi
KDAsIHZhbHVlKQogICAgICAgICAgICAgICAgIC8vIEludG8gdGhpczogTmVnKHZhbHVlKQogICAg
ICAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+aXNJbnQoMCkpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCmluZGV4IGY4NDM2YWQ5
MzRhZDc1NmNhZjljNWI4NTNiOTg0NGMwNTYxMjI3MDkuLjEzODA4ZGU4M2JkYjExNzcwMWYxOGE1
NjU1Njk4MmRlMzhkM2IzYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyT3Bjb2RlLm9wY29kZXMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJPcGNvZGUub3Bjb2RlcwpAQCAtMTc5LDYgKzE3OSw3IEBAIFN1YjMyIFU6RzozMiwgVVpEOkc6
MzIKIAogYXJtNjQ6IFN1YjMyIFU6RzozMiwgVTpHOjMyLCBaRDpHOjMyCiAgICAgVG1wLCBUbXAs
IFRtcAorICAgIFRtcCwgSW1tLCBUbXAKIAogNjQ6IFN1YjY0IFU6Rzo2NCwgVUQ6Rzo2NAogICAg
IFRtcCwgVG1wCkBAIC0xOTIsNiArMTkzLDcgQEAgYXJtNjQ6IFN1YjMyIFU6RzozMiwgVTpHOjMy
LCBaRDpHOjMyCiAKIGFybTY0OiBTdWI2NCBVOkc6NjQsIFU6Rzo2NCwgRDpHOjY0CiAgICAgVG1w
LCBUbXAsIFRtcAorICAgIFRtcCwgSW1tLCBUbXAKIAogU3ViRG91YmxlIFU6Rjo2NCwgVTpGOjY0
LCBEOkY6NjQKICAgICBhcm02NDogVG1wLCBUbXAsIFRtcApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3Ri
My5oCmluZGV4IGEyY2ExMzViMGRmNTk3YTE5OGIyMDJhMjAyOTVkNDViNjE1M2QyODkuLjY4MDY1
M2M2MTY1YWNlYzY3ZTVlNGI2ZGUyZmRjYTBkYTQxMDk3NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
dGVzdGIzLmgKQEAgLTEwMjcsNiArMTAyNyw3IEBAIHZvaWQgdGVzdFN1Yk1lbUFyZyhpbnQ2NF90
LCBpbnQ2NF90KTsKIHZvaWQgdGVzdFN1YkltbU1lbShpbnQ2NF90LCBpbnQ2NF90KTsKIHZvaWQg
dGVzdFN1Yk1lbUltbShpbnQ2NF90LCBpbnQ2NF90KTsKIHZvaWQgdGVzdFN1YkFyZ3MzMihpbnQs
IGludCk7Cit2b2lkIHRlc3RTdWJBcmdzMzJaZXJvRXh0ZW5kKGludCwgaW50KTsKIHZvaWQgdGVz
dFN1YkFyZ0ltbTMyKGludCwgaW50KTsKIHZvaWQgdGVzdFN1YkltbUFyZzMyKGludCwgaW50KTsK
IHZvaWQgdGVzdFN1Yk1lbUFyZzMyKGludDMyX3QsIGludDMyX3QpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy90ZXN0YjNfMi5jcHAKaW5kZXggN2NiMzRjOGEwYjc3MTNiNTY1MTY1ZDY5ZjJlN2E2NjRh
MDRjOTk2Ny4uNDgyMzYwMjc0YzI3Yzg3ZWFlMDQ3YTQ1N2YyMjZiYzA1OGU1YzhjZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzIuY3BwCkBAIC0yMDkyLDYgKzIwOTIsMjggQEAgdm9p
ZCB0ZXN0U3ViQXJnczMyKGludCBhLCBpbnQgYikKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGlu
dD4ocHJvYywgYSwgYikgPT0gYSAtIGIpOwogfQogCit2b2lkIHRlc3RTdWJBcmdzMzJaZXJvRXh0
ZW5kKGludCBhLCBpbnQgYikKK3sKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICBpZiAocHJvYy5v
cHRMZXZlbCgpIDwgMSkKKyAgICAgICAgcmV0dXJuOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAorICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAorICAgICAgICAgICAgcHJvYywgWkV4dDMyLCBPcmlnaW4oKSwKKyAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgU3ViLCBPcmlnaW4oKSwK
KyAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAg
ICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCisgICAgICAgICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKSksCisgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAg
ICAgICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAorICAgICAgICAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMSkpKSkpOworCisgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjx1aW50NjRf
dD4ocHJvYywgYSwgYikgPT0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHN0YXRpY19jYXN0PHVpbnQz
Ml90PihhIC0gYikpKTsKK30KKwogdm9pZCB0ZXN0U3ViQXJnSW1tMzIoaW50IGEsIGludCBiKQog
ewogICAgIFByb2NlZHVyZSBwcm9jOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL3Rlc3RiM18zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5jcHAK
aW5kZXggYjcxNGMzNTc3NDQ4YmM1YjY5MTg5NzU3ZGMxOThiODMxMjQ4NzBmMi4uODU5YjhmYzll
NjM1NTg0NjJkODVmMWM1ZTdkM2EwMTA0MjU4ZjA1MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL3Rlc3RiM18zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
dGVzdGIzXzMuY3BwCkBAIC0zMzAxLDYgKzMzMDEsMTAgQEAgdm9pZCBhZGRBcmdUZXN0cyhjb25z
dCBjaGFyKiBmaWx0ZXIsIERlcXVlPFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQoKT4+PiYgdGFza3Mp
CiAgICAgUlVOKHRlc3RTdWJBcmdzMzIoMSwgMikpOwogICAgIFJVTih0ZXN0U3ViQXJnczMyKDEz
LCAtNDIpKTsKICAgICBSVU4odGVzdFN1YkFyZ3MzMigtMTMsIDQyKSk7CisgICAgUlVOKHRlc3RT
dWJBcmdzMzJaZXJvRXh0ZW5kKDEsIDEpKTsKKyAgICBSVU4odGVzdFN1YkFyZ3MzMlplcm9FeHRl
bmQoMSwgMikpOworICAgIFJVTih0ZXN0U3ViQXJnczMyWmVyb0V4dGVuZCgxMywgLTQyKSk7Cisg
ICAgUlVOKHRlc3RTdWJBcmdzMzJaZXJvRXh0ZW5kKC0xMywgNDIpKTsKICAgICBSVU4odGVzdFN1
YkFyZ0ltbTMyKDEsIDEpKTsKICAgICBSVU4odGVzdFN1YkFyZ0ltbTMyKDEsIDIpKTsKICAgICBS
VU4odGVzdFN1YkFyZ0ltbTMyKDEzLCAtNDIpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431300</attachid>
            <date>2021-06-13 20:47:32 -0700</date>
            <delta_ts>2021-06-14 08:40:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226937-20210613224731.patch</filename>
            <type>text/plain</type>
            <size>15388</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4ODE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NWQxODU3NjdkNGZmNjY1NzAxZThkYTM3OWUzNDAyMTMwNTNkMjhkLi43ZTY3MjVhNmRjYjg5ODRm
NWFlNWEzZjY3MTExZTVmMDc1YTJjNzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3MiBAQAorMjAyMS0wNi0xMyAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIEFpciBvcGNvZGUgc3ViMzIvNjQoUmVnLCBJbW0sIFJlZykgZm9y
bSBmb3IgQVJNNjQgYW5kIHNlbGVjdCB0aGlzIGluc3RydWN0aW9uIGluIEFpcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2OTM3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJldmlvdXNseSwgQWlyIGFy
bTY0IHN1YjMyLzY0IHV0aWxpemUgc3ViKEltbSwgVG1wKSBhdCBvcHRsZXZlbCA9IDAgYW5kIAor
ICAgICAgICBhZGQoVG1wLCAtSW1tKSBhdCBvcHRsZXZlbCA+IDAgdG8gcGVyZm9ybSBhbmQgb3B0
aW1pemUgc3ViKFRtcCwgSW1tLCBUbXApLgorICAgICAgICBUaGUgaXNzdWUgd2l0aCB0aGlzIGlz
IHRoYXQgd2Ugd2VyZSBub3QgZWxpZGluZyByZWR1bmRhbnQgb3BlcmF0aW9ucy4gSW4gCisgICAg
ICAgIGFkZGl0aW9uLCB0aGUgaW5zdHJ1Y3Rpb24gc2VsZWN0b3Igc2hvdWxkIG5vdCBoYXZlIHRv
byBzdHJvbmcgb2YgcmVsaWFuY2UgCisgICAgICAgIG9uIHRoaXMga2luZCBvZiBjYW5vbmljYWxp
emF0aW9uLgorCisgICAgICAgIEZvciBleGFtcGxlOgorICAgICAgICAvLyBCMyBJUgorICAgICAg
ICBAMCA9IFRydW5jKEFyZ3VtZW50UmVnKDApKQorICAgICAgICBAMSA9IENvbnN0CisgICAgICAg
IEAyID0gU3ViKEAwLCBAMSkKKyAgICAgICAgQDMgPSBSZXR1cm4oQDIpCisKKyAgICAgICAgLy8g
T2xkIG9wdGltaXplZCBBaXIgSVIKKyAgICAgICAgLy8gT3B0TGV2ZWwgPSAwCisgICAgICAgIE1v
dmUgICAgJXgwLCAldG1wMSwgQDAKKyAgICAgICAgTW92ZSAkQ29uc3QsICV0bXAyLCBAMQorICAg
ICAgICBNb3ZlICAldG1wMSwgJXRtcDAsIEAyIC8vIFJlZHVuZGFudAorICAgICAgICBTdWIgICRD
b25zdCwgJXRtcDAsIEAyCisgICAgICAgIE1vdmUgICV0bXAwLCAgICV4MCwgQDMKKyAgICAgICAg
UmV0MzIgICAleDAsICAgICAgICBAMworCisgICAgICAgIC8vIE9wdExldmVsID0gMgorICAgICAg
ICBNb3ZlICQtQ29uc3QsICV4MSwgICAgICBAMiAvLyBSZWR1bmRhbnQKKyAgICAgICAgQWRkICAg
ICAgJXgwLCAleDEsICV4MCwgQDIKKyAgICAgICAgUmV0ICAgICAgJXgwLCAgICAgICAgICAgQDMK
KworICAgICAgICBUbyByZW1vdmUgdGhvc2UgcmVkdW5kYW50IGluc3RydWN0aW9ucywgQWlyIGFy
bTY0IHN1YjMyLzY0IG9wY29kZSBzaG91bGQgCisgICAgICAgIGluZGljYXRlIGEgbmV3IGZvcm0g
c3ViKFRtcCwgSW1tLCBUbXApLiBJbiB0aGlzIGNhc2UsIHRoZSBTdWIgaW1tZWRpYXRlIGlzCisg
ICAgICAgIG5vIGxvbmdlciBzdWJzdW1lZCBieSB0aGUgQWRkIGltbWVkaWF0ZSBmb3JtLgorCisg
ICAgICAgIC8vIE5ldyBvcHRpbWl6ZWQgQWlyIElSCisgICAgICAgIC8vIE9wdExldmVsID0gMAor
ICAgICAgICBNb3ZlICAgICV4MCwgICV0bXAxLCAgICAgICAgQDAKKyAgICAgICAgTW92ZSAkQ29u
c3QsICAldG1wMiwgICAgICAgIEAxCisgICAgICAgIFN1YiAgICV0bXAxLCAkQ29uc3QsICV0bXAw
LCBAMgorICAgICAgICBNb3ZlICAldG1wMCwgICAgJXgwLCAgICAgICAgQDMKKyAgICAgICAgUmV0
MzIgICAleDAsICAgICAgICAgICAgICAgIEAzCisKKyAgICAgICAgLy8gT3B0TGV2ZWwgPSAyCisg
ICAgICAgIFN1YiAleDAsICRDb25zdCwgJXgwLCBAMgorICAgICAgICBSZXQgJXgwLCAgICAgICAg
ICAgICAgQDMKKworICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0Lmg6Cisg
ICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN1YjMyKToKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3ViNjQpOgorICAgICAgICAqIGFzc2VtYmxlci90ZXN0bWFz
bS5jcHA6CisgICAgICAgIChKU0M6OnRlc3RTdWIzMkFyZ3MpOgorICAgICAgICAoSlNDOjp0ZXN0
U3ViMzJJbW0pOgorICAgICAgICAoSlNDOjp0ZXN0U3ViMzJBcmdJbW0pOgorICAgICAgICAoSlND
Ojp0ZXN0U3ViNjRJbW0zMik6CisgICAgICAgIChKU0M6OnRlc3RTdWI2NEFyZ0ltbTMyKToKKyAg
ICAgICAgKEpTQzo6dGVzdFN1YjY0SW1tNjQpOgorICAgICAgICAoSlNDOjp0ZXN0U3ViNjRBcmdJ
bW02NCk6CisgICAgICAgICogYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHA6CisgICAgICAgICogYjMv
YWlyL0Fpck9wY29kZS5vcGNvZGVzOgorICAgICAgICAqIGIzL3Rlc3RiMy5oOgorICAgICAgICAq
IGIzL3Rlc3RiM18yLmNwcDoKKyAgICAgICAgKHRlc3RTdWJBcmdzMzJaZXJvRXh0ZW5kKToKKyAg
ICAgICAgKiBiMy90ZXN0YjNfMy5jcHA6CisgICAgICAgIChhZGRBcmdUZXN0cyk6CisKIDIwMjEt
MDYtMTIgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CiAKICAgICAg
ICAgLVdub25udWxsIHdhcm5pbmcgaW4gSklUQ2FsbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKaW5kZXggNTQ0NjRm
MDQwOGM4YWY1NGNhZWViYzM0NDAyYmUzMWRiNmE3NWJjZi4uZjg2YWVjMWM1NDAwNmVlZDFkNWM1
ZGQzZDU2ZDhkMDAzZmY3NjEyYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKQEAgLTg5MywxNyArODkzLDI0IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgc3ViMzIoVHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBkZXN0
KQogICAgIHsKLSAgICAgICAgaWYgKGlzVUludDEyKGltbS5tX3ZhbHVlKSkgewotICAgICAgICAg
ICAgbV9hc3NlbWJsZXIuc3ViPDMyPihkZXN0LCBkZXN0LCBVSW50MTIoaW1tLm1fdmFsdWUpKTsK
KyAgICAgICAgc3ViMzIoZGVzdCwgaW1tLCBkZXN0KTsKKyAgICB9CisKKyAgICB2b2lkIHN1YjMy
KFJlZ2lzdGVySUQgbGVmdCwgVHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBkZXN0KQorICAg
IHsKKyAgICAgICAgaW50cHRyX3QgaW1tZWRpYXRlID0gaW1tLm1fdmFsdWU7CisKKyAgICAgICAg
aWYgKGlzVUludDEyKGltbWVkaWF0ZSkpIHsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN1Yjwz
Mj4oZGVzdCwgbGVmdCwgVUludDEyKGltbWVkaWF0ZSkpOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9Ci0gICAgICAgIGlmIChpc1VJbnQxMigtaW1tLm1fdmFsdWUpKSB7Ci0gICAgICAg
ICAgICBtX2Fzc2VtYmxlci5hZGQ8MzI+KGRlc3QsIGRlc3QsIFVJbnQxMigtaW1tLm1fdmFsdWUp
KTsKKyAgICAgICAgaWYgKGlzVUludDEyKC1pbW1lZGlhdGUpKSB7CisgICAgICAgICAgICBtX2Fz
c2VtYmxlci5hZGQ8MzI+KGRlc3QsIGxlZnQsIFVJbnQxMigtaW1tZWRpYXRlKSk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICBtb3ZlKGltbSwgZ2V0Q2FjaGVkRGF0
YVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpKTsKLSAgICAgICAgbV9hc3NlbWJsZXIuc3Vi
PDMyPihkZXN0LCBkZXN0LCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgbV9hc3NlbWJsZXIu
c3ViPDMyPihkZXN0LCBsZWZ0LCBkYXRhVGVtcFJlZ2lzdGVyKTsKICAgICB9CiAKICAgICB2b2lk
IHN1YjMyKFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVzcykKQEAgLTk1NCw0MSArOTYx
LDUzIEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIuc3ViPDY0PihkZXN0LCBkZXN0LCBz
cmMpOwogICAgIH0KIAotICAgIHZvaWQgc3ViNjQoUmVnaXN0ZXJJRCBhLCBSZWdpc3RlcklEIGIs
IFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIHN1YjY0KFJlZ2lzdGVySUQgbGVmdCwgUmVnaXN0
ZXJJRCByaWdodCwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgbV9hc3NlbWJsZXIu
c3ViPDY0PihkZXN0LCBhLCBiKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuc3ViPDY0PihkZXN0LCBs
ZWZ0LCByaWdodCk7CiAgICAgfQotICAgIAorCiAgICAgdm9pZCBzdWI2NChUcnVzdGVkSW1tMzIg
aW1tLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBpZiAoaXNVSW50MTIoaW1tLm1f
dmFsdWUpKSB7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRlc3QsIGRlc3QsIFVJ
bnQxMihpbW0ubV92YWx1ZSkpOworICAgICAgICBzdWI2NChkZXN0LCBpbW0sIGRlc3QpOworICAg
IH0KKworICAgIHZvaWQgc3ViNjQoUmVnaXN0ZXJJRCBsZWZ0LCBUcnVzdGVkSW1tMzIgaW1tLCBS
ZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBpbnRwdHJfdCBpbW1lZGlhdGUgPSBpbW0u
bV92YWx1ZTsKKworICAgICAgICBpZiAoaXNVSW50MTIoaW1tZWRpYXRlKSkgeworICAgICAgICAg
ICAgbV9hc3NlbWJsZXIuc3ViPDY0PihkZXN0LCBsZWZ0LCBVSW50MTIoaW1tZWRpYXRlKSk7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGlzVUludDEyKC1pbW0u
bV92YWx1ZSkpIHsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZDw2ND4oZGVzdCwgZGVzdCwg
VUludDEyKC1pbW0ubV92YWx1ZSkpOworICAgICAgICBpZiAoaXNVSW50MTIoLWltbWVkaWF0ZSkp
IHsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZDw2ND4oZGVzdCwgbGVmdCwgVUludDEyKC1p
bW1lZGlhdGUpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIHNp
Z25FeHRlbmQzMlRvUHRyKGltbSwgZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklEQW5kSW52YWxp
ZGF0ZSgpKTsKLSAgICAgICAgbV9hc3NlbWJsZXIuc3ViPDY0PihkZXN0LCBkZXN0LCBkYXRhVGVt
cFJlZ2lzdGVyKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuc3ViPDY0PihkZXN0LCBsZWZ0LCBkYXRh
VGVtcFJlZ2lzdGVyKTsKICAgICB9Ci0gICAgCisKICAgICB2b2lkIHN1YjY0KFRydXN0ZWRJbW02
NCBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIHN1YjY0KGRlc3QsIGltbSwg
ZGVzdCk7CisgICAgfQorCisgICAgdm9pZCBzdWI2NChSZWdpc3RlcklEIGxlZnQsIFRydXN0ZWRJ
bW02NCBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIGludHB0cl90IGltbWVk
aWF0ZSA9IGltbS5tX3ZhbHVlOwogCiAgICAgICAgIGlmIChpc1VJbnQxMihpbW1lZGlhdGUpKSB7
Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRlc3QsIGRlc3QsIFVJbnQxMihzdGF0
aWNfY2FzdDxpbnQzMl90PihpbW1lZGlhdGUpKSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5z
dWI8NjQ+KGRlc3QsIGxlZnQsIFVJbnQxMihzdGF0aWNfY2FzdDxpbnQzMl90PihpbW1lZGlhdGUp
KSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgaWYgKGlzVUludDEy
KC1pbW1lZGlhdGUpKSB7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGQ8NjQ+KGRlc3QsIGRl
c3QsIFVJbnQxMihzdGF0aWNfY2FzdDxpbnQzMl90PigtaW1tZWRpYXRlKSkpOworICAgICAgICAg
ICAgbV9hc3NlbWJsZXIuYWRkPDY0PihkZXN0LCBsZWZ0LCBVSW50MTIoc3RhdGljX2Nhc3Q8aW50
MzJfdD4oLWltbWVkaWF0ZSkpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAg
ICAgICAgIG1vdmUoaW1tLCBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRl
KCkpOwotICAgICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRlc3QsIGRlc3QsIGRhdGFUZW1wUmVn
aXN0ZXIpOworICAgICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRlc3QsIGxlZnQsIGRhdGFUZW1w
UmVnaXN0ZXIpOwogICAgIH0KIAogICAgIHZvaWQgdXJzaGlmdDMyKFJlZ2lzdGVySUQgc3JjLCBS
ZWdpc3RlcklEIHNoaWZ0QW1vdW50LCBSZWdpc3RlcklEIGRlc3QpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCmluZGV4IDE3OTk4NzE0ZmQyMWMzODljZmQ0
MGQ0ZmE0MjYzZmY5NDlhMWJiODcuLmJhNTEwMmEyYmI5OTlhZDU3NDhmNjg0NzVkNmM4YzQ1ZDUw
YTIxYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1h
c20uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3Bw
CkBAIC05MjAsNiArOTIwLDEyOCBAQCB2b2lkIHRlc3RNdWwzMlNpZ25FeHRlbmQoKQogICAgICAg
ICAgICAgQ0hFQ0tfRVEoaW52b2tlPGxvbmcgaW50PihtdWwsIHZhbHVlLCB2YWx1ZTIpLCAoKGxv
bmcgaW50KSB2YWx1ZSkgKiAoKGxvbmcgaW50KSB2YWx1ZTIpKTsKICAgICB9CiB9CisKK3ZvaWQg
dGVzdFN1YjMyQXJncygpCit7CisgICAgZm9yIChhdXRvIHZhbHVlIDogaW50MzJPcGVyYW5kcygp
KSB7CisgICAgICAgIGF1dG8gc3ViID0gY29tcGlsZShbPV0gKENDYWxsSGVscGVycyYgaml0KSB7
CisgICAgICAgICAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZShqaXQpOworCisgICAgICAgICAgICBq
aXQuc3ViMzIoR1BSSW5mbzo6YXJndW1lbnRHUFIwLCBHUFJJbmZvOjphcmd1bWVudEdQUjEsIEdQ
UkluZm86OnJldHVyblZhbHVlR1BSKTsKKworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9n
dWUoaml0KTsKKyAgICAgICAgICAgIGppdC5yZXQoKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAg
Zm9yIChhdXRvIHZhbHVlMiA6IGludDMyT3BlcmFuZHMoKSkKKyAgICAgICAgICAgIENIRUNLX0VR
KGludm9rZTx1aW50MzJfdD4oc3ViLCB2YWx1ZSwgdmFsdWUyKSwgc3RhdGljX2Nhc3Q8dWludDMy
X3Q+KHZhbHVlIC0gdmFsdWUyKSk7CisgICAgfQorfQorCit2b2lkIHRlc3RTdWIzMkltbSgpCit7
CisgICAgZm9yIChhdXRvIGltbWVkaWF0ZSA6IGludDMyT3BlcmFuZHMoKSkgeworICAgICAgICBm
b3IgKGF1dG8gaW1tZWRpYXRlMiA6IGludDMyT3BlcmFuZHMoKSkgeworICAgICAgICAgICAgYXV0
byBzdWIgPSBjb21waWxlKFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAgICAgICAgICAgICAg
ICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZShqaXQpOworCisgICAgICAgICAgICAgICAgaml0Lm1vdmUo
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoaW1tZWRpYXRlKSwgR1BSSW5mbzo6cmV0dXJuVmFs
dWVHUFIpOworICAgICAgICAgICAgICAgIGppdC5zdWIzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJ
bW0zMihpbW1lZGlhdGUyKSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworCisgICAgICAgICAg
ICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKKyAgICAgICAgICAgICAgICBqaXQucmV0
KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50MzJf
dD4oc3ViKSwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGltbWVkaWF0ZSAtIGltbWVkaWF0ZTIpKTsK
KyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCB0ZXN0U3ViMzJBcmdJbW0oKQoreworICAgIGZv
ciAoYXV0byBpbW1lZGlhdGUgOiBpbnQzMk9wZXJhbmRzKCkpIHsKKyAgICAgICAgYXV0byBzdWIg
PSBjb21waWxlKFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAgICAgICAgICAgIGVtaXRGdW5j
dGlvblByb2xvZ3VlKGppdCk7CisKKyAgICAgICAgICAgIGppdC5zdWIzMihHUFJJbmZvOjphcmd1
bWVudEdQUjAsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKGltbWVkaWF0ZSksIEdQUkluZm86
OnJldHVyblZhbHVlR1BSKTsKKworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0
KTsKKyAgICAgICAgICAgIGppdC5yZXQoKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZm9yIChh
dXRvIHZhbHVlIDogaW50MzJPcGVyYW5kcygpKQorICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tl
PHVpbnQzMl90PihzdWIsIHZhbHVlKSwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHZhbHVlIC0gaW1t
ZWRpYXRlKSk7CisgICAgfQorfQorCit2b2lkIHRlc3RTdWI2NEltbTMyKCkKK3sKKyAgICBmb3Ig
KGF1dG8gaW1tZWRpYXRlIDogaW50NjRPcGVyYW5kcygpKSB7CisgICAgICAgIGZvciAoYXV0byBp
bW1lZGlhdGUyIDogaW50MzJPcGVyYW5kcygpKSB7CisgICAgICAgICAgICBhdXRvIHN1YiA9IGNv
bXBpbGUoWz1dIChDQ2FsbEhlbHBlcnMmIGppdCkgeworICAgICAgICAgICAgICAgIGVtaXRGdW5j
dGlvblByb2xvZ3VlKGppdCk7CisKKyAgICAgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW02NChpbW1lZGlhdGUpLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7Cisg
ICAgICAgICAgICAgICAgaml0LnN1YjY0KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKGltbWVk
aWF0ZTIpLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisKKyAgICAgICAgICAgICAgICBlbWl0
RnVuY3Rpb25FcGlsb2d1ZShqaXQpOworICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90PihzdWIpLCBz
dGF0aWNfY2FzdDx1aW50NjRfdD4oaW1tZWRpYXRlIC0gaW1tZWRpYXRlMikpOworICAgICAgICB9
CisgICAgfQorfQorCit2b2lkIHRlc3RTdWI2NEFyZ0ltbTMyKCkKK3sKKyAgICBmb3IgKGF1dG8g
aW1tZWRpYXRlIDogaW50MzJPcGVyYW5kcygpKSB7CisgICAgICAgIGF1dG8gc3ViID0gY29tcGls
ZShbPV0gKENDYWxsSGVscGVycyYgaml0KSB7CisgICAgICAgICAgICBlbWl0RnVuY3Rpb25Qcm9s
b2d1ZShqaXQpOworCisgICAgICAgICAgICBqaXQuc3ViNjQoR1BSSW5mbzo6YXJndW1lbnRHUFIw
LCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihpbW1lZGlhdGUpLCBHUFJJbmZvOjpyZXR1cm5W
YWx1ZUdQUik7CisKKyAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7CisgICAg
ICAgICAgICBqaXQucmV0KCk7CisgICAgICAgIH0pOworCisgICAgICAgIGZvciAoYXV0byB2YWx1
ZSA6IGludDY0T3BlcmFuZHMoKSkKKyAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ2NF90
PihzdWIsIHZhbHVlKSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4odmFsdWUgLSBpbW1lZGlhdGUpKTsK
KyAgICB9Cit9CisKK3ZvaWQgdGVzdFN1YjY0SW1tNjQoKQoreworICAgIGZvciAoYXV0byBpbW1l
ZGlhdGUgOiBpbnQ2NE9wZXJhbmRzKCkpIHsKKyAgICAgICAgZm9yIChhdXRvIGltbWVkaWF0ZTIg
OiBpbnQ2NE9wZXJhbmRzKCkpIHsKKyAgICAgICAgICAgIGF1dG8gc3ViID0gY29tcGlsZShbPV0g
KENDYWxsSGVscGVycyYgaml0KSB7CisgICAgICAgICAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9n
dWUoaml0KTsKKworICAgICAgICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbTY0KGltbWVkaWF0ZSksIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgICAg
ICAgICBqaXQuc3ViNjQoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tNjQoaW1tZWRpYXRlMiksIEdQ
UkluZm86OnJldHVyblZhbHVlR1BSKTsKKworICAgICAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVw
aWxvZ3VlKGppdCk7CisgICAgICAgICAgICAgICAgaml0LnJldCgpOworICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+KHN1YiksIHN0YXRpY19jYXN0
PHVpbnQ2NF90PihpbW1lZGlhdGUgLSBpbW1lZGlhdGUyKSk7CisgICAgICAgIH0KKyAgICB9Cit9
CisKK3ZvaWQgdGVzdFN1YjY0QXJnSW1tNjQoKQoreworICAgIGZvciAoYXV0byBpbW1lZGlhdGUg
OiBpbnQ2NE9wZXJhbmRzKCkpIHsKKyAgICAgICAgYXV0byBzdWIgPSBjb21waWxlKFs9XSAoQ0Nh
bGxIZWxwZXJzJiBqaXQpIHsKKyAgICAgICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKGppdCk7
CisKKyAgICAgICAgICAgIGppdC5zdWI2NChHUFJJbmZvOjphcmd1bWVudEdQUjAsIENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbTY0KGltbWVkaWF0ZSksIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsK
KworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKKyAgICAgICAgICAgIGpp
dC5yZXQoKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZm9yIChhdXRvIHZhbHVlIDogaW50NjRP
cGVyYW5kcygpKQorICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludDY0X3Q+KHN1YiwgdmFs
dWUpLCBzdGF0aWNfY2FzdDxpbnQ2NF90Pih2YWx1ZSAtIGltbWVkaWF0ZSkpOworICAgIH0KK30K
ICNlbmRpZgogCiAjaWYgQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KQpAQCAt
MjY0MCw2ICsyNzYyLDEzIEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikgV1RGX0lHTk9S
RVNfVEhSRUFEX1NBRkVUWV9BTkFMWVNJUwogCiAjaWYgQ1BVKEFSTTY0KQogICAgIFJVTih0ZXN0
TXVsMzJTaWduRXh0ZW5kKCkpOworICAgIFJVTih0ZXN0U3ViMzJBcmdzKCkpOworICAgIFJVTih0
ZXN0U3ViMzJJbW0oKSk7CisgICAgUlVOKHRlc3RTdWIzMkFyZ0ltbSgpKTsKKyAgICBSVU4odGVz
dFN1YjY0SW1tMzIoKSk7CisgICAgUlVOKHRlc3RTdWI2NEFyZ0ltbTMyKCkpOworICAgIFJVTih0
ZXN0U3ViNjRJbW02NCgpKTsKKyAgICBSVU4odGVzdFN1YjY0QXJnSW1tNjQoKSk7CiAjZW5kaWYK
IAogI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpIHx8IENQVShBUk02NCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAppbmRleCA5ZWZkMzkwYWJlY2U2
MmYwNjEzMDliMmE5YjUwOTMyMjU3NWI0YWViLi40NDM4MTMyMmRiNTRmNWVhN2I0OGFlN2Y5Njk1
MWQxNjcyZjVkNjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1
Y2VTdHJlbmd0aC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3Ry
ZW5ndGguY3BwCkBAIC02MjUsMTUgKzYyNSw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB9CiAK
ICAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5pc0ludGVnZXIoKSkgewotICAgICAgICAgICAgICAg
IC8vIFR1cm4gdGhpczogU3ViKHZhbHVlLCBjb25zdGFudCkKLSAgICAgICAgICAgICAgICAvLyBJ
bnRvIHRoaXM6IEFkZCh2YWx1ZSwgLWNvbnN0YW50KQotICAgICAgICAgICAgICAgIGlmIChWYWx1
ZSogbmVnYXRlZENvbnN0YW50ID0gbV92YWx1ZS0+Y2hpbGQoMSktPm5lZ0NvbnN0YW50KG1fcHJv
YykpIHsKLSAgICAgICAgICAgICAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0VmFsdWUobV9p
bmRleCwgbmVnYXRlZENvbnN0YW50KTsKLSAgICAgICAgICAgICAgICAgICAgcmVwbGFjZVdpdGhO
ZXc8VmFsdWU+KAotICAgICAgICAgICAgICAgICAgICAgICAgQWRkLCBtX3ZhbHVlLT5vcmlnaW4o
KSwgbV92YWx1ZS0+Y2hpbGQoMCksIG5lZ2F0ZWRDb25zdGFudCk7Ci0gICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAvLyBUdXJuIHRoaXM6IFN1YigwLCB2YWx1ZSkKICAgICAgICAgICAgICAgICAvLyBJ
bnRvIHRoaXM6IE5lZyh2YWx1ZSkKICAgICAgICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQo
MCktPmlzSW50KDApKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0Fpck9wY29kZS5vcGNvZGVzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNv
ZGUub3Bjb2RlcwppbmRleCBmODQzNmFkOTM0YWQ3NTZjYWY5YzViODUzYjk4NDRjMDU2MTIyNzA5
Li4xMzgwOGRlODNiZGIxMTc3MDFmMThhNTY1NTY5ODJkZTM4ZDNiM2I4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKQEAgLTE3OSw2ICsxNzks
NyBAQCBTdWIzMiBVOkc6MzIsIFVaRDpHOjMyCiAKIGFybTY0OiBTdWIzMiBVOkc6MzIsIFU6Rzoz
MiwgWkQ6RzozMgogICAgIFRtcCwgVG1wLCBUbXAKKyAgICBUbXAsIEltbSwgVG1wCiAKIDY0OiBT
dWI2NCBVOkc6NjQsIFVEOkc6NjQKICAgICBUbXAsIFRtcApAQCAtMTkyLDYgKzE5Myw3IEBAIGFy
bTY0OiBTdWIzMiBVOkc6MzIsIFU6RzozMiwgWkQ6RzozMgogCiBhcm02NDogU3ViNjQgVTpHOjY0
LCBVOkc6NjQsIEQ6Rzo2NAogICAgIFRtcCwgVG1wLCBUbXAKKyAgICBUbXAsIEltbSwgVG1wCiAK
IFN1YkRvdWJsZSBVOkY6NjQsIFU6Rjo2NCwgRDpGOjY0CiAgICAgYXJtNjQ6IFRtcCwgVG1wLCBU
bXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaAppbmRleCBhMmNhMTM1YjBkZjU5N2ExOThiMjAy
YTIwMjk1ZDQ1YjYxNTNkMjg5Li42ODA2NTNjNjE2NWFjZWM2N2U1ZTRiNmRlMmZkY2EwZGE0MTA5
Nzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oCkBAIC0xMDI3LDYgKzEwMjcsNyBAQCB2
b2lkIHRlc3RTdWJNZW1BcmcoaW50NjRfdCwgaW50NjRfdCk7CiB2b2lkIHRlc3RTdWJJbW1NZW0o
aW50NjRfdCwgaW50NjRfdCk7CiB2b2lkIHRlc3RTdWJNZW1JbW0oaW50NjRfdCwgaW50NjRfdCk7
CiB2b2lkIHRlc3RTdWJBcmdzMzIoaW50LCBpbnQpOwordm9pZCB0ZXN0U3ViQXJnczMyWmVyb0V4
dGVuZChpbnQsIGludCk7CiB2b2lkIHRlc3RTdWJBcmdJbW0zMihpbnQsIGludCk7CiB2b2lkIHRl
c3RTdWJJbW1BcmczMihpbnQsIGludCk7CiB2b2lkIHRlc3RTdWJNZW1BcmczMihpbnQzMl90LCBp
bnQzMl90KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMi5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzIuY3BwCmluZGV4IDdjYjM0Yzhh
MGI3NzEzYjU2NTE2NWQ2OWYyZTdhNjY0YTA0Yzk5NjcuLjQ4MjM2MDI3NGMyN2M4N2VhZTA0N2E0
NTdmMjI2YmMwNThlNWM4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90
ZXN0YjNfMi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18yLmNwcApA
QCAtMjA5Miw2ICsyMDkyLDI4IEBAIHZvaWQgdGVzdFN1YkFyZ3MzMihpbnQgYSwgaW50IGIpCiAg
ICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIGEsIGIpID09IGEgLSBiKTsKIH0KIAor
dm9pZCB0ZXN0U3ViQXJnczMyWmVyb0V4dGVuZChpbnQgYSwgaW50IGIpCit7CisgICAgUHJvY2Vk
dXJlIHByb2M7CisgICAgaWYgKHByb2Mub3B0TGV2ZWwoKSA8IDEpCisgICAgICAgIHJldHVybjsK
KyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKKyAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIFpFeHQzMiwgT3Jp
Z2luKCksCisgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAg
ICAgIHByb2MsIFN1YiwgT3JpZ2luKCksCisgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAorICAg
ICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAorICAgICAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmln
aW4oKSwKKyAgICAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKSkpKTsKKworICAgIENI
RUNLKGNvbXBpbGVBbmRSdW48dWludDY0X3Q+KHByb2MsIGEsIGIpID09IHN0YXRpY19jYXN0PHVp
bnQ2NF90PihzdGF0aWNfY2FzdDx1aW50MzJfdD4oYSAtIGIpKSk7Cit9CisKIHZvaWQgdGVzdFN1
YkFyZ0ltbTMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvdGVzdGIzXzMuY3BwCmluZGV4IGI3MTRjMzU3NzQ0OGJjNWI2OTE4OTc1N2Rj
MTk4YjgzMTI0ODcwZjIuLjg1OWI4ZmM5ZTYzNTU4NDYyZDg1ZjFjNWU3ZDNhMDEwNDI1OGYwNTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18zLmNwcApAQCAtMzMwMSw2ICszMzAxLDEw
IEBAIHZvaWQgYWRkQXJnVGVzdHMoY29uc3QgY2hhciogZmlsdGVyLCBEZXF1ZTxSZWZQdHI8U2hh
cmVkVGFzazx2b2lkKCk+Pj4mIHRhc2tzKQogICAgIFJVTih0ZXN0U3ViQXJnczMyKDEsIDIpKTsK
ICAgICBSVU4odGVzdFN1YkFyZ3MzMigxMywgLTQyKSk7CiAgICAgUlVOKHRlc3RTdWJBcmdzMzIo
LTEzLCA0MikpOworICAgIFJVTih0ZXN0U3ViQXJnczMyWmVyb0V4dGVuZCgxLCAxKSk7CisgICAg
UlVOKHRlc3RTdWJBcmdzMzJaZXJvRXh0ZW5kKDEsIDIpKTsKKyAgICBSVU4odGVzdFN1YkFyZ3Mz
Mlplcm9FeHRlbmQoMTMsIC00MikpOworICAgIFJVTih0ZXN0U3ViQXJnczMyWmVyb0V4dGVuZCgt
MTMsIDQyKSk7CiAgICAgUlVOKHRlc3RTdWJBcmdJbW0zMigxLCAxKSk7CiAgICAgUlVOKHRlc3RT
dWJBcmdJbW0zMigxLCAyKSk7CiAgICAgUlVOKHRlc3RTdWJBcmdJbW0zMigxMywgLTQyKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431326</attachid>
            <date>2021-06-14 08:40:53 -0700</date>
            <delta_ts>2021-06-14 08:44:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226937-20210614104052.patch</filename>
            <type>text/plain</type>
            <size>15009</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4ODE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NWQxODU3NjdkNGZmNjY1NzAxZThkYTM3OWUzNDAyMTMwNTNkMjhkLi5kYjU3YjY1MWE2Y2RiMmUz
ZTM1ZWZlOThiOWVlZmRlNWUyZmE4ZTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3MiBAQAorMjAyMS0wNi0xMyAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIEFpciBvcGNvZGUgc3ViMzIvNjQoUmVnLCBJbW0sIFJlZykgZm9y
bSBmb3IgQVJNNjQgYW5kIHNlbGVjdCB0aGlzIGluc3RydWN0aW9uIGluIEFpcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2OTM3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJldmlvdXNseSwgQWlyIGFy
bTY0IHN1YjMyLzY0IHV0aWxpemUgc3ViKEltbSwgVG1wKSBhdCBvcHRsZXZlbCA9IDAgYW5kIAor
ICAgICAgICBhZGQoVG1wLCAtSW1tKSBhdCBvcHRsZXZlbCA+IDAgdG8gcGVyZm9ybSBhbmQgb3B0
aW1pemUgc3ViKFRtcCwgSW1tLCBUbXApLgorICAgICAgICBUaGUgaXNzdWUgd2l0aCB0aGlzIGlz
IHRoYXQgd2Ugd2VyZSBub3QgZWxpZGluZyByZWR1bmRhbnQgb3BlcmF0aW9ucy4gSW4gCisgICAg
ICAgIGFkZGl0aW9uLCB0aGUgaW5zdHJ1Y3Rpb24gc2VsZWN0b3Igc2hvdWxkIG5vdCBoYXZlIHRv
byBzdHJvbmcgb2YgcmVsaWFuY2UgCisgICAgICAgIG9uIHRoaXMga2luZCBvZiBjYW5vbmljYWxp
emF0aW9uLgorCisgICAgICAgIEZvciBleGFtcGxlOgorICAgICAgICAvLyBCMyBJUgorICAgICAg
ICBAMCA9IFRydW5jKEFyZ3VtZW50UmVnKDApKQorICAgICAgICBAMSA9IENvbnN0CisgICAgICAg
IEAyID0gU3ViKEAwLCBAMSkKKyAgICAgICAgQDMgPSBSZXR1cm4oQDIpCisKKyAgICAgICAgLy8g
T2xkIG9wdGltaXplZCBBaXIgSVIKKyAgICAgICAgLy8gT3B0TGV2ZWwgPSAwCisgICAgICAgIE1v
dmUgICAgJXgwLCAldG1wMSwgQDAKKyAgICAgICAgTW92ZSAkQ29uc3QsICV0bXAyLCBAMQorICAg
ICAgICBNb3ZlICAldG1wMSwgJXRtcDAsIEAyIC8vIFJlZHVuZGFudAorICAgICAgICBTdWIgICRD
b25zdCwgJXRtcDAsIEAyCisgICAgICAgIE1vdmUgICV0bXAwLCAgICV4MCwgQDMKKyAgICAgICAg
UmV0MzIgICAleDAsICAgICAgICBAMworCisgICAgICAgIC8vIE9wdExldmVsID0gMgorICAgICAg
ICBNb3ZlICQtQ29uc3QsICV4MSwgICAgICBAMiAvLyBSZWR1bmRhbnQKKyAgICAgICAgQWRkICAg
ICAgJXgwLCAleDEsICV4MCwgQDIKKyAgICAgICAgUmV0ICAgICAgJXgwLCAgICAgICAgICAgQDMK
KworICAgICAgICBUbyByZW1vdmUgdGhvc2UgcmVkdW5kYW50IGluc3RydWN0aW9ucywgQWlyIGFy
bTY0IHN1YjMyLzY0IG9wY29kZSBzaG91bGQgCisgICAgICAgIGluZGljYXRlIGEgbmV3IGZvcm0g
c3ViKFRtcCwgSW1tLCBUbXApLiBJbiB0aGlzIGNhc2UsIHRoZSBTdWIgaW1tZWRpYXRlIGlzCisg
ICAgICAgIG5vIGxvbmdlciBzdWJzdW1lZCBieSB0aGUgQWRkIGltbWVkCisKKyAgICAgICAgLy8g
TmV3IG9wdGltaXplZCBBaXIgSVIKKyAgICAgICAgLy8gT3B0TGV2ZWwgPSAwCisgICAgICAgIE1v
dmUgICAgJXgwLCAgJXRtcDEsICAgICAgICBAMAorICAgICAgICBNb3ZlICRDb25zdCwgICV0bXAy
LCAgICAgICAgQDEKKyAgICAgICAgU3ViICAgJXRtcDEsICRDb25zdCwgJXRtcDAsIEAyCisgICAg
ICAgIE1vdmUgICV0bXAwLCAgICAleDAsICAgICAgICBAMworICAgICAgICBSZXQzMiAgICV4MCwg
ICAgICAgICAgICAgICAgQDMKKworICAgICAgICAvLyBPcHRMZXZlbCA9IDIKKyAgICAgICAgU3Vi
ICV4MCwgJENvbnN0LCAleDAsIEAyCisgICAgICAgIFJldCAleDAsICAgICAgICAgICAgICBAMwor
CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaDoKKyAgICAgICAgKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3ViMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2Vt
YmxlckFSTTY0OjpzdWI2NCk6CisgICAgICAgICogYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcDoKKyAg
ICAgICAgKEpTQzo6dGVzdFN1YjMyQXJncyk6CisgICAgICAgIChKU0M6OnRlc3RTdWIzMkltbSk6
CisgICAgICAgIChKU0M6OnRlc3RTdWIzMkFyZ0ltbSk6CisgICAgICAgIChKU0M6OnRlc3RTdWI2
NEltbTMyKToKKyAgICAgICAgKEpTQzo6dGVzdFN1YjY0QXJnSW1tMzIpOgorICAgICAgICAoSlND
Ojp0ZXN0U3ViNjRJbW02NCk6CisgICAgICAgIChKU0M6OnRlc3RTdWI2NEFyZ0ltbTY0KToKKyAg
ICAgICAgKiBiMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcDoKKyAgICAgICAgKiBiMy9haXIvQWlyT3Bj
b2RlLm9wY29kZXM6CisgICAgICAgICogYjMvdGVzdGIzLmg6CisgICAgICAgICogYjMvdGVzdGIz
XzIuY3BwOgorICAgICAgICAodGVzdFN1YkFyZ3MzMlplcm9FeHRlbmQpOgorICAgICAgICAqIGIz
L3Rlc3RiM18zLmNwcDoKKyAgICAgICAgKGFkZEFyZ1Rlc3RzKToKKwogMjAyMS0wNi0xMiAgTWlj
aGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGdub21lLm9yZz4KIAogICAgICAgICAtV25vbm51
bGwgd2FybmluZyBpbiBKSVRDYWxsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAppbmRleCA1NDQ2NGYwNDA4YzhhZjU0
Y2FlZWJjMzQ0MDJiZTMxZGI2YTc1YmNmLi5mODZhZWMxYzU0MDA2ZWVkMWQ1YzVkZDNkNTZkOGQw
MDNmZjc2MTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyQVJNNjQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNNjQuaApAQCAtODkzLDE3ICs4OTMsMjQgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBzdWIzMihUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewot
ICAgICAgICBpZiAoaXNVSW50MTIoaW1tLm1fdmFsdWUpKSB7Ci0gICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5zdWI8MzI+KGRlc3QsIGRlc3QsIFVJbnQxMihpbW0ubV92YWx1ZSkpOworICAgICAgICBz
dWIzMihkZXN0LCBpbW0sIGRlc3QpOworICAgIH0KKworICAgIHZvaWQgc3ViMzIoUmVnaXN0ZXJJ
RCBsZWZ0LCBUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAg
ICBpbnRwdHJfdCBpbW1lZGlhdGUgPSBpbW0ubV92YWx1ZTsKKworICAgICAgICBpZiAoaXNVSW50
MTIoaW1tZWRpYXRlKSkgeworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3ViPDMyPihkZXN0LCBs
ZWZ0LCBVSW50MTIoaW1tZWRpYXRlKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
LSAgICAgICAgaWYgKGlzVUludDEyKC1pbW0ubV92YWx1ZSkpIHsKLSAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLmFkZDwzMj4oZGVzdCwgZGVzdCwgVUludDEyKC1pbW0ubV92YWx1ZSkpOworICAgICAg
ICBpZiAoaXNVSW50MTIoLWltbWVkaWF0ZSkpIHsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFk
ZDwzMj4oZGVzdCwgbGVmdCwgVUludDEyKC1pbW1lZGlhdGUpKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogCiAgICAgICAgIG1vdmUoaW1tLCBnZXRDYWNoZWREYXRhVGVtcFJlZ2lz
dGVySURBbmRJbnZhbGlkYXRlKCkpOwotICAgICAgICBtX2Fzc2VtYmxlci5zdWI8MzI+KGRlc3Qs
IGRlc3QsIGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAgICBtX2Fzc2VtYmxlci5zdWI8MzI+KGRl
c3QsIGxlZnQsIGRhdGFUZW1wUmVnaXN0ZXIpOwogICAgIH0KIAogICAgIHZvaWQgc3ViMzIoVHJ1
c3RlZEltbTMyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQpAQCAtOTU0LDQxICs5NjEsNTMgQEAgcHVi
bGljOgogICAgICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRlc3QsIGRlc3QsIHNyYyk7CiAgICAg
fQogCi0gICAgdm9pZCBzdWI2NChSZWdpc3RlcklEIGEsIFJlZ2lzdGVySUQgYiwgUmVnaXN0ZXJJ
RCBkZXN0KQorICAgIHZvaWQgc3ViNjQoUmVnaXN0ZXJJRCBsZWZ0LCBSZWdpc3RlcklEIHJpZ2h0
LCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRl
c3QsIGEsIGIpOworICAgICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRlc3QsIGxlZnQsIHJpZ2h0
KTsKICAgICB9Ci0gICAgCisKICAgICB2b2lkIHN1YjY0KFRydXN0ZWRJbW0zMiBpbW0sIFJlZ2lz
dGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAgIGlmIChpc1VJbnQxMihpbW0ubV92YWx1ZSkpIHsK
LSAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN1Yjw2ND4oZGVzdCwgZGVzdCwgVUludDEyKGltbS5t
X3ZhbHVlKSk7CisgICAgICAgIHN1YjY0KGRlc3QsIGltbSwgZGVzdCk7CisgICAgfQorCisgICAg
dm9pZCBzdWI2NChSZWdpc3RlcklEIGxlZnQsIFRydXN0ZWRJbW0zMiBpbW0sIFJlZ2lzdGVySUQg
ZGVzdCkKKyAgICB7CisgICAgICAgIGludHB0cl90IGltbWVkaWF0ZSA9IGltbS5tX3ZhbHVlOwor
CisgICAgICAgIGlmIChpc1VJbnQxMihpbW1lZGlhdGUpKSB7CisgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5zdWI8NjQ+KGRlc3QsIGxlZnQsIFVJbnQxMihpbW1lZGlhdGUpKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQotICAgICAgICBpZiAoaXNVSW50MTIoLWltbS5tX3ZhbHVlKSkg
ewotICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkPDY0PihkZXN0LCBkZXN0LCBVSW50MTIoLWlt
bS5tX3ZhbHVlKSk7CisgICAgICAgIGlmIChpc1VJbnQxMigtaW1tZWRpYXRlKSkgeworICAgICAg
ICAgICAgbV9hc3NlbWJsZXIuYWRkPDY0PihkZXN0LCBsZWZ0LCBVSW50MTIoLWltbWVkaWF0ZSkp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgc2lnbkV4dGVuZDMy
VG9QdHIoaW1tLCBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOwot
ICAgICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRlc3QsIGRlc3QsIGRhdGFUZW1wUmVnaXN0ZXIp
OworICAgICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRlc3QsIGxlZnQsIGRhdGFUZW1wUmVnaXN0
ZXIpOwogICAgIH0KLSAgICAKKwogICAgIHZvaWQgc3ViNjQoVHJ1c3RlZEltbTY0IGltbSwgUmVn
aXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgc3ViNjQoZGVzdCwgaW1tLCBkZXN0KTsKKyAg
ICB9CisKKyAgICB2b2lkIHN1YjY0KFJlZ2lzdGVySUQgbGVmdCwgVHJ1c3RlZEltbTY0IGltbSwg
UmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgaW50cHRyX3QgaW1tZWRpYXRlID0gaW1t
Lm1fdmFsdWU7CiAKICAgICAgICAgaWYgKGlzVUludDEyKGltbWVkaWF0ZSkpIHsKLSAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLnN1Yjw2ND4oZGVzdCwgZGVzdCwgVUludDEyKHN0YXRpY19jYXN0PGlu
dDMyX3Q+KGltbWVkaWF0ZSkpKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN1Yjw2ND4oZGVz
dCwgbGVmdCwgVUludDEyKHN0YXRpY19jYXN0PGludDMyX3Q+KGltbWVkaWF0ZSkpKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBpZiAoaXNVSW50MTIoLWltbWVkaWF0
ZSkpIHsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZDw2ND4oZGVzdCwgZGVzdCwgVUludDEy
KHN0YXRpY19jYXN0PGludDMyX3Q+KC1pbW1lZGlhdGUpKSk7CisgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5hZGQ8NjQ+KGRlc3QsIGxlZnQsIFVJbnQxMihzdGF0aWNfY2FzdDxpbnQzMl90PigtaW1t
ZWRpYXRlKSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgbW92
ZShpbW0sIGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKSk7Ci0gICAg
ICAgIG1fYXNzZW1ibGVyLnN1Yjw2ND4oZGVzdCwgZGVzdCwgZGF0YVRlbXBSZWdpc3Rlcik7Cisg
ICAgICAgIG1fYXNzZW1ibGVyLnN1Yjw2ND4oZGVzdCwgbGVmdCwgZGF0YVRlbXBSZWdpc3Rlcik7
CiAgICAgfQogCiAgICAgdm9pZCB1cnNoaWZ0MzIoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQg
c2hpZnRBbW91bnQsIFJlZ2lzdGVySUQgZGVzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci90ZXN0bWFzbS5jcHAKaW5kZXggMTc5OTg3MTRmZDIxYzM4OWNmZDQwZDRmYTQyNjNm
Zjk0OWExYmI4Ny4uYmE1MTAyYTJiYjk5OWFkNTc0OGY2ODQ3NWQ2YzhjNDVkNTBhMjFiNiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKQEAgLTkyMCw2
ICs5MjAsMTI4IEBAIHZvaWQgdGVzdE11bDMyU2lnbkV4dGVuZCgpCiAgICAgICAgICAgICBDSEVD
S19FUShpbnZva2U8bG9uZyBpbnQ+KG11bCwgdmFsdWUsIHZhbHVlMiksICgobG9uZyBpbnQpIHZh
bHVlKSAqICgobG9uZyBpbnQpIHZhbHVlMikpOwogICAgIH0KIH0KKwordm9pZCB0ZXN0U3ViMzJB
cmdzKCkKK3sKKyAgICBmb3IgKGF1dG8gdmFsdWUgOiBpbnQzMk9wZXJhbmRzKCkpIHsKKyAgICAg
ICAgYXV0byBzdWIgPSBjb21waWxlKFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAgICAgICAg
ICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKGppdCk7CisKKyAgICAgICAgICAgIGppdC5zdWIzMihH
UFJJbmZvOjphcmd1bWVudEdQUjAsIEdQUkluZm86OmFyZ3VtZW50R1BSMSwgR1BSSW5mbzo6cmV0
dXJuVmFsdWVHUFIpOworCisgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOwor
ICAgICAgICAgICAgaml0LnJldCgpOworICAgICAgICB9KTsKKworICAgICAgICBmb3IgKGF1dG8g
dmFsdWUyIDogaW50MzJPcGVyYW5kcygpKQorICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVp
bnQzMl90PihzdWIsIHZhbHVlLCB2YWx1ZTIpLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4odmFsdWUg
LSB2YWx1ZTIpKTsKKyAgICB9Cit9CisKK3ZvaWQgdGVzdFN1YjMySW1tKCkKK3sKKyAgICBmb3Ig
KGF1dG8gaW1tZWRpYXRlIDogaW50MzJPcGVyYW5kcygpKSB7CisgICAgICAgIGZvciAoYXV0byBp
bW1lZGlhdGUyIDogaW50MzJPcGVyYW5kcygpKSB7CisgICAgICAgICAgICBhdXRvIHN1YiA9IGNv
bXBpbGUoWz1dIChDQ2FsbEhlbHBlcnMmIGppdCkgeworICAgICAgICAgICAgICAgIGVtaXRGdW5j
dGlvblByb2xvZ3VlKGppdCk7CisKKyAgICAgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW0zMihpbW1lZGlhdGUpLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7Cisg
ICAgICAgICAgICAgICAgaml0LnN1YjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKGltbWVk
aWF0ZTIpLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisKKyAgICAgICAgICAgICAgICBlbWl0
RnVuY3Rpb25FcGlsb2d1ZShqaXQpOworICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQzMl90PihzdWIpLCBz
dGF0aWNfY2FzdDx1aW50MzJfdD4oaW1tZWRpYXRlIC0gaW1tZWRpYXRlMikpOworICAgICAgICB9
CisgICAgfQorfQorCit2b2lkIHRlc3RTdWIzMkFyZ0ltbSgpCit7CisgICAgZm9yIChhdXRvIGlt
bWVkaWF0ZSA6IGludDMyT3BlcmFuZHMoKSkgeworICAgICAgICBhdXRvIHN1YiA9IGNvbXBpbGUo
Wz1dIChDQ2FsbEhlbHBlcnMmIGppdCkgeworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9n
dWUoaml0KTsKKworICAgICAgICAgICAgaml0LnN1YjMyKEdQUkluZm86OmFyZ3VtZW50R1BSMCwg
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoaW1tZWRpYXRlKSwgR1BSSW5mbzo6cmV0dXJuVmFs
dWVHUFIpOworCisgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOworICAgICAg
ICAgICAgaml0LnJldCgpOworICAgICAgICB9KTsKKworICAgICAgICBmb3IgKGF1dG8gdmFsdWUg
OiBpbnQzMk9wZXJhbmRzKCkpCisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDMyX3Q+
KHN1YiwgdmFsdWUpLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4odmFsdWUgLSBpbW1lZGlhdGUpKTsK
KyAgICB9Cit9CisKK3ZvaWQgdGVzdFN1YjY0SW1tMzIoKQoreworICAgIGZvciAoYXV0byBpbW1l
ZGlhdGUgOiBpbnQ2NE9wZXJhbmRzKCkpIHsKKyAgICAgICAgZm9yIChhdXRvIGltbWVkaWF0ZTIg
OiBpbnQzMk9wZXJhbmRzKCkpIHsKKyAgICAgICAgICAgIGF1dG8gc3ViID0gY29tcGlsZShbPV0g
KENDYWxsSGVscGVycyYgaml0KSB7CisgICAgICAgICAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9n
dWUoaml0KTsKKworICAgICAgICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbTY0KGltbWVkaWF0ZSksIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgICAg
ICAgICBqaXQuc3ViNjQoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoaW1tZWRpYXRlMiksIEdQ
UkluZm86OnJldHVyblZhbHVlR1BSKTsKKworICAgICAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVw
aWxvZ3VlKGppdCk7CisgICAgICAgICAgICAgICAgaml0LnJldCgpOworICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+KHN1YiksIHN0YXRpY19jYXN0
PHVpbnQ2NF90PihpbW1lZGlhdGUgLSBpbW1lZGlhdGUyKSk7CisgICAgICAgIH0KKyAgICB9Cit9
CisKK3ZvaWQgdGVzdFN1YjY0QXJnSW1tMzIoKQoreworICAgIGZvciAoYXV0byBpbW1lZGlhdGUg
OiBpbnQzMk9wZXJhbmRzKCkpIHsKKyAgICAgICAgYXV0byBzdWIgPSBjb21waWxlKFs9XSAoQ0Nh
bGxIZWxwZXJzJiBqaXQpIHsKKyAgICAgICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKGppdCk7
CisKKyAgICAgICAgICAgIGppdC5zdWI2NChHUFJJbmZvOjphcmd1bWVudEdQUjAsIENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbTMyKGltbWVkaWF0ZSksIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsK
KworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKKyAgICAgICAgICAgIGpp
dC5yZXQoKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZm9yIChhdXRvIHZhbHVlIDogaW50NjRP
cGVyYW5kcygpKQorICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludDY0X3Q+KHN1YiwgdmFs
dWUpLCBzdGF0aWNfY2FzdDxpbnQ2NF90Pih2YWx1ZSAtIGltbWVkaWF0ZSkpOworICAgIH0KK30K
Kwordm9pZCB0ZXN0U3ViNjRJbW02NCgpCit7CisgICAgZm9yIChhdXRvIGltbWVkaWF0ZSA6IGlu
dDY0T3BlcmFuZHMoKSkgeworICAgICAgICBmb3IgKGF1dG8gaW1tZWRpYXRlMiA6IGludDY0T3Bl
cmFuZHMoKSkgeworICAgICAgICAgICAgYXV0byBzdWIgPSBjb21waWxlKFs9XSAoQ0NhbGxIZWxw
ZXJzJiBqaXQpIHsKKyAgICAgICAgICAgICAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZShqaXQpOwor
CisgICAgICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tNjQoaW1t
ZWRpYXRlKSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworICAgICAgICAgICAgICAgIGppdC5z
dWI2NChDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW02NChpbW1lZGlhdGUyKSwgR1BSSW5mbzo6cmV0
dXJuVmFsdWVHUFIpOworCisgICAgICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0
KTsKKyAgICAgICAgICAgICAgICBqaXQucmV0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4oc3ViKSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+
KGltbWVkaWF0ZSAtIGltbWVkaWF0ZTIpKTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCB0
ZXN0U3ViNjRBcmdJbW02NCgpCit7CisgICAgZm9yIChhdXRvIGltbWVkaWF0ZSA6IGludDY0T3Bl
cmFuZHMoKSkgeworICAgICAgICBhdXRvIHN1YiA9IGNvbXBpbGUoWz1dIChDQ2FsbEhlbHBlcnMm
IGppdCkgeworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoaml0KTsKKworICAgICAg
ICAgICAgaml0LnN1YjY0KEdQUkluZm86OmFyZ3VtZW50R1BSMCwgQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tNjQoaW1tZWRpYXRlKSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworCisgICAgICAg
ICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOworICAgICAgICAgICAgaml0LnJldCgpOwor
ICAgICAgICB9KTsKKworICAgICAgICBmb3IgKGF1dG8gdmFsdWUgOiBpbnQ2NE9wZXJhbmRzKCkp
CisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8aW50NjRfdD4oc3ViLCB2YWx1ZSksIHN0YXRp
Y19jYXN0PGludDY0X3Q+KHZhbHVlIC0gaW1tZWRpYXRlKSk7CisgICAgfQorfQogI2VuZGlmCiAK
ICNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpCkBAIC0yNjQwLDYgKzI3
NjIsMTMgQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKSBXVEZfSUdOT1JFU19USFJFQURf
U0FGRVRZX0FOQUxZU0lTCiAKICNpZiBDUFUoQVJNNjQpCiAgICAgUlVOKHRlc3RNdWwzMlNpZ25F
eHRlbmQoKSk7CisgICAgUlVOKHRlc3RTdWIzMkFyZ3MoKSk7CisgICAgUlVOKHRlc3RTdWIzMklt
bSgpKTsKKyAgICBSVU4odGVzdFN1YjMyQXJnSW1tKCkpOworICAgIFJVTih0ZXN0U3ViNjRJbW0z
MigpKTsKKyAgICBSVU4odGVzdFN1YjY0QXJnSW1tMzIoKSk7CisgICAgUlVOKHRlc3RTdWI2NElt
bTY0KCkpOworICAgIFJVTih0ZXN0U3ViNjRBcmdJbW02NCgpKTsKICNlbmRpZgogCiAjaWYgQ1BV
KFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCmluZGV4IDllZmQzOTBhYmVjZTYyZjA2MTMwOWIy
YTliNTA5MzIyNTc1YjRhZWIuLmM0ZjhhNzk0NDg4M2Y0NTIyODA3OTA0YzBlNTVmYmIxNjY1Mjcw
YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3Ro
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAK
QEAgLTYzMyw3ICs2MzMsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgQWRk
LCBtX3ZhbHVlLT5vcmlnaW4oKSwgbV92YWx1ZS0+Y2hpbGQoMCksIG5lZ2F0ZWRDb25zdGFudCk7
CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAKKwogICAgICAgICAgICAgICAgIC8vIFR1cm4gdGhpczogU3ViKDAsIHZhbHVlKQog
ICAgICAgICAgICAgICAgIC8vIEludG8gdGhpczogTmVnKHZhbHVlKQogICAgICAgICAgICAgICAg
IGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+aXNJbnQoMCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCmluZGV4IGY4NDM2YWQ5MzRhZDc1NmNhZjlj
NWI4NTNiOTg0NGMwNTYxMjI3MDkuLjEzODA4ZGU4M2JkYjExNzcwMWYxOGE1NjU1Njk4MmRlMzhk
M2IzYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2Rl
Lm9wY29kZXMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bj
b2RlcwpAQCAtMTc5LDYgKzE3OSw3IEBAIFN1YjMyIFU6RzozMiwgVVpEOkc6MzIKIAogYXJtNjQ6
IFN1YjMyIFU6RzozMiwgVTpHOjMyLCBaRDpHOjMyCiAgICAgVG1wLCBUbXAsIFRtcAorICAgIFRt
cCwgSW1tLCBUbXAKIAogNjQ6IFN1YjY0IFU6Rzo2NCwgVUQ6Rzo2NAogICAgIFRtcCwgVG1wCkBA
IC0xOTIsNiArMTkzLDcgQEAgYXJtNjQ6IFN1YjMyIFU6RzozMiwgVTpHOjMyLCBaRDpHOjMyCiAK
IGFybTY0OiBTdWI2NCBVOkc6NjQsIFU6Rzo2NCwgRDpHOjY0CiAgICAgVG1wLCBUbXAsIFRtcAor
ICAgIFRtcCwgSW1tLCBUbXAKIAogU3ViRG91YmxlIFU6Rjo2NCwgVTpGOjY0LCBEOkY6NjQKICAg
ICBhcm02NDogVG1wLCBUbXAsIFRtcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL3Rlc3RiMy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oCmluZGV4IGEy
Y2ExMzViMGRmNTk3YTE5OGIyMDJhMjAyOTVkNDViNjE1M2QyODkuLjY4MDY1M2M2MTY1YWNlYzY3
ZTVlNGI2ZGUyZmRjYTBkYTQxMDk3NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy90ZXN0YjMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKQEAg
LTEwMjcsNiArMTAyNyw3IEBAIHZvaWQgdGVzdFN1Yk1lbUFyZyhpbnQ2NF90LCBpbnQ2NF90KTsK
IHZvaWQgdGVzdFN1YkltbU1lbShpbnQ2NF90LCBpbnQ2NF90KTsKIHZvaWQgdGVzdFN1Yk1lbUlt
bShpbnQ2NF90LCBpbnQ2NF90KTsKIHZvaWQgdGVzdFN1YkFyZ3MzMihpbnQsIGludCk7Cit2b2lk
IHRlc3RTdWJBcmdzMzJaZXJvRXh0ZW5kKGludCwgaW50KTsKIHZvaWQgdGVzdFN1YkFyZ0ltbTMy
KGludCwgaW50KTsKIHZvaWQgdGVzdFN1YkltbUFyZzMyKGludCwgaW50KTsKIHZvaWQgdGVzdFN1
Yk1lbUFyZzMyKGludDMyX3QsIGludDMyX3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL3Rlc3RiM18yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNf
Mi5jcHAKaW5kZXggN2NiMzRjOGEwYjc3MTNiNTY1MTY1ZDY5ZjJlN2E2NjRhMDRjOTk2Ny4uNDgy
MzYwMjc0YzI3Yzg3ZWFlMDQ3YTQ1N2YyMjZiYzA1OGU1YzhjZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvdGVzdGIzXzIuY3BwCkBAIC0yMDkyLDYgKzIwOTIsMjggQEAgdm9pZCB0ZXN0U3ViQXJn
czMyKGludCBhLCBpbnQgYikKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgYSwg
YikgPT0gYSAtIGIpOwogfQogCit2b2lkIHRlc3RTdWJBcmdzMzJaZXJvRXh0ZW5kKGludCBhLCBp
bnQgYikKK3sKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICBpZiAocHJvYy5vcHRMZXZlbCgpIDwg
MSkKKyAgICAgICAgcmV0dXJuOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAorICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAg
ICAgcHJvYywgWkV4dDMyLCBPcmlnaW4oKSwKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgU3ViLCBPcmlnaW4oKSwKKyAgICAgICAgICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBwcm9jLCBU
cnVuYywgT3JpZ2luKCksCisgICAgICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCisg
ICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICAg
ICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAorICAgICAgICAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMSkpKSkpOworCisgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjx1aW50NjRfdD4ocHJvYywgYSwg
YikgPT0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHN0YXRpY19jYXN0PHVpbnQzMl90PihhIC0gYikp
KTsKK30KKwogdm9pZCB0ZXN0U3ViQXJnSW1tMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2Nl
ZHVyZSBwcm9jOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18z
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5jcHAKaW5kZXggYjcxNGMz
NTc3NDQ4YmM1YjY5MTg5NzU3ZGMxOThiODMxMjQ4NzBmMi4uODU5YjhmYzllNjM1NTg0NjJkODVm
MWM1ZTdkM2EwMTA0MjU4ZjA1MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L3Rlc3RiM18zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzMuY3Bw
CkBAIC0zMzAxLDYgKzMzMDEsMTAgQEAgdm9pZCBhZGRBcmdUZXN0cyhjb25zdCBjaGFyKiBmaWx0
ZXIsIERlcXVlPFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQoKT4+PiYgdGFza3MpCiAgICAgUlVOKHRl
c3RTdWJBcmdzMzIoMSwgMikpOwogICAgIFJVTih0ZXN0U3ViQXJnczMyKDEzLCAtNDIpKTsKICAg
ICBSVU4odGVzdFN1YkFyZ3MzMigtMTMsIDQyKSk7CisgICAgUlVOKHRlc3RTdWJBcmdzMzJaZXJv
RXh0ZW5kKDEsIDEpKTsKKyAgICBSVU4odGVzdFN1YkFyZ3MzMlplcm9FeHRlbmQoMSwgMikpOwor
ICAgIFJVTih0ZXN0U3ViQXJnczMyWmVyb0V4dGVuZCgxMywgLTQyKSk7CisgICAgUlVOKHRlc3RT
dWJBcmdzMzJaZXJvRXh0ZW5kKC0xMywgNDIpKTsKICAgICBSVU4odGVzdFN1YkFyZ0ltbTMyKDEs
IDEpKTsKICAgICBSVU4odGVzdFN1YkFyZ0ltbTMyKDEsIDIpKTsKICAgICBSVU4odGVzdFN1YkFy
Z0ltbTMyKDEzLCAtNDIpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431328</attachid>
            <date>2021-06-14 08:44:11 -0700</date>
            <delta_ts>2021-06-16 11:25:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226937-20210614104410.patch</filename>
            <type>text/plain</type>
            <size>14556</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4ODE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NWQxODU3NjdkNGZmNjY1NzAxZThkYTM3OWUzNDAyMTMwNTNkMjhkLi4yMjI5ZmM5NTIyMjFiOWNk
NzBjMDFiMjkzMDdkODhhMDQxOGM5OGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MCBAQAorMjAyMS0wNi0xMyAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIEFpciBvcGNvZGUgc3ViMzIvNjQoUmVnLCBJbW0sIFJlZykgZm9y
bSBmb3IgQVJNNjQgYW5kIHNlbGVjdCB0aGlzIGluc3RydWN0aW9uIGluIEFpcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2OTM3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJldmlvdXNseSwgQWlyIGFy
bTY0IHN1YjMyLzY0IHV0aWxpemUgc3ViKEltbSwgVG1wKSBhdCBvcHRsZXZlbCA9IDAgYW5kIAor
ICAgICAgICBhZGQoVG1wLCAtSW1tKSBhdCBvcHRsZXZlbCA+IDAgdG8gcGVyZm9ybSBhbmQgb3B0
aW1pemUgc3ViKFRtcCwgSW1tLCBUbXApLgorICAgICAgICBUaGUgaXNzdWUgd2l0aCB0aGlzIGlz
IHRoYXQgd2Ugd2VyZSBub3QgZWxpZGluZyByZWR1bmRhbnQgb3BlcmF0aW9ucy4gCisKKyAgICAg
ICAgRm9yIGV4YW1wbGU6CisgICAgICAgIC8vIEIzIElSCisgICAgICAgIEAwID0gVHJ1bmMoQXJn
dW1lbnRSZWcoMCkpCisgICAgICAgIEAxID0gQ29uc3QKKyAgICAgICAgQDIgPSBTdWIoQDAsIEAx
KQorICAgICAgICBAMyA9IFJldHVybihAMikKKworICAgICAgICAvLyBPbGQgb3B0aW1pemVkIEFp
ciBJUgorICAgICAgICAvLyBPcHRMZXZlbCA9IDAKKyAgICAgICAgTW92ZSAgICAleDAsICV0bXAx
LCBAMAorICAgICAgICBNb3ZlICRDb25zdCwgJXRtcDIsIEAxCisgICAgICAgIE1vdmUgICV0bXAx
LCAldG1wMCwgQDIgLy8gUmVkdW5kYW50CisgICAgICAgIFN1YiAgJENvbnN0LCAldG1wMCwgQDIK
KyAgICAgICAgTW92ZSAgJXRtcDAsICAgJXgwLCBAMworICAgICAgICBSZXQzMiAgICV4MCwgICAg
ICAgIEAzCisKKyAgICAgICAgVG8gcmVtb3ZlIHRob3NlIHJlZHVuZGFudCBpbnN0cnVjdGlvbnMs
IEFpciBhcm02NCBzdWIzMi82NCBvcGNvZGUgc2hvdWxkIAorICAgICAgICBpbmRpY2F0ZSBhIG5l
dyBmb3JtIHN1YihUbXAsIEltbSwgVG1wKS4KKworICAgICAgICAvLyBOZXcgb3B0aW1pemVkIEFp
ciBJUgorICAgICAgICAvLyBPcHRMZXZlbCA9IDAKKyAgICAgICAgTW92ZSAgICAleDAsICAldG1w
MSwgICAgICAgIEAwCisgICAgICAgIE1vdmUgJENvbnN0LCAgJXRtcDIsICAgICAgICBAMQorICAg
ICAgICBTdWIgICAldG1wMSwgJENvbnN0LCAldG1wMCwgQDIKKyAgICAgICAgTW92ZSAgJXRtcDAs
ICAgICV4MCwgICAgICAgIEAzCisgICAgICAgIFJldDMyICAgJXgwLCAgICAgICAgICAgICAgICBA
MworCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaDoKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3ViMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fz
c2VtYmxlckFSTTY0OjpzdWI2NCk6CisgICAgICAgICogYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcDoK
KyAgICAgICAgKEpTQzo6dGVzdFN1YjMyQXJncyk6CisgICAgICAgIChKU0M6OnRlc3RTdWIzMklt
bSk6CisgICAgICAgIChKU0M6OnRlc3RTdWIzMkFyZ0ltbSk6CisgICAgICAgIChKU0M6OnRlc3RT
dWI2NEltbTMyKToKKyAgICAgICAgKEpTQzo6dGVzdFN1YjY0QXJnSW1tMzIpOgorICAgICAgICAo
SlNDOjp0ZXN0U3ViNjRJbW02NCk6CisgICAgICAgIChKU0M6OnRlc3RTdWI2NEFyZ0ltbTY0KToK
KyAgICAgICAgKiBiMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcDoKKyAgICAgICAgKiBiMy9haXIvQWly
T3Bjb2RlLm9wY29kZXM6CisgICAgICAgICogYjMvdGVzdGIzLmg6CisgICAgICAgICogYjMvdGVz
dGIzXzIuY3BwOgorICAgICAgICAodGVzdFN1YkFyZ3MzMlplcm9FeHRlbmQpOgorICAgICAgICAq
IGIzL3Rlc3RiM18zLmNwcDoKKyAgICAgICAgKGFkZEFyZ1Rlc3RzKToKKwogMjAyMS0wNi0xMiAg
TWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGdub21lLm9yZz4KIAogICAgICAgICAtV25v
bm51bGwgd2FybmluZyBpbiBKSVRDYWxsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAppbmRleCA1NDQ2NGYwNDA4Yzhh
ZjU0Y2FlZWJjMzQ0MDJiZTMxZGI2YTc1YmNmLi5mODZhZWMxYzU0MDA2ZWVkMWQ1YzVkZDNkNTZk
OGQwMDNmZjc2MTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNNjQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaApAQCAtODkzLDE3ICs4OTMsMjQgQEAgcHVibGljOgog
CiAgICAgdm9pZCBzdWIzMihUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCiAgICAg
ewotICAgICAgICBpZiAoaXNVSW50MTIoaW1tLm1fdmFsdWUpKSB7Ci0gICAgICAgICAgICBtX2Fz
c2VtYmxlci5zdWI8MzI+KGRlc3QsIGRlc3QsIFVJbnQxMihpbW0ubV92YWx1ZSkpOworICAgICAg
ICBzdWIzMihkZXN0LCBpbW0sIGRlc3QpOworICAgIH0KKworICAgIHZvaWQgc3ViMzIoUmVnaXN0
ZXJJRCBsZWZ0LCBUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAg
ICAgICBpbnRwdHJfdCBpbW1lZGlhdGUgPSBpbW0ubV92YWx1ZTsKKworICAgICAgICBpZiAoaXNV
SW50MTIoaW1tZWRpYXRlKSkgeworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3ViPDMyPihkZXN0
LCBsZWZ0LCBVSW50MTIoaW1tZWRpYXRlKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KLSAgICAgICAgaWYgKGlzVUludDEyKC1pbW0ubV92YWx1ZSkpIHsKLSAgICAgICAgICAgIG1f
YXNzZW1ibGVyLmFkZDwzMj4oZGVzdCwgZGVzdCwgVUludDEyKC1pbW0ubV92YWx1ZSkpOworICAg
ICAgICBpZiAoaXNVSW50MTIoLWltbWVkaWF0ZSkpIHsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVy
LmFkZDwzMj4oZGVzdCwgbGVmdCwgVUludDEyKC1pbW1lZGlhdGUpKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogCiAgICAgICAgIG1vdmUoaW1tLCBnZXRDYWNoZWREYXRhVGVtcFJl
Z2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOwotICAgICAgICBtX2Fzc2VtYmxlci5zdWI8MzI+KGRl
c3QsIGRlc3QsIGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAgICBtX2Fzc2VtYmxlci5zdWI8MzI+
KGRlc3QsIGxlZnQsIGRhdGFUZW1wUmVnaXN0ZXIpOwogICAgIH0KIAogICAgIHZvaWQgc3ViMzIo
VHJ1c3RlZEltbTMyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQpAQCAtOTU0LDQxICs5NjEsNTMgQEAg
cHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRlc3QsIGRlc3QsIHNyYyk7CiAg
ICAgfQogCi0gICAgdm9pZCBzdWI2NChSZWdpc3RlcklEIGEsIFJlZ2lzdGVySUQgYiwgUmVnaXN0
ZXJJRCBkZXN0KQorICAgIHZvaWQgc3ViNjQoUmVnaXN0ZXJJRCBsZWZ0LCBSZWdpc3RlcklEIHJp
Z2h0LCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+
KGRlc3QsIGEsIGIpOworICAgICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRlc3QsIGxlZnQsIHJp
Z2h0KTsKICAgICB9Ci0gICAgCisKICAgICB2b2lkIHN1YjY0KFRydXN0ZWRJbW0zMiBpbW0sIFJl
Z2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAgIGlmIChpc1VJbnQxMihpbW0ubV92YWx1ZSkp
IHsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN1Yjw2ND4oZGVzdCwgZGVzdCwgVUludDEyKGlt
bS5tX3ZhbHVlKSk7CisgICAgICAgIHN1YjY0KGRlc3QsIGltbSwgZGVzdCk7CisgICAgfQorCisg
ICAgdm9pZCBzdWI2NChSZWdpc3RlcklEIGxlZnQsIFRydXN0ZWRJbW0zMiBpbW0sIFJlZ2lzdGVy
SUQgZGVzdCkKKyAgICB7CisgICAgICAgIGludHB0cl90IGltbWVkaWF0ZSA9IGltbS5tX3ZhbHVl
OworCisgICAgICAgIGlmIChpc1VJbnQxMihpbW1lZGlhdGUpKSB7CisgICAgICAgICAgICBtX2Fz
c2VtYmxlci5zdWI8NjQ+KGRlc3QsIGxlZnQsIFVJbnQxMihpbW1lZGlhdGUpKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBpZiAoaXNVSW50MTIoLWltbS5tX3ZhbHVl
KSkgewotICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkPDY0PihkZXN0LCBkZXN0LCBVSW50MTIo
LWltbS5tX3ZhbHVlKSk7CisgICAgICAgIGlmIChpc1VJbnQxMigtaW1tZWRpYXRlKSkgeworICAg
ICAgICAgICAgbV9hc3NlbWJsZXIuYWRkPDY0PihkZXN0LCBsZWZ0LCBVSW50MTIoLWltbWVkaWF0
ZSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgc2lnbkV4dGVu
ZDMyVG9QdHIoaW1tLCBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkp
OwotICAgICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRlc3QsIGRlc3QsIGRhdGFUZW1wUmVnaXN0
ZXIpOworICAgICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRlc3QsIGxlZnQsIGRhdGFUZW1wUmVn
aXN0ZXIpOwogICAgIH0KLSAgICAKKwogICAgIHZvaWQgc3ViNjQoVHJ1c3RlZEltbTY0IGltbSwg
UmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgc3ViNjQoZGVzdCwgaW1tLCBkZXN0KTsK
KyAgICB9CisKKyAgICB2b2lkIHN1YjY0KFJlZ2lzdGVySUQgbGVmdCwgVHJ1c3RlZEltbTY0IGlt
bSwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgaW50cHRyX3QgaW1tZWRpYXRlID0g
aW1tLm1fdmFsdWU7CiAKICAgICAgICAgaWYgKGlzVUludDEyKGltbWVkaWF0ZSkpIHsKLSAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLnN1Yjw2ND4oZGVzdCwgZGVzdCwgVUludDEyKHN0YXRpY19jYXN0
PGludDMyX3Q+KGltbWVkaWF0ZSkpKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN1Yjw2ND4o
ZGVzdCwgbGVmdCwgVUludDEyKHN0YXRpY19jYXN0PGludDMyX3Q+KGltbWVkaWF0ZSkpKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBpZiAoaXNVSW50MTIoLWltbWVk
aWF0ZSkpIHsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZDw2ND4oZGVzdCwgZGVzdCwgVUlu
dDEyKHN0YXRpY19jYXN0PGludDMyX3Q+KC1pbW1lZGlhdGUpKSk7CisgICAgICAgICAgICBtX2Fz
c2VtYmxlci5hZGQ8NjQ+KGRlc3QsIGxlZnQsIFVJbnQxMihzdGF0aWNfY2FzdDxpbnQzMl90Pigt
aW1tZWRpYXRlKSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAg
bW92ZShpbW0sIGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKSk7Ci0g
ICAgICAgIG1fYXNzZW1ibGVyLnN1Yjw2ND4oZGVzdCwgZGVzdCwgZGF0YVRlbXBSZWdpc3Rlcik7
CisgICAgICAgIG1fYXNzZW1ibGVyLnN1Yjw2ND4oZGVzdCwgbGVmdCwgZGF0YVRlbXBSZWdpc3Rl
cik7CiAgICAgfQogCiAgICAgdm9pZCB1cnNoaWZ0MzIoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVy
SUQgc2hpZnRBbW91bnQsIFJlZ2lzdGVySUQgZGVzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKaW5kZXggMTc5OTg3MTRmZDIxYzM4OWNmZDQwZDRmYTQy
NjNmZjk0OWExYmI4Ny4uYmE1MTAyYTJiYjk5OWFkNTc0OGY2ODQ3NWQ2YzhjNDVkNTBhMjFiNiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKQEAgLTky
MCw2ICs5MjAsMTI4IEBAIHZvaWQgdGVzdE11bDMyU2lnbkV4dGVuZCgpCiAgICAgICAgICAgICBD
SEVDS19FUShpbnZva2U8bG9uZyBpbnQ+KG11bCwgdmFsdWUsIHZhbHVlMiksICgobG9uZyBpbnQp
IHZhbHVlKSAqICgobG9uZyBpbnQpIHZhbHVlMikpOwogICAgIH0KIH0KKwordm9pZCB0ZXN0U3Vi
MzJBcmdzKCkKK3sKKyAgICBmb3IgKGF1dG8gdmFsdWUgOiBpbnQzMk9wZXJhbmRzKCkpIHsKKyAg
ICAgICAgYXV0byBzdWIgPSBjb21waWxlKFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAgICAg
ICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKGppdCk7CisKKyAgICAgICAgICAgIGppdC5zdWIz
MihHUFJJbmZvOjphcmd1bWVudEdQUjAsIEdQUkluZm86OmFyZ3VtZW50R1BSMSwgR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIpOworCisgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQp
OworICAgICAgICAgICAgaml0LnJldCgpOworICAgICAgICB9KTsKKworICAgICAgICBmb3IgKGF1
dG8gdmFsdWUyIDogaW50MzJPcGVyYW5kcygpKQorICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tl
PHVpbnQzMl90PihzdWIsIHZhbHVlLCB2YWx1ZTIpLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4odmFs
dWUgLSB2YWx1ZTIpKTsKKyAgICB9Cit9CisKK3ZvaWQgdGVzdFN1YjMySW1tKCkKK3sKKyAgICBm
b3IgKGF1dG8gaW1tZWRpYXRlIDogaW50MzJPcGVyYW5kcygpKSB7CisgICAgICAgIGZvciAoYXV0
byBpbW1lZGlhdGUyIDogaW50MzJPcGVyYW5kcygpKSB7CisgICAgICAgICAgICBhdXRvIHN1YiA9
IGNvbXBpbGUoWz1dIChDQ2FsbEhlbHBlcnMmIGppdCkgeworICAgICAgICAgICAgICAgIGVtaXRG
dW5jdGlvblByb2xvZ3VlKGppdCk7CisKKyAgICAgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW0zMihpbW1lZGlhdGUpLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7
CisgICAgICAgICAgICAgICAgaml0LnN1YjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKGlt
bWVkaWF0ZTIpLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisKKyAgICAgICAgICAgICAgICBl
bWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOworICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKKyAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQzMl90PihzdWIp
LCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oaW1tZWRpYXRlIC0gaW1tZWRpYXRlMikpOworICAgICAg
ICB9CisgICAgfQorfQorCit2b2lkIHRlc3RTdWIzMkFyZ0ltbSgpCit7CisgICAgZm9yIChhdXRv
IGltbWVkaWF0ZSA6IGludDMyT3BlcmFuZHMoKSkgeworICAgICAgICBhdXRvIHN1YiA9IGNvbXBp
bGUoWz1dIChDQ2FsbEhlbHBlcnMmIGppdCkgeworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uUHJv
bG9ndWUoaml0KTsKKworICAgICAgICAgICAgaml0LnN1YjMyKEdQUkluZm86OmFyZ3VtZW50R1BS
MCwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoaW1tZWRpYXRlKSwgR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIpOworCisgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOworICAg
ICAgICAgICAgaml0LnJldCgpOworICAgICAgICB9KTsKKworICAgICAgICBmb3IgKGF1dG8gdmFs
dWUgOiBpbnQzMk9wZXJhbmRzKCkpCisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDMy
X3Q+KHN1YiwgdmFsdWUpLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4odmFsdWUgLSBpbW1lZGlhdGUp
KTsKKyAgICB9Cit9CisKK3ZvaWQgdGVzdFN1YjY0SW1tMzIoKQoreworICAgIGZvciAoYXV0byBp
bW1lZGlhdGUgOiBpbnQ2NE9wZXJhbmRzKCkpIHsKKyAgICAgICAgZm9yIChhdXRvIGltbWVkaWF0
ZTIgOiBpbnQzMk9wZXJhbmRzKCkpIHsKKyAgICAgICAgICAgIGF1dG8gc3ViID0gY29tcGlsZShb
PV0gKENDYWxsSGVscGVycyYgaml0KSB7CisgICAgICAgICAgICAgICAgZW1pdEZ1bmN0aW9uUHJv
bG9ndWUoaml0KTsKKworICAgICAgICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbTY0KGltbWVkaWF0ZSksIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAg
ICAgICAgICBqaXQuc3ViNjQoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoaW1tZWRpYXRlMiks
IEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKworICAgICAgICAgICAgICAgIGVtaXRGdW5jdGlv
bkVwaWxvZ3VlKGppdCk7CisgICAgICAgICAgICAgICAgaml0LnJldCgpOworICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+KHN1YiksIHN0YXRpY19j
YXN0PHVpbnQ2NF90PihpbW1lZGlhdGUgLSBpbW1lZGlhdGUyKSk7CisgICAgICAgIH0KKyAgICB9
Cit9CisKK3ZvaWQgdGVzdFN1YjY0QXJnSW1tMzIoKQoreworICAgIGZvciAoYXV0byBpbW1lZGlh
dGUgOiBpbnQzMk9wZXJhbmRzKCkpIHsKKyAgICAgICAgYXV0byBzdWIgPSBjb21waWxlKFs9XSAo
Q0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAgICAgICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKGpp
dCk7CisKKyAgICAgICAgICAgIGppdC5zdWI2NChHUFJJbmZvOjphcmd1bWVudEdQUjAsIENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbTMyKGltbWVkaWF0ZSksIEdQUkluZm86OnJldHVyblZhbHVlR1BS
KTsKKworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKKyAgICAgICAgICAg
IGppdC5yZXQoKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZm9yIChhdXRvIHZhbHVlIDogaW50
NjRPcGVyYW5kcygpKQorICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludDY0X3Q+KHN1Yiwg
dmFsdWUpLCBzdGF0aWNfY2FzdDxpbnQ2NF90Pih2YWx1ZSAtIGltbWVkaWF0ZSkpOworICAgIH0K
K30KKwordm9pZCB0ZXN0U3ViNjRJbW02NCgpCit7CisgICAgZm9yIChhdXRvIGltbWVkaWF0ZSA6
IGludDY0T3BlcmFuZHMoKSkgeworICAgICAgICBmb3IgKGF1dG8gaW1tZWRpYXRlMiA6IGludDY0
T3BlcmFuZHMoKSkgeworICAgICAgICAgICAgYXV0byBzdWIgPSBjb21waWxlKFs9XSAoQ0NhbGxI
ZWxwZXJzJiBqaXQpIHsKKyAgICAgICAgICAgICAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZShqaXQp
OworCisgICAgICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tNjQo
aW1tZWRpYXRlKSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworICAgICAgICAgICAgICAgIGpp
dC5zdWI2NChDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW02NChpbW1lZGlhdGUyKSwgR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIpOworCisgICAgICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUo
aml0KTsKKyAgICAgICAgICAgICAgICBqaXQucmV0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4oc3ViKSwgc3RhdGljX2Nhc3Q8dWludDY0
X3Q+KGltbWVkaWF0ZSAtIGltbWVkaWF0ZTIpKTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9p
ZCB0ZXN0U3ViNjRBcmdJbW02NCgpCit7CisgICAgZm9yIChhdXRvIGltbWVkaWF0ZSA6IGludDY0
T3BlcmFuZHMoKSkgeworICAgICAgICBhdXRvIHN1YiA9IGNvbXBpbGUoWz1dIChDQ2FsbEhlbHBl
cnMmIGppdCkgeworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoaml0KTsKKworICAg
ICAgICAgICAgaml0LnN1YjY0KEdQUkluZm86OmFyZ3VtZW50R1BSMCwgQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tNjQoaW1tZWRpYXRlKSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworCisgICAg
ICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOworICAgICAgICAgICAgaml0LnJldCgp
OworICAgICAgICB9KTsKKworICAgICAgICBmb3IgKGF1dG8gdmFsdWUgOiBpbnQ2NE9wZXJhbmRz
KCkpCisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8aW50NjRfdD4oc3ViLCB2YWx1ZSksIHN0
YXRpY19jYXN0PGludDY0X3Q+KHZhbHVlIC0gaW1tZWRpYXRlKSk7CisgICAgfQorfQogI2VuZGlm
CiAKICNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpCkBAIC0yNjQwLDYg
KzI3NjIsMTMgQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKSBXVEZfSUdOT1JFU19USFJF
QURfU0FGRVRZX0FOQUxZU0lTCiAKICNpZiBDUFUoQVJNNjQpCiAgICAgUlVOKHRlc3RNdWwzMlNp
Z25FeHRlbmQoKSk7CisgICAgUlVOKHRlc3RTdWIzMkFyZ3MoKSk7CisgICAgUlVOKHRlc3RTdWIz
MkltbSgpKTsKKyAgICBSVU4odGVzdFN1YjMyQXJnSW1tKCkpOworICAgIFJVTih0ZXN0U3ViNjRJ
bW0zMigpKTsKKyAgICBSVU4odGVzdFN1YjY0QXJnSW1tMzIoKSk7CisgICAgUlVOKHRlc3RTdWI2
NEltbTY0KCkpOworICAgIFJVTih0ZXN0U3ViNjRBcmdJbW02NCgpKTsKICNlbmRpZgogCiAjaWYg
Q1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCmluZGV4IDllZmQzOTBhYmVjZTYyZjA2MTMw
OWIyYTliNTA5MzIyNTc1YjRhZWIuLmM0ZjhhNzk0NDg4M2Y0NTIyODA3OTA0YzBlNTVmYmIxNjY1
MjcwYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVu
Z3RoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5j
cHAKQEAgLTYzMyw3ICs2MzMsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAg
QWRkLCBtX3ZhbHVlLT5vcmlnaW4oKSwgbV92YWx1ZS0+Y2hpbGQoMCksIG5lZ2F0ZWRDb25zdGFu
dCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAKKwogICAgICAgICAgICAgICAgIC8vIFR1cm4gdGhpczogU3ViKDAsIHZhbHVl
KQogICAgICAgICAgICAgICAgIC8vIEludG8gdGhpczogTmVnKHZhbHVlKQogICAgICAgICAgICAg
ICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+aXNJbnQoMCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCmluZGV4IGY4NDM2YWQ5MzRhZDc1NmNh
ZjljNWI4NTNiOTg0NGMwNTYxMjI3MDkuLjEzODA4ZGU4M2JkYjExNzcwMWYxOGE1NjU1Njk4MmRl
MzhkM2IzYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bj
b2RlLm9wY29kZXMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUu
b3Bjb2RlcwpAQCAtMTc5LDYgKzE3OSw3IEBAIFN1YjMyIFU6RzozMiwgVVpEOkc6MzIKIAogYXJt
NjQ6IFN1YjMyIFU6RzozMiwgVTpHOjMyLCBaRDpHOjMyCiAgICAgVG1wLCBUbXAsIFRtcAorICAg
IFRtcCwgSW1tLCBUbXAKIAogNjQ6IFN1YjY0IFU6Rzo2NCwgVUQ6Rzo2NAogICAgIFRtcCwgVG1w
CkBAIC0xOTIsNiArMTkzLDcgQEAgYXJtNjQ6IFN1YjMyIFU6RzozMiwgVTpHOjMyLCBaRDpHOjMy
CiAKIGFybTY0OiBTdWI2NCBVOkc6NjQsIFU6Rzo2NCwgRDpHOjY0CiAgICAgVG1wLCBUbXAsIFRt
cAorICAgIFRtcCwgSW1tLCBUbXAKIAogU3ViRG91YmxlIFU6Rjo2NCwgVTpGOjY0LCBEOkY6NjQK
ICAgICBhcm02NDogVG1wLCBUbXAsIFRtcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL3Rlc3RiMy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oCmluZGV4
IGEyY2ExMzViMGRmNTk3YTE5OGIyMDJhMjAyOTVkNDViNjE1M2QyODkuLjY4MDY1M2M2MTY1YWNl
YzY3ZTVlNGI2ZGUyZmRjYTBkYTQxMDk3NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy90ZXN0YjMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgK
QEAgLTEwMjcsNiArMTAyNyw3IEBAIHZvaWQgdGVzdFN1Yk1lbUFyZyhpbnQ2NF90LCBpbnQ2NF90
KTsKIHZvaWQgdGVzdFN1YkltbU1lbShpbnQ2NF90LCBpbnQ2NF90KTsKIHZvaWQgdGVzdFN1Yk1l
bUltbShpbnQ2NF90LCBpbnQ2NF90KTsKIHZvaWQgdGVzdFN1YkFyZ3MzMihpbnQsIGludCk7Cit2
b2lkIHRlc3RTdWJBcmdzMzJaZXJvRXh0ZW5kKGludCwgaW50KTsKIHZvaWQgdGVzdFN1YkFyZ0lt
bTMyKGludCwgaW50KTsKIHZvaWQgdGVzdFN1YkltbUFyZzMyKGludCwgaW50KTsKIHZvaWQgdGVz
dFN1Yk1lbUFyZzMyKGludDMyX3QsIGludDMyX3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL3Rlc3RiM18yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0
YjNfMi5jcHAKaW5kZXggN2NiMzRjOGEwYjc3MTNiNTY1MTY1ZDY5ZjJlN2E2NjRhMDRjOTk2Ny4u
NDgyMzYwMjc0YzI3Yzg3ZWFlMDQ3YTQ1N2YyMjZiYzA1OGU1YzhjZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvdGVzdGIzXzIuY3BwCkBAIC0yMDkyLDYgKzIwOTIsMjggQEAgdm9pZCB0ZXN0U3Vi
QXJnczMyKGludCBhLCBpbnQgYikKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywg
YSwgYikgPT0gYSAtIGIpOwogfQogCit2b2lkIHRlc3RTdWJBcmdzMzJaZXJvRXh0ZW5kKGludCBh
LCBpbnQgYikKK3sKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICBpZiAocHJvYy5vcHRMZXZlbCgp
IDwgMSkKKyAgICAgICAgcmV0dXJuOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAorICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAg
ICAgICAgcHJvYywgWkV4dDMyLCBPcmlnaW4oKSwKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgU3ViLCBPcmlnaW4oKSwKKyAgICAgICAg
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBwcm9j
LCBUcnVuYywgT3JpZ2luKCksCisgICAgICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSks
CisgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAg
ICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAorICAgICAgICAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMSkpKSkpOworCisgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjx1aW50NjRfdD4ocHJvYywg
YSwgYikgPT0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHN0YXRpY19jYXN0PHVpbnQzMl90PihhIC0g
YikpKTsKK30KKwogdm9pZCB0ZXN0U3ViQXJnSW1tMzIoaW50IGEsIGludCBiKQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3Ri
M18zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5jcHAKaW5kZXggYjcx
NGMzNTc3NDQ4YmM1YjY5MTg5NzU3ZGMxOThiODMxMjQ4NzBmMi4uODU5YjhmYzllNjM1NTg0NjJk
ODVmMWM1ZTdkM2EwMTA0MjU4ZjA1MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL3Rlc3RiM18zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzMu
Y3BwCkBAIC0zMzAxLDYgKzMzMDEsMTAgQEAgdm9pZCBhZGRBcmdUZXN0cyhjb25zdCBjaGFyKiBm
aWx0ZXIsIERlcXVlPFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQoKT4+PiYgdGFza3MpCiAgICAgUlVO
KHRlc3RTdWJBcmdzMzIoMSwgMikpOwogICAgIFJVTih0ZXN0U3ViQXJnczMyKDEzLCAtNDIpKTsK
ICAgICBSVU4odGVzdFN1YkFyZ3MzMigtMTMsIDQyKSk7CisgICAgUlVOKHRlc3RTdWJBcmdzMzJa
ZXJvRXh0ZW5kKDEsIDEpKTsKKyAgICBSVU4odGVzdFN1YkFyZ3MzMlplcm9FeHRlbmQoMSwgMikp
OworICAgIFJVTih0ZXN0U3ViQXJnczMyWmVyb0V4dGVuZCgxMywgLTQyKSk7CisgICAgUlVOKHRl
c3RTdWJBcmdzMzJaZXJvRXh0ZW5kKC0xMywgNDIpKTsKICAgICBSVU4odGVzdFN1YkFyZ0ltbTMy
KDEsIDEpKTsKICAgICBSVU4odGVzdFN1YkFyZ0ltbTMyKDEsIDIpKTsKICAgICBSVU4odGVzdFN1
YkFyZ0ltbTMyKDEzLCAtNDIpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431572</attachid>
            <date>2021-06-16 11:25:20 -0700</date>
            <delta_ts>2021-06-16 12:14:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226937-20210616132519.patch</filename>
            <type>text/plain</type>
            <size>14556</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4ODE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NWQxODU3NjdkNGZmNjY1NzAxZThkYTM3OWUzNDAyMTMwNTNkMjhkLi4yMjI5ZmM5NTIyMjFiOWNk
NzBjMDFiMjkzMDdkODhhMDQxOGM5OGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MCBAQAorMjAyMS0wNi0xMyAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIEFpciBvcGNvZGUgc3ViMzIvNjQoUmVnLCBJbW0sIFJlZykgZm9y
bSBmb3IgQVJNNjQgYW5kIHNlbGVjdCB0aGlzIGluc3RydWN0aW9uIGluIEFpcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2OTM3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJldmlvdXNseSwgQWlyIGFy
bTY0IHN1YjMyLzY0IHV0aWxpemUgc3ViKEltbSwgVG1wKSBhdCBvcHRsZXZlbCA9IDAgYW5kIAor
ICAgICAgICBhZGQoVG1wLCAtSW1tKSBhdCBvcHRsZXZlbCA+IDAgdG8gcGVyZm9ybSBhbmQgb3B0
aW1pemUgc3ViKFRtcCwgSW1tLCBUbXApLgorICAgICAgICBUaGUgaXNzdWUgd2l0aCB0aGlzIGlz
IHRoYXQgd2Ugd2VyZSBub3QgZWxpZGluZyByZWR1bmRhbnQgb3BlcmF0aW9ucy4gCisKKyAgICAg
ICAgRm9yIGV4YW1wbGU6CisgICAgICAgIC8vIEIzIElSCisgICAgICAgIEAwID0gVHJ1bmMoQXJn
dW1lbnRSZWcoMCkpCisgICAgICAgIEAxID0gQ29uc3QKKyAgICAgICAgQDIgPSBTdWIoQDAsIEAx
KQorICAgICAgICBAMyA9IFJldHVybihAMikKKworICAgICAgICAvLyBPbGQgb3B0aW1pemVkIEFp
ciBJUgorICAgICAgICAvLyBPcHRMZXZlbCA9IDAKKyAgICAgICAgTW92ZSAgICAleDAsICV0bXAx
LCBAMAorICAgICAgICBNb3ZlICRDb25zdCwgJXRtcDIsIEAxCisgICAgICAgIE1vdmUgICV0bXAx
LCAldG1wMCwgQDIgLy8gUmVkdW5kYW50CisgICAgICAgIFN1YiAgJENvbnN0LCAldG1wMCwgQDIK
KyAgICAgICAgTW92ZSAgJXRtcDAsICAgJXgwLCBAMworICAgICAgICBSZXQzMiAgICV4MCwgICAg
ICAgIEAzCisKKyAgICAgICAgVG8gcmVtb3ZlIHRob3NlIHJlZHVuZGFudCBpbnN0cnVjdGlvbnMs
IEFpciBhcm02NCBzdWIzMi82NCBvcGNvZGUgc2hvdWxkIAorICAgICAgICBpbmRpY2F0ZSBhIG5l
dyBmb3JtIHN1YihUbXAsIEltbSwgVG1wKS4KKworICAgICAgICAvLyBOZXcgb3B0aW1pemVkIEFp
ciBJUgorICAgICAgICAvLyBPcHRMZXZlbCA9IDAKKyAgICAgICAgTW92ZSAgICAleDAsICAldG1w
MSwgICAgICAgIEAwCisgICAgICAgIE1vdmUgJENvbnN0LCAgJXRtcDIsICAgICAgICBAMQorICAg
ICAgICBTdWIgICAldG1wMSwgJENvbnN0LCAldG1wMCwgQDIKKyAgICAgICAgTW92ZSAgJXRtcDAs
ICAgICV4MCwgICAgICAgIEAzCisgICAgICAgIFJldDMyICAgJXgwLCAgICAgICAgICAgICAgICBA
MworCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaDoKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3ViMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fz
c2VtYmxlckFSTTY0OjpzdWI2NCk6CisgICAgICAgICogYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcDoK
KyAgICAgICAgKEpTQzo6dGVzdFN1YjMyQXJncyk6CisgICAgICAgIChKU0M6OnRlc3RTdWIzMklt
bSk6CisgICAgICAgIChKU0M6OnRlc3RTdWIzMkFyZ0ltbSk6CisgICAgICAgIChKU0M6OnRlc3RT
dWI2NEltbTMyKToKKyAgICAgICAgKEpTQzo6dGVzdFN1YjY0QXJnSW1tMzIpOgorICAgICAgICAo
SlNDOjp0ZXN0U3ViNjRJbW02NCk6CisgICAgICAgIChKU0M6OnRlc3RTdWI2NEFyZ0ltbTY0KToK
KyAgICAgICAgKiBiMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcDoKKyAgICAgICAgKiBiMy9haXIvQWly
T3Bjb2RlLm9wY29kZXM6CisgICAgICAgICogYjMvdGVzdGIzLmg6CisgICAgICAgICogYjMvdGVz
dGIzXzIuY3BwOgorICAgICAgICAodGVzdFN1YkFyZ3MzMlplcm9FeHRlbmQpOgorICAgICAgICAq
IGIzL3Rlc3RiM18zLmNwcDoKKyAgICAgICAgKGFkZEFyZ1Rlc3RzKToKKwogMjAyMS0wNi0xMiAg
TWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGdub21lLm9yZz4KIAogICAgICAgICAtV25v
bm51bGwgd2FybmluZyBpbiBKSVRDYWxsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAppbmRleCA1NDQ2NGYwNDA4Yzhh
ZjU0Y2FlZWJjMzQ0MDJiZTMxZGI2YTc1YmNmLi5mODZhZWMxYzU0MDA2ZWVkMWQ1YzVkZDNkNTZk
OGQwMDNmZjc2MTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNNjQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaApAQCAtODkzLDE3ICs4OTMsMjQgQEAgcHVibGljOgog
CiAgICAgdm9pZCBzdWIzMihUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCiAgICAg
ewotICAgICAgICBpZiAoaXNVSW50MTIoaW1tLm1fdmFsdWUpKSB7Ci0gICAgICAgICAgICBtX2Fz
c2VtYmxlci5zdWI8MzI+KGRlc3QsIGRlc3QsIFVJbnQxMihpbW0ubV92YWx1ZSkpOworICAgICAg
ICBzdWIzMihkZXN0LCBpbW0sIGRlc3QpOworICAgIH0KKworICAgIHZvaWQgc3ViMzIoUmVnaXN0
ZXJJRCBsZWZ0LCBUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAg
ICAgICBpbnRwdHJfdCBpbW1lZGlhdGUgPSBpbW0ubV92YWx1ZTsKKworICAgICAgICBpZiAoaXNV
SW50MTIoaW1tZWRpYXRlKSkgeworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3ViPDMyPihkZXN0
LCBsZWZ0LCBVSW50MTIoaW1tZWRpYXRlKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KLSAgICAgICAgaWYgKGlzVUludDEyKC1pbW0ubV92YWx1ZSkpIHsKLSAgICAgICAgICAgIG1f
YXNzZW1ibGVyLmFkZDwzMj4oZGVzdCwgZGVzdCwgVUludDEyKC1pbW0ubV92YWx1ZSkpOworICAg
ICAgICBpZiAoaXNVSW50MTIoLWltbWVkaWF0ZSkpIHsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVy
LmFkZDwzMj4oZGVzdCwgbGVmdCwgVUludDEyKC1pbW1lZGlhdGUpKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogCiAgICAgICAgIG1vdmUoaW1tLCBnZXRDYWNoZWREYXRhVGVtcFJl
Z2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOwotICAgICAgICBtX2Fzc2VtYmxlci5zdWI8MzI+KGRl
c3QsIGRlc3QsIGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAgICBtX2Fzc2VtYmxlci5zdWI8MzI+
KGRlc3QsIGxlZnQsIGRhdGFUZW1wUmVnaXN0ZXIpOwogICAgIH0KIAogICAgIHZvaWQgc3ViMzIo
VHJ1c3RlZEltbTMyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQpAQCAtOTU0LDQxICs5NjEsNTMgQEAg
cHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRlc3QsIGRlc3QsIHNyYyk7CiAg
ICAgfQogCi0gICAgdm9pZCBzdWI2NChSZWdpc3RlcklEIGEsIFJlZ2lzdGVySUQgYiwgUmVnaXN0
ZXJJRCBkZXN0KQorICAgIHZvaWQgc3ViNjQoUmVnaXN0ZXJJRCBsZWZ0LCBSZWdpc3RlcklEIHJp
Z2h0LCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+
KGRlc3QsIGEsIGIpOworICAgICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRlc3QsIGxlZnQsIHJp
Z2h0KTsKICAgICB9Ci0gICAgCisKICAgICB2b2lkIHN1YjY0KFRydXN0ZWRJbW0zMiBpbW0sIFJl
Z2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAgIGlmIChpc1VJbnQxMihpbW0ubV92YWx1ZSkp
IHsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN1Yjw2ND4oZGVzdCwgZGVzdCwgVUludDEyKGlt
bS5tX3ZhbHVlKSk7CisgICAgICAgIHN1YjY0KGRlc3QsIGltbSwgZGVzdCk7CisgICAgfQorCisg
ICAgdm9pZCBzdWI2NChSZWdpc3RlcklEIGxlZnQsIFRydXN0ZWRJbW0zMiBpbW0sIFJlZ2lzdGVy
SUQgZGVzdCkKKyAgICB7CisgICAgICAgIGludHB0cl90IGltbWVkaWF0ZSA9IGltbS5tX3ZhbHVl
OworCisgICAgICAgIGlmIChpc1VJbnQxMihpbW1lZGlhdGUpKSB7CisgICAgICAgICAgICBtX2Fz
c2VtYmxlci5zdWI8NjQ+KGRlc3QsIGxlZnQsIFVJbnQxMihpbW1lZGlhdGUpKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBpZiAoaXNVSW50MTIoLWltbS5tX3ZhbHVl
KSkgewotICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkPDY0PihkZXN0LCBkZXN0LCBVSW50MTIo
LWltbS5tX3ZhbHVlKSk7CisgICAgICAgIGlmIChpc1VJbnQxMigtaW1tZWRpYXRlKSkgeworICAg
ICAgICAgICAgbV9hc3NlbWJsZXIuYWRkPDY0PihkZXN0LCBsZWZ0LCBVSW50MTIoLWltbWVkaWF0
ZSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgc2lnbkV4dGVu
ZDMyVG9QdHIoaW1tLCBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkp
OwotICAgICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRlc3QsIGRlc3QsIGRhdGFUZW1wUmVnaXN0
ZXIpOworICAgICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRlc3QsIGxlZnQsIGRhdGFUZW1wUmVn
aXN0ZXIpOwogICAgIH0KLSAgICAKKwogICAgIHZvaWQgc3ViNjQoVHJ1c3RlZEltbTY0IGltbSwg
UmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgc3ViNjQoZGVzdCwgaW1tLCBkZXN0KTsK
KyAgICB9CisKKyAgICB2b2lkIHN1YjY0KFJlZ2lzdGVySUQgbGVmdCwgVHJ1c3RlZEltbTY0IGlt
bSwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgaW50cHRyX3QgaW1tZWRpYXRlID0g
aW1tLm1fdmFsdWU7CiAKICAgICAgICAgaWYgKGlzVUludDEyKGltbWVkaWF0ZSkpIHsKLSAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLnN1Yjw2ND4oZGVzdCwgZGVzdCwgVUludDEyKHN0YXRpY19jYXN0
PGludDMyX3Q+KGltbWVkaWF0ZSkpKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN1Yjw2ND4o
ZGVzdCwgbGVmdCwgVUludDEyKHN0YXRpY19jYXN0PGludDMyX3Q+KGltbWVkaWF0ZSkpKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBpZiAoaXNVSW50MTIoLWltbWVk
aWF0ZSkpIHsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZDw2ND4oZGVzdCwgZGVzdCwgVUlu
dDEyKHN0YXRpY19jYXN0PGludDMyX3Q+KC1pbW1lZGlhdGUpKSk7CisgICAgICAgICAgICBtX2Fz
c2VtYmxlci5hZGQ8NjQ+KGRlc3QsIGxlZnQsIFVJbnQxMihzdGF0aWNfY2FzdDxpbnQzMl90Pigt
aW1tZWRpYXRlKSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAg
bW92ZShpbW0sIGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKSk7Ci0g
ICAgICAgIG1fYXNzZW1ibGVyLnN1Yjw2ND4oZGVzdCwgZGVzdCwgZGF0YVRlbXBSZWdpc3Rlcik7
CisgICAgICAgIG1fYXNzZW1ibGVyLnN1Yjw2ND4oZGVzdCwgbGVmdCwgZGF0YVRlbXBSZWdpc3Rl
cik7CiAgICAgfQogCiAgICAgdm9pZCB1cnNoaWZ0MzIoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVy
SUQgc2hpZnRBbW91bnQsIFJlZ2lzdGVySUQgZGVzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKaW5kZXggMTc5OTg3MTRmZDIxYzM4OWNmZDQwZDRmYTQy
NjNmZjk0OWExYmI4Ny4uYmE1MTAyYTJiYjk5OWFkNTc0OGY2ODQ3NWQ2YzhjNDVkNTBhMjFiNiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKQEAgLTky
MCw2ICs5MjAsMTI4IEBAIHZvaWQgdGVzdE11bDMyU2lnbkV4dGVuZCgpCiAgICAgICAgICAgICBD
SEVDS19FUShpbnZva2U8bG9uZyBpbnQ+KG11bCwgdmFsdWUsIHZhbHVlMiksICgobG9uZyBpbnQp
IHZhbHVlKSAqICgobG9uZyBpbnQpIHZhbHVlMikpOwogICAgIH0KIH0KKwordm9pZCB0ZXN0U3Vi
MzJBcmdzKCkKK3sKKyAgICBmb3IgKGF1dG8gdmFsdWUgOiBpbnQzMk9wZXJhbmRzKCkpIHsKKyAg
ICAgICAgYXV0byBzdWIgPSBjb21waWxlKFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAgICAg
ICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKGppdCk7CisKKyAgICAgICAgICAgIGppdC5zdWIz
MihHUFJJbmZvOjphcmd1bWVudEdQUjAsIEdQUkluZm86OmFyZ3VtZW50R1BSMSwgR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIpOworCisgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQp
OworICAgICAgICAgICAgaml0LnJldCgpOworICAgICAgICB9KTsKKworICAgICAgICBmb3IgKGF1
dG8gdmFsdWUyIDogaW50MzJPcGVyYW5kcygpKQorICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tl
PHVpbnQzMl90PihzdWIsIHZhbHVlLCB2YWx1ZTIpLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4odmFs
dWUgLSB2YWx1ZTIpKTsKKyAgICB9Cit9CisKK3ZvaWQgdGVzdFN1YjMySW1tKCkKK3sKKyAgICBm
b3IgKGF1dG8gaW1tZWRpYXRlIDogaW50MzJPcGVyYW5kcygpKSB7CisgICAgICAgIGZvciAoYXV0
byBpbW1lZGlhdGUyIDogaW50MzJPcGVyYW5kcygpKSB7CisgICAgICAgICAgICBhdXRvIHN1YiA9
IGNvbXBpbGUoWz1dIChDQ2FsbEhlbHBlcnMmIGppdCkgeworICAgICAgICAgICAgICAgIGVtaXRG
dW5jdGlvblByb2xvZ3VlKGppdCk7CisKKyAgICAgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW0zMihpbW1lZGlhdGUpLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7
CisgICAgICAgICAgICAgICAgaml0LnN1YjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKGlt
bWVkaWF0ZTIpLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisKKyAgICAgICAgICAgICAgICBl
bWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOworICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKKyAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQzMl90PihzdWIp
LCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oaW1tZWRpYXRlIC0gaW1tZWRpYXRlMikpOworICAgICAg
ICB9CisgICAgfQorfQorCit2b2lkIHRlc3RTdWIzMkFyZ0ltbSgpCit7CisgICAgZm9yIChhdXRv
IGltbWVkaWF0ZSA6IGludDMyT3BlcmFuZHMoKSkgeworICAgICAgICBhdXRvIHN1YiA9IGNvbXBp
bGUoWz1dIChDQ2FsbEhlbHBlcnMmIGppdCkgeworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uUHJv
bG9ndWUoaml0KTsKKworICAgICAgICAgICAgaml0LnN1YjMyKEdQUkluZm86OmFyZ3VtZW50R1BS
MCwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoaW1tZWRpYXRlKSwgR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIpOworCisgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOworICAg
ICAgICAgICAgaml0LnJldCgpOworICAgICAgICB9KTsKKworICAgICAgICBmb3IgKGF1dG8gdmFs
dWUgOiBpbnQzMk9wZXJhbmRzKCkpCisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDMy
X3Q+KHN1YiwgdmFsdWUpLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4odmFsdWUgLSBpbW1lZGlhdGUp
KTsKKyAgICB9Cit9CisKK3ZvaWQgdGVzdFN1YjY0SW1tMzIoKQoreworICAgIGZvciAoYXV0byBp
bW1lZGlhdGUgOiBpbnQ2NE9wZXJhbmRzKCkpIHsKKyAgICAgICAgZm9yIChhdXRvIGltbWVkaWF0
ZTIgOiBpbnQzMk9wZXJhbmRzKCkpIHsKKyAgICAgICAgICAgIGF1dG8gc3ViID0gY29tcGlsZShb
PV0gKENDYWxsSGVscGVycyYgaml0KSB7CisgICAgICAgICAgICAgICAgZW1pdEZ1bmN0aW9uUHJv
bG9ndWUoaml0KTsKKworICAgICAgICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbTY0KGltbWVkaWF0ZSksIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAg
ICAgICAgICBqaXQuc3ViNjQoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoaW1tZWRpYXRlMiks
IEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKworICAgICAgICAgICAgICAgIGVtaXRGdW5jdGlv
bkVwaWxvZ3VlKGppdCk7CisgICAgICAgICAgICAgICAgaml0LnJldCgpOworICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+KHN1YiksIHN0YXRpY19j
YXN0PHVpbnQ2NF90PihpbW1lZGlhdGUgLSBpbW1lZGlhdGUyKSk7CisgICAgICAgIH0KKyAgICB9
Cit9CisKK3ZvaWQgdGVzdFN1YjY0QXJnSW1tMzIoKQoreworICAgIGZvciAoYXV0byBpbW1lZGlh
dGUgOiBpbnQzMk9wZXJhbmRzKCkpIHsKKyAgICAgICAgYXV0byBzdWIgPSBjb21waWxlKFs9XSAo
Q0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAgICAgICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKGpp
dCk7CisKKyAgICAgICAgICAgIGppdC5zdWI2NChHUFJJbmZvOjphcmd1bWVudEdQUjAsIENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbTMyKGltbWVkaWF0ZSksIEdQUkluZm86OnJldHVyblZhbHVlR1BS
KTsKKworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKKyAgICAgICAgICAg
IGppdC5yZXQoKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZm9yIChhdXRvIHZhbHVlIDogaW50
NjRPcGVyYW5kcygpKQorICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludDY0X3Q+KHN1Yiwg
dmFsdWUpLCBzdGF0aWNfY2FzdDxpbnQ2NF90Pih2YWx1ZSAtIGltbWVkaWF0ZSkpOworICAgIH0K
K30KKwordm9pZCB0ZXN0U3ViNjRJbW02NCgpCit7CisgICAgZm9yIChhdXRvIGltbWVkaWF0ZSA6
IGludDY0T3BlcmFuZHMoKSkgeworICAgICAgICBmb3IgKGF1dG8gaW1tZWRpYXRlMiA6IGludDY0
T3BlcmFuZHMoKSkgeworICAgICAgICAgICAgYXV0byBzdWIgPSBjb21waWxlKFs9XSAoQ0NhbGxI
ZWxwZXJzJiBqaXQpIHsKKyAgICAgICAgICAgICAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZShqaXQp
OworCisgICAgICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tNjQo
aW1tZWRpYXRlKSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworICAgICAgICAgICAgICAgIGpp
dC5zdWI2NChDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW02NChpbW1lZGlhdGUyKSwgR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIpOworCisgICAgICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUo
aml0KTsKKyAgICAgICAgICAgICAgICBqaXQucmV0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4oc3ViKSwgc3RhdGljX2Nhc3Q8dWludDY0
X3Q+KGltbWVkaWF0ZSAtIGltbWVkaWF0ZTIpKTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9p
ZCB0ZXN0U3ViNjRBcmdJbW02NCgpCit7CisgICAgZm9yIChhdXRvIGltbWVkaWF0ZSA6IGludDY0
T3BlcmFuZHMoKSkgeworICAgICAgICBhdXRvIHN1YiA9IGNvbXBpbGUoWz1dIChDQ2FsbEhlbHBl
cnMmIGppdCkgeworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoaml0KTsKKworICAg
ICAgICAgICAgaml0LnN1YjY0KEdQUkluZm86OmFyZ3VtZW50R1BSMCwgQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tNjQoaW1tZWRpYXRlKSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworCisgICAg
ICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOworICAgICAgICAgICAgaml0LnJldCgp
OworICAgICAgICB9KTsKKworICAgICAgICBmb3IgKGF1dG8gdmFsdWUgOiBpbnQ2NE9wZXJhbmRz
KCkpCisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8aW50NjRfdD4oc3ViLCB2YWx1ZSksIHN0
YXRpY19jYXN0PGludDY0X3Q+KHZhbHVlIC0gaW1tZWRpYXRlKSk7CisgICAgfQorfQogI2VuZGlm
CiAKICNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpCkBAIC0yNjQwLDYg
KzI3NjIsMTMgQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKSBXVEZfSUdOT1JFU19USFJF
QURfU0FGRVRZX0FOQUxZU0lTCiAKICNpZiBDUFUoQVJNNjQpCiAgICAgUlVOKHRlc3RNdWwzMlNp
Z25FeHRlbmQoKSk7CisgICAgUlVOKHRlc3RTdWIzMkFyZ3MoKSk7CisgICAgUlVOKHRlc3RTdWIz
MkltbSgpKTsKKyAgICBSVU4odGVzdFN1YjMyQXJnSW1tKCkpOworICAgIFJVTih0ZXN0U3ViNjRJ
bW0zMigpKTsKKyAgICBSVU4odGVzdFN1YjY0QXJnSW1tMzIoKSk7CisgICAgUlVOKHRlc3RTdWI2
NEltbTY0KCkpOworICAgIFJVTih0ZXN0U3ViNjRBcmdJbW02NCgpKTsKICNlbmRpZgogCiAjaWYg
Q1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCmluZGV4IDllZmQzOTBhYmVjZTYyZjA2MTMw
OWIyYTliNTA5MzIyNTc1YjRhZWIuLmM0ZjhhNzk0NDg4M2Y0NTIyODA3OTA0YzBlNTVmYmIxNjY1
MjcwYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVu
Z3RoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5j
cHAKQEAgLTYzMyw3ICs2MzMsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAg
QWRkLCBtX3ZhbHVlLT5vcmlnaW4oKSwgbV92YWx1ZS0+Y2hpbGQoMCksIG5lZ2F0ZWRDb25zdGFu
dCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAKKwogICAgICAgICAgICAgICAgIC8vIFR1cm4gdGhpczogU3ViKDAsIHZhbHVl
KQogICAgICAgICAgICAgICAgIC8vIEludG8gdGhpczogTmVnKHZhbHVlKQogICAgICAgICAgICAg
ICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+aXNJbnQoMCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCmluZGV4IGY4NDM2YWQ5MzRhZDc1NmNh
ZjljNWI4NTNiOTg0NGMwNTYxMjI3MDkuLjEzODA4ZGU4M2JkYjExNzcwMWYxOGE1NjU1Njk4MmRl
MzhkM2IzYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bj
b2RlLm9wY29kZXMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUu
b3Bjb2RlcwpAQCAtMTc5LDYgKzE3OSw3IEBAIFN1YjMyIFU6RzozMiwgVVpEOkc6MzIKIAogYXJt
NjQ6IFN1YjMyIFU6RzozMiwgVTpHOjMyLCBaRDpHOjMyCiAgICAgVG1wLCBUbXAsIFRtcAorICAg
IFRtcCwgSW1tLCBUbXAKIAogNjQ6IFN1YjY0IFU6Rzo2NCwgVUQ6Rzo2NAogICAgIFRtcCwgVG1w
CkBAIC0xOTIsNiArMTkzLDcgQEAgYXJtNjQ6IFN1YjMyIFU6RzozMiwgVTpHOjMyLCBaRDpHOjMy
CiAKIGFybTY0OiBTdWI2NCBVOkc6NjQsIFU6Rzo2NCwgRDpHOjY0CiAgICAgVG1wLCBUbXAsIFRt
cAorICAgIFRtcCwgSW1tLCBUbXAKIAogU3ViRG91YmxlIFU6Rjo2NCwgVTpGOjY0LCBEOkY6NjQK
ICAgICBhcm02NDogVG1wLCBUbXAsIFRtcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL3Rlc3RiMy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oCmluZGV4
IGEyY2ExMzViMGRmNTk3YTE5OGIyMDJhMjAyOTVkNDViNjE1M2QyODkuLjY4MDY1M2M2MTY1YWNl
YzY3ZTVlNGI2ZGUyZmRjYTBkYTQxMDk3NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy90ZXN0YjMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgK
QEAgLTEwMjcsNiArMTAyNyw3IEBAIHZvaWQgdGVzdFN1Yk1lbUFyZyhpbnQ2NF90LCBpbnQ2NF90
KTsKIHZvaWQgdGVzdFN1YkltbU1lbShpbnQ2NF90LCBpbnQ2NF90KTsKIHZvaWQgdGVzdFN1Yk1l
bUltbShpbnQ2NF90LCBpbnQ2NF90KTsKIHZvaWQgdGVzdFN1YkFyZ3MzMihpbnQsIGludCk7Cit2
b2lkIHRlc3RTdWJBcmdzMzJaZXJvRXh0ZW5kKGludCwgaW50KTsKIHZvaWQgdGVzdFN1YkFyZ0lt
bTMyKGludCwgaW50KTsKIHZvaWQgdGVzdFN1YkltbUFyZzMyKGludCwgaW50KTsKIHZvaWQgdGVz
dFN1Yk1lbUFyZzMyKGludDMyX3QsIGludDMyX3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL3Rlc3RiM18yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0
YjNfMi5jcHAKaW5kZXggN2NiMzRjOGEwYjc3MTNiNTY1MTY1ZDY5ZjJlN2E2NjRhMDRjOTk2Ny4u
NDgyMzYwMjc0YzI3Yzg3ZWFlMDQ3YTQ1N2YyMjZiYzA1OGU1YzhjZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvdGVzdGIzXzIuY3BwCkBAIC0yMDkyLDYgKzIwOTIsMjggQEAgdm9pZCB0ZXN0U3Vi
QXJnczMyKGludCBhLCBpbnQgYikKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywg
YSwgYikgPT0gYSAtIGIpOwogfQogCit2b2lkIHRlc3RTdWJBcmdzMzJaZXJvRXh0ZW5kKGludCBh
LCBpbnQgYikKK3sKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICBpZiAocHJvYy5vcHRMZXZlbCgp
IDwgMSkKKyAgICAgICAgcmV0dXJuOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAorICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAg
ICAgICAgcHJvYywgWkV4dDMyLCBPcmlnaW4oKSwKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgU3ViLCBPcmlnaW4oKSwKKyAgICAgICAg
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBwcm9j
LCBUcnVuYywgT3JpZ2luKCksCisgICAgICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSks
CisgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAg
ICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAorICAgICAgICAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMSkpKSkpOworCisgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjx1aW50NjRfdD4ocHJvYywg
YSwgYikgPT0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHN0YXRpY19jYXN0PHVpbnQzMl90PihhIC0g
YikpKTsKK30KKwogdm9pZCB0ZXN0U3ViQXJnSW1tMzIoaW50IGEsIGludCBiKQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3Ri
M18zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5jcHAKaW5kZXggYjcx
NGMzNTc3NDQ4YmM1YjY5MTg5NzU3ZGMxOThiODMxMjQ4NzBmMi4uODU5YjhmYzllNjM1NTg0NjJk
ODVmMWM1ZTdkM2EwMTA0MjU4ZjA1MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL3Rlc3RiM18zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzMu
Y3BwCkBAIC0zMzAxLDYgKzMzMDEsMTAgQEAgdm9pZCBhZGRBcmdUZXN0cyhjb25zdCBjaGFyKiBm
aWx0ZXIsIERlcXVlPFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQoKT4+PiYgdGFza3MpCiAgICAgUlVO
KHRlc3RTdWJBcmdzMzIoMSwgMikpOwogICAgIFJVTih0ZXN0U3ViQXJnczMyKDEzLCAtNDIpKTsK
ICAgICBSVU4odGVzdFN1YkFyZ3MzMigtMTMsIDQyKSk7CisgICAgUlVOKHRlc3RTdWJBcmdzMzJa
ZXJvRXh0ZW5kKDEsIDEpKTsKKyAgICBSVU4odGVzdFN1YkFyZ3MzMlplcm9FeHRlbmQoMSwgMikp
OworICAgIFJVTih0ZXN0U3ViQXJnczMyWmVyb0V4dGVuZCgxMywgLTQyKSk7CisgICAgUlVOKHRl
c3RTdWJBcmdzMzJaZXJvRXh0ZW5kKC0xMywgNDIpKTsKICAgICBSVU4odGVzdFN1YkFyZ0ltbTMy
KDEsIDEpKTsKICAgICBSVU4odGVzdFN1YkFyZ0ltbTMyKDEsIDIpKTsKICAgICBSVU4odGVzdFN1
YkFyZ0ltbTMyKDEzLCAtNDIpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>