<?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>220617</bug_id>
          
          <creation_ts>2021-01-14 00:02:11 -0800</creation_ts>
          <short_desc>[WebAuthn] Polish the new WebAuthn UI</short_desc>
          <delta_ts>2021-01-19 13:28:01 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <blocked>181943</blocked>
          <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>1719545</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-01-14 00:02:11 -0800</bug_when>
    <thetext>Polish the new WebAuthn UI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719546</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-14 00:02:41 -0800</bug_when>
    <thetext>&lt;rdar://problem/73185470&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719548</commentid>
    <comment_count>2</comment_count>
      <attachid>417601</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-01-14 00:14:14 -0800</bug_when>
    <thetext>Created attachment 417601
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719664</commentid>
    <comment_count>3</comment_count>
      <attachid>417643</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-01-14 12:30:14 -0800</bug_when>
    <thetext>Created attachment 417643
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719675</commentid>
    <comment_count>4</comment_count>
      <attachid>417647</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-01-14 13:06:27 -0800</bug_when>
    <thetext>Created attachment 417647
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720090</commentid>
    <comment_count>5</comment_count>
      <attachid>417751</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-01-15 17:28:03 -0800</bug_when>
    <thetext>Created attachment 417751
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720545</commentid>
    <comment_count>6</comment_count>
      <attachid>417751</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-01-19 09:26:49 -0800</bug_when>
    <thetext>Comment on attachment 417751
Patch

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

r=me

&gt; Source/WebKit/UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.mm:-68
&gt; -        ASSERT(!RunLoop::isMain());

Why is it okay to remove this assertion? Should we be asserting that we are on the main runloop when UI is being presented?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720579</commentid>
    <comment_count>7</comment_count>
      <attachid>417751</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-01-19 10:39:53 -0800</bug_when>
    <thetext>Comment on attachment 417751
Patch

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

Thanks Brent for r+ this patch.

&gt;&gt; Source/WebKit/UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.mm:-68
&gt;&gt; -        ASSERT(!RunLoop::isMain());
&gt; 
&gt; Why is it okay to remove this assertion? Should we be asserting that we are on the main runloop when UI is being presented?

Just figured that the UI SPI could bail out early on the main thread and in Cocoa API there isn&apos;t any guarantees which thread the callback is going to be executed. So we shouldn&apos;t  assume any.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720666</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-19 13:28:01 -0800</bug_when>
    <thetext>Committed r271613: &lt;https://trac.webkit.org/changeset/271613&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 417751.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417601</attachid>
            <date>2021-01-14 00:14:14 -0800</date>
            <delta_ts>2021-01-14 12:30:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220617-20210114001413.patch</filename>
            <type>text/plain</type>
            <size>15402</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY5MDlkMTk0MDA0NTkzNDMx
