<?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>232965</bug_id>
          
          <creation_ts>2021-11-10 13:35:28 -0800</creation_ts>
          <short_desc>[WebAuthn] Unify _WKWebAuthenticationPanel SPI and AuthenticatorCoordinator&apos;s ClientDataJson generation</short_desc>
          <delta_ts>2021-11-10 18:52:09 -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>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="pascoe@apple.com">pascoe</reporter>
          <assigned_to name="pascoe@apple.com">pascoe</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1813778</commentid>
    <comment_count>0</comment_count>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2021-11-10 13:35:28 -0800</bug_when>
    <thetext>Whenever generating assertions via ASC ui, the client data json returned is not the same client data json that is used for hashing purposes. This change modifies the clientDataJson SPI to use the same method as AuthenticatorCoordinator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813779</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-10 13:35:45 -0800</bug_when>
    <thetext>&lt;rdar://problem/85268216&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813780</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-10 13:36:59 -0800</bug_when>
    <thetext>&lt;rdar://problem/85268259&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813789</commentid>
    <comment_count>3</comment_count>
      <attachid>443862</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2021-11-10 14:06:31 -0800</bug_when>
    <thetext>Created attachment 443862
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813792</commentid>
    <comment_count>4</comment_count>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2021-11-10 14:13:49 -0800</bug_when>
    <thetext>In the longer term, we should find a way to avoid generating ClientDataJson in two places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813814</commentid>
    <comment_count>5</comment_count>
      <attachid>443870</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2021-11-10 15:05:04 -0800</bug_when>
    <thetext>Created attachment 443870
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813815</commentid>
    <comment_count>6</comment_count>
      <attachid>443871</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2021-11-10 15:06:42 -0800</bug_when>
    <thetext>Created attachment 443871
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813816</commentid>
    <comment_count>7</comment_count>
      <attachid>443871</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-11-10 15:24:31 -0800</bug_when>
    <thetext>Comment on attachment 443871
Patch

Looks good! r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813884</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-10 18:52:08 -0800</bug_when>
    <thetext>Committed r285617 (244118@main): &lt;https://commits.webkit.org/244118@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443871.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443862</attachid>
            <date>2021-11-10 14:06:31 -0800</date>
            <delta_ts>2021-11-10 15:05:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232965-20211110140630.patch</filename>
            <type>text/plain</type>
            <size>14360</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTk4MDRkMTFkM2FlNDdh
