<?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>237065</bug_id>
          
          <creation_ts>2022-02-22 16:44:22 -0800</creation_ts>
          <short_desc>[macOS] TestWebKitAPI.WebKit.MigrateLocalStorageDataToGeneralStorageDirectory is a flaky failure</short_desc>
          <delta_ts>2022-03-01 14:34:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Website Storage</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=236611</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryan Haddad">ryanhaddad</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1844930</commentid>
    <comment_count>0</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2022-02-22 16:44:22 -0800</bug_when>
    <thetext>TestWebKitAPI.WebKit.MigrateLocalStorageDataToGeneralStorageDirectory, added with https://commits.webkit.org/247316@main, is a flaky failure on macOS bots

    TestWebKitAPI.WebKit.MigrateLocalStorageDataToGeneralStorageDirectory
        LEAK: 1 WebProcessPool
        
        /Volumes/Data/worker/monterey-debug/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:864
        Expected equality of these values:
          &quot;testvalue&quot;
          getNextMessage().body
            Which is: &quot;[null]&quot;


https://results.webkit.org/?suite=api-tests&amp;test=TestWebKitAPI.WebKit.MigrateLocalStorageDataToGeneralStorageDirectory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844933</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-22 16:44:35 -0800</bug_when>
    <thetext>&lt;rdar://problem/89324250&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845527</commentid>
    <comment_count>2</comment_count>
      <attachid>453079</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-02-23 23:27:59 -0800</bug_when>
    <thetext>Created attachment 453079
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846078</commentid>
    <comment_count>3</comment_count>
      <attachid>453229</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-02-25 10:34:32 -0800</bug_when>
    <thetext>Created attachment 453229
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846240</commentid>
    <comment_count>4</comment_count>
      <attachid>453229</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2022-02-25 16:59:45 -0800</bug_when>
    <thetext>Comment on attachment 453229
Patch

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

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:264
&gt;      // Make sure we flush all cookies to disk before exiting.

This comment should probably be omitted. Typically, we want comments to explain &quot;why&quot;, not &quot;what&quot;. This comment just explains what, and it&apos;s not even entirely accurate any more after this addition.

&gt; Source/WebKit/NetworkProcess/storage/SQLiteStorageArea.cpp:89
&gt; +        std::atexit(commitTransactionsAtExit);

Do we still have a boost to prevent suspension at this point?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846268</commentid>
    <comment_count>5</comment_count>
      <attachid>453229</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-02-25 19:57:55 -0800</bug_when>
    <thetext>Comment on attachment 453229
Patch

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

&gt;&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:264
&gt;&gt;      // Make sure we flush all cookies to disk before exiting.
&gt; 
&gt; This comment should probably be omitted. Typically, we want comments to explain &quot;why&quot;, not &quot;what&quot;. This comment just explains what, and it&apos;s not even entirely accurate any more after this addition.

Sure, will remove.

&gt;&gt; Source/WebKit/NetworkProcess/storage/SQLiteStorageArea.cpp:89
&gt;&gt; +        std::atexit(commitTransactionsAtExit);
&gt; 
&gt; Do we still have a boost to prevent suspension at this point?

You mean to prevent process from being suspended by taking an assertion?
I am not sure if a process can get suspended when it is exiting, but if it can, the worst case seems to be the process getting killed and losing data in unfinished transactions, which sounds like a rare case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846269</commentid>
    <comment_count>6</comment_count>
      <attachid>453284</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-02-25 19:58:49 -0800</bug_when>
    <thetext>Created attachment 453284
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846281</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-25 21:43:55 -0800</bug_when>
    <thetext>Committed r290544 (247822@main): &lt;https://commits.webkit.org/247822@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 453284.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846541</commentid>
    <comment_count>8</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-02-27 22:07:30 -0800</bug_when>
    <thetext>Reopened as the test failure is not fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846547</commentid>
    <comment_count>9</comment_count>
      <attachid>453368</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-02-27 23:06:54 -0800</bug_when>
    <thetext>Created attachment 453368
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846815</commentid>
    <comment_count>10</comment_count>
      <attachid>453368</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-02-28 15:33:35 -0800</bug_when>
    <thetext>Comment on attachment 453368
Patch

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

&gt; Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h:43
&gt; +#include &lt;wtf/WeakHashSet.h&gt;

Should not need this in the header just to declare a function returning a reference to a WeakHashSet. Forward.h should suffice.

&gt; Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h:74
&gt; +    static WeakHashSet&lt;NetworkStorageManager&gt;&amp; allNetworkStorageManagers();

I suggest we publish a forEachNetworkStorageManager function for NetworkProcess.cpp to use instead of of publishing a read/write reference to a WeakHashSet; would be nice to keep the WeakHashSet as a hidden implementation detail of this class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846837</commentid>
    <comment_count>11</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-02-28 16:42:46 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #10)
&gt; Comment on attachment 453368 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=453368&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h:43
&gt; &gt; +#include &lt;wtf/WeakHashSet.h&gt;
&gt; 
&gt; Should not need this in the header just to declare a function returning a
&gt; reference to a WeakHashSet. Forward.h should suffice.
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h:74
&gt; &gt; +    static WeakHashSet&lt;NetworkStorageManager&gt;&amp; allNetworkStorageManagers();
&gt; 
&gt; I suggest we publish a forEachNetworkStorageManager function for
&gt; NetworkProcess.cpp to use instead of of publishing a read/write reference to
&gt; a WeakHashSet; would be nice to keep the WeakHashSet as a hidden
&gt; implementation detail of this class.

Sure, will add NetworkStorageManager::forEach() and remove WeakHashSet.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846839</commentid>
    <comment_count>12</comment_count>
      <attachid>453449</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-02-28 16:45:29 -0800</bug_when>
    <thetext>Created attachment 453449
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846853</commentid>
    <comment_count>13</comment_count>
      <attachid>453449</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-02-28 17:35:15 -0800</bug_when>
    <thetext>Comment on attachment 453449
Patch for landing

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

&gt; Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h:43
&gt; +#include &lt;wtf/WeakHashSet.h&gt;

Please don’t add this include to this header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846871</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-28 18:35:47 -0800</bug_when>
    <thetext>Committed r290623 (247896@main): &lt;https://commits.webkit.org/247896@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 453449.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847195</commentid>
    <comment_count>15</comment_count>
      <attachid>453449</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-03-01 14:34:28 -0800</bug_when>
    <thetext>Comment on attachment 453449
Patch for landing

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

&gt;&gt; Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h:43
&gt;&gt; +#include &lt;wtf/WeakHashSet.h&gt;
&gt; 
&gt; Please don’t add this include to this header.

Oops, I missed this. Removed in r290669.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453079</attachid>
            <date>2022-02-23 23:27:59 -0800</date>
            <delta_ts>2022-02-25 10:34:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237065-20220223232758.patch</filename>
            <type>text/plain</type>
            <size>4647</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIxOWMwYTFiYTk5MWEyZTcz
