<?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>223578</bug_id>
          
          <creation_ts>2021-03-22 09:00:48 -0700</creation_ts>
          <short_desc>Add logging in IndexedDB to help debug flaky quota tests</short_desc>
          <delta_ts>2021-03-31 12:34:58 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jsbell</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1742250</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-22 09:00:48 -0700</bug_when>
    <thetext>With https://bugs.webkit.org/show_bug.cgi?id=222995, we know that the tests fail because IDB disk usage is not zero (see https://results.webkit.org/?suite=layout-tests&amp;suite=layout-tests&amp;test=http%2Ftests%2FIndexedDB%2Fstorage-limit-1.https.html&amp;test=http%2Ftests%2FIndexedDB%2Fstorage-limit.https.html). 

It&apos;s unusual because we clean IndexedDB data between tests. So add more logging to decide which database it is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742385</commentid>
    <comment_count>1</comment_count>
      <attachid>423921</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-22 12:41:03 -0700</bug_when>
    <thetext>Created attachment 423921
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742390</commentid>
    <comment_count>2</comment_count>
      <attachid>423921</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-22 12:46:49 -0700</bug_when>
    <thetext>Comment on attachment 423921
Patch

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

&gt; Source/WebCore/Modules/indexeddb/server/IDBServer.cpp:763
&gt; +uint64_t IDBServer::diskUsage(const String&amp; rootDirectory, const ClientOrigin&amp; origin, bool shouldPrintDetail)

Why isn&apos;t this using ShouldPrintUsageDetail enum class?

&gt; Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:1273
&gt; +    auto origin = FileSystem::pathGetFileName(directory);

What is this used for? I don&apos;t see it used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742394</commentid>
    <comment_count>3</comment_count>
      <attachid>423921</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2021-03-22 12:48:47 -0700</bug_when>
    <thetext>Comment on attachment 423921
Patch

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

I&apos;ll leave the real review for experts, but I couldn&apos;t stop myself from adding a couple comments.

&gt; Source/WebCore/Modules/indexeddb/server/IDBServer.cpp:763
&gt; +uint64_t IDBServer::diskUsage(const String&amp; rootDirectory, const ClientOrigin&amp; origin, bool shouldPrintDetail)

Nit: it would be good to align the terminology (&quot;log&quot; vs. &quot;print detail&quot; vs. &quot;print usage detail&quot;).

&gt; Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:1281
&gt; +                WTFLogAlways(&quot;SQLiteIDBBackingStore::databasesSizeForDirectory filePath=&apos;%s&apos;, database=&apos;%s&apos;, size=%&quot; PRIu64, file.utf8().data(), databaseName.utf8().data(), fileSize);

Are there no privacy concerns with logging these? Seems questionable even in regular browsing, and almost certainly not OK in private browsing. Bur perhaps that&apos;s how the top level caller decides whether to pass ShouldPrintUsageDetail::Yes.

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2533
&gt; +        usage += IDBServer::IDBServer::diskUsage(idbRootPath, origin, shouldPrintusageDetail == StorageQuotaManager::ShouldPrintUsageDetail::Yes);

shouldPrintusageDetail - &quot;usage&quot; should be title case too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742395</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2021-03-22 12:49:17 -0700</bug_when>
    <thetext>Sorry, didn&apos;t intend to overwrite Chris&apos;s r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742397</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-22 12:51:38 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #3)
&gt; Comment on attachment 423921 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=423921&amp;action=review
&gt; 
&gt; I&apos;ll leave the real review for experts, but I couldn&apos;t stop myself from
&gt; adding a couple comments.
&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/server/IDBServer.cpp:763
&gt; &gt; +uint64_t IDBServer::diskUsage(const String&amp; rootDirectory, const ClientOrigin&amp; origin, bool shouldPrintDetail)
&gt; 
&gt; Nit: it would be good to align the terminology (&quot;log&quot; vs. &quot;print detail&quot; vs.
&gt; &quot;print usage detail&quot;).
&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:1281
&gt; &gt; +                WTFLogAlways(&quot;SQLiteIDBBackingStore::databasesSizeForDirectory filePath=&apos;%s&apos;, database=&apos;%s&apos;, size=%&quot; PRIu64, file.utf8().data(), databaseName.utf8().data(), fileSize);
&gt; 
&gt; Are there no privacy concerns with logging these? Seems questionable even in
&gt; regular browsing, and almost certainly not OK in private browsing. Bur
&gt; perhaps that&apos;s how the top level caller decides whether to pass
&gt; ShouldPrintUsageDetail::Yes.

Yes, there are privacy concerns but I understood this as a very temporary change to help debug an issue on the bots, not something we will ship.

&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2533
&gt; &gt; +        usage += IDBServer::IDBServer::diskUsage(idbRootPath, origin, shouldPrintusageDetail == StorageQuotaManager::ShouldPrintUsageDetail::Yes);
&gt; 
&gt; shouldPrintusageDetail - &quot;usage&quot; should be title case too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742890</commentid>
    <comment_count>6</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-23 10:21:06 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #2)
&gt; Comment on attachment 423921 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=423921&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/server/IDBServer.cpp:763
&gt; &gt; +uint64_t IDBServer::diskUsage(const String&amp; rootDirectory, const ClientOrigin&amp; origin, bool shouldPrintDetail)
&gt; 
&gt; Why isn&apos;t this using ShouldPrintUsageDetail enum class?
&gt; 

Okay, will use the same class ShouldPrintUsageDetail.

&gt; &gt; Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:1273
&gt; &gt; +    auto origin = FileSystem::pathGetFileName(directory);
&gt; 
&gt; What is this used for? I don&apos;t see it used.

Will remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742897</commentid>
    <comment_count>7</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-23 10:29:04 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #3)
&gt; Comment on attachment 423921 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=423921&amp;action=review
&gt; 
&gt; I&apos;ll leave the real review for experts, but I couldn&apos;t stop myself from
&gt; adding a couple comments.
&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/server/IDBServer.cpp:763
&gt; &gt; +uint64_t IDBServer::diskUsage(const String&amp; rootDirectory, const ClientOrigin&amp; origin, bool shouldPrintDetail)
&gt; 
&gt; Nit: it would be good to align the terminology (&quot;log&quot; vs. &quot;print detail&quot; vs.
&gt; &quot;print usage detail&quot;).
&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:1281
&gt; &gt; +                WTFLogAlways(&quot;SQLiteIDBBackingStore::databasesSizeForDirectory filePath=&apos;%s&apos;, database=&apos;%s&apos;, size=%&quot; PRIu64, file.utf8().data(), databaseName.utf8().data(), fileSize);
&gt; 
&gt; Are there no privacy concerns with logging these? Seems questionable even in
&gt; regular browsing, and almost certainly not OK in private browsing. Bur
&gt; perhaps that&apos;s how the top level caller decides whether to pass
&gt; ShouldPrintUsageDetail::Yes.
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2533
&gt; &gt; +        usage += IDBServer::IDBServer::diskUsage(idbRootPath, origin, shouldPrintusageDetail == StorageQuotaManager::ShouldPrintUsageDetail::Yes);
&gt; 
&gt; shouldPrintusageDetail - &quot;usage&quot; should be title case too.