N2M4ZGQ5YjdmNDVkZjIxYWZmN2M0NThiNS4uMGE3YTYzYTVkYTVlZjk1NzM2ZjM5ZTQzNWY4ZDYw
YzA3YmRlOTgwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTExLTEwICBKIFBh
c2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFVuaWZ5IF9X
S1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgU1BJIGFuZCBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3In
cyBDbGllbnREYXRhSnNvbiBnZW5lcmF0aW9uIAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyOTY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTI2
ODIxNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGUgX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBTUEkgYW5kIEF1dGhlbnRpY2F0b3JDb29yZGlu
YXRvciB1c2UgZGlmZmVyZW50IG1ldGhvZHMgb2YgZ2VuZXJhdGluZworICAgICAgICBjbGllbnRE
YXRhSnNvbiwgd2hpY2ggcmVzdWx0cyBpbiBzdHJpbmdzIHdpdGggdGhlIGtleXMgaW4gYSBkaWZm
ZXJlbnQgb3JkZXIuIFRoaXMgY2hhbmdlIGFic3RyYWN0cworICAgICAgICB0aGUgY2xpZW50RGF0
YUpzb24gZ2VuZXJhdGlvbiBvdXQgb2YgQXV0aGVudGljYXRvckNvb3JkaW5hdG9yIGFuZCBpbnRv
IFdlYkF1dGhlbnRpY2F0aW9uVXRpbHMuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1
dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3I6OmNyZWF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3I6OmRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JDb29yZGluYXRvckludGVybmFsOjpwcm9kdWNl
Q2xpZW50RGF0YUpzb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRv
ckNvb3JkaW5hdG9ySW50ZXJuYWw6OnByb2R1Y2VDbGllbnREYXRhSnNvbkhhc2gpOiBEZWxldGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpidWlsZENsaWVudERhdGFKc29uKToKKyAgICAgICAgKFdlYkNv
cmU6OmJ1aWxkQ2xpZW50RGF0YUpzb25IYXNoKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhu
L1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuaDoKKwogMjAyMS0xMS0wOSAgU2lodWkgTGl1ICA8c2lo
dWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggbWFjQ2F0YWx5c3QgYnVpbGQgYWZ0ZXIg
cjI4NTUwOQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBjMjY4NzhjNDVmY2U5ZWM0YmU3MDNlNzVkMTU4NjQ3ZGU1OWJj
MDk1Li4zYzk5NmIwOTI3NGY1ZWE2MmRjODRiNjRlMTQwYmRmMjU4NDc2ODAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE5IEBACisyMDIxLTExLTEwICBKIFBhc2NvZSAgPGpfcGFzY29lQGFwcGxlLmNv
bT4KKworICAgICAgICBbV2ViQXV0aG5dIFVuaWZ5IF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwg
U1BJIGFuZCBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IncyBDbGllbnREYXRhSnNvbiBnZW5lcmF0
aW9uIAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMy
OTY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTI2ODIxNj4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgX1dLV2ViQXV0aGVudGljYXRpb25Q
YW5lbCBTUEkgYW5kIEF1dGhlbnRpY2F0b3JDb29yZGluYXRvciB1c2UgZGlmZmVyZW50IG1ldGhv
ZHMgb2YgZ2VuZXJhdGluZyAKKyAgICAgICAgY2xpZW50RGF0YUpzb24sIHdoaWNoIHJlc3VsdHMg
aW4gc3RyaW5ncyB3aXRoIHRoZSBrZXlzIGluIGEgZGlmZmVyZW50IG9yZGVyLiBUaGlzIGNhdXNl
cyBwcm9ibGVtcworICAgICAgICBiZWNhdXNlIHdoZW4gZ2VuZXJhdGluZyBhc3NlcnRzIHZpYSBB
U0MgdWksIHRoZSBoYXNoIHNpZ25lZCBhbmQgdGhlIGNsaWVudCBkYXRhIGpzb24gdXNlZCB0byBn
ZW5lcmF0ZQorICAgICAgICB0aGF0IGhhc2ggYXJlIGRpZmZlcmVudCBmcm9tIHRoZSBjbGllbnQg
ZGF0YSBqc29uIHJldHVybmVkIHRvIGpzLiAKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbToKKyAgICAgICAgKHByb2R1Y2VDbGllbnRE
YXRhSnNvbik6CisKIDIwMjEtMTEtMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBCcm9hZGNhc3RDaGFubmVsIGlzIHN0aWxsIGRpc2FibGVkIGluIHNlcnZpY2Ug
d29ya2VycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCmluZGV4IGM0ZTU2OGYxMDY1MWVjMDc0YjQ1
NTdlMDRiOTc4ZjkyZGU4NDc3YzYuLjk1NTk4ZDJmNDJmNTUzOTA4YmIyYzRjZWZjMmIxNGNjYzlh
MmE1ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVu
dGljYXRvckNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAKQEAgLTQxLDggKzQxLDggQEAKICNpbmNs
dWRlICJQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaCIKICNpbmNsdWRlICJSZWdp
c3RyYWJsZURvbWFpbi5oIgogI2luY2x1ZGUgIkxlZ2FjeVNjaGVtZVJlZ2lzdHJ5LmgiCi0jaW5j
bHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJXZWJBdXRoZW50aWNhdGlvbkNvbnN0
YW50cy5oIgorI2luY2x1ZGUgIldlYkF1dGhlbnRpY2F0aW9uVXRpbHMuaCIKICNpbmNsdWRlIDxw
YWwvY3J5cHRvL0NyeXB0b0RpZ2VzdC5oPgogI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVzLmg+CiAj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CkBAIC01MiwzMiArNTIsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFjZSBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JJbnRlcm5h
bCB7CiAKLS8vIEZJWE1FKDE4MTk0OCk6IEFkZCB0b2tlbiBiaW5kaW5nIElELgotc3RhdGljIFJl
ZjxBcnJheUJ1ZmZlcj4gcHJvZHVjZUNsaWVudERhdGFKc29uKENsaWVudERhdGFUeXBlIHR5cGUs
IGNvbnN0IEJ1ZmZlclNvdXJjZSYgY2hhbGxlbmdlLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3Jp
Z2luKQotewotICAgIGF1dG8gb2JqZWN0ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKLSAgICBz
d2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNlIENsaWVudERhdGFUeXBlOjpDcmVhdGU6Ci0gICAgICAg
IG9iamVjdC0+c2V0U3RyaW5nKCJ0eXBlIl9zLCAid2ViYXV0aG4uY3JlYXRlIl9zKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBDbGllbnREYXRhVHlwZTo6R2V0OgotICAgICAgICBvYmplY3Qt
PnNldFN0cmluZygidHlwZSJfcywgIndlYmF1dGhuLmdldCJfcyk7Ci0gICAgICAgIGJyZWFrOwot
ICAgIH0KLSAgICBvYmplY3QtPnNldFN0cmluZygiY2hhbGxlbmdlIl9zLCBiYXNlNjRVUkxFbmNv
ZGVUb1N0cmluZyhjaGFsbGVuZ2UuZGF0YSgpLCBjaGFsbGVuZ2UubGVuZ3RoKCkpKTsKLSAgICBv
YmplY3QtPnNldFN0cmluZygib3JpZ2luIl9zLCBvcmlnaW4udG9SYXdTdHJpbmcoKSk7Ci0KLSAg
ICBhdXRvIHV0ZjhKU09OU3RyaW5nID0gb2JqZWN0LT50b0pTT05TdHJpbmcoKS51dGY4KCk7Ci0g
ICAgcmV0dXJuIEFycmF5QnVmZmVyOjpjcmVhdGUodXRmOEpTT05TdHJpbmcuZGF0YSgpLCB1dGY4
SlNPTlN0cmluZy5sZW5ndGgoKSk7Ci19Ci0KLXN0YXRpYyBWZWN0b3I8dWludDhfdD4gcHJvZHVj
ZUNsaWVudERhdGFKc29uSGFzaChjb25zdCBBcnJheUJ1ZmZlciYgY2xpZW50RGF0YUpzb24pCi17
Ci0gICAgYXV0byBjcnlwdG8gPSBQQUw6OkNyeXB0b0RpZ2VzdDo6Y3JlYXRlKFBBTDo6Q3J5cHRv
RGlnZXN0OjpBbGdvcml0aG06OlNIQV8yNTYpOwotICAgIGNyeXB0by0+YWRkQnl0ZXMoY2xpZW50
RGF0YUpzb24uZGF0YSgpLCBjbGllbnREYXRhSnNvbi5ieXRlTGVuZ3RoKCkpOwotICAgIHJldHVy
biBjcnlwdG8tPmNvbXB1dGVIYXNoKCk7Ci19Ci0KIHN0YXRpYyBib29sIG5lZWRzQXBwSWRRdWly
a3MoY29uc3QgU3RyaW5nJiBob3N0LCBjb25zdCBTdHJpbmcmIGFwcElkKQogewogICAgIC8vIEZJ
WE1FKDE5NzUyNCk6IFJlbW92ZSB0aGlzIHF1aXJrIGluIDIwMjMuIEFzIGFuIGVhcmx5IGFkb3B0
ZXIgb2YgVTJGIGZlYXR1cmVzLCBHb29nbGUgaGFzIGEgbGFyZ2UgbnVtYmVyIG9mCkBAIC0xNzYs
OCArMTUwLDggQEAgdm9pZCBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmNyZWF0ZShjb25zdCBE
b2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFB1YmxpY0tleUMKICAgICBvcHRpb25zLmV4dGVuc2lv
bnMgPSBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMgeyBTdHJpbmcoKSwgcHJv
Y2Vzc0dvb2dsZUxlZ2FjeUFwcElkU3VwcG9ydEV4dGVuc2lvbihvcHRpb25zLmV4dGVuc2lvbnMs
IG9wdGlvbnMucnAuaWQpIH07CiAKICAgICAvLyBTdGVwIDEzLTE1LgotICAgIGF1dG8gY2xpZW50
RGF0YUpzb24gPSBwcm9kdWNlQ2xpZW50RGF0YUpzb24oQ2xpZW50RGF0YVR5cGU6OkNyZWF0ZSwg
b3B0aW9ucy5jaGFsbGVuZ2UsIGNhbGxlck9yaWdpbik7Ci0gICAgYXV0byBjbGllbnREYXRhSnNv
bkhhc2ggPSBwcm9kdWNlQ2xpZW50RGF0YUpzb25IYXNoKGNsaWVudERhdGFKc29uKTsKKyAgICBh
dXRvIGNsaWVudERhdGFKc29uID0gYnVpbGRDbGllbnREYXRhSnNvbihDbGllbnREYXRhVHlwZTo6
Q3JlYXRlLCBvcHRpb25zLmNoYWxsZW5nZSwgY2FsbGVyT3JpZ2luKTsKKyAgICBhdXRvIGNsaWVu
dERhdGFKc29uSGFzaCA9IGJ1aWxkQ2xpZW50RGF0YUpzb25IYXNoKGNsaWVudERhdGFKc29uKTsK
IAogICAgIC8vIFN0ZXAgNCwgMTctMjEuCiAgICAgaWYgKCFtX2NsaWVudCkgewpAQCAtMjQ3LDgg
KzIyMSw4IEBAIHZvaWQgQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpkaXNjb3ZlckZyb21FeHRl
cm5hbFNvdXJjZShjb25zdCBEb2N1bWVudCYgZG9jdW1lCiAgICAgfQogCiAgICAgLy8gU3RlcCAx
MC0xMi4KLSAgICBhdXRvIGNsaWVudERhdGFKc29uID0gcHJvZHVjZUNsaWVudERhdGFKc29uKENs
aWVudERhdGFUeXBlOjpHZXQsIG9wdGlvbnMuY2hhbGxlbmdlLCBjYWxsZXJPcmlnaW4pOwotICAg
IGF1dG8gY2xpZW50RGF0YUpzb25IYXNoID0gcHJvZHVjZUNsaWVudERhdGFKc29uSGFzaChjbGll
bnREYXRhSnNvbik7CisgICAgYXV0byBjbGllbnREYXRhSnNvbiA9IGJ1aWxkQ2xpZW50RGF0YUpz
b24oQ2xpZW50RGF0YVR5cGU6OkdldCwgb3B0aW9ucy5jaGFsbGVuZ2UsIGNhbGxlck9yaWdpbik7
CisgICAgYXV0byBjbGllbnREYXRhSnNvbkhhc2ggPSBidWlsZENsaWVudERhdGFKc29uSGFzaChj
bGllbnREYXRhSnNvbik7CiAKICAgICAvLyBTdGVwIDQsIDE0LTE5LgogICAgIGlmICghbV9jbGll
bnQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vV2ViQXV0
aGVudGljYXRpb25VdGlscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1dl
YkF1dGhlbnRpY2F0aW9uVXRpbHMuY3BwCmluZGV4IDA2OGZlZjYyNWE4ZTI4MjFiNGI4ZjRkNjg5
NWM1N2YwNWM1OTBiODUuLmM2NjcyZTQ2NmVmOTAxYWY2YjE0YTY1OGNiMmE4ODI2YWFlZjgyODkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vV2ViQXV0aGVudGlj
YXRpb25VdGlscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9XZWJB
dXRoZW50aWNhdGlvblV0aWxzLmNwcApAQCAtMTMxLDYgKzEzMSwzMiBAQCBWZWN0b3I8dWludDhf
dD4gYnVpbGRBdHRlc3RhdGlvbk9iamVjdChWZWN0b3I8dWludDhfdD4mJiBhdXRoRGF0YSwgU3Ry
aW5nJiYgZm9ybQogICAgIHJldHVybiAqYXR0ZXN0YXRpb25PYmplY3Q7CiB9CiAKKy8vIEZJWE1F
KDE4MTk0OCk6IEFkZCB0b2tlbiBiaW5kaW5nIElELgorUmVmPEFycmF5QnVmZmVyPiBidWlsZENs
aWVudERhdGFKc29uKENsaWVudERhdGFUeXBlIHR5cGUsIGNvbnN0IEJ1ZmZlclNvdXJjZSYgY2hh
bGxlbmdlLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3JpZ2luKQoreworICAgIGF1dG8gb2JqZWN0
ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNl
IENsaWVudERhdGFUeXBlOjpDcmVhdGU6CisgICAgICAgIG9iamVjdC0+c2V0U3RyaW5nKCJ0eXBl
Il9zLCAid2ViYXV0aG4uY3JlYXRlIl9zKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDbGll
bnREYXRhVHlwZTo6R2V0OgorICAgICAgICBvYmplY3QtPnNldFN0cmluZygidHlwZSJfcywgIndl
YmF1dGhuLmdldCJfcyk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBvYmplY3QtPnNldFN0
cmluZygiY2hhbGxlbmdlIl9zLCBiYXNlNjRVUkxFbmNvZGVUb1N0cmluZyhjaGFsbGVuZ2UuZGF0
YSgpLCBjaGFsbGVuZ2UubGVuZ3RoKCkpKTsKKyAgICBvYmplY3QtPnNldFN0cmluZygib3JpZ2lu
Il9zLCBvcmlnaW4udG9SYXdTdHJpbmcoKSk7CisKKyAgICBhdXRvIHV0ZjhKU09OU3RyaW5nID0g
b2JqZWN0LT50b0pTT05TdHJpbmcoKS51dGY4KCk7CisKKyAgICByZXR1cm4gQXJyYXlCdWZmZXI6
OmNyZWF0ZSh1dGY4SlNPTlN0cmluZy5kYXRhKCksIHV0ZjhKU09OU3RyaW5nLmxlbmd0aCgpKTsK
K30KKworVmVjdG9yPHVpbnQ4X3Q+IGJ1aWxkQ2xpZW50RGF0YUpzb25IYXNoKGNvbnN0IEFycmF5
QnVmZmVyJiBjbGllbnREYXRhSnNvbikKK3sKKyAgICBhdXRvIGNyeXB0byA9IFBBTDo6Q3J5cHRv
RGlnZXN0OjpjcmVhdGUoUEFMOjpDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzI1Nik7Cisg
ICAgY3J5cHRvLT5hZGRCeXRlcyhjbGllbnREYXRhSnNvbi5kYXRhKCksIGNsaWVudERhdGFKc29u
LmJ5dGVMZW5ndGgoKSk7CisgICAgcmV0dXJuIGNyeXB0by0+Y29tcHV0ZUhhc2goKTsKK30KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5oCmluZGV4IDUxZjA1NmU2ZDMz
ZmE4OGI3NTc3NDJmNDlmOTA0MzM1ZDYzM2Q5MjguLmEwNzkyMTFkZWIxN2M4ZTI2YmJmMWU4OWQz
MjBmMTFjODU5MzdlNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5oCkBAIC0yOCw3ICsyOCwxMCBAQAogI2lm
IEVOQUJMRShXRUJfQVVUSE4pCiAKICNpbmNsdWRlICJBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVm
ZXJlbmNlLmgiCisjaW5jbHVkZSAiQnVmZmVyU291cmNlLmgiCiAjaW5jbHVkZSAiQ0JPUlZhbHVl
LmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJXZWJBdXRoZW50aWNh
dGlvbkNvbnN0YW50cy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTQ5LDYgKzUyLDEwIEBAIFdFQkNPUkVfRVhQT1JUIFZlY3Rvcjx1aW50OF90
PiBidWlsZEF1dGhEYXRhKGNvbnN0IFN0cmluZyYgcnBJZCwgY29uc3QgdWludDhfdCBmCiAvLyBo
dHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4vI2F0dGVzdGF0aW9uLW9iamVjdAogV0VCQ09S
RV9FWFBPUlQgVmVjdG9yPHVpbnQ4X3Q+IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QoVmVjdG9yPHVp
bnQ4X3Q+JiYgYXV0aERhdGEsIFN0cmluZyYmIGZvcm1hdCwgY2Jvcjo6Q0JPUlZhbHVlOjpNYXBW
YWx1ZSYmIHN0YXRlbWVudE1hcCwgY29uc3QgQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5j
ZSYpOwogCitXRUJDT1JFX0VYUE9SVCBSZWY8QXJyYXlCdWZmZXI+IGJ1aWxkQ2xpZW50RGF0YUpz
b24oQ2xpZW50RGF0YVR5cGUgLyp0eXBlKi8sIGNvbnN0IEJ1ZmZlclNvdXJjZSYgY2hhbGxlbmdl
LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgLypvcmlnaW4qLyk7CisKK1dFQkNPUkVfRVhQT1JUIFZl
Y3Rvcjx1aW50OF90PiBidWlsZENsaWVudERhdGFKc29uSGFzaChjb25zdCBBcnJheUJ1ZmZlciYg
Y2xpZW50RGF0YUpzb24pOworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBF
TkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRleCA1NzU4ZmI3
ZDA0ZmJmZGFmM2FiOWNmNTVhMDg3MDM3NWE4MDg2MWM3Li4zOTRkZTNiMDU4OWU3ZjYzNTI0NDA2
YTE4NzBhNmM5ZDIwMjA3MGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpAQCAtNDUs
NiArNDUsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9BdXRoZW50aWNhdG9yQXR0YWNobWVudC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9BdXRoZW50aWNhdG9yUmVzcG9uc2UuaD4KICNpbXBvcnQgPFdlYkNv
cmUvQXV0aGVudGljYXRvclJlc3BvbnNlRGF0YS5oPgorI2ltcG9ydCA8V2ViQ29yZS9CdWZmZXJT
b3VyY2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ0JPUlJlYWRlci5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9DQk9SV3JpdGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZpZG9Db25zdGFudHMuaD4KQEAgLTUy
LDcgKzUzLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9ucy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9w
dGlvbnMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQXV0aGVudGljYXRpb25Db25zdGFudHMuaD4K
LSNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KKyNpbXBvcnQgPFdlYkNvcmUv
V2ViQXV0aGVudGljYXRpb25VdGlscy5oPgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CiAjaW1w
b3J0IDxwYWwvY3J5cHRvL0NyeXB0b0RpZ2VzdC5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+
CkBAIC03MywxOSArNzQsMjAgQEAgc3RhdGljIHZvaWQgdXBkYXRlUXVlcnlJZk5lY2Vzc2FyeShO
U011dGFibGVEaWN0aW9uYXJ5ICopCiAKIHN0YXRpYyBSZXRhaW5QdHI8TlNEYXRhPiBwcm9kdWNl
Q2xpZW50RGF0YUpzb24oX1dLV2ViQXV0aGVudGljYXRpb25UeXBlIHR5cGUsIE5TRGF0YSAqY2hh
bGxlbmdlLCBOU1N0cmluZyAqb3JpZ2luKQogewotICAgIGF1dG8gZGljdGlvbmFyeSA9IGFkb3B0
TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0XSk7CisgICAgV2ViQ29yZTo6Q2xp
ZW50RGF0YVR5cGUgY2xpZW50RGF0YVR5cGU7CiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2Fz
ZSBfV0tXZWJBdXRoZW50aWNhdGlvblR5cGVDcmVhdGU6Ci0gICAgICAgIFtkaWN0aW9uYXJ5IHNl
dE9iamVjdDpAIndlYmF1dGhuLmNyZWF0ZSIgZm9yS2V5OkAidHlwZSJdOworICAgICAgICBjbGll
bnREYXRhVHlwZSA9IFdlYkNvcmU6OkNsaWVudERhdGFUeXBlOjpDcmVhdGU7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgX1dLV2ViQXV0aGVudGljYXRpb25UeXBlR2V0OgotICAgICAgICBbZGlj
dGlvbmFyeSBzZXRPYmplY3Q6QCJ3ZWJhdXRobi5nZXQiIGZvcktleTpAInR5cGUiXTsKKyAgICAg
ICAgY2xpZW50RGF0YVR5cGUgPSBXZWJDb3JlOjpDbGllbnREYXRhVHlwZTo6R2V0OwogICAgICAg
ICBicmVhazsKICAgICB9Ci0gICAgW2RpY3Rpb25hcnkgc2V0T2JqZWN0OmJhc2U2NFVSTEVuY29k
ZVRvU3RyaW5nKGNoYWxsZW5nZS5ieXRlcywgY2hhbGxlbmdlLmxlbmd0aCkgZm9yS2V5OkAiY2hh
bGxlbmdlIl07Ci0gICAgW2RpY3Rpb25hcnkgc2V0T2JqZWN0Om9yaWdpbiBmb3JLZXk6QCJvcmln
aW4iXTsKKyAgICBhdXRvIGNoYWxsZW5nZUJ1ZmZlciA9IEFycmF5QnVmZmVyOjp0cnlDcmVhdGUo
cmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oY2hhbGxlbmdlLmJ5dGVzKSwgY2hhbGxl
bmdlLmxlbmd0aCk7CisgICAgYXV0byBzZWN1cml0eU9yaWdpbiA9IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKG9yaWdpbik7CiAKLSAgICByZXR1cm4gW05TSlNPTlNl
cmlhbGl6YXRpb24gZGF0YVdpdGhKU09OT2JqZWN0OmRpY3Rpb25hcnkuZ2V0KCkgb3B0aW9uczoo
TlNKU09OV3JpdGluZ1NvcnRlZEtleXMgfCBOU0pTT05Xcml0aW5nV2l0aG91dEVzY2FwaW5nU2xh
c2hlcykgZXJyb3I6bmlsXTsKKyAgICBhdXRvIGNsaWVudERhdGFKc29uID0gYnVpbGRDbGllbnRE
YXRhSnNvbihjbGllbnREYXRhVHlwZSwgV2ViQ29yZTo6QnVmZmVyU291cmNlKGNoYWxsZW5nZUJ1
ZmZlciksIHNlY3VyaXR5T3JpZ2luKTsKKyAgICByZXR1cm4gYWRvcHROUyhbW05TRGF0YSBhbGxv
Y10gaW5pdFdpdGhCeXRlczpjbGllbnREYXRhSnNvbi0+ZGF0YSgpIGxlbmd0aDpjbGllbnREYXRh
SnNvbi0+Ynl0ZUxlbmd0aCgpXSk7CiB9CiAKIHN0YXRpYyBWZWN0b3I8dWludDhfdD4gcHJvZHVj
ZUNsaWVudERhdGFKc29uSGFzaChOU0RhdGEgKmNsaWVudERhdGFKc29uKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGY2NDViYTFiOGUzMWI3ZDI4
ODhjNGI3NDUzODJmNGQ3ODFiYWJiN2YuLjVmMzQwM2QwYjY2MzVlYTA1ZmY4ZTZlMDkyMDI0NDY5
MTM4YTRmZTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0xMS0xMCAgSiBQYXNjb2UgIDxqX3Bhc2NvZUBhcHBs
ZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBVbmlmeSBfV0tXZWJBdXRoZW50aWNhdGlvblBh
bmVsIFNQSSBhbmQgQXV0aGVudGljYXRvckNvb3JkaW5hdG9yJ3MgQ2xpZW50RGF0YUpzb24gZ2Vu
ZXJhdGlvbiAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMjk2NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODUyNjgyMTY+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGFwaSB0ZXN0cyB0byBy
ZWZsZWN0IGRpZmZlcmVudCBjbGllbnREYXRhSnNvbiBmb3JtYXQgZnJvbSBXZWJBdXRoZW50aWNh
dGlvblV0aWxzCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19X
S1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKwogMjAyMS0xMS0wOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgogCiAgICAgICAgIFtXZWJHUFVdIFN0dWIgb3V0IG1ldGhvZHMgaW4gV2ViR1BVLmZyYW1ld29y
awpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCmluZGV4IGFlZmUwMTU4MzlhYzNk
MDRiMTQyZDU2ZTJjNmFlYTBhY2IwZGY0MjIuLmRlNWQxNzM3ZGVjYjNhNmY5MDViOWNhZTNkN2Nm
NTJlNjY4NDVlM2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KQEAgLTE4
OTEsNyArMTg5MSw3IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTWFrZUNyZWRlbnRp
YWxMQSkKICAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOwogCiAgICAgICAgIEVYUEVDVF9OT1Rf
TlVMTChyZXNwb25zZSk7Ci0gICAgICAgIEVYUEVDVF9XS19TVFJFUShbW05TU3RyaW5nIGFsbG9j
XSBpbml0V2l0aERhdGE6cmVzcG9uc2UuY2xpZW50RGF0YUpTT04gZW5jb2Rpbmc6TlNVVEY4U3Ry
aW5nRW5jb2RpbmddLCAie1wiY2hhbGxlbmdlXCI6XCJBUUlEQkFFQ0F3UUJBZ01FQVFJREJBRUNB
d1FCQWdNRUFRSURCQUVDQXdRXCIsXCJvcmlnaW5cIjpcImh0dHBzOi8vZXhhbXBsZS5jb21cIixc
InR5cGVcIjpcIndlYmF1dGhuLmNyZWF0ZVwifSIpOworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEo
W1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhEYXRhOnJlc3BvbnNlLmNsaWVudERhdGFKU09OIGVu
Y29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXSwgIntcInR5cGVcIjpcIndlYmF1dGhuLmNyZWF0
ZVwiLFwiY2hhbGxlbmdlXCI6XCJBUUlEQkFFQ0F3UUJBZ01FQVFJREJBRUNBd1FCQWdNRUFRSURC
QUVDQXdRXCIsXCJvcmlnaW5cIjpcImh0dHBzOi8vZXhhbXBsZS5jb21cIn0iKTsKICAgICAgICAg
RVhQRUNUX1dLX1NUUkVRKFtyZXNwb25zZS5yYXdJZCBiYXNlNjRFbmNvZGVkU3RyaW5nV2l0aE9w
dGlvbnM6MF0sICJTTVNYSG5nRjdoRU9zRWxBNzNDM1JZKzhiUjQ9Iik7CiAgICAgICAgIEVYUEVD
VF9OVUxMKHJlc3BvbnNlLmV4dGVuc2lvbnMpOwogICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoW3Jl
c3BvbnNlLmF0dGVzdGF0aW9uT2JqZWN0IGJhc2U2NEVuY29kZWRTdHJpbmdXaXRoT3B0aW9uczow
XSwgIm8yTm1iWFJrYm05dVpXZGhkSFJUZEcxMG9HaGhkWFJvUkdGMFlWaVlvM21tOXU2dnVhVmVO
NHdSZ0RUaWRSNW9MNnVmTFRDckU5SVNWWWJPR1VkRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFGRWpFbHg1NEJlNFJEckJKUU85d3QwV1B2RzBlcFFFQ0F5WWdBU0ZZSURqL3p4U2t6S2dhQnVT
M2NkV0RGNTU4b2Y4QWFJcGdGcHNqRi9RbTE3NDlJbGdnVkJKUGdxVUl3ZmhXSEo5MW5iN1VQSDc2
YzArV0ZPelpLc2xQeXlGc2U0Zz0iKTsKQEAgLTIwMjQsNyArMjAyNCw3IEBAIFRFU1QoV2ViQXV0
aGVudGljYXRpb25QYW5lbCwgR2V0QXNzZXJ0aW9uTEEpCiAgICAgICAgIEVYUEVDVF9OVUxMKGVy
cm9yKTsKIAogICAgICAgICBFWFBFQ1RfTk9UX05VTEwocmVzcG9uc2UpOwotICAgICAgICBFWFBF
Q1RfV0tfU1RSRVEoW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhEYXRhOnJlc3BvbnNlLmNsaWVu
dERhdGFKU09OIGVuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXSwgIntcImNoYWxsZW5nZVwi
OlwiQVFJREJBRUNBd1FCQWdNRUFRSURCQUVDQXdRQkFnTUVBUUlEQkFFQ0F3UVwiLFwib3JpZ2lu
XCI6XCJodHRwczovL2V4YW1wbGUuY29tXCIsXCJ0eXBlXCI6XCJ3ZWJhdXRobi5nZXRcIn0iKTsK
KyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoRGF0YTpy
ZXNwb25zZS5jbGllbnREYXRhSlNPTiBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ10sICJ7
XCJ0eXBlXCI6XCJ3ZWJhdXRobi5nZXRcIixcImNoYWxsZW5nZVwiOlwiQVFJREJBRUNBd1FCQWdN
RUFRSURCQUVDQXdRQkFnTUVBUUlEQkFFQ0F3UVwiLFwib3JpZ2luXCI6XCJodHRwczovL2V4YW1w
bGUuY29tXCJ9Iik7CiAgICAgICAgIEVYUEVDVF9XS19TVFJFUShbcmVzcG9uc2UucmF3SWQgYmFz
ZTY0RW5jb2RlZFN0cmluZ1dpdGhPcHRpb25zOjBdLCAiU01TWEhuZ0Y3aEVPc0VsQTczQzNSWSs4
YlI0PSIpOwogICAgICAgICBFWFBFQ1RfTlVMTChyZXNwb25zZS5leHRlbnNpb25zKTsKIAo=
</data>
<flag name="commit-queue"
          id="468697"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443870</attachid>
            <date>2021-11-10 15:05:04 -0800</date>
            <delta_ts>2021-11-10 15:06:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232965-20211110150503.patch</filename>
            <type>text/plain</type>
            <size>14600</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTk4MDRkMTFkM2FlNDdh