MWVkZjg5ZDZiNjNmNTg5NjQyYTk3YzAuLmEyOGRiODAyZTViZjA3ZDNkYWMxZmJhMzEyMzg0YjU1
MzhlNmM0ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDItMjMgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBUZXN0V2ViS2l0QVBJ
LldlYktpdC5NaWdyYXRlTG9jYWxTdG9yYWdlRGF0YVRvR2VuZXJhbFN0b3JhZ2VEaXJlY3Rvcnkg
aXMgYSBmbGFreSBmYWlsdXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzcwNjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg5MzI0MjUwPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9TUUxpdGVTdG9yYWdlQXJlYS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNR
TGl0ZVN0b3JhZ2VBcmVhOjpzdGFydFRyYW5zYWN0aW9uSWZOZWNlc3NhcnkpOgorCiAyMDIyLTAy
LTIyICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFBpbmdM
b2FkZXIgaXMgZmFpbGluZyB0byBjYWxsIGNvbXBsZXRpb24gaGFuZGxlciBpbiBlcnJvciBjYXNl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvU1FMaXRl
U3RvcmFnZUFyZWEuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL1NR
TGl0ZVN0b3JhZ2VBcmVhLmNwcAppbmRleCAzZGI3MWMwZDI4M2NkNjk3ZjU1MmI4NTU3ZDBhNjdi
YThiMmU5YzMyLi5kNDIzYTQzMDdmMjUwMTQ0ZTIyNjMzYmQ4MTY5ZjdmZWRlYjc1NTc3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvU1FMaXRlU3RvcmFn
ZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9TUUxp
dGVTdG9yYWdlQXJlYS5jcHAKQEAgLTE5MSwxMSArMTkxLDggQEAgdm9pZCBTUUxpdGVTdG9yYWdl
QXJlYTo6c3RhcnRUcmFuc2FjdGlvbklmTmVjZXNzYXJ5KCkKIAogICAgIG1fdHJhbnNhY3Rpb24t
PmJlZ2luKCk7CiAgICAgbV9xdWV1ZS0+ZGlzcGF0Y2hBZnRlcih0cmFuc2FjdGlvbkR1cmF0aW9u
LCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gewotICAgICAgICBpZiAoIXdlYWtUaGlz
IHx8ICF3ZWFrVGhpcy0+bV90cmFuc2FjdGlvbikKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAK
LSAgICAgICAgYXV0byB0cmFuc2FjdGlvbiA9IHN0ZDo6ZXhjaGFuZ2Uod2Vha1RoaXMtPm1fdHJh
bnNhY3Rpb24sIG51bGxwdHIpOwotICAgICAgICB0cmFuc2FjdGlvbi0+Y29tbWl0KCk7CisgICAg
ICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5jb21taXRUcmFuc2FjdGlv
bklmTmVjZXNzYXJ5KCk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwMTllMWMzYzI5NmY2NzMxNWFiY2E0ZjhmN2M5NDg3
MzU0NzE2NDE2Li5iYzA5NWQ4MGRhOWYzNzU3MjhkMGUzNmM2YjQ4YzFmOTg4N2QzNTUzIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMjItMDItMjMgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAg
ICAgICAgW21hY09TXSBUZXN0V2ViS2l0QVBJLldlYktpdC5NaWdyYXRlTG9jYWxTdG9yYWdlRGF0
YVRvR2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkgaXMgYSBmbGFreSBmYWlsdXJlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcwNjUKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzg5MzI0MjUwPgorCisgICAgICAgIEFkZCBzb21lIGRlbGF5IGJlZm9yZSBz
aHV0aW5nIGRvd24gbmV0d29yayBwcm9jZXNzIHRvIGVuc3VyZSBjaGFuZ2VzIGFyZSBmbHVzaGVk
IHRvIGZpbGUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0
b21QYXRocy5tbToKKyAgICAgICAgKFRFU1QpOgorCiAyMDIyLTAyLTIyICBSeWFuIEhhZGRhZCAg
PHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI4OTU4MCk6IFsg
aU9TIG1hY09TIF0gVGVzdFdlYktpdEFQSS5JUENUZXN0aW5nQVBJLkNhblJlY2VpdmVTaGFyZWRN
ZW1vcnkgaXMgYSBjb25zdGFudCB0aW1lb3V0CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1c3Rv
bVBhdGhzLm1tCmluZGV4IGJmOGU4ODdhYjE5MGFjN2ZhNjMwMzA4MjAzODkzNjc0ZmIyMTkwNjYu
LjdkMzRjNWUyNGU4NzVlNTBmNzM2MTMwYmFiMGU4NDc1ZjdhODMwNDEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1c3Rv
bVBhdGhzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vi
c2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCkBAIC04NDMsMTMgKzg0MywxOCBAQCBURVNUKFdl
YktpdCwgTWlncmF0ZUxvY2FsU3RvcmFnZURhdGFUb0dlbmVyYWxTdG9yYWdlRGlyZWN0b3J5KQog
ICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoIltudWxsXSIsIGdldE5leHRNZXNzYWdlKCkuYm9keSk7
CiAgICAgICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJsb2NhbFN0
b3JhZ2Uuc2V0SXRlbSgndGVzdGtleScsICd0ZXN0dmFsdWUnKSJdOwogCi0gICAgICAgIC8vIEVu
c3VyZSBpdGVtIGlzIHN0b3JlZCBieSBnZXR0aW5nIGl0IGluIGFub3RoZXIgV0tXZWJWaWV3Lgor
ICAgICAgICAvLyBFbnN1cmUgaXRlbSBpcyBzdG9yZWQgaW4gbmV0d29yayBwcm9jZXNzIGJ5IGdl
dHRpbmcgaXQgaW4gYW5vdGhlciBXS1dlYlZpZXcuCiAgICAgICAgIGF1dG8gc2Vjb25kV2ViVmll
dyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgw
LCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAg
ICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwogICAgICAgICBbc2Vjb25kV2ViVmll
dyBsb2FkSFRNTFN0cmluZzpodG1sU3RyaW5nIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6
QCJodHRwczovL3dlYmtpdC5vcmcvIl1dOwogICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAgICAgICAgIEVYUEVDVF9XS19TVFJFUSgidGVz
dHZhbHVlIiwgZ2V0TmV4dE1lc3NhZ2UoKS5ib2R5KTsKICAgICAgICAgRVhQRUNUX1RSVUUoW2Zp
bGVNYW5hZ2VyIGZpbGVFeGlzdHNBdFBhdGg6bG9jYWxTdG9yYWdlRmlsZS5wYXRoXSk7CisgICAg
ICAgIEVYUEVDVF9GQUxTRShbZmlsZU1hbmFnZXIgZmlsZUV4aXN0c0F0UGF0aDpuZXdMb2NhbFN0
b3JhZ2VGaWxlLnBhdGhdKTsKKworICAgICAgICAvLyBDdXJlcm50IGxvY2FsU3RvcmFnZSB0cmFu
c2FjdGlvbiBkdXJhdGlvbiBpcyA1MDBtcy4KKyAgICAgICAgLy8gS2VlcCBuZXR3b3JrIHByb2Nl
c3MgcnVubmluZyBmb3IgYSB3aGlsZSB0byBlbnN1cmUgaXQgd3JpdGVzIHRvIGRhdGFiYXNlIGZp
bGUuCisgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNsZWVwKDEpOwogICAgIH0KIAogICAg
IC8vIENyZWF0ZSBhIG5ldyBXZWJzaXRlRGF0YVN0b3JlIHRoYXQgcGVyZm9ybXMgbWlncmF0aW9u
LgpAQCAtODYyLDcgKzg2Nyw3IEBAIFRFU1QoV2ViS2l0LCBNaWdyYXRlTG9jYWxTdG9yYWdlRGF0
YVRvR2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkpCiAgICAgW3RoaXJkV2ViVmlldyBsb2FkSFRNTFN0
cmluZzpodG1sU3RyaW5nIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwczovL3dl
YmtpdC5vcmcvIl1dOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3Jp
cHRNZXNzYWdlKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoInRlc3R2YWx1ZSIsIGdldE5leHRNZXNz
YWdlKCkuYm9keSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFu
YWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpsb2NhbFN0b3JhZ2VGaWxlLnBhdGhdKTsKKyAgICBFWFBF
Q1RfRkFMU0UoW2ZpbGVNYW5hZ2VyIGZpbGVFeGlzdHNBdFBhdGg6bG9jYWxTdG9yYWdlRmlsZS5w
YXRoXSk7CiAgICAgRVhQRUNUX1RSVUUoW2ZpbGVNYW5hZ2VyIGZpbGVFeGlzdHNBdFBhdGg6bmV3
TG9jYWxTdG9yYWdlRmlsZS5wYXRoXSk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453229</attachid>
            <date>2022-02-25 10:34:32 -0800</date>
            <delta_ts>2022-02-25 19:58:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237065-20220225103431.patch</filename>
            <type>text/plain</type>
            <size>6719</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNDc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFmMWQ1ZjYyYTYxYzJjODc3