YzgxOWRiNjI2MGQ1ZmM1Y2IwYmE0ZWIuLjQ2MDY5YjIzZjA4NTM5YmZjZTU0OTE0NGJmZDM2YWYx
MDUwNmNmYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjEtMDEtMTQgIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFBvbGlzaCB0
aGUgbmV3IFdlYkF1dGhuIFVJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjA2MTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzczMTg1NDcwPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
ZG9lcyB0aGUgZm9sbG93aW5nIGZldyB0aGluZ3M6CisgICAgICAgIDEuIEl0IHVwZGF0ZXMgdGhl
IHdheSBob3cgdGhlIFBJTiBlcnJvciBmb3Igc2VjdXJpdHkga2V5cyBpcyBoYW5kbGVkLgorICAg
ICAgICAyLiBJdCB1c2VzIHRoZSBjcmVkZW50aWFsIG5hbWUgdG8gaWRlbnRpZnkgYSBjcmVkZW50
aWFsIHRoYXQgcGFzc2VkIHRvIHRoZSBVSSBpbnN0ZWFkIG9mIHRoZSBsb2dpbiBjaG9pY2Ugb2Jq
ZWN0CisgICAgICAgIGFzIGl0IHR1cm5zIG91dCB0aGF0IHRoZSBVSSB3b24ndCByZXR1cm4gdGhl
IHNhbWUgb2JqZWN0IGF0IGFsbC4KKyAgICAgICAgMy4gSXQgZGVsYXlzIHRvIHNob3cgdGhlIFVJ
IGlmIHRoZSBwbGF0Zm9ybSBhdXRoZW50aWNhdG9yIGlzIGludm9sdmVkIGdpdmVuIHRoZSBwbGF0
Zm9ybSBhdXRoZW50aWNhdG9yIG1pZ2h0IG5vdCBjb250YWluCisgICAgICAgIHRoZSByZXF1ZXN0
ZWQgY3JlZGVudGlhbHMuIElmIG5vdCwgd2Ugc2hvdWxkIGVpdGhlciBzaG93IGFuIGVycm9yIG9y
IGp1c3QgcmVxdWVzdGluZyB0aGUgc2VjdXJpdHkga2V5IG9uZXMuCisKKyAgICAgICAgQ292ZXJl
ZCBieSBtYW51YWwgdGVzdHMuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvQ29jb2EvQXV0aGVu
dGljYXRpb25TZXJ2aWNlc0NvcmVTUEkuaDoKKyAgICAgICAgKE5TX0VSUk9SX0VOVU0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9BdXRoZW50aWNhdG9yUHJl
c2VudGVyQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQ29jb2EvQXV0aGVudGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9yLm1tOgorICAgICAgICAo
V2ViS2l0OjpBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3I6OkF1dGhlbnRpY2F0b3JQ
cmVzZW50ZXJDb29yZGluYXRvcik6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JQcmVz
ZW50ZXJDb29yZGluYXRvcjo6dXBkYXRlUHJlc2VudGVyKToKKyAgICAgICAgKFdlYktpdDo6QXV0
aGVudGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9yOjpzZWxlY3RBc3NlcnRpb25SZXNwb25zZSk6
CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGluYXRvcjo6ZGlk
U2VsZWN0QXNzZXJ0aW9uUmVzcG9uc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9Db2NvYS9XS0FTQ0F1dGhvcml6YXRpb25QcmVzZW50ZXJEZWxlZ2F0ZS5tbToKKyAg
ICAgICAgKC1bV0tBU0NBdXRob3JpemF0aW9uUHJlc2VudGVyRGVsZWdhdGUgYXV0aG9yaXphdGlv
blByZXNlbnRlcjpjcmVkZW50aWFsUmVxdWVzdGVkRm9yTG9naW5DaG9pY2U6YXV0aGVudGljYXRl
ZENvbnRleHQ6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisKIDIwMjEtMDEtMTIgIEJKIEJ1cmcgIDxi
YnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBXZWIgSW5zcGVjdG9yOiBtb3ZlIGJy
b3dzZXIgZG9tYWluIGFjdGl2YXRpb24gbWV0aG9kcyBiYWNrIHRvIFdLV2ViVmlldyBhbmQgVUlE
ZWxlZ2F0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQXV0
aGVudGljYXRpb25TZXJ2aWNlc0NvcmVTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3Bp
L0NvY29hL0F1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU1BJLmgKaW5kZXggOGFlYWI0NGFjYTRl
MzljYzZjNjA2MGE2YTkxZWYzNjBjMWQwYTE2NC4uOWNiOWM1MDhjMTBjMGI2OGU0ZDMzYmJkZGVi
N2NlNmM1ODk0MzYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29j
b2EvQXV0aGVudGljYXRpb25TZXJ2aWNlc0NvcmVTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL3NwaS9Db2NvYS9BdXRoZW50aWNhdGlvblNlcnZpY2VzQ29yZVNQSS5oCkBAIC0xNzIs
MTQgKzE3Miw5IEBAIHR5cGVkZWYgTlNfRVJST1JfRU5VTShBU0NBdXRob3JpemF0aW9uRXJyb3JE
b21haW4sIEFTQ0F1dGhvcml6YXRpb25FcnJvcikgewogICAgIEFTQ0F1dGhvcml6YXRpb25FcnJv
ck5vQ3JlZGVudGlhbHNGb3VuZCwKICAgICBBU0NBdXRob3JpemF0aW9uRXJyb3JMQUVycm9yLAog
ICAgIEFTQ0F1dGhvcml6YXRpb25FcnJvckxBRXhjbHVkZUNyZWRlbnRpYWxzTWF0Y2hlZCwKLX07
Ci0KLWV4dGVybiBOU1N0cmluZyAqIGNvbnN0IEFTQ1BJTlZhbGlkYXRpb25SZXN1bHRLZXk7Ci0K
LXR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIEFTQ1BJTlZhbGlkYXRpb25SZXN1bHQpIHsKLSAg
ICBBU0NQSU5WYWxpZGF0aW9uUmVzdWx0UElOQmxvY2tlZCwKLSAgICBBU0NQSU5WYWxpZGF0aW9u
UmVzdWx0UElOQXV0aEJsb2NrZWQsCi0gICAgQVNDUElOVmFsaWRhdGlvblJlc3VsdFBJTkludmFs
aWQsCisgICAgQVNDQXV0aG9yaXphdGlvbkVycm9yUElOSW52YWxpZCwKKyAgICBBU0NBdXRob3Jp
emF0aW9uRXJyb3JBdXRoZW50aWNhdG9yVGVtcG9yYXJpbHlMb2NrZWQsCisgICAgQVNDQXV0aG9y
aXphdGlvbkVycm9yQXV0aGVudGljYXRvclBlcm1hbmVudGx5TG9ja2VkLAogfTsKIAogTlNfQVNT
VU1FX05PTk5VTExfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9Db2NvYS9BdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3IuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0F1dGhlbnRp
Y2F0b3JQcmVzZW50ZXJDb29yZGluYXRvci5oCmluZGV4IGYxMzkzNTEyZmUwYjg1OWVjZTM4Mjli
ZjIzOWY2YWU2YzE4NzQxNTUuLmI1ZTM1NjBhODg3MzcyYjViY2Y5ZWQ4OTA1OTMwOTBiNmY2ZGQx
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L0NvY29hL0F1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0F1dGhlbnRpY2F0b3JQcmVz
ZW50ZXJDb29yZGluYXRvci5oCkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
c2V0Q3JlZGVudGlhbFJlcXVlc3RIYW5kbGVyKENyZWRlbnRpYWxSZXF1ZXN0SGFuZGxlciYmIGhh
bmRsZXIpIHsgbV9jcmVkZW50aWFsUmVxdWVzdEhhbmRsZXIgPSBXVEZNb3ZlKGhhbmRsZXIpOyB9
CiAgICAgdm9pZCBzZXRMQUNvbnRleHQoTEFDb250ZXh0ICopOwotICAgIHZvaWQgZGlkU2VsZWN0
QXNzZXJ0aW9uUmVzcG9uc2UoQVNDTG9naW5DaG9pY2VQcm90b2NvbCAqLCBMQUNvbnRleHQgKik7
CisgICAgdm9pZCBkaWRTZWxlY3RBc3NlcnRpb25SZXNwb25zZShjb25zdCBTdHJpbmcmIGNyZWRl
bnRpYWxOYW1lLCBMQUNvbnRleHQgKik7CiAgICAgdm9pZCBzZXRQaW4oY29uc3QgU3RyaW5nJik7
CiAKIHByaXZhdGU6CkBAIC03Myw2ICs3Myw4IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPEFT
Q0F1dGhvcml6YXRpb25QcmVzZW50YXRpb25Db250ZXh0PiBtX2NvbnRleHQ7CiAgICAgUmV0YWlu
UHRyPEFTQ0F1dGhvcml6YXRpb25QcmVzZW50ZXI+IG1fcHJlc2VudGVyOwogICAgIFJldGFpblB0
cjxXS0FTQ0F1dGhvcml6YXRpb25QcmVzZW50ZXJEZWxlZ2F0ZT4gbV9wcmVzZW50ZXJEZWxlZ2F0
ZTsKKyAgICBGdW5jdGlvbjx2b2lkKCk+IG1fZGVsYXllZFByZXNlbnRhdGlvbjsKKyAgICBib29s
IG1fZGVsYXllZFByZXNlbnRhdGlvbk5lZWRzU2VjdXJpdHlLZXk7CiAKICAgICBDcmVkZW50aWFs
UmVxdWVzdEhhbmRsZXIgbV9jcmVkZW50aWFsUmVxdWVzdEhhbmRsZXI7CiAKQEAgLTgwLDcgKzgy
LDcgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8TEFDb250ZXh0PiBtX2xhQ29udGV4dDsKIAog
ICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6QXV0aGVudGljYXRvckFzc2VydGlv
blJlc3BvbnNlKik+IG1fcmVzcG9uc2VIYW5kbGVyOwotICAgIEhhc2hNYXA8QVNDTG9naW5DaG9p
Y2VQcm90b2NvbCAqLCBSZWZQdHI8V2ViQ29yZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJlc3Bv
bnNlPj4gbV9jcmVkZW50aWFsczsKKyAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPFdlYkNvcmU6
OkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZT4+IG1fY3JlZGVudGlhbHM7CiAKICAgICBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYpPiBtX3BpbkhhbmRsZXI7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29j
b2EvQXV0aGVudGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9yLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvQXV0aGVudGljYXRvclByZXNlbnRlckNv
b3JkaW5hdG9yLm1tCmluZGV4IDU1ODlmMDU4YzU4NTFjYWFiZDA4ZjdkYjBlYjI4NWFmYTA4NTM0
NmIuLjE2MzY0YjU4YTg0ZGU1ZWM4OGNiYTRiYWNiZjczYWM0ZDJjZWYxZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0F1dGhlbnRp
Y2F0b3JQcmVzZW50ZXJDb29yZGluYXRvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9BdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0
b3IubW0KQEAgLTUzLDcgKzUzLDcgQEAgQXV0aGVudGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9y
OjpBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3IoY29uc3QgQXV0aGUKICAgICAgICAg
ICAgIFttX2NvbnRleHQgYWRkTG9naW5DaG9pY2U6YWRvcHROUyhbYWxsb2NBU0NTZWN1cml0eUtl
eVB1YmxpY0tleUNyZWRlbnRpYWxMb2dpbkNob2ljZUluc3RhbmNlKCkgaW5pdFJlZ2lzdHJhdGlv
bkNob2ljZV0pLmdldCgpXTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDbGllbnREYXRhVHlw
ZTo6R2V0OgotICAgICAgICBpZiAodHJhbnNwb3J0cy5jb250YWlucyhBdXRoZW50aWNhdG9yVHJh
bnNwb3J0OjpVc2IpIHx8IHRyYW5zcG9ydHMuY29udGFpbnMoQXV0aGVudGljYXRvclRyYW5zcG9y
dDo6TmZjKSkKKyAgICAgICAgaWYgKCh0cmFuc3BvcnRzLmNvbnRhaW5zKEF1dGhlbnRpY2F0b3JU
cmFuc3BvcnQ6OlVzYikgfHwgdHJhbnNwb3J0cy5jb250YWlucyhBdXRoZW50aWNhdG9yVHJhbnNw
b3J0OjpOZmMpKSAmJiAhdHJhbnNwb3J0cy5jb250YWlucyhBdXRoZW50aWNhdG9yVHJhbnNwb3J0
OjpJbnRlcm5hbCkpCiAgICAgICAgICAgICBbbV9jb250ZXh0IGFkZExvZ2luQ2hvaWNlOmFkb3B0
TlMoW2FsbG9jQVNDU2VjdXJpdHlLZXlQdWJsaWNLZXlDcmVkZW50aWFsTG9naW5DaG9pY2VJbnN0
YW5jZSgpIGluaXRBc3NlcnRpb25QbGFjZWhvbGRlckNob2ljZV0pLmdldCgpXTsKICAgICAgICAg
YnJlYWs7CiAgICAgZGVmYXVsdDoKQEAgLTY1LDcgKzY1LDYgQEAgQXV0aGVudGljYXRvclByZXNl
bnRlckNvb3JkaW5hdG9yOjpBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3IoY29uc3Qg
QXV0aGUKICAgICBbbV9wcmVzZW50ZXIgc2V0RGVsZWdhdGU6bV9wcmVzZW50ZXJEZWxlZ2F0ZS5n
ZXQoKV07CiAKICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFttYW5h
Z2VyID0gbV9tYW5hZ2VyXSAoaWQ8QVNDQ3JlZGVudGlhbFByb3RvY29sPiBjcmVkZW50aWFsLCBO
U0Vycm9yICplcnJvcikgbXV0YWJsZSB7Ci0gICAgICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWlu
KCkpOwogICAgICAgICBpZiAoY3JlZGVudGlhbCB8fCAhZXJyb3IpCiAgICAgICAgICAgICByZXR1
cm47CiAKQEAgLTc2LDYgKzc1LDE1IEBAIEF1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGluYXRv
cjo6QXV0aGVudGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9yKGNvbnN0IEF1dGhlCiAgICAgICAg
ICAgICAgICAgbWFuYWdlci0+Y2FuY2VsKCk7CiAgICAgICAgIH0pOwogICAgIH0pOworCisgICAg
aWYgKHR5cGUgPT0gQ2xpZW50RGF0YVR5cGU6OkdldCAmJiB0cmFuc3BvcnRzLmNvbnRhaW5zKEF1
dGhlbnRpY2F0b3JUcmFuc3BvcnQ6OkludGVybmFsKSkgeworICAgICAgICBtX2RlbGF5ZWRQcmVz
ZW50YXRpb25OZWVkc1NlY3VyaXR5S2V5ID0gKHRyYW5zcG9ydHMuY29udGFpbnMoQXV0aGVudGlj
YXRvclRyYW5zcG9ydDo6VXNiKSB8fCB0cmFuc3BvcnRzLmNvbnRhaW5zKEF1dGhlbnRpY2F0b3JU
cmFuc3BvcnQ6Ok5mYykpOworICAgICAgICBtX2RlbGF5ZWRQcmVzZW50YXRpb24gPSBbY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgdGhpc10geworICAgICAg
ICAgICAgW21fcHJlc2VudGVyIHByZXNlbnRBdXRob3JpemF0aW9uV2l0aENvbnRleHQ6bV9jb250
ZXh0LmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyLmdldCgpXTsKKyAg
ICAgICAgfTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIFttX3ByZXNlbnRlciBwcmVz
ZW50QXV0aG9yaXphdGlvbldpdGhDb250ZXh0Om1fY29udGV4dC5nZXQoKSBjb21wbGV0aW9uSGFu
ZGxlcjpjb21wbGV0aW9uSGFuZGxlci5nZXQoKV07CiAjZW5kaWYgLy8gSEFWRShBU0NfQVVUSF9V
SSkKIH0KQEAgLTk1LDE3ICsxMDMsMTcgQEAgdm9pZCBBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29v
cmRpbmF0b3I6OnVwZGF0ZVByZXNlbnRlcihXZWJBdXRoZW50aWNhdGlvblN0YXR1cwogI2lmIEhB
VkUoQVNDX0FVVEhfVUkpCiAgICAgc3dpdGNoIChzdGF0dXMpIHsKICAgICBjYXNlIFdlYkF1dGhl
bnRpY2F0aW9uU3RhdHVzOjpQaW5CbG9ja2VkOiB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBhZG9w
dE5TKFtbTlNFcnJvciBhbGxvY10gaW5pdFdpdGhEb21haW46QVNDQXV0aG9yaXphdGlvbkVycm9y
RG9tYWluIGNvZGU6QVNDQXV0aG9yaXphdGlvbkVycm9yUElOUmVxdWlyZWQgdXNlckluZm86QHsg
QVNDUElOVmFsaWRhdGlvblJlc3VsdEtleTogQChBU0NQSU5WYWxpZGF0aW9uUmVzdWx0UElOQmxv
Y2tlZCkgfV0pOworICAgICAgICBhdXRvIGVycm9yID0gYWRvcHROUyhbW05TRXJyb3IgYWxsb2Nd
IGluaXRXaXRoRG9tYWluOkFTQ0F1dGhvcml6YXRpb25FcnJvckRvbWFpbiBjb2RlOkFTQ0F1dGhv
cml6YXRpb25FcnJvckF1dGhlbnRpY2F0b3JQZXJtYW5lbnRseUxvY2tlZCB1c2VySW5mbzpuaWxd
KTsKICAgICAgICAgbV9jcmVkZW50aWFsUmVxdWVzdEhhbmRsZXIobmlsLCBlcnJvci5nZXQoKSk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFdlYkF1dGhlbnRpY2F0aW9uU3RhdHVz
OjpQaW5BdXRoQmxvY2tlZDogewotICAgICAgICBhdXRvIGVycm9yID0gYWRvcHROUyhbW05TRXJy
b3IgYWxsb2NdIGluaXRXaXRoRG9tYWluOkFTQ0F1dGhvcml6YXRpb25FcnJvckRvbWFpbiBjb2Rl
OkFTQ0F1dGhvcml6YXRpb25FcnJvclBJTlJlcXVpcmVkIHVzZXJJbmZvOkB7IEFTQ1BJTlZhbGlk
YXRpb25SZXN1bHRLZXk6IEAoQVNDUElOVmFsaWRhdGlvblJlc3VsdFBJTkF1dGhCbG9ja2VkKSB9
XSk7CisgICAgICAgIGF1dG8gZXJyb3IgPSBhZG9wdE5TKFtbTlNFcnJvciBhbGxvY10gaW5pdFdp
dGhEb21haW46QVNDQXV0aG9yaXphdGlvbkVycm9yRG9tYWluIGNvZGU6QVNDQXV0aG9yaXphdGlv
bkVycm9yQXV0aGVudGljYXRvclRlbXBvcmFyaWx5TG9ja2VkIHVzZXJJbmZvOm5pbF0pOwogICAg
ICAgICBtX2NyZWRlbnRpYWxSZXF1ZXN0SGFuZGxlcihuaWwsIGVycm9yLmdldCgpKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgV2ViQXV0aGVudGljYXRpb25TdGF0dXM6OlBpbklu
dmFsaWQ6IHsKLSAgICAgICAgYXV0byBlcnJvciA9IGFkb3B0TlMoW1tOU0Vycm9yIGFsbG9jXSBp
bml0V2l0aERvbWFpbjpBU0NBdXRob3JpemF0aW9uRXJyb3JEb21haW4gY29kZTpBU0NBdXRob3Jp
emF0aW9uRXJyb3JQSU5SZXF1aXJlZCB1c2VySW5mbzpAeyBBU0NQSU5WYWxpZGF0aW9uUmVzdWx0
S2V5OiBAKEFTQ1BJTlZhbGlkYXRpb25SZXN1bHRQSU5JbnZhbGlkKSB9XSk7CisgICAgICAgIGF1
dG8gZXJyb3IgPSBhZG9wdE5TKFtbTlNFcnJvciBhbGxvY10gaW5pdFdpdGhEb21haW46QVNDQXV0
aG9yaXphdGlvbkVycm9yRG9tYWluIGNvZGU6QVNDQXV0aG9yaXphdGlvbkVycm9yUElOSW52YWxp
ZCB1c2VySW5mbzpuaWxdKTsKICAgICAgICAgbV9jcmVkZW50aWFsUmVxdWVzdEhhbmRsZXIobmls
LCBlcnJvci5nZXQoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTExNCw4ICsxMjIsMTIg
QEAgdm9pZCBBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3I6OnVwZGF0ZVByZXNlbnRl
cihXZWJBdXRoZW50aWNhdGlvblN0YXR1cwogICAgICAgICBbbV9wcmVzZW50ZXIgdXBkYXRlSW50
ZXJmYWNlRm9yVXNlclZpc2libGVFcnJvcjplcnJvci5nZXQoKV07CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KLSAgICBjYXNlIFdlYkF1dGhlbnRpY2F0aW9uU3RhdHVzOjpOb0NyZWRlbnRpYWxzRm91
bmQ6Ci0gICAgY2FzZSBXZWJBdXRoZW50aWNhdGlvblN0YXR1czo6TEFOb0NyZWRlbnRpYWw6IHsK
KyAgICBjYXNlIFdlYkF1dGhlbnRpY2F0aW9uU3RhdHVzOjpMQU5vQ3JlZGVudGlhbDoKKyAgICAg
ICAgaWYgKG1fZGVsYXllZFByZXNlbnRhdGlvbk5lZWRzU2VjdXJpdHlLZXkpCisgICAgICAgICAg
ICBbbV9jb250ZXh0IGFkZExvZ2luQ2hvaWNlOmFkb3B0TlMoW2FsbG9jQVNDU2VjdXJpdHlLZXlQ
dWJsaWNLZXlDcmVkZW50aWFsTG9naW5DaG9pY2VJbnN0YW5jZSgpIGluaXRBc3NlcnRpb25QbGFj
ZWhvbGRlckNob2ljZV0pLmdldCgpXTsKKyAgICAgICAgbV9kZWxheWVkUHJlc2VudGF0aW9uKCk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQXV0aGVudGljYXRpb25TdGF0dXM6Ok5vQ3Jl
ZGVudGlhbHNGb3VuZDogewogICAgICAgICBhdXRvIGVycm9yID0gYWRvcHROUyhbW05TRXJyb3Ig
YWxsb2NdIGluaXRXaXRoRG9tYWluOkFTQ0F1dGhvcml6YXRpb25FcnJvckRvbWFpbiBjb2RlOkFT
Q0F1dGhvcml6YXRpb25FcnJvck5vQ3JlZGVudGlhbHNGb3VuZCB1c2VySW5mbzpuaWxdKTsKICAg
ICAgICAgW21fcHJlc2VudGVyIHVwZGF0ZUludGVyZmFjZUZvclVzZXJWaXNpYmxlRXJyb3I6ZXJy
b3IuZ2V0KCldOwogICAgICAgICBicmVhazsKQEAgLTE2Myw3ICsxNzUsNyBAQCB2b2lkIEF1dGhl
bnRpY2F0b3JQcmVzZW50ZXJDb29yZGluYXRvcjo6c2VsZWN0QXNzZXJ0aW9uUmVzcG9uc2UoVmVj
dG9yPFJlZjxBdXRoZQogICAgICAgICAgICAgYXV0byBsb2dpbkNob2ljZSA9IGFkb3B0TlMoW2Fs
bG9jQVNDU2VjdXJpdHlLZXlQdWJsaWNLZXlDcmVkZW50aWFsTG9naW5DaG9pY2VJbnN0YW5jZSgp
IGluaXRXaXRoTmFtZTpyZXNwb25zZS0+bmFtZSgpIGRpc3BsYXlOYW1lOnJlc3BvbnNlLT5kaXNw
bGF5TmFtZSgpIHVzZXJIYW5kbGU6dXNlckhhbmRsZS5nZXQoKV0pOwogICAgICAgICAgICAgW2xv
Z2luQ2hvaWNlcyBhZGRPYmplY3Q6bG9naW5DaG9pY2UuZ2V0KCldOwogCi0gICAgICAgICAgICBt
X2NyZWRlbnRpYWxzLmFkZCgoQVNDTG9naW5DaG9pY2VQcm90b2NvbCAqKWxvZ2luQ2hvaWNlLmdl
dCgpLCBXVEZNb3ZlKHJlc3BvbnNlKSk7CisgICAgICAgICAgICBtX2NyZWRlbnRpYWxzLmFkZChy
ZXNwb25zZS0+bmFtZSgpLCBXVEZNb3ZlKHJlc3BvbnNlKSk7CiAgICAgICAgIH0KIAogICAgICAg
ICBbbV9wcmVzZW50ZXIgdXBkYXRlSW50ZXJmYWNlV2l0aExvZ2luQ2hvaWNlczpsb2dpbkNob2lj
ZXMuZ2V0KCldOwpAQCAtMTcxLDIxICsxODMsMjAgQEAgdm9pZCBBdXRoZW50aWNhdG9yUHJlc2Vu
dGVyQ29vcmRpbmF0b3I6OnNlbGVjdEFzc2VydGlvblJlc3BvbnNlKFZlY3RvcjxSZWY8QXV0aGUK
ICAgICB9CiAKICAgICBpZiAoc291cmNlID09IFdlYkF1dGhlbnRpY2F0aW9uU291cmNlOjpMb2Nh
bCkgewotICAgICAgICBhdXRvIGxvZ2luQ2hvaWNlcyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJh
eSBhbGxvY10gaW5pdF0pOwotCiAgICAgICAgIGZvciAoYXV0byYgcmVzcG9uc2UgOiByZXNwb25z
ZXMpIHsKICAgICAgICAgICAgIFJldGFpblB0cjxOU0RhdGE+IHVzZXJIYW5kbGU7CiAgICAgICAg
ICAgICBpZiAocmVzcG9uc2UtPnVzZXJIYW5kbGUoKSkKICAgICAgICAgICAgICAgICB1c2VySGFu
ZGxlID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczpyZXNwb25zZS0+dXNl
ckhhbmRsZSgpLT5kYXRhKCkgbGVuZ3RoOnJlc3BvbnNlLT51c2VySGFuZGxlKCktPmJ5dGVMZW5n
dGgoKV0pOwogCiAgICAgICAgICAgICBhdXRvIGxvZ2luQ2hvaWNlID0gYWRvcHROUyhbYWxsb2NB
U0NQbGF0Zm9ybVB1YmxpY0tleUNyZWRlbnRpYWxMb2dpbkNob2ljZUluc3RhbmNlKCkgaW5pdFdp
dGhOYW1lOnJlc3BvbnNlLT5uYW1lKCkgZGlzcGxheU5hbWU6cmVzcG9uc2UtPmRpc3BsYXlOYW1l
KCkgdXNlckhhbmRsZTp1c2VySGFuZGxlLmdldCgpXSk7Ci0gICAgICAgICAgICBbbG9naW5DaG9p
Y2VzIGFkZE9iamVjdDpsb2dpbkNob2ljZS5nZXQoKV07CisgICAgICAgICAgICBbbV9jb250ZXh0
IGFkZExvZ2luQ2hvaWNlOmxvZ2luQ2hvaWNlLmdldCgpXTsKIAotICAgICAgICAgICAgbV9jcmVk
ZW50aWFscy5hZGQoKEFTQ0xvZ2luQ2hvaWNlUHJvdG9jb2wgKilsb2dpbkNob2ljZS5nZXQoKSwg
V1RGTW92ZShyZXNwb25zZSkpOworICAgICAgICAgICAgbV9jcmVkZW50aWFscy5hZGQocmVzcG9u
c2UtPm5hbWUoKSwgV1RGTW92ZShyZXNwb25zZSkpOwogICAgICAgICB9CiAKLSAgICAgICAgW2xv
Z2luQ2hvaWNlcyBhZGRPYmplY3RzRnJvbUFycmF5OlttX2NvbnRleHQgbG9naW5DaG9pY2VzXV07
IC8vIEFkZHMgdGhlIHNlY3VyaXR5IGtleSBvcHRpb24gaWYgZXhpc3RzLgotICAgICAgICBbbV9w
cmVzZW50ZXIgdXBkYXRlSW50ZXJmYWNlV2l0aExvZ2luQ2hvaWNlczpsb2dpbkNob2ljZXMuZ2V0
KCldOworICAgICAgICBpZiAobV9kZWxheWVkUHJlc2VudGF0aW9uTmVlZHNTZWN1cml0eUtleSkK
KyAgICAgICAgICAgIFttX2NvbnRleHQgYWRkTG9naW5DaG9pY2U6YWRvcHROUyhbYWxsb2NBU0NT
ZWN1cml0eUtleVB1YmxpY0tleUNyZWRlbnRpYWxMb2dpbkNob2ljZUluc3RhbmNlKCkgaW5pdEFz
c2VydGlvblBsYWNlaG9sZGVyQ2hvaWNlXSkuZ2V0KCldOworICAgICAgICBtX2RlbGF5ZWRQcmVz
ZW50YXRpb24oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZiAvLyBIQVZFKEFTQ19B
VVRIX1VJKQpAQCAtMjI1LDkgKzIzNiw5IEBAIHZvaWQgQXV0aGVudGljYXRvclByZXNlbnRlckNv
b3JkaW5hdG9yOjpzZXRMQUNvbnRleHQoTEFDb250ZXh0ICpjb250ZXh0KQogICAgIG1fbGFDb250
ZXh0ID0gY29udGV4dDsKIH0KIAotdm9pZCBBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0
b3I6OmRpZFNlbGVjdEFzc2VydGlvblJlc3BvbnNlKEFTQ0xvZ2luQ2hvaWNlUHJvdG9jb2wgKmxv
Z2luQ2hvaWNlLCBMQUNvbnRleHQgKmNvbnRleHQpCit2b2lkIEF1dGhlbnRpY2F0b3JQcmVzZW50
ZXJDb29yZGluYXRvcjo6ZGlkU2VsZWN0QXNzZXJ0aW9uUmVzcG9uc2UoY29uc3QgU3RyaW5nJiBj
cmVkZW50aWFsTmFtZSwgTEFDb250ZXh0ICpjb250ZXh0KQogewotICAgIGF1dG8gcmVzcG9uc2Ug
PSBtX2NyZWRlbnRpYWxzLnRha2UobG9naW5DaG9pY2UpOworICAgIGF1dG8gcmVzcG9uc2UgPSBt
X2NyZWRlbnRpYWxzLnRha2UoY3JlZGVudGlhbE5hbWUpOwogICAgIGlmICghcmVzcG9uc2UpCiAg
ICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vQ29jb2EvV0tBU0NBdXRob3JpemF0aW9uUHJlc2VudGVyRGVsZWdhdGUu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XS0FT
Q0F1dGhvcml6YXRpb25QcmVzZW50ZXJEZWxlZ2F0ZS5tbQppbmRleCBjYzU2Zjk3NDYzYzYyNjgx
MmNhNjRjYzQ0M2IxZDIyYTZjMWZkYWM3Li43Y2MxNzA3NDRhOGU0YjVkMDUwNzFlZWJkYTBmNGVi
MGUwMmRmNGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9Db2NvYS9XS0FTQ0F1dGhvcml6YXRpb25QcmVzZW50ZXJEZWxlZ2F0ZS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XS0FTQ0F1
dGhvcml6YXRpb25QcmVzZW50ZXJEZWxlZ2F0ZS5tbQpAQCAtNTUsNyArNTUsOSBAQCAtICh2b2lk
KWF1dGhvcml6YXRpb25QcmVzZW50ZXI6KEFTQ0F1dGhvcml6YXRpb25QcmVzZW50ZXIgKilwcmVz
ZW50ZXIgY3JlZGVudGlhbAogICAgIH1dOwogCiAgICAgaWYgKFtsb2dpbkNob2ljZSBpc0tpbmRP
ZkNsYXNzOldlYktpdDo6Z2V0QVNDUGxhdGZvcm1QdWJsaWNLZXlDcmVkZW50aWFsTG9naW5DaG9p
Y2VDbGFzcygpXSkgewotICAgICAgICBpZiAoWyhBU0NQbGF0Zm9ybVB1YmxpY0tleUNyZWRlbnRp
YWxMb2dpbkNob2ljZSAqKWxvZ2luQ2hvaWNlIGlzUmVnaXN0cmF0aW9uUmVxdWVzdF0pIHsKKyAg
ICAgICAgYXV0byAqcGxhdGZvcm1Mb2dpbkNob2ljZSA9IChBU0NQbGF0Zm9ybVB1YmxpY0tleUNy
ZWRlbnRpYWxMb2dpbkNob2ljZSAqKWxvZ2luQ2hvaWNlOworCisgICAgICAgIGlmIChbcGxhdGZv
cm1Mb2dpbkNob2ljZSBpc1JlZ2lzdHJhdGlvblJlcXVlc3RdKSB7CiAgICAgICAgICAgICBbc2Vs
ZiBkaXNwYXRjaENvb3JkaW5hdG9yQ2FsbGJhY2s6W2NvbnRleHQgPSByZXRhaW5QdHIoY29udGV4
dCldIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGluYXRvciYgY29vcmRpbmF0
b3IpIG11dGFibGUgewogICAgICAgICAgICAgICAgIGNvb3JkaW5hdG9yLnNldExBQ29udGV4dChj
b250ZXh0LmdldCgpKTsKICAgICAgICAgICAgIH1dOwpAQCAtNjMsMTkgKzY1LDIxIEBAIC0gKHZv
aWQpYXV0aG9yaXphdGlvblByZXNlbnRlcjooQVNDQXV0aG9yaXphdGlvblByZXNlbnRlciAqKXBy
ZXNlbnRlciBjcmVkZW50aWFsCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAg
ICAgICBpZiAoIVsoQVNDUGxhdGZvcm1QdWJsaWNLZXlDcmVkZW50aWFsTG9naW5DaG9pY2UgKils
b2dpbkNob2ljZSBpc1JlZ2lzdHJhdGlvblJlcXVlc3RdKSB7Ci0gICAgICAgICAgICBbc2VsZiBk
aXNwYXRjaENvb3JkaW5hdG9yQ2FsbGJhY2s6W2xvZ2luQ2hvaWNlLCBjb250ZXh0ID0gcmV0YWlu
UHRyKGNvbnRleHQpXSAoV2ViS2l0OjpBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3Im
IGNvb3JkaW5hdG9yKSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICBjb29yZGluYXRvci5kaWRT
ZWxlY3RBc3NlcnRpb25SZXNwb25zZSgoQVNDTG9naW5DaG9pY2VQcm90b2NvbCAqKWxvZ2luQ2hv
aWNlLCBjb250ZXh0LmdldCgpKTsKLSAgICAgICAgICAgIH1dOworICAgICAgICBTdHJpbmcgbG9n
aW5DaG9pY2VOYW1lID0gcGxhdGZvcm1Mb2dpbkNob2ljZS5uYW1lOworICAgICAgICBbc2VsZiBk
aXNwYXRjaENvb3JkaW5hdG9yQ2FsbGJhY2s6W2xvZ2luQ2hvaWNlTmFtZSA9IFdURk1vdmUobG9n
aW5DaG9pY2VOYW1lKSwgY29udGV4dCA9IHJldGFpblB0cihjb250ZXh0KV0gKFdlYktpdDo6QXV0
aGVudGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9yJiBjb29yZGluYXRvcikgbXV0YWJsZSB7Cisg
ICAgICAgICAgICBjb29yZGluYXRvci5kaWRTZWxlY3RBc3NlcnRpb25SZXNwb25zZShsb2dpbkNo
b2ljZU5hbWUsIGNvbnRleHQuZ2V0KCkpOworICAgICAgICB9XTsKIAotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB9CisgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoW2xvZ2lu
Q2hvaWNlIGlzS2luZE9mQ2xhc3M6V2ViS2l0OjpnZXRBU0NTZWN1cml0eUtleVB1YmxpY0tleUNy
ZWRlbnRpYWxMb2dpbkNob2ljZUNsYXNzKCldKSB7Ci0gICAgICAgIGlmIChbKEFTQ1NlY3VyaXR5
S2V5UHVibGljS2V5Q3JlZGVudGlhbExvZ2luQ2hvaWNlICopbG9naW5DaG9pY2UgbG9naW5DaG9p
Y2VLaW5kXSA9PSBBU0NTZWN1cml0eUtleVB1YmxpY0tleUNyZWRlbnRpYWxMb2dpbkNob2ljZUtp
bmRBc3NlcnRpb24pIHsKLSAgICAgICAgICAgIFtzZWxmIGRpc3BhdGNoQ29vcmRpbmF0b3JDYWxs
YmFjazpbbG9naW5DaG9pY2VdIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGlu
YXRvciYgY29vcmRpbmF0b3IpIG11dGFibGUgewotICAgICAgICAgICAgICAgIGNvb3JkaW5hdG9y
LmRpZFNlbGVjdEFzc2VydGlvblJlc3BvbnNlKChBU0NMb2dpbkNob2ljZVByb3RvY29sICopbG9n
aW5DaG9pY2UsIG5pbCk7CisgICAgICAgIGF1dG8gKnNlY3VyaXR5S2V5TG9naW5DaG9pY2UgPSAo
QVNDU2VjdXJpdHlLZXlQdWJsaWNLZXlDcmVkZW50aWFsTG9naW5DaG9pY2UgKilsb2dpbkNob2lj
ZTsKKworICAgICAgICBpZiAoW3NlY3VyaXR5S2V5TG9naW5DaG9pY2UgbG9naW5DaG9pY2VLaW5k
XSA9PSBBU0NTZWN1cml0eUtleVB1YmxpY0tleUNyZWRlbnRpYWxMb2dpbkNob2ljZUtpbmRBc3Nl
cnRpb24pIHsKKyAgICAgICAgICAgIFN0cmluZyBsb2dpbkNob2ljZU5hbWUgPSBzZWN1cml0eUtl
eUxvZ2luQ2hvaWNlLm5hbWU7CisgICAgICAgICAgICBbc2VsZiBkaXNwYXRjaENvb3JkaW5hdG9y
Q2FsbGJhY2s6W2xvZ2luQ2hvaWNlTmFtZSA9IFdURk1vdmUobG9naW5DaG9pY2VOYW1lKV0gKFdl
YktpdDo6QXV0aGVudGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9yJiBjb29yZGluYXRvcikgbXV0
YWJsZSB7CisgICAgICAgICAgICAgICAgY29vcmRpbmF0b3IuZGlkU2VsZWN0QXNzZXJ0aW9uUmVz
cG9uc2UobG9naW5DaG9pY2VOYW1lLCBuaWwpOwogICAgICAgICAgICAgfV07CiAKICAgICAgICAg
ICAgIHJldHVybjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417643</attachid>
            <date>2021-01-14 12:30:14 -0800</date>
            <delta_ts>2021-01-14 13:06:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220617-20210114123013.patch</filename>
            <type>text/plain</type>
            <size>15412</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY5MDlkMTk0MDA0NTkzNDMx
