<?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>233557</bug_id>
          
          <creation_ts>2021-11-29 07:08:04 -0800</creation_ts>
          <short_desc>[:has() pseudo-class] id invalidation support</short_desc>
          <delta_ts>2021-11-29 10:44:25 -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>CSS</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>227702</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1818198</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-29 07:08:04 -0800</bug_when>
    <thetext>The current invalidation code doesn&apos;t automatically cover id mutations for has since it doesn&apos;t use rulesets.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818211</commentid>
    <comment_count>1</comment_count>
      <attachid>445278</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-29 07:37:06 -0800</bug_when>
    <thetext>Created attachment 445278
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818307</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-29 10:43:35 -0800</bug_when>
    <thetext>Committed r286226 (244607@main): &lt;https://commits.webkit.org/244607@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 445278.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818308</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-29 10:44:25 -0800</bug_when>
    <thetext>&lt;rdar://problem/85824697&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445278</attachid>
            <date>2021-11-29 07:37:06 -0800</date>
            <delta_ts>2021-11-29 10:43:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233557-20211129173704.patch</filename>
            <type>text/plain</type>
            <size>18861</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzIyNzhlMDM3YWNlZmIw
OTVjM2FjNjYwMTc2YjViMDEwYjRjMzIxOC4uN2U0NzJlMTdkMWI2ODc0YzBiY2QxNDg4MTlhYTE1
ZDRkNmIxNDEzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIxLTExLTI5ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbOmhhcygpIHBzZXVkby1j
bGFzc10gaWQgaW52YWxpZGF0aW9uIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzU1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZSBleGlzdGluZyBpbnZhbGlkYXRpb24gY29kZSBkb2Vz
bid0IGF1dG9tYXRpY2FsbHkgY292ZXIgaWQgbXV0YXRpb25zIGZvciBoYXMgc2luY2UgaXQgZG9l
c24ndCB1c2UgcnVsZXNldHMKKyAgICAgICAgKGJlY2F1c2UgaWQgbXV0YXRpb25zIGFyZSByYXJl
IGFuZCBoYXZlIG5vdCBiZWVuIHdvcnRoIG9wdGltaXppbmcpLgorCisgICAgICAgICogc3R5bGUv
Q2hpbGRDaGFuZ2VJbnZhbGlkYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkNo
aWxkQ2hhbmdlSW52YWxpZGF0aW9uOjppbnZhbGlkYXRlRm9yQ2hhbmdlZEVsZW1lbnQpOgorCisg
ICAgICAgIEludmFsaWRhdGUgZm9yIGlkcy4KKyAgICAgICAgT25seSBsb29rIGZvciBkZXNjZW5k
YW50IG1hdGNoaW5nIDpoYXMgcnVsZXNldHMgZm9yIG5vbi1jaGlsZHJlbi4KKworICAgICAgICAq
IHN0eWxlL0lkQ2hhbmdlSW52YWxpZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
OjpJZENoYW5nZUludmFsaWRhdGlvbjo6aW52YWxpZGF0ZVN0eWxlKToKKworICAgICAgICBJbnZh
bGlkYXRlIHdpdGggUnVsZVNldHMuCisKKyAgICAgICAgKiBzdHlsZS9SdWxlRmVhdHVyZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZUZlYXR1cmVTZXQ6OnJlY3Vyc2l2ZWx5Q29s
bGVjdEZlYXR1cmVzRnJvbVNlbGVjdG9yKToKKworICAgICAgICBDb2xsZWN0IGlkcyBmb3IgYnVp
bGRpbmcgcnVsZXNldHMgZm9yIDpoYXMgY2FzZSBvbmx5LCBzaW1pbGFyIHRvIHRhZ3MuCisKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSdWxlRmVhdHVyZVNldDo6Y29sbGVjdEZlYXR1cmVzKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSdWxlRmVhdHVyZVNldDo6YWRkKToKKworICAgICAg
ICBVc2Ugc29tZSBsYW1iZGFzIHRvIHJlZHVjZSBjb3B5IGNvZGUuCisKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlOjpSdWxlRmVhdHVyZVNldDo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGU6OlJ1bGVGZWF0dXJlU2V0OjpzaHJpbmtUb0ZpdCk6CisgICAgICAgICogc3R5bGUvUnVsZUZl
YXR1cmUuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6OlNjb3BlUnVsZVNldHM6OmlkSW52YWxpZGF0aW9uUnVsZVNldHMg
Y29uc3QpOgorICAgICAgICAqIHN0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5oOgorCiAyMDIxLTEx
LTI3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbR1RLXVthMTF5XSBTaWduYWwgc3RhdGUtY2hhbmdlZDpzZWxlY3RlZCBpcyBub3QgZW1pdHRl
ZCBmb3IgbGlzdGJveCBlbGVtZW50cyB3aGVuIGJ1aWxkaW5nIHdpdGggQVRTUEkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NoaWxkQ2hhbmdlSW52YWxpZGF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL0NoaWxkQ2hhbmdlSW52YWxpZGF0aW9uLmNwcAppbmRleCA3M2Ni
MDQ5YjY5NWViODExMTJmMjJmMzA0ZmQ5MmQyZmVmNGMyNGFjLi5hNDBmYzQ1NTgwYjZiMjViZGM4
OGIxNTgzZjAzNTJhNGRkZjI5MDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9D
aGlsZENoYW5nZUludmFsaWRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvQ2hp
bGRDaGFuZ2VJbnZhbGlkYXRpb24uY3BwCkBAIC02NywxOCArNjcsMjYgQEAgdm9pZCBDaGlsZENo
YW5nZUludmFsaWRhdGlvbjo6aW52YWxpZGF0ZUZvckNoYW5nZWRFbGVtZW50KEVsZW1lbnQmIGNo
YW5nZWRFbGVtZW4KIAogICAgIEludmFsaWRhdG9yOjpNYXRjaEVsZW1lbnRSdWxlU2V0cyBtYXRj
aEVsZW1lbnRSdWxlU2V0czsKIAorICAgIGJvb2wgaXNEZXNjZW5kYW50ID0gY2hhbmdlZEVsZW1l
bnQucGFyZW50RWxlbWVudCgpICE9ICZwYXJlbnRFbGVtZW50KCk7CisKICAgICBhdXRvIGFkZEhh
c0ludmFsaWRhdGlvbiA9IFsmXShjb25zdCBWZWN0b3I8SW52YWxpZGF0aW9uUnVsZVNldD4qIGlu
dmFsaWRhdGlvblJ1bGVTZXRzKSAgewogICAgICAgICBpZiAoIWludmFsaWRhdGlvblJ1bGVTZXRz
KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBmb3IgKGF1dG8mIGludmFsaWRhdGlvblJ1
bGVTZXQgOiAqaW52YWxpZGF0aW9uUnVsZVNldHMpIHsKLSAgICAgICAgICAgIGlmIChpc0hhc1Bz
ZXVkb0NsYXNzTWF0Y2hFbGVtZW50KGludmFsaWRhdGlvblJ1bGVTZXQubWF0Y2hFbGVtZW50KSkK
LSAgICAgICAgICAgICAgICBJbnZhbGlkYXRvcjo6YWRkVG9NYXRjaEVsZW1lbnRSdWxlU2V0cyht
YXRjaEVsZW1lbnRSdWxlU2V0cywgaW52YWxpZGF0aW9uUnVsZVNldCk7CisgICAgICAgICAgICBp
ZiAoIWlzSGFzUHNldWRvQ2xhc3NNYXRjaEVsZW1lbnQoaW52YWxpZGF0aW9uUnVsZVNldC5tYXRj
aEVsZW1lbnQpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgaWYgKGlz
RGVzY2VuZGFudCAmJiBpbnZhbGlkYXRpb25SdWxlU2V0Lm1hdGNoRWxlbWVudCAhPSBNYXRjaEVs
ZW1lbnQ6Okhhc0Rlc2NlbmRhbnQpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
ICAgICBJbnZhbGlkYXRvcjo6YWRkVG9NYXRjaEVsZW1lbnRSdWxlU2V0cyhtYXRjaEVsZW1lbnRS
dWxlU2V0cywgaW52YWxpZGF0aW9uUnVsZVNldCk7CiAgICAgICAgIH0KICAgICB9OwogCiAgICAg
YXV0byB0YWdOYW1lID0gY2hhbmdlZEVsZW1lbnQubG9jYWxOYW1lKCkuY29udmVydFRvQVNDSUlM
b3dlcmNhc2UoKTsKICAgICBhZGRIYXNJbnZhbGlkYXRpb24ocnVsZVNldHMudGFnSW52YWxpZGF0
aW9uUnVsZVNldHModGFnTmFtZSkpOwogCisgICAgaWYgKGNoYW5nZWRFbGVtZW50Lmhhc0lEKCkp
CisgICAgICAgIGFkZEhhc0ludmFsaWRhdGlvbihydWxlU2V0cy5pZEludmFsaWRhdGlvblJ1bGVT
ZXRzKGNoYW5nZWRFbGVtZW50LmlkRm9yU3R5bGVSZXNvbHV0aW9uKCkpKTsKKwogICAgIGlmIChj
aGFuZ2VkRWxlbWVudC5oYXNBdHRyaWJ1dGVzKCkpIHsKICAgICAgICAgZm9yIChhdXRvJiBhdHRy
aWJ1dGUgOiBjaGFuZ2VkRWxlbWVudC5hdHRyaWJ1dGVzSXRlcmF0b3IoKSkgewogICAgICAgICAg
ICAgYXV0byBhdHRyaWJ1dGVOYW1lID0gYXR0cmlidXRlLmxvY2FsTmFtZSgpLmNvbnZlcnRUb0FT
Q0lJTG93ZXJjYXNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9JZENoYW5n
ZUludmFsaWRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9JZENoYW5nZUludmFsaWRh
dGlvbi5jcHAKaW5kZXggOGJlZTVlYjdjMzllMWFhYjJmNTRjODE1YmM5MTdlMjg4NTkzNzU2My4u
ZGRhMTYwZGI3YmZlZWRlMjExNjRhNzRiYTdlOWFlYWMxZWUwYTIwYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3R5bGUvSWRDaGFuZ2VJbnZhbGlkYXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL0lkQ2hhbmdlSW52YWxpZGF0aW9uLmNwcApAQCAtMjgsNiArMjgsNyBAQAog
CiAjaW5jbHVkZSAiRWxlbWVudENoaWxkSXRlcmF0b3IuaCIKICNpbmNsdWRlICJTdHlsZUludmFs
aWRhdGlvbkZ1bmN0aW9ucy5oIgorI2luY2x1ZGUgIlN0eWxlSW52YWxpZGF0b3IuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIFN0eWxlIHsKQEAgLTY2LDYgKzY3LDE0IEBAIHZv
aWQgSWRDaGFuZ2VJbnZhbGlkYXRpb246OmludmFsaWRhdGVTdHlsZShjb25zdCBBdG9tU3RyaW5n
JiBjaGFuZ2VkSWQpCiAgICAgICAgIG1fZWxlbWVudC5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVl
KCk7CiAgICAgZWxzZQogICAgICAgICBtX2VsZW1lbnQuaW52YWxpZGF0ZVN0eWxlKCk7CisKKyAg
ICAvLyBJbnZhbGlkYXRpb24gcnVsZXNldHMgZXhpc3QgZm9yIDpoYXMoKS4KKyAgICBpZiAoYXV0
byogaW52YWxpZGF0aW9uUnVsZVNldHMgPSBydWxlU2V0cy5pZEludmFsaWRhdGlvblJ1bGVTZXRz
KGNoYW5nZWRJZCkpIHsKKyAgICAgICAgSW52YWxpZGF0b3I6Ok1hdGNoRWxlbWVudFJ1bGVTZXRz
IG1hdGNoRWxlbWVudFJ1bGVTZXRzOworICAgICAgICBmb3IgKGF1dG8mIGludmFsaWRhdGlvblJ1
bGVTZXQgOiAqaW52YWxpZGF0aW9uUnVsZVNldHMpCisgICAgICAgICAgICBJbnZhbGlkYXRvcjo6
YWRkVG9NYXRjaEVsZW1lbnRSdWxlU2V0cyhtYXRjaEVsZW1lbnRSdWxlU2V0cywgaW52YWxpZGF0
aW9uUnVsZVNldCk7CisgICAgICAgIEludmFsaWRhdG9yOjppbnZhbGlkYXRlV2l0aE1hdGNoRWxl
bWVudFJ1bGVTZXRzKG1fZWxlbWVudCwgbWF0Y2hFbGVtZW50UnVsZVNldHMpOworICAgIH0KIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZUZlYXR1cmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZUZlYXR1cmUuY3BwCmluZGV4IDk4NTM4ODU1ZTBiN2Vj
MjAwNTFhYTE3NzEyMzEyZWVhOWEyZjM1MGQuLjQzNDNlM2I5NTk2MTliN2EzNDI2NzIyNDllMzg5
NTQ4MDcyZDhkOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVGZWF0dXJl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlRmVhdHVyZS5jcHAKQEAgLTE5Miw2
ICsxOTIsOCBAQCB2b2lkIFJ1bGVGZWF0dXJlU2V0OjpyZWN1cnNpdmVseUNvbGxlY3RGZWF0dXJl
c0Zyb21TZWxlY3RvcihTZWxlY3RvckZlYXR1cmVzJiBzZQogICAgICAgICAgICAgaWRzSW5SdWxl
cy5hZGQoc2VsZWN0b3ItPnZhbHVlKCkpOwogICAgICAgICAgICAgaWYgKG1hdGNoRWxlbWVudCA9
PSBNYXRjaEVsZW1lbnQ6OlBhcmVudCB8fCBtYXRjaEVsZW1lbnQgPT0gTWF0Y2hFbGVtZW50OjpB
bmNlc3RvcikKICAgICAgICAgICAgICAgICBpZHNNYXRjaGluZ0FuY2VzdG9yc0luUnVsZXMuYWRk
KHNlbGVjdG9yLT52YWx1ZSgpKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGlzSGFzUHNldWRvQ2xh
c3NNYXRjaEVsZW1lbnQobWF0Y2hFbGVtZW50KSkKKyAgICAgICAgICAgICAgICBzZWxlY3RvckZl
YXR1cmVzLmlkcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIoc2VsZWN0b3ItPnZhbHVlKCksIG1hdGNo
RWxlbWVudCkpOwogICAgICAgICB9IGVsc2UgaWYgKHNlbGVjdG9yLT5tYXRjaCgpID09IENTU1Nl
bGVjdG9yOjpDbGFzcykKICAgICAgICAgICAgIHNlbGVjdG9yRmVhdHVyZXMuY2xhc3Nlcy5hcHBl
bmQoc3RkOjptYWtlX3BhaXIoc2VsZWN0b3ItPnZhbHVlKCksIG1hdGNoRWxlbWVudCkpOwogICAg
ICAgICBlbHNlIGlmIChzZWxlY3Rvci0+bWF0Y2goKSA9PSBDU1NTZWxlY3Rvcjo6VGFnKSB7CkBA
IC0yNDQsMjAgKzI0NiwyNiBAQCB2b2lkIFJ1bGVGZWF0dXJlU2V0Ojpjb2xsZWN0RmVhdHVyZXMo
Y29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhKQogICAgIGlmIChydWxlRGF0YS5jb250YWluc1VuY29t
bW9uQXR0cmlidXRlU2VsZWN0b3IoKSkKICAgICAgICAgdW5jb21tb25BdHRyaWJ1dGVSdWxlcy5h
cHBlbmQoeyBydWxlRGF0YSB9KTsKIAotICAgIGZvciAoYXV0byYgbmFtZUFuZE1hdGNoIDogc2Vs
ZWN0b3JGZWF0dXJlcy50YWdzKSB7Ci0gICAgICAgIHRhZ1J1bGVzLmVuc3VyZShuYW1lQW5kTWF0
Y2guZmlyc3QsIFtdIHsKLSAgICAgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPFJ1bGVGZWF0dXJl
VmVjdG9yPigpOwotICAgICAgICB9KS5pdGVyYXRvci0+dmFsdWUtPmFwcGVuZCh7IHJ1bGVEYXRh
LCBuYW1lQW5kTWF0Y2guc2Vjb25kIH0pOwotICAgICAgICBzZXRVc2VzTWF0Y2hFbGVtZW50KG5h
bWVBbmRNYXRjaC5zZWNvbmQpOwotICAgIH0KLSAgICBmb3IgKGF1dG8mIG5hbWVBbmRNYXRjaCA6
IHNlbGVjdG9yRmVhdHVyZXMuY2xhc3NlcykgewotICAgICAgICBjbGFzc1J1bGVzLmVuc3VyZShu
YW1lQW5kTWF0Y2guZmlyc3QsIFtdIHsKLSAgICAgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPFJ1
bGVGZWF0dXJlVmVjdG9yPigpOwotICAgICAgICB9KS5pdGVyYXRvci0+dmFsdWUtPmFwcGVuZCh7
IHJ1bGVEYXRhLCBuYW1lQW5kTWF0Y2guc2Vjb25kIH0pOwotICAgICAgICBpZiAobmFtZUFuZE1h
dGNoLnNlY29uZCA9PSBNYXRjaEVsZW1lbnQ6Okhvc3QpCi0gICAgICAgICAgICBjbGFzc2VzQWZm
ZWN0aW5nSG9zdC5hZGQobmFtZUFuZE1hdGNoLmZpcnN0KTsKLSAgICAgICAgc2V0VXNlc01hdGNo
RWxlbWVudChuYW1lQW5kTWF0Y2guc2Vjb25kKTsKLSAgICB9CisgICAgYXV0byBhZGRUb01hcCA9
IFsmXShhdXRvJiBtYXAsIGF1dG8mIGVudHJpZXMsIGF1dG8gaG9zdEFmZmVjdGluZ05hbWVzKSB7
CisgICAgICAgIGZvciAoYXV0byYgZW50cnkgOiBlbnRyaWVzKSB7CisgICAgICAgICAgICBhdXRv
JiBbbmFtZSwgbWF0Y2hFbGVtZW50XSA9IGVudHJ5OworICAgICAgICAgICAgbWFwLmVuc3VyZShu
YW1lLCBbXSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8UnVsZUZlYXR1cmVW
ZWN0b3I+KCk7CisgICAgICAgICAgICB9KS5pdGVyYXRvci0+dmFsdWUtPmFwcGVuZCh7IHJ1bGVE
YXRhLCBtYXRjaEVsZW1lbnQgfSk7CisKKyAgICAgICAgICAgIHNldFVzZXNNYXRjaEVsZW1lbnQo
bWF0Y2hFbGVtZW50KTsKKworICAgICAgICAgICAgaWYgY29uc3RleHByICghc3RkOjppc19zYW1l
X3Y8bnVsbHB0cl90LCBkZWNsdHlwZShob3N0QWZmZWN0aW5nTmFtZXMpPikgeworICAgICAgICAg
ICAgICAgIGlmIChtYXRjaEVsZW1lbnQgPT0gTWF0Y2hFbGVtZW50OjpIb3N0KQorICAgICAgICAg
ICAgICAgICAgICBob3N0QWZmZWN0aW5nTmFtZXMtPmFkZChuYW1lKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgIH07CisKKyAgICBhZGRUb01hcCh0YWdSdWxlcywgc2VsZWN0b3JGZWF0
dXJlcy50YWdzLCBudWxscHRyKTsKKyAgICBhZGRUb01hcChpZFJ1bGVzLCBzZWxlY3RvckZlYXR1
cmVzLmlkcywgbnVsbHB0cik7CisgICAgYWRkVG9NYXAoY2xhc3NSdWxlcywgc2VsZWN0b3JGZWF0
dXJlcy5jbGFzc2VzLCAmY2xhc3Nlc0FmZmVjdGluZ0hvc3QpOworCiAgICAgZm9yIChhdXRvJiBz
ZWxlY3RvckFuZE1hdGNoIDogc2VsZWN0b3JGZWF0dXJlcy5hdHRyaWJ1dGVzKSB7CiAgICAgICAg
IGF1dG8qIHNlbGVjdG9yID0gc2VsZWN0b3JBbmRNYXRjaC5maXJzdDsKICAgICAgICAgYXV0byBt
YXRjaEVsZW1lbnQgPSBzZWxlY3RvckFuZE1hdGNoLnNlY29uZDsKQEAgLTI2OCwxNCArMjc2LDgg
QEAgdm9pZCBSdWxlRmVhdHVyZVNldDo6Y29sbGVjdEZlYXR1cmVzKGNvbnN0IFJ1bGVEYXRhJiBy
dWxlRGF0YSkKICAgICAgICAgICAgIGF0dHJpYnV0ZXNBZmZlY3RpbmdIb3N0LmFkZChzZWxlY3Rv
ci0+YXR0cmlidXRlKCkubG9jYWxOYW1lKCkuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKSk7CiAg
ICAgICAgIHNldFVzZXNNYXRjaEVsZW1lbnQobWF0Y2hFbGVtZW50KTsKICAgICB9Ci0gICAgZm9y
IChhdXRvJiBrZXlBbmRNYXRjaCA6IHNlbGVjdG9yRmVhdHVyZXMucHNldWRvQ2xhc3Nlcykgewot
ICAgICAgICBwc2V1ZG9DbGFzc1J1bGVzLmVuc3VyZShrZXlBbmRNYXRjaC5maXJzdCwgW10gewot
ICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8UnVsZUZlYXR1cmVWZWN0b3I+KCk7Ci0gICAg
ICAgIH0pLml0ZXJhdG9yLT52YWx1ZS0+YXBwZW5kKHsgcnVsZURhdGEsIGtleUFuZE1hdGNoLnNl
Y29uZCB9KTsKLSAgICAgICAgaWYgKGtleUFuZE1hdGNoLnNlY29uZCA9PSBNYXRjaEVsZW1lbnQ6
Okhvc3QpCi0gICAgICAgICAgICBwc2V1ZG9DbGFzc2VzQWZmZWN0aW5nSG9zdC5hZGQoa2V5QW5k
TWF0Y2guZmlyc3QpOwotICAgICAgICBzZXRVc2VzTWF0Y2hFbGVtZW50KGtleUFuZE1hdGNoLnNl
Y29uZCk7Ci0gICAgfQorCisgICAgYWRkVG9NYXAocHNldWRvQ2xhc3NSdWxlcywgc2VsZWN0b3JG
ZWF0dXJlcy5wc2V1ZG9DbGFzc2VzLCAmcHNldWRvQ2xhc3Nlc0FmZmVjdGluZ0hvc3QpOwogfQog
CiB2b2lkIFJ1bGVGZWF0dXJlU2V0OjphZGQoY29uc3QgUnVsZUZlYXR1cmVTZXQmIG90aGVyKQpA
QCAtMjg4LDMxICsyOTAsMjQgQEAgdm9pZCBSdWxlRmVhdHVyZVNldDo6YWRkKGNvbnN0IFJ1bGVG
ZWF0dXJlU2V0JiBvdGhlcikKICAgICBzaWJsaW5nUnVsZXMuYXBwZW5kVmVjdG9yKG90aGVyLnNp
YmxpbmdSdWxlcyk7CiAgICAgdW5jb21tb25BdHRyaWJ1dGVSdWxlcy5hcHBlbmRWZWN0b3Iob3Ro
ZXIudW5jb21tb25BdHRyaWJ1dGVSdWxlcyk7CiAKLSAgICBmb3IgKGF1dG8mIGtleVZhbHVlUGFp
ciA6IG90aGVyLnRhZ1J1bGVzKSB7Ci0gICAgICAgIHRhZ1J1bGVzLmVuc3VyZShrZXlWYWx1ZVBh
aXIua2V5LCBbXSB7Ci0gICAgICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxSdWxlRmVhdHVyZVZl
Y3Rvcj4oKTsKLSAgICAgICAgfSkuaXRlcmF0b3ItPnZhbHVlLT5hcHBlbmRWZWN0b3IoKmtleVZh
bHVlUGFpci52YWx1ZSk7Ci0gICAgfQorICAgIGF1dG8gYWRkTWFwID0gWyZdKGF1dG8mIG1hcCwg
YXV0byYgb3RoZXJNYXApIHsKKyAgICAgICAgZm9yIChhdXRvJiBrZXlWYWx1ZVBhaXIgOiBvdGhl
ck1hcCkgeworICAgICAgICAgICAgbWFwLmVuc3VyZShrZXlWYWx1ZVBhaXIua2V5LCBbXSB7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8c3RkOjpkZWNheV90PGRlY2x0eXBlKCpr
ZXlWYWx1ZVBhaXIudmFsdWUpPj4oKTsKKyAgICAgICAgICAgIH0pLml0ZXJhdG9yLT52YWx1ZS0+
YXBwZW5kVmVjdG9yKCprZXlWYWx1ZVBhaXIudmFsdWUpOworICAgICAgICB9CisgICAgfTsKIAot
ICAgIGZvciAoYXV0byYga2V5VmFsdWVQYWlyIDogb3RoZXIuY2xhc3NSdWxlcykgewotICAgICAg
ICBjbGFzc1J1bGVzLmVuc3VyZShrZXlWYWx1ZVBhaXIua2V5LCBbXSB7Ci0gICAgICAgICAgICBy
ZXR1cm4gbWFrZVVuaXF1ZTxSdWxlRmVhdHVyZVZlY3Rvcj4oKTsKLSAgICAgICAgfSkuaXRlcmF0
b3ItPnZhbHVlLT5hcHBlbmRWZWN0b3IoKmtleVZhbHVlUGFpci52YWx1ZSk7Ci0gICAgfQorICAg
IGFkZE1hcCh0YWdSdWxlcywgb3RoZXIudGFnUnVsZXMpOworICAgIGFkZE1hcChpZFJ1bGVzLCBv
dGhlci5pZFJ1bGVzKTsKKworICAgIGFkZE1hcChjbGFzc1J1bGVzLCBvdGhlci5jbGFzc1J1bGVz
KTsKICAgICBjbGFzc2VzQWZmZWN0aW5nSG9zdC5hZGQob3RoZXIuY2xhc3Nlc0FmZmVjdGluZ0hv
c3QuYmVnaW4oKSwgb3RoZXIuY2xhc3Nlc0FmZmVjdGluZ0hvc3QuZW5kKCkpOwogCi0gICAgZm9y
IChhdXRvJiBrZXlWYWx1ZVBhaXIgOiBvdGhlci5hdHRyaWJ1dGVSdWxlcykgewotICAgICAgICBh
dHRyaWJ1dGVSdWxlcy5lbnN1cmUoa2V5VmFsdWVQYWlyLmtleSwgW10gewotICAgICAgICAgICAg
cmV0dXJuIG1ha2VVbmlxdWU8VmVjdG9yPFJ1bGVGZWF0dXJlV2l0aEludmFsaWRhdGlvblNlbGVj
dG9yPj4oKTsKLSAgICAgICAgfSkuaXRlcmF0b3ItPnZhbHVlLT5hcHBlbmRWZWN0b3IoKmtleVZh
bHVlUGFpci52YWx1ZSk7Ci0gICAgfQorICAgIGFkZE1hcChhdHRyaWJ1dGVSdWxlcywgb3RoZXIu
YXR0cmlidXRlUnVsZXMpOwogICAgIGF0dHJpYnV0ZXNBZmZlY3RpbmdIb3N0LmFkZChvdGhlci5h
dHRyaWJ1dGVzQWZmZWN0aW5nSG9zdC5iZWdpbigpLCBvdGhlci5hdHRyaWJ1dGVzQWZmZWN0aW5n
SG9zdC5lbmQoKSk7CiAKLSAgICBmb3IgKGF1dG8mIGtleVZhbHVlUGFpciA6IG90aGVyLnBzZXVk
b0NsYXNzUnVsZXMpIHsKLSAgICAgICAgcHNldWRvQ2xhc3NSdWxlcy5lbnN1cmUoa2V5VmFsdWVQ
YWlyLmtleSwgW10gewotICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8UnVsZUZlYXR1cmVW
ZWN0b3I+KCk7Ci0gICAgICAgIH0pLml0ZXJhdG9yLT52YWx1ZS0+YXBwZW5kVmVjdG9yKCprZXlW
YWx1ZVBhaXIudmFsdWUpOwotICAgIH0KKyAgICBhZGRNYXAocHNldWRvQ2xhc3NSdWxlcywgb3Ro
ZXIucHNldWRvQ2xhc3NSdWxlcyk7CiAgICAgcHNldWRvQ2xhc3Nlc0FmZmVjdGluZ0hvc3QuYWRk
KG90aGVyLnBzZXVkb0NsYXNzZXNBZmZlY3RpbmdIb3N0LmJlZ2luKCksIG90aGVyLnBzZXVkb0Ns
YXNzZXNBZmZlY3RpbmdIb3N0LmVuZCgpKTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
dXNlZE1hdGNoRWxlbWVudHMuc2l6ZSgpOyArK2kpCkBAIC0zMzksNiArMzM0LDcgQEAgdm9pZCBS
dWxlRmVhdHVyZVNldDo6Y2xlYXIoKQogICAgIHNpYmxpbmdSdWxlcy5jbGVhcigpOwogICAgIHVu
Y29tbW9uQXR0cmlidXRlUnVsZXMuY2xlYXIoKTsKICAgICB0YWdSdWxlcy5jbGVhcigpOworICAg
IGlkUnVsZXMuY2xlYXIoKTsKICAgICBjbGFzc1J1bGVzLmNsZWFyKCk7CiAgICAgY2xhc3Nlc0Fm
ZmVjdGluZ0hvc3QuY2xlYXIoKTsKICAgICBhdHRyaWJ1dGVSdWxlcy5jbGVhcigpOwpAQCAtMzU1
LDYgKzM1MSw4IEBAIHZvaWQgUnVsZUZlYXR1cmVTZXQ6OnNocmlua1RvRml0KCkKICAgICB1bmNv
bW1vbkF0dHJpYnV0ZVJ1bGVzLnNocmlua1RvRml0KCk7CiAgICAgZm9yIChhdXRvJiBydWxlcyA6
IHRhZ1J1bGVzLnZhbHVlcygpKQogICAgICAgICBydWxlcy0+c2hyaW5rVG9GaXQoKTsKKyAgICBm
b3IgKGF1dG8mIHJ1bGVzIDogaWRSdWxlcy52YWx1ZXMoKSkKKyAgICAgICAgcnVsZXMtPnNocmlu
a1RvRml0KCk7CiAgICAgZm9yIChhdXRvJiBydWxlcyA6IGNsYXNzUnVsZXMudmFsdWVzKCkpCiAg
ICAgICAgIHJ1bGVzLT5zaHJpbmtUb0ZpdCgpOwogICAgIGZvciAoYXV0byYgcnVsZXMgOiBhdHRy
aWJ1dGVSdWxlcy52YWx1ZXMoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1
bGVGZWF0dXJlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlRmVhdHVyZS5oCmluZGV4IDhh
MTI5ZmVkMzA3ZGZmMzExMWU2ZGMwM2NkNDhlYjA5M2M2ZTFkNTcuLjc2NTljZTE5YzhkYmY3MGUy
OGY3ODhlMDQxNmQxNjlkYjZhYWY5M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1J1bGVGZWF0dXJlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZUZlYXR1cmUuaApA
QCAtNzksNiArNzksNyBAQCBzdHJ1Y3QgUnVsZUZlYXR1cmVTZXQgewogICAgIFJ1bGVGZWF0dXJl
VmVjdG9yIHVuY29tbW9uQXR0cmlidXRlUnVsZXM7CiAKICAgICBIYXNoTWFwPEF0b21TdHJpbmcs
IHN0ZDo6dW5pcXVlX3B0cjxSdWxlRmVhdHVyZVZlY3Rvcj4+IHRhZ1J1bGVzOworICAgIEhhc2hN
YXA8QXRvbVN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFJ1bGVGZWF0dXJlVmVjdG9yPj4gaWRSdWxl
czsKICAgICBIYXNoTWFwPEF0b21TdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxSdWxlRmVhdHVyZVZl
Y3Rvcj4+IGNsYXNzUnVsZXM7CiAgICAgSGFzaE1hcDxBdG9tU3RyaW5nLCBzdGQ6OnVuaXF1ZV9w
dHI8VmVjdG9yPFJ1bGVGZWF0dXJlV2l0aEludmFsaWRhdGlvblNlbGVjdG9yPj4+IGF0dHJpYnV0
ZVJ1bGVzOwogICAgIEhhc2hNYXA8Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZSwgc3RkOjp1
bmlxdWVfcHRyPFJ1bGVGZWF0dXJlVmVjdG9yPiwgSW50SGFzaDxDU1NTZWxlY3Rvcjo6UHNldWRv
Q2xhc3NUeXBlPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxDU1NTZWxlY3Rvcjo6UHNldWRv
Q2xhc3NUeXBlPj4gcHNldWRvQ2xhc3NSdWxlczsKQEAgLTk2LDYgKzk3LDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgYm9vbCBoYXNTaWJsaW5nU2VsZWN0b3IgeyBmYWxzZSB9OwogCiAgICAgICAgIFZl
Y3RvcjxzdGQ6OnBhaXI8QXRvbVN0cmluZywgTWF0Y2hFbGVtZW50PiwgMzI+IHRhZ3M7CisgICAg
ICAgIFZlY3RvcjxzdGQ6OnBhaXI8QXRvbVN0cmluZywgTWF0Y2hFbGVtZW50PiwgMzI+IGlkczsK
ICAgICAgICAgVmVjdG9yPHN0ZDo6cGFpcjxBdG9tU3RyaW5nLCBNYXRjaEVsZW1lbnQ+LCAzMj4g
Y2xhc3NlczsKICAgICAgICAgVmVjdG9yPHN0ZDo6cGFpcjxjb25zdCBDU1NTZWxlY3RvciosIE1h
dGNoRWxlbWVudD4sIDMyPiBhdHRyaWJ1dGVzOwogICAgICAgICBWZWN0b3I8c3RkOjpwYWlyPENT
U1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUsIE1hdGNoRWxlbWVudD4sIDMyPiBwc2V1ZG9DbGFz
c2VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHAKaW5kZXgg
YzhiYjAyMmUxNjNlYTA0ZTQ0ZDk2Y2M1ODEwZjliMzVlZTViZDE4YS4uNGY5YTBkNDEyMjQ3ZDZm
YjllZThjZjBhZGE3YTg2MjAzN2Q4MzFlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZVNjb3BlUnVsZVNldHMuY3BwCkBAIC0yMjEsNiArMjIxLDcgQEAgdm9pZCBTY29wZVJ1bGVTZXRz
Ojpjb2xsZWN0RmVhdHVyZXMoKSBjb25zdAogICAgIG1fdW5jb21tb25BdHRyaWJ1dGVSdWxlU2V0
ID0gbWFrZVJ1bGVTZXQobV9mZWF0dXJlcy51bmNvbW1vbkF0dHJpYnV0ZVJ1bGVzKTsKIAogICAg
IG1fdGFnSW52YWxpZGF0aW9uUnVsZVNldHMuY2xlYXIoKTsKKyAgICBtX2lkSW52YWxpZGF0aW9u
UnVsZVNldHMuY2xlYXIoKTsKICAgICBtX2NsYXNzSW52YWxpZGF0aW9uUnVsZVNldHMuY2xlYXIo
KTsKICAgICBtX2F0dHJpYnV0ZUludmFsaWRhdGlvblJ1bGVTZXRzLmNsZWFyKCk7CiAgICAgbV9w
c2V1ZG9DbGFzc0ludmFsaWRhdGlvblJ1bGVTZXRzLmNsZWFyKCk7CkBAIC0yNzksNiArMjgwLDEx
IEBAIGNvbnN0IFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0PiogU2NvcGVSdWxlU2V0czo6dGFn
SW52YWxpZGF0aW9uUnVsZVNldHMoY29uc3QKICAgICByZXR1cm4gZW5zdXJlSW52YWxpZGF0aW9u
UnVsZVNldHModGFnTmFtZSwgbV90YWdJbnZhbGlkYXRpb25SdWxlU2V0cywgbV9mZWF0dXJlcy50
YWdSdWxlcyk7CiB9CiAKK2NvbnN0IFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0PiogU2NvcGVS
dWxlU2V0czo6aWRJbnZhbGlkYXRpb25SdWxlU2V0cyhjb25zdCBBdG9tU3RyaW5nJiBpZCkgY29u
c3QKK3sKKyAgICByZXR1cm4gZW5zdXJlSW52YWxpZGF0aW9uUnVsZVNldHMoaWQsIG1faWRJbnZh
bGlkYXRpb25SdWxlU2V0cywgbV9mZWF0dXJlcy5pZFJ1bGVzKTsKK30KKwogY29uc3QgVmVjdG9y
PEludmFsaWRhdGlvblJ1bGVTZXQ+KiBTY29wZVJ1bGVTZXRzOjpjbGFzc0ludmFsaWRhdGlvblJ1
bGVTZXRzKGNvbnN0IEF0b21TdHJpbmcmIGNsYXNzTmFtZSkgY29uc3QKIHsKICAgICByZXR1cm4g
ZW5zdXJlSW52YWxpZGF0aW9uUnVsZVNldHMoY2xhc3NOYW1lLCBtX2NsYXNzSW52YWxpZGF0aW9u
UnVsZVNldHMsIG1fZmVhdHVyZXMuY2xhc3NSdWxlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlU2NvcGVSdWxlU2V0cy5oCmluZGV4IGUyNWJjMTE0N2RmMGYyYzFjNTZkZTliZWRjMTljMTRj
MmViOGZlOWIuLmMxMjMxMzg3ZGEyNDBjYWI5ZDY4NzJlMTcyZDQ5NzA2ZWZiY2VjN2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5oCkBAIC02Myw5ICs2MywxMCBA
QCBwdWJsaWM6CiAgICAgUnVsZVNldCogc2libGluZygpIGNvbnN0IHsgcmV0dXJuIG1fc2libGlu
Z1J1bGVTZXQuZ2V0KCk7IH0KICAgICBSdWxlU2V0KiB1bmNvbW1vbkF0dHJpYnV0ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fdW5jb21tb25BdHRyaWJ1dGVSdWxlU2V0LmdldCgpOyB9CiAKLSAgICBjb25z
dCBWZWN0b3I8SW52YWxpZGF0aW9uUnVsZVNldD4qIHRhZ0ludmFsaWRhdGlvblJ1bGVTZXRzKGNv
bnN0IEF0b21TdHJpbmcmIHRhZ05hbWUpIGNvbnN0OwotICAgIGNvbnN0IFZlY3RvcjxJbnZhbGlk
YXRpb25SdWxlU2V0PiogY2xhc3NJbnZhbGlkYXRpb25SdWxlU2V0cyhjb25zdCBBdG9tU3RyaW5n
JiBjbGFzc05hbWUpIGNvbnN0OwotICAgIGNvbnN0IFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0
PiogYXR0cmlidXRlSW52YWxpZGF0aW9uUnVsZVNldHMoY29uc3QgQXRvbVN0cmluZyYgYXR0cmli
dXRlTmFtZSkgY29uc3Q7CisgICAgY29uc3QgVmVjdG9yPEludmFsaWRhdGlvblJ1bGVTZXQ+KiB0
YWdJbnZhbGlkYXRpb25SdWxlU2V0cyhjb25zdCBBdG9tU3RyaW5nJikgY29uc3Q7CisgICAgY29u
c3QgVmVjdG9yPEludmFsaWRhdGlvblJ1bGVTZXQ+KiBpZEludmFsaWRhdGlvblJ1bGVTZXRzKGNv
bnN0IEF0b21TdHJpbmcmKSBjb25zdDsKKyAgICBjb25zdCBWZWN0b3I8SW52YWxpZGF0aW9uUnVs
ZVNldD4qIGNsYXNzSW52YWxpZGF0aW9uUnVsZVNldHMoY29uc3QgQXRvbVN0cmluZyYpIGNvbnN0
OworICAgIGNvbnN0IFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0PiogYXR0cmlidXRlSW52YWxp
ZGF0aW9uUnVsZVNldHMoY29uc3QgQXRvbVN0cmluZyYpIGNvbnN0OwogICAgIGNvbnN0IFZlY3Rv
cjxJbnZhbGlkYXRpb25SdWxlU2V0PiogcHNldWRvQ2xhc3NJbnZhbGlkYXRpb25SdWxlU2V0cyhD
U1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlKSBjb25zdDsKIAogICAgIGNvbnN0IFZlY3RvcjxJ
bnZhbGlkYXRpb25SdWxlU2V0PiogaW52YWxpZGF0aW9uUnVsZVNldHNGb3JDaGlsZENoYW5nZShj
b25zdCBFbGVtZW50Jik7CkBAIC0xMDIsNiArMTAzLDcgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxl
IFJlZlB0cjxSdWxlU2V0PiBtX3NpYmxpbmdSdWxlU2V0OwogICAgIG11dGFibGUgUmVmUHRyPFJ1
bGVTZXQ+IG1fdW5jb21tb25BdHRyaWJ1dGVSdWxlU2V0OwogICAgIG11dGFibGUgSGFzaE1hcDxB
dG9tU3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPEludmFsaWRhdGlvblJ1bGVTZXQ+Pj4g
bV90YWdJbnZhbGlkYXRpb25SdWxlU2V0czsKKyAgICBtdXRhYmxlIEhhc2hNYXA8QXRvbVN0cmlu
Zywgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0Pj4+IG1faWRJbnZh
bGlkYXRpb25SdWxlU2V0czsKICAgICBtdXRhYmxlIEhhc2hNYXA8QXRvbVN0cmluZywgc3RkOjp1
bmlxdWVfcHRyPFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0Pj4+IG1fY2xhc3NJbnZhbGlkYXRp
b25SdWxlU2V0czsKICAgICBtdXRhYmxlIEhhc2hNYXA8QXRvbVN0cmluZywgc3RkOjp1bmlxdWVf
cHRyPFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0Pj4+IG1fYXR0cmlidXRlSW52YWxpZGF0aW9u
UnVsZVNldHM7CiAgICAgbXV0YWJsZSBIYXNoTWFwPENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5
cGUsIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8SW52YWxpZGF0aW9uUnVsZVNldD4+LCBJbnRIYXNo
PENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGU+LCBXVEY6OlN0cm9uZ0VudW1IYXNoVHJhaXRz
PENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGU+PiBtX3BzZXVkb0NsYXNzSW52YWxpZGF0aW9u
UnVsZVNldHM7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBmOTM5OWEyNTRmY2Y4
MzJlNWYyNDc1YTllMjBkMzY3MzQyYWM4NGE1Li45NTgxNzNlZTU5ZGQ2ODU1ZGU0MGYwNDc1NWQ5
OTBjMDBkN2JiN2JiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MiBAQAorMjAyMS0xMS0yOSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAg
ICAgICAgWzpoYXMoKSBwc2V1ZG8tY2xhc3NdIGlkIGludmFsaWRhdGlvbiBzdXBwb3J0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM1NTcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ludmFsaWRhdGlvbi9hdHRyaWJ1dGUtb3ItZWxlbWVudGFs
LXNlbGVjdG9ycy1pbi1oYXMtZXhwZWN0ZWQudHh0OgorCiAyMDIxLTExLTI2ICBUaW0gTmd1eWVu
ICA8bnRpbUBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGRpYWxvZyBmb2N1c2luZyBzdGVw
cyBpbmVydC9kaXNjb25uZWN0ZWQgaGFuZGxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL3NlbGVjdG9ycy9pbnZhbGlkYXRpb24v
YXR0cmlidXRlLW9yLWVsZW1lbnRhbC1zZWxlY3RvcnMtaW4taGFzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL3NlbGVjdG9ycy9p
bnZhbGlkYXRpb24vYXR0cmlidXRlLW9yLWVsZW1lbnRhbC1zZWxlY3RvcnMtaW4taGFzLWV4cGVj
dGVkLnR4dAppbmRleCA3NjI1YjgyZWU0NDFkYzg0MjdiOGI4ZmZkMTE1MmUwMThmZjk0NzQwLi5k
MGViY2E0MDg3MTI2NTI3NTk3ZGY4MDIwNmE1MGEzZTg3MGEyMjk0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvaW52
YWxpZGF0aW9uL2F0dHJpYnV0ZS1vci1lbGVtZW50YWwtc2VsZWN0b3JzLWluLWhhcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3Mvc2VsZWN0b3JzL2ludmFsaWRhdGlvbi9hdHRyaWJ1dGUtb3ItZWxlbWVudGFsLXNlbGVjdG9y
cy1pbi1oYXMtZXhwZWN0ZWQudHh0CkBAIC0xMiw3ICsxMiw3IEBAIFBBU1MgYWRkIC5kZXNjZW5k
YW50IHRvICNkaXZfZ3JhbmRjaGlsZDogZGl2I2Rpdl9zdWJqZWN0LmNvbG9yCiBQQVNTIHJlbW92
ZSAuZGVzY2VuZGFudCBmcm9tICNkaXZfZ3JhbmRjaGlsZDogZGl2I2Rpdl9zdWJqZWN0LmNvbG9y
CiBQQVNTIHNldCBkZXNjZW5kYW50IHRvICNkaXZfZ3JhbmRjaGlsZFthdHRybmFtZV06IGRpdiNk
aXZfc3ViamVjdC5jb2xvcgogUEFTUyBjbGVhciAjZGl2X2dyYW5kY2hpbGRbYXR0cm5hbWVdOiBk
aXYjZGl2X3N1YmplY3QuY29sb3IKLUZBSUwgY2hhbmdlICNkaXZfZ3JhbmRjaGlsZCB0byAjZGl2
X2Rlc2NlbmRhbnQ6IGRpdiNkaXZfc3ViamVjdC5jb2xvciBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAicmdiKDI1NSwgMjU1LCAwKSIgYnV0IGdvdCAicmdiKDEyOCwgMTI4LCAxMjgpIgorUEFTUyBj
aGFuZ2UgI2Rpdl9ncmFuZGNoaWxkIHRvICNkaXZfZGVzY2VuZGFudDogZGl2I2Rpdl9zdWJqZWN0
LmNvbG9yCiBQQVNTIGNoYW5nZSAjZGl2X2Rlc2NlbmRhbnQgdG8gI2Rpdl9ncmFuZGNoaWxkOiBk
aXYjZGl2X3N1YmplY3QuY29sb3IKIFBBU1MgYWRkIGRlc2NlbmRhbnQgdG8gI2Rpdl9zdWJqZWN0
OiBkaXYjZGl2X3N1YmplY3QuY29sb3IKIFBBU1MgcmVtb3ZlIGRlc2NlbmRhbnQgZnJvbSAjZGl2
X3N1YmplY3Q6IGRpdiNkaXZfc3ViamVjdC5jb2xvcgpAQCAtMjIsOSArMjIsOSBAQCBQQVNTIGFk
ZCBkaXYuY2hpbGQgdG8gI2Rpdl9zdWJqZWN0OiBkaXYjZGl2X3N1YmplY3QuY29sb3IKIFBBU1Mg
cmVtb3ZlIGRpdi5jaGlsZCBmcm9tICNkaXZfc3ViamVjdDogZGl2I2Rpdl9zdWJqZWN0LmNvbG9y
CiBQQVNTIGFkZCAiZGl2ID4gZGl2LmRlc2NlbmRhbnQiIHRvICNkaXZfc3ViamVjdDogZGl2I2Rp
dl9zdWJqZWN0LmNvbG9yCiBQQVNTIHJlbW92ZSAiZGl2ID4gZGl2LmRlc2NlbmRhbnQiIGZyb20g
I2Rpdl9zdWJqZWN0OiBkaXYjZGl2X3N1YmplY3QuY29sb3IKLUZBSUwgYWRkIGRpdiNkaXZfZGVz
Y2VuZGFudCB0byAjZGl2X3N1YmplY3Q6IGRpdiNkaXZfc3ViamVjdC5jb2xvciBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCAicmdiKDI1NSwgMjU1LCAwKSIgYnV0IGdvdCAicmdiKDEyOCwgMTI4LCAx
MjgpIgorUEFTUyBhZGQgZGl2I2Rpdl9kZXNjZW5kYW50IHRvICNkaXZfc3ViamVjdDogZGl2I2Rp
dl9zdWJqZWN0LmNvbG9yCiBQQVNTIHJlbW92ZSBkaXYjZGl2X2Rlc2NlbmRhbnQgZnJvbSAjZGl2
X3N1YmplY3Q6IGRpdiNkaXZfc3ViamVjdC5jb2xvcgotRkFJTCBhZGQgImRpdiNkaXZfZGVzY2Vu
ZGFudCIgdG8gI2Rpdl9zdWJqZWN0OiBkaXYjZGl2X3N1YmplY3QuY29sb3IgYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgInJnYigyNTUsIDI1NSwgMCkiIGJ1dCBnb3QgInJnYigxMjgsIDEyOCwgMTI4
KSIKK1BBU1MgYWRkICJkaXYjZGl2X2Rlc2NlbmRhbnQiIHRvICNkaXZfc3ViamVjdDogZGl2I2Rp
dl9zdWJqZWN0LmNvbG9yCiBQQVNTIHJlbW92ZSAiZGl2I2Rpdl9kZXNjZW5kYW50IiBmcm9tICNk
aXZfc3ViamVjdDogZGl2I2Rpdl9zdWJqZWN0LmNvbG9yCiBQQVNTIGFkZCBkaXZbYXR0cm5hbWVd
IHRvICNkaXZfc3ViamVjdDogZGl2I2Rpdl9zdWJqZWN0LmNvbG9yCiBQQVNTIHJlbW92ZSBkaXZb
YXR0cm5hbWVdIGZyb20gI2Rpdl9zdWJqZWN0OiBkaXYjZGl2X3N1YmplY3QuY29sb3IK
</data>

          </attachment>
      

    </bug>

</bugzilla>