NzExNjM1YmJlOTZkODE0Mzk4N2RiOWYuLmY3ZjI4YWJiZjQ0MjMzOWUxOTM3ZmJkYzUxMTA3ODc2
Yzc5OTAzZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjItMDItMjUgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBUZXN0V2ViS2l0QVBJ
LldlYktpdC5NaWdyYXRlTG9jYWxTdG9yYWdlRGF0YVRvR2VuZXJhbFN0b3JhZ2VEaXJlY3Rvcnkg
aXMgYSBmbGFreSBmYWlsdXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzcwNjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg5MzI0MjUwPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbW1pdCB0cmFu
c2FjdGlvbnMgb2YgU1FMaXRlU3RvcmFnZUFyZWEgYXQgZXhpdCBvZiBuZXR3b3JrIHByb2Nlc3Mu
CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkaWRDbG9zZSk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9TUUxpdGVTdG9yYWdlQXJlYS5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNv
bW1pdFRyYW5zYWN0aW9uc0F0RXhpdCk6CisgICAgICAgIChXZWJLaXQ6OlNRTGl0ZVN0b3JhZ2VB
cmVhOjpTUUxpdGVTdG9yYWdlQXJlYSk6CisgICAgICAgIChXZWJLaXQ6OlNRTGl0ZVN0b3JhZ2VB
cmVhOjpzdGFydFRyYW5zYWN0aW9uSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViS2l0OjpTUUxp
dGVTdG9yYWdlQXJlYTo6Y29tbWl0VHJhbnNhY3Rpb25JZk5lY2Vzc2FyeSk6CisKIDIwMjItMDIt
MjQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW1JlZmFjdG9y
XSBBZG9wdCBMb2dnZXJIZWxwZXIgaW4gTGVnYWN5IEVNRSBjbGFzc2VzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDkyYzVjYjMzOWI2
NTk4ODQyMDMwMzc0YTk5ZmU2NjE3MTVhNmMzMzYuLjQ4MTcxNTg1N2JkYWFlMWU0NDA5NGY1NDI3
NWUxYzYzNmQ3ZjcxN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwCkBAIC0yNjQsNiArMjY0LDggQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6
ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKICAgICAvLyBNYWtlIHN1cmUgd2UgZmx1c2ggYWxs
IGNvb2tpZXMgdG8gZGlzayBiZWZvcmUgZXhpdGluZy4KICAgICBmb3JFYWNoTmV0d29ya1Nlc3Np
b24oWyZdIChhdXRvJiBzZXNzaW9uKSB7CiAgICAgICAgIHBsYXRmb3JtRmx1c2hDb29raWVzKHNl
c3Npb24uc2Vzc2lvbklEKCksIFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7CisgICAgICAgIGlm
IChhdXRvKiBzdG9yYWdlTWFuYWdlciA9IHNlc3Npb24uc3RvcmFnZU1hbmFnZXIoKSkKKyAgICAg
ICAgICAgIHN0b3JhZ2VNYW5hZ2VyLT5zeW5jTG9jYWxTdG9yYWdlKFtjYWxsYmFja0FnZ3JlZ2F0
b3JdIHsgfSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9TUUxpdGVTdG9yYWdlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvU1FMaXRlU3RvcmFnZUFyZWEuY3BwCmluZGV4IDNkYjcxYzBk
MjgzY2Q2OTdmNTUyYjg1NTdkMGE2N2JhOGIyZTljMzIuLmM4MzE4MGI4YzU0YjBlNmNjMmU0NjMz
ZjQ0MmRkOGY0NWEyOTY1ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9TUUxpdGVTdG9yYWdlQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL1NRTGl0ZVN0b3JhZ2VBcmVhLmNwcApAQCAtNjIsMTMgKzYyLDMy
IEBAIEFTQ0lJTGl0ZXJhbCBTUUxpdGVTdG9yYWdlQXJlYTo6c3RhdGVtZW50U3RyaW5nKFN0YXRl
bWVudFR5cGUgdHlwZSkgY29uc3QKICAgICByZXR1cm4gIiJfczsKIH0KIAorc3RhdGljIExvY2sg
YWxsVHJhbnNhY3Rpb25zTG9jazsKK3N0YXRpYyBIYXNoU2V0PFdlYkNvcmU6OlNRTGl0ZVRyYW5z
YWN0aW9uKj4mIGFsbFRyYW5zYWN0aW9ucygpIFdURl9SRVFVSVJFU19MT0NLKGFsbFRyYW5zYWN0
aW9uc0xvY2spCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8V2ViQ29yZTo6
U1FMaXRlVHJhbnNhY3Rpb24qPj4gdHJhbnNhY3Rpb25zOworICAgIHJldHVybiB0cmFuc2FjdGlv
bnM7Cit9CisKK3N0YXRpYyB2b2lkIGNvbW1pdFRyYW5zYWN0aW9uc0F0RXhpdCgpCit7CisgICAg
TG9ja2VyIGxvY2sgeyBhbGxUcmFuc2FjdGlvbnNMb2NrIH07CisgICAgZm9yIChhdXRvKiB0cmFu
c2FjdGlvbiA6IGFsbFRyYW5zYWN0aW9ucygpKQorICAgICAgICB0cmFuc2FjdGlvbi0+Y29tbWl0
KCk7Cit9CisKIFNRTGl0ZVN0b3JhZ2VBcmVhOjpTUUxpdGVTdG9yYWdlQXJlYSh1bnNpZ25lZCBx
dW90YSwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYg
cGF0aCwgUmVmPFdvcmtRdWV1ZT4mJiB3b3JrUXVldWUpCiAgICAgOiBTdG9yYWdlQXJlYUJhc2Uo
cXVvdGEsIG9yaWdpbikKICAgICAsIG1fcGF0aChwYXRoKQogICAgICwgbV9xdWV1ZShXVEZNb3Zl
KHdvcmtRdWV1ZSkpCiAgICAgLCBtX2NhY2hlZFN0YXRlbWVudHMoc3RhdGljX2Nhc3Q8c2l6ZV90
PihTdGF0ZW1lbnRUeXBlOjpJbnZhbGlkKSkKIHsKLSAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3Ao
KSk7ICAKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CisKKyAgICBzdGF0aWMgc3RkOjpv
bmNlX2ZsYWcgb25jZTsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNlLCBbXSB7CisgICAgICAgIHN0
ZDo6YXRleGl0KGNvbW1pdFRyYW5zYWN0aW9uc0F0RXhpdCk7CisgICAgfSk7CiB9CiAKIHZvaWQg
U1FMaXRlU3RvcmFnZUFyZWE6OmNsb3NlKCkKQEAgLTE4NiwxNiArMjA1LDE4IEBAIHZvaWQgU1FM
aXRlU3RvcmFnZUFyZWE6OnN0YXJ0VHJhbnNhY3Rpb25JZk5lY2Vzc2FyeSgpCiAgICAgaWYgKCFt
X3RyYW5zYWN0aW9uKQogICAgICAgICBtX3RyYW5zYWN0aW9uID0gbWFrZVVuaXF1ZTxXZWJDb3Jl
OjpTUUxpdGVUcmFuc2FjdGlvbj4oKm1fZGF0YWJhc2UpOwogCi0gICAgaWYgKG1fdHJhbnNhY3Rp
b24tPmluUHJvZ3Jlc3MoKSkKLSAgICAgICAgcmV0dXJuOworICAgIHsKKyAgICAgICAgTG9ja2Vy
IGxvY2sgeyBhbGxUcmFuc2FjdGlvbnNMb2NrIH07CisgICAgICAgIGlmIChtX3RyYW5zYWN0aW9u
LT5pblByb2dyZXNzKCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbV90cmFuc2Fj
dGlvbi0+YmVnaW4oKTsKKyAgICAgICAgYWxsVHJhbnNhY3Rpb25zKCkuYWRkKG1fdHJhbnNhY3Rp
b24uZ2V0KCkpOworICAgIH0KIAotICAgIG1fdHJhbnNhY3Rpb24tPmJlZ2luKCk7CiAgICAgbV9x
dWV1ZS0+ZGlzcGF0Y2hBZnRlcih0cmFuc2FjdGlvbkR1cmF0aW9uLCBbd2Vha1RoaXMgPSBXZWFr
UHRyIHsgKnRoaXMgfV0gewotICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVGhpcy0+bV90
cmFuc2FjdGlvbikKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAKLSAgICAgICAgYXV0byB0cmFu
c2FjdGlvbiA9IHN0ZDo6ZXhjaGFuZ2Uod2Vha1RoaXMtPm1fdHJhbnNhY3Rpb24sIG51bGxwdHIp
OwotICAgICAgICB0cmFuc2FjdGlvbi0+Y29tbWl0KCk7CisgICAgICAgIGlmICh3ZWFrVGhpcykK
KyAgICAgICAgICAgIHdlYWtUaGlzLT5jb21taXRUcmFuc2FjdGlvbklmTmVjZXNzYXJ5KCk7CiAg
ICAgfSk7CiB9CiAKQEAgLTM5OCw4ICs0MTksMTMgQEAgRXhwZWN0ZWQ8dm9pZCwgU3RvcmFnZUVy
cm9yPiBTUUxpdGVTdG9yYWdlQXJlYTo6Y2xlYXIoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRAog
CiB2b2lkIFNRTGl0ZVN0b3JhZ2VBcmVhOjpjb21taXRUcmFuc2FjdGlvbklmTmVjZXNzYXJ5KCkK
IHsKLSAgICBpZiAoYXV0byB0cmFuc2FjdGlvbiA9IHN0ZDo6ZXhjaGFuZ2UobV90cmFuc2FjdGlv
biwgbnVsbHB0cikpCi0gICAgICAgIHRyYW5zYWN0aW9uLT5jb21taXQoKTsKKyAgICBhdXRvIHRy
YW5zYWN0aW9uID0gc3RkOjpleGNoYW5nZShtX3RyYW5zYWN0aW9uLCBudWxscHRyKTsKKyAgICBp
ZiAoIXRyYW5zYWN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBMb2NrZXIgbG9jayB7IGFs
bFRyYW5zYWN0aW9uc0xvY2sgfTsKKyAgICB0cmFuc2FjdGlvbi0+Y29tbWl0KCk7CisgICAgYWxs
VHJhbnNhY3Rpb25zKCkucmVtb3ZlKHRyYW5zYWN0aW9uLmdldCgpKTsKIH0KIAogdm9pZCBTUUxp
dGVTdG9yYWdlQXJlYTo6aGFuZGxlTG93TWVtb3J5V2FybmluZygpCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTI0NTM2ZmM3YmYyZDNmMjVjZGNk
MGNhNDgxNzBmM2NhYmI0ZWEzNy4uZmI2Y2UxOWY4MWVmZDY2ZDJjYzM5MmNhNmY3OGQxODc2ODhk
YjFjNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDIyLTAyLTI1ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUu
Y29tPgorCisgICAgICAgIFttYWNPU10gVGVzdFdlYktpdEFQSS5XZWJLaXQuTWlncmF0ZUxvY2Fs
U3RvcmFnZURhdGFUb0dlbmVyYWxTdG9yYWdlRGlyZWN0b3J5IGlzIGEgZmxha3kgZmFpbHVyZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MDY1Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS84OTMyNDI1MD4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tOgorICAgICAgICAoVEVTVCk6CisKIDIw
MjItMDItMjQgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAg
IFtQeXRob24zXSBDaGFuZ2Ugc2hlYmFuZyBmb3IgdmFyaW91cyBzY3JpcHRzCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3RvcmVD
dXN0b21QYXRocy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vi
c2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCmluZGV4IGJmOGU4ODdhYjE5MGFjN2ZhNjMwMzA4
MjAzODkzNjc0ZmIyMTkwNjYuLjU2NzU5MTkzZTU0NzU5ZjFiY2M4MDM5ZDljMWQwNTdiZWZkMzA4
NTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vi
c2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCkBAIC04NTAsNiAr
ODUwLDcgQEAgVEVTVChXZWJLaXQsIE1pZ3JhdGVMb2NhbFN0b3JhZ2VEYXRhVG9HZW5lcmFsU3Rv
cmFnZURpcmVjdG9yeSkKICAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZl
ZFNjcmlwdE1lc3NhZ2UpOwogICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoInRlc3R2YWx1ZSIsIGdl
dE5leHRNZXNzYWdlKCkuYm9keSk7CiAgICAgICAgIEVYUEVDVF9UUlVFKFtmaWxlTWFuYWdlciBm
aWxlRXhpc3RzQXRQYXRoOmxvY2FsU3RvcmFnZUZpbGUucGF0aF0pOworICAgICAgICBFWFBFQ1Rf
RkFMU0UoW2ZpbGVNYW5hZ2VyIGZpbGVFeGlzdHNBdFBhdGg6bmV3TG9jYWxTdG9yYWdlRmlsZS5w
YXRoXSk7CiAgICAgfQogCiAgICAgLy8gQ3JlYXRlIGEgbmV3IFdlYnNpdGVEYXRhU3RvcmUgdGhh
dCBwZXJmb3JtcyBtaWdyYXRpb24uCkBAIC04NjIsNyArODYzLDcgQEAgVEVTVChXZWJLaXQsIE1p
Z3JhdGVMb2NhbFN0b3JhZ2VEYXRhVG9HZW5lcmFsU3RvcmFnZURpcmVjdG9yeSkKICAgICBbdGhp
cmRXZWJWaWV3IGxvYWRIVE1MU3RyaW5nOmh0bWxTdHJpbmcgYmFzZVVSTDpbTlNVUkwgVVJMV2l0
aFN0cmluZzpAImh0dHBzOi8vd2Via2l0Lm9yZy8iXV07CiAgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogICAgIEVYUEVDVF9XS19TVFJFUSgidGVz
dHZhbHVlIiwgZ2V0TmV4dE1lc3NhZ2UoKS5ib2R5KTsKLSAgICBFWFBFQ1RfRkFMU0UoW1tOU0Zp
bGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmxvY2FsU3RvcmFnZUZp
bGUucGF0aF0pOworICAgIEVYUEVDVF9GQUxTRShbZmlsZU1hbmFnZXIgZmlsZUV4aXN0c0F0UGF0
aDpsb2NhbFN0b3JhZ2VGaWxlLnBhdGhdKTsKICAgICBFWFBFQ1RfVFJVRShbZmlsZU1hbmFnZXIg
ZmlsZUV4aXN0c0F0UGF0aDpuZXdMb2NhbFN0b3JhZ2VGaWxlLnBhdGhdKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453284</attachid>
            <date>2022-02-25 19:58:49 -0800</date>
            <delta_ts>2022-02-27 23:06:51 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-237065-20220225195848.patch</filename>
            <type>text/plain</type>
            <size>6765</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNDc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFmMWQ1ZjYyYTYxYzJjODc3
