<?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>223424</bug_id>
          
          <creation_ts>2021-03-18 01:13:36 -0700</creation_ts>
          <short_desc>Update Keychain queries according to internal needs</short_desc>
          <delta_ts>2021-03-18 16:46:28 -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>WebKit 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="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1741080</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-03-18 01:13:36 -0700</bug_when>
    <thetext>Update Keychain queries according to internal needs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741081</commentid>
    <comment_count>1</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-03-18 01:13:49 -0700</bug_when>
    <thetext>rdar://75434045</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741082</commentid>
    <comment_count>2</comment_count>
      <attachid>423571</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-03-18 01:18:00 -0700</bug_when>
    <thetext>Created attachment 423571
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741345</commentid>
    <comment_count>3</comment_count>
      <attachid>423571</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-03-18 12:47:51 -0700</bug_when>
    <thetext>Comment on attachment 423571
Patch

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

Can you try the simpler approach I suggested?

&gt; Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:53
&gt; +static void updateQuery(NSMutableDictionary *)

This should probably be called ‘updateQueryIfNeeded’

&gt; Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:-132
&gt; -    NSDictionary *query = @{

Could this just be NSMutableDictionary *query = @{ ...

&gt; Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:188
&gt; +    [query setDictionary:@{

Ditto

&gt; Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:397
&gt; +        auto query = adoptNS([[NSMutableDictionary alloc] init]);

Ditto

&gt; Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:603
&gt; +        [query setDictionary:@{

Ditto

&gt; Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:673
&gt; +        [query setDictionary:@{

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741421</commentid>
    <comment_count>4</comment_count>
      <attachid>423571</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-03-18 14:23:51 -0700</bug_when>
    <thetext>Comment on attachment 423571
Patch

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

Thanks Brent for reviewing the patch.

&gt;&gt; Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:53
&gt;&gt; +static void updateQuery(NSMutableDictionary *)
&gt; 
&gt; This should probably be called ‘updateQueryIfNeeded’

Good call! Let me change that.

&gt;&gt; Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:-132
&gt;&gt; -    NSDictionary *query = @{
&gt; 
&gt; Could this just be NSMutableDictionary *query = @{ ...

I don&apos;t think this could work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741466</commentid>
    <comment_count>5</comment_count>
      <attachid>423571</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-03-18 15:46:45 -0700</bug_when>
    <thetext>Comment on attachment 423571
Patch

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

&gt;&gt;&gt; Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:-132
&gt;&gt;&gt; -    NSDictionary *query = @{
&gt;&gt; 
&gt;&gt; Could this just be NSMutableDictionary *query = @{ ...
&gt; 
&gt; I don&apos;t think this could work.

auto query = [NSMutableDictionary dictionaryWithObjectsAndKeys:
    @&quot;value1&quot;, @&quot;key1&quot;, @&quot;value2&quot;, @&quot;key2&quot;, nil];</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741470</commentid>
    <comment_count>6</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-03-18 15:54:42 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #5)
&gt; Comment on attachment 423571 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=423571&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:-132
&gt; &gt;&gt;&gt; -    NSDictionary *query = @{
&gt; &gt;&gt; 
&gt; &gt;&gt; Could this just be NSMutableDictionary *query = @{ ...
&gt; &gt; 
&gt; &gt; I don&apos;t think this could work.
&gt; 
&gt; auto query = [NSMutableDictionary dictionaryWithObjectsAndKeys:
&gt;     @&quot;value1&quot;, @&quot;key1&quot;, @&quot;value2&quot;, @&quot;key2&quot;, nil];

Thanks Brent for r+ this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741485</commentid>
    <comment_count>7</comment_count>
      <attachid>423667</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-03-18 16:18:00 -0700</bug_when>
    <thetext>Created attachment 423667
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741510</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-18 16:46:27 -0700</bug_when>
    <thetext>Committed r274689: &lt;https://commits.webkit.org/r274689&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 423667.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423571</attachid>
            <date>2021-03-18 01:18:00 -0700</date>
            <delta_ts>2021-03-18 16:17:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223424-20210318011759.patch</filename>
            <type>text/plain</type>
            <size>9598</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkwMzFjNTA4ZDYzYTU0Yzc1
OTM4OTliN2U1MDhiMzAwZjgyYzYwYWUuLmYxYTM5Y2VhZTM1YzVhZGIwNTVkOTk1YjQ4NDFiZTM4
MWNjMTdmNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjEtMDMtMTggIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgS2V5Y2hhaW4gcXVl
cmllcyBhY2NvcmRpbmcgdG8gaW50ZXJuYWwgbmVlZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzQyNAorICAgICAgICByZGFyOi8vNzU0MzQwNDUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVk
IGJ5IG1hbnVhbCB0ZXN0cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW06CisgICAgICAgICh1cGRhdGVRdWVyeSk6Cisg
ICAgICAgIChXZWJLaXQ6OkxvY2FsQXV0aGVudGljYXRvckludGVybmFsOjpnZXRFeGlzdGluZ0Ny
ZWRlbnRpYWxzKToKKyAgICAgICAgKFdlYktpdDo6TG9jYWxBdXRoZW50aWNhdG9yOjpjbGVhckFs
bENyZWRlbnRpYWxzKToKKyAgICAgICAgKFdlYktpdDo6TG9jYWxBdXRoZW50aWNhdG9yOjpjb250
aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJVc2VyVmVyaWZpY2F0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6TG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZUdldEFzc2VydGlvbkFmdGVyVXNlclZlcmlm
aWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OkxvY2FsQXV0aGVudGljYXRvcjo6cmVjZWl2ZUV4
Y2VwdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkxvY2FsQXV0aGVudGljYXRvcjo6ZGVs
ZXRlRHVwbGljYXRlQ3JlZGVudGlhbCBjb25zdCk6CisgICAgICAgIChzaG91bGRVc2VBbHRlcm5h
dGVRdWVyeSk6IERlbGV0ZWQuCisgICAgICAgIChhbHRlcm5hdGVRdWVyeUZvclJQSUQpOiBEZWxl
dGVkLgorCiAyMDIxLTAzLTE4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgogCiAgICAgICAgIFtpT1NdIFdlYiBwcm9jZXNzIHNvbWV0aW1lcyBjcmFzaGVzIHVuZGVyIFdl
YlBhZ2U6OnBvc2l0aW9uSW5mb3JtYXRpb24oKSBhZnRlciByMjc0MDMxCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhl
bnRpY2F0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9D
b2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KaW5kZXggMjYwY2E2YTgwMDMwYTEzNGU3N2U3NWQx
MjJkOTE0ODM2M2ExOTViMS4uYjUzNzc4NGI3OTk5MjJhNjEzY2IzYjE1NjI3Y2RkODQwMDE0NzJm
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
Q29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbQpAQCAtNTAsMTEg
KzUwLDggQEAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogI2ltcG9ydCA8V2ViS2l0QWRk
aXRpb25zL0xvY2FsQXV0aGVudGljYXRvckFkZGl0aW9ucy5oPgogI2Vsc2UKLXN0YXRpYyBib29s
IHNob3VsZFVzZUFsdGVybmF0ZVF1ZXJ5KCkgeyByZXR1cm4gZmFsc2U7IH0KLXN0YXRpYyBOU0Rp
Y3Rpb25hcnkgKmFsdGVybmF0ZVF1ZXJ5Rm9yUlBJRChjb25zdCBTdHJpbmcmKQorc3RhdGljIHZv
aWQgdXBkYXRlUXVlcnkoTlNNdXRhYmxlRGljdGlvbmFyeSAqKQogewotICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgIHJldHVybiBuaWw7CiB9CiAjZW5kaWYKIApAQCAtMTI5LDcgKzEyNiw4
IEBAIHN0YXRpYyBpbmxpbmUgUmVmPEFycmF5QnVmZmVyPiB0b0FycmF5QnVmZmVyKGNvbnN0IFZl
Y3Rvcjx1aW50OF90PiYgZGF0YSkKIHN0YXRpYyBPcHRpb25hbDxWZWN0b3I8UmVmPEF1dGhlbnRp
Y2F0b3JBc3NlcnRpb25SZXNwb25zZT4+PiBnZXRFeGlzdGluZ0NyZWRlbnRpYWxzKGNvbnN0IFN0
cmluZyYgcnBJZCkKIHsKICAgICAvLyBTZWFyY2ggS2V5Y2hhaW4gZm9yIGV4aXN0aW5nIGNyZWRl
bnRpYWwgbWF0Y2hlZCB0aGUgUlAgSUQuCi0gICAgTlNEaWN0aW9uYXJ5ICpxdWVyeSA9IEB7Cisg
ICAgYXV0byBxdWVyeSA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0
XSk7CisgICAgW3F1ZXJ5IHNldERpY3Rpb25hcnk6QHsKICAgICAgICAgKGlkKWtTZWNDbGFzczog
KGlkKWtTZWNDbGFzc0tleSwKICAgICAgICAgKGlkKWtTZWNBdHRyS2V5Q2xhc3M6IChpZClrU2Vj
QXR0cktleUNsYXNzUHJpdmF0ZSwKICAgICAgICAgKGlkKWtTZWNBdHRyTGFiZWw6IHJwSWQsCkBA
IC0xNDAsMTMgKzEzOCwxMSBAQCBzdGF0aWMgT3B0aW9uYWw8VmVjdG9yPFJlZjxBdXRoZW50aWNh
dG9yQXNzZXJ0aW9uUmVzcG9uc2U+Pj4gZ2V0RXhpc3RpbmdDcmVkZW50aQogI2Vsc2UKICAgICAg
ICAgKGlkKWtTZWNBdHRyTm9MZWdhY3k6IEBZRVMKICNlbmRpZgotICAgIH07Ci0KLSAgICBpZiAo
c2hvdWxkVXNlQWx0ZXJuYXRlUXVlcnkoKSkKLSAgICAgICAgcXVlcnkgPSBhbHRlcm5hdGVRdWVy
eUZvclJQSUQocnBJZCk7CisgICAgfV07CisgICAgdXBkYXRlUXVlcnkocXVlcnkuZ2V0KCkpOwog
CiAgICAgQ0ZUeXBlUmVmIGF0dHJpYnV0ZXNBcnJheVJlZiA9IG51bGxwdHI7Ci0gICAgT1NTdGF0
dXMgc3RhdHVzID0gU2VjSXRlbUNvcHlNYXRjaGluZygoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVm
KXF1ZXJ5LCAmYXR0cmlidXRlc0FycmF5UmVmKTsKKyAgICBPU1N0YXR1cyBzdGF0dXMgPSBTZWNJ
dGVtQ29weU1hdGNoaW5nKChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpcXVlcnkuZ2V0KCksICZh
dHRyaWJ1dGVzQXJyYXlSZWYpOwogICAgIGlmIChzdGF0dXMgJiYgc3RhdHVzICE9IGVyclNlY0l0
ZW1Ob3RGb3VuZCkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICBhdXRvIHJldGFp
bkF0dHJpYnV0ZXNBcnJheSA9IGFkb3B0Q0YoYXR0cmlidXRlc0FycmF5UmVmKTsKQEAgLTE4OCw3
ICsxODQsOCBAQCBzdGF0aWMgT3B0aW9uYWw8VmVjdG9yPFJlZjxBdXRoZW50aWNhdG9yQXNzZXJ0
aW9uUmVzcG9uc2U+Pj4gZ2V0RXhpc3RpbmdDcmVkZW50aQogdm9pZCBMb2NhbEF1dGhlbnRpY2F0
b3I6OmNsZWFyQWxsQ3JlZGVudGlhbHMoKQogewogICAgIC8vIEZJWE1FPHJkYXI6Ly9wcm9ibGVt
LzU3MTcxMjAxPjogV2Ugc2hvdWxkIGd1YXJkIHRoZSBtZXRob2Qgd2l0aCBhIGZpcnN0IHBhcnR5
IGVudGl0bGVtZW50IG9uY2UgV2ViQXV0aG4gaXMgYXZhbGlhYmxlIGZvciB0aGlyZCBwYXJ0aWVz
LgotICAgIE5TRGljdGlvbmFyeSogZGVsZXRlUXVlcnkgPSBAeworICAgIGF1dG8gcXVlcnkgPSBh
ZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF0pOworICAgIFtxdWVyeSBz
ZXREaWN0aW9uYXJ5OkB7CiAgICAgICAgIChpZClrU2VjQ2xhc3M6IChpZClrU2VjQ2xhc3NLZXks
CiAgICAgICAgIChpZClrU2VjQXR0ckFjY2Vzc0dyb3VwOiAoaWQpU3RyaW5nKExvY2FsQXV0aGVu
dGljYXRpb3JBY2Nlc3NHcm91cCksCiAjaWYgSEFWRShEQVRBX1BST1RFQ1RJT05fS0VZQ0hBSU4p
CkBAIC0xOTYsOCArMTkzLDEwIEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjbGVhckFsbENy
ZWRlbnRpYWxzKCkKICNlbHNlCiAgICAgICAgIChpZClrU2VjQXR0ck5vTGVnYWN5OiBAWUVTCiAj
ZW5kaWYKLSAgICB9OwotICAgIE9TU3RhdHVzIHN0YXR1cyA9IFNlY0l0ZW1EZWxldGUoKF9fYnJp
ZGdlIENGRGljdGlvbmFyeVJlZilkZWxldGVRdWVyeSk7CisgICAgfV07CisgICAgdXBkYXRlUXVl
cnkocXVlcnkuZ2V0KCkpOworCisgICAgT1NTdGF0dXMgc3RhdHVzID0gU2VjSXRlbURlbGV0ZSgo
X19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKXF1ZXJ5LmdldCgpKTsKICAgICBpZiAoc3RhdHVzICYm
IHN0YXR1cyAhPSBlcnJTZWNJdGVtTm90Rm91bmQpCiAgICAgICAgIExPR19FUlJPUihtYWtlU3Ry
aW5nKCJDb3VsZG4ndCBjbGVhciBhbGwgY3JlZGVudGlhbDogIl9zLCBzdGF0dXMpLnV0ZjgoKS5k
YXRhKCkpOwogfQpAQCAtMzk1LDcgKzM5NCw4IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpj
b250aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJVc2VyVmVyaWZpY2F0aW9uKFNlY0FjY2Vzc0NvCiAg
ICAgICAgIG1fcHJvdmlzaW9uYWxDcmVkZW50aWFsSWQgPSB0b05TRGF0YShjcmVkZW50aWFsSWQp
OwogCiAjaWZuZGVmIE5ERUJVRwotICAgICAgICBOU0RpY3Rpb25hcnkgKmNyZWRlbnRpYWxJZFF1
ZXJ5ID0gQHsKKyAgICAgICAgYXV0byBxdWVyeSA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9u
YXJ5IGFsbG9jXSBpbml0XSk7CisgICAgICAgIFtxdWVyeSBzZXREaWN0aW9uYXJ5OkB7CiAgICAg
ICAgICAgICAoaWQpa1NlY0NsYXNzOiAoaWQpa1NlY0NsYXNzS2V5LAogICAgICAgICAgICAgKGlk
KWtTZWNBdHRyS2V5Q2xhc3M6IChpZClrU2VjQXR0cktleUNsYXNzUHJpdmF0ZSwKICAgICAgICAg
ICAgIChpZClrU2VjQXR0ckxhYmVsOiBzZWNBdHRyTGFiZWwsCkBAIC00MDUsOCArNDA1LDEwIEBA
IHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJVc2Vy
VmVyaWZpY2F0aW9uKFNlY0FjY2Vzc0NvCiAjZWxzZQogICAgICAgICAgICAgKGlkKWtTZWNBdHRy
Tm9MZWdhY3k6IEBZRVMKICNlbmRpZgotICAgICAgICB9OwotICAgICAgICBPU1N0YXR1cyBzdGF0
dXMgPSBTZWNJdGVtQ29weU1hdGNoaW5nKChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpY3JlZGVu
dGlhbElkUXVlcnksIG51bGxwdHIpOworICAgICAgICB9XTsKKyAgICAgICAgdXBkYXRlUXVlcnko
cXVlcnkuZ2V0KCkpOworCisgICAgICAgIE9TU3RhdHVzIHN0YXR1cyA9IFNlY0l0ZW1Db3B5TWF0
Y2hpbmcoKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilxdWVyeS5nZXQoKSwgbnVsbHB0cik7CiAg
ICAgICAgIEFTU0VSVCghc3RhdHVzKTsKICNlbmRpZiAvLyBOREVCVUcKICAgICB9CkBAIC01OTcs
NyArNTk5LDggQEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlR2V0QXNzZXJ0aW9u
QWZ0ZXJVc2VyVmVyaWZpY2F0aW9uKFJlZjxXZWJDb3JlOjoKICAgICBSZXRhaW5QdHI8Q0ZEYXRh
UmVmPiBzaWduYXR1cmU7CiAgICAgYXV0byBuc0NyZWRlbnRpYWxJZCA9IHRvTlNEYXRhKHJlc3Bv
bnNlLT5yYXdJZCgpKTsKICAgICB7Ci0gICAgICAgIE5TRGljdGlvbmFyeSAqcXVlcnkgPSBAewor
ICAgICAgICBhdXRvIHF1ZXJ5ID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2Nd
IGluaXRdKTsKKyAgICAgICAgW3F1ZXJ5IHNldERpY3Rpb25hcnk6QHsKICAgICAgICAgICAgIChp
ZClrU2VjQ2xhc3M6IChpZClrU2VjQ2xhc3NLZXksCiAgICAgICAgICAgICAoaWQpa1NlY0F0dHJL
ZXlDbGFzczogKGlkKWtTZWNBdHRyS2V5Q2xhc3NQcml2YXRlLAogICAgICAgICAgICAgKGlkKWtT
ZWNBdHRyQXBwbGljYXRpb25MYWJlbDogbnNDcmVkZW50aWFsSWQuZ2V0KCksCkBAIC02MDgsOSAr
NjExLDExIEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZUdldEFzc2VydGlvbkFm
dGVyVXNlclZlcmlmaWNhdGlvbihSZWY8V2ViQ29yZTo6CiAjZWxzZQogICAgICAgICAgICAgKGlk
KWtTZWNBdHRyTm9MZWdhY3k6IEBZRVMKICNlbmRpZgotICAgICAgICB9OworICAgICAgICB9XTsK
KyAgICAgICAgdXBkYXRlUXVlcnkocXVlcnkuZ2V0KCkpOworCiAgICAgICAgIENGVHlwZVJlZiBw
cml2YXRlS2V5UmVmID0gbnVsbHB0cjsKLSAgICAgICAgT1NTdGF0dXMgc3RhdHVzID0gU2VjSXRl
bUNvcHlNYXRjaGluZygoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKXF1ZXJ5LCAmcHJpdmF0ZUtl
eVJlZik7CisgICAgICAgIE9TU3RhdHVzIHN0YXR1cyA9IFNlY0l0ZW1Db3B5TWF0Y2hpbmcoKF9f
YnJpZGdlIENGRGljdGlvbmFyeVJlZilxdWVyeS5nZXQoKSwgJnByaXZhdGVLZXlSZWYpOwogICAg
ICAgICBpZiAoc3RhdHVzKSB7CiAgICAgICAgICAgICByZWNlaXZlRXhjZXB0aW9uKHsgVW5rbm93
bkVycm9yLCBtYWtlU3RyaW5nKCJDb3VsZG4ndCBnZXQgdGhlIHByaXZhdGUga2V5IHJlZmVyZW5j
ZTogIiwgc3RhdHVzKSB9KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTYzMiw3ICs2MzcsOCBA
QCB2b2lkIExvY2FsQXV0aGVudGljYXRvcjo6Y29udGludWVHZXRBc3NlcnRpb25BZnRlclVzZXJW
ZXJpZmljYXRpb24oUmVmPFdlYkNvcmU6OgogCiAgICAgLy8gRXh0cmEgc3RlcDogdXBkYXRlIHRo
ZSBLZXljaGFpbiBpdGVtIHdpdGggdGhlIHNhbWUgdmFsdWUgdG8gdXBkYXRlIGl0cyBtb2RpZmlj
YXRpb24gZGF0ZSBzdWNoIHRoYXQgTFJVIGNhbiBiZSB1c2VkCiAgICAgLy8gZm9yIHNlbGVjdEFz
c2VydGlvblJlc3BvbnNlCi0gICAgTlNEaWN0aW9uYXJ5ICp1cGRhdGVRdWVyeSA9IEB7CisgICAg
YXV0byBxdWVyeSA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0XSk7
CisgICAgW3F1ZXJ5IHNldERpY3Rpb25hcnk6QHsKICAgICAgICAgKGlkKWtTZWNDbGFzczogKGlk
KWtTZWNDbGFzc0tleSwKICAgICAgICAgKGlkKWtTZWNBdHRyS2V5Q2xhc3M6IChpZClrU2VjQXR0
cktleUNsYXNzUHJpdmF0ZSwKICAgICAgICAgKGlkKWtTZWNBdHRyQXBwbGljYXRpb25MYWJlbDog
bnNDcmVkZW50aWFsSWQuZ2V0KCksCkBAIC02NDEsMTEgKzY0NywxMyBAQCB2b2lkIExvY2FsQXV0
aGVudGljYXRvcjo6Y29udGludWVHZXRBc3NlcnRpb25BZnRlclVzZXJWZXJpZmljYXRpb24oUmVm
PFdlYkNvcmU6OgogI2Vsc2UKICAgICAgICAgKGlkKWtTZWNBdHRyTm9MZWdhY3k6IEBZRVMKICNl
bmRpZgotICAgIH07CisgICAgfV07CisgICAgdXBkYXRlUXVlcnkocXVlcnkuZ2V0KCkpOworCiAg
ICAgTlNEaWN0aW9uYXJ5ICp1cGRhdGVQYXJhbXMgPSBAewogICAgICAgICAoaWQpa1NlY0F0dHJM
YWJlbDogcmVxdWVzdE9wdGlvbnMucnBJZCwKICAgICB9OwotICAgIGF1dG8gc3RhdHVzID0gU2Vj
SXRlbVVwZGF0ZSgoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKXVwZGF0ZVF1ZXJ5LCAoX19icmlk
Z2UgQ0ZEaWN0aW9uYXJ5UmVmKXVwZGF0ZVBhcmFtcyk7CisgICAgYXV0byBzdGF0dXMgPSBTZWNJ
dGVtVXBkYXRlKChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpcXVlcnkuZ2V0KCksIChfX2JyaWRn
ZSBDRkRpY3Rpb25hcnlSZWYpdXBkYXRlUGFyYW1zKTsKICAgICBpZiAoc3RhdHVzKQogICAgICAg
ICBMT0dfRVJST1IoIkNvdWxkbid0IHVwZGF0ZSB0aGUgS2V5Y2hhaW4gaXRlbTogJWQiLCBzdGF0
dXMpOwogCkBAIC02NjEsNyArNjY5LDggQEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6OnJlY2Vp
dmVFeGNlcHRpb24oRXhjZXB0aW9uRGF0YSYmIGV4Y2VwdGlvbiwgV2ViQXV0aGVudGkKIAogICAg
IC8vIFJvbGwgYmFjayB0aGUganVzdCBjcmVhdGVkIGNyZWRlbnRpYWwuCiAgICAgaWYgKG1fcHJv
dmlzaW9uYWxDcmVkZW50aWFsSWQpIHsKLSAgICAgICAgTlNEaWN0aW9uYXJ5KiBkZWxldGVRdWVy
eSA9IEB7CisgICAgICAgIGF1dG8gcXVlcnkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFy
eSBhbGxvY10gaW5pdF0pOworICAgICAgICBbcXVlcnkgc2V0RGljdGlvbmFyeTpAewogICAgICAg
ICAgICAgKGlkKWtTZWNDbGFzczogKGlkKWtTZWNDbGFzc0tleSwKICAgICAgICAgICAgIChpZClr
U2VjQXR0ckFwcGxpY2F0aW9uTGFiZWw6IG1fcHJvdmlzaW9uYWxDcmVkZW50aWFsSWQuZ2V0KCks
CiAjaWYgSEFWRShEQVRBX1BST1RFQ1RJT05fS0VZQ0hBSU4pCkBAIC02NjksOCArNjc4LDEwIEBA
IHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpyZWNlaXZlRXhjZXB0aW9uKEV4Y2VwdGlvbkRhdGEm
JiBleGNlcHRpb24sIFdlYkF1dGhlbnRpCiAjZWxzZQogICAgICAgICAgICAgKGlkKWtTZWNBdHRy
Tm9MZWdhY3k6IEBZRVMKICNlbmRpZgotICAgICAgICB9OwotICAgICAgICBPU1N0YXR1cyBzdGF0
dXMgPSBTZWNJdGVtRGVsZXRlKChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpZGVsZXRlUXVlcnkp
OworICAgICAgICB9XTsKKyAgICAgICAgdXBkYXRlUXVlcnkocXVlcnkuZ2V0KCkpOworCisgICAg
ICAgIE9TU3RhdHVzIHN0YXR1cyA9IFNlY0l0ZW1EZWxldGUoKF9fYnJpZGdlIENGRGljdGlvbmFy
eVJlZilxdWVyeS5nZXQoKSk7CiAgICAgICAgIGlmIChzdGF0dXMpCiAgICAgICAgICAgICBMT0df
RVJST1IobWFrZVN0cmluZygiQ291bGRuJ3QgZGVsZXRlIHByb3Zpc2lvbmFsIGNyZWRlbnRpYWwg
d2hpbGUgaGFuZGxpbmcgZXJyb3I6ICJfcywgc3RhdHVzKS51dGY4KCkuZGF0YSgpKTsKICAgICB9
CkBAIC02OTUsNyArNzA2LDggQEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6OmRlbGV0ZUR1cGxp
Y2F0ZUNyZWRlbnRpYWwoKSBjb25zdAogICAgICAgICBpZiAobWVtY21wKHVzZXJIYW5kbGUtPmRh
dGEoKSwgY3JlYXRpb25PcHRpb25zLnVzZXIuaWRWZWN0b3IuZGF0YSgpLCB1c2VySGFuZGxlLT5i
eXRlTGVuZ3RoKCkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIE5TRGlj
dGlvbmFyeSogZGVsZXRlUXVlcnkgPSBAeworICAgICAgICBhdXRvIHF1ZXJ5ID0gYWRvcHROUyhb
W05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsKKyAgICAgICAgW3F1ZXJ5IHNldERp
Y3Rpb25hcnk6QHsKICAgICAgICAgICAgIChpZClrU2VjQ2xhc3M6IChpZClrU2VjQ2xhc3NLZXks
CiAgICAgICAgICAgICAoaWQpa1NlY0F0dHJBcHBsaWNhdGlvbkxhYmVsOiB0b05TRGF0YShjcmVk
ZW50aWFsLT5yYXdJZCgpKS5nZXQoKSwKICNpZiBIQVZFKERBVEFfUFJPVEVDVElPTl9LRVlDSEFJ
TikKQEAgLTcwMyw4ICs3MTUsMTAgQEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6OmRlbGV0ZUR1
cGxpY2F0ZUNyZWRlbnRpYWwoKSBjb25zdAogI2Vsc2UKICAgICAgICAgICAgIChpZClrU2VjQXR0
ck5vTGVnYWN5OiBAWUVTCiAjZW5kaWYKLSAgICAgICAgfTsKLSAgICAgICAgT1NTdGF0dXMgc3Rh
dHVzID0gU2VjSXRlbURlbGV0ZSgoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKWRlbGV0ZVF1ZXJ5
KTsKKyAgICAgICAgfV07CisgICAgICAgIHVwZGF0ZVF1ZXJ5KHF1ZXJ5LmdldCgpKTsKKworICAg
ICAgICBPU1N0YXR1cyBzdGF0dXMgPSBTZWNJdGVtRGVsZXRlKChfX2JyaWRnZSBDRkRpY3Rpb25h
cnlSZWYpcXVlcnkuZ2V0KCkpOwogICAgICAgICBpZiAoc3RhdHVzICYmIHN0YXR1cyAhPSBlcnJT
ZWNJdGVtTm90Rm91bmQpCiAgICAgICAgICAgICBMT0dfRVJST1IobWFrZVN0cmluZygiQ291bGRu
J3QgZGVsZXRlIG9sZGVyIGNyZWRlbnRpYWw6ICJfcywgc3RhdHVzKS51dGY4KCkuZGF0YSgpKTsK
ICAgICAgICAgcmV0dXJuIHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423667</attachid>
            <date>2021-03-18 16:18:00 -0700</date>
            <delta_ts>2021-03-18 16:46:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223424-20210318161759.patch</filename>
            <type>text/plain</type>
            <size>9685</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkwMzFjNTA4ZDYzYTU0Yzc1
OTM4OTliN2U1MDhiMzAwZjgyYzYwYWUuLmI5MzE2YTA1MjUwYzQ1ZWQyNjkxNjYwN2RhZmY2NDdi
MWQ1NmYwMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjEtMDMtMTggIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgS2V5Y2hhaW4gcXVl
cmllcyBhY2NvcmRpbmcgdG8gaW50ZXJuYWwgbmVlZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzQyNAorICAgICAgICByZGFyOi8vNzU0MzQwNDUK
KworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgIENvdmVyZWQg
YnkgbWFudWFsIHRlc3RzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbToKKyAgICAgICAgKHVwZGF0ZVF1ZXJ5KToKKyAg
ICAgICAgKFdlYktpdDo6TG9jYWxBdXRoZW50aWNhdG9ySW50ZXJuYWw6OmdldEV4aXN0aW5nQ3Jl
ZGVudGlhbHMpOgorICAgICAgICAoV2ViS2l0OjpMb2NhbEF1dGhlbnRpY2F0b3I6OmNsZWFyQWxs
Q3JlZGVudGlhbHMpOgorICAgICAgICAoV2ViS2l0OjpMb2NhbEF1dGhlbnRpY2F0b3I6OmNvbnRp
bnVlTWFrZUNyZWRlbnRpYWxBZnRlclVzZXJWZXJpZmljYXRpb24pOgorICAgICAgICAoV2ViS2l0
OjpMb2NhbEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlR2V0QXNzZXJ0aW9uQWZ0ZXJVc2VyVmVyaWZp
Y2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TG9jYWxBdXRoZW50aWNhdG9yOjpyZWNlaXZlRXhj
ZXB0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TG9jYWxBdXRoZW50aWNhdG9yOjpkZWxl
dGVEdXBsaWNhdGVDcmVkZW50aWFsIGNvbnN0KToKKyAgICAgICAgKHNob3VsZFVzZUFsdGVybmF0
ZVF1ZXJ5KTogRGVsZXRlZC4KKyAgICAgICAgKGFsdGVybmF0ZVF1ZXJ5Rm9yUlBJRCk6IERlbGV0
ZWQuCisKIDIwMjEtMDMtMTggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CiAKICAgICAgICAgW2lPU10gV2ViIHByb2Nlc3Mgc29tZXRpbWVzIGNyYXNoZXMgdW5kZXIgV2Vi
UGFnZTo6cG9zaXRpb25JbmZvcm1hdGlvbigpIGFmdGVyIHIyNzQwMzEKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVu
dGljYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0Nv
Y29hL0xvY2FsQXV0aGVudGljYXRvci5tbQppbmRleCAyNjBjYTZhODAwMzBhMTM0ZTc3ZTc1ZDEy
MmQ5MTQ4MzYzYTE5NWIxLi5iMTk1MGFhMzM2YzdiOWIyZTJhZjZmMGU2NjE0Yzg3YjI1YTNlNDc1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9D
b2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tCkBAIC01MCwxMSAr
NTAsOCBAQAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW1wb3J0IDxXZWJLaXRBZGRp
dGlvbnMvTG9jYWxBdXRoZW50aWNhdG9yQWRkaXRpb25zLmg+CiAjZWxzZQotc3RhdGljIGJvb2wg
c2hvdWxkVXNlQWx0ZXJuYXRlUXVlcnkoKSB7IHJldHVybiBmYWxzZTsgfQotc3RhdGljIE5TRGlj
dGlvbmFyeSAqYWx0ZXJuYXRlUXVlcnlGb3JSUElEKGNvbnN0IFN0cmluZyYpCitzdGF0aWMgdm9p
ZCB1cGRhdGVRdWVyeUlmTmVjZXNzYXJ5KE5TTXV0YWJsZURpY3Rpb25hcnkgKikKIHsKLSAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gbmlsOwogfQogI2VuZGlmCiAKQEAgLTEy
OSw3ICsxMjYsOCBAQCBzdGF0aWMgaW5saW5lIFJlZjxBcnJheUJ1ZmZlcj4gdG9BcnJheUJ1ZmZl
cihjb25zdCBWZWN0b3I8dWludDhfdD4mIGRhdGEpCiBzdGF0aWMgT3B0aW9uYWw8VmVjdG9yPFJl
ZjxBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U+Pj4gZ2V0RXhpc3RpbmdDcmVkZW50aWFs
cyhjb25zdCBTdHJpbmcmIHJwSWQpCiB7CiAgICAgLy8gU2VhcmNoIEtleWNoYWluIGZvciBleGlz
dGluZyBjcmVkZW50aWFsIG1hdGNoZWQgdGhlIFJQIElELgotICAgIE5TRGljdGlvbmFyeSAqcXVl
cnkgPSBAeworICAgIGF1dG8gcXVlcnkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBh
bGxvY10gaW5pdF0pOworICAgIFtxdWVyeSBzZXREaWN0aW9uYXJ5OkB7CiAgICAgICAgIChpZClr
U2VjQ2xhc3M6IChpZClrU2VjQ2xhc3NLZXksCiAgICAgICAgIChpZClrU2VjQXR0cktleUNsYXNz
OiAoaWQpa1NlY0F0dHJLZXlDbGFzc1ByaXZhdGUsCiAgICAgICAgIChpZClrU2VjQXR0ckxhYmVs
OiBycElkLApAQCAtMTQwLDEzICsxMzgsMTEgQEAgc3RhdGljIE9wdGlvbmFsPFZlY3RvcjxSZWY8
QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlPj4+IGdldEV4aXN0aW5nQ3JlZGVudGkKICNl
bHNlCiAgICAgICAgIChpZClrU2VjQXR0ck5vTGVnYWN5OiBAWUVTCiAjZW5kaWYKLSAgICB9Owot
Ci0gICAgaWYgKHNob3VsZFVzZUFsdGVybmF0ZVF1ZXJ5KCkpCi0gICAgICAgIHF1ZXJ5ID0gYWx0
ZXJuYXRlUXVlcnlGb3JSUElEKHJwSWQpOworICAgIH1dOworICAgIHVwZGF0ZVF1ZXJ5SWZOZWNl
c3NhcnkocXVlcnkuZ2V0KCkpOwogCiAgICAgQ0ZUeXBlUmVmIGF0dHJpYnV0ZXNBcnJheVJlZiA9
IG51bGxwdHI7Ci0gICAgT1NTdGF0dXMgc3RhdHVzID0gU2VjSXRlbUNvcHlNYXRjaGluZygoX19i
cmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKXF1ZXJ5LCAmYXR0cmlidXRlc0FycmF5UmVmKTsKKyAgICBP
U1N0YXR1cyBzdGF0dXMgPSBTZWNJdGVtQ29weU1hdGNoaW5nKChfX2JyaWRnZSBDRkRpY3Rpb25h
cnlSZWYpcXVlcnkuZ2V0KCksICZhdHRyaWJ1dGVzQXJyYXlSZWYpOwogICAgIGlmIChzdGF0dXMg
JiYgc3RhdHVzICE9IGVyclNlY0l0ZW1Ob3RGb3VuZCkKICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKICAgICBhdXRvIHJldGFpbkF0dHJpYnV0ZXNBcnJheSA9IGFkb3B0Q0YoYXR0cmlidXRl
c0FycmF5UmVmKTsKQEAgLTE4OCw3ICsxODQsOCBAQCBzdGF0aWMgT3B0aW9uYWw8VmVjdG9yPFJl
ZjxBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U+Pj4gZ2V0RXhpc3RpbmdDcmVkZW50aQog
dm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6OmNsZWFyQWxsQ3JlZGVudGlhbHMoKQogewogICAgIC8v
IEZJWE1FPHJkYXI6Ly9wcm9ibGVtLzU3MTcxMjAxPjogV2Ugc2hvdWxkIGd1YXJkIHRoZSBtZXRo
b2Qgd2l0aCBhIGZpcnN0IHBhcnR5IGVudGl0bGVtZW50IG9uY2UgV2ViQXV0aG4gaXMgYXZhbGlh
YmxlIGZvciB0aGlyZCBwYXJ0aWVzLgotICAgIE5TRGljdGlvbmFyeSogZGVsZXRlUXVlcnkgPSBA
eworICAgIGF1dG8gcXVlcnkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10g
aW5pdF0pOworICAgIFtxdWVyeSBzZXREaWN0aW9uYXJ5OkB7CiAgICAgICAgIChpZClrU2VjQ2xh
c3M6IChpZClrU2VjQ2xhc3NLZXksCiAgICAgICAgIChpZClrU2VjQXR0ckFjY2Vzc0dyb3VwOiAo
aWQpU3RyaW5nKExvY2FsQXV0aGVudGljYXRpb3JBY2Nlc3NHcm91cCksCiAjaWYgSEFWRShEQVRB
X1BST1RFQ1RJT05fS0VZQ0hBSU4pCkBAIC0xOTYsOCArMTkzLDEwIEBAIHZvaWQgTG9jYWxBdXRo
ZW50aWNhdG9yOjpjbGVhckFsbENyZWRlbnRpYWxzKCkKICNlbHNlCiAgICAgICAgIChpZClrU2Vj
QXR0ck5vTGVnYWN5OiBAWUVTCiAjZW5kaWYKLSAgICB9OwotICAgIE9TU3RhdHVzIHN0YXR1cyA9
IFNlY0l0ZW1EZWxldGUoKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilkZWxldGVRdWVyeSk7Cisg
ICAgfV07CisgICAgdXBkYXRlUXVlcnlJZk5lY2Vzc2FyeShxdWVyeS5nZXQoKSk7CisKKyAgICBP
U1N0YXR1cyBzdGF0dXMgPSBTZWNJdGVtRGVsZXRlKChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYp
cXVlcnkuZ2V0KCkpOwogICAgIGlmIChzdGF0dXMgJiYgc3RhdHVzICE9IGVyclNlY0l0ZW1Ob3RG
b3VuZCkKICAgICAgICAgTE9HX0VSUk9SKG1ha2VTdHJpbmcoIkNvdWxkbid0IGNsZWFyIGFsbCBj
cmVkZW50aWFsOiAiX3MsIHN0YXR1cykudXRmOCgpLmRhdGEoKSk7CiB9CkBAIC0zOTUsNyArMzk0
LDggQEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlTWFrZUNyZWRlbnRpYWxBZnRl
clVzZXJWZXJpZmljYXRpb24oU2VjQWNjZXNzQ28KICAgICAgICAgbV9wcm92aXNpb25hbENyZWRl
bnRpYWxJZCA9IHRvTlNEYXRhKGNyZWRlbnRpYWxJZCk7CiAKICNpZm5kZWYgTkRFQlVHCi0gICAg
ICAgIE5TRGljdGlvbmFyeSAqY3JlZGVudGlhbElkUXVlcnkgPSBAeworICAgICAgICBhdXRvIHF1
ZXJ5ID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsKKyAgICAg
ICAgW3F1ZXJ5IHNldERpY3Rpb25hcnk6QHsKICAgICAgICAgICAgIChpZClrU2VjQ2xhc3M6IChp
ZClrU2VjQ2xhc3NLZXksCiAgICAgICAgICAgICAoaWQpa1NlY0F0dHJLZXlDbGFzczogKGlkKWtT
ZWNBdHRyS2V5Q2xhc3NQcml2YXRlLAogICAgICAgICAgICAgKGlkKWtTZWNBdHRyTGFiZWw6IHNl
Y0F0dHJMYWJlbCwKQEAgLTQwNSw4ICs0MDUsMTAgQEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6
OmNvbnRpbnVlTWFrZUNyZWRlbnRpYWxBZnRlclVzZXJWZXJpZmljYXRpb24oU2VjQWNjZXNzQ28K
ICNlbHNlCiAgICAgICAgICAgICAoaWQpa1NlY0F0dHJOb0xlZ2FjeTogQFlFUwogI2VuZGlmCi0g
ICAgICAgIH07Ci0gICAgICAgIE9TU3RhdHVzIHN0YXR1cyA9IFNlY0l0ZW1Db3B5TWF0Y2hpbmco
KF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZiljcmVkZW50aWFsSWRRdWVyeSwgbnVsbHB0cik7Cisg
ICAgICAgIH1dOworICAgICAgICB1cGRhdGVRdWVyeUlmTmVjZXNzYXJ5KHF1ZXJ5LmdldCgpKTsK
KworICAgICAgICBPU1N0YXR1cyBzdGF0dXMgPSBTZWNJdGVtQ29weU1hdGNoaW5nKChfX2JyaWRn
ZSBDRkRpY3Rpb25hcnlSZWYpcXVlcnkuZ2V0KCksIG51bGxwdHIpOwogICAgICAgICBBU1NFUlQo
IXN0YXR1cyk7CiAjZW5kaWYgLy8gTkRFQlVHCiAgICAgfQpAQCAtNTk3LDcgKzU5OSw4IEBAIHZv
aWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZUdldEFzc2VydGlvbkFmdGVyVXNlclZlcmlm
aWNhdGlvbihSZWY8V2ViQ29yZTo6CiAgICAgUmV0YWluUHRyPENGRGF0YVJlZj4gc2lnbmF0dXJl
OwogICAgIGF1dG8gbnNDcmVkZW50aWFsSWQgPSB0b05TRGF0YShyZXNwb25zZS0+cmF3SWQoKSk7
CiAgICAgewotICAgICAgICBOU0RpY3Rpb25hcnkgKnF1ZXJ5ID0gQHsKKyAgICAgICAgYXV0byBx
dWVyeSA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0XSk7CisgICAg
ICAgIFtxdWVyeSBzZXREaWN0aW9uYXJ5OkB7CiAgICAgICAgICAgICAoaWQpa1NlY0NsYXNzOiAo
aWQpa1NlY0NsYXNzS2V5LAogICAgICAgICAgICAgKGlkKWtTZWNBdHRyS2V5Q2xhc3M6IChpZClr
U2VjQXR0cktleUNsYXNzUHJpdmF0ZSwKICAgICAgICAgICAgIChpZClrU2VjQXR0ckFwcGxpY2F0
aW9uTGFiZWw6IG5zQ3JlZGVudGlhbElkLmdldCgpLApAQCAtNjA4LDkgKzYxMSwxMSBAQCB2b2lk
IExvY2FsQXV0aGVudGljYXRvcjo6Y29udGludWVHZXRBc3NlcnRpb25BZnRlclVzZXJWZXJpZmlj
YXRpb24oUmVmPFdlYkNvcmU6OgogI2Vsc2UKICAgICAgICAgICAgIChpZClrU2VjQXR0ck5vTGVn
YWN5OiBAWUVTCiAjZW5kaWYKLSAgICAgICAgfTsKKyAgICAgICAgfV07CisgICAgICAgIHVwZGF0
ZVF1ZXJ5SWZOZWNlc3NhcnkocXVlcnkuZ2V0KCkpOworCiAgICAgICAgIENGVHlwZVJlZiBwcml2
YXRlS2V5UmVmID0gbnVsbHB0cjsKLSAgICAgICAgT1NTdGF0dXMgc3RhdHVzID0gU2VjSXRlbUNv
cHlNYXRjaGluZygoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKXF1ZXJ5LCAmcHJpdmF0ZUtleVJl
Zik7CisgICAgICAgIE9TU3RhdHVzIHN0YXR1cyA9IFNlY0l0ZW1Db3B5TWF0Y2hpbmcoKF9fYnJp
ZGdlIENGRGljdGlvbmFyeVJlZilxdWVyeS5nZXQoKSwgJnByaXZhdGVLZXlSZWYpOwogICAgICAg
ICBpZiAoc3RhdHVzKSB7CiAgICAgICAgICAgICByZWNlaXZlRXhjZXB0aW9uKHsgVW5rbm93bkVy
cm9yLCBtYWtlU3RyaW5nKCJDb3VsZG4ndCBnZXQgdGhlIHByaXZhdGUga2V5IHJlZmVyZW5jZTog
Iiwgc3RhdHVzKSB9KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTYzMiw3ICs2MzcsOCBAQCB2
b2lkIExvY2FsQXV0aGVudGljYXRvcjo6Y29udGludWVHZXRBc3NlcnRpb25BZnRlclVzZXJWZXJp
ZmljYXRpb24oUmVmPFdlYkNvcmU6OgogCiAgICAgLy8gRXh0cmEgc3RlcDogdXBkYXRlIHRoZSBL
ZXljaGFpbiBpdGVtIHdpdGggdGhlIHNhbWUgdmFsdWUgdG8gdXBkYXRlIGl0cyBtb2RpZmljYXRp
b24gZGF0ZSBzdWNoIHRoYXQgTFJVIGNhbiBiZSB1c2VkCiAgICAgLy8gZm9yIHNlbGVjdEFzc2Vy
dGlvblJlc3BvbnNlCi0gICAgTlNEaWN0aW9uYXJ5ICp1cGRhdGVRdWVyeSA9IEB7CisgICAgYXV0
byBxdWVyeSA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0XSk7Cisg
ICAgW3F1ZXJ5IHNldERpY3Rpb25hcnk6QHsKICAgICAgICAgKGlkKWtTZWNDbGFzczogKGlkKWtT
ZWNDbGFzc0tleSwKICAgICAgICAgKGlkKWtTZWNBdHRyS2V5Q2xhc3M6IChpZClrU2VjQXR0cktl
eUNsYXNzUHJpdmF0ZSwKICAgICAgICAgKGlkKWtTZWNBdHRyQXBwbGljYXRpb25MYWJlbDogbnND
cmVkZW50aWFsSWQuZ2V0KCksCkBAIC02NDEsMTEgKzY0NywxMyBAQCB2b2lkIExvY2FsQXV0aGVu
dGljYXRvcjo6Y29udGludWVHZXRBc3NlcnRpb25BZnRlclVzZXJWZXJpZmljYXRpb24oUmVmPFdl
YkNvcmU6OgogI2Vsc2UKICAgICAgICAgKGlkKWtTZWNBdHRyTm9MZWdhY3k6IEBZRVMKICNlbmRp
ZgotICAgIH07CisgICAgfV07CisgICAgdXBkYXRlUXVlcnlJZk5lY2Vzc2FyeShxdWVyeS5nZXQo
KSk7CisKICAgICBOU0RpY3Rpb25hcnkgKnVwZGF0ZVBhcmFtcyA9IEB7CiAgICAgICAgIChpZClr
U2VjQXR0ckxhYmVsOiByZXF1ZXN0T3B0aW9ucy5ycElkLAogICAgIH07Ci0gICAgYXV0byBzdGF0
dXMgPSBTZWNJdGVtVXBkYXRlKChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpdXBkYXRlUXVlcnks
IChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpdXBkYXRlUGFyYW1zKTsKKyAgICBhdXRvIHN0YXR1
cyA9IFNlY0l0ZW1VcGRhdGUoKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilxdWVyeS5nZXQoKSwg
KF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZil1cGRhdGVQYXJhbXMpOwogICAgIGlmIChzdGF0dXMp
CiAgICAgICAgIExPR19FUlJPUigiQ291bGRuJ3QgdXBkYXRlIHRoZSBLZXljaGFpbiBpdGVtOiAl
ZCIsIHN0YXR1cyk7CiAKQEAgLTY2MSw3ICs2NjksOCBAQCB2b2lkIExvY2FsQXV0aGVudGljYXRv
cjo6cmVjZWl2ZUV4Y2VwdGlvbihFeGNlcHRpb25EYXRhJiYgZXhjZXB0aW9uLCBXZWJBdXRoZW50
aQogCiAgICAgLy8gUm9sbCBiYWNrIHRoZSBqdXN0IGNyZWF0ZWQgY3JlZGVudGlhbC4KICAgICBp
ZiAobV9wcm92aXNpb25hbENyZWRlbnRpYWxJZCkgewotICAgICAgICBOU0RpY3Rpb25hcnkqIGRl
bGV0ZVF1ZXJ5ID0gQHsKKyAgICAgICAgYXV0byBxdWVyeSA9IGFkb3B0TlMoW1tOU011dGFibGVE
aWN0aW9uYXJ5IGFsbG9jXSBpbml0XSk7CisgICAgICAgIFtxdWVyeSBzZXREaWN0aW9uYXJ5OkB7
CiAgICAgICAgICAgICAoaWQpa1NlY0NsYXNzOiAoaWQpa1NlY0NsYXNzS2V5LAogICAgICAgICAg
ICAgKGlkKWtTZWNBdHRyQXBwbGljYXRpb25MYWJlbDogbV9wcm92aXNpb25hbENyZWRlbnRpYWxJ
ZC5nZXQoKSwKICNpZiBIQVZFKERBVEFfUFJPVEVDVElPTl9LRVlDSEFJTikKQEAgLTY2OSw4ICs2
NzgsMTAgQEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6OnJlY2VpdmVFeGNlcHRpb24oRXhjZXB0
aW9uRGF0YSYmIGV4Y2VwdGlvbiwgV2ViQXV0aGVudGkKICNlbHNlCiAgICAgICAgICAgICAoaWQp
a1NlY0F0dHJOb0xlZ2FjeTogQFlFUwogI2VuZGlmCi0gICAgICAgIH07Ci0gICAgICAgIE9TU3Rh
dHVzIHN0YXR1cyA9IFNlY0l0ZW1EZWxldGUoKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilkZWxl
dGVRdWVyeSk7CisgICAgICAgIH1dOworICAgICAgICB1cGRhdGVRdWVyeUlmTmVjZXNzYXJ5KHF1
ZXJ5LmdldCgpKTsKKworICAgICAgICBPU1N0YXR1cyBzdGF0dXMgPSBTZWNJdGVtRGVsZXRlKChf
X2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpcXVlcnkuZ2V0KCkpOwogICAgICAgICBpZiAoc3RhdHVz
KQogICAgICAgICAgICAgTE9HX0VSUk9SKG1ha2VTdHJpbmcoIkNvdWxkbid0IGRlbGV0ZSBwcm92
aXNpb25hbCBjcmVkZW50aWFsIHdoaWxlIGhhbmRsaW5nIGVycm9yOiAiX3MsIHN0YXR1cykudXRm
OCgpLmRhdGEoKSk7CiAgICAgfQpAQCAtNjk1LDcgKzcwNiw4IEBAIHZvaWQgTG9jYWxBdXRoZW50
aWNhdG9yOjpkZWxldGVEdXBsaWNhdGVDcmVkZW50aWFsKCkgY29uc3QKICAgICAgICAgaWYgKG1l
bWNtcCh1c2VySGFuZGxlLT5kYXRhKCksIGNyZWF0aW9uT3B0aW9ucy51c2VyLmlkVmVjdG9yLmRh
dGEoKSwgdXNlckhhbmRsZS0+Ynl0ZUxlbmd0aCgpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAotICAgICAgICBOU0RpY3Rpb25hcnkqIGRlbGV0ZVF1ZXJ5ID0gQHsKKyAgICAgICAgYXV0
byBxdWVyeSA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0XSk7Cisg
ICAgICAgIFtxdWVyeSBzZXREaWN0aW9uYXJ5OkB7CiAgICAgICAgICAgICAoaWQpa1NlY0NsYXNz
OiAoaWQpa1NlY0NsYXNzS2V5LAogICAgICAgICAgICAgKGlkKWtTZWNBdHRyQXBwbGljYXRpb25M
YWJlbDogdG9OU0RhdGEoY3JlZGVudGlhbC0+cmF3SWQoKSkuZ2V0KCksCiAjaWYgSEFWRShEQVRB
X1BST1RFQ1RJT05fS0VZQ0hBSU4pCkBAIC03MDMsOCArNzE1LDEwIEBAIHZvaWQgTG9jYWxBdXRo
ZW50aWNhdG9yOjpkZWxldGVEdXBsaWNhdGVDcmVkZW50aWFsKCkgY29uc3QKICNlbHNlCiAgICAg
ICAgICAgICAoaWQpa1NlY0F0dHJOb0xlZ2FjeTogQFlFUwogI2VuZGlmCi0gICAgICAgIH07Ci0g
ICAgICAgIE9TU3RhdHVzIHN0YXR1cyA9IFNlY0l0ZW1EZWxldGUoKF9fYnJpZGdlIENGRGljdGlv
bmFyeVJlZilkZWxldGVRdWVyeSk7CisgICAgICAgIH1dOworICAgICAgICB1cGRhdGVRdWVyeUlm
TmVjZXNzYXJ5KHF1ZXJ5LmdldCgpKTsKKworICAgICAgICBPU1N0YXR1cyBzdGF0dXMgPSBTZWNJ
dGVtRGVsZXRlKChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpcXVlcnkuZ2V0KCkpOwogICAgICAg
ICBpZiAoc3RhdHVzICYmIHN0YXR1cyAhPSBlcnJTZWNJdGVtTm90Rm91bmQpCiAgICAgICAgICAg
ICBMT0dfRVJST1IobWFrZVN0cmluZygiQ291bGRuJ3QgZGVsZXRlIG9sZGVyIGNyZWRlbnRpYWw6
ICJfcywgc3RhdHVzKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgcmV0dXJuIHRydWU7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>