N2M4ZGQ5YjdmNDVkZjIxYWZmN2M0NThiNS4uMGE3YTYzYTVkYTVlZjk1NzM2ZjM5ZTQzNWY4ZDYw
YzA3YmRlOTgwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTExLTEwICBKIFBh
c2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFVuaWZ5IF9X
S1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgU1BJIGFuZCBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3In
cyBDbGllbnREYXRhSnNvbiBnZW5lcmF0aW9uIAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyOTY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTI2
ODIxNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGUgX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBTUEkgYW5kIEF1dGhlbnRpY2F0b3JDb29yZGlu
YXRvciB1c2UgZGlmZmVyZW50IG1ldGhvZHMgb2YgZ2VuZXJhdGluZworICAgICAgICBjbGllbnRE
YXRhSnNvbiwgd2hpY2ggcmVzdWx0cyBpbiBzdHJpbmdzIHdpdGggdGhlIGtleXMgaW4gYSBkaWZm
ZXJlbnQgb3JkZXIuIFRoaXMgY2hhbmdlIGFic3RyYWN0cworICAgICAgICB0aGUgY2xpZW50RGF0
YUpzb24gZ2VuZXJhdGlvbiBvdXQgb2YgQXV0aGVudGljYXRvckNvb3JkaW5hdG9yIGFuZCBpbnRv
IFdlYkF1dGhlbnRpY2F0aW9uVXRpbHMuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1
dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3I6OmNyZWF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3I6OmRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JDb29yZGluYXRvckludGVybmFsOjpwcm9kdWNl
Q2xpZW50RGF0YUpzb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRv
ckNvb3JkaW5hdG9ySW50ZXJuYWw6OnByb2R1Y2VDbGllbnREYXRhSnNvbkhhc2gpOiBEZWxldGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpidWlsZENsaWVudERhdGFKc29uKToKKyAgICAgICAgKFdlYkNv
cmU6OmJ1aWxkQ2xpZW50RGF0YUpzb25IYXNoKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhu
L1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuaDoKKwogMjAyMS0xMS0wOSAgU2lodWkgTGl1ICA8c2lo
dWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggbWFjQ2F0YWx5c3QgYnVpbGQgYWZ0ZXIg
cjI4NTUwOQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBjMjY4NzhjNDVmY2U5ZWM0YmU3MDNlNzVkMTU4NjQ3ZGU1OWJj
MDk1Li4zYzk5NmIwOTI3NGY1ZWE2MmRjODRiNjRlMTQwYmRmMjU4NDc2ODAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE5IEBACisyMDIxLTExLTEwICBKIFBhc2NvZSAgPGpfcGFzY29lQGFwcGxlLmNv
bT4KKworICAgICAgICBbV2ViQXV0aG5dIFVuaWZ5IF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwg
U1BJIGFuZCBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IncyBDbGllbnREYXRhSnNvbiBnZW5lcmF0
aW9uIAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMy
OTY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTI2ODIxNj4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgX1dLV2ViQXV0aGVudGljYXRpb25Q
YW5lbCBTUEkgYW5kIEF1dGhlbnRpY2F0b3JDb29yZGluYXRvciB1c2UgZGlmZmVyZW50IG1ldGhv
ZHMgb2YgZ2VuZXJhdGluZyAKKyAgICAgICAgY2xpZW50RGF0YUpzb24sIHdoaWNoIHJlc3VsdHMg
aW4gc3RyaW5ncyB3aXRoIHRoZSBrZXlzIGluIGEgZGlmZmVyZW50IG9yZGVyLiBUaGlzIGNhdXNl
cyBwcm9ibGVtcworICAgICAgICBiZWNhdXNlIHdoZW4gZ2VuZXJhdGluZyBhc3NlcnRzIHZpYSBB
U0MgdWksIHRoZSBoYXNoIHNpZ25lZCBhbmQgdGhlIGNsaWVudCBkYXRhIGpzb24gdXNlZCB0byBn
ZW5lcmF0ZQorICAgICAgICB0aGF0IGhhc2ggYXJlIGRpZmZlcmVudCBmcm9tIHRoZSBjbGllbnQg
ZGF0YSBqc29uIHJldHVybmVkIHRvIGpzLiAKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbToKKyAgICAgICAgKHByb2R1Y2VDbGllbnRE
YXRhSnNvbik6CisKIDIwMjEtMTEtMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBCcm9hZGNhc3RDaGFubmVsIGlzIHN0aWxsIGRpc2FibGVkIGluIHNlcnZpY2Ug
d29ya2VycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCmluZGV4IGM0ZTU2OGYxMDY1MWVjMDc0YjQ1
NTdlMDRiOTc4ZjkyZGU4NDc3YzYuLmVlODk3MTAwMTI5ODg2OTgyYWE4MDMxZGYzODRlMWJhMjIz
YjRmMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVu
dGljYXRvckNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAKQEAgLTQxLDEwICs0MSw5IEBACiAjaW5j
bHVkZSAiUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmgiCiAjaW5jbHVkZSAiUmVn
aXN0cmFibGVEb21haW4uaCIKICNpbmNsdWRlICJMZWdhY3lTY2hlbWVSZWdpc3RyeS5oIgotI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiV2ViQXV0aGVudGljYXRpb25Db25z
dGFudHMuaCIKKyNpbmNsdWRlICJXZWJBdXRoZW50aWNhdGlvblV0aWxzLmgiCiAjaW5jbHVkZSA8
cGFsL2NyeXB0by9DcnlwdG9EaWdlc3QuaD4KLSNpbmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5oPgog
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0Jhc2U2
NC5oPgogCkBAIC01MiwzMiArNTEsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFj
ZSBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JJbnRlcm5hbCB7CiAKLS8vIEZJWE1FKDE4MTk0OCk6
IEFkZCB0b2tlbiBiaW5kaW5nIElELgotc3RhdGljIFJlZjxBcnJheUJ1ZmZlcj4gcHJvZHVjZUNs
aWVudERhdGFKc29uKENsaWVudERhdGFUeXBlIHR5cGUsIGNvbnN0IEJ1ZmZlclNvdXJjZSYgY2hh
bGxlbmdlLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3JpZ2luKQotewotICAgIGF1dG8gb2JqZWN0
ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKLSAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNl
IENsaWVudERhdGFUeXBlOjpDcmVhdGU6Ci0gICAgICAgIG9iamVjdC0+c2V0U3RyaW5nKCJ0eXBl
Il9zLCAid2ViYXV0aG4uY3JlYXRlIl9zKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDbGll
bnREYXRhVHlwZTo6R2V0OgotICAgICAgICBvYmplY3QtPnNldFN0cmluZygidHlwZSJfcywgIndl
YmF1dGhuLmdldCJfcyk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBvYmplY3QtPnNldFN0
cmluZygiY2hhbGxlbmdlIl9zLCBiYXNlNjRVUkxFbmNvZGVUb1N0cmluZyhjaGFsbGVuZ2UuZGF0
YSgpLCBjaGFsbGVuZ2UubGVuZ3RoKCkpKTsKLSAgICBvYmplY3QtPnNldFN0cmluZygib3JpZ2lu
Il9zLCBvcmlnaW4udG9SYXdTdHJpbmcoKSk7Ci0KLSAgICBhdXRvIHV0ZjhKU09OU3RyaW5nID0g
b2JqZWN0LT50b0pTT05TdHJpbmcoKS51dGY4KCk7Ci0gICAgcmV0dXJuIEFycmF5QnVmZmVyOjpj
cmVhdGUodXRmOEpTT05TdHJpbmcuZGF0YSgpLCB1dGY4SlNPTlN0cmluZy5sZW5ndGgoKSk7Ci19
Ci0KLXN0YXRpYyBWZWN0b3I8dWludDhfdD4gcHJvZHVjZUNsaWVudERhdGFKc29uSGFzaChjb25z
dCBBcnJheUJ1ZmZlciYgY2xpZW50RGF0YUpzb24pCi17Ci0gICAgYXV0byBjcnlwdG8gPSBQQUw6
OkNyeXB0b0RpZ2VzdDo6Y3JlYXRlKFBBTDo6Q3J5cHRvRGlnZXN0OjpBbGdvcml0aG06OlNIQV8y
NTYpOwotICAgIGNyeXB0by0+YWRkQnl0ZXMoY2xpZW50RGF0YUpzb24uZGF0YSgpLCBjbGllbnRE
YXRhSnNvbi5ieXRlTGVuZ3RoKCkpOwotICAgIHJldHVybiBjcnlwdG8tPmNvbXB1dGVIYXNoKCk7
Ci19Ci0KIHN0YXRpYyBib29sIG5lZWRzQXBwSWRRdWlya3MoY29uc3QgU3RyaW5nJiBob3N0LCBj
b25zdCBTdHJpbmcmIGFwcElkKQogewogICAgIC8vIEZJWE1FKDE5NzUyNCk6IFJlbW92ZSB0aGlz
IHF1aXJrIGluIDIwMjMuIEFzIGFuIGVhcmx5IGFkb3B0ZXIgb2YgVTJGIGZlYXR1cmVzLCBHb29n
bGUgaGFzIGEgbGFyZ2UgbnVtYmVyIG9mCkBAIC0xNzYsOCArMTQ5LDggQEAgdm9pZCBBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3I6OmNyZWF0ZShjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0
IFB1YmxpY0tleUMKICAgICBvcHRpb25zLmV4dGVuc2lvbnMgPSBBdXRoZW50aWNhdGlvbkV4dGVu
c2lvbnNDbGllbnRJbnB1dHMgeyBTdHJpbmcoKSwgcHJvY2Vzc0dvb2dsZUxlZ2FjeUFwcElkU3Vw
cG9ydEV4dGVuc2lvbihvcHRpb25zLmV4dGVuc2lvbnMsIG9wdGlvbnMucnAuaWQpIH07CiAKICAg
ICAvLyBTdGVwIDEzLTE1LgotICAgIGF1dG8gY2xpZW50RGF0YUpzb24gPSBwcm9kdWNlQ2xpZW50
RGF0YUpzb24oQ2xpZW50RGF0YVR5cGU6OkNyZWF0ZSwgb3B0aW9ucy5jaGFsbGVuZ2UsIGNhbGxl
ck9yaWdpbik7Ci0gICAgYXV0byBjbGllbnREYXRhSnNvbkhhc2ggPSBwcm9kdWNlQ2xpZW50RGF0
YUpzb25IYXNoKGNsaWVudERhdGFKc29uKTsKKyAgICBhdXRvIGNsaWVudERhdGFKc29uID0gYnVp
bGRDbGllbnREYXRhSnNvbihDbGllbnREYXRhVHlwZTo6Q3JlYXRlLCBvcHRpb25zLmNoYWxsZW5n
ZSwgY2FsbGVyT3JpZ2luKTsKKyAgICBhdXRvIGNsaWVudERhdGFKc29uSGFzaCA9IGJ1aWxkQ2xp
ZW50RGF0YUpzb25IYXNoKGNsaWVudERhdGFKc29uKTsKIAogICAgIC8vIFN0ZXAgNCwgMTctMjEu
CiAgICAgaWYgKCFtX2NsaWVudCkgewpAQCAtMjQ3LDggKzIyMCw4IEBAIHZvaWQgQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBEb2N1bWVu
dCYgZG9jdW1lCiAgICAgfQogCiAgICAgLy8gU3RlcCAxMC0xMi4KLSAgICBhdXRvIGNsaWVudERh
dGFKc29uID0gcHJvZHVjZUNsaWVudERhdGFKc29uKENsaWVudERhdGFUeXBlOjpHZXQsIG9wdGlv
bnMuY2hhbGxlbmdlLCBjYWxsZXJPcmlnaW4pOwotICAgIGF1dG8gY2xpZW50RGF0YUpzb25IYXNo
ID0gcHJvZHVjZUNsaWVudERhdGFKc29uSGFzaChjbGllbnREYXRhSnNvbik7CisgICAgYXV0byBj
bGllbnREYXRhSnNvbiA9IGJ1aWxkQ2xpZW50RGF0YUpzb24oQ2xpZW50RGF0YVR5cGU6OkdldCwg
b3B0aW9ucy5jaGFsbGVuZ2UsIGNhbGxlck9yaWdpbik7CisgICAgYXV0byBjbGllbnREYXRhSnNv
bkhhc2ggPSBidWlsZENsaWVudERhdGFKc29uSGFzaChjbGllbnREYXRhSnNvbik7CiAKICAgICAv
LyBTdGVwIDQsIDE0LTE5LgogICAgIGlmICghbV9jbGllbnQpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuY3Bw
CmluZGV4IDA2OGZlZjYyNWE4ZTI4MjFiNGI4ZjRkNjg5NWM1N2YwNWM1OTBiODUuLjBkMjlkYzlh
YjFjNDQ0ODFlYjRmZGUxMzFkNGI2YTExZTkyNjU4MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9XZWJBdXRoZW50aWNhdGlvblV0aWxzLmNwcApA
QCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNCT1JXcml0ZXIuaCIKICNpbmNsdWRlICJXZWJB
dXRoZW50aWNhdGlvbkNvbnN0YW50cy5oIgogI2luY2x1ZGUgPHBhbC9jcnlwdG8vQ3J5cHRvRGln
ZXN0Lmg+CisjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTMxLDYgKzEzMiwzMiBAQCBW
ZWN0b3I8dWludDhfdD4gYnVpbGRBdHRlc3RhdGlvbk9iamVjdChWZWN0b3I8dWludDhfdD4mJiBh
dXRoRGF0YSwgU3RyaW5nJiYgZm9ybQogICAgIHJldHVybiAqYXR0ZXN0YXRpb25PYmplY3Q7CiB9
CiAKKy8vIEZJWE1FKDE4MTk0OCk6IEFkZCB0b2tlbiBiaW5kaW5nIElELgorUmVmPEFycmF5QnVm
ZmVyPiBidWlsZENsaWVudERhdGFKc29uKENsaWVudERhdGFUeXBlIHR5cGUsIGNvbnN0IEJ1ZmZl
clNvdXJjZSYgY2hhbGxlbmdlLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3JpZ2luKQoreworICAg
IGF1dG8gb2JqZWN0ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKKyAgICBzd2l0Y2ggKHR5cGUp
IHsKKyAgICBjYXNlIENsaWVudERhdGFUeXBlOjpDcmVhdGU6CisgICAgICAgIG9iamVjdC0+c2V0
U3RyaW5nKCJ0eXBlIl9zLCAid2ViYXV0aG4uY3JlYXRlIl9zKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBDbGllbnREYXRhVHlwZTo6R2V0OgorICAgICAgICBvYmplY3QtPnNldFN0cmluZygi
dHlwZSJfcywgIndlYmF1dGhuLmdldCJfcyk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBv
YmplY3QtPnNldFN0cmluZygiY2hhbGxlbmdlIl9zLCBiYXNlNjRVUkxFbmNvZGVUb1N0cmluZyhj
aGFsbGVuZ2UuZGF0YSgpLCBjaGFsbGVuZ2UubGVuZ3RoKCkpKTsKKyAgICBvYmplY3QtPnNldFN0
cmluZygib3JpZ2luIl9zLCBvcmlnaW4udG9SYXdTdHJpbmcoKSk7CisKKyAgICBhdXRvIHV0ZjhK
U09OU3RyaW5nID0gb2JqZWN0LT50b0pTT05TdHJpbmcoKS51dGY4KCk7CisKKyAgICByZXR1cm4g
QXJyYXlCdWZmZXI6OmNyZWF0ZSh1dGY4SlNPTlN0cmluZy5kYXRhKCksIHV0ZjhKU09OU3RyaW5n
Lmxlbmd0aCgpKTsKK30KKworVmVjdG9yPHVpbnQ4X3Q+IGJ1aWxkQ2xpZW50RGF0YUpzb25IYXNo
KGNvbnN0IEFycmF5QnVmZmVyJiBjbGllbnREYXRhSnNvbikKK3sKKyAgICBhdXRvIGNyeXB0byA9
IFBBTDo6Q3J5cHRvRGlnZXN0OjpjcmVhdGUoUEFMOjpDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6
U0hBXzI1Nik7CisgICAgY3J5cHRvLT5hZGRCeXRlcyhjbGllbnREYXRhSnNvbi5kYXRhKCksIGNs
aWVudERhdGFKc29uLmJ5dGVMZW5ndGgoKSk7CisgICAgcmV0dXJuIGNyeXB0by0+Y29tcHV0ZUhh
c2goKTsKK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5oCmluZGV4
IDUxZjA1NmU2ZDMzZmE4OGI3NTc3NDJmNDlmOTA0MzM1ZDYzM2Q5MjguLmEwNzkyMTFkZWIxN2M4
ZTI2YmJmMWU4OWQzMjBmMTFjODU5MzdlNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5oCkBAIC0yOCw3ICsy
OCwxMCBAQAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAKICNpbmNsdWRlICJBdHRlc3RhdGlvbkNv
bnZleWFuY2VQcmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiQnVmZmVyU291cmNlLmgiCiAjaW5jbHVk
ZSAiQ0JPUlZhbHVlLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJX
ZWJBdXRoZW50aWNhdGlvbkNvbnN0YW50cy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ5LDYgKzUyLDEwIEBAIFdFQkNPUkVfRVhQT1JUIFZl
Y3Rvcjx1aW50OF90PiBidWlsZEF1dGhEYXRhKGNvbnN0IFN0cmluZyYgcnBJZCwgY29uc3QgdWlu
dDhfdCBmCiAvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4vI2F0dGVzdGF0aW9uLW9i
amVjdAogV0VCQ09SRV9FWFBPUlQgVmVjdG9yPHVpbnQ4X3Q+IGJ1aWxkQXR0ZXN0YXRpb25PYmpl
Y3QoVmVjdG9yPHVpbnQ4X3Q+JiYgYXV0aERhdGEsIFN0cmluZyYmIGZvcm1hdCwgY2Jvcjo6Q0JP
UlZhbHVlOjpNYXBWYWx1ZSYmIHN0YXRlbWVudE1hcCwgY29uc3QgQXR0ZXN0YXRpb25Db252ZXlh
bmNlUHJlZmVyZW5jZSYpOwogCitXRUJDT1JFX0VYUE9SVCBSZWY8QXJyYXlCdWZmZXI+IGJ1aWxk
Q2xpZW50RGF0YUpzb24oQ2xpZW50RGF0YVR5cGUgLyp0eXBlKi8sIGNvbnN0IEJ1ZmZlclNvdXJj
ZSYgY2hhbGxlbmdlLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgLypvcmlnaW4qLyk7CisKK1dFQkNP
UkVfRVhQT1JUIFZlY3Rvcjx1aW50OF90PiBidWlsZENsaWVudERhdGFKc29uSGFzaChjb25zdCBB
cnJheUJ1ZmZlciYgY2xpZW50RGF0YUpzb24pOworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpp
bmRleCA1NzU4ZmI3ZDA0ZmJmZGFmM2FiOWNmNTVhMDg3MDM3NWE4MDg2MWM3Li4zOTRkZTNiMDU4
OWU3ZjYzNTI0NDA2YTE4NzBhNmM5ZDIwMjA3MGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5l
bC5tbQpAQCAtNDUsNiArNDUsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9BdXRoZW50aWNhdG9yQXR0
YWNobWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9BdXRoZW50aWNhdG9yUmVzcG9uc2UuaD4KICNp
bXBvcnQgPFdlYkNvcmUvQXV0aGVudGljYXRvclJlc3BvbnNlRGF0YS5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9CdWZmZXJTb3VyY2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ0JPUlJlYWRlci5oPgogI2lt
cG9ydCA8V2ViQ29yZS9DQk9SV3JpdGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZpZG9Db25zdGFu
dHMuaD4KQEAgLTUyLDcgKzUzLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUHVibGljS2V5Q3JlZGVu
dGlhbENyZWF0aW9uT3B0aW9ucy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QdWJsaWNLZXlDcmVkZW50
aWFsUmVxdWVzdE9wdGlvbnMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQXV0aGVudGljYXRpb25D
b25zdGFudHMuaD4KLSNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvV2ViQXV0aGVudGljYXRpb25VdGlscy5oPgogI2ltcG9ydCA8b2JqYy9ydW50
aW1lLmg+CiAjaW1wb3J0IDxwYWwvY3J5cHRvL0NyeXB0b0RpZ2VzdC5oPgogI2ltcG9ydCA8d3Rm
L0Jsb2NrUHRyLmg+CkBAIC03MywxOSArNzQsMjAgQEAgc3RhdGljIHZvaWQgdXBkYXRlUXVlcnlJ
Zk5lY2Vzc2FyeShOU011dGFibGVEaWN0aW9uYXJ5ICopCiAKIHN0YXRpYyBSZXRhaW5QdHI8TlNE
YXRhPiBwcm9kdWNlQ2xpZW50RGF0YUpzb24oX1dLV2ViQXV0aGVudGljYXRpb25UeXBlIHR5cGUs
IE5TRGF0YSAqY2hhbGxlbmdlLCBOU1N0cmluZyAqb3JpZ2luKQogewotICAgIGF1dG8gZGljdGlv
bmFyeSA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0XSk7CisgICAg
V2ViQ29yZTo6Q2xpZW50RGF0YVR5cGUgY2xpZW50RGF0YVR5cGU7CiAgICAgc3dpdGNoICh0eXBl
KSB7CiAgICAgY2FzZSBfV0tXZWJBdXRoZW50aWNhdGlvblR5cGVDcmVhdGU6Ci0gICAgICAgIFtk
aWN0aW9uYXJ5IHNldE9iamVjdDpAIndlYmF1dGhuLmNyZWF0ZSIgZm9yS2V5OkAidHlwZSJdOwor
ICAgICAgICBjbGllbnREYXRhVHlwZSA9IFdlYkNvcmU6OkNsaWVudERhdGFUeXBlOjpDcmVhdGU7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgX1dLV2ViQXV0aGVudGljYXRpb25UeXBlR2V0Ogot
ICAgICAgICBbZGljdGlvbmFyeSBzZXRPYmplY3Q6QCJ3ZWJhdXRobi5nZXQiIGZvcktleTpAInR5
cGUiXTsKKyAgICAgICAgY2xpZW50RGF0YVR5cGUgPSBXZWJDb3JlOjpDbGllbnREYXRhVHlwZTo6
R2V0OwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgW2RpY3Rpb25hcnkgc2V0T2JqZWN0OmJh
c2U2NFVSTEVuY29kZVRvU3RyaW5nKGNoYWxsZW5nZS5ieXRlcywgY2hhbGxlbmdlLmxlbmd0aCkg
Zm9yS2V5OkAiY2hhbGxlbmdlIl07Ci0gICAgW2RpY3Rpb25hcnkgc2V0T2JqZWN0Om9yaWdpbiBm
b3JLZXk6QCJvcmlnaW4iXTsKKyAgICBhdXRvIGNoYWxsZW5nZUJ1ZmZlciA9IEFycmF5QnVmZmVy
Ojp0cnlDcmVhdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oY2hhbGxlbmdlLmJ5
dGVzKSwgY2hhbGxlbmdlLmxlbmd0aCk7CisgICAgYXV0byBzZWN1cml0eU9yaWdpbiA9IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKG9yaWdpbik7CiAKLSAgICByZXR1
cm4gW05TSlNPTlNlcmlhbGl6YXRpb24gZGF0YVdpdGhKU09OT2JqZWN0OmRpY3Rpb25hcnkuZ2V0
KCkgb3B0aW9uczooTlNKU09OV3JpdGluZ1NvcnRlZEtleXMgfCBOU0pTT05Xcml0aW5nV2l0aG91
dEVzY2FwaW5nU2xhc2hlcykgZXJyb3I6bmlsXTsKKyAgICBhdXRvIGNsaWVudERhdGFKc29uID0g
YnVpbGRDbGllbnREYXRhSnNvbihjbGllbnREYXRhVHlwZSwgV2ViQ29yZTo6QnVmZmVyU291cmNl
KGNoYWxsZW5nZUJ1ZmZlciksIHNlY3VyaXR5T3JpZ2luKTsKKyAgICByZXR1cm4gYWRvcHROUyhb
W05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczpjbGllbnREYXRhSnNvbi0+ZGF0YSgpIGxlbmd0
aDpjbGllbnREYXRhSnNvbi0+Ynl0ZUxlbmd0aCgpXSk7CiB9CiAKIHN0YXRpYyBWZWN0b3I8dWlu
dDhfdD4gcHJvZHVjZUNsaWVudERhdGFKc29uSGFzaChOU0RhdGEgKmNsaWVudERhdGFKc29uKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGY2NDVi
YTFiOGUzMWI3ZDI4ODhjNGI3NDUzODJmNGQ3ODFiYWJiN2YuLjVmMzQwM2QwYjY2MzVlYTA1ZmY4
ZTZlMDkyMDI0NDY5MTM4YTRmZTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0xMS0xMCAgSiBQYXNjb2UgIDxq
X3Bhc2NvZUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBVbmlmeSBfV0tXZWJBdXRo
ZW50aWNhdGlvblBhbmVsIFNQSSBhbmQgQXV0aGVudGljYXRvckNvb3JkaW5hdG9yJ3MgQ2xpZW50
RGF0YUpzb24gZ2VuZXJhdGlvbiAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzMjk2NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODUyNjgyMTY+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGFw
aSB0ZXN0cyB0byByZWZsZWN0IGRpZmZlcmVudCBjbGllbnREYXRhSnNvbiBmb3JtYXQgZnJvbSBX
ZWJBdXRoZW50aWNhdGlvblV0aWxzCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW06CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKwogMjAyMS0xMS0wOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4Zmll
bGRAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJHUFVdIFN0dWIgb3V0IG1ldGhvZHMgaW4gV2Vi
R1BVLmZyYW1ld29yawpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCmluZGV4IGFl
ZmUwMTU4MzlhYzNkMDRiMTQyZDU2ZTJjNmFlYTBhY2IwZGY0MjIuLmRlNWQxNzM3ZGVjYjNhNmY5
MDViOWNhZTNkN2NmNTJlNjY4NDVlM2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwubW0KQEAgLTE4OTEsNyArMTg5MSw3IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwg
TWFrZUNyZWRlbnRpYWxMQSkKICAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOwogCiAgICAgICAg
IEVYUEVDVF9OT1RfTlVMTChyZXNwb25zZSk7Ci0gICAgICAgIEVYUEVDVF9XS19TVFJFUShbW05T
U3RyaW5nIGFsbG9jXSBpbml0V2l0aERhdGE6cmVzcG9uc2UuY2xpZW50RGF0YUpTT04gZW5jb2Rp
bmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddLCAie1wiY2hhbGxlbmdlXCI6XCJBUUlEQkFFQ0F3UUJB
Z01FQVFJREJBRUNBd1FCQWdNRUFRSURCQUVDQXdRXCIsXCJvcmlnaW5cIjpcImh0dHBzOi8vZXhh
bXBsZS5jb21cIixcInR5cGVcIjpcIndlYmF1dGhuLmNyZWF0ZVwifSIpOworICAgICAgICBFWFBF
Q1RfV0tfU1RSRVEoW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhEYXRhOnJlc3BvbnNlLmNsaWVu
dERhdGFKU09OIGVuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXSwgIntcInR5cGVcIjpcIndl
YmF1dGhuLmNyZWF0ZVwiLFwiY2hhbGxlbmdlXCI6XCJBUUlEQkFFQ0F3UUJBZ01FQVFJREJBRUNB
d1FCQWdNRUFRSURCQUVDQXdRXCIsXCJvcmlnaW5cIjpcImh0dHBzOi8vZXhhbXBsZS5jb21cIn0i
KTsKICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKFtyZXNwb25zZS5yYXdJZCBiYXNlNjRFbmNvZGVk
U3RyaW5nV2l0aE9wdGlvbnM6MF0sICJTTVNYSG5nRjdoRU9zRWxBNzNDM1JZKzhiUjQ9Iik7CiAg
ICAgICAgIEVYUEVDVF9OVUxMKHJlc3BvbnNlLmV4dGVuc2lvbnMpOwogICAgICAgICBFWFBFQ1Rf
V0tfU1RSRVEoW3Jlc3BvbnNlLmF0dGVzdGF0aW9uT2JqZWN0IGJhc2U2NEVuY29kZWRTdHJpbmdX
aXRoT3B0aW9uczowXSwgIm8yTm1iWFJrYm05dVpXZGhkSFJUZEcxMG9HaGhkWFJvUkdGMFlWaVlv
M21tOXU2dnVhVmVONHdSZ0RUaWRSNW9MNnVmTFRDckU5SVNWWWJPR1VkRkFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFGRWpFbHg1NEJlNFJEckJKUU85d3QwV1B2RzBlcFFFQ0F5WWdBU0ZZSURq
L3p4U2t6S2dhQnVTM2NkV0RGNTU4b2Y4QWFJcGdGcHNqRi9RbTE3NDlJbGdnVkJKUGdxVUl3ZmhX
SEo5MW5iN1VQSDc2YzArV0ZPelpLc2xQeXlGc2U0Zz0iKTsKQEAgLTIwMjQsNyArMjAyNCw3IEBA
IFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgR2V0QXNzZXJ0aW9uTEEpCiAgICAgICAgIEVY
UEVDVF9OVUxMKGVycm9yKTsKIAogICAgICAgICBFWFBFQ1RfTk9UX05VTEwocmVzcG9uc2UpOwot
ICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhEYXRhOnJl
c3BvbnNlLmNsaWVudERhdGFKU09OIGVuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXSwgIntc
ImNoYWxsZW5nZVwiOlwiQVFJREJBRUNBd1FCQWdNRUFRSURCQUVDQXdRQkFnTUVBUUlEQkFFQ0F3
UVwiLFwib3JpZ2luXCI6XCJodHRwczovL2V4YW1wbGUuY29tXCIsXCJ0eXBlXCI6XCJ3ZWJhdXRo
bi5nZXRcIn0iKTsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKFtbTlNTdHJpbmcgYWxsb2NdIGlu
aXRXaXRoRGF0YTpyZXNwb25zZS5jbGllbnREYXRhSlNPTiBlbmNvZGluZzpOU1VURjhTdHJpbmdF
bmNvZGluZ10sICJ7XCJ0eXBlXCI6XCJ3ZWJhdXRobi5nZXRcIixcImNoYWxsZW5nZVwiOlwiQVFJ
REJBRUNBd1FCQWdNRUFRSURCQUVDQXdRQkFnTUVBUUlEQkFFQ0F3UVwiLFwib3JpZ2luXCI6XCJo
dHRwczovL2V4YW1wbGUuY29tXCJ9Iik7CiAgICAgICAgIEVYUEVDVF9XS19TVFJFUShbcmVzcG9u
c2UucmF3SWQgYmFzZTY0RW5jb2RlZFN0cmluZ1dpdGhPcHRpb25zOjBdLCAiU01TWEhuZ0Y3aEVP
c0VsQTczQzNSWSs4YlI0PSIpOwogICAgICAgICBFWFBFQ1RfTlVMTChyZXNwb25zZS5leHRlbnNp
b25zKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443871</attachid>
            <date>2021-11-10 15:06:42 -0800</date>
            <delta_ts>2021-11-10 18:52:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232965-20211110150641.patch</filename>
            <type>text/plain</type>
            <size>14613</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTk4MDRkMTFkM2FlNDdh