NzExNjM1YmJlOTZkODE0Mzk4N2RiOWYuLjg5OGRhYjliYWQzYjM0NTQ5ZWFkYWEzY2Y2OGNjMjg4
N2IxY2M1YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjItMDItMjUgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBUZXN0V2ViS2l0QVBJ
LldlYktpdC5NaWdyYXRlTG9jYWxTdG9yYWdlRGF0YVRvR2VuZXJhbFN0b3JhZ2VEaXJlY3Rvcnkg
aXMgYSBmbGFreSBmYWlsdXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzcwNjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg5MzI0MjUwPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCisKKyAgICAgICAgQ29tbWl0
IHRyYW5zYWN0aW9ucyBvZiBTUUxpdGVTdG9yYWdlQXJlYSBhdCBleGl0IG9mIG5ldHdvcmsgcHJv
Y2Vzcy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRpZENsb3NlKToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL1NRTGl0ZVN0b3JhZ2VBcmVhLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Y29tbWl0VHJhbnNhY3Rpb25zQXRFeGl0KToKKyAgICAgICAgKFdlYktpdDo6U1FMaXRlU3Rv
cmFnZUFyZWE6OlNRTGl0ZVN0b3JhZ2VBcmVhKToKKyAgICAgICAgKFdlYktpdDo6U1FMaXRlU3Rv
cmFnZUFyZWE6OnN0YXJ0VHJhbnNhY3Rpb25JZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJLaXQ6
OlNRTGl0ZVN0b3JhZ2VBcmVhOjpjb21taXRUcmFuc2FjdGlvbklmTmVjZXNzYXJ5KToKKwogMjAy
Mi0wMi0yNCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbUmVm
YWN0b3JdIEFkb3B0IExvZ2dlckhlbHBlciBpbiBMZWdhY3kgRU1FIGNsYXNzZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggOTJjNWNi
MzM5YjY1OTg4NDIwMzAzNzRhOTlmZTY2MTcxNWE2YzMzNi4uYjZkYWViNTYyZjQ5OGEzY2E0ZTY4
NGRiOTJkYjBjMjg1YmQwNTY1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTI2MSw5ICsyNjEsMTAgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKICAgICAgICAgc3RvcFJ1bkxvb3AoKTsK
ICAgICB9KTsKIAotICAgIC8vIE1ha2Ugc3VyZSB3ZSBmbHVzaCBhbGwgY29va2llcyB0byBkaXNr
IGJlZm9yZSBleGl0aW5nLgogICAgIGZvckVhY2hOZXR3b3JrU2Vzc2lvbihbJl0gKGF1dG8mIHNl
c3Npb24pIHsKICAgICAgICAgcGxhdGZvcm1GbHVzaENvb2tpZXMoc2Vzc2lvbi5zZXNzaW9uSUQo
KSwgW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKKyAgICAgICAgaWYgKGF1dG8qIHN0b3JhZ2VN
YW5hZ2VyID0gc2Vzc2lvbi5zdG9yYWdlTWFuYWdlcigpKQorICAgICAgICAgICAgc3RvcmFnZU1h
bmFnZXItPnN5bmNMb2NhbFN0b3JhZ2UoW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKICAgICB9
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L1NRTGl0ZVN0b3JhZ2VBcmVhLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9TUUxpdGVTdG9yYWdlQXJlYS5jcHAKaW5kZXggM2RiNzFjMGQyODNjZDY5N2Y1NTJiODU1
N2QwYTY3YmE4YjJlOWMzMi4uYzgzMTgwYjhjNTRiMGU2Y2MyZTQ2MzNmNDQyZGQ4ZjQ1YTI5NjVl
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL1NRTGl0
ZVN0b3JhZ2VBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvU1FMaXRlU3RvcmFnZUFyZWEuY3BwCkBAIC02MiwxMyArNjIsMzIgQEAgQVNDSUlMaXRlcmFs
IFNRTGl0ZVN0b3JhZ2VBcmVhOjpzdGF0ZW1lbnRTdHJpbmcoU3RhdGVtZW50VHlwZSB0eXBlKSBj
b25zdAogICAgIHJldHVybiAiIl9zOwogfQogCitzdGF0aWMgTG9jayBhbGxUcmFuc2FjdGlvbnNM
b2NrOworc3RhdGljIEhhc2hTZXQ8V2ViQ29yZTo6U1FMaXRlVHJhbnNhY3Rpb24qPiYgYWxsVHJh
bnNhY3Rpb25zKCkgV1RGX1JFUVVJUkVTX0xPQ0soYWxsVHJhbnNhY3Rpb25zTG9jaykKK3sKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxXZWJDb3JlOjpTUUxpdGVUcmFuc2FjdGlv
bio+PiB0cmFuc2FjdGlvbnM7CisgICAgcmV0dXJuIHRyYW5zYWN0aW9uczsKK30KKworc3RhdGlj
IHZvaWQgY29tbWl0VHJhbnNhY3Rpb25zQXRFeGl0KCkKK3sKKyAgICBMb2NrZXIgbG9jayB7IGFs
bFRyYW5zYWN0aW9uc0xvY2sgfTsKKyAgICBmb3IgKGF1dG8qIHRyYW5zYWN0aW9uIDogYWxsVHJh
bnNhY3Rpb25zKCkpCisgICAgICAgIHRyYW5zYWN0aW9uLT5jb21taXQoKTsKK30KKwogU1FMaXRl
U3RvcmFnZUFyZWE6OlNRTGl0ZVN0b3JhZ2VBcmVhKHVuc2lnbmVkIHF1b3RhLCBjb25zdCBXZWJD
b3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBwYXRoLCBSZWY8V29ya1F1
ZXVlPiYmIHdvcmtRdWV1ZSkKICAgICA6IFN0b3JhZ2VBcmVhQmFzZShxdW90YSwgb3JpZ2luKQog
ICAgICwgbV9wYXRoKHBhdGgpCiAgICAgLCBtX3F1ZXVlKFdURk1vdmUod29ya1F1ZXVlKSkKICAg
ICAsIG1fY2FjaGVkU3RhdGVtZW50cyhzdGF0aWNfY2FzdDxzaXplX3Q+KFN0YXRlbWVudFR5cGU6
OkludmFsaWQpKQogewotICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsgIAorICAgIEFTU0VS
VCghaXNNYWluUnVuTG9vcCgpKTsKKworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwor
ICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdIHsKKyAgICAgICAgc3RkOjphdGV4aXQoY29tbWl0
VHJhbnNhY3Rpb25zQXRFeGl0KTsKKyAgICB9KTsKIH0KIAogdm9pZCBTUUxpdGVTdG9yYWdlQXJl
YTo6Y2xvc2UoKQpAQCAtMTg2LDE2ICsyMDUsMTggQEAgdm9pZCBTUUxpdGVTdG9yYWdlQXJlYTo6
c3RhcnRUcmFuc2FjdGlvbklmTmVjZXNzYXJ5KCkKICAgICBpZiAoIW1fdHJhbnNhY3Rpb24pCiAg
ICAgICAgIG1fdHJhbnNhY3Rpb24gPSBtYWtlVW5pcXVlPFdlYkNvcmU6OlNRTGl0ZVRyYW5zYWN0
aW9uPigqbV9kYXRhYmFzZSk7CiAKLSAgICBpZiAobV90cmFuc2FjdGlvbi0+aW5Qcm9ncmVzcygp
KQotICAgICAgICByZXR1cm47CisgICAgeworICAgICAgICBMb2NrZXIgbG9jayB7IGFsbFRyYW5z
YWN0aW9uc0xvY2sgfTsKKyAgICAgICAgaWYgKG1fdHJhbnNhY3Rpb24tPmluUHJvZ3Jlc3MoKSkK
KyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBtX3RyYW5zYWN0aW9uLT5iZWdpbigpOwor
ICAgICAgICBhbGxUcmFuc2FjdGlvbnMoKS5hZGQobV90cmFuc2FjdGlvbi5nZXQoKSk7CisgICAg
fQogCi0gICAgbV90cmFuc2FjdGlvbi0+YmVnaW4oKTsKICAgICBtX3F1ZXVlLT5kaXNwYXRjaEFm
dGVyKHRyYW5zYWN0aW9uRHVyYXRpb24sIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSB7
Ci0gICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdlYWtUaGlzLT5tX3RyYW5zYWN0aW9uKQotICAg
ICAgICAgICAgcmV0dXJuOwotICAgIAotICAgICAgICBhdXRvIHRyYW5zYWN0aW9uID0gc3RkOjpl
eGNoYW5nZSh3ZWFrVGhpcy0+bV90cmFuc2FjdGlvbiwgbnVsbHB0cik7Ci0gICAgICAgIHRyYW5z
YWN0aW9uLT5jb21taXQoKTsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgd2Vh
a1RoaXMtPmNvbW1pdFRyYW5zYWN0aW9uSWZOZWNlc3NhcnkoKTsKICAgICB9KTsKIH0KIApAQCAt
Mzk4LDggKzQxOSwxMyBAQCBFeHBlY3RlZDx2b2lkLCBTdG9yYWdlRXJyb3I+IFNRTGl0ZVN0b3Jh
Z2VBcmVhOjpjbGVhcihJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlECiAKIHZvaWQgU1FMaXRlU3Rv
cmFnZUFyZWE6OmNvbW1pdFRyYW5zYWN0aW9uSWZOZWNlc3NhcnkoKQogewotICAgIGlmIChhdXRv
IHRyYW5zYWN0aW9uID0gc3RkOjpleGNoYW5nZShtX3RyYW5zYWN0aW9uLCBudWxscHRyKSkKLSAg
ICAgICAgdHJhbnNhY3Rpb24tPmNvbW1pdCgpOworICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBzdGQ6
OmV4Y2hhbmdlKG1fdHJhbnNhY3Rpb24sIG51bGxwdHIpOworICAgIGlmICghdHJhbnNhY3Rpb24p
CisgICAgICAgIHJldHVybjsKKworICAgIExvY2tlciBsb2NrIHsgYWxsVHJhbnNhY3Rpb25zTG9j
ayB9OworICAgIHRyYW5zYWN0aW9uLT5jb21taXQoKTsKKyAgICBhbGxUcmFuc2FjdGlvbnMoKS5y
ZW1vdmUodHJhbnNhY3Rpb24uZ2V0KCkpOwogfQogCiB2b2lkIFNRTGl0ZVN0b3JhZ2VBcmVhOjpo
YW5kbGVMb3dNZW1vcnlXYXJuaW5nKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCA5MjQ1MzZmYzdiZjJkM2YyNWNkY2QwY2E0ODE3MGYzY2FiYjRl
YTM3Li4yN2Y1YTAxMzM0MzYwNDg0ZjkwYmNlOGEzODZhZmE0MzIyZDM3YzQyIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMjItMDItMjUgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAg
W21hY09TXSBUZXN0V2ViS2l0QVBJLldlYktpdC5NaWdyYXRlTG9jYWxTdG9yYWdlRGF0YVRvR2Vu
ZXJhbFN0b3JhZ2VEaXJlY3RvcnkgaXMgYSBmbGFreSBmYWlsdXJlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcwNjUKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzg5MzI0MjUwPgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFr
b3YuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVE
YXRhU3RvcmVDdXN0b21QYXRocy5tbToKKyAgICAgICAgKFRFU1QpOgorCiAyMDIyLTAyLTI0ICBK
b25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbUHl0aG9uM10g
Q2hhbmdlIHNoZWJhbmcgZm9yIHZhcmlvdXMgc2NyaXB0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3Rv
cmVDdXN0b21QYXRocy5tbQppbmRleCBiZjhlODg3YWIxOTBhYzdmYTYzMDMwODIwMzg5MzY3NGZi
MjE5MDY2Li41Njc1OTE5M2U1NDc1OWYxYmNjODAzOWQ5YzFkMDU3YmVmZDMwODUyIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3Rv
cmVDdXN0b21QYXRocy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbQpAQCAtODUwLDYgKzg1MCw3IEBAIFRF
U1QoV2ViS2l0LCBNaWdyYXRlTG9jYWxTdG9yYWdlRGF0YVRvR2VuZXJhbFN0b3JhZ2VEaXJlY3Rv
cnkpCiAgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNz
YWdlKTsKICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKCJ0ZXN0dmFsdWUiLCBnZXROZXh0TWVzc2Fn
ZSgpLmJvZHkpOwogICAgICAgICBFWFBFQ1RfVFJVRShbZmlsZU1hbmFnZXIgZmlsZUV4aXN0c0F0
UGF0aDpsb2NhbFN0b3JhZ2VGaWxlLnBhdGhdKTsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKFtmaWxl
TWFuYWdlciBmaWxlRXhpc3RzQXRQYXRoOm5ld0xvY2FsU3RvcmFnZUZpbGUucGF0aF0pOwogICAg
IH0KIAogICAgIC8vIENyZWF0ZSBhIG5ldyBXZWJzaXRlRGF0YVN0b3JlIHRoYXQgcGVyZm9ybXMg
bWlncmF0aW9uLgpAQCAtODYyLDcgKzg2Myw3IEBAIFRFU1QoV2ViS2l0LCBNaWdyYXRlTG9jYWxT
dG9yYWdlRGF0YVRvR2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkpCiAgICAgW3RoaXJkV2ViVmlldyBs
b2FkSFRNTFN0cmluZzpodG1sU3RyaW5nIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJo
dHRwczovL3dlYmtpdC5vcmcvIl1dOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVj
ZWl2ZWRTY3JpcHRNZXNzYWdlKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoInRlc3R2YWx1ZSIsIGdl
dE5leHRNZXNzYWdlKCkuYm9keSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFtbTlNGaWxlTWFuYWdlciBk
ZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpsb2NhbFN0b3JhZ2VGaWxlLnBhdGhdKTsK
KyAgICBFWFBFQ1RfRkFMU0UoW2ZpbGVNYW5hZ2VyIGZpbGVFeGlzdHNBdFBhdGg6bG9jYWxTdG9y
YWdlRmlsZS5wYXRoXSk7CiAgICAgRVhQRUNUX1RSVUUoW2ZpbGVNYW5hZ2VyIGZpbGVFeGlzdHNB
dFBhdGg6bmV3TG9jYWxTdG9yYWdlRmlsZS5wYXRoXSk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453368</attachid>
            <date>2022-02-27 23:06:54 -0800</date>
            <delta_ts>2022-02-28 16:45:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237065-20220227230653.patch</filename>
            <type>text/plain</type>
            <size>9318</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk2NmEzZjM0ZTA1NDdiZjZl
