<?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>226290</bug_id>
          
          <creation_ts>2021-05-26 14:11:06 -0700</creation_ts>
          <short_desc>Add logging for when SQLiteDatabase fails to close</short_desc>
          <delta_ts>2021-05-26 22:14:19 -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>WebCore Misc.</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>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1764043</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-05-26 14:11:06 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764045</commentid>
    <comment_count>1</comment_count>
      <attachid>429793</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-05-26 14:15:19 -0700</bug_when>
    <thetext>Created attachment 429793
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764095</commentid>
    <comment_count>2</comment_count>
      <attachid>429793</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-26 15:51:42 -0700</bug_when>
    <thetext>Comment on attachment 429793
Patch

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

r=me with nits

&gt; Source/WebCore/platform/sql/SQLiteDatabase.cpp:238
&gt; +            RELEASE_LOG_ERROR(SQLDatabase, &quot;SQLiteDatabase::close: Failed to close database (%d) - %s&quot;, lastError(), lastErrorMsg());

Do you want a LOG_ERROR() too? I don&apos;t think you&apos;ll see the RELEASE_LOG_ERROR() on the bots&apos; output, unless you get a sysdiagnose.

Also, you want to use %{public}s (assuming not privacy sensitive, %{private}s otherwise) on the string so the actually gets printed out in a RELEASE_LOG.

&gt; Source/WebCore/platform/sql/SQLiteDatabase.h:62
&gt; +    enum class ShouldSetErrorState { No, Yes };

enum class ShouldSetErrorState : bool { No, Yes };</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764204</commentid>
    <comment_count>3</comment_count>
      <attachid>429842</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-05-26 21:36:44 -0700</bug_when>
    <thetext>Created attachment 429842
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764208</commentid>
    <comment_count>4</comment_count>
      <attachid>429793</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-05-26 21:37:22 -0700</bug_when>
    <thetext>Comment on attachment 429793
Patch

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

&gt;&gt; Source/WebCore/platform/sql/SQLiteDatabase.cpp:238
&gt;&gt; +            RELEASE_LOG_ERROR(SQLDatabase, &quot;SQLiteDatabase::close: Failed to close database (%d) - %s&quot;, lastError(), lastErrorMsg());
&gt; 
&gt; Do you want a LOG_ERROR() too? I don&apos;t think you&apos;ll see the RELEASE_LOG_ERROR() on the bots&apos; output, unless you get a sysdiagnose.
&gt; 
&gt; Also, you want to use %{public}s (assuming not privacy sensitive, %{private}s otherwise) on the string so the actually gets printed out in a RELEASE_LOG.

The test I am investigating is an API test failed on release bot, so this is enough for me.
Will add %{public}s.

&gt;&gt; Source/WebCore/platform/sql/SQLiteDatabase.h:62
&gt;&gt; +    enum class ShouldSetErrorState { No, Yes };
&gt; 
&gt; enum class ShouldSetErrorState : bool { No, Yes };