N2M4ZGQ5YjdmNDVkZjIxYWZmN2M0NThiNS4uMGE3YTYzYTVkYTVlZjk1NzM2ZjM5ZTQzNWY4ZDYw
YzA3YmRlOTgwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTExLTEwICBKIFBh
c2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFVuaWZ5IF9X
S1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgU1BJIGFuZCBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3In
cyBDbGllbnREYXRhSnNvbiBnZW5lcmF0aW9uIAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyOTY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTI2
ODIxNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGUgX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBTUEkgYW5kIEF1dGhlbnRpY2F0b3JDb29yZGlu
YXRvciB1c2UgZGlmZmVyZW50IG1ldGhvZHMgb2YgZ2VuZXJhdGluZworICAgICAgICBjbGllbnRE
YXRhSnNvbiwgd2hpY2ggcmVzdWx0cyBpbiBzdHJpbmdzIHdpdGggdGhlIGtleXMgaW4gYSBkaWZm
ZXJlbnQgb3JkZXIuIFRoaXMgY2hhbmdlIGFic3RyYWN0cworICAgICAgICB0aGUgY2xpZW50RGF0
YUpzb24gZ2VuZXJhdGlvbiBvdXQgb2YgQXV0aGVudGljYXRvckNvb3JkaW5hdG9yIGFuZCBpbnRv
IFdlYkF1dGhlbnRpY2F0aW9uVXRpbHMuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1
dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3I6OmNyZWF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3I6OmRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JDb29yZGluYXRvckludGVybmFsOjpwcm9kdWNl
Q2xpZW50RGF0YUpzb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRv
ckNvb3JkaW5hdG9ySW50ZXJuYWw6OnByb2R1Y2VDbGllbnREYXRhSnNvbkhhc2gpOiBEZWxldGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpidWlsZENsaWVudERhdGFKc29uKToKKyAgICAgICAgKFdlYkNv
cmU6OmJ1aWxkQ2xpZW50RGF0YUpzb25IYXNoKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhu
L1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuaDoKKwogMjAyMS0xMS0wOSAgU2lodWkgTGl1ICA8c2lo
dWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggbWFjQ2F0YWx5c3QgYnVpbGQgYWZ0ZXIg
cjI4NTUwOQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBjMjY4NzhjNDVmY2U5ZWM0YmU3MDNlNzVkMTU4NjQ3ZGU1OWJj
MDk1Li4zYzk5NmIwOTI3NGY1ZWE2MmRjODRiNjRlMTQwYmRmMjU4NDc2ODAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE5IEBACisyMDIxLTExLTEwICBKIFBhc2NvZSAgPGpfcGFzY29lQGFwcGxlLmNv
bT4KKworICAgICAgICBbV2ViQXV0aG5dIFVuaWZ5IF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwg
U1BJIGFuZCBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IncyBDbGllbnREYXRhSnNvbiBnZW5lcmF0
aW9uIAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMy
OTY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTI2ODIxNj4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgX1dLV2ViQXV0aGVudGljYXRpb25Q
YW5lbCBTUEkgYW5kIEF1dGhlbnRpY2F0b3JDb29yZGluYXRvciB1c2UgZGlmZmVyZW50IG1ldGhv
ZHMgb2YgZ2VuZXJhdGluZyAKKyAgICAgICAgY2xpZW50RGF0YUpzb24sIHdoaWNoIHJlc3VsdHMg
aW4gc3RyaW5ncyB3aXRoIHRoZSBrZXlzIGluIGEgZGlmZmVyZW50IG9yZGVyLiBUaGlzIGNhdXNl
cyBwcm9ibGVtcworICAgICAgICBiZWNhdXNlIHdoZW4gZ2VuZXJhdGluZyBhc3NlcnRzIHZpYSBB
U0MgdWksIHRoZSBoYXNoIHNpZ25lZCBhbmQgdGhlIGNsaWVudCBkYXRhIGpzb24gdXNlZCB0byBn
ZW5lcmF0ZQorICAgICAgICB0aGF0IGhhc2ggYXJlIGRpZmZlcmVudCBmcm9tIHRoZSBjbGllbnQg
ZGF0YSBqc29uIHJldHVybmVkIHRvIGpzLiAKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbToKKyAgICAgICAgKHByb2R1Y2VDbGllbnRE
YXRhSnNvbik6CisKIDIwMjEtMTEtMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBCcm9hZGNhc3RDaGFubmVsIGlzIHN0aWxsIGRpc2FibGVkIGluIHNlcnZpY2Ug
d29ya2VycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCmluZGV4IGM0ZTU2OGYxMDY1MWVjMDc0YjQ1
NTdlMDRiOTc4ZjkyZGU4NDc3YzYuLjQ5MGY2NWFlMmUxNTVlMThhY2U4YzM1MmY2MWQ0MDg0ZGZj
OTBmZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVu
dGljYXRvckNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAKQEAgLTQxLDQzICs0MSwxNSBAQAogI2lu
Y2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oIgogI2luY2x1ZGUgIlJl
Z2lzdHJhYmxlRG9tYWluLmgiCiAjaW5jbHVkZSAiTGVnYWN5U2NoZW1lUmVnaXN0cnkuaCIKLSNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIldlYkF1dGhlbnRpY2F0aW9uQ29u
c3RhbnRzLmgiCisjaW5jbHVkZSAiV2ViQXV0aGVudGljYXRpb25VdGlscy5oIgogI2luY2x1ZGUg
PHBhbC9jcnlwdG8vQ3J5cHRvRGlnZXN0Lmg+Ci0jaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4K
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9CYXNl
NjQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgQXV0aGVudGljYXRvckNv
b3JkaW5hdG9ySW50ZXJuYWwgewogCi0vLyBGSVhNRSgxODE5NDgpOiBBZGQgdG9rZW4gYmluZGlu
ZyBJRC4KLXN0YXRpYyBSZWY8QXJyYXlCdWZmZXI+IHByb2R1Y2VDbGllbnREYXRhSnNvbihDbGll
bnREYXRhVHlwZSB0eXBlLCBjb25zdCBCdWZmZXJTb3VyY2UmIGNoYWxsZW5nZSwgY29uc3QgU2Vj
dXJpdHlPcmlnaW4mIG9yaWdpbikKLXsKLSAgICBhdXRvIG9iamVjdCA9IEpTT046Ok9iamVjdDo6
Y3JlYXRlKCk7Ci0gICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgY2FzZSBDbGllbnREYXRhVHlwZTo6
Q3JlYXRlOgotICAgICAgICBvYmplY3QtPnNldFN0cmluZygidHlwZSJfcywgIndlYmF1dGhuLmNy
ZWF0ZSJfcyk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ2xpZW50RGF0YVR5cGU6OkdldDoK
LSAgICAgICAgb2JqZWN0LT5zZXRTdHJpbmcoInR5cGUiX3MsICJ3ZWJhdXRobi5nZXQiX3MpOwot
ICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgb2JqZWN0LT5zZXRTdHJpbmcoImNoYWxsZW5nZSJf
cywgYmFzZTY0VVJMRW5jb2RlVG9TdHJpbmcoY2hhbGxlbmdlLmRhdGEoKSwgY2hhbGxlbmdlLmxl
bmd0aCgpKSk7Ci0gICAgb2JqZWN0LT5zZXRTdHJpbmcoIm9yaWdpbiJfcywgb3JpZ2luLnRvUmF3
U3RyaW5nKCkpOwotCi0gICAgYXV0byB1dGY4SlNPTlN0cmluZyA9IG9iamVjdC0+dG9KU09OU3Ry
aW5nKCkudXRmOCgpOwotICAgIHJldHVybiBBcnJheUJ1ZmZlcjo6Y3JlYXRlKHV0ZjhKU09OU3Ry
aW5nLmRhdGEoKSwgdXRmOEpTT05TdHJpbmcubGVuZ3RoKCkpOwotfQotCi1zdGF0aWMgVmVjdG9y
PHVpbnQ4X3Q+IHByb2R1Y2VDbGllbnREYXRhSnNvbkhhc2goY29uc3QgQXJyYXlCdWZmZXImIGNs
aWVudERhdGFKc29uKQotewotICAgIGF1dG8gY3J5cHRvID0gUEFMOjpDcnlwdG9EaWdlc3Q6OmNy
ZWF0ZShQQUw6OkNyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFfMjU2KTsKLSAgICBjcnlwdG8t
PmFkZEJ5dGVzKGNsaWVudERhdGFKc29uLmRhdGEoKSwgY2xpZW50RGF0YUpzb24uYnl0ZUxlbmd0
aCgpKTsKLSAgICByZXR1cm4gY3J5cHRvLT5jb21wdXRlSGFzaCgpOwotfQotCiBzdGF0aWMgYm9v
bCBuZWVkc0FwcElkUXVpcmtzKGNvbnN0IFN0cmluZyYgaG9zdCwgY29uc3QgU3RyaW5nJiBhcHBJ
ZCkKIHsKICAgICAvLyBGSVhNRSgxOTc1MjQpOiBSZW1vdmUgdGhpcyBxdWlyayBpbiAyMDIzLiBB
cyBhbiBlYXJseSBhZG9wdGVyIG9mIFUyRiBmZWF0dXJlcywgR29vZ2xlIGhhcyBhIGxhcmdlIG51
bWJlciBvZgpAQCAtMTc2LDggKzE0OCw4IEBAIHZvaWQgQXV0aGVudGljYXRvckNvb3JkaW5hdG9y
OjpjcmVhdGUoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBQdWJsaWNLZXlDCiAgICAg
b3B0aW9ucy5leHRlbnNpb25zID0gQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRz
IHsgU3RyaW5nKCksIHByb2Nlc3NHb29nbGVMZWdhY3lBcHBJZFN1cHBvcnRFeHRlbnNpb24ob3B0
aW9ucy5leHRlbnNpb25zLCBvcHRpb25zLnJwLmlkKSB9OwogCiAgICAgLy8gU3RlcCAxMy0xNS4K
LSAgICBhdXRvIGNsaWVudERhdGFKc29uID0gcHJvZHVjZUNsaWVudERhdGFKc29uKENsaWVudERh
dGFUeXBlOjpDcmVhdGUsIG9wdGlvbnMuY2hhbGxlbmdlLCBjYWxsZXJPcmlnaW4pOwotICAgIGF1
dG8gY2xpZW50RGF0YUpzb25IYXNoID0gcHJvZHVjZUNsaWVudERhdGFKc29uSGFzaChjbGllbnRE
YXRhSnNvbik7CisgICAgYXV0byBjbGllbnREYXRhSnNvbiA9IGJ1aWxkQ2xpZW50RGF0YUpzb24o
Q2xpZW50RGF0YVR5cGU6OkNyZWF0ZSwgb3B0aW9ucy5jaGFsbGVuZ2UsIGNhbGxlck9yaWdpbik7
CisgICAgYXV0byBjbGllbnREYXRhSnNvbkhhc2ggPSBidWlsZENsaWVudERhdGFKc29uSGFzaChj
bGllbnREYXRhSnNvbik7CiAKICAgICAvLyBTdGVwIDQsIDE3LTIxLgogICAgIGlmICghbV9jbGll
bnQpIHsKQEAgLTI0Nyw4ICsyMTksOCBAQCB2b2lkIEF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6
ZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3VyY2UoY29uc3QgRG9jdW1lbnQmIGRvY3VtZQogICAgIH0K
IAogICAgIC8vIFN0ZXAgMTAtMTIuCi0gICAgYXV0byBjbGllbnREYXRhSnNvbiA9IHByb2R1Y2VD
bGllbnREYXRhSnNvbihDbGllbnREYXRhVHlwZTo6R2V0LCBvcHRpb25zLmNoYWxsZW5nZSwgY2Fs
bGVyT3JpZ2luKTsKLSAgICBhdXRvIGNsaWVudERhdGFKc29uSGFzaCA9IHByb2R1Y2VDbGllbnRE
YXRhSnNvbkhhc2goY2xpZW50RGF0YUpzb24pOworICAgIGF1dG8gY2xpZW50RGF0YUpzb24gPSBi
dWlsZENsaWVudERhdGFKc29uKENsaWVudERhdGFUeXBlOjpHZXQsIG9wdGlvbnMuY2hhbGxlbmdl
LCBjYWxsZXJPcmlnaW4pOworICAgIGF1dG8gY2xpZW50RGF0YUpzb25IYXNoID0gYnVpbGRDbGll
bnREYXRhSnNvbkhhc2goY2xpZW50RGF0YUpzb24pOwogCiAgICAgLy8gU3RlcCA0LCAxNC0xOS4K
ICAgICBpZiAoIW1fY2xpZW50KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9XZWJBdXRoZW50aWNhdGlvblV0aWxzLmNwcAppbmRleCAwNjhmZWY2MjVh
OGUyODIxYjRiOGY0ZDY4OTVjNTdmMDVjNTkwYjg1Li5jOGUwZDI4MmQ1M2IwODZkMjE5NDdmZmUx
MGZkOGY2OThlZDA0ODk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5jcHAKQEAgLTMxLDYgKzMxLDggQEAK
ICNpbmNsdWRlICJDQk9SV3JpdGVyLmgiCiAjaW5jbHVkZSAiV2ViQXV0aGVudGljYXRpb25Db25z
dGFudHMuaCIKICNpbmNsdWRlIDxwYWwvY3J5cHRvL0NyeXB0b0RpZ2VzdC5oPgorI2luY2x1ZGUg
PHd0Zi9KU09OVmFsdWVzLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQmFzZTY0Lmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEzMSw2
ICsxMzMsMzIgQEAgVmVjdG9yPHVpbnQ4X3Q+IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QoVmVjdG9y
PHVpbnQ4X3Q+JiYgYXV0aERhdGEsIFN0cmluZyYmIGZvcm0KICAgICByZXR1cm4gKmF0dGVzdGF0
aW9uT2JqZWN0OwogfQogCisvLyBGSVhNRSgxODE5NDgpOiBBZGQgdG9rZW4gYmluZGluZyBJRC4K
K1JlZjxBcnJheUJ1ZmZlcj4gYnVpbGRDbGllbnREYXRhSnNvbihDbGllbnREYXRhVHlwZSB0eXBl
LCBjb25zdCBCdWZmZXJTb3VyY2UmIGNoYWxsZW5nZSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9y
aWdpbikKK3sKKyAgICBhdXRvIG9iamVjdCA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CisgICAg
c3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBDbGllbnREYXRhVHlwZTo6Q3JlYXRlOgorICAgICAg
ICBvYmplY3QtPnNldFN0cmluZygidHlwZSJfcywgIndlYmF1dGhuLmNyZWF0ZSJfcyk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQ2xpZW50RGF0YVR5cGU6OkdldDoKKyAgICAgICAgb2JqZWN0
LT5zZXRTdHJpbmcoInR5cGUiX3MsICJ3ZWJhdXRobi5nZXQiX3MpOworICAgICAgICBicmVhazsK
KyAgICB9CisgICAgb2JqZWN0LT5zZXRTdHJpbmcoImNoYWxsZW5nZSJfcywgYmFzZTY0VVJMRW5j
b2RlVG9TdHJpbmcoY2hhbGxlbmdlLmRhdGEoKSwgY2hhbGxlbmdlLmxlbmd0aCgpKSk7CisgICAg
b2JqZWN0LT5zZXRTdHJpbmcoIm9yaWdpbiJfcywgb3JpZ2luLnRvUmF3U3RyaW5nKCkpOworCisg
ICAgYXV0byB1dGY4SlNPTlN0cmluZyA9IG9iamVjdC0+dG9KU09OU3RyaW5nKCkudXRmOCgpOwor
CisgICAgcmV0dXJuIEFycmF5QnVmZmVyOjpjcmVhdGUodXRmOEpTT05TdHJpbmcuZGF0YSgpLCB1
dGY4SlNPTlN0cmluZy5sZW5ndGgoKSk7Cit9CisKK1ZlY3Rvcjx1aW50OF90PiBidWlsZENsaWVu
dERhdGFKc29uSGFzaChjb25zdCBBcnJheUJ1ZmZlciYgY2xpZW50RGF0YUpzb24pCit7CisgICAg
YXV0byBjcnlwdG8gPSBQQUw6OkNyeXB0b0RpZ2VzdDo6Y3JlYXRlKFBBTDo6Q3J5cHRvRGlnZXN0
OjpBbGdvcml0aG06OlNIQV8yNTYpOworICAgIGNyeXB0by0+YWRkQnl0ZXMoY2xpZW50RGF0YUpz
b24uZGF0YSgpLCBjbGllbnREYXRhSnNvbi5ieXRlTGVuZ3RoKCkpOworICAgIHJldHVybiBjcnlw
dG8tPmNvbXB1dGVIYXNoKCk7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9XZWJBdXRoZW50aWNhdGlvblV0
aWxzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1dlYkF1dGhlbnRpY2F0aW9u
VXRpbHMuaAppbmRleCA1MWYwNTZlNmQzM2ZhODhiNzU3NzQyZjQ5ZjkwNDMzNWQ2MzNkOTI4Li5h
MDc5MjExZGViMTdjOGUyNmJiZjFlODlkMzIwZjExYzg1OTM3ZTU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMu
aApAQCAtMjgsNyArMjgsMTAgQEAKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogCiAjaW5jbHVkZSAi
QXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIkJ1ZmZlclNvdXJj
ZS5oIgogI2luY2x1ZGUgIkNCT1JWYWx1ZS5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgi
CisjaW5jbHVkZSAiV2ViQXV0aGVudGljYXRpb25Db25zdGFudHMuaCIKICNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00OSw2ICs1MiwxMCBAQCBXRUJD
T1JFX0VYUE9SVCBWZWN0b3I8dWludDhfdD4gYnVpbGRBdXRoRGF0YShjb25zdCBTdHJpbmcmIHJw
SWQsIGNvbnN0IHVpbnQ4X3QgZgogLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLyNh
dHRlc3RhdGlvbi1vYmplY3QKIFdFQkNPUkVfRVhQT1JUIFZlY3Rvcjx1aW50OF90PiBidWlsZEF0
dGVzdGF0aW9uT2JqZWN0KFZlY3Rvcjx1aW50OF90PiYmIGF1dGhEYXRhLCBTdHJpbmcmJiBmb3Jt
YXQsIGNib3I6OkNCT1JWYWx1ZTo6TWFwVmFsdWUmJiBzdGF0ZW1lbnRNYXAsIGNvbnN0IEF0dGVz
dGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2UmKTsKIAorV0VCQ09SRV9FWFBPUlQgUmVmPEFycmF5
QnVmZmVyPiBidWlsZENsaWVudERhdGFKc29uKENsaWVudERhdGFUeXBlIC8qdHlwZSovLCBjb25z
dCBCdWZmZXJTb3VyY2UmIGNoYWxsZW5nZSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIC8qb3JpZ2lu
Ki8pOworCitXRUJDT1JFX0VYUE9SVCBWZWN0b3I8dWludDhfdD4gYnVpbGRDbGllbnREYXRhSnNv
bkhhc2goY29uc3QgQXJyYXlCdWZmZXImIGNsaWVudERhdGFKc29uKTsKKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVs
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWwubW0KaW5kZXggNTc1OGZiN2QwNGZiZmRhZjNhYjljZjU1YTA4NzAzNzVhODA4NjFj
Ny4uMzk0ZGUzYjA1ODllN2Y2MzUyNDQwNmExODcwYTZjOWQyMDIwNzBiNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhl
bnRpY2F0aW9uUGFuZWwubW0KQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvQXV0
aGVudGljYXRvckF0dGFjaG1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvQXV0aGVudGljYXRvclJl
c3BvbnNlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0F1dGhlbnRpY2F0b3JSZXNwb25zZURhdGEuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvQnVmZmVyU291cmNlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NCT1JS
ZWFkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ0JPUldyaXRlci5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9GaWRvQ29uc3RhbnRzLmg+CkBAIC01Miw3ICs1Myw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1B1
YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaD4KICNpbXBvcnQgPFdlYkNvcmUvUHVi
bGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkF1
dGhlbnRpY2F0aW9uQ29uc3RhbnRzLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0
cmFzLmg+CisjaW1wb3J0IDxXZWJDb3JlL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuaD4KICNpbXBv
cnQgPG9iamMvcnVudGltZS5oPgogI2ltcG9ydCA8cGFsL2NyeXB0by9DcnlwdG9EaWdlc3QuaD4K
ICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgpAQCAtNzMsMTkgKzc0LDIwIEBAIHN0YXRpYyB2b2lk
IHVwZGF0ZVF1ZXJ5SWZOZWNlc3NhcnkoTlNNdXRhYmxlRGljdGlvbmFyeSAqKQogCiBzdGF0aWMg
UmV0YWluUHRyPE5TRGF0YT4gcHJvZHVjZUNsaWVudERhdGFKc29uKF9XS1dlYkF1dGhlbnRpY2F0
aW9uVHlwZSB0eXBlLCBOU0RhdGEgKmNoYWxsZW5nZSwgTlNTdHJpbmcgKm9yaWdpbikKIHsKLSAg
ICBhdXRvIGRpY3Rpb25hcnkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10g
aW5pdF0pOworICAgIFdlYkNvcmU6OkNsaWVudERhdGFUeXBlIGNsaWVudERhdGFUeXBlOwogICAg
IHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgX1dLV2ViQXV0aGVudGljYXRpb25UeXBlQ3JlYXRl
OgotICAgICAgICBbZGljdGlvbmFyeSBzZXRPYmplY3Q6QCJ3ZWJhdXRobi5jcmVhdGUiIGZvcktl
eTpAInR5cGUiXTsKKyAgICAgICAgY2xpZW50RGF0YVR5cGUgPSBXZWJDb3JlOjpDbGllbnREYXRh
VHlwZTo6Q3JlYXRlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIF9XS1dlYkF1dGhlbnRpY2F0
aW9uVHlwZUdldDoKLSAgICAgICAgW2RpY3Rpb25hcnkgc2V0T2JqZWN0OkAid2ViYXV0aG4uZ2V0
IiBmb3JLZXk6QCJ0eXBlIl07CisgICAgICAgIGNsaWVudERhdGFUeXBlID0gV2ViQ29yZTo6Q2xp
ZW50RGF0YVR5cGU6OkdldDsKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIFtkaWN0aW9uYXJ5
IHNldE9iamVjdDpiYXNlNjRVUkxFbmNvZGVUb1N0cmluZyhjaGFsbGVuZ2UuYnl0ZXMsIGNoYWxs
ZW5nZS5sZW5ndGgpIGZvcktleTpAImNoYWxsZW5nZSJdOwotICAgIFtkaWN0aW9uYXJ5IHNldE9i
amVjdDpvcmlnaW4gZm9yS2V5OkAib3JpZ2luIl07CisgICAgYXV0byBjaGFsbGVuZ2VCdWZmZXIg
PSBBcnJheUJ1ZmZlcjo6dHJ5Q3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+
KGNoYWxsZW5nZS5ieXRlcyksIGNoYWxsZW5nZS5sZW5ndGgpOworICAgIGF1dG8gc2VjdXJpdHlP
cmlnaW4gPSBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvcmlnaW4p
OwogCi0gICAgcmV0dXJuIFtOU0pTT05TZXJpYWxpemF0aW9uIGRhdGFXaXRoSlNPTk9iamVjdDpk
aWN0aW9uYXJ5LmdldCgpIG9wdGlvbnM6KE5TSlNPTldyaXRpbmdTb3J0ZWRLZXlzIHwgTlNKU09O
V3JpdGluZ1dpdGhvdXRFc2NhcGluZ1NsYXNoZXMpIGVycm9yOm5pbF07CisgICAgYXV0byBjbGll
bnREYXRhSnNvbiA9IGJ1aWxkQ2xpZW50RGF0YUpzb24oY2xpZW50RGF0YVR5cGUsIFdlYkNvcmU6
OkJ1ZmZlclNvdXJjZShjaGFsbGVuZ2VCdWZmZXIpLCBzZWN1cml0eU9yaWdpbik7CisgICAgcmV0
dXJuIGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6Y2xpZW50RGF0YUpzb24t
PmRhdGEoKSBsZW5ndGg6Y2xpZW50RGF0YUpzb24tPmJ5dGVMZW5ndGgoKV0pOwogfQogCiBzdGF0
aWMgVmVjdG9yPHVpbnQ4X3Q+IHByb2R1Y2VDbGllbnREYXRhSnNvbkhhc2goTlNEYXRhICpjbGll
bnREYXRhSnNvbikKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCBmNjQ1YmExYjhlMzFiN2QyODg4YzRiNzQ1MzgyZjRkNzgxYmFiYjdmLi41ZjM0MDNk
MGI2NjM1ZWEwNWZmOGU2ZTA5MjAyNDQ2OTEzOGE0ZmU3IDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTEtMTAg
IEogUGFzY29lICA8al9wYXNjb2VAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRobl0gVW5p
ZnkgX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBTUEkgYW5kIEF1dGhlbnRpY2F0b3JDb29yZGlu
YXRvcidzIENsaWVudERhdGFKc29uIGdlbmVyYXRpb24gCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI5NjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
Lzg1MjY4MjE2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVwZGF0ZSBhcGkgdGVzdHMgdG8gcmVmbGVjdCBkaWZmZXJlbnQgY2xpZW50RGF0YUpzb24g
Zm9ybWF0IGZyb20gV2ViQXV0aGVudGljYXRpb25VdGlscworCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjEtMTEtMDkgIE15bGVzIEMuIE1heGZp
ZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR1BVXSBTdHViIG91dCBt
ZXRob2RzIGluIFdlYkdQVS5mcmFtZXdvcmsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5l
bC5tbQppbmRleCBhZWZlMDE1ODM5YWMzZDA0YjE0MmQ1NmUyYzZhZWEwYWNiMGRmNDIyLi5kZTVk
MTczN2RlY2IzYTZmOTA1YjljYWUzZDdjZjUyZTY2ODQ1ZTNlIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRo
ZW50aWNhdGlvblBhbmVsLm1tCkBAIC0xODkxLDcgKzE4OTEsNyBAQCBURVNUKFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwsIE1ha2VDcmVkZW50aWFsTEEpCiAgICAgICAgIEVYUEVDVF9OVUxMKGVycm9y
KTsKIAogICAgICAgICBFWFBFQ1RfTk9UX05VTEwocmVzcG9uc2UpOwotICAgICAgICBFWFBFQ1Rf
V0tfU1RSRVEoW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhEYXRhOnJlc3BvbnNlLmNsaWVudERh
dGFKU09OIGVuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXSwgIntcImNoYWxsZW5nZVwiOlwi
QVFJREJBRUNBd1FCQWdNRUFRSURCQUVDQXdRQkFnTUVBUUlEQkFFQ0F3UVwiLFwib3JpZ2luXCI6
XCJodHRwczovL2V4YW1wbGUuY29tXCIsXCJ0eXBlXCI6XCJ3ZWJhdXRobi5jcmVhdGVcIn0iKTsK
KyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoRGF0YTpy
ZXNwb25zZS5jbGllbnREYXRhSlNPTiBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ10sICJ7
XCJ0eXBlXCI6XCJ3ZWJhdXRobi5jcmVhdGVcIixcImNoYWxsZW5nZVwiOlwiQVFJREJBRUNBd1FC
QWdNRUFRSURCQUVDQXdRQkFnTUVBUUlEQkFFQ0F3UVwiLFwib3JpZ2luXCI6XCJodHRwczovL2V4
YW1wbGUuY29tXCJ9Iik7CiAgICAgICAgIEVYUEVDVF9XS19TVFJFUShbcmVzcG9uc2UucmF3SWQg
YmFzZTY0RW5jb2RlZFN0cmluZ1dpdGhPcHRpb25zOjBdLCAiU01TWEhuZ0Y3aEVPc0VsQTczQzNS
WSs4YlI0PSIpOwogICAgICAgICBFWFBFQ1RfTlVMTChyZXNwb25zZS5leHRlbnNpb25zKTsKICAg
ICAgICAgRVhQRUNUX1dLX1NUUkVRKFtyZXNwb25zZS5hdHRlc3RhdGlvbk9iamVjdCBiYXNlNjRF
bmNvZGVkU3RyaW5nV2l0aE9wdGlvbnM6MF0sICJvMk5tYlhSa2JtOXVaV2RoZEhSVGRHMTBvR2ho
ZFhSb1JHRjBZVmlZbzNtbTl1NnZ1YVZlTjR3UmdEVGlkUjVvTDZ1ZkxUQ3JFOUlTVlliT0dVZEZB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkVqRWx4NTRCZTRSRHJCSlFPOXd0MFdQdkcwZXBR
RUNBeVlnQVNGWUlEai96eFNrektnYUJ1UzNjZFdERjU1OG9mOEFhSXBnRnBzakYvUW0xNzQ5SWxn
Z1ZCSlBncVVJd2ZoV0hKOTFuYjdVUEg3NmMwK1dGT3paS3NsUHl5RnNlNGc9Iik7CkBAIC0yMDI0
LDcgKzIwMjQsNyBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEdldEFzc2VydGlvbkxB
KQogICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CiAKICAgICAgICAgRVhQRUNUX05PVF9OVUxM
KHJlc3BvbnNlKTsKLSAgICAgICAgRVhQRUNUX1dLX1NUUkVRKFtbTlNTdHJpbmcgYWxsb2NdIGlu
aXRXaXRoRGF0YTpyZXNwb25zZS5jbGllbnREYXRhSlNPTiBlbmNvZGluZzpOU1VURjhTdHJpbmdF
bmNvZGluZ10sICJ7XCJjaGFsbGVuZ2VcIjpcIkFRSURCQUVDQXdRQkFnTUVBUUlEQkFFQ0F3UUJB
Z01FQVFJREJBRUNBd1FcIixcIm9yaWdpblwiOlwiaHR0cHM6Ly9leGFtcGxlLmNvbVwiLFwidHlw
ZVwiOlwid2ViYXV0aG4uZ2V0XCJ9Iik7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShbW05TU3Ry
aW5nIGFsbG9jXSBpbml0V2l0aERhdGE6cmVzcG9uc2UuY2xpZW50RGF0YUpTT04gZW5jb2Rpbmc6
TlNVVEY4U3RyaW5nRW5jb2RpbmddLCAie1widHlwZVwiOlwid2ViYXV0aG4uZ2V0XCIsXCJjaGFs
bGVuZ2VcIjpcIkFRSURCQUVDQXdRQkFnTUVBUUlEQkFFQ0F3UUJBZ01FQVFJREJBRUNBd1FcIixc
Im9yaWdpblwiOlwiaHR0cHM6Ly9leGFtcGxlLmNvbVwifSIpOwogICAgICAgICBFWFBFQ1RfV0tf
U1RSRVEoW3Jlc3BvbnNlLnJhd0lkIGJhc2U2NEVuY29kZWRTdHJpbmdXaXRoT3B0aW9uczowXSwg
IlNNU1hIbmdGN2hFT3NFbEE3M0MzUlkrOGJSND0iKTsKICAgICAgICAgRVhQRUNUX05VTEwocmVz
cG9uc2UuZXh0ZW5zaW9ucyk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>