YzgxOWRiNjI2MGQ1ZmM1Y2IwYmE0ZWIuLjQ2MDY5YjIzZjA4NTM5YmZjZTU0OTE0NGJmZDM2YWYx
MDUwNmNmYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjEtMDEtMTQgIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFBvbGlzaCB0
aGUgbmV3IFdlYkF1dGhuIFVJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjA2MTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzczMTg1NDcwPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
ZG9lcyB0aGUgZm9sbG93aW5nIGZldyB0aGluZ3M6CisgICAgICAgIDEuIEl0IHVwZGF0ZXMgdGhl
IHdheSBob3cgdGhlIFBJTiBlcnJvciBmb3Igc2VjdXJpdHkga2V5cyBpcyBoYW5kbGVkLgorICAg
ICAgICAyLiBJdCB1c2VzIHRoZSBjcmVkZW50aWFsIG5hbWUgdG8gaWRlbnRpZnkgYSBjcmVkZW50
aWFsIHRoYXQgcGFzc2VkIHRvIHRoZSBVSSBpbnN0ZWFkIG9mIHRoZSBsb2dpbiBjaG9pY2Ugb2Jq
ZWN0CisgICAgICAgIGFzIGl0IHR1cm5zIG91dCB0aGF0IHRoZSBVSSB3b24ndCByZXR1cm4gdGhl
IHNhbWUgb2JqZWN0IGF0IGFsbC4KKyAgICAgICAgMy4gSXQgZGVsYXlzIHRvIHNob3cgdGhlIFVJ
IGlmIHRoZSBwbGF0Zm9ybSBhdXRoZW50aWNhdG9yIGlzIGludm9sdmVkIGdpdmVuIHRoZSBwbGF0
Zm9ybSBhdXRoZW50aWNhdG9yIG1pZ2h0IG5vdCBjb250YWluCisgICAgICAgIHRoZSByZXF1ZXN0
ZWQgY3JlZGVudGlhbHMuIElmIG5vdCwgd2Ugc2hvdWxkIGVpdGhlciBzaG93IGFuIGVycm9yIG9y
IGp1c3QgcmVxdWVzdGluZyB0aGUgc2VjdXJpdHkga2V5IG9uZXMuCisKKyAgICAgICAgQ292ZXJl
ZCBieSBtYW51YWwgdGVzdHMuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvQ29jb2EvQXV0aGVu
dGljYXRpb25TZXJ2aWNlc0NvcmVTUEkuaDoKKyAgICAgICAgKE5TX0VSUk9SX0VOVU0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9BdXRoZW50aWNhdG9yUHJl
c2VudGVyQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQ29jb2EvQXV0aGVudGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9yLm1tOgorICAgICAgICAo
V2ViS2l0OjpBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3I6OkF1dGhlbnRpY2F0b3JQ
cmVzZW50ZXJDb29yZGluYXRvcik6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JQcmVz
ZW50ZXJDb29yZGluYXRvcjo6dXBkYXRlUHJlc2VudGVyKToKKyAgICAgICAgKFdlYktpdDo6QXV0
aGVudGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9yOjpzZWxlY3RBc3NlcnRpb25SZXNwb25zZSk6
CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGluYXRvcjo6ZGlk
U2VsZWN0QXNzZXJ0aW9uUmVzcG9uc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9Db2NvYS9XS0FTQ0F1dGhvcml6YXRpb25QcmVzZW50ZXJEZWxlZ2F0ZS5tbToKKyAg
ICAgICAgKC1bV0tBU0NBdXRob3JpemF0aW9uUHJlc2VudGVyRGVsZWdhdGUgYXV0aG9yaXphdGlv
blByZXNlbnRlcjpjcmVkZW50aWFsUmVxdWVzdGVkRm9yTG9naW5DaG9pY2U6YXV0aGVudGljYXRl
ZENvbnRleHQ6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisKIDIwMjEtMDEtMTIgIEJKIEJ1cmcgIDxi
YnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBXZWIgSW5zcGVjdG9yOiBtb3ZlIGJy
b3dzZXIgZG9tYWluIGFjdGl2YXRpb24gbWV0aG9kcyBiYWNrIHRvIFdLV2ViVmlldyBhbmQgVUlE
ZWxlZ2F0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQXV0
aGVudGljYXRpb25TZXJ2aWNlc0NvcmVTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3Bp
L0NvY29hL0F1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU1BJLmgKaW5kZXggOGFlYWI0NGFjYTRl
MzljYzZjNjA2MGE2YTkxZWYzNjBjMWQwYTE2NC4uOWNiOWM1MDhjMTBjMGI2OGU0ZDMzYmJkZGVi
N2NlNmM1ODk0MzYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29j
b2EvQXV0aGVudGljYXRpb25TZXJ2aWNlc0NvcmVTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL3NwaS9Db2NvYS9BdXRoZW50aWNhdGlvblNlcnZpY2VzQ29yZVNQSS5oCkBAIC0xNzIs
MTQgKzE3Miw5IEBAIHR5cGVkZWYgTlNfRVJST1JfRU5VTShBU0NBdXRob3JpemF0aW9uRXJyb3JE
b21haW4sIEFTQ0F1dGhvcml6YXRpb25FcnJvcikgewogICAgIEFTQ0F1dGhvcml6YXRpb25FcnJv
ck5vQ3JlZGVudGlhbHNGb3VuZCwKICAgICBBU0NBdXRob3JpemF0aW9uRXJyb3JMQUVycm9yLAog
ICAgIEFTQ0F1dGhvcml6YXRpb25FcnJvckxBRXhjbHVkZUNyZWRlbnRpYWxzTWF0Y2hlZCwKLX07
Ci0KLWV4dGVybiBOU1N0cmluZyAqIGNvbnN0IEFTQ1BJTlZhbGlkYXRpb25SZXN1bHRLZXk7Ci0K
LXR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIEFTQ1BJTlZhbGlkYXRpb25SZXN1bHQpIHsKLSAg
ICBBU0NQSU5WYWxpZGF0aW9uUmVzdWx0UElOQmxvY2tlZCwKLSAgICBBU0NQSU5WYWxpZGF0aW9u
UmVzdWx0UElOQXV0aEJsb2NrZWQsCi0gICAgQVNDUElOVmFsaWRhdGlvblJlc3VsdFBJTkludmFs
aWQsCisgICAgQVNDQXV0aG9yaXphdGlvbkVycm9yUElOSW52YWxpZCwKKyAgICBBU0NBdXRob3Jp
emF0aW9uRXJyb3JBdXRoZW50aWNhdG9yVGVtcG9yYXJpbHlMb2NrZWQsCisgICAgQVNDQXV0aG9y
aXphdGlvbkVycm9yQXV0aGVudGljYXRvclBlcm1hbmVudGx5TG9ja2VkLAogfTsKIAogTlNfQVNT
VU1FX05PTk5VTExfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9Db2NvYS9BdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3IuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0F1dGhlbnRp
Y2F0b3JQcmVzZW50ZXJDb29yZGluYXRvci5oCmluZGV4IGYxMzkzNTEyZmUwYjg1OWVjZTM4Mjli
ZjIzOWY2YWU2YzE4NzQxNTUuLmQ1ZmJiM2E5YTBjZDFjYjk2M2EyODVkZDViZWY1NWE5MDRiMjA5
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L0NvY29hL0F1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0F1dGhlbnRpY2F0b3JQcmVz
ZW50ZXJDb29yZGluYXRvci5oCkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
c2V0Q3JlZGVudGlhbFJlcXVlc3RIYW5kbGVyKENyZWRlbnRpYWxSZXF1ZXN0SGFuZGxlciYmIGhh
bmRsZXIpIHsgbV9jcmVkZW50aWFsUmVxdWVzdEhhbmRsZXIgPSBXVEZNb3ZlKGhhbmRsZXIpOyB9
CiAgICAgdm9pZCBzZXRMQUNvbnRleHQoTEFDb250ZXh0ICopOwotICAgIHZvaWQgZGlkU2VsZWN0
QXNzZXJ0aW9uUmVzcG9uc2UoQVNDTG9naW5DaG9pY2VQcm90b2NvbCAqLCBMQUNvbnRleHQgKik7
CisgICAgdm9pZCBkaWRTZWxlY3RBc3NlcnRpb25SZXNwb25zZShjb25zdCBTdHJpbmcmIGNyZWRl
bnRpYWxOYW1lLCBMQUNvbnRleHQgKik7CiAgICAgdm9pZCBzZXRQaW4oY29uc3QgU3RyaW5nJik7
CiAKIHByaXZhdGU6CkBAIC03Myw2ICs3Myw4IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPEFT
Q0F1dGhvcml6YXRpb25QcmVzZW50YXRpb25Db250ZXh0PiBtX2NvbnRleHQ7CiAgICAgUmV0YWlu
UHRyPEFTQ0F1dGhvcml6YXRpb25QcmVzZW50ZXI+IG1fcHJlc2VudGVyOwogICAgIFJldGFpblB0
cjxXS0FTQ0F1dGhvcml6YXRpb25QcmVzZW50ZXJEZWxlZ2F0ZT4gbV9wcmVzZW50ZXJEZWxlZ2F0
ZTsKKyAgICBGdW5jdGlvbjx2b2lkKCk+IG1fZGVsYXllZFByZXNlbnRhdGlvbjsKKyAgICBib29s
IG1fZGVsYXllZFByZXNlbnRhdGlvbk5lZWRzU2VjdXJpdHlLZXkgeyBmYWxzZSB9OwogCiAgICAg
Q3JlZGVudGlhbFJlcXVlc3RIYW5kbGVyIG1fY3JlZGVudGlhbFJlcXVlc3RIYW5kbGVyOwogCkBA
IC04MCw3ICs4Miw3IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPExBQ29udGV4dD4gbV9sYUNv
bnRleHQ7CiAKICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkF1dGhlbnRpY2F0
b3JBc3NlcnRpb25SZXNwb25zZSopPiBtX3Jlc3BvbnNlSGFuZGxlcjsKLSAgICBIYXNoTWFwPEFT
Q0xvZ2luQ2hvaWNlUHJvdG9jb2wgKiwgUmVmUHRyPFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBc3Nl
cnRpb25SZXNwb25zZT4+IG1fY3JlZGVudGlhbHM7CisgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0
cjxXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U+PiBtX2NyZWRlbnRpYWxz
OwogCiAgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBTdHJpbmcmKT4gbV9waW5IYW5k
bGVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL0NvY29hL0F1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGluYXRvci5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0F1dGhlbnRpY2F0b3JQ
cmVzZW50ZXJDb29yZGluYXRvci5tbQppbmRleCA1NTg5ZjA1OGM1ODUxY2FhYmQwOGY3ZGIwZWIy
ODVhZmEwODUzNDZiLi4xNjM2NGI1OGE4NGRlNWVjODhjYmE0YmFjYmY3M2FjNGQyY2VmMWZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2Nv
YS9BdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3IubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvQXV0aGVudGljYXRvclByZXNlbnRl
ckNvb3JkaW5hdG9yLm1tCkBAIC01Myw3ICs1Myw3IEBAIEF1dGhlbnRpY2F0b3JQcmVzZW50ZXJD
b29yZGluYXRvcjo6QXV0aGVudGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9yKGNvbnN0IEF1dGhl
CiAgICAgICAgICAgICBbbV9jb250ZXh0IGFkZExvZ2luQ2hvaWNlOmFkb3B0TlMoW2FsbG9jQVND
U2VjdXJpdHlLZXlQdWJsaWNLZXlDcmVkZW50aWFsTG9naW5DaG9pY2VJbnN0YW5jZSgpIGluaXRS
ZWdpc3RyYXRpb25DaG9pY2VdKS5nZXQoKV07CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2xp
ZW50RGF0YVR5cGU6OkdldDoKLSAgICAgICAgaWYgKHRyYW5zcG9ydHMuY29udGFpbnMoQXV0aGVu
dGljYXRvclRyYW5zcG9ydDo6VXNiKSB8fCB0cmFuc3BvcnRzLmNvbnRhaW5zKEF1dGhlbnRpY2F0
b3JUcmFuc3BvcnQ6Ok5mYykpCisgICAgICAgIGlmICgodHJhbnNwb3J0cy5jb250YWlucyhBdXRo
ZW50aWNhdG9yVHJhbnNwb3J0OjpVc2IpIHx8IHRyYW5zcG9ydHMuY29udGFpbnMoQXV0aGVudGlj
YXRvclRyYW5zcG9ydDo6TmZjKSkgJiYgIXRyYW5zcG9ydHMuY29udGFpbnMoQXV0aGVudGljYXRv
clRyYW5zcG9ydDo6SW50ZXJuYWwpKQogICAgICAgICAgICAgW21fY29udGV4dCBhZGRMb2dpbkNo
b2ljZTphZG9wdE5TKFthbGxvY0FTQ1NlY3VyaXR5S2V5UHVibGljS2V5Q3JlZGVudGlhbExvZ2lu
Q2hvaWNlSW5zdGFuY2UoKSBpbml0QXNzZXJ0aW9uUGxhY2Vob2xkZXJDaG9pY2VdKS5nZXQoKV07
CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CkBAIC02NSw3ICs2NSw2IEBAIEF1dGhlbnRp
Y2F0b3JQcmVzZW50ZXJDb29yZGluYXRvcjo6QXV0aGVudGljYXRvclByZXNlbnRlckNvb3JkaW5h
dG9yKGNvbnN0IEF1dGhlCiAgICAgW21fcHJlc2VudGVyIHNldERlbGVnYXRlOm1fcHJlc2VudGVy
RGVsZWdhdGUuZ2V0KCldOwogCiAgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9j
a1B0cihbbWFuYWdlciA9IG1fbWFuYWdlcl0gKGlkPEFTQ0NyZWRlbnRpYWxQcm90b2NvbD4gY3Jl
ZGVudGlhbCwgTlNFcnJvciAqZXJyb3IpIG11dGFibGUgewotICAgICAgICBBU1NFUlQoIVJ1bkxv
b3A6OmlzTWFpbigpKTsKICAgICAgICAgaWYgKGNyZWRlbnRpYWwgfHwgIWVycm9yKQogICAgICAg
ICAgICAgcmV0dXJuOwogCkBAIC03Niw2ICs3NSwxNSBAQCBBdXRoZW50aWNhdG9yUHJlc2VudGVy
Q29vcmRpbmF0b3I6OkF1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGluYXRvcihjb25zdCBBdXRo
ZQogICAgICAgICAgICAgICAgIG1hbmFnZXItPmNhbmNlbCgpOwogICAgICAgICB9KTsKICAgICB9
KTsKKworICAgIGlmICh0eXBlID09IENsaWVudERhdGFUeXBlOjpHZXQgJiYgdHJhbnNwb3J0cy5j
b250YWlucyhBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpJbnRlcm5hbCkpIHsKKyAgICAgICAgbV9k
ZWxheWVkUHJlc2VudGF0aW9uTmVlZHNTZWN1cml0eUtleSA9ICh0cmFuc3BvcnRzLmNvbnRhaW5z
KEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6OlVzYikgfHwgdHJhbnNwb3J0cy5jb250YWlucyhBdXRo
ZW50aWNhdG9yVHJhbnNwb3J0OjpOZmMpKTsKKyAgICAgICAgbV9kZWxheWVkUHJlc2VudGF0aW9u
ID0gW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHRoaXNd
IHsKKyAgICAgICAgICAgIFttX3ByZXNlbnRlciBwcmVzZW50QXV0aG9yaXphdGlvbldpdGhDb250
ZXh0Om1fY29udGV4dC5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlci5n
ZXQoKV07CisgICAgICAgIH07CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBbbV9wcmVz
ZW50ZXIgcHJlc2VudEF1dGhvcml6YXRpb25XaXRoQ29udGV4dDptX2NvbnRleHQuZ2V0KCkgY29t
cGxldGlvbkhhbmRsZXI6Y29tcGxldGlvbkhhbmRsZXIuZ2V0KCldOwogI2VuZGlmIC8vIEhBVkUo
QVNDX0FVVEhfVUkpCiB9CkBAIC05NSwxNyArMTAzLDE3IEBAIHZvaWQgQXV0aGVudGljYXRvclBy
ZXNlbnRlckNvb3JkaW5hdG9yOjp1cGRhdGVQcmVzZW50ZXIoV2ViQXV0aGVudGljYXRpb25TdGF0
dXMKICNpZiBIQVZFKEFTQ19BVVRIX1VJKQogICAgIHN3aXRjaCAoc3RhdHVzKSB7CiAgICAgY2Fz
ZSBXZWJBdXRoZW50aWNhdGlvblN0YXR1czo6UGluQmxvY2tlZDogewotICAgICAgICBhdXRvIGVy
cm9yID0gYWRvcHROUyhbW05TRXJyb3IgYWxsb2NdIGluaXRXaXRoRG9tYWluOkFTQ0F1dGhvcml6
YXRpb25FcnJvckRvbWFpbiBjb2RlOkFTQ0F1dGhvcml6YXRpb25FcnJvclBJTlJlcXVpcmVkIHVz
ZXJJbmZvOkB7IEFTQ1BJTlZhbGlkYXRpb25SZXN1bHRLZXk6IEAoQVNDUElOVmFsaWRhdGlvblJl
c3VsdFBJTkJsb2NrZWQpIH1dKTsKKyAgICAgICAgYXV0byBlcnJvciA9IGFkb3B0TlMoW1tOU0Vy
cm9yIGFsbG9jXSBpbml0V2l0aERvbWFpbjpBU0NBdXRob3JpemF0aW9uRXJyb3JEb21haW4gY29k
ZTpBU0NBdXRob3JpemF0aW9uRXJyb3JBdXRoZW50aWNhdG9yUGVybWFuZW50bHlMb2NrZWQgdXNl
ckluZm86bmlsXSk7CiAgICAgICAgIG1fY3JlZGVudGlhbFJlcXVlc3RIYW5kbGVyKG5pbCwgZXJy
b3IuZ2V0KCkpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBXZWJBdXRoZW50aWNh
dGlvblN0YXR1czo6UGluQXV0aEJsb2NrZWQ6IHsKLSAgICAgICAgYXV0byBlcnJvciA9IGFkb3B0
TlMoW1tOU0Vycm9yIGFsbG9jXSBpbml0V2l0aERvbWFpbjpBU0NBdXRob3JpemF0aW9uRXJyb3JE
b21haW4gY29kZTpBU0NBdXRob3JpemF0aW9uRXJyb3JQSU5SZXF1aXJlZCB1c2VySW5mbzpAeyBB
U0NQSU5WYWxpZGF0aW9uUmVzdWx0S2V5OiBAKEFTQ1BJTlZhbGlkYXRpb25SZXN1bHRQSU5BdXRo
QmxvY2tlZCkgfV0pOworICAgICAgICBhdXRvIGVycm9yID0gYWRvcHROUyhbW05TRXJyb3IgYWxs
b2NdIGluaXRXaXRoRG9tYWluOkFTQ0F1dGhvcml6YXRpb25FcnJvckRvbWFpbiBjb2RlOkFTQ0F1
dGhvcml6YXRpb25FcnJvckF1dGhlbnRpY2F0b3JUZW1wb3JhcmlseUxvY2tlZCB1c2VySW5mbzpu
aWxdKTsKICAgICAgICAgbV9jcmVkZW50aWFsUmVxdWVzdEhhbmRsZXIobmlsLCBlcnJvci5nZXQo
KSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFdlYkF1dGhlbnRpY2F0aW9uU3Rh
dHVzOjpQaW5JbnZhbGlkOiB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBhZG9wdE5TKFtbTlNFcnJv
ciBhbGxvY10gaW5pdFdpdGhEb21haW46QVNDQXV0aG9yaXphdGlvbkVycm9yRG9tYWluIGNvZGU6
QVNDQXV0aG9yaXphdGlvbkVycm9yUElOUmVxdWlyZWQgdXNlckluZm86QHsgQVNDUElOVmFsaWRh
dGlvblJlc3VsdEtleTogQChBU0NQSU5WYWxpZGF0aW9uUmVzdWx0UElOSW52YWxpZCkgfV0pOwor
ICAgICAgICBhdXRvIGVycm9yID0gYWRvcHROUyhbW05TRXJyb3IgYWxsb2NdIGluaXRXaXRoRG9t
YWluOkFTQ0F1dGhvcml6YXRpb25FcnJvckRvbWFpbiBjb2RlOkFTQ0F1dGhvcml6YXRpb25FcnJv
clBJTkludmFsaWQgdXNlckluZm86bmlsXSk7CiAgICAgICAgIG1fY3JlZGVudGlhbFJlcXVlc3RI
YW5kbGVyKG5pbCwgZXJyb3IuZ2V0KCkpOwogICAgICAgICBicmVhazsKICAgICB9CkBAIC0xMTQs
OCArMTIyLDEyIEBAIHZvaWQgQXV0aGVudGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9yOjp1cGRh
dGVQcmVzZW50ZXIoV2ViQXV0aGVudGljYXRpb25TdGF0dXMKICAgICAgICAgW21fcHJlc2VudGVy
IHVwZGF0ZUludGVyZmFjZUZvclVzZXJWaXNpYmxlRXJyb3I6ZXJyb3IuZ2V0KCldOwogICAgICAg
ICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBXZWJBdXRoZW50aWNhdGlvblN0YXR1czo6Tm9DcmVk
ZW50aWFsc0ZvdW5kOgotICAgIGNhc2UgV2ViQXV0aGVudGljYXRpb25TdGF0dXM6OkxBTm9DcmVk
ZW50aWFsOiB7CisgICAgY2FzZSBXZWJBdXRoZW50aWNhdGlvblN0YXR1czo6TEFOb0NyZWRlbnRp
YWw6CisgICAgICAgIGlmIChtX2RlbGF5ZWRQcmVzZW50YXRpb25OZWVkc1NlY3VyaXR5S2V5KQor
ICAgICAgICAgICAgW21fY29udGV4dCBhZGRMb2dpbkNob2ljZTphZG9wdE5TKFthbGxvY0FTQ1Nl
Y3VyaXR5S2V5UHVibGljS2V5Q3JlZGVudGlhbExvZ2luQ2hvaWNlSW5zdGFuY2UoKSBpbml0QXNz
ZXJ0aW9uUGxhY2Vob2xkZXJDaG9pY2VdKS5nZXQoKV07CisgICAgICAgIG1fZGVsYXllZFByZXNl
bnRhdGlvbigpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkF1dGhlbnRpY2F0aW9uU3Rh
dHVzOjpOb0NyZWRlbnRpYWxzRm91bmQ6IHsKICAgICAgICAgYXV0byBlcnJvciA9IGFkb3B0TlMo
W1tOU0Vycm9yIGFsbG9jXSBpbml0V2l0aERvbWFpbjpBU0NBdXRob3JpemF0aW9uRXJyb3JEb21h
aW4gY29kZTpBU0NBdXRob3JpemF0aW9uRXJyb3JOb0NyZWRlbnRpYWxzRm91bmQgdXNlckluZm86
bmlsXSk7CiAgICAgICAgIFttX3ByZXNlbnRlciB1cGRhdGVJbnRlcmZhY2VGb3JVc2VyVmlzaWJs
ZUVycm9yOmVycm9yLmdldCgpXTsKICAgICAgICAgYnJlYWs7CkBAIC0xNjMsNyArMTc1LDcgQEAg
dm9pZCBBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3I6OnNlbGVjdEFzc2VydGlvblJl
c3BvbnNlKFZlY3RvcjxSZWY8QXV0aGUKICAgICAgICAgICAgIGF1dG8gbG9naW5DaG9pY2UgPSBh
ZG9wdE5TKFthbGxvY0FTQ1NlY3VyaXR5S2V5UHVibGljS2V5Q3JlZGVudGlhbExvZ2luQ2hvaWNl
SW5zdGFuY2UoKSBpbml0V2l0aE5hbWU6cmVzcG9uc2UtPm5hbWUoKSBkaXNwbGF5TmFtZTpyZXNw
b25zZS0+ZGlzcGxheU5hbWUoKSB1c2VySGFuZGxlOnVzZXJIYW5kbGUuZ2V0KCldKTsKICAgICAg
ICAgICAgIFtsb2dpbkNob2ljZXMgYWRkT2JqZWN0OmxvZ2luQ2hvaWNlLmdldCgpXTsKIAotICAg
ICAgICAgICAgbV9jcmVkZW50aWFscy5hZGQoKEFTQ0xvZ2luQ2hvaWNlUHJvdG9jb2wgKilsb2dp
bkNob2ljZS5nZXQoKSwgV1RGTW92ZShyZXNwb25zZSkpOworICAgICAgICAgICAgbV9jcmVkZW50
aWFscy5hZGQocmVzcG9uc2UtPm5hbWUoKSwgV1RGTW92ZShyZXNwb25zZSkpOwogICAgICAgICB9
CiAKICAgICAgICAgW21fcHJlc2VudGVyIHVwZGF0ZUludGVyZmFjZVdpdGhMb2dpbkNob2ljZXM6
bG9naW5DaG9pY2VzLmdldCgpXTsKQEAgLTE3MSwyMSArMTgzLDIwIEBAIHZvaWQgQXV0aGVudGlj
YXRvclByZXNlbnRlckNvb3JkaW5hdG9yOjpzZWxlY3RBc3NlcnRpb25SZXNwb25zZShWZWN0b3I8
UmVmPEF1dGhlCiAgICAgfQogCiAgICAgaWYgKHNvdXJjZSA9PSBXZWJBdXRoZW50aWNhdGlvblNv
dXJjZTo6TG9jYWwpIHsKLSAgICAgICAgYXV0byBsb2dpbkNob2ljZXMgPSBhZG9wdE5TKFtbTlNN
dXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKLQogICAgICAgICBmb3IgKGF1dG8mIHJlc3BvbnNl
IDogcmVzcG9uc2VzKSB7CiAgICAgICAgICAgICBSZXRhaW5QdHI8TlNEYXRhPiB1c2VySGFuZGxl
OwogICAgICAgICAgICAgaWYgKHJlc3BvbnNlLT51c2VySGFuZGxlKCkpCiAgICAgICAgICAgICAg
ICAgdXNlckhhbmRsZSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6cmVz
cG9uc2UtPnVzZXJIYW5kbGUoKS0+ZGF0YSgpIGxlbmd0aDpyZXNwb25zZS0+dXNlckhhbmRsZSgp
LT5ieXRlTGVuZ3RoKCldKTsKIAogICAgICAgICAgICAgYXV0byBsb2dpbkNob2ljZSA9IGFkb3B0
TlMoW2FsbG9jQVNDUGxhdGZvcm1QdWJsaWNLZXlDcmVkZW50aWFsTG9naW5DaG9pY2VJbnN0YW5j
ZSgpIGluaXRXaXRoTmFtZTpyZXNwb25zZS0+bmFtZSgpIGRpc3BsYXlOYW1lOnJlc3BvbnNlLT5k
aXNwbGF5TmFtZSgpIHVzZXJIYW5kbGU6dXNlckhhbmRsZS5nZXQoKV0pOwotICAgICAgICAgICAg
W2xvZ2luQ2hvaWNlcyBhZGRPYmplY3Q6bG9naW5DaG9pY2UuZ2V0KCldOworICAgICAgICAgICAg
W21fY29udGV4dCBhZGRMb2dpbkNob2ljZTpsb2dpbkNob2ljZS5nZXQoKV07CiAKLSAgICAgICAg
ICAgIG1fY3JlZGVudGlhbHMuYWRkKChBU0NMb2dpbkNob2ljZVByb3RvY29sICopbG9naW5DaG9p
Y2UuZ2V0KCksIFdURk1vdmUocmVzcG9uc2UpKTsKKyAgICAgICAgICAgIG1fY3JlZGVudGlhbHMu
YWRkKHJlc3BvbnNlLT5uYW1lKCksIFdURk1vdmUocmVzcG9uc2UpKTsKICAgICAgICAgfQogCi0g
ICAgICAgIFtsb2dpbkNob2ljZXMgYWRkT2JqZWN0c0Zyb21BcnJheTpbbV9jb250ZXh0IGxvZ2lu
Q2hvaWNlc11dOyAvLyBBZGRzIHRoZSBzZWN1cml0eSBrZXkgb3B0aW9uIGlmIGV4aXN0cy4KLSAg
ICAgICAgW21fcHJlc2VudGVyIHVwZGF0ZUludGVyZmFjZVdpdGhMb2dpbkNob2ljZXM6bG9naW5D
aG9pY2VzLmdldCgpXTsKKyAgICAgICAgaWYgKG1fZGVsYXllZFByZXNlbnRhdGlvbk5lZWRzU2Vj
dXJpdHlLZXkpCisgICAgICAgICAgICBbbV9jb250ZXh0IGFkZExvZ2luQ2hvaWNlOmFkb3B0TlMo
W2FsbG9jQVNDU2VjdXJpdHlLZXlQdWJsaWNLZXlDcmVkZW50aWFsTG9naW5DaG9pY2VJbnN0YW5j
ZSgpIGluaXRBc3NlcnRpb25QbGFjZWhvbGRlckNob2ljZV0pLmdldCgpXTsKKyAgICAgICAgbV9k
ZWxheWVkUHJlc2VudGF0aW9uKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYgLy8g
SEFWRShBU0NfQVVUSF9VSSkKQEAgLTIyNSw5ICsyMzYsOSBAQCB2b2lkIEF1dGhlbnRpY2F0b3JQ
cmVzZW50ZXJDb29yZGluYXRvcjo6c2V0TEFDb250ZXh0KExBQ29udGV4dCAqY29udGV4dCkKICAg
ICBtX2xhQ29udGV4dCA9IGNvbnRleHQ7CiB9CiAKLXZvaWQgQXV0aGVudGljYXRvclByZXNlbnRl
ckNvb3JkaW5hdG9yOjpkaWRTZWxlY3RBc3NlcnRpb25SZXNwb25zZShBU0NMb2dpbkNob2ljZVBy
b3RvY29sICpsb2dpbkNob2ljZSwgTEFDb250ZXh0ICpjb250ZXh0KQordm9pZCBBdXRoZW50aWNh
dG9yUHJlc2VudGVyQ29vcmRpbmF0b3I6OmRpZFNlbGVjdEFzc2VydGlvblJlc3BvbnNlKGNvbnN0
IFN0cmluZyYgY3JlZGVudGlhbE5hbWUsIExBQ29udGV4dCAqY29udGV4dCkKIHsKLSAgICBhdXRv
IHJlc3BvbnNlID0gbV9jcmVkZW50aWFscy50YWtlKGxvZ2luQ2hvaWNlKTsKKyAgICBhdXRvIHJl
c3BvbnNlID0gbV9jcmVkZW50aWFscy50YWtlKGNyZWRlbnRpYWxOYW1lKTsKICAgICBpZiAoIXJl
c3BvbnNlKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dLQVNDQXV0aG9yaXphdGlvblByZXNlbnRl
ckRlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
Q29jb2EvV0tBU0NBdXRob3JpemF0aW9uUHJlc2VudGVyRGVsZWdhdGUubW0KaW5kZXggY2M1NmY5
NzQ2M2M2MjY4MTJjYTY0Y2M0NDNiMWQyMmE2YzFmZGFjNy4uN2NjMTcwNzQ0YThlNGI1ZDA1MDcx
ZWViZGEwZjRlYjBlMDJkZjRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vQ29jb2EvV0tBU0NBdXRob3JpemF0aW9uUHJlc2VudGVyRGVsZWdh
dGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29j
b2EvV0tBU0NBdXRob3JpemF0aW9uUHJlc2VudGVyRGVsZWdhdGUubW0KQEAgLTU1LDcgKzU1LDkg
QEAgLSAodm9pZClhdXRob3JpemF0aW9uUHJlc2VudGVyOihBU0NBdXRob3JpemF0aW9uUHJlc2Vu
dGVyICopcHJlc2VudGVyIGNyZWRlbnRpYWwKICAgICB9XTsKIAogICAgIGlmIChbbG9naW5DaG9p
Y2UgaXNLaW5kT2ZDbGFzczpXZWJLaXQ6OmdldEFTQ1BsYXRmb3JtUHVibGljS2V5Q3JlZGVudGlh
bExvZ2luQ2hvaWNlQ2xhc3MoKV0pIHsKLSAgICAgICAgaWYgKFsoQVNDUGxhdGZvcm1QdWJsaWNL
ZXlDcmVkZW50aWFsTG9naW5DaG9pY2UgKilsb2dpbkNob2ljZSBpc1JlZ2lzdHJhdGlvblJlcXVl
c3RdKSB7CisgICAgICAgIGF1dG8gKnBsYXRmb3JtTG9naW5DaG9pY2UgPSAoQVNDUGxhdGZvcm1Q
dWJsaWNLZXlDcmVkZW50aWFsTG9naW5DaG9pY2UgKilsb2dpbkNob2ljZTsKKworICAgICAgICBp
ZiAoW3BsYXRmb3JtTG9naW5DaG9pY2UgaXNSZWdpc3RyYXRpb25SZXF1ZXN0XSkgewogICAgICAg
ICAgICAgW3NlbGYgZGlzcGF0Y2hDb29yZGluYXRvckNhbGxiYWNrOltjb250ZXh0ID0gcmV0YWlu
UHRyKGNvbnRleHQpXSAoV2ViS2l0OjpBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3Im
IGNvb3JkaW5hdG9yKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBjb29yZGluYXRvci5zZXRM
QUNvbnRleHQoY29udGV4dC5nZXQoKSk7CiAgICAgICAgICAgICB9XTsKQEAgLTYzLDE5ICs2NSwy
MSBAQCAtICh2b2lkKWF1dGhvcml6YXRpb25QcmVzZW50ZXI6KEFTQ0F1dGhvcml6YXRpb25QcmVz
ZW50ZXIgKilwcmVzZW50ZXIgY3JlZGVudGlhbAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAKLSAgICAgICAgaWYgKCFbKEFTQ1BsYXRmb3JtUHVibGljS2V5Q3JlZGVudGlhbExvZ2lu
Q2hvaWNlICopbG9naW5DaG9pY2UgaXNSZWdpc3RyYXRpb25SZXF1ZXN0XSkgewotICAgICAgICAg
ICAgW3NlbGYgZGlzcGF0Y2hDb29yZGluYXRvckNhbGxiYWNrOltsb2dpbkNob2ljZSwgY29udGV4
dCA9IHJldGFpblB0cihjb250ZXh0KV0gKFdlYktpdDo6QXV0aGVudGljYXRvclByZXNlbnRlckNv
b3JkaW5hdG9yJiBjb29yZGluYXRvcikgbXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAgY29vcmRp
bmF0b3IuZGlkU2VsZWN0QXNzZXJ0aW9uUmVzcG9uc2UoKEFTQ0xvZ2luQ2hvaWNlUHJvdG9jb2wg
Kilsb2dpbkNob2ljZSwgY29udGV4dC5nZXQoKSk7Ci0gICAgICAgICAgICB9XTsKKyAgICAgICAg
U3RyaW5nIGxvZ2luQ2hvaWNlTmFtZSA9IHBsYXRmb3JtTG9naW5DaG9pY2UubmFtZTsKKyAgICAg
ICAgW3NlbGYgZGlzcGF0Y2hDb29yZGluYXRvckNhbGxiYWNrOltsb2dpbkNob2ljZU5hbWUgPSBX
VEZNb3ZlKGxvZ2luQ2hvaWNlTmFtZSksIGNvbnRleHQgPSByZXRhaW5QdHIoY29udGV4dCldIChX
ZWJLaXQ6OkF1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGluYXRvciYgY29vcmRpbmF0b3IpIG11
dGFibGUgeworICAgICAgICAgICAgY29vcmRpbmF0b3IuZGlkU2VsZWN0QXNzZXJ0aW9uUmVzcG9u
c2UobG9naW5DaG9pY2VOYW1lLCBjb250ZXh0LmdldCgpKTsKKyAgICAgICAgfV07CiAKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfQorICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAg
aWYgKFtsb2dpbkNob2ljZSBpc0tpbmRPZkNsYXNzOldlYktpdDo6Z2V0QVNDU2VjdXJpdHlLZXlQ
dWJsaWNLZXlDcmVkZW50aWFsTG9naW5DaG9pY2VDbGFzcygpXSkgewotICAgICAgICBpZiAoWyhB
U0NTZWN1cml0eUtleVB1YmxpY0tleUNyZWRlbnRpYWxMb2dpbkNob2ljZSAqKWxvZ2luQ2hvaWNl
IGxvZ2luQ2hvaWNlS2luZF0gPT0gQVNDU2VjdXJpdHlLZXlQdWJsaWNLZXlDcmVkZW50aWFsTG9n
aW5DaG9pY2VLaW5kQXNzZXJ0aW9uKSB7Ci0gICAgICAgICAgICBbc2VsZiBkaXNwYXRjaENvb3Jk
aW5hdG9yQ2FsbGJhY2s6W2xvZ2luQ2hvaWNlXSAoV2ViS2l0OjpBdXRoZW50aWNhdG9yUHJlc2Vu
dGVyQ29vcmRpbmF0b3ImIGNvb3JkaW5hdG9yKSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICBj
b29yZGluYXRvci5kaWRTZWxlY3RBc3NlcnRpb25SZXNwb25zZSgoQVNDTG9naW5DaG9pY2VQcm90
b2NvbCAqKWxvZ2luQ2hvaWNlLCBuaWwpOworICAgICAgICBhdXRvICpzZWN1cml0eUtleUxvZ2lu
Q2hvaWNlID0gKEFTQ1NlY3VyaXR5S2V5UHVibGljS2V5Q3JlZGVudGlhbExvZ2luQ2hvaWNlICop
bG9naW5DaG9pY2U7CisKKyAgICAgICAgaWYgKFtzZWN1cml0eUtleUxvZ2luQ2hvaWNlIGxvZ2lu
Q2hvaWNlS2luZF0gPT0gQVNDU2VjdXJpdHlLZXlQdWJsaWNLZXlDcmVkZW50aWFsTG9naW5DaG9p
Y2VLaW5kQXNzZXJ0aW9uKSB7CisgICAgICAgICAgICBTdHJpbmcgbG9naW5DaG9pY2VOYW1lID0g
c2VjdXJpdHlLZXlMb2dpbkNob2ljZS5uYW1lOworICAgICAgICAgICAgW3NlbGYgZGlzcGF0Y2hD
b29yZGluYXRvckNhbGxiYWNrOltsb2dpbkNob2ljZU5hbWUgPSBXVEZNb3ZlKGxvZ2luQ2hvaWNl
TmFtZSldIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGluYXRvciYgY29vcmRp
bmF0b3IpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGNvb3JkaW5hdG9yLmRpZFNlbGVjdEFz
c2VydGlvblJlc3BvbnNlKGxvZ2luQ2hvaWNlTmFtZSwgbmlsKTsKICAgICAgICAgICAgIH1dOwog
CiAgICAgICAgICAgICByZXR1cm47Cg==
</data>
<flag name="commit-queue"
          id="435402"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417647</attachid>
            <date>2021-01-14 13:06:27 -0800</date>
            <delta_ts>2021-01-15 17:28:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220617-20210114130626.patch</filename>
            <type>text/plain</type>
            <size>15444</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY5MDlkMTk0MDA0NTkzNDMx