M2UwZjQ1MDMxOGZkODQ2OTE1YjkwNWYuLmE1ZDJkODAxNWE4OWZkYTc5NWRjZmE4NDVmYzkxNzY3
OTc0ZWQ3MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjItMDItMjcgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBUZXN0V2ViS2l0QVBJ
LldlYktpdC5NaWdyYXRlTG9jYWxTdG9yYWdlRGF0YVRvR2VuZXJhbFN0b3JhZ2VEaXJlY3Rvcnkg
aXMgYSBmbGFreSBmYWlsdXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzcwNjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg5MzI0MjUwPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJldmVydCByMjkw
NTQ0IGFzIGl0IGRvZXMgbm90IGZ1bGx5IGZpeCB0aGUgZmxha3kgdGVzdC4gVGhlIGZsYWtpbmVz
cyBpcyBjYXVzZWQgYnkgbmV0d29yayBwcm9jZXNzIGV4aXRpbmcKKyAgICAgICAgYmVmb3JlIHRy
YW5zYWN0aW9ucyBvZiBTUUxpdGVTdG9yYWdlQXJlYSBhcmUgY29tbWl0dGVkLiBJbiBOZXR3b3Jr
UHJvY2Vzczo6ZGVzdHJveVNlc3Npb24sIHdlIHNjaGVkdWxlIGEgCisgICAgICAgIGJhY2tncm91
bmQgdGFzayB0byBjb21taXQgdHJhbnNhY3Rpb25zIGluIHRoZSBzZXNzaW9uLCBhbmQgcmVtb3Zl
IHNlc3Npb24uIEluIE5ldHdvcmtQcm9jZXNzOjpkaWRDbG9zZSwgZm9yIAorICAgICAgICBleGlz
dGluZyBzZXNzaW9ucywgd2Ugc2NoZWR1bGUgdGFza3MgdG8gY29tbWl0IHRyYW5zYWN0aW9uIGFu
ZCB3YWl0IHVudGlsIHRoZSB0YXNrcyBhcmUgZmluaXNoZWQgYmVmb3JlIGV4aXRpbmcgCisgICAg
ICAgIG5ldHdvcmsgcHJvY2Vzcy4gVGhhdCBtZWFucyBmb3IgYSBzZXNzaW9uLCB3aGVuIE5ldHdv
cmtQcm9jZXNzOjpkZXN0cm95U2Vzc2lvbiBpcyBjYWxsZWQgYmVmb3JlIAorICAgICAgICBOZXR3
b3JrUHJvY2Vzczo6ZGlkQ2xvc2UsIHByb2Nlc3MgbWF5IGV4aXQgYmVmb3JlIGNvbW1pdCB0YXNr
IChzY2hlZHVsZWQgYnkgTmV0d29ya1Byb2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKSBpcworICAgICAg
ICBmaW5pc2hlZCAoTmV0d29ya1Byb2Nlc3M6OmRpZENsb3NlIGRvZXMgbm90IHdhaXQgYmVjYXVz
ZSBzZXNzaW9uIGlzIGFscmVhZHkgcmVtb3ZlZCkuIAorCisgICAgICAgIFRvIHNvbHZlIHRoaXMg
aXNzdWUsIGxldCBOZXR3b3JrUHJvY2Vzczo6ZGlkQ2xvc2UgY2hlY2sgZXhpc3RpbmcgTmV0d29y
a1N0b3JhZ2VNYW5hZ2VycywgaW5zdGVhZCBvZiAKKyAgICAgICAgTmV0d29ya1Nlc3Npb25zLiBO
ZXR3b3JrU3RvcmFnZU1hbmFnZXIgY2FuIG91dGxpdmUgTmV0d29ya1Nlc3Npb24gd2hlbiBpdCdz
IGZpbmlzaGluZyBjbGVhbnVwIHRhc2sKKyAgICAgICAgKGluY2x1ZGluZyBjb21taXR0aW5nIHRy
YW5zYWN0aW9ucykgb24gaXRzIGJhY2tncm91bmQgdGhyZWFkOyB3ZSB3YW50IHRvIGVuc3VyZSBw
cm9jZXNzIGV4aXRzIGFmdGVyIHRoZSBjbGVhbnVwCisgICAgICAgIHRhc2sgaXMgZG9uZS4KKwor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OmRpZENsb3NlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtTdG9yYWdlTWFuYWdlcjo6YWxsTmV0d29ya1N0b3JhZ2VNYW5hZ2Vycyk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjp+TmV0d29ya1N0b3JhZ2VN
YW5hZ2VyKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdl
TWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvU1FMaXRlU3RvcmFn
ZUFyZWEuY3BwOgorICAgICAgICAoV2ViS2l0OjpTUUxpdGVTdG9yYWdlQXJlYTo6U1FMaXRlU3Rv
cmFnZUFyZWEpOgorICAgICAgICAoV2ViS2l0OjpTUUxpdGVTdG9yYWdlQXJlYTo6c3RhcnRUcmFu
c2FjdGlvbklmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYktpdDo6U1FMaXRlU3RvcmFnZUFyZWE6
OmNvbW1pdFRyYW5zYWN0aW9uSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViS2l0Ojpjb21taXRU
cmFuc2FjdGlvbnNBdEV4aXQpOiBEZWxldGVkLgorCiAyMDIyLTAyLTI2ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRHJvcCBSZWY8PidzIG9wZXJhdG9yPT0oKSBh
cyBpdCBpcyBhIGJpdCBhbWJpZ3VvdXMgLyBjb25mdXNpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggYjZkYWViNTYyZjQ5OGEzY2E0
ZTY4NGRiOTJkYjBjMjg1YmQwNTY1NC4uZTdlNTBlNTE2YzdjY2EyZmFlZjQ1NDFiNjZmMWM3NTU3
NzFkZWY3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHAKQEAgLTI2Myw5ICsyNjMsMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkQ2xv
c2UoSVBDOjpDb25uZWN0aW9uJikKIAogICAgIGZvckVhY2hOZXR3b3JrU2Vzc2lvbihbJl0gKGF1
dG8mIHNlc3Npb24pIHsKICAgICAgICAgcGxhdGZvcm1GbHVzaENvb2tpZXMoc2Vzc2lvbi5zZXNz
aW9uSUQoKSwgW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKLSAgICAgICAgaWYgKGF1dG8qIHN0
b3JhZ2VNYW5hZ2VyID0gc2Vzc2lvbi5zdG9yYWdlTWFuYWdlcigpKQotICAgICAgICAgICAgc3Rv
cmFnZU1hbmFnZXItPnN5bmNMb2NhbFN0b3JhZ2UoW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsK
ICAgICB9KTsKKworICAgIGZvciAoYXV0byYgbWFuYWdlciA6IE5ldHdvcmtTdG9yYWdlTWFuYWdl
cjo6YWxsTmV0d29ya1N0b3JhZ2VNYW5hZ2VycygpKQorICAgICAgICBtYW5hZ2VyLnN5bmNMb2Nh
bFN0b3JhZ2UoW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKIH0KIAogdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6ZGlkQ3JlYXRlRG93bmxvYWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRl
eCA3MzljMTUyMTQxYmEyOTg5ZmFkNTk3MmU3YzNiNzljYjlkY2EyMjljLi5kZTYwODU2ZTZlNjMz
MmQ1MmQ0ZWY2NmU1OGQ1NDQyZjRjNTA1YjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNw
cApAQCAtMTA4LDYgKzEwOCwxMiBAQCBzdGF0aWMgdm9pZCBkZWxldGVPcmlnaW5GaWxlSWZOZWNl
c3NhcnkoY29uc3QgU3RyaW5nJiBmaWxlUGF0aCkKICAgICAgICAgRmlsZVN5c3RlbTo6ZGVsZXRl
RmlsZShmaWxlUGF0aCk7CiB9CiAKK1dlYWtIYXNoU2V0PE5ldHdvcmtTdG9yYWdlTWFuYWdlcj4m
IE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6YWxsTmV0d29ya1N0b3JhZ2VNYW5hZ2VycygpCit7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxXZWFrSGFzaFNldDxOZXR3b3JrU3Rv
cmFnZU1hbmFnZXI+PiBtYW5hZ2VyczsKKyAgICByZXR1cm4gbWFuYWdlcnM7Cit9CisKIFJlZjxO
ZXR3b3JrU3RvcmFnZU1hbmFnZXI+IE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCBjb25uZWN0aW9u
LCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgY3VzdG9tTG9jYWxTdG9yYWdlUGF0
aCwgY29uc3QgU3RyaW5nJiBjdXN0b21JREJTdG9yYWdlUGF0aCwgY29uc3QgU3RyaW5nJiBjdXN0
b21DYWNoZVN0b3JhZ2VQYXRoLCB1aW50NjRfdCBkZWZhdWx0T3JpZ2luUXVvdGEsIHVpbnQ2NF90
IGRlZmF1bHRUaGlyZFBhcnR5T3JpZ2luUXVvdGEsIGJvb2wgc2hvdWxkVXNlQ3VzdG9tUGF0aHMp
CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyKHNlc3Np
b25JRCwgY29ubmVjdGlvbiwgcGF0aCwgY3VzdG9tTG9jYWxTdG9yYWdlUGF0aCwgY3VzdG9tSURC
U3RvcmFnZVBhdGgsIGN1c3RvbUNhY2hlU3RvcmFnZVBhdGgsIGRlZmF1bHRPcmlnaW5RdW90YSwg
ZGVmYXVsdFRoaXJkUGFydHlPcmlnaW5RdW90YSwgc2hvdWxkVXNlQ3VzdG9tUGF0aHMpKTsKQEAg
LTEyMiw2ICsxMjgsNyBAQCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6Ok5ldHdvcmtTdG9yYWdlTWFu
YWdlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIElQQzo6Q29ubgogewogICAgIEFTU0VSVChS
dW5Mb29wOjppc01haW4oKSk7CiAKKyAgICBhbGxOZXR3b3JrU3RvcmFnZU1hbmFnZXJzKCkuYWRk
KCp0aGlzKTsKICAgICBtX3F1ZXVlLT5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJl
ZiB7ICp0aGlzIH0sIHBhdGggPSBwYXRoLmlzb2xhdGVkQ29weSgpLCBjdXN0b21Mb2NhbFN0b3Jh
Z2VQYXRoID0gY3Jvc3NUaHJlYWRDb3B5KGN1c3RvbUxvY2FsU3RvcmFnZVBhdGgpLCBjdXN0b21J
REJTdG9yYWdlUGF0aCA9IGNyb3NzVGhyZWFkQ29weShjdXN0b21JREJTdG9yYWdlUGF0aCksIGN1
c3RvbUNhY2hlU3RvcmFnZVBhdGggPSBjcm9zc1RocmVhZENvcHkoY3VzdG9tQ2FjaGVTdG9yYWdl
UGF0aCksIHNob3VsZFVzZUN1c3RvbVBhdGhzXSgpIG11dGFibGUgewogICAgICAgICBtX2ZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkgPSBtYWtlVW5pcXVlPEZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlUmVnaXN0cnk+KCk7CiAgICAgICAgIG1fc3RvcmFnZUFyZWFSZWdpc3RyeSA9IG1ha2VV
bmlxdWU8U3RvcmFnZUFyZWFSZWdpc3RyeT4oKTsKQEAgLTE0Miw2ICsxNDksOCBAQCBOZXR3b3Jr
U3RvcmFnZU1hbmFnZXI6On5OZXR3b3JrU3RvcmFnZU1hbmFnZXIoKQogewogICAgIEFTU0VSVChS
dW5Mb29wOjppc01haW4oKSk7CiAgICAgQVNTRVJUKG1fY2xvc2VkKTsKKworICAgIGFsbE5ldHdv
cmtTdG9yYWdlTWFuYWdlcnMoKS5yZW1vdmUoKnRoaXMpOwogfQogCiBib29sIE5ldHdvcmtTdG9y
YWdlTWFuYWdlcjo6Y2FuSGFuZGxlVHlwZXMoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gdHlw
ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggMjJmY2QxMDcxMDIzNmUzM2IzYTllNTI3
YjExYWQwM2E5ZWNiZWYyZC4uMGMzN2YwOTA4ODUxNzY2YTJiM2RjOTcyM2VkYzQ3OWI5ZGY3YWQw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvSW5kZXhlZERCLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CiAKIG5hbWVz
cGFjZSBJUEMgewogY2xhc3MgU2hhcmVkRmlsZUhhbmRsZTsKQEAgLTcwLDYgKzcxLDcgQEAgY2xh
c3MgU3RvcmFnZUFyZWFSZWdpc3RyeTsKIAogY2xhc3MgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyIGZp
bmFsIDogcHVibGljIElQQzo6Q29ubmVjdGlvbjo6V29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyIHsK
IHB1YmxpYzoKKyAgICBzdGF0aWMgV2Vha0hhc2hTZXQ8TmV0d29ya1N0b3JhZ2VNYW5hZ2VyPiYg
YWxsTmV0d29ya1N0b3JhZ2VNYW5hZ2VycygpOwogICAgIHN0YXRpYyBSZWY8TmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyPiBjcmVhdGUoUEFMOjpTZXNzaW9uSUQsIElQQzo6Q29ubmVjdGlvbjo6VW5pcXVl
SUQsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBjdXN0b21Mb2NhbFN0b3JhZ2VQ
YXRoLCBjb25zdCBTdHJpbmcmIGN1c3RvbUlEQlN0b3JhZ2VQYXRoLCBjb25zdCBTdHJpbmcmIGN1
c3RvbUNhY2hlU3RvcmFnZVBhdGgsIHVpbnQ2NF90IGRlZmF1bHRPcmlnaW5RdW90YSwgdWludDY0
X3QgZGVmYXVsdFRoaXJkUGFydHlPcmlnaW5RdW90YSwgYm9vbCBzaG91bGRVc2VDdXN0b21QYXRo
cyk7CiAgICAgc3RhdGljIGJvb2wgY2FuSGFuZGxlVHlwZXMoT3B0aW9uU2V0PFdlYnNpdGVEYXRh
VHlwZT4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvU1FMaXRlU3RvcmFnZUFyZWEuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL1NRTGl0ZVN0b3JhZ2VBcmVhLmNwcAppbmRleCBjODMxODBiOGM1NGIwZTZjYzJlNDYz
M2Y0NDJkZDhmNDVhMjk2NWVhLi4xMGVjMjA3Njg1MTQ1OGNlZjE2MTkwZWYxYjkxNjZkMmYwYTQ0
ZTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvU1FM
aXRlU3RvcmFnZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9TUUxpdGVTdG9yYWdlQXJlYS5jcHAKQEAgLTYyLDIwICs2Miw2IEBAIEFTQ0lJTGl0ZXJh
bCBTUUxpdGVTdG9yYWdlQXJlYTo6c3RhdGVtZW50U3RyaW5nKFN0YXRlbWVudFR5cGUgdHlwZSkg
Y29uc3QKICAgICByZXR1cm4gIiJfczsKIH0KIAotc3RhdGljIExvY2sgYWxsVHJhbnNhY3Rpb25z
TG9jazsKLXN0YXRpYyBIYXNoU2V0PFdlYkNvcmU6OlNRTGl0ZVRyYW5zYWN0aW9uKj4mIGFsbFRy
YW5zYWN0aW9ucygpIFdURl9SRVFVSVJFU19MT0NLKGFsbFRyYW5zYWN0aW9uc0xvY2spCi17Ci0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8V2ViQ29yZTo6U1FMaXRlVHJhbnNhY3Rp
b24qPj4gdHJhbnNhY3Rpb25zOwotICAgIHJldHVybiB0cmFuc2FjdGlvbnM7Ci19Ci0KLXN0YXRp
YyB2b2lkIGNvbW1pdFRyYW5zYWN0aW9uc0F0RXhpdCgpCi17Ci0gICAgTG9ja2VyIGxvY2sgeyBh
bGxUcmFuc2FjdGlvbnNMb2NrIH07Ci0gICAgZm9yIChhdXRvKiB0cmFuc2FjdGlvbiA6IGFsbFRy
YW5zYWN0aW9ucygpKQotICAgICAgICB0cmFuc2FjdGlvbi0+Y29tbWl0KCk7Ci19Ci0KIFNRTGl0
ZVN0b3JhZ2VBcmVhOjpTUUxpdGVTdG9yYWdlQXJlYSh1bnNpZ25lZCBxdW90YSwgY29uc3QgV2Vi
Q29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgcGF0aCwgUmVmPFdvcmtR
dWV1ZT4mJiB3b3JrUXVldWUpCiAgICAgOiBTdG9yYWdlQXJlYUJhc2UocXVvdGEsIG9yaWdpbikK
ICAgICAsIG1fcGF0aChwYXRoKQpAQCAtODMsMTEgKzY5LDYgQEAgU1FMaXRlU3RvcmFnZUFyZWE6
OlNRTGl0ZVN0b3JhZ2VBcmVhKHVuc2lnbmVkIHF1b3RhLCBjb25zdCBXZWJDb3JlOjpDbGllbnRP
cmlnaW4KICAgICAsIG1fY2FjaGVkU3RhdGVtZW50cyhzdGF0aWNfY2FzdDxzaXplX3Q+KFN0YXRl
bWVudFR5cGU6OkludmFsaWQpKQogewogICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKLQot
ICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwotICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2Us
IFtdIHsKLSAgICAgICAgc3RkOjphdGV4aXQoY29tbWl0VHJhbnNhY3Rpb25zQXRFeGl0KTsKLSAg
ICB9KTsKIH0KIAogdm9pZCBTUUxpdGVTdG9yYWdlQXJlYTo6Y2xvc2UoKQpAQCAtMjA1LDE0ICsx
ODYsOSBAQCB2b2lkIFNRTGl0ZVN0b3JhZ2VBcmVhOjpzdGFydFRyYW5zYWN0aW9uSWZOZWNlc3Nh
cnkoKQogICAgIGlmICghbV90cmFuc2FjdGlvbikKICAgICAgICAgbV90cmFuc2FjdGlvbiA9IG1h
a2VVbmlxdWU8V2ViQ29yZTo6U1FMaXRlVHJhbnNhY3Rpb24+KCptX2RhdGFiYXNlKTsKIAotICAg
IHsKLSAgICAgICAgTG9ja2VyIGxvY2sgeyBhbGxUcmFuc2FjdGlvbnNMb2NrIH07Ci0gICAgICAg
IGlmIChtX3RyYW5zYWN0aW9uLT5pblByb2dyZXNzKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0K
LSAgICAgICAgbV90cmFuc2FjdGlvbi0+YmVnaW4oKTsKLSAgICAgICAgYWxsVHJhbnNhY3Rpb25z
KCkuYWRkKG1fdHJhbnNhY3Rpb24uZ2V0KCkpOwotICAgIH0KKyAgICBpZiAobV90cmFuc2FjdGlv
bi0+aW5Qcm9ncmVzcygpKQorICAgICAgICByZXR1cm47CisgICAgbV90cmFuc2FjdGlvbi0+YmVn
aW4oKTsKIAogICAgIG1fcXVldWUtPmRpc3BhdGNoQWZ0ZXIodHJhbnNhY3Rpb25EdXJhdGlvbiwg
W3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dIHsKICAgICAgICAgaWYgKHdlYWtUaGlzKQpA
QCAtNDE5LDEzICszOTUsOCBAQCBFeHBlY3RlZDx2b2lkLCBTdG9yYWdlRXJyb3I+IFNRTGl0ZVN0
b3JhZ2VBcmVhOjpjbGVhcihJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlECiAKIHZvaWQgU1FMaXRl
U3RvcmFnZUFyZWE6OmNvbW1pdFRyYW5zYWN0aW9uSWZOZWNlc3NhcnkoKQogewotICAgIGF1dG8g
dHJhbnNhY3Rpb24gPSBzdGQ6OmV4Y2hhbmdlKG1fdHJhbnNhY3Rpb24sIG51bGxwdHIpOwotICAg
IGlmICghdHJhbnNhY3Rpb24pCi0gICAgICAgIHJldHVybjsKLQotICAgIExvY2tlciBsb2NrIHsg
YWxsVHJhbnNhY3Rpb25zTG9jayB9OwotICAgIHRyYW5zYWN0aW9uLT5jb21taXQoKTsKLSAgICBh
bGxUcmFuc2FjdGlvbnMoKS5yZW1vdmUodHJhbnNhY3Rpb24uZ2V0KCkpOworICAgIGlmIChhdXRv
IHRyYW5zYWN0aW9uID0gc3RkOjpleGNoYW5nZShtX3RyYW5zYWN0aW9uLCBudWxscHRyKSkKKyAg
ICAgICAgdHJhbnNhY3Rpb24tPmNvbW1pdCgpOwogfQogCiB2b2lkIFNRTGl0ZVN0b3JhZ2VBcmVh
OjpoYW5kbGVMb3dNZW1vcnlXYXJuaW5nKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453449</attachid>
            <date>2022-02-28 16:45:29 -0800</date>
            <delta_ts>2022-02-28 18:35:49 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-237065-20220228164528.patch</filename>
            <type>text/plain</type>
            <size>9502</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNjE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFmZmE1MGViMjhmOTYyMGQw