(In reply to Chris Dumez from comment #5)
&gt; (In reply to Alexey Proskuryakov from comment #3)
&gt; &gt; Comment on attachment 423921 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=423921&amp;action=review
&gt; &gt; 
&gt; &gt; I&apos;ll leave the real review for experts, but I couldn&apos;t stop myself from
&gt; &gt; adding a couple comments.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/Modules/indexeddb/server/IDBServer.cpp:763
&gt; &gt; &gt; +uint64_t IDBServer::diskUsage(const String&amp; rootDirectory, const ClientOrigin&amp; origin, bool shouldPrintDetail)
&gt; &gt; 
&gt; &gt; Nit: it would be good to align the terminology (&quot;log&quot; vs. &quot;print detail&quot; vs.
&gt; &gt; &quot;print usage detail&quot;).
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:1281
&gt; &gt; &gt; +                WTFLogAlways(&quot;SQLiteIDBBackingStore::databasesSizeForDirectory filePath=&apos;%s&apos;, database=&apos;%s&apos;, size=%&quot; PRIu64, file.utf8().data(), databaseName.utf8().data(), fileSize);
&gt; &gt; 
&gt; &gt; Are there no privacy concerns with logging these? Seems questionable even in
&gt; &gt; regular browsing, and almost certainly not OK in private browsing. Bur
&gt; &gt; perhaps that&apos;s how the top level caller decides whether to pass
&gt; &gt; ShouldPrintUsageDetail::Yes.
&gt; 
&gt; Yes, there are privacy concerns but I understood this as a very temporary
&gt; change to help debug an issue on the bots, not something we will ship.

Like Chris said, this should be used for gathering information from bots only. Based on current flaky rate, we should have the information one or two days after the patch is landed.

&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2533
&gt; &gt; &gt; +        usage += IDBServer::IDBServer::diskUsage(idbRootPath, origin, shouldPrintusageDetail == StorageQuotaManager::ShouldPrintUsageDetail::Yes);
&gt; &gt; 
&gt; &gt; shouldPrintusageDetail - &quot;usage&quot; should be title case too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742936</commentid>
    <comment_count>8</comment_count>
      <attachid>424046</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-23 12:09:32 -0700</bug_when>
    <thetext>Created attachment 424046
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744389</commentid>
    <comment_count>9</comment_count>
      <attachid>424046</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2021-03-26 16:48:38 -0700</bug_when>
    <thetext>Comment on attachment 424046
Patch

I think that all feedback was addressed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744709</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-29 09:13:38 -0700</bug_when>
    <thetext>&lt;rdar://problem/75956789&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745187</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-30 11:14:07 -0700</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 424046 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745707</commentid>
    <comment_count>12</comment_count>
      <attachid>424792</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-31 11:34:14 -0700</bug_when>
    <thetext>Created attachment 424792
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745730</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-31 12:34:56 -0700</bug_when>
    <thetext>Committed r275301: &lt;https://commits.webkit.org/r275301&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 424792.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423921</attachid>
            <date>2021-03-22 12:41:03 -0700</date>
            <delta_ts>2021-03-23 12:09:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223578-20210322124102.patch</filename>
            <type>text/plain</type>
            <size>7764</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWQ5MjI2OTk4MWQ3OWQy
YjFmZjcwMjhmZGUyOGEwMGU3YzQ0MzdmMi4uYzIwMThlN2FmNTQxY2ZiMDhkODFkNWVlNjI5NjIy
NzdhZmJkZWYwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTAzLTIyICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwZS5jb20+CisKKyAgICAgICAgQWRkIGxvZ2dpbmcgaW4gSW5k
ZXhlZERCIHRvIGhlbHAgZGVidWcgZmxha3kgcXVvdGEgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzU3OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdpdGggcjI3NDMyMywgd2Uga25vdyB0aGF0
IHRoZSB0ZXN0cyBmYWlsIGJlY2F1c2Ugb2YgSW5kZXhlZERCLiBJbmRleGVkREIgZGF0YSBzaG91
bGQgYmUgY2xlYXJlZCBiZXR3ZWVuIHRlc3RzLCAKKyAgICAgICAgc28gbGV0J3MgYWRkIG1vcmUg
bG9nZ2luZyB0byBzZWUgd2hhdCBkYXRhYmFzZXMgYXJlIGxlZnQuCisKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6SURCU2VydmVyOjpkaXNrVXNhZ2UpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJTZXJ2ZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZl
cjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjpkYXRhYmFzZXNTaXplRm9yRGlyZWN0b3J5KToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmg6
CisKIDIwMjEtMDMtMTkgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAg
IExpbmsgYWdhaW5zdCB0aGUgQU5HTEUgU2hhcmVkIExpYnJhcnkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTlmNzc5
NGM5NWViMzBlZDZkZTRkMDRiMjM0NmI4MjU0OTJkNzM3My4uNWYzYzY2NGIzZDA5YWI0ZjFhNjZk
NWY4ZDk5MDFlZTY4NWUxZTVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0wMy0y
MiAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGUuY29tPgorCisgICAgICAgIEFkZCBsb2dnaW5n
IGluIEluZGV4ZWREQiB0byBoZWxwIGRlYnVnIGZsYWt5IHF1b3RhIHRlc3RzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM1NzgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnN0b3Jh
Z2VRdW90YU1hbmFnZXIpOgorCiAyMDIxLTAzLTE5ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9j
aGVuZXlAYXBwbGUuY29tPgogCiAgICAgICAgIENhbm5vdCBsb2dpbiB0byBtaWNyb3NvZnRvbmxp
bmUuY29tIHdpdGhvdXQgYWxsb3dpbmcgc3RvcmFnZSBhY2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKaW5kZXggNGQw
ZGUxZjQ2ZWNkY2FmYzUwYTk0N2YxMjExYmYyYWM5YzNjZWQ3Ni4uMTRkNGExNzBjMmMzODc5YzIy
NDY3MWZiZWZkNzcyZDU2MWQ2NjU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKQEAgLTc2MCwxMyArNzYwLDEzIEBA
IFN0b3JhZ2VRdW90YU1hbmFnZXI6OkRlY2lzaW9uIElEQlNlcnZlcjo6cmVxdWVzdFNwYWNlKGNv
bnN0IENsaWVudE9yaWdpbiYgb3JpZ2luCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdWludDY0
X3QgSURCU2VydmVyOjpkaXNrVXNhZ2UoY29uc3QgU3RyaW5nJiByb290RGlyZWN0b3J5LCBjb25z
dCBDbGllbnRPcmlnaW4mIG9yaWdpbikKK3VpbnQ2NF90IElEQlNlcnZlcjo6ZGlza1VzYWdlKGNv
bnN0IFN0cmluZyYgcm9vdERpcmVjdG9yeSwgY29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4sIGJv
b2wgc2hvdWxkUHJpbnREZXRhaWwpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAK
ICAgICBhdXRvIG9sZFZlcnNpb25PcmlnaW5EaXJlY3RvcnkgPSBJREJEYXRhYmFzZUlkZW50aWZp
ZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLnRvcE9yaWdpbiwgb3Jp
Z2luLmNsaWVudE9yaWdpbiwgcm9vdERpcmVjdG9yeSwgInYwIl9zdHIpOwogICAgIGF1dG8gbmV3
VmVyc2lvbk9yaWdpbkRpcmVjdG9yeSA9IElEQkRhdGFiYXNlSWRlbnRpZmllcjo6ZGF0YWJhc2VE
aXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChvcmlnaW4udG9wT3JpZ2luLCBvcmlnaW4uY2xpZW50T3Jp
Z2luLCByb290RGlyZWN0b3J5LCAidjEiX3N0cik7Ci0gICAgcmV0dXJuIFNRTGl0ZUlEQkJhY2tp
bmdTdG9yZTo6ZGF0YWJhc2VzU2l6ZUZvckRpcmVjdG9yeShvbGRWZXJzaW9uT3JpZ2luRGlyZWN0
b3J5KSArIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VzU2l6ZUZvckRpcmVjdG9yeShu
ZXdWZXJzaW9uT3JpZ2luRGlyZWN0b3J5KTsKKyAgICByZXR1cm4gU1FMaXRlSURCQmFja2luZ1N0
b3JlOjpkYXRhYmFzZXNTaXplRm9yRGlyZWN0b3J5KG9sZFZlcnNpb25PcmlnaW5EaXJlY3Rvcnks
IHNob3VsZFByaW50RGV0YWlsKSArIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VzU2l6
ZUZvckRpcmVjdG9yeShuZXdWZXJzaW9uT3JpZ2luRGlyZWN0b3J5LCBzaG91bGRQcmludERldGFp
bCk7CiB9CiAKIHZvaWQgSURCU2VydmVyOjp1cGdyYWRlRmlsZXNJZk5lY2Vzc2FyeSgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgK
aW5kZXggMzcwZTZlMzRhNGY2NDlmNjkwYjYxNzkwZGIyZTg3YTJjYWFiNjI1ZC4uZGNiODdmYzdl
M2MyYzUwMDNhYjdlNjg1ZjRlN2I3NTI3ZGQ0OWM0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaApAQCAtMTA4LDcgKzEwOCw3
IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbmFtZU9yaWdpbihjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmKTsKIAogICAgIFN0b3JhZ2VRdW90YU1hbmFnZXI6OkRlY2lzaW9uIHJlcXVlc3RTcGFj
ZShjb25zdCBDbGllbnRPcmlnaW4mLCB1aW50NjRfdCB0YXNrU2l6ZSk7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIHVpbnQ2NF90IGRpc2tVc2FnZShjb25zdCBTdHJpbmcmIHJvb3REaXJlY3Rv
cnksIGNvbnN0IENsaWVudE9yaWdpbiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB1aW50
NjRfdCBkaXNrVXNhZ2UoY29uc3QgU3RyaW5nJiByb290RGlyZWN0b3J5LCBjb25zdCBDbGllbnRP
cmlnaW4mLCBib29sIHNob3VsZFByaW50RGV0YWlsID0gZmFsc2UpOwogCiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzdG9wRGF0YWJhc2VBY3Rpdml0aWVzT25NYWluVGhyZWFkKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJC
YWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKaW5kZXggNThjYWQwNTg1ZDIxZDlmNzdkNzhhMmM4
YWE2NmZiNzYyODczZjdiYS4uY2M1N2Q0ZGJjNjU3N2ZjNzc0N2U3NzE3NDc0YTBjZmYxNGYzNDc2
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NR
TGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKQEAgLTEyNjcsMTIgKzEyNjcs
MjAgQEAgSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpnZXRPckVzdGFibGlzaERhdGFi
YXNlSW5mbyhJREJEYXRhYmFzZUluZm8mIGluZm8KICAgICByZXR1cm4gSURCRXJyb3IgeyB9Owog
fQogCi11aW50NjRfdCBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmRhdGFiYXNlc1NpemVGb3JEaXJl
Y3RvcnkoY29uc3QgU3RyaW5nJiBkaXJlY3RvcnkpCit1aW50NjRfdCBTUUxpdGVJREJCYWNraW5n
U3RvcmU6OmRhdGFiYXNlc1NpemVGb3JEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBkaXJlY3Rvcnks
IGJvb2wgc2hvdWxkUHJpbnREZXRhaWwpCiB7CiAgICAgdWludDY0X3QgZGlza1VzYWdlID0gMDsK
KyAgICBhdXRvIG9yaWdpbiA9IEZpbGVTeXN0ZW06OnBhdGhHZXRGaWxlTmFtZShkaXJlY3Rvcnkp
OwogICAgIGZvciAoYXV0byYgZGJEaXJlY3RvcnkgOiBGaWxlU3lzdGVtOjpsaXN0RGlyZWN0b3J5
KGRpcmVjdG9yeSwgIioiKSkgewotICAgICAgICBmb3IgKGF1dG8mIGZpbGUgOiBGaWxlU3lzdGVt
OjpsaXN0RGlyZWN0b3J5KGRiRGlyZWN0b3J5LCAiKi5zcWxpdGUzIl9zKSkKLSAgICAgICAgICAg
IGRpc2tVc2FnZSArPSBTUUxpdGVGaWxlU3lzdGVtOjpnZXREYXRhYmFzZUZpbGVTaXplKGZpbGUp
OworICAgICAgICBmb3IgKGF1dG8mIGZpbGUgOiBGaWxlU3lzdGVtOjpsaXN0RGlyZWN0b3J5KGRi
RGlyZWN0b3J5LCAiKi5zcWxpdGUzIl9zKSkgeworICAgICAgICAgICAgYXV0byBmaWxlU2l6ZSA9
IFNRTGl0ZUZpbGVTeXN0ZW06OmdldERhdGFiYXNlRmlsZVNpemUoZmlsZSk7CisgICAgICAgICAg
ICBkaXNrVXNhZ2UgKz0gZmlsZVNpemU7CisgICAgICAgICAgICBpZiAoc2hvdWxkUHJpbnREZXRh
aWwpIHsKKyAgICAgICAgICAgICAgICBhdXRvIGRhdGFiYXNlTmFtZUFuZFZlcnNpb24gPSBkYXRh
YmFzZU5hbWVBbmRWZXJzaW9uRnJvbUZpbGUoZmlsZSk7CisgICAgICAgICAgICAgICAgU3RyaW5n
IGRhdGFiYXNlTmFtZSA9IGRhdGFiYXNlTmFtZUFuZFZlcnNpb24gPyBkYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uLT5uYW1lIDogIltVTktOT1dOXSI7CisgICAgICAgICAgICAgICAgV1RGTG9nQWx3YXlz
KCJTUUxpdGVJREJCYWNraW5nU3RvcmU6OmRhdGFiYXNlc1NpemVGb3JEaXJlY3RvcnkgZmlsZVBh
dGg9JyVzJywgZGF0YWJhc2U9JyVzJywgc2l6ZT0lIiBQUkl1NjQsIGZpbGUudXRmOCgpLmRhdGEo
KSwgZGF0YWJhc2VOYW1lLnV0ZjgoKS5kYXRhKCksIGZpbGVTaXplKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gZGlza1VzYWdlOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdT
dG9yZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlE
QkJhY2tpbmdTdG9yZS5oCmluZGV4IDA3Y2MwYTEyMTlhZWZiYmZlZWFjZjFhOTU0MzY1MDI3OTcz
YjNjZDIuLjI4YTM4ZGIyN2U1ZmMwM2Y5NjkzZTc0OWExZTFkY2Q2OTA3YzA5MWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNr
aW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
U1FMaXRlSURCQmFja2luZ1N0b3JlLmgKQEAgLTk3LDcgKzk3LDcgQEAgcHVibGljOgogCiAgICAg
SURCRXJyb3IgZ2V0QmxvYlJlY29yZHNGb3JPYmplY3RTdG9yZVJlY29yZChpbnQ2NF90IG9iamVj
dFN0b3JlUmVjb3JkLCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIFZlY3RvcjxTdHJpbmc+JiBi
bG9iRmlsZVBhdGhzKTsKIAotICAgIHN0YXRpYyB1aW50NjRfdCBkYXRhYmFzZXNTaXplRm9yRGly
ZWN0b3J5KGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5KTsKKyAgICBzdGF0aWMgdWludDY0X3QgZGF0
YWJhc2VzU2l6ZUZvckRpcmVjdG9yeShjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgYm9vbCBzaG91
bGRQcmludERldGFpbCA9IGZhbHNlKTsKIAogICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeSgp
IGNvbnN0IHsgcmV0dXJuIG1fZGF0YWJhc2VEaXJlY3Rvcnk7IH07CiAgICAgc3RhdGljIFN0cmlu
ZyBmdWxsRGF0YWJhc2VQYXRoRm9yRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCBlOTVjYWEx
M2U5Mzg4MDAwMTEwM2Y3OGNmMDM2NTEzOTFkODNjYTAwLi43MWQ1MmI1YTIyYjk0MDlkYjI0OWQ2
NzJmMjg4M2I3NDhiNzU3MTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMjUzMCwxMCArMjUzMCwxMCBAQCBSZWZQdHI8U3RvcmFn
ZVF1b3RhTWFuYWdlcj4gTmV0d29ya1Byb2Nlc3M6OnN0b3JhZ2VRdW90YU1hbmFnZXIoUEFMOjpT
ZXNzaW9uSUQgcwogICAgICAgICB1aW50NjRfdCB1c2FnZSA9IGNhY2hlVXNhZ2U7CiAKICNpZiBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICAgICAgdXNhZ2UgKz0gSURCU2VydmVyOjpJREJT
ZXJ2ZXI6OmRpc2tVc2FnZShpZGJSb290UGF0aCwgb3JpZ2luKTsKKyAgICAgICAgdXNhZ2UgKz0g
SURCU2VydmVyOjpJREJTZXJ2ZXI6OmRpc2tVc2FnZShpZGJSb290UGF0aCwgb3JpZ2luLCBzaG91
bGRQcmludHVzYWdlRGV0YWlsID09IFN0b3JhZ2VRdW90YU1hbmFnZXI6OlNob3VsZFByaW50VXNh
Z2VEZXRhaWw6Olllcyk7CiAjZW5kaWYKICAgICAgICAgaWYgKHNob3VsZFByaW50dXNhZ2VEZXRh
aWwgPT0gU3RvcmFnZVF1b3RhTWFuYWdlcjo6U2hvdWxkUHJpbnRVc2FnZURldGFpbDo6WWVzKQot
ICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJTdG9yYWdlUXVvdGFNYW5hZ2VyOjpVc2FnZUdldHRl
ciBDYWNoZSB1c2FnZSAlIiBQUkl1NjQgIiwgSURCIHVzYWdlICUiIFBSSXU2NCwgY2FjaGVVc2Fn
ZSwgdXNhZ2UpOworICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJTdG9yYWdlUXVvdGFNYW5hZ2Vy
OjpVc2FnZUdldHRlciBDYWNoZSB1c2FnZSAlIiBQUkl1NjQgIiwgSURCIHVzYWdlICUiIFBSSXU2
NCwgY2FjaGVVc2FnZSwgdXNhZ2UgLSBjYWNoZVVzYWdlKTsKIAogICAgICAgICByZXR1cm4gdXNh
Z2U7CiAgICAgfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424046</attachid>
            <date>2021-03-23 12:09:32 -0700</date>
            <delta_ts>2021-03-31 11:34:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223578-20210323120931.patch</filename>
            <type>text/plain</type>
            <size>8786</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0ODc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Y2ZDk0NzkzODYyNmQx
N2EwMDA4MzZhNTY0NjE1M2Q3NTE0NWFmYy4uOWJjYzQyNzdlZGVkMjczOThjNTY2MzhhNTUxZTMz
MjlhM2I2NjA5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTAzLTIzICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwZS5jb20+CisKKyAgICAgICAgQWRkIGxvZ2dpbmcgaW4gSW5k
ZXhlZERCIHRvIGhlbHAgZGVidWcgZmxha3kgcXVvdGEgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzU3OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdpdGggcjI3NDMyMywgd2Uga25vdyB0aGF0
IHRoZSB0ZXN0cyBmYWlsIGJlY2F1c2Ugb2YgSW5kZXhlZERCLiBJbmRleGVkREIgZGF0YSBzaG91
bGQgYmUgY2xlYXJlZCBiZXR3ZWVuIHRlc3RzLCAKKyAgICAgICAgc28gbGV0J3MgYWRkIG1vcmUg
bG9nZ2luZyB0byBzZWUgd2hhdCBkYXRhYmFzZXMgYXJlIGxlZnQuCisKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6SURCU2VydmVyOjpkaXNrVXNhZ2UpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJTZXJ2ZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZl
cjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjpkYXRhYmFzZXNTaXplRm9yRGlyZWN0b3J5KToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmg6
CisKIDIwMjEtMDMtMjMgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAg
ICBFbmFibGUgdGhlIHF1aXJrIHRvIGRpc2FibGUgZmlyaW5nICJ3ZWJraXRlbmRmdWxsc2NyZWVu
IiBldmVudCB3aGVuIGEgdmlkZW8gZW50ZXJzIHBpY3R1cmUtaW4tcGljdHVyZSBmcm9tIGZ1bGxz
Y3JlZW4gb24gZXNwbi5jb20KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODAxM2RkMDI3MDgyMGMxM2EwYmQyMjlmNmNm
OTg3YjVlMjM3NmY3Yy4uZjBhNzI2OGYxZjIxNTE4MmM1YzQzYTEzMTY5ZjUyZDJhYmEwMjgzZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0wMy0yMyAgU2lodWkgTGl1ICA8c2lodWlf
bGl1QGFwcGUuY29tPgorCisgICAgICAgIEFkZCBsb2dnaW5nIGluIEluZGV4ZWREQiB0byBoZWxw
IGRlYnVnIGZsYWt5IHF1b3RhIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjM1NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnN0b3JhZ2VRdW90YU1hbmFnZXIpOgorCiAy
MDIxLTAzLTIzICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbR1RLXSBYMTEgYnVpbGQgZml4ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKaW5kZXggNGQwZGUxZjQ2ZWNkY2Fm
YzUwYTk0N2YxMjExYmYyYWM5YzNjZWQ3Ni4uNGIxZDg0ZmUyMDVmNzZmYmViYjU5MGZlNmVmNzdi
MTU0MjQzM2ExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKQEAgLTc2MCwxMyArNzYwLDE0IEBAIFN0b3JhZ2VRdW90
YU1hbmFnZXI6OkRlY2lzaW9uIElEQlNlcnZlcjo6cmVxdWVzdFNwYWNlKGNvbnN0IENsaWVudE9y
aWdpbiYgb3JpZ2luCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdWludDY0X3QgSURCU2VydmVy
OjpkaXNrVXNhZ2UoY29uc3QgU3RyaW5nJiByb290RGlyZWN0b3J5LCBjb25zdCBDbGllbnRPcmln
aW4mIG9yaWdpbikKK3VpbnQ2NF90IElEQlNlcnZlcjo6ZGlza1VzYWdlKGNvbnN0IFN0cmluZyYg
cm9vdERpcmVjdG9yeSwgY29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4sIFN0b3JhZ2VRdW90YU1h
bmFnZXI6OlNob3VsZFByaW50VXNhZ2VEZXRhaWwgc2hvdWxkUHJpbnRVc2FnZURldGFpbCkKIHsK
ICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAogICAgIGF1dG8gb2xkVmVyc2lvbk9yaWdp
bkRpcmVjdG9yeSA9IElEQkRhdGFiYXNlSWRlbnRpZmllcjo6ZGF0YWJhc2VEaXJlY3RvcnlSZWxh
dGl2ZVRvUm9vdChvcmlnaW4udG9wT3JpZ2luLCBvcmlnaW4uY2xpZW50T3JpZ2luLCByb290RGly
ZWN0b3J5LCAidjAiX3N0cik7CiAgICAgYXV0byBuZXdWZXJzaW9uT3JpZ2luRGlyZWN0b3J5ID0g
SURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9y
aWdpbi50b3BPcmlnaW4sIG9yaWdpbi5jbGllbnRPcmlnaW4sIHJvb3REaXJlY3RvcnksICJ2MSJf
c3RyKTsKLSAgICByZXR1cm4gU1FMaXRlSURCQmFja2luZ1N0b3JlOjpkYXRhYmFzZXNTaXplRm9y
RGlyZWN0b3J5KG9sZFZlcnNpb25PcmlnaW5EaXJlY3RvcnkpICsgU1FMaXRlSURCQmFja2luZ1N0
b3JlOjpkYXRhYmFzZXNTaXplRm9yRGlyZWN0b3J5KG5ld1ZlcnNpb25PcmlnaW5EaXJlY3Rvcnkp
OworICAgIGJvb2wgc2hvdWxkUHJpbnRVc2FnZURldGFpbEZvckRpcmVjdG9yeSA9IHNob3VsZFBy
aW50VXNhZ2VEZXRhaWwgPT0gU3RvcmFnZVF1b3RhTWFuYWdlcjo6U2hvdWxkUHJpbnRVc2FnZURl
dGFpbDo6WWVzOworICAgIHJldHVybiBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmRhdGFiYXNlc1Np
emVGb3JEaXJlY3Rvcnkob2xkVmVyc2lvbk9yaWdpbkRpcmVjdG9yeSwgc2hvdWxkUHJpbnRVc2Fn
ZURldGFpbEZvckRpcmVjdG9yeSkgKyBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmRhdGFiYXNlc1Np
emVGb3JEaXJlY3RvcnkobmV3VmVyc2lvbk9yaWdpbkRpcmVjdG9yeSwgc2hvdWxkUHJpbnRVc2Fn
ZURldGFpbEZvckRpcmVjdG9yeSk7CiB9CiAKIHZvaWQgSURCU2VydmVyOjp1cGdyYWRlRmlsZXNJ
Zk5lY2Vzc2FyeSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvSURCU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvSURCU2VydmVyLmgKaW5kZXggMzcwZTZlMzRhNGY2NDlmNjkwYjYxNzkwZGIyZTg3YTJj
YWFiNjI1ZC4uNmVhNjE5NzdmNDQ4YzE0ODE3MzNmNTFkMDZhZmI2ZmMzNzZlOWZjNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIu
aApAQCAtMTA4LDcgKzEwOCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJl
bmFtZU9yaWdpbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmKTsKIAogICAgIFN0b3JhZ2VRdW90YU1hbmFnZXI6OkRl
Y2lzaW9uIHJlcXVlc3RTcGFjZShjb25zdCBDbGllbnRPcmlnaW4mLCB1aW50NjRfdCB0YXNrU2l6
ZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHVpbnQ2NF90IGRpc2tVc2FnZShjb25zdCBT
dHJpbmcmIHJvb3REaXJlY3RvcnksIGNvbnN0IENsaWVudE9yaWdpbiYpOworICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyB1aW50NjRfdCBkaXNrVXNhZ2UoY29uc3QgU3RyaW5nJiByb290RGlyZWN0
b3J5LCBjb25zdCBDbGllbnRPcmlnaW4mLCBTdG9yYWdlUXVvdGFNYW5hZ2VyOjpTaG91bGRQcmlu
dFVzYWdlRGV0YWlsKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RvcERhdGFiYXNlQWN0
aXZpdGllc09uTWFpblRocmVhZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3Bw
CmluZGV4IDU4Y2FkMDU4NWQyMWQ5Zjc3ZDc4YTJjOGFhNjZmYjc2Mjg3M2Y3YmEuLjEyMzlmZDU4
M2QyNDI0MDAxYzdmMWIxMTZmNjNhN2IxZDY4YmQwNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNr
aW5nU3RvcmUuY3BwCkBAIC0xMjY3LDEyICsxMjY3LDE5IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJh
Y2tpbmdTdG9yZTo6Z2V0T3JFc3RhYmxpc2hEYXRhYmFzZUluZm8oSURCRGF0YWJhc2VJbmZvJiBp
bmZvCiAgICAgcmV0dXJuIElEQkVycm9yIHsgfTsKIH0KIAotdWludDY0X3QgU1FMaXRlSURCQmFj
a2luZ1N0b3JlOjpkYXRhYmFzZXNTaXplRm9yRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgZGlyZWN0
b3J5KQordWludDY0X3QgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpkYXRhYmFzZXNTaXplRm9yRGly
ZWN0b3J5KGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBib29sIHNob3VsZFByaW50VXNhZ2VEZXRh
aWwpCiB7CiAgICAgdWludDY0X3QgZGlza1VzYWdlID0gMDsKICAgICBmb3IgKGF1dG8mIGRiRGly
ZWN0b3J5IDogRmlsZVN5c3RlbTo6bGlzdERpcmVjdG9yeShkaXJlY3RvcnksICIqIikpIHsKLSAg
ICAgICAgZm9yIChhdXRvJiBmaWxlIDogRmlsZVN5c3RlbTo6bGlzdERpcmVjdG9yeShkYkRpcmVj
dG9yeSwgIiouc3FsaXRlMyJfcykpCi0gICAgICAgICAgICBkaXNrVXNhZ2UgKz0gU1FMaXRlRmls
ZVN5c3RlbTo6Z2V0RGF0YWJhc2VGaWxlU2l6ZShmaWxlKTsKKyAgICAgICAgZm9yIChhdXRvJiBm
aWxlIDogRmlsZVN5c3RlbTo6bGlzdERpcmVjdG9yeShkYkRpcmVjdG9yeSwgIiouc3FsaXRlMyJf
cykpIHsKKyAgICAgICAgICAgIGF1dG8gZmlsZVNpemUgPSBTUUxpdGVGaWxlU3lzdGVtOjpnZXRE
YXRhYmFzZUZpbGVTaXplKGZpbGUpOworICAgICAgICAgICAgZGlza1VzYWdlICs9IGZpbGVTaXpl
OworICAgICAgICAgICAgaWYgKHNob3VsZFByaW50VXNhZ2VEZXRhaWwpIHsKKyAgICAgICAgICAg
ICAgICBhdXRvIGRhdGFiYXNlTmFtZUFuZFZlcnNpb24gPSBkYXRhYmFzZU5hbWVBbmRWZXJzaW9u
RnJvbUZpbGUoZmlsZSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGRhdGFiYXNlTmFtZSA9IGRh
dGFiYXNlTmFtZUFuZFZlcnNpb24gPyBkYXRhYmFzZU5hbWVBbmRWZXJzaW9uLT5uYW1lIDogIltV
TktOT1dOXSI7CisgICAgICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJTUUxpdGVJREJCYWNraW5n
U3RvcmU6OmRhdGFiYXNlc1NpemVGb3JEaXJlY3RvcnkgZmlsZVBhdGg9JyVzJywgZGF0YWJhc2U9
JyVzJywgc2l6ZT0lIiBQUkl1NjQsIGZpbGUudXRmOCgpLmRhdGEoKSwgZGF0YWJhc2VOYW1lLnV0
ZjgoKS5kYXRhKCksIGZpbGVTaXplKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0K
ICAgICByZXR1cm4gZGlza1VzYWdlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oCmlu
ZGV4IDA3Y2MwYTEyMTlhZWZiYmZlZWFjZjFhOTU0MzY1MDI3OTczYjNjZDIuLmU0YmFhOTA0ZjIx
ZjQ0YmZhZDMzNjJmYmExYTVlY2ZhMTUwYmM0NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0
b3JlLmgKQEAgLTk3LDcgKzk3LDcgQEAgcHVibGljOgogCiAgICAgSURCRXJyb3IgZ2V0QmxvYlJl
Y29yZHNGb3JPYmplY3RTdG9yZVJlY29yZChpbnQ2NF90IG9iamVjdFN0b3JlUmVjb3JkLCBWZWN0
b3I8U3RyaW5nPiYgYmxvYlVSTHMsIFZlY3RvcjxTdHJpbmc+JiBibG9iRmlsZVBhdGhzKTsKIAot
ICAgIHN0YXRpYyB1aW50NjRfdCBkYXRhYmFzZXNTaXplRm9yRGlyZWN0b3J5KGNvbnN0IFN0cmlu
ZyYgZGlyZWN0b3J5KTsKKyAgICBzdGF0aWMgdWludDY0X3QgZGF0YWJhc2VzU2l6ZUZvckRpcmVj
dG9yeShjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgYm9vbCBzaG91bGRQcmludFVzYWdlRGV0YWls
ID0gZmFsc2UpOwogCiAgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1
cm4gbV9kYXRhYmFzZURpcmVjdG9yeTsgfTsKICAgICBzdGF0aWMgU3RyaW5nIGZ1bGxEYXRhYmFz
ZVBhdGhGb3JEaXJlY3RvcnkoY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDZhZmNjMWU1YTU0M2Q3NGIzNWY5
N2Y0MmY1ZjM0NjRlYzFjOTM0ZTguLjFjMzBjZDQyYTJjZDFhYzg0NmEzN2EwODllNDU5YTU3MjVh
YjNiNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwCkBAIC0yNTIzLDE3ICsyNTIzLDE3IEBAIFJlZlB0cjxTdG9yYWdlUXVvdGFNYW5hZ2Vy
PiBOZXR3b3JrUHJvY2Vzczo6c3RvcmFnZVF1b3RhTWFuYWdlcihQQUw6OlNlc3Npb25JRCBzCiAj
aWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgaWRiUm9vdFBhdGggPSBzZXNzaW9uU3Rv
cmFnZVF1b3RhTWFuYWdlci0+aWRiUm9vdFBhdGgoKTsKICNlbmRpZgotICAgIFN0b3JhZ2VRdW90
YU1hbmFnZXI6OlVzYWdlR2V0dGVyIHVzYWdlR2V0dGVyID0gW2NhY2hlUm9vdFBhdGggPSBzZXNz
aW9uU3RvcmFnZVF1b3RhTWFuYWdlci0+Y2FjaGVSb290UGF0aCgpLmlzb2xhdGVkQ29weSgpLCBp
ZGJSb290UGF0aCA9IGlkYlJvb3RQYXRoLmlzb2xhdGVkQ29weSgpLCBvcmlnaW4gPSBvcmlnaW4u
aXNvbGF0ZWRDb3B5KCldKFN0b3JhZ2VRdW90YU1hbmFnZXI6OlNob3VsZFByaW50VXNhZ2VEZXRh
aWwgc2hvdWxkUHJpbnR1c2FnZURldGFpbCkgeworICAgIFN0b3JhZ2VRdW90YU1hbmFnZXI6OlVz
YWdlR2V0dGVyIHVzYWdlR2V0dGVyID0gW2NhY2hlUm9vdFBhdGggPSBzZXNzaW9uU3RvcmFnZVF1
b3RhTWFuYWdlci0+Y2FjaGVSb290UGF0aCgpLmlzb2xhdGVkQ29weSgpLCBpZGJSb290UGF0aCA9
IGlkYlJvb3RQYXRoLmlzb2xhdGVkQ29weSgpLCBvcmlnaW4gPSBvcmlnaW4uaXNvbGF0ZWRDb3B5
KCldKFN0b3JhZ2VRdW90YU1hbmFnZXI6OlNob3VsZFByaW50VXNhZ2VEZXRhaWwgc2hvdWxkUHJp
bnRVc2FnZURldGFpbCkgewogICAgICAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAKICAg
ICAgICAgdWludDY0X3QgY2FjaGVVc2FnZSA9IENhY2hlU3RvcmFnZTo6RW5naW5lOjpkaXNrVXNh
Z2UoY2FjaGVSb290UGF0aCwgb3JpZ2luKTsKICAgICAgICAgdWludDY0X3QgdXNhZ2UgPSBjYWNo
ZVVzYWdlOwogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0gICAgICAgIHVzYWdlICs9
IElEQlNlcnZlcjo6SURCU2VydmVyOjpkaXNrVXNhZ2UoaWRiUm9vdFBhdGgsIG9yaWdpbik7Cisg
ICAgICAgIHVzYWdlICs9IElEQlNlcnZlcjo6SURCU2VydmVyOjpkaXNrVXNhZ2UoaWRiUm9vdFBh
dGgsIG9yaWdpbiwgc2hvdWxkUHJpbnRVc2FnZURldGFpbCk7CiAjZW5kaWYKLSAgICAgICAgaWYg
KHNob3VsZFByaW50dXNhZ2VEZXRhaWwgPT0gU3RvcmFnZVF1b3RhTWFuYWdlcjo6U2hvdWxkUHJp
bnRVc2FnZURldGFpbDo6WWVzKQotICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJTdG9yYWdlUXVv
dGFNYW5hZ2VyOjpVc2FnZUdldHRlciBDYWNoZSB1c2FnZSAlIiBQUkl1NjQgIiwgSURCIHVzYWdl
ICUiIFBSSXU2NCwgY2FjaGVVc2FnZSwgdXNhZ2UpOworICAgICAgICBpZiAoc2hvdWxkUHJpbnRV
c2FnZURldGFpbCA9PSBTdG9yYWdlUXVvdGFNYW5hZ2VyOjpTaG91bGRQcmludFVzYWdlRGV0YWls
OjpZZXMpCisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIlN0b3JhZ2VRdW90YU1hbmFnZXI6OlVz
YWdlR2V0dGVyIENhY2hlIHVzYWdlICUiIFBSSXU2NCAiLCBJREIgdXNhZ2UgJSIgUFJJdTY0LCBj
YWNoZVVzYWdlLCB1c2FnZSAtIGNhY2hlVXNhZ2UpOwogCiAgICAgICAgIHJldHVybiB1c2FnZTsK
ICAgICB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424792</attachid>
            <date>2021-03-31 11:34:14 -0700</date>
            <delta_ts>2021-03-31 12:34:57 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-223578-20210331113414.patch</filename>
            <type>text/plain</type>
            <size>8839</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzYzMTU1NThlMzJiNjUx
NTJhYWU5ZWIxNjBiYTM4NTM4MTZmOTA5NS4uOGQ0Y2MxNmJlNGI4ZWE1YWZlNWQ2MmEwMTlkNTg3
ZjJmMWUzNDdiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTAzLTMxICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBsb2dnaW5nIGluIElu
ZGV4ZWREQiB0byBoZWxwIGRlYnVnIGZsYWt5IHF1b3RhIHRlc3RzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM1NzgKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzc1OTU2Nzg5PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFr
b3YuCisKKyAgICAgICAgV2l0aCByMjc0MzIzLCB3ZSBrbm93IHRoYXQgdGhlIHRlc3RzIGZhaWwg
YmVjYXVzZSBvZiBJbmRleGVkREIuIEluZGV4ZWREQiBkYXRhIHNob3VsZCBiZSBjbGVhcmVkIGJl
dHdlZW4gdGVzdHMsIAorICAgICAgICBzbyBsZXQncyBhZGQgbW9yZSBsb2dnaW5nIHRvIHNlZSB3
aGF0IGRhdGFiYXNlcyBhcmUgbGVmdC4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2
ZXI6OmRpc2tVc2FnZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNl
cnZlci5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNr
aW5nU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNr
aW5nU3RvcmU6OmRhdGFiYXNlc1NpemVGb3JEaXJlY3RvcnkpOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaDoKKwogMjAyMS0wMy0zMSAg
QW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBmb250LXN0cmV0
Y2ggc2hvdWxkIHN1cHBvcnQgMCUgYW5kIGRpc2FsbG93IGFuaW1hdGluZyB0byBhIHZhbHVlIGJl
bG93IDAlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDBkY2Q1MGEyYzUwNDhjNGM5NDU2Zjg4YzMzMWY5NDc0MWMwMzk3
MjQuLmNiMzJjODY5Zjc5NDQ2YzRmYWU5MjlmM2VkOTg3NzRiNTMwODRmYzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMjEtMDMtMzEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGxvZ2dpbmcgaW4gSW5kZXhlZERCIHRvIGhlbHAgZGVidWcgZmxh
a3kgcXVvdGEgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyMzU3OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzU5NTY3ODk+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KKworICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OnN0b3JhZ2VRdW90YU1hbmFnZXIpOgorCiAyMDIxLTAzLTMwICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIEZhbGwgYmFjayB0byBjb250
ZXh0IG1lbnUgcHJlc2VudGF0aW9uIGFmdGVyIGxvbmcgcHJlc3NpbmcgaW1hZ2Ugb3ZlcmxheSB0
ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
SURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9J
REJTZXJ2ZXIuY3BwCmluZGV4IDJmODgyYTk0M2E3YTAzMmUxYjgwODgxZTFkMDUyOWU3MWMxNGNj
YmMuLmJjMGNkMTFmNjg4M2ZhOTczYTgzOTI1MzJiYTgwOWI0N2I2YTUwYzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3Bw
CkBAIC03NTgsMTMgKzc1OCwxNCBAQCBTdG9yYWdlUXVvdGFNYW5hZ2VyOjpEZWNpc2lvbiBJREJT
ZXJ2ZXI6OnJlcXVlc3RTcGFjZShjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbgogICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKLXVpbnQ2NF90IElEQlNlcnZlcjo6ZGlza1VzYWdlKGNvbnN0IFN0cmlu
ZyYgcm9vdERpcmVjdG9yeSwgY29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4pCit1aW50NjRfdCBJ
REJTZXJ2ZXI6OmRpc2tVc2FnZShjb25zdCBTdHJpbmcmIHJvb3REaXJlY3RvcnksIGNvbnN0IENs
aWVudE9yaWdpbiYgb3JpZ2luLCBTdG9yYWdlUXVvdGFNYW5hZ2VyOjpTaG91bGRQcmludFVzYWdl
RGV0YWlsIHNob3VsZFByaW50VXNhZ2VEZXRhaWwpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJl
YWQoKSk7CiAKICAgICBhdXRvIG9sZFZlcnNpb25PcmlnaW5EaXJlY3RvcnkgPSBJREJEYXRhYmFz
ZUlkZW50aWZpZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLnRvcE9y
aWdpbiwgb3JpZ2luLmNsaWVudE9yaWdpbiwgcm9vdERpcmVjdG9yeSwgInYwIl9zdHIpOwogICAg
IGF1dG8gbmV3VmVyc2lvbk9yaWdpbkRpcmVjdG9yeSA9IElEQkRhdGFiYXNlSWRlbnRpZmllcjo6
ZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChvcmlnaW4udG9wT3JpZ2luLCBvcmlnaW4u
Y2xpZW50T3JpZ2luLCByb290RGlyZWN0b3J5LCAidjEiX3N0cik7Ci0gICAgcmV0dXJuIFNRTGl0
ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VzU2l6ZUZvckRpcmVjdG9yeShvbGRWZXJzaW9uT3Jp
Z2luRGlyZWN0b3J5KSArIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VzU2l6ZUZvckRp
cmVjdG9yeShuZXdWZXJzaW9uT3JpZ2luRGlyZWN0b3J5KTsKKyAgICBib29sIHNob3VsZFByaW50
VXNhZ2VEZXRhaWxGb3JEaXJlY3RvcnkgPSBzaG91bGRQcmludFVzYWdlRGV0YWlsID09IFN0b3Jh
Z2VRdW90YU1hbmFnZXI6OlNob3VsZFByaW50VXNhZ2VEZXRhaWw6OlllczsKKyAgICByZXR1cm4g
U1FMaXRlSURCQmFja2luZ1N0b3JlOjpkYXRhYmFzZXNTaXplRm9yRGlyZWN0b3J5KG9sZFZlcnNp
b25PcmlnaW5EaXJlY3RvcnksIHNob3VsZFByaW50VXNhZ2VEZXRhaWxGb3JEaXJlY3RvcnkpICsg
U1FMaXRlSURCQmFja2luZ1N0b3JlOjpkYXRhYmFzZXNTaXplRm9yRGlyZWN0b3J5KG5ld1ZlcnNp
b25PcmlnaW5EaXJlY3RvcnksIHNob3VsZFByaW50VXNhZ2VEZXRhaWxGb3JEaXJlY3RvcnkpOwog
fQogCiB2b2lkIElEQlNlcnZlcjo6dXBncmFkZUZpbGVzSWZOZWNlc3NhcnkoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oCmluZGV4
IGZmN2Y1ODg1MGY0MzExMWM4NjRiZWRlZGMzMTdmODZiNWFjNWNhNGYuLmRlMmFkMjA1OTkxODQz
ZWFkZjU5ZDM1MGNlZDFhNTA5MjIwMGM3YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgKQEAgLTEwNiw3ICsxMDYsNyBAQCBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW5hbWVPcmlnaW4oY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
Jik7CiAKICAgICBTdG9yYWdlUXVvdGFNYW5hZ2VyOjpEZWNpc2lvbiByZXF1ZXN0U3BhY2UoY29u
c3QgQ2xpZW50T3JpZ2luJiwgdWludDY0X3QgdGFza1NpemUpOwotICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyB1aW50NjRfdCBkaXNrVXNhZ2UoY29uc3QgU3RyaW5nJiByb290RGlyZWN0b3J5LCBj
b25zdCBDbGllbnRPcmlnaW4mKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdWludDY0X3Qg
ZGlza1VzYWdlKGNvbnN0IFN0cmluZyYgcm9vdERpcmVjdG9yeSwgY29uc3QgQ2xpZW50T3JpZ2lu
JiwgU3RvcmFnZVF1b3RhTWFuYWdlcjo6U2hvdWxkUHJpbnRVc2FnZURldGFpbCk7CiAKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHN0b3BEYXRhYmFzZUFjdGl2aXRpZXNPbk1haW5UaHJlYWQoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NR
TGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcAppbmRleCBkNWNlMDBkYzMwM2UzMmQy
M2NmMzI0NGM2MzNjYWI2NGEzMTFkMzJjLi43ZTA5N2UyNDU5MWQ2M2U2NjdhNjNhMjJjMzViZGZm
ZDFjOWZkNjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcApAQCAtMTI2NSwx
MiArMTI2NSwxOSBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdldE9yRXN0YWJs
aXNoRGF0YWJhc2VJbmZvKElEQkRhdGFiYXNlSW5mbyYgaW5mbwogICAgIHJldHVybiBJREJFcnJv
ciB7IH07CiB9CiAKLXVpbnQ2NF90IFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VzU2l6
ZUZvckRpcmVjdG9yeShjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSkKK3VpbnQ2NF90IFNRTGl0ZUlE
QkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VzU2l6ZUZvckRpcmVjdG9yeShjb25zdCBTdHJpbmcmIGRp
cmVjdG9yeSwgYm9vbCBzaG91bGRQcmludFVzYWdlRGV0YWlsKQogewogICAgIHVpbnQ2NF90IGRp
c2tVc2FnZSA9IDA7CiAgICAgZm9yIChhdXRvJiBkYkRpcmVjdG9yeSA6IEZpbGVTeXN0ZW06Omxp
c3REaXJlY3RvcnkoZGlyZWN0b3J5LCAiKiIpKSB7Ci0gICAgICAgIGZvciAoYXV0byYgZmlsZSA6
IEZpbGVTeXN0ZW06Omxpc3REaXJlY3RvcnkoZGJEaXJlY3RvcnksICIqLnNxbGl0ZTMiX3MpKQot
ICAgICAgICAgICAgZGlza1VzYWdlICs9IFNRTGl0ZUZpbGVTeXN0ZW06OmdldERhdGFiYXNlRmls
ZVNpemUoZmlsZSk7CisgICAgICAgIGZvciAoYXV0byYgZmlsZSA6IEZpbGVTeXN0ZW06Omxpc3RE
aXJlY3RvcnkoZGJEaXJlY3RvcnksICIqLnNxbGl0ZTMiX3MpKSB7CisgICAgICAgICAgICBhdXRv
IGZpbGVTaXplID0gU1FMaXRlRmlsZVN5c3RlbTo6Z2V0RGF0YWJhc2VGaWxlU2l6ZShmaWxlKTsK
KyAgICAgICAgICAgIGRpc2tVc2FnZSArPSBmaWxlU2l6ZTsKKyAgICAgICAgICAgIGlmIChzaG91
bGRQcmludFVzYWdlRGV0YWlsKSB7CisgICAgICAgICAgICAgICAgYXV0byBkYXRhYmFzZU5hbWVB
bmRWZXJzaW9uID0gZGF0YWJhc2VOYW1lQW5kVmVyc2lvbkZyb21GaWxlKGZpbGUpOworICAgICAg
ICAgICAgICAgIFN0cmluZyBkYXRhYmFzZU5hbWUgPSBkYXRhYmFzZU5hbWVBbmRWZXJzaW9uID8g
ZGF0YWJhc2VOYW1lQW5kVmVyc2lvbi0+bmFtZSA6ICJbVU5LTk9XTl0iOworICAgICAgICAgICAg
ICAgIFdURkxvZ0Fsd2F5cygiU1FMaXRlSURCQmFja2luZ1N0b3JlOjpkYXRhYmFzZXNTaXplRm9y
RGlyZWN0b3J5IGZpbGVQYXRoPSclcycsIGRhdGFiYXNlPSclcycsIHNpemU9JSIgUFJJdTY0LCBm
aWxlLnV0ZjgoKS5kYXRhKCksIGRhdGFiYXNlTmFtZS51dGY4KCkuZGF0YSgpLCBmaWxlU2l6ZSk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIGRpc2tVc2FnZTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9T
UUxpdGVJREJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaAppbmRleCBhNWY5NmFmMTkyNjY3ODA3ZmZh
NTMxMGIzOGU4ZjJmZjAyOWQ1NWI5Li4zNTg5N2U0YmNkMWIwMTJlYjUwYTc1NjVkMWE5NWVlMjE5
ZjQ1MjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oCkBAIC05NSw3ICs5NSw3IEBA
IHB1YmxpYzoKIAogICAgIElEQkVycm9yIGdldEJsb2JSZWNvcmRzRm9yT2JqZWN0U3RvcmVSZWNv
cmQoaW50NjRfdCBvYmplY3RTdG9yZVJlY29yZCwgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBW
ZWN0b3I8U3RyaW5nPiYgYmxvYkZpbGVQYXRocyk7CiAKLSAgICBzdGF0aWMgdWludDY0X3QgZGF0
YWJhc2VzU2l6ZUZvckRpcmVjdG9yeShjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSk7CisgICAgc3Rh
dGljIHVpbnQ2NF90IGRhdGFiYXNlc1NpemVGb3JEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBkaXJl
Y3RvcnksIGJvb2wgc2hvdWxkUHJpbnRVc2FnZURldGFpbCA9IGZhbHNlKTsKIAogICAgIFN0cmlu
ZyBkYXRhYmFzZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YWJhc2VEaXJlY3Rvcnk7
IH07CiAgICAgc3RhdGljIFN0cmluZyBmdWxsRGF0YWJhc2VQYXRoRm9yRGlyZWN0b3J5KGNvbnN0
IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcAppbmRleCA5ZWNhYmIzOGJhMjMzZWVkZTcyYzA4ZjFmYmE5ZjgzNzIwNWRlOTk4Li5h
MGFhMDBhNjFjMTFhNjAwMzRkMjAwODIzZjExYjJkYTVkMTg4YTMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMjUxNywxNCArMjUx
NywxNCBAQCBSZWZQdHI8U3RvcmFnZVF1b3RhTWFuYWdlcj4gTmV0d29ya1Byb2Nlc3M6OnN0b3Jh
Z2VRdW90YU1hbmFnZXIoUEFMOjpTZXNzaW9uSUQgcwogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAogICAgIFN0cmluZyBpZGJSb290UGF0aCA9IHNlc3Npb25TdG9yYWdlUXVvdGFNYW5hZ2VyLT5p
ZGJSb290UGF0aCgpOwotICAgIFN0b3JhZ2VRdW90YU1hbmFnZXI6OlVzYWdlR2V0dGVyIHVzYWdl
R2V0dGVyID0gW2NhY2hlUm9vdFBhdGggPSBzZXNzaW9uU3RvcmFnZVF1b3RhTWFuYWdlci0+Y2Fj
aGVSb290UGF0aCgpLmlzb2xhdGVkQ29weSgpLCBpZGJSb290UGF0aCA9IGlkYlJvb3RQYXRoLmlz
b2xhdGVkQ29weSgpLCBvcmlnaW4gPSBvcmlnaW4uaXNvbGF0ZWRDb3B5KCldKFN0b3JhZ2VRdW90
YU1hbmFnZXI6OlNob3VsZFByaW50VXNhZ2VEZXRhaWwgc2hvdWxkUHJpbnR1c2FnZURldGFpbCkg
eworICAgIFN0b3JhZ2VRdW90YU1hbmFnZXI6OlVzYWdlR2V0dGVyIHVzYWdlR2V0dGVyID0gW2Nh
Y2hlUm9vdFBhdGggPSBzZXNzaW9uU3RvcmFnZVF1b3RhTWFuYWdlci0+Y2FjaGVSb290UGF0aCgp
Lmlzb2xhdGVkQ29weSgpLCBpZGJSb290UGF0aCA9IGlkYlJvb3RQYXRoLmlzb2xhdGVkQ29weSgp
LCBvcmlnaW4gPSBvcmlnaW4uaXNvbGF0ZWRDb3B5KCldKFN0b3JhZ2VRdW90YU1hbmFnZXI6OlNo
b3VsZFByaW50VXNhZ2VEZXRhaWwgc2hvdWxkUHJpbnRVc2FnZURldGFpbCkgewogICAgICAgICBB
U1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAKICAgICAgICAgdWludDY0X3QgY2FjaGVVc2FnZSA9
IENhY2hlU3RvcmFnZTo6RW5naW5lOjpkaXNrVXNhZ2UoY2FjaGVSb290UGF0aCwgb3JpZ2luKTsK
LSAgICAgICAgdWludDY0X3QgdXNhZ2UgPSBjYWNoZVVzYWdlICsgSURCU2VydmVyOjpJREJTZXJ2
ZXI6OmRpc2tVc2FnZShpZGJSb290UGF0aCwgb3JpZ2luKTsKKyAgICAgICAgdWludDY0X3QgdXNh
Z2UgPSBjYWNoZVVzYWdlICsgSURCU2VydmVyOjpJREJTZXJ2ZXI6OmRpc2tVc2FnZShpZGJSb290
UGF0aCwgb3JpZ2luLCBzaG91bGRQcmludFVzYWdlRGV0YWlsKTsKIAotICAgICAgICBpZiAoc2hv
dWxkUHJpbnR1c2FnZURldGFpbCA9PSBTdG9yYWdlUXVvdGFNYW5hZ2VyOjpTaG91bGRQcmludFVz
YWdlRGV0YWlsOjpZZXMpCi0gICAgICAgICAgICBXVEZMb2dBbHdheXMoIlN0b3JhZ2VRdW90YU1h
bmFnZXI6OlVzYWdlR2V0dGVyIENhY2hlIHVzYWdlICUiIFBSSXU2NCAiLCBJREIgdXNhZ2UgJSIg
UFJJdTY0LCBjYWNoZVVzYWdlLCB1c2FnZSk7CisgICAgICAgIGlmIChzaG91bGRQcmludFVzYWdl
RGV0YWlsID09IFN0b3JhZ2VRdW90YU1hbmFnZXI6OlNob3VsZFByaW50VXNhZ2VEZXRhaWw6Olll
cykKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiU3RvcmFnZVF1b3RhTWFuYWdlcjo6VXNhZ2VH
ZXR0ZXIgQ2FjaGUgdXNhZ2UgJSIgUFJJdTY0ICIsIElEQiB1c2FnZSAlIiBQUkl1NjQsIGNhY2hl
VXNhZ2UsIHVzYWdlIC0gY2FjaGVVc2FnZSk7CiAKICAgICAgICAgcmV0dXJuIHVzYWdlOwogICAg
IH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>