YzgxOWRiNjI2MGQ1ZmM1Y2IwYmE0ZWIuLjQ2MDY5YjIzZjA4NTM5YmZjZTU0OTE0NGJmZDM2YWYx
MDUwNmNmYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjEtMDEtMTQgIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFBvbGlzaCB0
aGUgbmV3IFdlYkF1dGhuIFVJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjA2MTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzczMTg1NDcwPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
ZG9lcyB0aGUgZm9sbG93aW5nIGZldyB0aGluZ3M6CisgICAgICAgIDEuIEl0IHVwZGF0ZXMgdGhl
IHdheSBob3cgdGhlIFBJTiBlcnJvciBmb3Igc2VjdXJpdHkga2V5cyBpcyBoYW5kbGVkLgorICAg
ICAgICAyLiBJdCB1c2VzIHRoZSBjcmVkZW50aWFsIG5hbWUgdG8gaWRlbnRpZnkgYSBjcmVkZW50
aWFsIHRoYXQgcGFzc2VkIHRvIHRoZSBVSSBpbnN0ZWFkIG9mIHRoZSBsb2dpbiBjaG9pY2Ugb2Jq
ZWN0CisgICAgICAgIGFzIGl0IHR1cm5zIG91dCB0aGF0IHRoZSBVSSB3b24ndCByZXR1cm4gdGhl
IHNhbWUgb2JqZWN0IGF0IGFsbC4KKyAgICAgICAgMy4gSXQgZGVsYXlzIHRvIHNob3cgdGhlIFVJ
IGlmIHRoZSBwbGF0Zm9ybSBhdXRoZW50aWNhdG9yIGlzIGludm9sdmVkIGdpdmVuIHRoZSBwbGF0
Zm9ybSBhdXRoZW50aWNhdG9yIG1pZ2h0IG5vdCBjb250YWluCisgICAgICAgIHRoZSByZXF1ZXN0
ZWQgY3JlZGVudGlhbHMuIElmIG5vdCwgd2Ugc2hvdWxkIGVpdGhlciBzaG93IGFuIGVycm9yIG9y
IGp1c3QgcmVxdWVzdGluZyB0aGUgc2VjdXJpdHkga2V5IG9uZXMuCisKKyAgICAgICAgQ292ZXJl
ZCBieSBtYW51YWwgdGVzdHMuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvQ29jb2EvQXV0aGVu
dGljYXRpb25TZXJ2aWNlc0NvcmVTUEkuaDoKKyAgICAgICAgKE5TX0VSUk9SX0VOVU0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9BdXRoZW50aWNhdG9yUHJl
c2VudGVyQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQ29jb2EvQXV0aGVudGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9yLm1tOgorICAgICAgICAo
V2ViS2l0OjpBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3I6OkF1dGhlbnRpY2F0b3JQ
cmVzZW50ZXJDb29yZGluYXRvcik6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JQcmVz
ZW50ZXJDb29yZGluYXRvcjo6dXBkYXRlUHJlc2VudGVyKToKKyAgICAgICAgKFdlYktpdDo6QXV0
aGVudGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9yOjpzZWxlY3RBc3NlcnRpb25SZXNwb25zZSk6
CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGluYXRvcjo6ZGlk
U2VsZWN0QXNzZXJ0aW9uUmVzcG9uc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9Db2NvYS9XS0FTQ0F1dGhvcml6YXRpb25QcmVzZW50ZXJEZWxlZ2F0ZS5tbToKKyAg
ICAgICAgKC1bV0tBU0NBdXRob3JpemF0aW9uUHJlc2VudGVyRGVsZWdhdGUgYXV0aG9yaXphdGlv
blByZXNlbnRlcjpjcmVkZW50aWFsUmVxdWVzdGVkRm9yTG9naW5DaG9pY2U6YXV0aGVudGljYXRl
ZENvbnRleHQ6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisKIDIwMjEtMDEtMTIgIEJKIEJ1cmcgIDxi
YnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBXZWIgSW5zcGVjdG9yOiBtb3ZlIGJy
b3dzZXIgZG9tYWluIGFjdGl2YXRpb24gbWV0aG9kcyBiYWNrIHRvIFdLV2ViVmlldyBhbmQgVUlE
ZWxlZ2F0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQXV0
aGVudGljYXRpb25TZXJ2aWNlc0NvcmVTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3Bp
L0NvY29hL0F1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU1BJLmgKaW5kZXggOGFlYWI0NGFjYTRl
MzljYzZjNjA2MGE2YTkxZWYzNjBjMWQwYTE2NC4uOWNiOWM1MDhjMTBjMGI2OGU0ZDMzYmJkZGVi
N2NlNmM1ODk0MzYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29j
b2EvQXV0aGVudGljYXRpb25TZXJ2aWNlc0NvcmVTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL3NwaS9Db2NvYS9BdXRoZW50aWNhdGlvblNlcnZpY2VzQ29yZVNQSS5oCkBAIC0xNzIs
MTQgKzE3Miw5IEBAIHR5cGVkZWYgTlNfRVJST1JfRU5VTShBU0NBdXRob3JpemF0aW9uRXJyb3JE
b21haW4sIEFTQ0F1dGhvcml6YXRpb25FcnJvcikgewogICAgIEFTQ0F1dGhvcml6YXRpb25FcnJv
ck5vQ3JlZGVudGlhbHNGb3VuZCwKICAgICBBU0NBdXRob3JpemF0aW9uRXJyb3JMQUVycm9yLAog
ICAgIEFTQ0F1dGhvcml6YXRpb25FcnJvckxBRXhjbHVkZUNyZWRlbnRpYWxzTWF0Y2hlZCwKLX07
Ci0KLWV4dGVybiBOU1N0cmluZyAqIGNvbnN0IEFTQ1BJTlZhbGlkYXRpb25SZXN1bHRLZXk7Ci0K
LXR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIEFTQ1BJTlZhbGlkYXRpb25SZXN1bHQpIHsKLSAg
ICBBU0NQSU5WYWxpZGF0aW9uUmVzdWx0UElOQmxvY2tlZCwKLSAgICBBU0NQSU5WYWxpZGF0aW9u
UmVzdWx0UElOQXV0aEJsb2NrZWQsCi0gICAgQVNDUElOVmFsaWRhdGlvblJlc3VsdFBJTkludmFs
aWQsCisgICAgQVNDQXV0aG9yaXphdGlvbkVycm9yUElOSW52YWxpZCwKKyAgICBBU0NBdXRob3Jp
emF0aW9uRXJyb3JBdXRoZW50aWNhdG9yVGVtcG9yYXJpbHlMb2NrZWQsCisgICAgQVNDQXV0aG9y
aXphdGlvbkVycm9yQXV0aGVudGljYXRvclBlcm1hbmVudGx5TG9ja2VkLAogfTsKIAogTlNfQVNT
VU1FX05PTk5VTExfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9Db2NvYS9BdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3IuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0F1dGhlbnRp
Y2F0b3JQcmVzZW50ZXJDb29yZGluYXRvci5oCmluZGV4IGYxMzkzNTEyZmUwYjg1OWVjZTM4Mjli
ZjIzOWY2YWU2YzE4NzQxNTUuLmRjYjFlYWNkNjllYjNiZGI3ZWZiZTI5MWE0YzA4M2Y0OTQ3N2Nj
NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L0NvY29hL0F1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0F1dGhlbnRpY2F0b3JQcmVz
ZW50ZXJDb29yZGluYXRvci5oCkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
c2V0Q3JlZGVudGlhbFJlcXVlc3RIYW5kbGVyKENyZWRlbnRpYWxSZXF1ZXN0SGFuZGxlciYmIGhh
bmRsZXIpIHsgbV9jcmVkZW50aWFsUmVxdWVzdEhhbmRsZXIgPSBXVEZNb3ZlKGhhbmRsZXIpOyB9
CiAgICAgdm9pZCBzZXRMQUNvbnRleHQoTEFDb250ZXh0ICopOwotICAgIHZvaWQgZGlkU2VsZWN0
QXNzZXJ0aW9uUmVzcG9uc2UoQVNDTG9naW5DaG9pY2VQcm90b2NvbCAqLCBMQUNvbnRleHQgKik7
CisgICAgdm9pZCBkaWRTZWxlY3RBc3NlcnRpb25SZXNwb25zZShjb25zdCBTdHJpbmcmIGNyZWRl
bnRpYWxOYW1lLCBMQUNvbnRleHQgKik7CiAgICAgdm9pZCBzZXRQaW4oY29uc3QgU3RyaW5nJik7
CiAKIHByaXZhdGU6CkBAIC03Myw2ICs3MywxMCBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxB
U0NBdXRob3JpemF0aW9uUHJlc2VudGF0aW9uQ29udGV4dD4gbV9jb250ZXh0OwogICAgIFJldGFp
blB0cjxBU0NBdXRob3JpemF0aW9uUHJlc2VudGVyPiBtX3ByZXNlbnRlcjsKICAgICBSZXRhaW5Q
dHI8V0tBU0NBdXRob3JpemF0aW9uUHJlc2VudGVyRGVsZWdhdGU+IG1fcHJlc2VudGVyRGVsZWdh
dGU7CisgICAgRnVuY3Rpb248dm9pZCgpPiBtX2RlbGF5ZWRQcmVzZW50YXRpb247CisjaWYgSEFW
RShBU0NfQVVUSF9VSSkKKyAgICBib29sIG1fZGVsYXllZFByZXNlbnRhdGlvbk5lZWRzU2VjdXJp
dHlLZXkgeyBmYWxzZSB9OworI2VuZGlmCiAKICAgICBDcmVkZW50aWFsUmVxdWVzdEhhbmRsZXIg
bV9jcmVkZW50aWFsUmVxdWVzdEhhbmRsZXI7CiAKQEAgLTgwLDcgKzg0LDcgQEAgcHJpdmF0ZToK
ICAgICBSZXRhaW5QdHI8TEFDb250ZXh0PiBtX2xhQ29udGV4dDsKIAogICAgIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoV2ViQ29yZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlKik+IG1f
cmVzcG9uc2VIYW5kbGVyOwotICAgIEhhc2hNYXA8QVNDTG9naW5DaG9pY2VQcm90b2NvbCAqLCBS
ZWZQdHI8V2ViQ29yZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlPj4gbV9jcmVkZW50
aWFsczsKKyAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JB
c3NlcnRpb25SZXNwb25zZT4+IG1fY3JlZGVudGlhbHM7CiAKICAgICBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGNvbnN0IFN0cmluZyYpPiBtX3BpbkhhbmRsZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvQXV0aGVudGljYXRv
clByZXNlbnRlckNvb3JkaW5hdG9yLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vQ29jb2EvQXV0aGVudGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9yLm1tCmlu
ZGV4IDU1ODlmMDU4YzU4NTFjYWFiZDA4ZjdkYjBlYjI4NWFmYTA4NTM0NmIuLjE2MzY0YjU4YTg0
ZGU1ZWM4OGNiYTRiYWNiZjczYWM0ZDJjZWYxZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0F1dGhlbnRpY2F0b3JQcmVzZW50ZXJD
b29yZGluYXRvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9Db2NvYS9BdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3IubW0KQEAgLTUzLDcg
KzUzLDcgQEAgQXV0aGVudGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9yOjpBdXRoZW50aWNhdG9y
UHJlc2VudGVyQ29vcmRpbmF0b3IoY29uc3QgQXV0aGUKICAgICAgICAgICAgIFttX2NvbnRleHQg
YWRkTG9naW5DaG9pY2U6YWRvcHROUyhbYWxsb2NBU0NTZWN1cml0eUtleVB1YmxpY0tleUNyZWRl
bnRpYWxMb2dpbkNob2ljZUluc3RhbmNlKCkgaW5pdFJlZ2lzdHJhdGlvbkNob2ljZV0pLmdldCgp
XTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDbGllbnREYXRhVHlwZTo6R2V0OgotICAgICAg
ICBpZiAodHJhbnNwb3J0cy5jb250YWlucyhBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpVc2IpIHx8
IHRyYW5zcG9ydHMuY29udGFpbnMoQXV0aGVudGljYXRvclRyYW5zcG9ydDo6TmZjKSkKKyAgICAg
ICAgaWYgKCh0cmFuc3BvcnRzLmNvbnRhaW5zKEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6OlVzYikg
fHwgdHJhbnNwb3J0cy5jb250YWlucyhBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpOZmMpKSAmJiAh
dHJhbnNwb3J0cy5jb250YWlucyhBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpJbnRlcm5hbCkpCiAg
ICAgICAgICAgICBbbV9jb250ZXh0IGFkZExvZ2luQ2hvaWNlOmFkb3B0TlMoW2FsbG9jQVNDU2Vj
dXJpdHlLZXlQdWJsaWNLZXlDcmVkZW50aWFsTG9naW5DaG9pY2VJbnN0YW5jZSgpIGluaXRBc3Nl
cnRpb25QbGFjZWhvbGRlckNob2ljZV0pLmdldCgpXTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVm
YXVsdDoKQEAgLTY1LDcgKzY1LDYgQEAgQXV0aGVudGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9y
OjpBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3IoY29uc3QgQXV0aGUKICAgICBbbV9w
cmVzZW50ZXIgc2V0RGVsZWdhdGU6bV9wcmVzZW50ZXJEZWxlZ2F0ZS5nZXQoKV07CiAKICAgICBh
dXRvIGNvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFttYW5hZ2VyID0gbV9tYW5hZ2Vy
XSAoaWQ8QVNDQ3JlZGVudGlhbFByb3RvY29sPiBjcmVkZW50aWFsLCBOU0Vycm9yICplcnJvcikg
bXV0YWJsZSB7Ci0gICAgICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAgICBp
ZiAoY3JlZGVudGlhbCB8fCAhZXJyb3IpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTc2LDYg
Kzc1LDE1IEBAIEF1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGluYXRvcjo6QXV0aGVudGljYXRv
clByZXNlbnRlckNvb3JkaW5hdG9yKGNvbnN0IEF1dGhlCiAgICAgICAgICAgICAgICAgbWFuYWdl
ci0+Y2FuY2VsKCk7CiAgICAgICAgIH0pOwogICAgIH0pOworCisgICAgaWYgKHR5cGUgPT0gQ2xp
ZW50RGF0YVR5cGU6OkdldCAmJiB0cmFuc3BvcnRzLmNvbnRhaW5zKEF1dGhlbnRpY2F0b3JUcmFu
c3BvcnQ6OkludGVybmFsKSkgeworICAgICAgICBtX2RlbGF5ZWRQcmVzZW50YXRpb25OZWVkc1Nl
Y3VyaXR5S2V5ID0gKHRyYW5zcG9ydHMuY29udGFpbnMoQXV0aGVudGljYXRvclRyYW5zcG9ydDo6
VXNiKSB8fCB0cmFuc3BvcnRzLmNvbnRhaW5zKEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6Ok5mYykp
OworICAgICAgICBtX2RlbGF5ZWRQcmVzZW50YXRpb24gPSBbY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgdGhpc10geworICAgICAgICAgICAgW21fcHJlc2Vu
dGVyIHByZXNlbnRBdXRob3JpemF0aW9uV2l0aENvbnRleHQ6bV9jb250ZXh0LmdldCgpIGNvbXBs
ZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyLmdldCgpXTsKKyAgICAgICAgfTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKwogICAgIFttX3ByZXNlbnRlciBwcmVzZW50QXV0aG9yaXphdGlv
bldpdGhDb250ZXh0Om1fY29udGV4dC5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0aW9u
SGFuZGxlci5nZXQoKV07CiAjZW5kaWYgLy8gSEFWRShBU0NfQVVUSF9VSSkKIH0KQEAgLTk1LDE3
ICsxMDMsMTcgQEAgdm9pZCBBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3I6OnVwZGF0
ZVByZXNlbnRlcihXZWJBdXRoZW50aWNhdGlvblN0YXR1cwogI2lmIEhBVkUoQVNDX0FVVEhfVUkp
CiAgICAgc3dpdGNoIChzdGF0dXMpIHsKICAgICBjYXNlIFdlYkF1dGhlbnRpY2F0aW9uU3RhdHVz
OjpQaW5CbG9ja2VkOiB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBhZG9wdE5TKFtbTlNFcnJvciBh
bGxvY10gaW5pdFdpdGhEb21haW46QVNDQXV0aG9yaXphdGlvbkVycm9yRG9tYWluIGNvZGU6QVND
QXV0aG9yaXphdGlvbkVycm9yUElOUmVxdWlyZWQgdXNlckluZm86QHsgQVNDUElOVmFsaWRhdGlv
blJlc3VsdEtleTogQChBU0NQSU5WYWxpZGF0aW9uUmVzdWx0UElOQmxvY2tlZCkgfV0pOworICAg
ICAgICBhdXRvIGVycm9yID0gYWRvcHROUyhbW05TRXJyb3IgYWxsb2NdIGluaXRXaXRoRG9tYWlu
OkFTQ0F1dGhvcml6YXRpb25FcnJvckRvbWFpbiBjb2RlOkFTQ0F1dGhvcml6YXRpb25FcnJvckF1
dGhlbnRpY2F0b3JQZXJtYW5lbnRseUxvY2tlZCB1c2VySW5mbzpuaWxdKTsKICAgICAgICAgbV9j
cmVkZW50aWFsUmVxdWVzdEhhbmRsZXIobmlsLCBlcnJvci5nZXQoKSk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KICAgICBjYXNlIFdlYkF1dGhlbnRpY2F0aW9uU3RhdHVzOjpQaW5BdXRoQmxvY2tl
ZDogewotICAgICAgICBhdXRvIGVycm9yID0gYWRvcHROUyhbW05TRXJyb3IgYWxsb2NdIGluaXRX
aXRoRG9tYWluOkFTQ0F1dGhvcml6YXRpb25FcnJvckRvbWFpbiBjb2RlOkFTQ0F1dGhvcml6YXRp
b25FcnJvclBJTlJlcXVpcmVkIHVzZXJJbmZvOkB7IEFTQ1BJTlZhbGlkYXRpb25SZXN1bHRLZXk6
IEAoQVNDUElOVmFsaWRhdGlvblJlc3VsdFBJTkF1dGhCbG9ja2VkKSB9XSk7CisgICAgICAgIGF1
dG8gZXJyb3IgPSBhZG9wdE5TKFtbTlNFcnJvciBhbGxvY10gaW5pdFdpdGhEb21haW46QVNDQXV0
aG9yaXphdGlvbkVycm9yRG9tYWluIGNvZGU6QVNDQXV0aG9yaXphdGlvbkVycm9yQXV0aGVudGlj
YXRvclRlbXBvcmFyaWx5TG9ja2VkIHVzZXJJbmZvOm5pbF0pOwogICAgICAgICBtX2NyZWRlbnRp
YWxSZXF1ZXN0SGFuZGxlcihuaWwsIGVycm9yLmdldCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQogICAgIGNhc2UgV2ViQXV0aGVudGljYXRpb25TdGF0dXM6OlBpbkludmFsaWQ6IHsKLSAgICAg
ICAgYXV0byBlcnJvciA9IGFkb3B0TlMoW1tOU0Vycm9yIGFsbG9jXSBpbml0V2l0aERvbWFpbjpB
U0NBdXRob3JpemF0aW9uRXJyb3JEb21haW4gY29kZTpBU0NBdXRob3JpemF0aW9uRXJyb3JQSU5S
ZXF1aXJlZCB1c2VySW5mbzpAeyBBU0NQSU5WYWxpZGF0aW9uUmVzdWx0S2V5OiBAKEFTQ1BJTlZh
bGlkYXRpb25SZXN1bHRQSU5JbnZhbGlkKSB9XSk7CisgICAgICAgIGF1dG8gZXJyb3IgPSBhZG9w
dE5TKFtbTlNFcnJvciBhbGxvY10gaW5pdFdpdGhEb21haW46QVNDQXV0aG9yaXphdGlvbkVycm9y
RG9tYWluIGNvZGU6QVNDQXV0aG9yaXphdGlvbkVycm9yUElOSW52YWxpZCB1c2VySW5mbzpuaWxd
KTsKICAgICAgICAgbV9jcmVkZW50aWFsUmVxdWVzdEhhbmRsZXIobmlsLCBlcnJvci5nZXQoKSk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTExNCw4ICsxMjIsMTIgQEAgdm9pZCBBdXRoZW50
aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3I6OnVwZGF0ZVByZXNlbnRlcihXZWJBdXRoZW50aWNh
dGlvblN0YXR1cwogICAgICAgICBbbV9wcmVzZW50ZXIgdXBkYXRlSW50ZXJmYWNlRm9yVXNlclZp
c2libGVFcnJvcjplcnJvci5nZXQoKV07CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBjYXNl
IFdlYkF1dGhlbnRpY2F0aW9uU3RhdHVzOjpOb0NyZWRlbnRpYWxzRm91bmQ6Ci0gICAgY2FzZSBX
ZWJBdXRoZW50aWNhdGlvblN0YXR1czo6TEFOb0NyZWRlbnRpYWw6IHsKKyAgICBjYXNlIFdlYkF1
dGhlbnRpY2F0aW9uU3RhdHVzOjpMQU5vQ3JlZGVudGlhbDoKKyAgICAgICAgaWYgKG1fZGVsYXll
ZFByZXNlbnRhdGlvbk5lZWRzU2VjdXJpdHlLZXkpCisgICAgICAgICAgICBbbV9jb250ZXh0IGFk
ZExvZ2luQ2hvaWNlOmFkb3B0TlMoW2FsbG9jQVNDU2VjdXJpdHlLZXlQdWJsaWNLZXlDcmVkZW50
aWFsTG9naW5DaG9pY2VJbnN0YW5jZSgpIGluaXRBc3NlcnRpb25QbGFjZWhvbGRlckNob2ljZV0p
LmdldCgpXTsKKyAgICAgICAgbV9kZWxheWVkUHJlc2VudGF0aW9uKCk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgV2ViQXV0aGVudGljYXRpb25TdGF0dXM6Ok5vQ3JlZGVudGlhbHNGb3VuZDog
ewogICAgICAgICBhdXRvIGVycm9yID0gYWRvcHROUyhbW05TRXJyb3IgYWxsb2NdIGluaXRXaXRo
RG9tYWluOkFTQ0F1dGhvcml6YXRpb25FcnJvckRvbWFpbiBjb2RlOkFTQ0F1dGhvcml6YXRpb25F
cnJvck5vQ3JlZGVudGlhbHNGb3VuZCB1c2VySW5mbzpuaWxdKTsKICAgICAgICAgW21fcHJlc2Vu
dGVyIHVwZGF0ZUludGVyZmFjZUZvclVzZXJWaXNpYmxlRXJyb3I6ZXJyb3IuZ2V0KCldOwogICAg
ICAgICBicmVhazsKQEAgLTE2Myw3ICsxNzUsNyBAQCB2b2lkIEF1dGhlbnRpY2F0b3JQcmVzZW50
ZXJDb29yZGluYXRvcjo6c2VsZWN0QXNzZXJ0aW9uUmVzcG9uc2UoVmVjdG9yPFJlZjxBdXRoZQog
ICAgICAgICAgICAgYXV0byBsb2dpbkNob2ljZSA9IGFkb3B0TlMoW2FsbG9jQVNDU2VjdXJpdHlL
ZXlQdWJsaWNLZXlDcmVkZW50aWFsTG9naW5DaG9pY2VJbnN0YW5jZSgpIGluaXRXaXRoTmFtZTpy
ZXNwb25zZS0+bmFtZSgpIGRpc3BsYXlOYW1lOnJlc3BvbnNlLT5kaXNwbGF5TmFtZSgpIHVzZXJI
YW5kbGU6dXNlckhhbmRsZS5nZXQoKV0pOwogICAgICAgICAgICAgW2xvZ2luQ2hvaWNlcyBhZGRP
YmplY3Q6bG9naW5DaG9pY2UuZ2V0KCldOwogCi0gICAgICAgICAgICBtX2NyZWRlbnRpYWxzLmFk
ZCgoQVNDTG9naW5DaG9pY2VQcm90b2NvbCAqKWxvZ2luQ2hvaWNlLmdldCgpLCBXVEZNb3ZlKHJl
c3BvbnNlKSk7CisgICAgICAgICAgICBtX2NyZWRlbnRpYWxzLmFkZChyZXNwb25zZS0+bmFtZSgp
LCBXVEZNb3ZlKHJlc3BvbnNlKSk7CiAgICAgICAgIH0KIAogICAgICAgICBbbV9wcmVzZW50ZXIg
dXBkYXRlSW50ZXJmYWNlV2l0aExvZ2luQ2hvaWNlczpsb2dpbkNob2ljZXMuZ2V0KCldOwpAQCAt
MTcxLDIxICsxODMsMjAgQEAgdm9pZCBBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3I6
OnNlbGVjdEFzc2VydGlvblJlc3BvbnNlKFZlY3RvcjxSZWY8QXV0aGUKICAgICB9CiAKICAgICBp
ZiAoc291cmNlID09IFdlYkF1dGhlbnRpY2F0aW9uU291cmNlOjpMb2NhbCkgewotICAgICAgICBh
dXRvIGxvZ2luQ2hvaWNlcyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0p
OwotCiAgICAgICAgIGZvciAoYXV0byYgcmVzcG9uc2UgOiByZXNwb25zZXMpIHsKICAgICAgICAg
ICAgIFJldGFpblB0cjxOU0RhdGE+IHVzZXJIYW5kbGU7CiAgICAgICAgICAgICBpZiAocmVzcG9u
c2UtPnVzZXJIYW5kbGUoKSkKICAgICAgICAgICAgICAgICB1c2VySGFuZGxlID0gYWRvcHROUyhb
W05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczpyZXNwb25zZS0+dXNlckhhbmRsZSgpLT5kYXRh
KCkgbGVuZ3RoOnJlc3BvbnNlLT51c2VySGFuZGxlKCktPmJ5dGVMZW5ndGgoKV0pOwogCiAgICAg
ICAgICAgICBhdXRvIGxvZ2luQ2hvaWNlID0gYWRvcHROUyhbYWxsb2NBU0NQbGF0Zm9ybVB1Ymxp
Y0tleUNyZWRlbnRpYWxMb2dpbkNob2ljZUluc3RhbmNlKCkgaW5pdFdpdGhOYW1lOnJlc3BvbnNl
LT5uYW1lKCkgZGlzcGxheU5hbWU6cmVzcG9uc2UtPmRpc3BsYXlOYW1lKCkgdXNlckhhbmRsZTp1
c2VySGFuZGxlLmdldCgpXSk7Ci0gICAgICAgICAgICBbbG9naW5DaG9pY2VzIGFkZE9iamVjdDps
b2dpbkNob2ljZS5nZXQoKV07CisgICAgICAgICAgICBbbV9jb250ZXh0IGFkZExvZ2luQ2hvaWNl
OmxvZ2luQ2hvaWNlLmdldCgpXTsKIAotICAgICAgICAgICAgbV9jcmVkZW50aWFscy5hZGQoKEFT
Q0xvZ2luQ2hvaWNlUHJvdG9jb2wgKilsb2dpbkNob2ljZS5nZXQoKSwgV1RGTW92ZShyZXNwb25z
ZSkpOworICAgICAgICAgICAgbV9jcmVkZW50aWFscy5hZGQocmVzcG9uc2UtPm5hbWUoKSwgV1RG
TW92ZShyZXNwb25zZSkpOwogICAgICAgICB9CiAKLSAgICAgICAgW2xvZ2luQ2hvaWNlcyBhZGRP
YmplY3RzRnJvbUFycmF5OlttX2NvbnRleHQgbG9naW5DaG9pY2VzXV07IC8vIEFkZHMgdGhlIHNl
Y3VyaXR5IGtleSBvcHRpb24gaWYgZXhpc3RzLgotICAgICAgICBbbV9wcmVzZW50ZXIgdXBkYXRl
SW50ZXJmYWNlV2l0aExvZ2luQ2hvaWNlczpsb2dpbkNob2ljZXMuZ2V0KCldOworICAgICAgICBp
ZiAobV9kZWxheWVkUHJlc2VudGF0aW9uTmVlZHNTZWN1cml0eUtleSkKKyAgICAgICAgICAgIFtt
X2NvbnRleHQgYWRkTG9naW5DaG9pY2U6YWRvcHROUyhbYWxsb2NBU0NTZWN1cml0eUtleVB1Ymxp
Y0tleUNyZWRlbnRpYWxMb2dpbkNob2ljZUluc3RhbmNlKCkgaW5pdEFzc2VydGlvblBsYWNlaG9s
ZGVyQ2hvaWNlXSkuZ2V0KCldOworICAgICAgICBtX2RlbGF5ZWRQcmVzZW50YXRpb24oKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZiAvLyBIQVZFKEFTQ19BVVRIX1VJKQpAQCAtMjI1
LDkgKzIzNiw5IEBAIHZvaWQgQXV0aGVudGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9yOjpzZXRM
QUNvbnRleHQoTEFDb250ZXh0ICpjb250ZXh0KQogICAgIG1fbGFDb250ZXh0ID0gY29udGV4dDsK
IH0KIAotdm9pZCBBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3I6OmRpZFNlbGVjdEFz
c2VydGlvblJlc3BvbnNlKEFTQ0xvZ2luQ2hvaWNlUHJvdG9jb2wgKmxvZ2luQ2hvaWNlLCBMQUNv
bnRleHQgKmNvbnRleHQpCit2b2lkIEF1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGluYXRvcjo6
ZGlkU2VsZWN0QXNzZXJ0aW9uUmVzcG9uc2UoY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsTmFtZSwg
TEFDb250ZXh0ICpjb250ZXh0KQogewotICAgIGF1dG8gcmVzcG9uc2UgPSBtX2NyZWRlbnRpYWxz
LnRha2UobG9naW5DaG9pY2UpOworICAgIGF1dG8gcmVzcG9uc2UgPSBtX2NyZWRlbnRpYWxzLnRh
a2UoY3JlZGVudGlhbE5hbWUpOwogICAgIGlmICghcmVzcG9uc2UpCiAgICAgICAgIHJldHVybjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
Q29jb2EvV0tBU0NBdXRob3JpemF0aW9uUHJlc2VudGVyRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XS0FTQ0F1dGhvcml6YXRpb25Q
cmVzZW50ZXJEZWxlZ2F0ZS5tbQppbmRleCBjYzU2Zjk3NDYzYzYyNjgxMmNhNjRjYzQ0M2IxZDIy
YTZjMWZkYWM3Li43Y2MxNzA3NDRhOGU0YjVkMDUwNzFlZWJkYTBmNGViMGUwMmRmNGJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9X
S0FTQ0F1dGhvcml6YXRpb25QcmVzZW50ZXJEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XS0FTQ0F1dGhvcml6YXRpb25QcmVz
ZW50ZXJEZWxlZ2F0ZS5tbQpAQCAtNTUsNyArNTUsOSBAQCAtICh2b2lkKWF1dGhvcml6YXRpb25Q
cmVzZW50ZXI6KEFTQ0F1dGhvcml6YXRpb25QcmVzZW50ZXIgKilwcmVzZW50ZXIgY3JlZGVudGlh
bAogICAgIH1dOwogCiAgICAgaWYgKFtsb2dpbkNob2ljZSBpc0tpbmRPZkNsYXNzOldlYktpdDo6
Z2V0QVNDUGxhdGZvcm1QdWJsaWNLZXlDcmVkZW50aWFsTG9naW5DaG9pY2VDbGFzcygpXSkgewot
ICAgICAgICBpZiAoWyhBU0NQbGF0Zm9ybVB1YmxpY0tleUNyZWRlbnRpYWxMb2dpbkNob2ljZSAq
KWxvZ2luQ2hvaWNlIGlzUmVnaXN0cmF0aW9uUmVxdWVzdF0pIHsKKyAgICAgICAgYXV0byAqcGxh
dGZvcm1Mb2dpbkNob2ljZSA9IChBU0NQbGF0Zm9ybVB1YmxpY0tleUNyZWRlbnRpYWxMb2dpbkNo
b2ljZSAqKWxvZ2luQ2hvaWNlOworCisgICAgICAgIGlmIChbcGxhdGZvcm1Mb2dpbkNob2ljZSBp
c1JlZ2lzdHJhdGlvblJlcXVlc3RdKSB7CiAgICAgICAgICAgICBbc2VsZiBkaXNwYXRjaENvb3Jk
aW5hdG9yQ2FsbGJhY2s6W2NvbnRleHQgPSByZXRhaW5QdHIoY29udGV4dCldIChXZWJLaXQ6OkF1
dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGluYXRvciYgY29vcmRpbmF0b3IpIG11dGFibGUgewog
ICAgICAgICAgICAgICAgIGNvb3JkaW5hdG9yLnNldExBQ29udGV4dChjb250ZXh0LmdldCgpKTsK
ICAgICAgICAgICAgIH1dOwpAQCAtNjMsMTkgKzY1LDIxIEBAIC0gKHZvaWQpYXV0aG9yaXphdGlv
blByZXNlbnRlcjooQVNDQXV0aG9yaXphdGlvblByZXNlbnRlciAqKXByZXNlbnRlciBjcmVkZW50
aWFsCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoIVsoQVND
UGxhdGZvcm1QdWJsaWNLZXlDcmVkZW50aWFsTG9naW5DaG9pY2UgKilsb2dpbkNob2ljZSBpc1Jl
Z2lzdHJhdGlvblJlcXVlc3RdKSB7Ci0gICAgICAgICAgICBbc2VsZiBkaXNwYXRjaENvb3JkaW5h
dG9yQ2FsbGJhY2s6W2xvZ2luQ2hvaWNlLCBjb250ZXh0ID0gcmV0YWluUHRyKGNvbnRleHQpXSAo
V2ViS2l0OjpBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3ImIGNvb3JkaW5hdG9yKSBt
dXRhYmxlIHsKLSAgICAgICAgICAgICAgICBjb29yZGluYXRvci5kaWRTZWxlY3RBc3NlcnRpb25S
ZXNwb25zZSgoQVNDTG9naW5DaG9pY2VQcm90b2NvbCAqKWxvZ2luQ2hvaWNlLCBjb250ZXh0Lmdl
dCgpKTsKLSAgICAgICAgICAgIH1dOworICAgICAgICBTdHJpbmcgbG9naW5DaG9pY2VOYW1lID0g
cGxhdGZvcm1Mb2dpbkNob2ljZS5uYW1lOworICAgICAgICBbc2VsZiBkaXNwYXRjaENvb3JkaW5h
dG9yQ2FsbGJhY2s6W2xvZ2luQ2hvaWNlTmFtZSA9IFdURk1vdmUobG9naW5DaG9pY2VOYW1lKSwg
Y29udGV4dCA9IHJldGFpblB0cihjb250ZXh0KV0gKFdlYktpdDo6QXV0aGVudGljYXRvclByZXNl
bnRlckNvb3JkaW5hdG9yJiBjb29yZGluYXRvcikgbXV0YWJsZSB7CisgICAgICAgICAgICBjb29y
ZGluYXRvci5kaWRTZWxlY3RBc3NlcnRpb25SZXNwb25zZShsb2dpbkNob2ljZU5hbWUsIGNvbnRl
eHQuZ2V0KCkpOworICAgICAgICB9XTsKIAotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9
CisgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoW2xvZ2luQ2hvaWNlIGlzS2luZE9m
Q2xhc3M6V2ViS2l0OjpnZXRBU0NTZWN1cml0eUtleVB1YmxpY0tleUNyZWRlbnRpYWxMb2dpbkNo
b2ljZUNsYXNzKCldKSB7Ci0gICAgICAgIGlmIChbKEFTQ1NlY3VyaXR5S2V5UHVibGljS2V5Q3Jl
ZGVudGlhbExvZ2luQ2hvaWNlICopbG9naW5DaG9pY2UgbG9naW5DaG9pY2VLaW5kXSA9PSBBU0NT
ZWN1cml0eUtleVB1YmxpY0tleUNyZWRlbnRpYWxMb2dpbkNob2ljZUtpbmRBc3NlcnRpb24pIHsK
LSAgICAgICAgICAgIFtzZWxmIGRpc3BhdGNoQ29vcmRpbmF0b3JDYWxsYmFjazpbbG9naW5DaG9p
Y2VdIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGluYXRvciYgY29vcmRpbmF0
b3IpIG11dGFibGUgewotICAgICAgICAgICAgICAgIGNvb3JkaW5hdG9yLmRpZFNlbGVjdEFzc2Vy
dGlvblJlc3BvbnNlKChBU0NMb2dpbkNob2ljZVByb3RvY29sICopbG9naW5DaG9pY2UsIG5pbCk7
CisgICAgICAgIGF1dG8gKnNlY3VyaXR5S2V5TG9naW5DaG9pY2UgPSAoQVNDU2VjdXJpdHlLZXlQ
dWJsaWNLZXlDcmVkZW50aWFsTG9naW5DaG9pY2UgKilsb2dpbkNob2ljZTsKKworICAgICAgICBp
ZiAoW3NlY3VyaXR5S2V5TG9naW5DaG9pY2UgbG9naW5DaG9pY2VLaW5kXSA9PSBBU0NTZWN1cml0
eUtleVB1YmxpY0tleUNyZWRlbnRpYWxMb2dpbkNob2ljZUtpbmRBc3NlcnRpb24pIHsKKyAgICAg
ICAgICAgIFN0cmluZyBsb2dpbkNob2ljZU5hbWUgPSBzZWN1cml0eUtleUxvZ2luQ2hvaWNlLm5h
bWU7CisgICAgICAgICAgICBbc2VsZiBkaXNwYXRjaENvb3JkaW5hdG9yQ2FsbGJhY2s6W2xvZ2lu
Q2hvaWNlTmFtZSA9IFdURk1vdmUobG9naW5DaG9pY2VOYW1lKV0gKFdlYktpdDo6QXV0aGVudGlj
YXRvclByZXNlbnRlckNvb3JkaW5hdG9yJiBjb29yZGluYXRvcikgbXV0YWJsZSB7CisgICAgICAg
ICAgICAgICAgY29vcmRpbmF0b3IuZGlkU2VsZWN0QXNzZXJ0aW9uUmVzcG9uc2UobG9naW5DaG9p
Y2VOYW1lLCBuaWwpOwogICAgICAgICAgICAgfV07CiAKICAgICAgICAgICAgIHJldHVybjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417751</attachid>
            <date>2021-01-15 17:28:03 -0800</date>
            <delta_ts>2021-01-19 13:28:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220617-20210115172802.patch</filename>
            <type>text/plain</type>
            <size>15864</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY5MDlkMTk0MDA0NTkzNDMx