Okay</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764209</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-26 21:42:11 -0700</bug_when>
    <thetext>(In reply to Sihui Liu from comment #4)
&gt; Comment on attachment 429793 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=429793&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/sql/SQLiteDatabase.cpp:238
&gt; &gt;&gt; +            RELEASE_LOG_ERROR(SQLDatabase, &quot;SQLiteDatabase::close: Failed to close database (%d) - %s&quot;, lastError(), lastErrorMsg());
&gt; &gt; 
&gt; &gt; Do you want a LOG_ERROR() too? I don&apos;t think you&apos;ll see the RELEASE_LOG_ERROR() on the bots&apos; output, unless you get a sysdiagnose.
&gt; &gt; 
&gt; &gt; Also, you want to use %{public}s (assuming not privacy sensitive, %{private}s otherwise) on the string so the actually gets printed out in a RELEASE_LOG.
&gt; 
&gt; The test I am investigating is an API test failed on release bot, so this is
&gt; enough for me.
&gt; Will add %{public}s.

Not sure what you mean by enough. Release logging doesn’t show in api tests output. Only way would be to get a sysdiagnose from the bots.

&gt; 
&gt; &gt;&gt; Source/WebCore/platform/sql/SQLiteDatabase.h:62
&gt; &gt;&gt; +    enum class ShouldSetErrorState { No, Yes };
&gt; &gt; 
&gt; &gt; enum class ShouldSetErrorState : bool { No, Yes };
&gt; 
&gt; Okay</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764212</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-26 21:44:29 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #5)
&gt; (In reply to Sihui Liu from comment #4)
&gt; &gt; Comment on attachment 429793 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=429793&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebCore/platform/sql/SQLiteDatabase.cpp:238
&gt; &gt; &gt;&gt; +            RELEASE_LOG_ERROR(SQLDatabase, &quot;SQLiteDatabase::close: Failed to close database (%d) - %s&quot;, lastError(), lastErrorMsg());
&gt; &gt; &gt; 
&gt; &gt; &gt; Do you want a LOG_ERROR() too? I don&apos;t think you&apos;ll see the RELEASE_LOG_ERROR() on the bots&apos; output, unless you get a sysdiagnose.
&gt; &gt; &gt; 
&gt; &gt; &gt; Also, you want to use %{public}s (assuming not privacy sensitive, %{private}s otherwise) on the string so the actually gets printed out in a RELEASE_LOG.
&gt; &gt; 
&gt; &gt; The test I am investigating is an API test failed on release bot, so this is
&gt; &gt; enough for me.
&gt; &gt; Will add %{public}s.
&gt; 
&gt; Not sure what you mean by enough. Release logging doesn’t show in api tests
&gt; output. Only way would be to get a sysdiagnose from the bots.

Maybe you want a temporary WTFLogAlways() since this is a release bot?

&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebCore/platform/sql/SQLiteDatabase.h:62
&gt; &gt; &gt;&gt; +    enum class ShouldSetErrorState { No, Yes };
&gt; &gt; &gt; 
&gt; &gt; &gt; enum class ShouldSetErrorState : bool { No, Yes };
&gt; &gt; 
&gt; &gt; Okay</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764215</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-26 22:13:24 -0700</bug_when>
    <thetext>Committed r278150 (238194@main): &lt;https://commits.webkit.org/238194@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 429842.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764216</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-26 22:14:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/78551181&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429793</attachid>
            <date>2021-05-26 14:15:19 -0700</date>
            <delta_ts>2021-05-26 21:36:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226290-20210526141518.patch</filename>
            <type>text/plain</type>
            <size>15247</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MDg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzZjNGRlNDU0Y2NhNTM3
ZTMwMTIwMWI5YzRkY2MzYzkzODdkMjdlZS4uYWU3MmU0NmMwYTAyZjgzYzQ3YTMyYmIyYWYyZWY3
ZmY0MmI3MWYxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTA1LTI2ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBsb2dnaW5nIGZvciB3
aGVuIFNRTGl0ZURhdGFiYXNlIGZhaWxzIHRvIGNsb3NlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYyOTAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbHNvIGZpeCBzb21lIGxvZ2dpbmcgZXJyb3IgaW4g
SURCLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tp
bmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OmNyZWF0ZU9yTWlncmF0
ZVJlY29yZHNUYWJsZUlmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6
U1FMaXRlSURCQmFja2luZ1N0b3JlOjplbnN1cmVWYWxpZEJsb2JUYWJsZXMpOgorICAgICAgICAo
V2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmVuc3VyZVZhbGlkUmVj
b3Jkc1RhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2lu
Z1N0b3JlOjplbnN1cmVWYWxpZEluZGV4UmVjb3Jkc1RhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjplbnN1cmVWYWxpZEluZGV4UmVjb3Jk
c0luZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0
b3JlOjplbnN1cmVWYWxpZEluZGV4UmVjb3Jkc1JlY29yZEluZGV4KToKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUN1cnJlbnRPcGVuT3Bl
cmF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6Om9wZW4pOgorICAgICAgICAoV2ViQ29yZTo6
U1FMaXRlRGF0YWJhc2U6OmNsb3NlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRlRGF0
YWJhc2UuaDoKKwogMjAyMS0wNS0yNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIERyb3AgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCdzIGJsb2NrZWRVUkwg
JiBkb2N1bWVudFVSTCBhdHRyaWJ1dGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3Bw
CmluZGV4IDQ2NTFkYTcxMmE2MjQzMDUyNTdlZWFkOTViNGQwMmYyYTdlNzkzZmEuLjI4Yjk4Yzk3
NmZjNmU5Y2EzZDBjYWVhZDU2ZTI5NTMwOTI2MjA4NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNr
aW5nU3RvcmUuY3BwCkBAIC0yNTcsNyArMjU3LDcgQEAgc3RhdGljIElEQkVycm9yIGNyZWF0ZU9y
TWlncmF0ZVJlY29yZHNUYWJsZUlmTmVjZXNzYXJ5KFNRTGl0ZURhdGFiYXNlJiBkYXRhYmFzZSkK
ICAgICBTdHJpbmcgdGFibGVTdGF0ZW1lbnQgPSBkYXRhYmFzZS50YWJsZVNRTCgiUmVjb3JkcyJf
cyk7CiAgICAgaWYgKHRhYmxlU3RhdGVtZW50LmlzRW1wdHkoKSkgewogICAgICAgICBpZiAoIWRh
dGFiYXNlLmV4ZWN1dGVDb21tYW5kKHYzUmVjb3Jkc1RhYmxlU2NoZW1hKCkpKQotICAgICAgICAg
ICAgcmV0dXJuIElEQkVycm9yIHsgVW5rbm93bkVycm9yLCBtYWtlU3RyaW5nKCJFcnJvciBjcmVh
dGluZyBuZXcgUmVjb3JkcyB0YWJsZSAoJWkpIC0gJXMiLCBkYXRhYmFzZS5sYXN0RXJyb3IoKSwg
ZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpIH07CisgICAgICAgICAgICByZXR1cm4gSURCRXJyb3Ig
eyBVbmtub3duRXJyb3IsIG1ha2VTdHJpbmcoIkVycm9yIGNyZWF0aW5nIFJlY29yZHMgdGFibGUg
KCIsIGRhdGFiYXNlLmxhc3RFcnJvcigpLCAiKSAtICIsIGRhdGFiYXNlLmxhc3RFcnJvck1zZygp
KSB9OwogCiAgICAgICAgIHJldHVybiBJREJFcnJvciB7IH07CiAgICAgfQpAQCAtMjc3LDE2ICsy
NzcsMTYgQEAgc3RhdGljIElEQkVycm9yIGNyZWF0ZU9yTWlncmF0ZVJlY29yZHNUYWJsZUlmTmVj
ZXNzYXJ5KFNRTGl0ZURhdGFiYXNlJiBkYXRhYmFzZSkKIAogICAgIC8vIENyZWF0ZSBhIHRlbXBv
cmFyeSB0YWJsZSB3aXRoIHRoZSBjb3JyZWN0IHNjaGVtYSBhbmQgbWlncmF0ZSBhbGwgZXhpc3Rp
bmcgY29udGVudCBvdmVyLgogICAgIGlmICghZGF0YWJhc2UuZXhlY3V0ZUNvbW1hbmQodjNSZWNv
cmRzVGFibGVTY2hlbWFUZW1wKCkpKQotICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBVbmtub3du
RXJyb3IsIG1ha2VTdHJpbmcoIkVycm9yIGNyZWF0aW5nIHRlbXBvcmFyeSBSZWNvcmRzIHRhYmxl
ICglaSkgLSAlcyIsIGRhdGFiYXNlLmxhc3RFcnJvcigpLCBkYXRhYmFzZS5sYXN0RXJyb3JNc2co
KSkgfTsKKyAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgVW5rbm93bkVycm9yLCBtYWtlU3RyaW5n
KCJFcnJvciBjcmVhdGluZyB0ZW1wb3JhcnkgUmVjb3JkcyB0YWJsZSAoIiwgZGF0YWJhc2UubGFz
dEVycm9yKCksICIpIC0gIiwgZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpIH07CiAKICAgICBpZiAo
IWRhdGFiYXNlLmV4ZWN1dGVDb21tYW5kKCJJTlNFUlQgSU5UTyBfVGVtcF9SZWNvcmRzIChvYmpl
Y3RTdG9yZUlELCBrZXksIHZhbHVlKSBTRUxFQ1Qgb2JqZWN0U3RvcmVJRCwgQ0FTVChrZXkgQVMg
VEVYVCksIHZhbHVlIEZST00gUmVjb3JkcyJfcykpCi0gICAgICAgIHJldHVybiBJREJFcnJvciB7
IFVua25vd25FcnJvciwgbWFrZVN0cmluZygiRXJyb3IgbWlncmF0aW5nIFJlY29yZHMgdGFibGUg
KCVpKSAtICVzIiwgZGF0YWJhc2UubGFzdEVycm9yKCksIGRhdGFiYXNlLmxhc3RFcnJvck1zZygp
KSB9OworICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBVbmtub3duRXJyb3IsIG1ha2VTdHJpbmco
IkVycm9yIG1pZ3JhdGluZyBSZWNvcmRzIHRhYmxlICgiLCBkYXRhYmFzZS5sYXN0RXJyb3IoKSwg
IikgLSAiLCBkYXRhYmFzZS5sYXN0RXJyb3JNc2coKSkgfTsKIAogICAgIGlmICghZGF0YWJhc2Uu
ZXhlY3V0ZUNvbW1hbmQoIkRST1AgVEFCTEUgUmVjb3JkcyJfcykpCi0gICAgICAgIHJldHVybiBJ
REJFcnJvciB7IFVua25vd25FcnJvciwgbWFrZVN0cmluZygiRXJyb3IgZHJvcHBpbmcgUmVjb3Jk
cyB0YWJsZSAoJWkpIC0gJXMiLCBkYXRhYmFzZS5sYXN0RXJyb3IoKSwgZGF0YWJhc2UubGFzdEVy
cm9yTXNnKCkpIH07CisgICAgICAgIHJldHVybiBJREJFcnJvciB7IFVua25vd25FcnJvciwgbWFr
ZVN0cmluZygiRXJyb3IgZHJvcHBpbmcgUmVjb3JkcyB0YWJsZSAoIiwgZGF0YWJhc2UubGFzdEVy
cm9yKCksICIpIC0gIiwgZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpIH07CiAKICAgICBpZiAoIWRh
dGFiYXNlLmV4ZWN1dGVDb21tYW5kKCJBTFRFUiBUQUJMRSBfVGVtcF9SZWNvcmRzIFJFTkFNRSBU
TyBSZWNvcmRzIl9zKSkKLSAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgVW5rbm93bkVycm9yLCBt
YWtlU3RyaW5nKCJFcnJvciByZW5hbWluZyB0ZW1wb3JhcnkgUmVjb3JkcyB0YWJsZSAoJWkpIC0g
JXMiLCBkYXRhYmFzZS5sYXN0RXJyb3IoKSwgZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpIH07Cisg
ICAgICAgIHJldHVybiBJREJFcnJvciB7IFVua25vd25FcnJvciwgbWFrZVN0cmluZygiRXJyb3Ig
cmVuYW1pbmcgdGVtcG9yYXJ5IFJlY29yZHMgdGFibGUgKCIsIGRhdGFiYXNlLmxhc3RFcnJvcigp
LCAiKSAtICIsIGRhdGFiYXNlLmxhc3RFcnJvck1zZygpKSB9OwogCiAgICAgdHJhbnNhY3Rpb24u
Y29tbWl0KCk7CiAKQEAgLTMwMSw3ICszMDEsNyBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5n
U3RvcmU6OmVuc3VyZVZhbGlkQmxvYlRhYmxlcygpCiAgICAgU3RyaW5nIHJlY29yZHNUYWJsZVN0
YXRlbWVudCA9IG1fc3FsaXRlREItPnRhYmxlU1FMKCJCbG9iUmVjb3JkcyJfcyk7CiAgICAgaWYg
KHJlY29yZHNUYWJsZVN0YXRlbWVudC5pc0VtcHR5KCkpIHsKICAgICAgICAgaWYgKCFtX3NxbGl0
ZURCLT5leGVjdXRlQ29tbWFuZChibG9iUmVjb3Jkc1RhYmxlU2NoZW1hKCkpKQotICAgICAgICAg
ICAgcmV0dXJuIElEQkVycm9yIHsgVW5rbm93bkVycm9yLCBtYWtlU3RyaW5nKCJFcnJvciBjcmVh
dGluZyBCbG9iUmVjb3JkcyB0YWJsZSAoJWkpIC0gJXMiLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3Io
KSwgbV9zcWxpdGVEQi0+bGFzdEVycm9yTXNnKCkpIH07CisgICAgICAgICAgICByZXR1cm4gSURC
RXJyb3IgeyBVbmtub3duRXJyb3IsIG1ha2VTdHJpbmcoIkVycm9yIGNyZWF0aW5nIEJsb2JSZWNv
cmRzIHRhYmxlICgiLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3IoKSwgIikgLSAiLCBtX3NxbGl0ZURC
LT5sYXN0RXJyb3JNc2coKSkgfTsKIAogICAgICAgICByZWNvcmRzVGFibGVTdGF0ZW1lbnQgPSBi
bG9iUmVjb3Jkc1RhYmxlU2NoZW1hKCk7CiAgICAgfQpAQCAtMzExLDcgKzMxMSw3IEBAIElEQkVy
cm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZW5zdXJlVmFsaWRCbG9iVGFibGVzKCkKICAgICBT
dHJpbmcgZmlsZXNUYWJsZVN0YXRlbWVudCA9IG1fc3FsaXRlREItPnRhYmxlU1FMKCJCbG9iRmls
ZXMiX3MpOwogICAgIGlmIChmaWxlc1RhYmxlU3RhdGVtZW50LmlzRW1wdHkoKSkgewogICAgICAg
ICBpZiAoIW1fc3FsaXRlREItPmV4ZWN1dGVDb21tYW5kKGJsb2JGaWxlc1RhYmxlU2NoZW1hKCkp
KQotICAgICAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgVW5rbm93bkVycm9yLCBtYWtlU3RyaW5n
KCJFcnJvciBjcmVhdGluZyBCbG9iRmlsZXMgdGFibGUgKCVpKSAtICVzIiwgbV9zcWxpdGVEQi0+
bGFzdEVycm9yKCksIG1fc3FsaXRlREItPmxhc3RFcnJvck1zZygpKSB9OworICAgICAgICAgICAg
cmV0dXJuIElEQkVycm9yIHsgVW5rbm93bkVycm9yLCBtYWtlU3RyaW5nKCJFcnJvciBjcmVhdGlu
ZyBCbG9iRmlsZXMgdGFibGUgKCIsIG1fc3FsaXRlREItPmxhc3RFcnJvcigpLCAiKSAtICIsIG1f
c3FsaXRlREItPmxhc3RFcnJvck1zZygpKSB9OwogCiAgICAgICAgIGZpbGVzVGFibGVTdGF0ZW1l
bnQgPSBibG9iRmlsZXNUYWJsZVNjaGVtYSgpOwogICAgIH0KQEAgLTMzMiw3ICszMzIsNyBAQCBJ
REJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmVuc3VyZVZhbGlkUmVjb3Jkc1RhYmxlKCkK
ICAgICAvLyBXaGV0aGVyIHRoZSB1cGRhdGVkIHJlY29yZHMgdGFibGUgYWxyZWFkeSBleGlzdGVk
IG9yIGlmIGl0IHdhcyBqdXN0IGNyZWF0ZWQgYW5kIHRoZSBkYXRhIG1pZ3JhdGVkIG92ZXIsCiAg
ICAgLy8gbWFrZSBzdXJlIHRoZSB1bmlxdWVuZXNzIGluZGV4IGV4aXN0cy4KICAgICBpZiAoIW1f
c3FsaXRlREItPmV4ZWN1dGVDb21tYW5kKCJDUkVBVEUgVU5JUVVFIElOREVYIElGIE5PVCBFWElT
VFMgUmVjb3Jkc0luZGV4IE9OIFJlY29yZHMgKG9iamVjdFN0b3JlSUQsIGtleSk7Il9zKSkKLSAg
ICAgICAgZXJyb3IgPSBJREJFcnJvciB7IFVua25vd25FcnJvciwgbWFrZVN0cmluZygiRXJyb3Ig
Y3JlYXRpbmcgUmVjb3Jkc0luZGV4IG9uIFJlY29yZHMgdGFibGUgKCVpKSAtICVzIiwgbV9zcWxp
dGVEQi0+bGFzdEVycm9yKCksIG1fc3FsaXRlREItPmxhc3RFcnJvck1zZygpKSB9OworICAgICAg
ICBlcnJvciA9IElEQkVycm9yIHsgVW5rbm93bkVycm9yLCBtYWtlU3RyaW5nKCJFcnJvciBjcmVh
dGluZyBSZWNvcmRzSW5kZXggb24gUmVjb3JkcyB0YWJsZSAoIiwgbV9zcWxpdGVEQi0+bGFzdEVy
cm9yKCksICIpIC0gIiwgbV9zcWxpdGVEQi0+bGFzdEVycm9yTXNnKCkpIH07CiAKICAgICByZXR1
cm4gZXJyb3I7CiB9CkBAIC0zNDUsNyArMzQ1LDcgQEAgSURCRXJyb3IgU1FMaXRlSURCQmFja2lu
Z1N0b3JlOjplbnN1cmVWYWxpZEluZGV4UmVjb3Jkc1RhYmxlKCkKICAgICBTdHJpbmcgdGFibGVT
dGF0ZW1lbnQgPSBtX3NxbGl0ZURCLT50YWJsZVNRTCgiSW5kZXhSZWNvcmRzIl9zKTsKICAgICBp
ZiAodGFibGVTdGF0ZW1lbnQuaXNFbXB0eSgpKSB7CiAgICAgICAgIGlmICghbV9zcWxpdGVEQi0+
ZXhlY3V0ZUNvbW1hbmQodjNJbmRleFJlY29yZHNUYWJsZVNjaGVtYSgpKSkKLSAgICAgICAgICAg
IHJldHVybiBJREJFcnJvciB7IFVua25vd25FcnJvciwgbWFrZVN0cmluZygiRXJyb3IgY3JlYXRp
bmcgSW5kZXhSZWNvcmRzIHRhYmxlICglaSkgLSAlcyIsIG1fc3FsaXRlREItPmxhc3RFcnJvcigp
LCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JNc2coKSkgfTsKKyAgICAgICAgICAgIHJldHVybiBJREJF
cnJvciB7IFVua25vd25FcnJvciwgbWFrZVN0cmluZygiRXJyb3IgY3JlYXRpbmcgSW5kZXhSZWNv
cmRzIHRhYmxlICgiLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3IoKSwgIikgLSAiLCBtX3NxbGl0ZURC
LT5sYXN0RXJyb3JNc2coKSkgfTsKIAogICAgICAgICByZXR1cm4gSURCRXJyb3IgeyB9OwogICAg
IH0KQEAgLTM2MSwxNiArMzYxLDE2IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6
ZW5zdXJlVmFsaWRJbmRleFJlY29yZHNUYWJsZSgpCiAKICAgICAvLyBDcmVhdGUgYSB0ZW1wb3Jh
cnkgdGFibGUgd2l0aCB0aGUgY29ycmVjdCBzY2hlbWEgYW5kIG1pZ3JhdGUgYWxsIGV4aXN0aW5n
IGNvbnRlbnQgb3Zlci4KICAgICBpZiAoIW1fc3FsaXRlREItPmV4ZWN1dGVDb21tYW5kKHYzSW5k
ZXhSZWNvcmRzVGFibGVTY2hlbWFUZW1wKCkpKQotICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBV
bmtub3duRXJyb3IsIG1ha2VTdHJpbmcoIkVycm9yIGNyZWF0aW5nIHRlbXBvcmFyeSBJbmRleFJl
Y29yZHMgdGFibGUgKCVpKSAtICVzIiwgbV9zcWxpdGVEQi0+bGFzdEVycm9yKCksIG1fc3FsaXRl
REItPmxhc3RFcnJvck1zZygpKSB9OworICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBVbmtub3du
RXJyb3IsIG1ha2VTdHJpbmcoIkVycm9yIGNyZWF0aW5nIHRlbXBvcmFyeSBJbmRleFJlY29yZHMg
dGFibGUgKCIsIG1fc3FsaXRlREItPmxhc3RFcnJvcigpLCAiKSAtICIsIG1fc3FsaXRlREItPmxh
c3RFcnJvck1zZygpKSB9OwogCiAgICAgaWYgKCFtX3NxbGl0ZURCLT5leGVjdXRlQ29tbWFuZCgi
SU5TRVJUIElOVE8gX1RlbXBfSW5kZXhSZWNvcmRzIFNFTEVDVCBJbmRleFJlY29yZHMuaW5kZXhJ
RCwgSW5kZXhSZWNvcmRzLm9iamVjdFN0b3JlSUQsIEluZGV4UmVjb3Jkcy5rZXksIEluZGV4UmVj
b3Jkcy52YWx1ZSwgUmVjb3Jkcy5yb3dpZCBGUk9NIEluZGV4UmVjb3JkcyBJTk5FUiBKT0lOIFJl
Y29yZHMgT04gUmVjb3Jkcy5rZXkgPSBJbmRleFJlY29yZHMudmFsdWUgQU5EIFJlY29yZHMub2Jq
ZWN0U3RvcmVJRCA9IEluZGV4UmVjb3Jkcy5vYmplY3RTdG9yZUlEIl9zKSkKLSAgICAgICAgcmV0
dXJuIElEQkVycm9yIHsgVW5rbm93bkVycm9yLCBtYWtlU3RyaW5nKCJFcnJvciBtaWdyYXRpbmcg
SW5kZXhSZWNvcmRzIHRhYmxlICglaSkgLSAlcyIsIG1fc3FsaXRlREItPmxhc3RFcnJvcigpLCBt
X3NxbGl0ZURCLT5sYXN0RXJyb3JNc2coKSkgfTsKKyAgICAgICAgcmV0dXJuIElEQkVycm9yIHsg
VW5rbm93bkVycm9yLCBtYWtlU3RyaW5nKCJFcnJvciBtaWdyYXRpbmcgSW5kZXhSZWNvcmRzIHRh
YmxlICgiLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3IoKSwgIikgLSAiLCBtX3NxbGl0ZURCLT5sYXN0
RXJyb3JNc2coKSkgfTsKIAogICAgIGlmICghbV9zcWxpdGVEQi0+ZXhlY3V0ZUNvbW1hbmQoIkRS
T1AgVEFCTEUgSW5kZXhSZWNvcmRzIl9zKSkKLSAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgVW5r
bm93bkVycm9yLCBtYWtlU3RyaW5nKCJFcnJvciBkcm9wcGluZyBJbmRleFJlY29yZHMgdGFibGUg
KCVpKSAtICVzIiwgbV9zcWxpdGVEQi0+bGFzdEVycm9yKCksIG1fc3FsaXRlREItPmxhc3RFcnJv
ck1zZygpKSB9OworICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBVbmtub3duRXJyb3IsIG1ha2VT
dHJpbmcoIkVycm9yIGRyb3BwaW5nIEluZGV4UmVjb3JkcyB0YWJsZSAoIiwgbV9zcWxpdGVEQi0+
bGFzdEVycm9yKCksICIpIC0gIiwgbV9zcWxpdGVEQi0+bGFzdEVycm9yTXNnKCkpIH07CiAKICAg
ICBpZiAoIW1fc3FsaXRlREItPmV4ZWN1dGVDb21tYW5kKCJBTFRFUiBUQUJMRSBfVGVtcF9JbmRl
eFJlY29yZHMgUkVOQU1FIFRPIEluZGV4UmVjb3JkcyJfcykpCi0gICAgICAgIHJldHVybiBJREJF
cnJvciB7IFVua25vd25FcnJvciwgbWFrZVN0cmluZygiRXJyb3IgcmVuYW1pbmcgdGVtcG9yYXJ5
IEluZGV4UmVjb3JkcyB0YWJsZSAoJWkpIC0gJXMiLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3IoKSwg
bV9zcWxpdGVEQi0+bGFzdEVycm9yTXNnKCkpIH07CisgICAgICAgIHJldHVybiBJREJFcnJvciB7
IFVua25vd25FcnJvciwgbWFrZVN0cmluZygiRXJyb3IgcmVuYW1pbmcgdGVtcG9yYXJ5IEluZGV4
UmVjb3JkcyB0YWJsZSAoIiwgbV9zcWxpdGVEQi0+bGFzdEVycm9yKCksICIpIC0gIiwgbV9zcWxp
dGVEQi0+bGFzdEVycm9yTXNnKCkpIH07CiAKICAgICB0cmFuc2FjdGlvbi5jb21taXQoKTsKIApA
QCAtMzg3LDEwICszODcsMTAgQEAgSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjplbnN1
cmVWYWxpZEluZGV4UmVjb3Jkc0luZGV4KCkKICAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgfTsK
ICAgICAKICAgICBpZiAoIW1fc3FsaXRlREItPmV4ZWN1dGVDb21tYW5kKCJEUk9QIElOREVYIElG
IEVYSVNUUyBJbmRleFJlY29yZHNJbmRleCJfcykpCi0gICAgICAgIHJldHVybiBJREJFcnJvciB7
IFVua25vd25FcnJvciwgbWFrZVN0cmluZygiRXJyb3IgZHJvcHBpbmcgSW5kZXhSZWNvcmRzSW5k
ZXggaW5kZXggKCVpKSAtICVzIiwgbV9zcWxpdGVEQi0+bGFzdEVycm9yKCksIG1fc3FsaXRlREIt
Pmxhc3RFcnJvck1zZygpKSB9OworICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBVbmtub3duRXJy
b3IsIG1ha2VTdHJpbmcoIkVycm9yIGRyb3BwaW5nIEluZGV4UmVjb3Jkc0luZGV4IGluZGV4ICgi
LCBtX3NxbGl0ZURCLT5sYXN0RXJyb3IoKSwgIikgLSAiLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JN
c2coKSkgfTsKIAogICAgIGlmICghbV9zcWxpdGVEQi0+ZXhlY3V0ZUNvbW1hbmQoSW5kZXhSZWNv
cmRzSW5kZXhTY2hlbWEpKQotICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBVbmtub3duRXJyb3Is
IG1ha2VTdHJpbmcoIkVycm9yIGNyZWF0aW5nIEluZGV4UmVjb3Jkc0luZGV4IGluZGV4ICglaSkg
LSAlcyIsIG1fc3FsaXRlREItPmxhc3RFcnJvcigpLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JNc2co
KSkgfTsKKyAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgVW5rbm93bkVycm9yLCBtYWtlU3RyaW5n
KCJFcnJvciBjcmVhdGluZyBJbmRleFJlY29yZHNJbmRleCBpbmRleCAoIiwgbV9zcWxpdGVEQi0+
bGFzdEVycm9yKCksICIpIC0gIiwgbV9zcWxpdGVEQi0+bGFzdEVycm9yTXNnKCkpIH07CiAKICAg
ICByZXR1cm4gSURCRXJyb3IgeyB9OwogfQpAQCAtNDA1LDEwICs0MDUsMTAgQEAgSURCRXJyb3Ig
U1FMaXRlSURCQmFja2luZ1N0b3JlOjplbnN1cmVWYWxpZEluZGV4UmVjb3Jkc1JlY29yZEluZGV4
KCkKICAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgfTsKICAgICAKICAgICBpZiAoIW1fc3FsaXRl
REItPmV4ZWN1dGVDb21tYW5kKCJEUk9QIElOREVYIElGIEVYSVNUUyBJbmRleFJlY29yZHNSZWNv
cmRJbmRleCJfcykpCi0gICAgICAgIHJldHVybiBJREJFcnJvciB7IFVua25vd25FcnJvciwgbWFr
ZVN0cmluZygiRXJyb3IgZHJvcHBpbmcgSW5kZXhSZWNvcmRzUmVjb3JkSW5kZXggaW5kZXggKCVp
KSAtICVzIiwgbV9zcWxpdGVEQi0+bGFzdEVycm9yKCksIG1fc3FsaXRlREItPmxhc3RFcnJvck1z
ZygpKSB9OworICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBVbmtub3duRXJyb3IsIG1ha2VTdHJp
bmcoIkVycm9yIGRyb3BwaW5nIEluZGV4UmVjb3Jkc1JlY29yZEluZGV4IGluZGV4ICgiLCBtX3Nx
bGl0ZURCLT5sYXN0RXJyb3IoKSwgIikgLSAiLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JNc2coKSkg
fTsKIAogICAgIGlmICghbV9zcWxpdGVEQi0+ZXhlY3V0ZUNvbW1hbmQodjFJbmRleFJlY29yZHNS
ZWNvcmRJbmRleFNjaGVtYSkpCi0gICAgICAgIHJldHVybiBJREJFcnJvciB7IFVua25vd25FcnJv
ciwgbWFrZVN0cmluZygiRXJyb3IgY3JlYXRpbmcgSW5kZXhSZWNvcmRzUmVjb3JkSW5kZXggaW5k
ZXggKCVpKSAtICVzIiwgbV9zcWxpdGVEQi0+bGFzdEVycm9yKCksIG1fc3FsaXRlREItPmxhc3RF
cnJvck1zZygpKSB9OworICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBVbmtub3duRXJyb3IsIG1h
a2VTdHJpbmcoIkVycm9yIGNyZWF0aW5nIEluZGV4UmVjb3Jkc1JlY29yZEluZGV4IGluZGV4ICgi
LCBtX3NxbGl0ZURCLT5sYXN0RXJyb3IoKSwgIikgLSAiLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JN
c2coKSkgfTsKIAogICAgIHJldHVybiBJREJFcnJvciB7IH07CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFi
YXNlLmNwcAppbmRleCBiMzc1MmIyZDBhMDkzNzhmZjFkOTliYWM5MzUwMGI0NzUzMTBlZDQyLi5i
ZTU3NjNlYTkzNTJlZGI2OTRkMmU2MGYyYjNmY2ViMjhmMTFlZDBhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJE
YXRhYmFzZS5jcHAKQEAgLTE5NSwxMSArMTk1LDEyIEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6
OnBlcmZvcm1DdXJyZW50T3Blbk9wZXJhdGlvbigpCiAgICAgICAgICAgICBtX2JhY2tpbmdTdG9y
ZSA9IG1fc2VydmVyLmNyZWF0ZUJhY2tpbmdTdG9yZShtX2lkZW50aWZpZXIpOwogICAgICAgICAg
ICAgSURCRGF0YWJhc2VJbmZvIGRhdGFiYXNlSW5mbzsKICAgICAgICAgICAgIGJhY2tpbmdTdG9y
ZU9wZW5FcnJvciA9IG1fYmFja2luZ1N0b3JlLT5nZXRPckVzdGFibGlzaERhdGFiYXNlSW5mbyhk
YXRhYmFzZUluZm8pOwotICAgICAgICAgICAgaWYgKGJhY2tpbmdTdG9yZU9wZW5FcnJvci5pc051
bGwoKSkgewotICAgICAgICAgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGdldCBkYXRhYmFz
ZSBpbmZvICclcyciLCBiYWNraW5nU3RvcmVPcGVuRXJyb3IubWVzc2FnZSgpLnV0ZjgoKS5kYXRh
KCkpOworICAgICAgICAgICAgaWYgKGJhY2tpbmdTdG9yZU9wZW5FcnJvci5pc051bGwoKSkKICAg
ICAgICAgICAgICAgICBtX2RhdGFiYXNlSW5mbyA9IG1ha2VVbmlxdWU8SURCRGF0YWJhc2VJbmZv
PihkYXRhYmFzZUluZm8pOwotICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBlbHNlIHsK
KyAgICAgICAgICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBnZXQgZGF0YWJhc2UgaW5mbyAn
JXMnIiwgYmFja2luZ1N0b3JlT3BlbkVycm9yLm1lc3NhZ2UoKS51dGY4KCkuZGF0YSgpKTsKICAg
ICAgICAgICAgICAgICBtX2JhY2tpbmdTdG9yZSA9IG51bGxwdHI7CisgICAgICAgICAgICB9CiAg
ICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Nx
bC9TUUxpdGVEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRl
RGF0YWJhc2UuY3BwCmluZGV4IDU0NzZhMTQ4NzQ1YWYzNTE2YmNiNzU0ODVlNDZkMGYzMmEzYjk4
ZjUuLjgwN2RkMzFhNjNkYjZlZmE4NzFmMzRkZWQwZGIyNjg0MDg3MWI1ZDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcApAQCAtMTE5LDggKzEx
OSw3IEBAIGJvb2wgU1FMaXRlRGF0YWJhc2U6Om9wZW4oY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwg
T3Blbk1vZGUgb3Blbk1vZGUpCiAgICAgICAgICAgICBtX29wZW5FcnJvck1lc3NhZ2UgPSBtX2Ri
ID8gc3FsaXRlM19lcnJtc2cobV9kYikgOiAic3FsaXRlX29wZW4gcmV0dXJuZWQgbnVsbCI7CiAg
ICAgICAgICAgICBMT0dfRVJST1IoIlNRTGl0ZSBkYXRhYmFzZSBmYWlsZWQgdG8gbG9hZCBmcm9t
ICVzXG5DYXVzZSAtICVzIiwgZmlsZW5hbWUuYXNjaWkoKS5kYXRhKCksCiAgICAgICAgICAgICAg
ICAgbV9vcGVuRXJyb3JNZXNzYWdlLmRhdGEoKSk7Ci0gICAgICAgICAgICBzcWxpdGUzX2Nsb3Nl
KG1fZGIpOwotICAgICAgICAgICAgbV9kYiA9IDA7CisgICAgICAgICAgICBjbG9zZShTaG91bGRT
ZXRFcnJvclN0YXRlOjpObyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0K
ICAgICB9CkBAIC0xMzEsOCArMTMwLDcgQEAgYm9vbCBTUUxpdGVEYXRhYmFzZTo6b3Blbihjb25z
dCBTdHJpbmcmIGZpbGVuYW1lLCBPcGVuTW9kZSBvcGVuTW9kZSkKICAgICBpZiAobV9vcGVuRXJy
b3IgIT0gU1FMSVRFX09LKSB7CiAgICAgICAgIG1fb3BlbkVycm9yTWVzc2FnZSA9IHNxbGl0ZTNf
ZXJybXNnKG1fZGIpOwogICAgICAgICBMT0dfRVJST1IoIlNRTGl0ZSBkYXRhYmFzZSBlcnJvciB3
aGVuIGVuYWJsaW5nIGV4dGVuZGVkIGVycm9ycyAtICVzIiwgbV9vcGVuRXJyb3JNZXNzYWdlLmRh
dGEoKSk7Ci0gICAgICAgIHNxbGl0ZTNfY2xvc2UobV9kYik7Ci0gICAgICAgIG1fZGIgPSAwOwor
ICAgICAgICBjbG9zZShTaG91bGRTZXRFcnJvclN0YXRlOjpObyk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKQEAgLTIyMCw3ICsyMTgsNyBAQCB2b2lkIFNRTGl0ZURhdGFiYXNlOjp1
c2VXQUxKb3VybmFsTW9kZSgpCiAgICAgfQogfQogCi12b2lkIFNRTGl0ZURhdGFiYXNlOjpjbG9z
ZSgpCit2b2lkIFNRTGl0ZURhdGFiYXNlOjpjbG9zZShTaG91bGRTZXRFcnJvclN0YXRlIHNob3Vs
ZFNldEVycm9yU3RhdGUpCiB7CiAgICAgaWYgKG1fZGIpIHsKICAgICAgICAgQVNTRVJUX1dJVEhf
TUVTU0FHRSghbV9zdGF0ZW1lbnRDb3VudCwgIkFsbCBTUUxpdGVUcmFuc2FjdGlvbiBvYmplY3Rz
IHNob3VsZCBiZSBkZXN0cm95ZWQgYmVmb3JlIGNsb3NpbmcgdGhlIGRhdGFiYXNlIik7CkBAIC0y
MzIsMTYgKzIzMCwxOSBAQCB2b2lkIFNRTGl0ZURhdGFiYXNlOjpjbG9zZSgpCiAgICAgICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgbV9kYXRhYmFzZUNsb3NpbmdNdXRleCB9OwogICAgICAgICAgICAg
bV9kYiA9IDA7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKG1fdXNlV0FMKSB7CisKKyAgICAgICAg
aWYgKG1fdXNlV0FMKQogICAgICAgICAgICAgU1FMaXRlVHJhbnNhY3Rpb25JblByb2dyZXNzQXV0
b0NvdW50ZXIgdHJhbnNhY3Rpb25Db3VudGVyOwotICAgICAgICAgICAgc3FsaXRlM19jbG9zZShk
Yik7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgc3FsaXRlM19jbG9zZShkYik7CisKKyAg
ICAgICAgaWYgKHNxbGl0ZTNfY2xvc2UoZGIpICE9IFNRTElURV9PSykKKyAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKFNRTERhdGFiYXNlLCAiU1FMaXRlRGF0YWJhc2U6OmNsb3NlOiBGYWls
ZWQgdG8gY2xvc2UgZGF0YWJhc2UgKCVkKSAtICVzIiwgbGFzdEVycm9yKCksIGxhc3RFcnJvck1z
ZygpKTsKICAgICB9CiAKLSAgICBtX29wZW5pbmdUaHJlYWQgPSBudWxscHRyOwotICAgIG1fb3Bl
bkVycm9yID0gU1FMSVRFX0VSUk9SOwotICAgIG1fb3BlbkVycm9yTWVzc2FnZSA9IENTdHJpbmco
KTsKKyAgICBpZiAoc2hvdWxkU2V0RXJyb3JTdGF0ZSA9PSBTaG91bGRTZXRFcnJvclN0YXRlOjpZ
ZXMpIHsKKyAgICAgICAgbV9vcGVuaW5nVGhyZWFkID0gbnVsbHB0cjsKKyAgICAgICAgbV9vcGVu
RXJyb3IgPSBTUUxJVEVfRVJST1I7CisgICAgICAgIG1fb3BlbkVycm9yTWVzc2FnZSA9IENTdHJp
bmcoKTsKKyAgICB9CiB9CiAKIHZvaWQgU1FMaXRlRGF0YWJhc2U6Om92ZXJyaWRlVW5hdXRob3Jp
emVkRnVuY3Rpb25zKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9T
UUxpdGVEYXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFi
YXNlLmgKaW5kZXggYWExOWNiMTFmZjhmZDdlOWY4YjVkMmUxMjFhNDI2NjAwNGE0YjhhOS4uMWIw
ZmMwZDk4ZjI2ODc1Njg5NjM1Y2IwMzY5MmEwNTA1ZWJjNTAxNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgKQEAgLTU5LDcgKzU5LDggQEAgcHVibGlj
OgogICAgIGVudW0gY2xhc3MgT3Blbk1vZGUgeyBSZWFkT25seSwgUmVhZFdyaXRlLCBSZWFkV3Jp
dGVDcmVhdGUgfTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIG9wZW4oY29uc3QgU3RyaW5nJiBm
aWxlbmFtZSwgT3Blbk1vZGUgPSBPcGVuTW9kZTo6UmVhZFdyaXRlQ3JlYXRlKTsKICAgICBib29s
IGlzT3BlbigpIGNvbnN0IHsgcmV0dXJuIG1fZGI7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGNsb3NlKCk7CisgICAgZW51bSBjbGFzcyBTaG91bGRTZXRFcnJvclN0YXRlIHsgTm8sIFllcyB9
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xvc2UoU2hvdWxkU2V0RXJyb3JTdGF0ZSA9IFNo
b3VsZFNldEVycm9yU3RhdGU6Olllcyk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGV4ZWN1
dGVDb21tYW5kU2xvdyhjb25zdCBTdHJpbmcmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGV4
ZWN1dGVDb21tYW5kKEFTQ0lJTGl0ZXJhbCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429842</attachid>
            <date>2021-05-26 21:36:44 -0700</date>
            <delta_ts>2021-05-26 22:13:25 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-226290-20210526213643.patch</filename>
            <type>text/plain</type>
            <size>15412</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI1YWE5NjI3ZThjNjhk
MDg4MzkwZWY0NTM0NmNhYTMwNzljODI3NS4uYmNhOWQ4YjU3MDI0Yjc4N2MyZDljZmY3YTE2M2Rj
MjVkNjRhNWNmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTA1LTI2ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBsb2dnaW5nIGZvciB3
aGVuIFNRTGl0ZURhdGFiYXNlIGZhaWxzIHRvIGNsb3NlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYyOTAKKworICAgICAgICBSZXZpZXdlZCBieSBD
aHJpcyBEdW1lei4KKworICAgICAgICBBbHNvIGZpeCBzb21lIGxvZ2dpbmcgZXJyb3IgaW4gSURC
LgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdT
dG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OmNyZWF0ZU9yTWlncmF0ZVJl
Y29yZHNUYWJsZUlmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FM
aXRlSURCQmFja2luZ1N0b3JlOjplbnN1cmVWYWxpZEJsb2JUYWJsZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmVuc3VyZVZhbGlkUmVjb3Jk
c1RhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0
b3JlOjplbnN1cmVWYWxpZEluZGV4UmVjb3Jkc1RhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjplbnN1cmVWYWxpZEluZGV4UmVjb3Jkc0lu
ZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3Jl
OjplbnN1cmVWYWxpZEluZGV4UmVjb3Jkc1JlY29yZEluZGV4KToKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUN1cnJlbnRPcGVuT3BlcmF0
aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6Om9wZW4pOgorICAgICAgICAoV2ViQ29yZTo6U1FM
aXRlRGF0YWJhc2U6OmNsb3NlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJh
c2UuaDoKKwogMjAyMS0wNS0yNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIExldmVyYWdlIHRoZSBuZXcgVmVjdG9yKGNvbnN0IFQqLCBzaXplX3QpIGNvbnN0cnVj
dG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
U1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCmluZGV4IDQ2NTFkYTcxMmE2MjQz
MDUyNTdlZWFkOTViNGQwMmYyYTdlNzkzZmEuLjI4Yjk4Yzk3NmZjNmU5Y2EzZDBjYWVhZDU2ZTI5
NTMwOTI2MjA4NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCkBAIC0yNTcs
NyArMjU3LDcgQEAgc3RhdGljIElEQkVycm9yIGNyZWF0ZU9yTWlncmF0ZVJlY29yZHNUYWJsZUlm
TmVjZXNzYXJ5KFNRTGl0ZURhdGFiYXNlJiBkYXRhYmFzZSkKICAgICBTdHJpbmcgdGFibGVTdGF0
ZW1lbnQgPSBkYXRhYmFzZS50YWJsZVNRTCgiUmVjb3JkcyJfcyk7CiAgICAgaWYgKHRhYmxlU3Rh
dGVtZW50LmlzRW1wdHkoKSkgewogICAgICAgICBpZiAoIWRhdGFiYXNlLmV4ZWN1dGVDb21tYW5k
KHYzUmVjb3Jkc1RhYmxlU2NoZW1hKCkpKQotICAgICAgICAgICAgcmV0dXJuIElEQkVycm9yIHsg
VW5rbm93bkVycm9yLCBtYWtlU3RyaW5nKCJFcnJvciBjcmVhdGluZyBuZXcgUmVjb3JkcyB0YWJs
ZSAoJWkpIC0gJXMiLCBkYXRhYmFzZS5sYXN0RXJyb3IoKSwgZGF0YWJhc2UubGFzdEVycm9yTXNn
KCkpIH07CisgICAgICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBVbmtub3duRXJyb3IsIG1ha2VT
dHJpbmcoIkVycm9yIGNyZWF0aW5nIFJlY29yZHMgdGFibGUgKCIsIGRhdGFiYXNlLmxhc3RFcnJv
cigpLCAiKSAtICIsIGRhdGFiYXNlLmxhc3RFcnJvck1zZygpKSB9OwogCiAgICAgICAgIHJldHVy
biBJREJFcnJvciB7IH07CiAgICAgfQpAQCAtMjc3LDE2ICsyNzcsMTYgQEAgc3RhdGljIElEQkVy
cm9yIGNyZWF0ZU9yTWlncmF0ZVJlY29yZHNUYWJsZUlmTmVjZXNzYXJ5KFNRTGl0ZURhdGFiYXNl
JiBkYXRhYmFzZSkKIAogICAgIC8vIENyZWF0ZSBhIHRlbXBvcmFyeSB0YWJsZSB3aXRoIHRoZSBj
b3JyZWN0IHNjaGVtYSBhbmQgbWlncmF0ZSBhbGwgZXhpc3RpbmcgY29udGVudCBvdmVyLgogICAg
IGlmICghZGF0YWJhc2UuZXhlY3V0ZUNvbW1hbmQodjNSZWNvcmRzVGFibGVTY2hlbWFUZW1wKCkp
KQotICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBVbmtub3duRXJyb3IsIG1ha2VTdHJpbmcoIkVy
cm9yIGNyZWF0aW5nIHRlbXBvcmFyeSBSZWNvcmRzIHRhYmxlICglaSkgLSAlcyIsIGRhdGFiYXNl
Lmxhc3RFcnJvcigpLCBkYXRhYmFzZS5sYXN0RXJyb3JNc2coKSkgfTsKKyAgICAgICAgcmV0dXJu
IElEQkVycm9yIHsgVW5rbm93bkVycm9yLCBtYWtlU3RyaW5nKCJFcnJvciBjcmVhdGluZyB0ZW1w
b3JhcnkgUmVjb3JkcyB0YWJsZSAoIiwgZGF0YWJhc2UubGFzdEVycm9yKCksICIpIC0gIiwgZGF0
YWJhc2UubGFzdEVycm9yTXNnKCkpIH07CiAKICAgICBpZiAoIWRhdGFiYXNlLmV4ZWN1dGVDb21t
YW5kKCJJTlNFUlQgSU5UTyBfVGVtcF9SZWNvcmRzIChvYmplY3RTdG9yZUlELCBrZXksIHZhbHVl
KSBTRUxFQ1Qgb2JqZWN0U3RvcmVJRCwgQ0FTVChrZXkgQVMgVEVYVCksIHZhbHVlIEZST00gUmVj
b3JkcyJfcykpCi0gICAgICAgIHJldHVybiBJREJFcnJvciB7IFVua25vd25FcnJvciwgbWFrZVN0
cmluZygiRXJyb3IgbWlncmF0aW5nIFJlY29yZHMgdGFibGUgKCVpKSAtICVzIiwgZGF0YWJhc2Uu
bGFzdEVycm9yKCksIGRhdGFiYXNlLmxhc3RFcnJvck1zZygpKSB9OworICAgICAgICByZXR1cm4g
SURCRXJyb3IgeyBVbmtub3duRXJyb3IsIG1ha2VTdHJpbmcoIkVycm9yIG1pZ3JhdGluZyBSZWNv
cmRzIHRhYmxlICgiLCBkYXRhYmFzZS5sYXN0RXJyb3IoKSwgIikgLSAiLCBkYXRhYmFzZS5sYXN0
RXJyb3JNc2coKSkgfTsKIAogICAgIGlmICghZGF0YWJhc2UuZXhlY3V0ZUNvbW1hbmQoIkRST1Ag
VEFCTEUgUmVjb3JkcyJfcykpCi0gICAgICAgIHJldHVybiBJREJFcnJvciB7IFVua25vd25FcnJv
ciwgbWFrZVN0cmluZygiRXJyb3IgZHJvcHBpbmcgUmVjb3JkcyB0YWJsZSAoJWkpIC0gJXMiLCBk
YXRhYmFzZS5sYXN0RXJyb3IoKSwgZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpIH07CisgICAgICAg
IHJldHVybiBJREJFcnJvciB7IFVua25vd25FcnJvciwgbWFrZVN0cmluZygiRXJyb3IgZHJvcHBp
bmcgUmVjb3JkcyB0YWJsZSAoIiwgZGF0YWJhc2UubGFzdEVycm9yKCksICIpIC0gIiwgZGF0YWJh
c2UubGFzdEVycm9yTXNnKCkpIH07CiAKICAgICBpZiAoIWRhdGFiYXNlLmV4ZWN1dGVDb21tYW5k
KCJBTFRFUiBUQUJMRSBfVGVtcF9SZWNvcmRzIFJFTkFNRSBUTyBSZWNvcmRzIl9zKSkKLSAgICAg
ICAgcmV0dXJuIElEQkVycm9yIHsgVW5rbm93bkVycm9yLCBtYWtlU3RyaW5nKCJFcnJvciByZW5h
bWluZyB0ZW1wb3JhcnkgUmVjb3JkcyB0YWJsZSAoJWkpIC0gJXMiLCBkYXRhYmFzZS5sYXN0RXJy
b3IoKSwgZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpIH07CisgICAgICAgIHJldHVybiBJREJFcnJv
ciB7IFVua25vd25FcnJvciwgbWFrZVN0cmluZygiRXJyb3IgcmVuYW1pbmcgdGVtcG9yYXJ5IFJl
Y29yZHMgdGFibGUgKCIsIGRhdGFiYXNlLmxhc3RFcnJvcigpLCAiKSAtICIsIGRhdGFiYXNlLmxh
c3RFcnJvck1zZygpKSB9OwogCiAgICAgdHJhbnNhY3Rpb24uY29tbWl0KCk7CiAKQEAgLTMwMSw3
ICszMDEsNyBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmVuc3VyZVZhbGlkQmxv
YlRhYmxlcygpCiAgICAgU3RyaW5nIHJlY29yZHNUYWJsZVN0YXRlbWVudCA9IG1fc3FsaXRlREIt
PnRhYmxlU1FMKCJCbG9iUmVjb3JkcyJfcyk7CiAgICAgaWYgKHJlY29yZHNUYWJsZVN0YXRlbWVu
dC5pc0VtcHR5KCkpIHsKICAgICAgICAgaWYgKCFtX3NxbGl0ZURCLT5leGVjdXRlQ29tbWFuZChi
bG9iUmVjb3Jkc1RhYmxlU2NoZW1hKCkpKQotICAgICAgICAgICAgcmV0dXJuIElEQkVycm9yIHsg
VW5rbm93bkVycm9yLCBtYWtlU3RyaW5nKCJFcnJvciBjcmVhdGluZyBCbG9iUmVjb3JkcyB0YWJs
ZSAoJWkpIC0gJXMiLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3IoKSwgbV9zcWxpdGVEQi0+bGFzdEVy
cm9yTXNnKCkpIH07CisgICAgICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBVbmtub3duRXJyb3Is
IG1ha2VTdHJpbmcoIkVycm9yIGNyZWF0aW5nIEJsb2JSZWNvcmRzIHRhYmxlICgiLCBtX3NxbGl0
ZURCLT5sYXN0RXJyb3IoKSwgIikgLSAiLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JNc2coKSkgfTsK
IAogICAgICAgICByZWNvcmRzVGFibGVTdGF0ZW1lbnQgPSBibG9iUmVjb3Jkc1RhYmxlU2NoZW1h
KCk7CiAgICAgfQpAQCAtMzExLDcgKzMxMSw3IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdT
dG9yZTo6ZW5zdXJlVmFsaWRCbG9iVGFibGVzKCkKICAgICBTdHJpbmcgZmlsZXNUYWJsZVN0YXRl
bWVudCA9IG1fc3FsaXRlREItPnRhYmxlU1FMKCJCbG9iRmlsZXMiX3MpOwogICAgIGlmIChmaWxl
c1RhYmxlU3RhdGVtZW50LmlzRW1wdHkoKSkgewogICAgICAgICBpZiAoIW1fc3FsaXRlREItPmV4
ZWN1dGVDb21tYW5kKGJsb2JGaWxlc1RhYmxlU2NoZW1hKCkpKQotICAgICAgICAgICAgcmV0dXJu
IElEQkVycm9yIHsgVW5rbm93bkVycm9yLCBtYWtlU3RyaW5nKCJFcnJvciBjcmVhdGluZyBCbG9i
RmlsZXMgdGFibGUgKCVpKSAtICVzIiwgbV9zcWxpdGVEQi0+bGFzdEVycm9yKCksIG1fc3FsaXRl
REItPmxhc3RFcnJvck1zZygpKSB9OworICAgICAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgVW5r
bm93bkVycm9yLCBtYWtlU3RyaW5nKCJFcnJvciBjcmVhdGluZyBCbG9iRmlsZXMgdGFibGUgKCIs
IG1fc3FsaXRlREItPmxhc3RFcnJvcigpLCAiKSAtICIsIG1fc3FsaXRlREItPmxhc3RFcnJvck1z
ZygpKSB9OwogCiAgICAgICAgIGZpbGVzVGFibGVTdGF0ZW1lbnQgPSBibG9iRmlsZXNUYWJsZVNj
aGVtYSgpOwogICAgIH0KQEAgLTMzMiw3ICszMzIsNyBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNr
aW5nU3RvcmU6OmVuc3VyZVZhbGlkUmVjb3Jkc1RhYmxlKCkKICAgICAvLyBXaGV0aGVyIHRoZSB1
cGRhdGVkIHJlY29yZHMgdGFibGUgYWxyZWFkeSBleGlzdGVkIG9yIGlmIGl0IHdhcyBqdXN0IGNy
ZWF0ZWQgYW5kIHRoZSBkYXRhIG1pZ3JhdGVkIG92ZXIsCiAgICAgLy8gbWFrZSBzdXJlIHRoZSB1
bmlxdWVuZXNzIGluZGV4IGV4aXN0cy4KICAgICBpZiAoIW1fc3FsaXRlREItPmV4ZWN1dGVDb21t
YW5kKCJDUkVBVEUgVU5JUVVFIElOREVYIElGIE5PVCBFWElTVFMgUmVjb3Jkc0luZGV4IE9OIFJl
Y29yZHMgKG9iamVjdFN0b3JlSUQsIGtleSk7Il9zKSkKLSAgICAgICAgZXJyb3IgPSBJREJFcnJv
ciB7IFVua25vd25FcnJvciwgbWFrZVN0cmluZygiRXJyb3IgY3JlYXRpbmcgUmVjb3Jkc0luZGV4
IG9uIFJlY29yZHMgdGFibGUgKCVpKSAtICVzIiwgbV9zcWxpdGVEQi0+bGFzdEVycm9yKCksIG1f
c3FsaXRlREItPmxhc3RFcnJvck1zZygpKSB9OworICAgICAgICBlcnJvciA9IElEQkVycm9yIHsg
VW5rbm93bkVycm9yLCBtYWtlU3RyaW5nKCJFcnJvciBjcmVhdGluZyBSZWNvcmRzSW5kZXggb24g
UmVjb3JkcyB0YWJsZSAoIiwgbV9zcWxpdGVEQi0+bGFzdEVycm9yKCksICIpIC0gIiwgbV9zcWxp
dGVEQi0+bGFzdEVycm9yTXNnKCkpIH07CiAKICAgICByZXR1cm4gZXJyb3I7CiB9CkBAIC0zNDUs
NyArMzQ1LDcgQEAgSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjplbnN1cmVWYWxpZElu
ZGV4UmVjb3Jkc1RhYmxlKCkKICAgICBTdHJpbmcgdGFibGVTdGF0ZW1lbnQgPSBtX3NxbGl0ZURC
LT50YWJsZVNRTCgiSW5kZXhSZWNvcmRzIl9zKTsKICAgICBpZiAodGFibGVTdGF0ZW1lbnQuaXNF
bXB0eSgpKSB7CiAgICAgICAgIGlmICghbV9zcWxpdGVEQi0+ZXhlY3V0ZUNvbW1hbmQodjNJbmRl
eFJlY29yZHNUYWJsZVNjaGVtYSgpKSkKLSAgICAgICAgICAgIHJldHVybiBJREJFcnJvciB7IFVu
a25vd25FcnJvciwgbWFrZVN0cmluZygiRXJyb3IgY3JlYXRpbmcgSW5kZXhSZWNvcmRzIHRhYmxl
ICglaSkgLSAlcyIsIG1fc3FsaXRlREItPmxhc3RFcnJvcigpLCBtX3NxbGl0ZURCLT5sYXN0RXJy
b3JNc2coKSkgfTsKKyAgICAgICAgICAgIHJldHVybiBJREJFcnJvciB7IFVua25vd25FcnJvciwg
bWFrZVN0cmluZygiRXJyb3IgY3JlYXRpbmcgSW5kZXhSZWNvcmRzIHRhYmxlICgiLCBtX3NxbGl0
ZURCLT5sYXN0RXJyb3IoKSwgIikgLSAiLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JNc2coKSkgfTsK
IAogICAgICAgICByZXR1cm4gSURCRXJyb3IgeyB9OwogICAgIH0KQEAgLTM2MSwxNiArMzYxLDE2
IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZW5zdXJlVmFsaWRJbmRleFJlY29y
ZHNUYWJsZSgpCiAKICAgICAvLyBDcmVhdGUgYSB0ZW1wb3JhcnkgdGFibGUgd2l0aCB0aGUgY29y
cmVjdCBzY2hlbWEgYW5kIG1pZ3JhdGUgYWxsIGV4aXN0aW5nIGNvbnRlbnQgb3Zlci4KICAgICBp
ZiAoIW1fc3FsaXRlREItPmV4ZWN1dGVDb21tYW5kKHYzSW5kZXhSZWNvcmRzVGFibGVTY2hlbWFU
ZW1wKCkpKQotICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBVbmtub3duRXJyb3IsIG1ha2VTdHJp
bmcoIkVycm9yIGNyZWF0aW5nIHRlbXBvcmFyeSBJbmRleFJlY29yZHMgdGFibGUgKCVpKSAtICVz
IiwgbV9zcWxpdGVEQi0+bGFzdEVycm9yKCksIG1fc3FsaXRlREItPmxhc3RFcnJvck1zZygpKSB9
OworICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBVbmtub3duRXJyb3IsIG1ha2VTdHJpbmcoIkVy
cm9yIGNyZWF0aW5nIHRlbXBvcmFyeSBJbmRleFJlY29yZHMgdGFibGUgKCIsIG1fc3FsaXRlREIt
Pmxhc3RFcnJvcigpLCAiKSAtICIsIG1fc3FsaXRlREItPmxhc3RFcnJvck1zZygpKSB9OwogCiAg
ICAgaWYgKCFtX3NxbGl0ZURCLT5leGVjdXRlQ29tbWFuZCgiSU5TRVJUIElOVE8gX1RlbXBfSW5k
ZXhSZWNvcmRzIFNFTEVDVCBJbmRleFJlY29yZHMuaW5kZXhJRCwgSW5kZXhSZWNvcmRzLm9iamVj
dFN0b3JlSUQsIEluZGV4UmVjb3Jkcy5rZXksIEluZGV4UmVjb3Jkcy52YWx1ZSwgUmVjb3Jkcy5y
b3dpZCBGUk9NIEluZGV4UmVjb3JkcyBJTk5FUiBKT0lOIFJlY29yZHMgT04gUmVjb3Jkcy5rZXkg
PSBJbmRleFJlY29yZHMudmFsdWUgQU5EIFJlY29yZHMub2JqZWN0U3RvcmVJRCA9IEluZGV4UmVj
b3Jkcy5vYmplY3RTdG9yZUlEIl9zKSkKLSAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgVW5rbm93
bkVycm9yLCBtYWtlU3RyaW5nKCJFcnJvciBtaWdyYXRpbmcgSW5kZXhSZWNvcmRzIHRhYmxlICgl
aSkgLSAlcyIsIG1fc3FsaXRlREItPmxhc3RFcnJvcigpLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JN
c2coKSkgfTsKKyAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgVW5rbm93bkVycm9yLCBtYWtlU3Ry
aW5nKCJFcnJvciBtaWdyYXRpbmcgSW5kZXhSZWNvcmRzIHRhYmxlICgiLCBtX3NxbGl0ZURCLT5s
YXN0RXJyb3IoKSwgIikgLSAiLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JNc2coKSkgfTsKIAogICAg
IGlmICghbV9zcWxpdGVEQi0+ZXhlY3V0ZUNvbW1hbmQoIkRST1AgVEFCTEUgSW5kZXhSZWNvcmRz
Il9zKSkKLSAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgVW5rbm93bkVycm9yLCBtYWtlU3RyaW5n
KCJFcnJvciBkcm9wcGluZyBJbmRleFJlY29yZHMgdGFibGUgKCVpKSAtICVzIiwgbV9zcWxpdGVE
Qi0+bGFzdEVycm9yKCksIG1fc3FsaXRlREItPmxhc3RFcnJvck1zZygpKSB9OworICAgICAgICBy
ZXR1cm4gSURCRXJyb3IgeyBVbmtub3duRXJyb3IsIG1ha2VTdHJpbmcoIkVycm9yIGRyb3BwaW5n
IEluZGV4UmVjb3JkcyB0YWJsZSAoIiwgbV9zcWxpdGVEQi0+bGFzdEVycm9yKCksICIpIC0gIiwg
bV9zcWxpdGVEQi0+bGFzdEVycm9yTXNnKCkpIH07CiAKICAgICBpZiAoIW1fc3FsaXRlREItPmV4
ZWN1dGVDb21tYW5kKCJBTFRFUiBUQUJMRSBfVGVtcF9JbmRleFJlY29yZHMgUkVOQU1FIFRPIElu
ZGV4UmVjb3JkcyJfcykpCi0gICAgICAgIHJldHVybiBJREJFcnJvciB7IFVua25vd25FcnJvciwg
bWFrZVN0cmluZygiRXJyb3IgcmVuYW1pbmcgdGVtcG9yYXJ5IEluZGV4UmVjb3JkcyB0YWJsZSAo
JWkpIC0gJXMiLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3IoKSwgbV9zcWxpdGVEQi0+bGFzdEVycm9y
TXNnKCkpIH07CisgICAgICAgIHJldHVybiBJREJFcnJvciB7IFVua25vd25FcnJvciwgbWFrZVN0
cmluZygiRXJyb3IgcmVuYW1pbmcgdGVtcG9yYXJ5IEluZGV4UmVjb3JkcyB0YWJsZSAoIiwgbV9z
cWxpdGVEQi0+bGFzdEVycm9yKCksICIpIC0gIiwgbV9zcWxpdGVEQi0+bGFzdEVycm9yTXNnKCkp
IH07CiAKICAgICB0cmFuc2FjdGlvbi5jb21taXQoKTsKIApAQCAtMzg3LDEwICszODcsMTAgQEAg
SURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjplbnN1cmVWYWxpZEluZGV4UmVjb3Jkc0lu
ZGV4KCkKICAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgfTsKICAgICAKICAgICBpZiAoIW1fc3Fs
aXRlREItPmV4ZWN1dGVDb21tYW5kKCJEUk9QIElOREVYIElGIEVYSVNUUyBJbmRleFJlY29yZHNJ
bmRleCJfcykpCi0gICAgICAgIHJldHVybiBJREJFcnJvciB7IFVua25vd25FcnJvciwgbWFrZVN0
cmluZygiRXJyb3IgZHJvcHBpbmcgSW5kZXhSZWNvcmRzSW5kZXggaW5kZXggKCVpKSAtICVzIiwg
bV9zcWxpdGVEQi0+bGFzdEVycm9yKCksIG1fc3FsaXRlREItPmxhc3RFcnJvck1zZygpKSB9Owor
ICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBVbmtub3duRXJyb3IsIG1ha2VTdHJpbmcoIkVycm9y
IGRyb3BwaW5nIEluZGV4UmVjb3Jkc0luZGV4IGluZGV4ICgiLCBtX3NxbGl0ZURCLT5sYXN0RXJy
b3IoKSwgIikgLSAiLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JNc2coKSkgfTsKIAogICAgIGlmICgh
bV9zcWxpdGVEQi0+ZXhlY3V0ZUNvbW1hbmQoSW5kZXhSZWNvcmRzSW5kZXhTY2hlbWEpKQotICAg
ICAgICByZXR1cm4gSURCRXJyb3IgeyBVbmtub3duRXJyb3IsIG1ha2VTdHJpbmcoIkVycm9yIGNy
ZWF0aW5nIEluZGV4UmVjb3Jkc0luZGV4IGluZGV4ICglaSkgLSAlcyIsIG1fc3FsaXRlREItPmxh
c3RFcnJvcigpLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JNc2coKSkgfTsKKyAgICAgICAgcmV0dXJu
IElEQkVycm9yIHsgVW5rbm93bkVycm9yLCBtYWtlU3RyaW5nKCJFcnJvciBjcmVhdGluZyBJbmRl
eFJlY29yZHNJbmRleCBpbmRleCAoIiwgbV9zcWxpdGVEQi0+bGFzdEVycm9yKCksICIpIC0gIiwg
bV9zcWxpdGVEQi0+bGFzdEVycm9yTXNnKCkpIH07CiAKICAgICByZXR1cm4gSURCRXJyb3IgeyB9
OwogfQpAQCAtNDA1LDEwICs0MDUsMTAgQEAgSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3Jl
OjplbnN1cmVWYWxpZEluZGV4UmVjb3Jkc1JlY29yZEluZGV4KCkKICAgICAgICAgcmV0dXJuIElE
QkVycm9yIHsgfTsKICAgICAKICAgICBpZiAoIW1fc3FsaXRlREItPmV4ZWN1dGVDb21tYW5kKCJE
Uk9QIElOREVYIElGIEVYSVNUUyBJbmRleFJlY29yZHNSZWNvcmRJbmRleCJfcykpCi0gICAgICAg
IHJldHVybiBJREJFcnJvciB7IFVua25vd25FcnJvciwgbWFrZVN0cmluZygiRXJyb3IgZHJvcHBp
bmcgSW5kZXhSZWNvcmRzUmVjb3JkSW5kZXggaW5kZXggKCVpKSAtICVzIiwgbV9zcWxpdGVEQi0+
bGFzdEVycm9yKCksIG1fc3FsaXRlREItPmxhc3RFcnJvck1zZygpKSB9OworICAgICAgICByZXR1
cm4gSURCRXJyb3IgeyBVbmtub3duRXJyb3IsIG1ha2VTdHJpbmcoIkVycm9yIGRyb3BwaW5nIElu
ZGV4UmVjb3Jkc1JlY29yZEluZGV4IGluZGV4ICgiLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3IoKSwg
IikgLSAiLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JNc2coKSkgfTsKIAogICAgIGlmICghbV9zcWxp
dGVEQi0+ZXhlY3V0ZUNvbW1hbmQodjFJbmRleFJlY29yZHNSZWNvcmRJbmRleFNjaGVtYSkpCi0g
ICAgICAgIHJldHVybiBJREJFcnJvciB7IFVua25vd25FcnJvciwgbWFrZVN0cmluZygiRXJyb3Ig
Y3JlYXRpbmcgSW5kZXhSZWNvcmRzUmVjb3JkSW5kZXggaW5kZXggKCVpKSAtICVzIiwgbV9zcWxp
dGVEQi0+bGFzdEVycm9yKCksIG1fc3FsaXRlREItPmxhc3RFcnJvck1zZygpKSB9OworICAgICAg
ICByZXR1cm4gSURCRXJyb3IgeyBVbmtub3duRXJyb3IsIG1ha2VTdHJpbmcoIkVycm9yIGNyZWF0
aW5nIEluZGV4UmVjb3Jkc1JlY29yZEluZGV4IGluZGV4ICgiLCBtX3NxbGl0ZURCLT5sYXN0RXJy
b3IoKSwgIikgLSAiLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JNc2coKSkgfTsKIAogICAgIHJldHVy
biBJREJFcnJvciB7IH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCBiMzc1MmIy
ZDBhMDkzNzhmZjFkOTliYWM5MzUwMGI0NzUzMTBlZDQyLi5iZTU3NjNlYTkzNTJlZGI2OTRkMmU2
MGYyYjNmY2ViMjhmMTFlZDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKQEAgLTE5NSwx
MSArMTk1LDEyIEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1DdXJyZW50T3Blbk9w
ZXJhdGlvbigpCiAgICAgICAgICAgICBtX2JhY2tpbmdTdG9yZSA9IG1fc2VydmVyLmNyZWF0ZUJh
Y2tpbmdTdG9yZShtX2lkZW50aWZpZXIpOwogICAgICAgICAgICAgSURCRGF0YWJhc2VJbmZvIGRh
dGFiYXNlSW5mbzsKICAgICAgICAgICAgIGJhY2tpbmdTdG9yZU9wZW5FcnJvciA9IG1fYmFja2lu
Z1N0b3JlLT5nZXRPckVzdGFibGlzaERhdGFiYXNlSW5mbyhkYXRhYmFzZUluZm8pOwotICAgICAg
ICAgICAgaWYgKGJhY2tpbmdTdG9yZU9wZW5FcnJvci5pc051bGwoKSkgewotICAgICAgICAgICAg
ICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGdldCBkYXRhYmFzZSBpbmZvICclcyciLCBiYWNraW5n
U3RvcmVPcGVuRXJyb3IubWVzc2FnZSgpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgaWYg
KGJhY2tpbmdTdG9yZU9wZW5FcnJvci5pc051bGwoKSkKICAgICAgICAgICAgICAgICBtX2RhdGFi
YXNlSW5mbyA9IG1ha2VVbmlxdWU8SURCRGF0YWJhc2VJbmZvPihkYXRhYmFzZUluZm8pOwotICAg
ICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBMT0df
RVJST1IoIkZhaWxlZCB0byBnZXQgZGF0YWJhc2UgaW5mbyAnJXMnIiwgYmFja2luZ1N0b3JlT3Bl
bkVycm9yLm1lc3NhZ2UoKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgICAgICAgICBtX2JhY2tp
bmdTdG9yZSA9IG51bGxwdHI7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCmluZGV4IDU0
NzZhMTQ4NzQ1YWYzNTE2YmNiNzU0ODVlNDZkMGYzMmEzYjk4ZjUuLmExMTEwMjU2ODFlNDY5MzEy
M2ZiYzhjYjQ5MGE4MzcwZGIzOWMxODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
c3FsL1NRTGl0ZURhdGFiYXNlLmNwcApAQCAtMTE5LDggKzExOSw3IEBAIGJvb2wgU1FMaXRlRGF0
YWJhc2U6Om9wZW4oY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgT3Blbk1vZGUgb3Blbk1vZGUpCiAg
ICAgICAgICAgICBtX29wZW5FcnJvck1lc3NhZ2UgPSBtX2RiID8gc3FsaXRlM19lcnJtc2cobV9k
YikgOiAic3FsaXRlX29wZW4gcmV0dXJuZWQgbnVsbCI7CiAgICAgICAgICAgICBMT0dfRVJST1Io
IlNRTGl0ZSBkYXRhYmFzZSBmYWlsZWQgdG8gbG9hZCBmcm9tICVzXG5DYXVzZSAtICVzIiwgZmls
ZW5hbWUuYXNjaWkoKS5kYXRhKCksCiAgICAgICAgICAgICAgICAgbV9vcGVuRXJyb3JNZXNzYWdl
LmRhdGEoKSk7Ci0gICAgICAgICAgICBzcWxpdGUzX2Nsb3NlKG1fZGIpOwotICAgICAgICAgICAg
bV9kYiA9IDA7CisgICAgICAgICAgICBjbG9zZShTaG91bGRTZXRFcnJvclN0YXRlOjpObyk7CiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMzEsOCArMTMw
LDcgQEAgYm9vbCBTUUxpdGVEYXRhYmFzZTo6b3Blbihjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBP
cGVuTW9kZSBvcGVuTW9kZSkKICAgICBpZiAobV9vcGVuRXJyb3IgIT0gU1FMSVRFX09LKSB7CiAg
ICAgICAgIG1fb3BlbkVycm9yTWVzc2FnZSA9IHNxbGl0ZTNfZXJybXNnKG1fZGIpOwogICAgICAg
ICBMT0dfRVJST1IoIlNRTGl0ZSBkYXRhYmFzZSBlcnJvciB3aGVuIGVuYWJsaW5nIGV4dGVuZGVk
IGVycm9ycyAtICVzIiwgbV9vcGVuRXJyb3JNZXNzYWdlLmRhdGEoKSk7Ci0gICAgICAgIHNxbGl0
ZTNfY2xvc2UobV9kYik7Ci0gICAgICAgIG1fZGIgPSAwOworICAgICAgICBjbG9zZShTaG91bGRT
ZXRFcnJvclN0YXRlOjpObyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTIy
MCw3ICsyMTgsNyBAQCB2b2lkIFNRTGl0ZURhdGFiYXNlOjp1c2VXQUxKb3VybmFsTW9kZSgpCiAg
ICAgfQogfQogCi12b2lkIFNRTGl0ZURhdGFiYXNlOjpjbG9zZSgpCit2b2lkIFNRTGl0ZURhdGFi
YXNlOjpjbG9zZShTaG91bGRTZXRFcnJvclN0YXRlIHNob3VsZFNldEVycm9yU3RhdGUpCiB7CiAg
ICAgaWYgKG1fZGIpIHsKICAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghbV9zdGF0ZW1lbnRD
b3VudCwgIkFsbCBTUUxpdGVUcmFuc2FjdGlvbiBvYmplY3RzIHNob3VsZCBiZSBkZXN0cm95ZWQg
YmVmb3JlIGNsb3NpbmcgdGhlIGRhdGFiYXNlIik7CkBAIC0yMzIsMTYgKzIzMCwyNCBAQCB2b2lk
IFNRTGl0ZURhdGFiYXNlOjpjbG9zZSgpCiAgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9k
YXRhYmFzZUNsb3NpbmdNdXRleCB9OwogICAgICAgICAgICAgbV9kYiA9IDA7CiAgICAgICAgIH0K
KworICAgICAgICBpbnQgY2xvc2VSZXN1bHQ7CiAgICAgICAgIGlmIChtX3VzZVdBTCkgeworICAg
ICAgICAgICAgLy8gQ2xvc2UgaW4gdGhlIHNjb3BlIG9mIGNvdW50ZXIgYXMgaXQgbWF5IGFjcXVp
cmUgbG9jayBvZiBkYXRhYmFzZS4KICAgICAgICAgICAgIFNRTGl0ZVRyYW5zYWN0aW9uSW5Qcm9n
cmVzc0F1dG9Db3VudGVyIHRyYW5zYWN0aW9uQ291bnRlcjsKLSAgICAgICAgICAgIHNxbGl0ZTNf
Y2xvc2UoZGIpOworICAgICAgICAgICAgY2xvc2VSZXN1bHQgPSBzcWxpdGUzX2Nsb3NlKGRiKTsK
ICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBzcWxpdGUzX2Nsb3NlKGRiKTsKKyAgICAgICAg
ICAgIGNsb3NlUmVzdWx0ID0gc3FsaXRlM19jbG9zZShkYik7CisKKyAgICAgICAgaWYgKGNsb3Nl
UmVzdWx0ICE9IFNRTElURV9PSykKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFNRTERh
dGFiYXNlLCAiU1FMaXRlRGF0YWJhc2U6OmNsb3NlOiBGYWlsZWQgdG8gY2xvc2UgZGF0YWJhc2Ug
KCVkKSAtICV7cHVibGljfXMiLCBjbG9zZVJlc3VsdCwgbGFzdEVycm9yTXNnKCkpOwogICAgIH0K
IAotICAgIG1fb3BlbmluZ1RocmVhZCA9IG51bGxwdHI7Ci0gICAgbV9vcGVuRXJyb3IgPSBTUUxJ
VEVfRVJST1I7Ci0gICAgbV9vcGVuRXJyb3JNZXNzYWdlID0gQ1N0cmluZygpOworICAgIGlmIChz
aG91bGRTZXRFcnJvclN0YXRlID09IFNob3VsZFNldEVycm9yU3RhdGU6OlllcykgeworICAgICAg
ICBtX29wZW5pbmdUaHJlYWQgPSBudWxscHRyOworICAgICAgICBtX29wZW5FcnJvciA9IFNRTElU
RV9FUlJPUjsKKyAgICAgICAgbV9vcGVuRXJyb3JNZXNzYWdlID0gQ1N0cmluZygpOworICAgIH0K
IH0KIAogdm9pZCBTUUxpdGVEYXRhYmFzZTo6b3ZlcnJpZGVVbmF1dGhvcml6ZWRGdW5jdGlvbnMo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAppbmRleCBh
YTE5Y2IxMWZmOGZkN2U5ZjhiNWQyZTEyMWE0MjY2MDA0YTRiOGE5Li5iOTI3NTA4NDE3YzdmNWEw
NThjNTFiZTkwNGM0YWIzOGIxNTI4ODZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9z
cWwvU1FMaXRlRGF0YWJhc2UuaApAQCAtNTksNyArNTksOCBAQCBwdWJsaWM6CiAgICAgZW51bSBj
bGFzcyBPcGVuTW9kZSB7IFJlYWRPbmx5LCBSZWFkV3JpdGUsIFJlYWRXcml0ZUNyZWF0ZSB9Owog
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgb3Blbihjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBPcGVu
TW9kZSA9IE9wZW5Nb2RlOjpSZWFkV3JpdGVDcmVhdGUpOwogICAgIGJvb2wgaXNPcGVuKCkgY29u
c3QgeyByZXR1cm4gbV9kYjsgfQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xvc2UoKTsKKyAg
ICBlbnVtIGNsYXNzIFNob3VsZFNldEVycm9yU3RhdGUgOiBib29sIHsgTm8sIFllcyB9OworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xvc2UoU2hvdWxkU2V0RXJyb3JTdGF0ZSA9IFNob3VsZFNl
dEVycm9yU3RhdGU6Olllcyk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGV4ZWN1dGVDb21t
YW5kU2xvdyhjb25zdCBTdHJpbmcmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGV4ZWN1dGVD
b21tYW5kKEFTQ0lJTGl0ZXJhbCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>