YmRjNjEwY2IwZWEwZWQ1NWNkZjllMzQuLmJmOTM1ZDBmNmY1NmU2Yzc1NGI3MzUyNmIzYzIxN2Ix
ODA0NTZjODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMjItMDItMjggIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBUZXN0V2ViS2l0QVBJ
LldlYktpdC5NaWdyYXRlTG9jYWxTdG9yYWdlRGF0YVRvR2VuZXJhbFN0b3JhZ2VEaXJlY3Rvcnkg
aXMgYSBmbGFreSBmYWlsdXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzcwNjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg5MzI0MjUwPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFJldmVydCByMjkwNTQ0
IGFzIGl0IGRvZXMgbm90IGZ1bGx5IGZpeCB0aGUgZmxha3kgdGVzdC4gVGhlIGZsYWtpbmVzcyBp
cyBjYXVzZWQgYnkgbmV0d29yayBwcm9jZXNzIGV4aXRpbmcKKyAgICAgICAgYmVmb3JlIHRyYW5z
YWN0aW9ucyBvZiBTUUxpdGVTdG9yYWdlQXJlYSBhcmUgY29tbWl0dGVkLiBJbiBOZXR3b3JrUHJv
Y2Vzczo6ZGVzdHJveVNlc3Npb24sIHdlIHNjaGVkdWxlIGEgCisgICAgICAgIGJhY2tncm91bmQg
dGFzayB0byBjb21taXQgdHJhbnNhY3Rpb25zIGluIHRoZSBzZXNzaW9uLCBhbmQgcmVtb3ZlIHNl
c3Npb24uIEluIE5ldHdvcmtQcm9jZXNzOjpkaWRDbG9zZSwgZm9yIAorICAgICAgICBleGlzdGlu
ZyBzZXNzaW9ucywgd2Ugc2NoZWR1bGUgdGFza3MgdG8gY29tbWl0IHRyYW5zYWN0aW9uIGFuZCB3
YWl0IHVudGlsIHRoZSB0YXNrcyBhcmUgZmluaXNoZWQgYmVmb3JlIGV4aXRpbmcgCisgICAgICAg
IG5ldHdvcmsgcHJvY2Vzcy4gVGhhdCBtZWFucyBmb3IgYSBzZXNzaW9uLCB3aGVuIE5ldHdvcmtQ
cm9jZXNzOjpkZXN0cm95U2Vzc2lvbiBpcyBjYWxsZWQgYmVmb3JlIAorICAgICAgICBOZXR3b3Jr
UHJvY2Vzczo6ZGlkQ2xvc2UsIHByb2Nlc3MgbWF5IGV4aXQgYmVmb3JlIGNvbW1pdCB0YXNrIChz
Y2hlZHVsZWQgYnkgTmV0d29ya1Byb2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKSBpcworICAgICAgICBm
aW5pc2hlZCAoTmV0d29ya1Byb2Nlc3M6OmRpZENsb3NlIGRvZXMgbm90IHdhaXQgYmVjYXVzZSBz
ZXNzaW9uIGlzIGFscmVhZHkgcmVtb3ZlZCkuIAorCisgICAgICAgIFRvIHNvbHZlIHRoaXMgaXNz
dWUsIGxldCBOZXR3b3JrUHJvY2Vzczo6ZGlkQ2xvc2UgY2hlY2sgZXhpc3RpbmcgTmV0d29ya1N0
b3JhZ2VNYW5hZ2VycywgaW5zdGVhZCBvZiAKKyAgICAgICAgTmV0d29ya1Nlc3Npb25zLiBOZXR3
b3JrU3RvcmFnZU1hbmFnZXIgY2FuIG91dGxpdmUgTmV0d29ya1Nlc3Npb24gd2hlbiBpdCdzIGZp
bmlzaGluZyBjbGVhbnVwIHRhc2sKKyAgICAgICAgKGluY2x1ZGluZyBjb21taXR0aW5nIHRyYW5z
YWN0aW9ucykgb24gaXRzIGJhY2tncm91bmQgdGhyZWFkOyB3ZSB3YW50IHRvIGVuc3VyZSBwcm9j
ZXNzIGV4aXRzIGFmdGVyIHRoZSBjbGVhbnVwCisgICAgICAgIHRhc2sgaXMgZG9uZS4KKworICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6OmRpZENsb3NlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OmFsbE5l
dHdvcmtTdG9yYWdlTWFuYWdlcnMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1h
bmFnZXI6OmZvckVhY2gpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6
Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTdG9yYWdl
TWFuYWdlcjo6fk5ldHdvcmtTdG9yYWdlTWFuYWdlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL1NRTGl0ZVN0b3JhZ2VBcmVhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U1FM
aXRlU3RvcmFnZUFyZWE6OlNRTGl0ZVN0b3JhZ2VBcmVhKToKKyAgICAgICAgKFdlYktpdDo6U1FM
aXRlU3RvcmFnZUFyZWE6OnN0YXJ0VHJhbnNhY3Rpb25JZk5lY2Vzc2FyeSk6CisgICAgICAgIChX
ZWJLaXQ6OlNRTGl0ZVN0b3JhZ2VBcmVhOjpjb21taXRUcmFuc2FjdGlvbklmTmVjZXNzYXJ5KToK
KyAgICAgICAgKFdlYktpdDo6Y29tbWl0VHJhbnNhY3Rpb25zQXRFeGl0KTogRGVsZXRlZC4KKwog
MjAyMi0wMi0yOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFk
b3B0IHRoZSBtb2Rlcm4gSGFzaGVyIG1vcmUgd2lkZWx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IGI2ZGFlYjU2MmY0OThhM2NhNGU2
ODRkYjkyZGIwYzI4NWJkMDU2NTQuLjIwZmE2NGM5M2ZkZDlmMTdhZmE3OGEzZmQ3NjVkNDEyZmU2
MmNlYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwCkBAIC0yNjEsMTAgKzI2MSwxMiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRDbG9z
ZShJUEM6OkNvbm5lY3Rpb24mKQogICAgICAgICBzdG9wUnVuTG9vcCgpOwogICAgIH0pOwogCi0g
ICAgZm9yRWFjaE5ldHdvcmtTZXNzaW9uKFsmXSAoYXV0byYgc2Vzc2lvbikgeworICAgIGZvckVh
Y2hOZXR3b3JrU2Vzc2lvbihbJl0oYXV0byYgc2Vzc2lvbikgewogICAgICAgICBwbGF0Zm9ybUZs
dXNoQ29va2llcyhzZXNzaW9uLnNlc3Npb25JRCgpLCBbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0p
OwotICAgICAgICBpZiAoYXV0byogc3RvcmFnZU1hbmFnZXIgPSBzZXNzaW9uLnN0b3JhZ2VNYW5h
Z2VyKCkpCi0gICAgICAgICAgICBzdG9yYWdlTWFuYWdlci0+c3luY0xvY2FsU3RvcmFnZShbY2Fs
bGJhY2tBZ2dyZWdhdG9yXSB7IH0pOworICAgIH0pOworCisgICAgTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyOjpmb3JFYWNoKFsmXShhdXRvJiBtYW5hZ2VyKSB7CisgICAgICAgIG1hbmFnZXIuc3luY0xv
Y2FsU3RvcmFnZShbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwogICAgIH0pOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3
b3JrU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IGQ5NTkwYWQxNTUwMjU1NGY2OTdiNDViZTI0Njk3
OTEwNjBmMzJhY2IuLjQyZjFhNjMwYmRmNTg3NTgyMTFlZTk4OWU0ZGNhMDM4NjYzNjhlOWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3Rv
cmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0xMDgsNiArMTA4LDE4IEBAIHN0YXRpYyB2
b2lkIGRlbGV0ZU9yaWdpbkZpbGVJZk5lY2Vzc2FyeShjb25zdCBTdHJpbmcmIGZpbGVQYXRoKQog
ICAgICAgICBGaWxlU3lzdGVtOjpkZWxldGVGaWxlKGZpbGVQYXRoKTsKIH0KIAorc3RhdGljIFdl
YWtIYXNoU2V0PE5ldHdvcmtTdG9yYWdlTWFuYWdlcj4mIGFsbE5ldHdvcmtTdG9yYWdlTWFuYWdl
cnMoKQoreworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8V2Vha0hhc2hTZXQ8
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyPj4gbWFuYWdlcnM7CisgICAgcmV0dXJuIG1hbmFnZXJzOwor
fQorCit2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Zm9yRWFjaChjb25zdCBGdW5jdGlvbjx2
b2lkKE5ldHdvcmtTdG9yYWdlTWFuYWdlciYpPiYgYXBwbHkpCit7CisgICAgZm9yIChhdXRvJiBt
YW5hZ2VyIDogYWxsTmV0d29ya1N0b3JhZ2VNYW5hZ2VycygpKQorICAgICAgICBhcHBseShtYW5h
Z2VyKTsKK30KKwogUmVmPE5ldHdvcmtTdG9yYWdlTWFuYWdlcj4gTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyOjpjcmVhdGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBJUEM6OkNvbm5lY3Rpb246OlVu
aXF1ZUlEIGNvbm5lY3Rpb24sIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBjdXN0
b21Mb2NhbFN0b3JhZ2VQYXRoLCBjb25zdCBTdHJpbmcmIGN1c3RvbUlEQlN0b3JhZ2VQYXRoLCBj
b25zdCBTdHJpbmcmIGN1c3RvbUNhY2hlU3RvcmFnZVBhdGgsIHVpbnQ2NF90IGRlZmF1bHRPcmln
aW5RdW90YSwgdWludDY0X3QgZGVmYXVsdFRoaXJkUGFydHlPcmlnaW5RdW90YSwgYm9vbCBzaG91
bGRVc2VDdXN0b21QYXRocykKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrU3Rv
cmFnZU1hbmFnZXIoc2Vzc2lvbklELCBjb25uZWN0aW9uLCBwYXRoLCBjdXN0b21Mb2NhbFN0b3Jh
Z2VQYXRoLCBjdXN0b21JREJTdG9yYWdlUGF0aCwgY3VzdG9tQ2FjaGVTdG9yYWdlUGF0aCwgZGVm
YXVsdE9yaWdpblF1b3RhLCBkZWZhdWx0VGhpcmRQYXJ0eU9yaWdpblF1b3RhLCBzaG91bGRVc2VD
dXN0b21QYXRocykpOwpAQCAtMTIyLDYgKzEzNCw3IEBAIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgSVBDOjpDb25u
CiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAorICAgIGFsbE5ldHdvcmtTdG9y
YWdlTWFuYWdlcnMoKS5hZGQoKnRoaXMpOwogICAgIG1fcXVldWUtPmRpc3BhdGNoKFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgcGF0aCA9IHBhdGguaXNvbGF0ZWRDb3B5KCks
IGN1c3RvbUxvY2FsU3RvcmFnZVBhdGggPSBjcm9zc1RocmVhZENvcHkoY3VzdG9tTG9jYWxTdG9y
YWdlUGF0aCksIGN1c3RvbUlEQlN0b3JhZ2VQYXRoID0gY3Jvc3NUaHJlYWRDb3B5KGN1c3RvbUlE
QlN0b3JhZ2VQYXRoKSwgY3VzdG9tQ2FjaGVTdG9yYWdlUGF0aCA9IGNyb3NzVGhyZWFkQ29weShj
dXN0b21DYWNoZVN0b3JhZ2VQYXRoKSwgc2hvdWxkVXNlQ3VzdG9tUGF0aHNdKCkgbXV0YWJsZSB7
CiAgICAgICAgIG1fZmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeSA9IG1ha2VVbmlxdWU8
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeT4oKTsKICAgICAgICAgbV9zdG9yYWdlQXJl
YVJlZ2lzdHJ5ID0gbWFrZVVuaXF1ZTxTdG9yYWdlQXJlYVJlZ2lzdHJ5PigpOwpAQCAtMTQyLDYg
KzE1NSw4IEBAIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6fk5ldHdvcmtTdG9yYWdlTWFuYWdlcigp
CiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBBU1NFUlQobV9jbG9zZWQp
OworCisgICAgYWxsTmV0d29ya1N0b3JhZ2VNYW5hZ2VycygpLnJlbW92ZSgqdGhpcyk7CiB9CiAK
IGJvb2wgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjYW5IYW5kbGVUeXBlcyhPcHRpb25TZXQ8V2Vi
c2l0ZURhdGFUeXBlPiB0eXBlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaAppbmRleCAyMmZjZDEw
NzEwMjM2ZTMzYjNhOWU1MjdiMTFhZDAzYTllY2JlZjJkLi4yNjU1OGZiNTZiNGI5NmI2MTc2NmJl
MTk1MGNiY2ZhZTA1NDJlYzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCkBAIC00MCw2ICs0
MCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JbmRleGVkREIuaD4KICNpbmNsdWRlIDxwYWwvU2Vz
c2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha0hh
c2hTZXQuaD4KIAogbmFtZXNwYWNlIElQQyB7CiBjbGFzcyBTaGFyZWRGaWxlSGFuZGxlOwpAQCAt
NzAsNiArNzEsNyBAQCBjbGFzcyBTdG9yYWdlQXJlYVJlZ2lzdHJ5OwogCiBjbGFzcyBOZXR3b3Jr
U3RvcmFnZU1hbmFnZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpXb3JrUXVldWVN
ZXNzYWdlUmVjZWl2ZXIgewogcHVibGljOgorICAgIHN0YXRpYyB2b2lkIGZvckVhY2goY29uc3Qg
RnVuY3Rpb248dm9pZChOZXR3b3JrU3RvcmFnZU1hbmFnZXImKT4mKTsKICAgICBzdGF0aWMgUmVm
PE5ldHdvcmtTdG9yYWdlTWFuYWdlcj4gY3JlYXRlKFBBTDo6U2Vzc2lvbklELCBJUEM6OkNvbm5l
Y3Rpb246OlVuaXF1ZUlELCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgY3VzdG9t
TG9jYWxTdG9yYWdlUGF0aCwgY29uc3QgU3RyaW5nJiBjdXN0b21JREJTdG9yYWdlUGF0aCwgY29u
c3QgU3RyaW5nJiBjdXN0b21DYWNoZVN0b3JhZ2VQYXRoLCB1aW50NjRfdCBkZWZhdWx0T3JpZ2lu
UXVvdGEsIHVpbnQ2NF90IGRlZmF1bHRUaGlyZFBhcnR5T3JpZ2luUXVvdGEsIGJvb2wgc2hvdWxk
VXNlQ3VzdG9tUGF0aHMpOwogICAgIHN0YXRpYyBib29sIGNhbkhhbmRsZVR5cGVzKE9wdGlvblNl
dDxXZWJzaXRlRGF0YVR5cGU+KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL1NRTGl0ZVN0b3JhZ2VBcmVhLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9TUUxpdGVTdG9yYWdlQXJlYS5jcHAKaW5kZXggYzgzMTgwYjhj
NTRiMGU2Y2MyZTQ2MzNmNDQyZGQ4ZjQ1YTI5NjVlYS4uMTBlYzIwNzY4NTE0NThjZWYxNjE5MGVm
MWI5MTY2ZDJmMGE0NGU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL1NRTGl0ZVN0b3JhZ2VBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvU1FMaXRlU3RvcmFnZUFyZWEuY3BwCkBAIC02MiwyMCArNjIsNiBA
QCBBU0NJSUxpdGVyYWwgU1FMaXRlU3RvcmFnZUFyZWE6OnN0YXRlbWVudFN0cmluZyhTdGF0ZW1l
bnRUeXBlIHR5cGUpIGNvbnN0CiAgICAgcmV0dXJuICIiX3M7CiB9CiAKLXN0YXRpYyBMb2NrIGFs
bFRyYW5zYWN0aW9uc0xvY2s7Ci1zdGF0aWMgSGFzaFNldDxXZWJDb3JlOjpTUUxpdGVUcmFuc2Fj
dGlvbio+JiBhbGxUcmFuc2FjdGlvbnMoKSBXVEZfUkVRVUlSRVNfTE9DSyhhbGxUcmFuc2FjdGlv
bnNMb2NrKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PFdlYkNvcmU6OlNR
TGl0ZVRyYW5zYWN0aW9uKj4+IHRyYW5zYWN0aW9uczsKLSAgICByZXR1cm4gdHJhbnNhY3Rpb25z
OwotfQotCi1zdGF0aWMgdm9pZCBjb21taXRUcmFuc2FjdGlvbnNBdEV4aXQoKQotewotICAgIExv
Y2tlciBsb2NrIHsgYWxsVHJhbnNhY3Rpb25zTG9jayB9OwotICAgIGZvciAoYXV0byogdHJhbnNh
Y3Rpb24gOiBhbGxUcmFuc2FjdGlvbnMoKSkKLSAgICAgICAgdHJhbnNhY3Rpb24tPmNvbW1pdCgp
OwotfQotCiBTUUxpdGVTdG9yYWdlQXJlYTo6U1FMaXRlU3RvcmFnZUFyZWEodW5zaWduZWQgcXVv
dGEsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIHBh
dGgsIFJlZjxXb3JrUXVldWU+JiYgd29ya1F1ZXVlKQogICAgIDogU3RvcmFnZUFyZWFCYXNlKHF1
b3RhLCBvcmlnaW4pCiAgICAgLCBtX3BhdGgocGF0aCkKQEAgLTgzLDExICs2OSw2IEBAIFNRTGl0
ZVN0b3JhZ2VBcmVhOjpTUUxpdGVTdG9yYWdlQXJlYSh1bnNpZ25lZCBxdW90YSwgY29uc3QgV2Vi
Q29yZTo6Q2xpZW50T3JpZ2luCiAgICAgLCBtX2NhY2hlZFN0YXRlbWVudHMoc3RhdGljX2Nhc3Q8
c2l6ZV90PihTdGF0ZW1lbnRUeXBlOjpJbnZhbGlkKSkKIHsKICAgICBBU1NFUlQoIWlzTWFpblJ1
bkxvb3AoKSk7Ci0KLSAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKLSAgICBzdGQ6OmNh
bGxfb25jZShvbmNlLCBbXSB7Ci0gICAgICAgIHN0ZDo6YXRleGl0KGNvbW1pdFRyYW5zYWN0aW9u
c0F0RXhpdCk7Ci0gICAgfSk7CiB9CiAKIHZvaWQgU1FMaXRlU3RvcmFnZUFyZWE6OmNsb3NlKCkK
QEAgLTIwNSwxNCArMTg2LDkgQEAgdm9pZCBTUUxpdGVTdG9yYWdlQXJlYTo6c3RhcnRUcmFuc2Fj
dGlvbklmTmVjZXNzYXJ5KCkKICAgICBpZiAoIW1fdHJhbnNhY3Rpb24pCiAgICAgICAgIG1fdHJh
bnNhY3Rpb24gPSBtYWtlVW5pcXVlPFdlYkNvcmU6OlNRTGl0ZVRyYW5zYWN0aW9uPigqbV9kYXRh
YmFzZSk7CiAKLSAgICB7Ci0gICAgICAgIExvY2tlciBsb2NrIHsgYWxsVHJhbnNhY3Rpb25zTG9j
ayB9OwotICAgICAgICBpZiAobV90cmFuc2FjdGlvbi0+aW5Qcm9ncmVzcygpKQotICAgICAgICAg
ICAgcmV0dXJuOwotCi0gICAgICAgIG1fdHJhbnNhY3Rpb24tPmJlZ2luKCk7Ci0gICAgICAgIGFs
bFRyYW5zYWN0aW9ucygpLmFkZChtX3RyYW5zYWN0aW9uLmdldCgpKTsKLSAgICB9CisgICAgaWYg
KG1fdHJhbnNhY3Rpb24tPmluUHJvZ3Jlc3MoKSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fdHJh
bnNhY3Rpb24tPmJlZ2luKCk7CiAKICAgICBtX3F1ZXVlLT5kaXNwYXRjaEFmdGVyKHRyYW5zYWN0
aW9uRHVyYXRpb24sIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSB7CiAgICAgICAgIGlm
ICh3ZWFrVGhpcykKQEAgLTQxOSwxMyArMzk1LDggQEAgRXhwZWN0ZWQ8dm9pZCwgU3RvcmFnZUVy
cm9yPiBTUUxpdGVTdG9yYWdlQXJlYTo6Y2xlYXIoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRAog
CiB2b2lkIFNRTGl0ZVN0b3JhZ2VBcmVhOjpjb21taXRUcmFuc2FjdGlvbklmTmVjZXNzYXJ5KCkK
IHsKLSAgICBhdXRvIHRyYW5zYWN0aW9uID0gc3RkOjpleGNoYW5nZShtX3RyYW5zYWN0aW9uLCBu
dWxscHRyKTsKLSAgICBpZiAoIXRyYW5zYWN0aW9uKQotICAgICAgICByZXR1cm47Ci0KLSAgICBM
b2NrZXIgbG9jayB7IGFsbFRyYW5zYWN0aW9uc0xvY2sgfTsKLSAgICB0cmFuc2FjdGlvbi0+Y29t
bWl0KCk7Ci0gICAgYWxsVHJhbnNhY3Rpb25zKCkucmVtb3ZlKHRyYW5zYWN0aW9uLmdldCgpKTsK
KyAgICBpZiAoYXV0byB0cmFuc2FjdGlvbiA9IHN0ZDo6ZXhjaGFuZ2UobV90cmFuc2FjdGlvbiwg
bnVsbHB0cikpCisgICAgICAgIHRyYW5zYWN0aW9uLT5jb21taXQoKTsKIH0KIAogdm9pZCBTUUxp
dGVTdG9yYWdlQXJlYTo6aGFuZGxlTG93TWVtb3J5V2FybmluZygpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>