YzgxOWRiNjI2MGQ1ZmM1Y2IwYmE0ZWIuLjQ2MDY5YjIzZjA4NTM5YmZjZTU0OTE0NGJmZDM2YWYx
MDUwNmNmYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjEtMDEtMTQgIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFBvbGlzaCB0
aGUgbmV3IFdlYkF1dGhuIFVJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjA2MTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzczMTg1NDcwPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
ZG9lcyB0aGUgZm9sbG93aW5nIGZldyB0aGluZ3M6CisgICAgICAgIDEuIEl0IHVwZGF0ZXMgdGhl
IHdheSBob3cgdGhlIFBJTiBlcnJvciBmb3Igc2VjdXJpdHkga2V5cyBpcyBoYW5kbGVkLgorICAg
ICAgICAyLiBJdCB1c2VzIHRoZSBjcmVkZW50aWFsIG5hbWUgdG8gaWRlbnRpZnkgYSBjcmVkZW50
aWFsIHRoYXQgcGFzc2VkIHRvIHRoZSBVSSBpbnN0ZWFkIG9mIHRoZSBsb2dpbiBjaG9pY2Ugb2Jq
ZWN0CisgICAgICAgIGFzIGl0IHR1cm5zIG91dCB0aGF0IHRoZSBVSSB3b24ndCByZXR1cm4gdGhl
IHNhbWUgb2JqZWN0IGF0IGFsbC4KKyAgICAgICAgMy4gSXQgZGVsYXlzIHRvIHNob3cgdGhlIFVJ
IGlmIHRoZSBwbGF0Zm9ybSBhdXRoZW50aWNhdG9yIGlzIGludm9sdmVkIGdpdmVuIHRoZSBwbGF0
Zm9ybSBhdXRoZW50aWNhdG9yIG1pZ2h0IG5vdCBjb250YWluCisgICAgICAgIHRoZSByZXF1ZXN0
ZWQgY3JlZGVudGlhbHMuIElmIG5vdCwgd2Ugc2hvdWxkIGVpdGhlciBzaG93IGFuIGVycm9yIG9y
IGp1c3QgcmVxdWVzdGluZyB0aGUgc2VjdXJpdHkga2V5IG9uZXMuCisKKyAgICAgICAgQ292ZXJl
ZCBieSBtYW51YWwgdGVzdHMuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvQ29jb2EvQXV0aGVu
dGljYXRpb25TZXJ2aWNlc0NvcmVTUEkuaDoKKyAgICAgICAgKE5TX0VSUk9SX0VOVU0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9BdXRoZW50aWNhdG9yUHJl
c2VudGVyQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQ29jb2EvQXV0aGVudGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9yLm1tOgorICAgICAgICAo
V2ViS2l0OjpBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3I6OkF1dGhlbnRpY2F0b3JQ
cmVzZW50ZXJDb29yZGluYXRvcik6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JQcmVz
ZW50ZXJDb29yZGluYXRvcjo6dXBkYXRlUHJlc2VudGVyKToKKyAgICAgICAgKFdlYktpdDo6QXV0
aGVudGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9yOjpzZWxlY3RBc3NlcnRpb25SZXNwb25zZSk6
CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGluYXRvcjo6ZGlk
U2VsZWN0QXNzZXJ0aW9uUmVzcG9uc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9Db2NvYS9XS0FTQ0F1dGhvcml6YXRpb25QcmVzZW50ZXJEZWxlZ2F0ZS5tbToKKyAg
ICAgICAgKC1bV0tBU0NBdXRob3JpemF0aW9uUHJlc2VudGVyRGVsZWdhdGUgYXV0aG9yaXphdGlv
blByZXNlbnRlcjpjcmVkZW50aWFsUmVxdWVzdGVkRm9yTG9naW5DaG9pY2U6YXV0aGVudGljYXRl
ZENvbnRleHQ6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisKIDIwMjEtMDEtMTIgIEJKIEJ1cmcgIDxi
YnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBXZWIgSW5zcGVjdG9yOiBtb3ZlIGJy
b3dzZXIgZG9tYWluIGFjdGl2YXRpb24gbWV0aG9kcyBiYWNrIHRvIFdLV2ViVmlldyBhbmQgVUlE
ZWxlZ2F0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQXV0
aGVudGljYXRpb25TZXJ2aWNlc0NvcmVTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3Bp
L0NvY29hL0F1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU1BJLmgKaW5kZXggOGFlYWI0NGFjYTRl
MzljYzZjNjA2MGE2YTkxZWYzNjBjMWQwYTE2NC4uOWNiOWM1MDhjMTBjMGI2OGU0ZDMzYmJkZGVi
N2NlNmM1ODk0MzYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29j
b2EvQXV0aGVudGljYXRpb25TZXJ2aWNlc0NvcmVTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL3NwaS9Db2NvYS9BdXRoZW50aWNhdGlvblNlcnZpY2VzQ29yZVNQSS5oCkBAIC0xNzIs
MTQgKzE3Miw5IEBAIHR5cGVkZWYgTlNfRVJST1JfRU5VTShBU0NBdXRob3JpemF0aW9uRXJyb3JE
b21haW4sIEFTQ0F1dGhvcml6YXRpb25FcnJvcikgewogICAgIEFTQ0F1dGhvcml6YXRpb25FcnJv
ck5vQ3JlZGVudGlhbHNGb3VuZCwKICAgICBBU0NBdXRob3JpemF0aW9uRXJyb3JMQUVycm9yLAog
ICAgIEFTQ0F1dGhvcml6YXRpb25FcnJvckxBRXhjbHVkZUNyZWRlbnRpYWxzTWF0Y2hlZCwKLX07
Ci0KLWV4dGVybiBOU1N0cmluZyAqIGNvbnN0IEFTQ1BJTlZhbGlkYXRpb25SZXN1bHRLZXk7Ci0K
LXR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIEFTQ1BJTlZhbGlkYXRpb25SZXN1bHQpIHsKLSAg
ICBBU0NQSU5WYWxpZGF0aW9uUmVzdWx0UElOQmxvY2tlZCwKLSAgICBBU0NQSU5WYWxpZGF0aW9u
UmVzdWx0UElOQXV0aEJsb2NrZWQsCi0gICAgQVNDUElOVmFsaWRhdGlvblJlc3VsdFBJTkludmFs
aWQsCisgICAgQVNDQXV0aG9yaXphdGlvbkVycm9yUElOSW52YWxpZCwKKyAgICBBU0NBdXRob3Jp
emF0aW9uRXJyb3JBdXRoZW50aWNhdG9yVGVtcG9yYXJpbHlMb2NrZWQsCisgICAgQVNDQXV0aG9y
aXphdGlvbkVycm9yQXV0aGVudGljYXRvclBlcm1hbmVudGx5TG9ja2VkLAogfTsKIAogTlNfQVNT
VU1FX05PTk5VTExfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9Db2NvYS9BdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3IuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0F1dGhlbnRp
Y2F0b3JQcmVzZW50ZXJDb29yZGluYXRvci5oCmluZGV4IGYxMzkzNTEyZmUwYjg1OWVjZTM4Mjli
ZjIzOWY2YWU2YzE4NzQxNTUuLmRjYjFlYWNkNjllYjNiZGI3ZWZiZTI5MWE0YzA4M2Y0OTQ3N2Nj
NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L0NvY29hL0F1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0F1dGhlbnRpY2F0b3JQcmVz
ZW50ZXJDb29yZGluYXRvci5oCkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
c2V0Q3JlZGVudGlhbFJlcXVlc3RIYW5kbGVyKENyZWRlbnRpYWxSZXF1ZXN0SGFuZGxlciYmIGhh
bmRsZXIpIHsgbV9jcmVkZW50aWFsUmVxdWVzdEhhbmRsZXIgPSBXVEZNb3ZlKGhhbmRsZXIpOyB9
CiAgICAgdm9pZCBzZXRMQUNvbnRleHQoTEFDb250ZXh0ICopOwotICAgIHZvaWQgZGlkU2VsZWN0
QXNzZXJ0aW9uUmVzcG9uc2UoQVNDTG9naW5DaG9pY2VQcm90b2NvbCAqLCBMQUNvbnRleHQgKik7
CisgICAgdm9pZCBkaWRTZWxlY3RBc3NlcnRpb25SZXNwb25zZShjb25zdCBTdHJpbmcmIGNyZWRl
bnRpYWxOYW1lLCBMQUNvbnRleHQgKik7CiAgICAgdm9pZCBzZXRQaW4oY29uc3QgU3RyaW5nJik7
CiAKIHByaXZhdGU6CkBAIC03Myw2ICs3MywxMCBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxB
U0NBdXRob3JpemF0aW9uUHJlc2VudGF0aW9uQ29udGV4dD4gbV9jb250ZXh0OwogICAgIFJldGFp
blB0cjxBU0NBdXRob3JpemF0aW9uUHJlc2VudGVyPiBtX3ByZXNlbnRlcjsKICAgICBSZXRhaW5Q
dHI8V0tBU0NBdXRob3JpemF0aW9uUHJlc2VudGVyRGVsZWdhdGU+IG1fcHJlc2VudGVyRGVsZWdh
dGU7CisgICAgRnVuY3Rpb248dm9pZCgpPiBtX2RlbGF5ZWRQcmVzZW50YXRpb247CisjaWYgSEFW
RShBU0NfQVVUSF9VSSkKKyAgICBib29sIG1fZGVsYXllZFByZXNlbnRhdGlvbk5lZWRzU2VjdXJp
dHlLZXkgeyBmYWxzZSB9OworI2VuZGlmCiAKICAgICBDcmVkZW50aWFsUmVxdWVzdEhhbmRsZXIg
bV9jcmVkZW50aWFsUmVxdWVzdEhhbmRsZXI7CiAKQEAgLTgwLDcgKzg0LDcgQEAgcHJpdmF0ZToK
ICAgICBSZXRhaW5QdHI8TEFDb250ZXh0PiBtX2xhQ29udGV4dDsKIAogICAgIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoV2ViQ29yZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlKik+IG1f
cmVzcG9uc2VIYW5kbGVyOwotICAgIEhhc2hNYXA8QVNDTG9naW5DaG9pY2VQcm90b2NvbCAqLCBS
ZWZQdHI8V2ViQ29yZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlPj4gbV9jcmVkZW50
aWFsczsKKyAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JB
c3NlcnRpb25SZXNwb25zZT4+IG1fY3JlZGVudGlhbHM7CiAKICAgICBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGNvbnN0IFN0cmluZyYpPiBtX3BpbkhhbmRsZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvQXV0aGVudGljYXRv
clByZXNlbnRlckNvb3JkaW5hdG9yLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vQ29jb2EvQXV0aGVudGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9yLm1tCmlu
ZGV4IDU1ODlmMDU4YzU4NTFjYWFiZDA4ZjdkYjBlYjI4NWFmYTA4NTM0NmIuLjM2NjUwNDdlNDZm
ZTgzNDcwYjc0NjJlZDIyN2ViYWRmMTcyMjJlNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0F1dGhlbnRpY2F0b3JQcmVzZW50ZXJD
b29yZGluYXRvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9Db2NvYS9BdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3IubW0KQEAgLTUzLDcg
KzUzLDcgQEAgQXV0aGVudGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9yOjpBdXRoZW50aWNhdG9y
UHJlc2VudGVyQ29vcmRpbmF0b3IoY29uc3QgQXV0aGUKICAgICAgICAgICAgIFttX2NvbnRleHQg
YWRkTG9naW5DaG9pY2U6YWRvcHROUyhbYWxsb2NBU0NTZWN1cml0eUtleVB1YmxpY0tleUNyZWRl
bnRpYWxMb2dpbkNob2ljZUluc3RhbmNlKCkgaW5pdFJlZ2lzdHJhdGlvbkNob2ljZV0pLmdldCgp
XTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDbGllbnREYXRhVHlwZTo6R2V0OgotICAgICAg
ICBpZiAodHJhbnNwb3J0cy5jb250YWlucyhBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpVc2IpIHx8
IHRyYW5zcG9ydHMuY29udGFpbnMoQXV0aGVudGljYXRvclRyYW5zcG9ydDo6TmZjKSkKKyAgICAg
ICAgaWYgKCh0cmFuc3BvcnRzLmNvbnRhaW5zKEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6OlVzYikg
fHwgdHJhbnNwb3J0cy5jb250YWlucyhBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpOZmMpKSAmJiAh
dHJhbnNwb3J0cy5jb250YWlucyhBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpJbnRlcm5hbCkpCiAg
ICAgICAgICAgICBbbV9jb250ZXh0IGFkZExvZ2luQ2hvaWNlOmFkb3B0TlMoW2FsbG9jQVNDU2Vj
dXJpdHlLZXlQdWJsaWNLZXlDcmVkZW50aWFsTG9naW5DaG9pY2VJbnN0YW5jZSgpIGluaXRBc3Nl
cnRpb25QbGFjZWhvbGRlckNob2ljZV0pLmdldCgpXTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVm
YXVsdDoKQEAgLTY1LDcgKzY1LDYgQEAgQXV0aGVudGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9y
OjpBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3IoY29uc3QgQXV0aGUKICAgICBbbV9w
cmVzZW50ZXIgc2V0RGVsZWdhdGU6bV9wcmVzZW50ZXJEZWxlZ2F0ZS5nZXQoKV07CiAKICAgICBh
dXRvIGNvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFttYW5hZ2VyID0gbV9tYW5hZ2Vy
XSAoaWQ8QVNDQ3JlZGVudGlhbFByb3RvY29sPiBjcmVkZW50aWFsLCBOU0Vycm9yICplcnJvcikg
bXV0YWJsZSB7Ci0gICAgICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAgICBp
ZiAoY3JlZGVudGlhbCB8fCAhZXJyb3IpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTc2LDYg
Kzc1LDE1IEBAIEF1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGluYXRvcjo6QXV0aGVudGljYXRv
clByZXNlbnRlckNvb3JkaW5hdG9yKGNvbnN0IEF1dGhlCiAgICAgICAgICAgICAgICAgbWFuYWdl
ci0+Y2FuY2VsKCk7CiAgICAgICAgIH0pOwogICAgIH0pOworCisgICAgaWYgKHR5cGUgPT0gQ2xp
ZW50RGF0YVR5cGU6OkdldCAmJiB0cmFuc3BvcnRzLmNvbnRhaW5zKEF1dGhlbnRpY2F0b3JUcmFu
c3BvcnQ6OkludGVybmFsKSkgeworICAgICAgICBtX2RlbGF5ZWRQcmVzZW50YXRpb25OZWVkc1Nl
Y3VyaXR5S2V5ID0gKHRyYW5zcG9ydHMuY29udGFpbnMoQXV0aGVudGljYXRvclRyYW5zcG9ydDo6
VXNiKSB8fCB0cmFuc3BvcnRzLmNvbnRhaW5zKEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6Ok5mYykp
OworICAgICAgICBtX2RlbGF5ZWRQcmVzZW50YXRpb24gPSBbY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgdGhpc10geworICAgICAgICAgICAgW21fcHJlc2Vu
dGVyIHByZXNlbnRBdXRob3JpemF0aW9uV2l0aENvbnRleHQ6bV9jb250ZXh0LmdldCgpIGNvbXBs
ZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyLmdldCgpXTsKKyAgICAgICAgfTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKwogICAgIFttX3ByZXNlbnRlciBwcmVzZW50QXV0aG9yaXphdGlv
bldpdGhDb250ZXh0Om1fY29udGV4dC5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0aW9u
SGFuZGxlci5nZXQoKV07CiAjZW5kaWYgLy8gSEFWRShBU0NfQVVUSF9VSSkKIH0KQEAgLTk1LDE3
ICsxMDMsMTcgQEAgdm9pZCBBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3I6OnVwZGF0
ZVByZXNlbnRlcihXZWJBdXRoZW50aWNhdGlvblN0YXR1cwogI2lmIEhBVkUoQVNDX0FVVEhfVUkp
CiAgICAgc3dpdGNoIChzdGF0dXMpIHsKICAgICBjYXNlIFdlYkF1dGhlbnRpY2F0aW9uU3RhdHVz
OjpQaW5CbG9ja2VkOiB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBhZG9wdE5TKFtbTlNFcnJvciBh
bGxvY10gaW5pdFdpdGhEb21haW46QVNDQXV0aG9yaXphdGlvbkVycm9yRG9tYWluIGNvZGU6QVND
QXV0aG9yaXphdGlvbkVycm9yUElOUmVxdWlyZWQgdXNlckluZm86QHsgQVNDUElOVmFsaWRhdGlv
blJlc3VsdEtleTogQChBU0NQSU5WYWxpZGF0aW9uUmVzdWx0UElOQmxvY2tlZCkgfV0pOworICAg
ICAgICBhdXRvIGVycm9yID0gYWRvcHROUyhbW05TRXJyb3IgYWxsb2NdIGluaXRXaXRoRG9tYWlu
OkFTQ0F1dGhvcml6YXRpb25FcnJvckRvbWFpbiBjb2RlOkFTQ0F1dGhvcml6YXRpb25FcnJvckF1
dGhlbnRpY2F0b3JQZXJtYW5lbnRseUxvY2tlZCB1c2VySW5mbzpuaWxdKTsKICAgICAgICAgbV9j
cmVkZW50aWFsUmVxdWVzdEhhbmRsZXIobmlsLCBlcnJvci5nZXQoKSk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KICAgICBjYXNlIFdlYkF1dGhlbnRpY2F0aW9uU3RhdHVzOjpQaW5BdXRoQmxvY2tl
ZDogewotICAgICAgICBhdXRvIGVycm9yID0gYWRvcHROUyhbW05TRXJyb3IgYWxsb2NdIGluaXRX
aXRoRG9tYWluOkFTQ0F1dGhvcml6YXRpb25FcnJvckRvbWFpbiBjb2RlOkFTQ0F1dGhvcml6YXRp
b25FcnJvclBJTlJlcXVpcmVkIHVzZXJJbmZvOkB7IEFTQ1BJTlZhbGlkYXRpb25SZXN1bHRLZXk6
IEAoQVNDUElOVmFsaWRhdGlvblJlc3VsdFBJTkF1dGhCbG9ja2VkKSB9XSk7CisgICAgICAgIGF1
dG8gZXJyb3IgPSBhZG9wdE5TKFtbTlNFcnJvciBhbGxvY10gaW5pdFdpdGhEb21haW46QVNDQXV0
aG9yaXphdGlvbkVycm9yRG9tYWluIGNvZGU6QVNDQXV0aG9yaXphdGlvbkVycm9yQXV0aGVudGlj
YXRvclRlbXBvcmFyaWx5TG9ja2VkIHVzZXJJbmZvOm5pbF0pOwogICAgICAgICBtX2NyZWRlbnRp
YWxSZXF1ZXN0SGFuZGxlcihuaWwsIGVycm9yLmdldCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQogICAgIGNhc2UgV2ViQXV0aGVudGljYXRpb25TdGF0dXM6OlBpbkludmFsaWQ6IHsKLSAgICAg
ICAgYXV0byBlcnJvciA9IGFkb3B0TlMoW1tOU0Vycm9yIGFsbG9jXSBpbml0V2l0aERvbWFpbjpB
U0NBdXRob3JpemF0aW9uRXJyb3JEb21haW4gY29kZTpBU0NBdXRob3JpemF0aW9uRXJyb3JQSU5S
ZXF1aXJlZCB1c2VySW5mbzpAeyBBU0NQSU5WYWxpZGF0aW9uUmVzdWx0S2V5OiBAKEFTQ1BJTlZh
bGlkYXRpb25SZXN1bHRQSU5JbnZhbGlkKSB9XSk7CisgICAgICAgIGF1dG8gZXJyb3IgPSBhZG9w
dE5TKFtbTlNFcnJvciBhbGxvY10gaW5pdFdpdGhEb21haW46QVNDQXV0aG9yaXphdGlvbkVycm9y
RG9tYWluIGNvZGU6QVNDQXV0aG9yaXphdGlvbkVycm9yUElOSW52YWxpZCB1c2VySW5mbzpuaWxd
KTsKICAgICAgICAgbV9jcmVkZW50aWFsUmVxdWVzdEhhbmRsZXIobmlsLCBlcnJvci5nZXQoKSk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTExNCw4ICsxMjIsMTIgQEAgdm9pZCBBdXRoZW50
aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0b3I6OnVwZGF0ZVByZXNlbnRlcihXZWJBdXRoZW50aWNh
dGlvblN0YXR1cwogICAgICAgICBbbV9wcmVzZW50ZXIgdXBkYXRlSW50ZXJmYWNlRm9yVXNlclZp
c2libGVFcnJvcjplcnJvci5nZXQoKV07CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBjYXNl
IFdlYkF1dGhlbnRpY2F0aW9uU3RhdHVzOjpOb0NyZWRlbnRpYWxzRm91bmQ6Ci0gICAgY2FzZSBX
ZWJBdXRoZW50aWNhdGlvblN0YXR1czo6TEFOb0NyZWRlbnRpYWw6IHsKKyAgICBjYXNlIFdlYkF1
dGhlbnRpY2F0aW9uU3RhdHVzOjpMQU5vQ3JlZGVudGlhbDoKKyAgICAgICAgaWYgKG1fZGVsYXll
ZFByZXNlbnRhdGlvbk5lZWRzU2VjdXJpdHlLZXkpCisgICAgICAgICAgICBbbV9jb250ZXh0IGFk
ZExvZ2luQ2hvaWNlOmFkb3B0TlMoW2FsbG9jQVNDU2VjdXJpdHlLZXlQdWJsaWNLZXlDcmVkZW50
aWFsTG9naW5DaG9pY2VJbnN0YW5jZSgpIGluaXRBc3NlcnRpb25QbGFjZWhvbGRlckNob2ljZV0p
LmdldCgpXTsKKyAgICAgICAgbV9kZWxheWVkUHJlc2VudGF0aW9uKCk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgV2ViQXV0aGVudGljYXRpb25TdGF0dXM6Ok5vQ3JlZGVudGlhbHNGb3VuZDog
ewogICAgICAgICBhdXRvIGVycm9yID0gYWRvcHROUyhbW05TRXJyb3IgYWxsb2NdIGluaXRXaXRo
RG9tYWluOkFTQ0F1dGhvcml6YXRpb25FcnJvckRvbWFpbiBjb2RlOkFTQ0F1dGhvcml6YXRpb25F
cnJvck5vQ3JlZGVudGlhbHNGb3VuZCB1c2VySW5mbzpuaWxdKTsKICAgICAgICAgW21fcHJlc2Vu
dGVyIHVwZGF0ZUludGVyZmFjZUZvclVzZXJWaXNpYmxlRXJyb3I6ZXJyb3IuZ2V0KCldOwogICAg
ICAgICBicmVhazsKQEAgLTE1NSw2ICsxNjcsNyBAQCB2b2lkIEF1dGhlbnRpY2F0b3JQcmVzZW50
ZXJDb29yZGluYXRvcjo6c2VsZWN0QXNzZXJ0aW9uUmVzcG9uc2UoVmVjdG9yPFJlZjxBdXRoZQog
ICAgIGlmIChzb3VyY2UgPT0gV2ViQXV0aGVudGljYXRpb25Tb3VyY2U6OkV4dGVybmFsKSB7CiAg
ICAgICAgIGF1dG8gbG9naW5DaG9pY2VzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9j
XSBpbml0XSk7CiAKKyAgICAgICAgbV9jcmVkZW50aWFscy5jbGVhcigpOwogICAgICAgICBmb3Ig
KGF1dG8mIHJlc3BvbnNlIDogcmVzcG9uc2VzKSB7CiAgICAgICAgICAgICBSZXRhaW5QdHI8TlNE
YXRhPiB1c2VySGFuZGxlOwogICAgICAgICAgICAgaWYgKHJlc3BvbnNlLT51c2VySGFuZGxlKCkp
CkBAIC0xNjMsNyArMTc2LDcgQEAgdm9pZCBBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRpbmF0
b3I6OnNlbGVjdEFzc2VydGlvblJlc3BvbnNlKFZlY3RvcjxSZWY8QXV0aGUKICAgICAgICAgICAg
IGF1dG8gbG9naW5DaG9pY2UgPSBhZG9wdE5TKFthbGxvY0FTQ1NlY3VyaXR5S2V5UHVibGljS2V5
Q3JlZGVudGlhbExvZ2luQ2hvaWNlSW5zdGFuY2UoKSBpbml0V2l0aE5hbWU6cmVzcG9uc2UtPm5h
bWUoKSBkaXNwbGF5TmFtZTpyZXNwb25zZS0+ZGlzcGxheU5hbWUoKSB1c2VySGFuZGxlOnVzZXJI
YW5kbGUuZ2V0KCldKTsKICAgICAgICAgICAgIFtsb2dpbkNob2ljZXMgYWRkT2JqZWN0OmxvZ2lu
Q2hvaWNlLmdldCgpXTsKIAotICAgICAgICAgICAgbV9jcmVkZW50aWFscy5hZGQoKEFTQ0xvZ2lu
Q2hvaWNlUHJvdG9jb2wgKilsb2dpbkNob2ljZS5nZXQoKSwgV1RGTW92ZShyZXNwb25zZSkpOwor
ICAgICAgICAgICAgbV9jcmVkZW50aWFscy5hZGQocmVzcG9uc2UtPm5hbWUoKSwgV1RGTW92ZShy
ZXNwb25zZSkpOwogICAgICAgICB9CiAKICAgICAgICAgW21fcHJlc2VudGVyIHVwZGF0ZUludGVy
ZmFjZVdpdGhMb2dpbkNob2ljZXM6bG9naW5DaG9pY2VzLmdldCgpXTsKQEAgLTE3MSwyMSArMTg0
LDIxIEBAIHZvaWQgQXV0aGVudGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9yOjpzZWxlY3RBc3Nl
cnRpb25SZXNwb25zZShWZWN0b3I8UmVmPEF1dGhlCiAgICAgfQogCiAgICAgaWYgKHNvdXJjZSA9
PSBXZWJBdXRoZW50aWNhdGlvblNvdXJjZTo6TG9jYWwpIHsKLSAgICAgICAgYXV0byBsb2dpbkNo
b2ljZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKLQorICAgICAg
ICBtX2NyZWRlbnRpYWxzLmNsZWFyKCk7CiAgICAgICAgIGZvciAoYXV0byYgcmVzcG9uc2UgOiBy
ZXNwb25zZXMpIHsKICAgICAgICAgICAgIFJldGFpblB0cjxOU0RhdGE+IHVzZXJIYW5kbGU7CiAg
ICAgICAgICAgICBpZiAocmVzcG9uc2UtPnVzZXJIYW5kbGUoKSkKICAgICAgICAgICAgICAgICB1
c2VySGFuZGxlID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczpyZXNwb25z
ZS0+dXNlckhhbmRsZSgpLT5kYXRhKCkgbGVuZ3RoOnJlc3BvbnNlLT51c2VySGFuZGxlKCktPmJ5
dGVMZW5ndGgoKV0pOwogCiAgICAgICAgICAgICBhdXRvIGxvZ2luQ2hvaWNlID0gYWRvcHROUyhb
YWxsb2NBU0NQbGF0Zm9ybVB1YmxpY0tleUNyZWRlbnRpYWxMb2dpbkNob2ljZUluc3RhbmNlKCkg
aW5pdFdpdGhOYW1lOnJlc3BvbnNlLT5uYW1lKCkgZGlzcGxheU5hbWU6cmVzcG9uc2UtPmRpc3Bs
YXlOYW1lKCkgdXNlckhhbmRsZTp1c2VySGFuZGxlLmdldCgpXSk7Ci0gICAgICAgICAgICBbbG9n
aW5DaG9pY2VzIGFkZE9iamVjdDpsb2dpbkNob2ljZS5nZXQoKV07CisgICAgICAgICAgICBbbV9j
b250ZXh0IGFkZExvZ2luQ2hvaWNlOmxvZ2luQ2hvaWNlLmdldCgpXTsKIAotICAgICAgICAgICAg
bV9jcmVkZW50aWFscy5hZGQoKEFTQ0xvZ2luQ2hvaWNlUHJvdG9jb2wgKilsb2dpbkNob2ljZS5n
ZXQoKSwgV1RGTW92ZShyZXNwb25zZSkpOworICAgICAgICAgICAgbV9jcmVkZW50aWFscy5hZGQo
cmVzcG9uc2UtPm5hbWUoKSwgV1RGTW92ZShyZXNwb25zZSkpOwogICAgICAgICB9CiAKLSAgICAg
ICAgW2xvZ2luQ2hvaWNlcyBhZGRPYmplY3RzRnJvbUFycmF5OlttX2NvbnRleHQgbG9naW5DaG9p
Y2VzXV07IC8vIEFkZHMgdGhlIHNlY3VyaXR5IGtleSBvcHRpb24gaWYgZXhpc3RzLgotICAgICAg
ICBbbV9wcmVzZW50ZXIgdXBkYXRlSW50ZXJmYWNlV2l0aExvZ2luQ2hvaWNlczpsb2dpbkNob2lj
ZXMuZ2V0KCldOworICAgICAgICBpZiAobV9kZWxheWVkUHJlc2VudGF0aW9uTmVlZHNTZWN1cml0
eUtleSkKKyAgICAgICAgICAgIFttX2NvbnRleHQgYWRkTG9naW5DaG9pY2U6YWRvcHROUyhbYWxs
b2NBU0NTZWN1cml0eUtleVB1YmxpY0tleUNyZWRlbnRpYWxMb2dpbkNob2ljZUluc3RhbmNlKCkg
aW5pdEFzc2VydGlvblBsYWNlaG9sZGVyQ2hvaWNlXSkuZ2V0KCldOworICAgICAgICBtX2RlbGF5
ZWRQcmVzZW50YXRpb24oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZiAvLyBIQVZF
KEFTQ19BVVRIX1VJKQpAQCAtMjI1LDkgKzIzOCw5IEBAIHZvaWQgQXV0aGVudGljYXRvclByZXNl
bnRlckNvb3JkaW5hdG9yOjpzZXRMQUNvbnRleHQoTEFDb250ZXh0ICpjb250ZXh0KQogICAgIG1f
bGFDb250ZXh0ID0gY29udGV4dDsKIH0KIAotdm9pZCBBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29v
cmRpbmF0b3I6OmRpZFNlbGVjdEFzc2VydGlvblJlc3BvbnNlKEFTQ0xvZ2luQ2hvaWNlUHJvdG9j
b2wgKmxvZ2luQ2hvaWNlLCBMQUNvbnRleHQgKmNvbnRleHQpCit2b2lkIEF1dGhlbnRpY2F0b3JQ
cmVzZW50ZXJDb29yZGluYXRvcjo6ZGlkU2VsZWN0QXNzZXJ0aW9uUmVzcG9uc2UoY29uc3QgU3Ry
aW5nJiBjcmVkZW50aWFsTmFtZSwgTEFDb250ZXh0ICpjb250ZXh0KQogewotICAgIGF1dG8gcmVz
cG9uc2UgPSBtX2NyZWRlbnRpYWxzLnRha2UobG9naW5DaG9pY2UpOworICAgIGF1dG8gcmVzcG9u
c2UgPSBtX2NyZWRlbnRpYWxzLnRha2UoY3JlZGVudGlhbE5hbWUpOwogICAgIGlmICghcmVzcG9u
c2UpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV0tBU0NBdXRob3JpemF0aW9uUHJlc2VudGVyRGVs
ZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2Nv
YS9XS0FTQ0F1dGhvcml6YXRpb25QcmVzZW50ZXJEZWxlZ2F0ZS5tbQppbmRleCBjYzU2Zjk3NDYz
YzYyNjgxMmNhNjRjYzQ0M2IxZDIyYTZjMWZkYWM3Li43Y2MxNzA3NDRhOGU0YjVkMDUwNzFlZWJk
YTBmNGViMGUwMmRmNGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9Db2NvYS9XS0FTQ0F1dGhvcml6YXRpb25QcmVzZW50ZXJEZWxlZ2F0ZS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9X
S0FTQ0F1dGhvcml6YXRpb25QcmVzZW50ZXJEZWxlZ2F0ZS5tbQpAQCAtNTUsNyArNTUsOSBAQCAt
ICh2b2lkKWF1dGhvcml6YXRpb25QcmVzZW50ZXI6KEFTQ0F1dGhvcml6YXRpb25QcmVzZW50ZXIg
KilwcmVzZW50ZXIgY3JlZGVudGlhbAogICAgIH1dOwogCiAgICAgaWYgKFtsb2dpbkNob2ljZSBp
c0tpbmRPZkNsYXNzOldlYktpdDo6Z2V0QVNDUGxhdGZvcm1QdWJsaWNLZXlDcmVkZW50aWFsTG9n
aW5DaG9pY2VDbGFzcygpXSkgewotICAgICAgICBpZiAoWyhBU0NQbGF0Zm9ybVB1YmxpY0tleUNy
ZWRlbnRpYWxMb2dpbkNob2ljZSAqKWxvZ2luQ2hvaWNlIGlzUmVnaXN0cmF0aW9uUmVxdWVzdF0p
IHsKKyAgICAgICAgYXV0byAqcGxhdGZvcm1Mb2dpbkNob2ljZSA9IChBU0NQbGF0Zm9ybVB1Ymxp
Y0tleUNyZWRlbnRpYWxMb2dpbkNob2ljZSAqKWxvZ2luQ2hvaWNlOworCisgICAgICAgIGlmIChb
cGxhdGZvcm1Mb2dpbkNob2ljZSBpc1JlZ2lzdHJhdGlvblJlcXVlc3RdKSB7CiAgICAgICAgICAg
ICBbc2VsZiBkaXNwYXRjaENvb3JkaW5hdG9yQ2FsbGJhY2s6W2NvbnRleHQgPSByZXRhaW5QdHIo
Y29udGV4dCldIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JQcmVzZW50ZXJDb29yZGluYXRvciYgY29v
cmRpbmF0b3IpIG11dGFibGUgewogICAgICAgICAgICAgICAgIGNvb3JkaW5hdG9yLnNldExBQ29u
dGV4dChjb250ZXh0LmdldCgpKTsKICAgICAgICAgICAgIH1dOwpAQCAtNjMsMTkgKzY1LDIxIEBA
IC0gKHZvaWQpYXV0aG9yaXphdGlvblByZXNlbnRlcjooQVNDQXV0aG9yaXphdGlvblByZXNlbnRl
ciAqKXByZXNlbnRlciBjcmVkZW50aWFsCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
IAotICAgICAgICBpZiAoIVsoQVNDUGxhdGZvcm1QdWJsaWNLZXlDcmVkZW50aWFsTG9naW5DaG9p
Y2UgKilsb2dpbkNob2ljZSBpc1JlZ2lzdHJhdGlvblJlcXVlc3RdKSB7Ci0gICAgICAgICAgICBb
c2VsZiBkaXNwYXRjaENvb3JkaW5hdG9yQ2FsbGJhY2s6W2xvZ2luQ2hvaWNlLCBjb250ZXh0ID0g
cmV0YWluUHRyKGNvbnRleHQpXSAoV2ViS2l0OjpBdXRoZW50aWNhdG9yUHJlc2VudGVyQ29vcmRp
bmF0b3ImIGNvb3JkaW5hdG9yKSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICBjb29yZGluYXRv
ci5kaWRTZWxlY3RBc3NlcnRpb25SZXNwb25zZSgoQVNDTG9naW5DaG9pY2VQcm90b2NvbCAqKWxv
Z2luQ2hvaWNlLCBjb250ZXh0LmdldCgpKTsKLSAgICAgICAgICAgIH1dOworICAgICAgICBTdHJp
bmcgbG9naW5DaG9pY2VOYW1lID0gcGxhdGZvcm1Mb2dpbkNob2ljZS5uYW1lOworICAgICAgICBb
c2VsZiBkaXNwYXRjaENvb3JkaW5hdG9yQ2FsbGJhY2s6W2xvZ2luQ2hvaWNlTmFtZSA9IFdURk1v
dmUobG9naW5DaG9pY2VOYW1lKSwgY29udGV4dCA9IHJldGFpblB0cihjb250ZXh0KV0gKFdlYktp
dDo6QXV0aGVudGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9yJiBjb29yZGluYXRvcikgbXV0YWJs
ZSB7CisgICAgICAgICAgICBjb29yZGluYXRvci5kaWRTZWxlY3RBc3NlcnRpb25SZXNwb25zZShs
b2dpbkNob2ljZU5hbWUsIGNvbnRleHQuZ2V0KCkpOworICAgICAgICB9XTsKIAotICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICB9CisgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAo
W2xvZ2luQ2hvaWNlIGlzS2luZE9mQ2xhc3M6V2ViS2l0OjpnZXRBU0NTZWN1cml0eUtleVB1Ymxp
Y0tleUNyZWRlbnRpYWxMb2dpbkNob2ljZUNsYXNzKCldKSB7Ci0gICAgICAgIGlmIChbKEFTQ1Nl
Y3VyaXR5S2V5UHVibGljS2V5Q3JlZGVudGlhbExvZ2luQ2hvaWNlICopbG9naW5DaG9pY2UgbG9n
aW5DaG9pY2VLaW5kXSA9PSBBU0NTZWN1cml0eUtleVB1YmxpY0tleUNyZWRlbnRpYWxMb2dpbkNo
b2ljZUtpbmRBc3NlcnRpb24pIHsKLSAgICAgICAgICAgIFtzZWxmIGRpc3BhdGNoQ29vcmRpbmF0
b3JDYWxsYmFjazpbbG9naW5DaG9pY2VdIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JQcmVzZW50ZXJD
b29yZGluYXRvciYgY29vcmRpbmF0b3IpIG11dGFibGUgewotICAgICAgICAgICAgICAgIGNvb3Jk
aW5hdG9yLmRpZFNlbGVjdEFzc2VydGlvblJlc3BvbnNlKChBU0NMb2dpbkNob2ljZVByb3RvY29s
ICopbG9naW5DaG9pY2UsIG5pbCk7CisgICAgICAgIGF1dG8gKnNlY3VyaXR5S2V5TG9naW5DaG9p
Y2UgPSAoQVNDU2VjdXJpdHlLZXlQdWJsaWNLZXlDcmVkZW50aWFsTG9naW5DaG9pY2UgKilsb2dp
bkNob2ljZTsKKworICAgICAgICBpZiAoW3NlY3VyaXR5S2V5TG9naW5DaG9pY2UgbG9naW5DaG9p
Y2VLaW5kXSA9PSBBU0NTZWN1cml0eUtleVB1YmxpY0tleUNyZWRlbnRpYWxMb2dpbkNob2ljZUtp
bmRBc3NlcnRpb24pIHsKKyAgICAgICAgICAgIFN0cmluZyBsb2dpbkNob2ljZU5hbWUgPSBzZWN1
cml0eUtleUxvZ2luQ2hvaWNlLm5hbWU7CisgICAgICAgICAgICBbc2VsZiBkaXNwYXRjaENvb3Jk
aW5hdG9yQ2FsbGJhY2s6W2xvZ2luQ2hvaWNlTmFtZSA9IFdURk1vdmUobG9naW5DaG9pY2VOYW1l
KV0gKFdlYktpdDo6QXV0aGVudGljYXRvclByZXNlbnRlckNvb3JkaW5hdG9yJiBjb29yZGluYXRv
cikgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgY29vcmRpbmF0b3IuZGlkU2VsZWN0QXNzZXJ0
aW9uUmVzcG9uc2UobG9naW5DaG9pY2VOYW1lLCBuaWwpOwogICAgICAgICAgICAgfV07CiAKICAg
ICAgICAgICAgIHJldHVybjsK
</data>

          </attachment>
      

    </bug>

</bugzilla>