<?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>226369</bug_id>
          
          <creation_ts>2021-05-28 02:16:01 -0700</creation_ts>
          <short_desc>REGRESSION(r276882): Style not invalidated correctly for media queries in shadow trees that share style</short_desc>
          <delta_ts>2021-06-02 05:05:00 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=226530</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1764714</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-05-28 02:16:01 -0700</bug_when>
    <thetext>We now share style resolvers between shadow trees with identical styles. Media queries should be evaluated once per resolver, not once per shadow tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764716</commentid>
    <comment_count>1</comment_count>
      <attachid>429997</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-05-28 02:21:09 -0700</bug_when>
    <thetext>Created attachment 429997
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765388</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-31 04:53:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/78684562&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765389</commentid>
    <comment_count>3</comment_count>
      <attachid>430197</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-05-31 05:06:31 -0700</bug_when>
    <thetext>Created attachment 430197
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765630</commentid>
    <comment_count>4</comment_count>
      <attachid>430197</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-06-01 09:17:16 -0700</bug_when>
    <thetext>Comment on attachment 430197
patch

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

&gt; Source/WebCore/style/StyleScope.cpp:684
&gt; +    auto resolverScopes = collectResolverScopes();
&gt; +    for (auto&amp; resolverAndScopes : resolverScopes) {
&gt; +        auto&amp; resolver = resolverAndScopes.key.get();
&gt; +        auto&amp; scopes = resolverAndScopes.value;

I think you can write this:

for (auto&amp; [resolver, scopes] : collectResolverScopes()) {

(though you will then have to call .get() on the resolver below).

&gt; Source/WebCore/style/StyleScope.cpp:691
&gt; +        for (auto&amp; scope : scopes) {

As these scopes are WeakPtrs, what is guaranteeing they are alive? Do they really have to be WeakPtrs? Given how short lived this Vector is, could they Ref&lt;&gt;s? Should you be null checking them?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765632</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-06-01 09:21:35 -0700</bug_when>
    <thetext>&gt; As these scopes are WeakPtrs, what is guaranteeing they are alive? Do they
&gt; really have to be WeakPtrs? Given how short lived this Vector is, could they
&gt; Ref&lt;&gt;s? Should you be null checking them?

Logically they are guaranteed to be non-null. I&apos;m just using WeakPtrs defensively here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765642</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-06-01 09:38:02 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #5)
&gt; &gt; As these scopes are WeakPtrs, what is guaranteeing they are alive? Do they
&gt; &gt; really have to be WeakPtrs? Given how short lived this Vector is, could they
&gt; &gt; Ref&lt;&gt;s? Should you be null checking them?
&gt; 
&gt; Logically they are guaranteed to be non-null. I&apos;m just using WeakPtrs
&gt; defensively here.

I guess we can&apos;t use Refs as they are not reference counted. It&apos;s going to take me some time (if ever) to become comfortable with defensive use of WeakPtr :(.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765710</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-06-01 12:55:54 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #6)
&gt; (In reply to Antti Koivisto from comment #5)
&gt; &gt; &gt; As these scopes are WeakPtrs, what is guaranteeing they are alive? Do they
&gt; &gt; &gt; really have to be WeakPtrs? Given how short lived this Vector is, could they
&gt; &gt; &gt; Ref&lt;&gt;s? Should you be null checking them?
&gt; &gt; 
&gt; &gt; Logically they are guaranteed to be non-null. I&apos;m just using WeakPtrs
&gt; &gt; defensively here.
&gt; 
&gt; I guess we can&apos;t use Refs as they are not reference counted. It&apos;s going to
&gt; take me some time (if ever) to become comfortable with defensive use of
&gt; WeakPtr :(.

I&apos;m adding CheckedPtr for this exact use case: https://bugs.webkit.org/show_bug.cgi?id=226158</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765914</commentid>
    <comment_count>8</comment_count>
      <attachid>430328</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-06-02 01:41:32 -0700</bug_when>
    <thetext>Created attachment 430328
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765923</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-02 02:41:51 -0700</bug_when>
    <thetext>Committed r278346 (238378@main): &lt;https://commits.webkit.org/238378@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430328.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429997</attachid>
            <date>2021-05-28 02:21:09 -0700</date>
            <delta_ts>2021-05-31 05:06:31 -0700</delta_ts>
            <desc>patch</desc>
            <filename>style-resolver-traverse-once.patch</filename>
            <type>text/plain</type>
            <size>4152</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxN2M3YTgyOWE3MzAuLmMxNzI3ODFjZmQzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI1IEBACisyMDIxLTA1LTI4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KKworICAgICAgICBNZWRpYSBxdWVyaWVzIHNob3VsZCBiZSBldmFsdWF0ZWQgb25seSBvbmNl
IHBlciBzdHlsZSByZXNvbHZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI2MzY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2Ugbm93IHNoYXJlIHN0eWxlIHJlc29sdmVycyBiZXR3ZWVuIHNoYWRvdyB0
cmVlcyB3aXRoIGlkZW50aWNhbCBzdHlsZXMuCisgICAgICAgIE1lZGlhIHF1ZXJpZXMgbmVlZCB0
byBiZSBldmFsdWF0ZWQgb25jZSBwZXIgcmVzb2x2ZXIsIG5vdCBvbmNlIHBlciBzaGFkb3cgdHJl
ZS4KKworICAgICAgICAqIHN0eWxlL1N0eWxlU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGU6OlNjb3BlOjpmb3JBbGxTdHlsZVJlc29sdmVycyk6CisKKyAgICAgICAgQWRkIGEgaGVs
cGVyIGZvciB0cmF2ZXJzaW5nIHN0eWxlIHJlc29sdmVzIG9ubHkgb25jZS4KKworICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OlNjb3BlOjpldmFsdWF0ZU1lZGlhUXVlcmllcyk6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZTo6U2NvcGU6OmludmFsaWRhdGVNYXRjaGVkRGVjbGFyYXRpb25zQ2FjaGUp
OgorCisgICAgICAgIFVzZSBpdC4KKworICAgICAgICAqIHN0eWxlL1N0eWxlU2NvcGUuaDoKKwog
MjAyMS0wNS0yNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbbWFjT1NdIFNob3cgY29udGV4dCBtZW51IHdoZW4gY2xpY2tpbmcgb24gZGF0YSBkZXRl
Y3Rpb24gcmVzdWx0cyBpbiBpbWFnZSBvdmVybGF5cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3Bl
LmNwcAppbmRleCBiYWZjZWI4MGY5Y2QuLjc1OWYwMWUzYmI3NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVTY29wZS5jcHAKQEAgLTY1MiwxNSArNjUyLDMyIEBAIHZvaWQgU2NvcGU6OmV2YWx1YXRl
TWVkaWFRdWVyaWVzRm9yQXBwZWFyYW5jZUNoYW5nZSgpCiAgICAgfSk7CiB9CiAKLXRlbXBsYXRl
IDx0eXBlbmFtZSBUZXN0RnVuY3Rpb24+Ci12b2lkIFNjb3BlOjpldmFsdWF0ZU1lZGlhUXVlcmll
cyhUZXN0RnVuY3Rpb24mJiB0ZXN0RnVuY3Rpb24pCit0ZW1wbGF0ZSA8dHlwZW5hbWUgRnVuY3Rp
b24+Cit2b2lkIFNjb3BlOjpmb3JBbGxTdHlsZVJlc29sdmVycyhGdW5jdGlvbiYmIGZ1bmN0aW9u
KQogewotICAgIGF1dG8qIHJlc29sdmVyID0gcmVzb2x2ZXJJZkV4aXN0cygpOwotICAgIGlmICgh
cmVzb2x2ZXIpCisgICAgQVNTRVJUKCFtX3NoYWRvd1Jvb3QpOworCisgICAgaWYgKCFyZXNvbHZl
cklmRXhpc3RzKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gZXZhbHVhdGlvbkNoYW5n
ZXMgPSB0ZXN0RnVuY3Rpb24oKnJlc29sdmVyKTsKLSAgICBpZiAoZXZhbHVhdGlvbkNoYW5nZXMp
IHsKKyAgICBmdW5jdGlvbigqcmVzb2x2ZXJJZkV4aXN0cygpKTsKKworICAgIEhhc2hTZXQ8UmVz
b2x2ZXIqPiBzZWVuUmVzb2x2ZXI7CisgICAgZm9yIChhdXRvKiBzaGFkb3dSb290IDogbV9kb2N1
bWVudC5pbkRvY3VtZW50U2hhZG93Um9vdHMoKSkgeworICAgICAgICBhdXRvKiByZXNvbHZlciA9
IHNoYWRvd1Jvb3QtPnN0eWxlU2NvcGUoKS5yZXNvbHZlcklmRXhpc3RzKCk7CisgICAgICAgIGlm
ICghcmVzb2x2ZXIgfHwgIXNlZW5SZXNvbHZlci5hZGQocmVzb2x2ZXIpLmlzTmV3RW50cnkpCisg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgZnVuY3Rpb24oKnJlc29sdmVyKTsKKyAgICB9
Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUZXN0RnVuY3Rpb24+Cit2b2lkIFNjb3BlOjpldmFs
dWF0ZU1lZGlhUXVlcmllcyhUZXN0RnVuY3Rpb24mJiB0ZXN0RnVuY3Rpb24pCit7CisgICAgZm9y
QWxsU3R5bGVSZXNvbHZlcnMoWyZdKGF1dG8mIHJlc29sdmVyKSB7CisgICAgICAgIGF1dG8gZXZh
bHVhdGlvbkNoYW5nZXMgPSB0ZXN0RnVuY3Rpb24ocmVzb2x2ZXIpOworICAgICAgICBpZiAoIWV2
YWx1YXRpb25DaGFuZ2VzKQorICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBzd2l0Y2ggKGV2
YWx1YXRpb25DaGFuZ2VzLT50eXBlKSB7CiAgICAgICAgIGNhc2UgRHluYW1pY01lZGlhUXVlcnlF
dmFsdWF0aW9uQ2hhbmdlczo6VHlwZTo6SW52YWxpZGF0ZVN0eWxlOiB7CiAgICAgICAgICAgICBJ
bnZhbGlkYXRvciBpbnZhbGlkYXRvcihldmFsdWF0aW9uQ2hhbmdlcy0+aW52YWxpZGF0aW9uUnVs
ZVNldHMpOwpAQCAtNjczLDEyICs2OTAsNyBAQCB2b2lkIFNjb3BlOjpldmFsdWF0ZU1lZGlhUXVl
cmllcyhUZXN0RnVuY3Rpb24mJiB0ZXN0RnVuY3Rpb24pCiAgICAgICAgIH0KIAogICAgICAgICBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246Om1lZGlhUXVlcnlSZXN1bHRDaGFuZ2VkKG1fZG9jdW1l
bnQpOwotICAgIH0KLQotICAgIGlmICghbV9zaGFkb3dSb290KSB7Ci0gICAgICAgIGZvciAoYXV0
byogZGVzY2VuZGFudFNoYWRvd1Jvb3QgOiBtX2RvY3VtZW50LmluRG9jdW1lbnRTaGFkb3dSb290
cygpKQotICAgICAgICAgICAgZGVzY2VuZGFudFNoYWRvd1Jvb3QtPnN0eWxlU2NvcGUoKS5ldmFs
dWF0ZU1lZGlhUXVlcmllcyh0ZXN0RnVuY3Rpb24pOwotICAgIH0KKyAgICB9KTsKIH0KIAogdm9p
ZCBTY29wZTo6ZGlkQ2hhbmdlQWN0aXZlU3R5bGVTaGVldENhbmRpZGF0ZXMoKQpAQCAtNzA3LDEz
ICs3MTksOSBAQCB2b2lkIFNjb3BlOjpkaWRDaGFuZ2VTdHlsZVNoZWV0RW52aXJvbm1lbnQoKQog
CiB2b2lkIFNjb3BlOjppbnZhbGlkYXRlTWF0Y2hlZERlY2xhcmF0aW9uc0NhY2hlKCkKIHsKLSAg
ICBpZiAoIW1fc2hhZG93Um9vdCkgewotICAgICAgICBmb3IgKGF1dG8qIGRlc2NlbmRhbnRTaGFk
b3dSb290IDogbV9kb2N1bWVudC5pbkRvY3VtZW50U2hhZG93Um9vdHMoKSkKLSAgICAgICAgICAg
IGRlc2NlbmRhbnRTaGFkb3dSb290LT5zdHlsZVNjb3BlKCkuaW52YWxpZGF0ZU1hdGNoZWREZWNs
YXJhdGlvbnNDYWNoZSgpOwotICAgIH0KLQotICAgIGlmIChhdXRvKiByZXNvbHZlciA9IHJlc29s
dmVySWZFeGlzdHMoKSkKLSAgICAgICAgcmVzb2x2ZXItPmludmFsaWRhdGVNYXRjaGVkRGVjbGFy
YXRpb25zQ2FjaGUoKTsKKyAgICBmb3JBbGxTdHlsZVJlc29sdmVycyhbJl0oYXV0byYgcmVzb2x2
ZXIpIHsKKyAgICAgICAgcmVzb2x2ZXIuaW52YWxpZGF0ZU1hdGNoZWREZWNsYXJhdGlvbnNDYWNo
ZSgpOworICAgIH0pOwogfQogCiBjb25zdCBWZWN0b3I8UmVmUHRyPFN0eWxlU2hlZXQ+PiYgU2Nv
cGU6OnN0eWxlU2hlZXRzRm9yU3R5bGVTaGVldExpc3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29w
ZS5oCmluZGV4IGJhNzY3MmRkMDg0MC4uNzI5MjcwMzI1YzI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVTY29wZS5oCkBAIC0xMzMsNiArMTMzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUFj
dGl2ZVN0eWxlU2hlZXRzKFVwZGF0ZVR5cGUpOwogICAgIHZvaWQgc2NoZWR1bGVVcGRhdGUoVXBk
YXRlVHlwZSk7CiAKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRnVuY3Rpb24+IHZvaWQgZm9yQWxs
U3R5bGVSZXNvbHZlcnMoRnVuY3Rpb24mJik7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFRlc3RG
dW5jdGlvbj4gdm9pZCBldmFsdWF0ZU1lZGlhUXVlcmllcyhUZXN0RnVuY3Rpb24mJik7CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZsdXNoUGVuZGluZ1NlbGZVcGRhdGUoKTsK
</data>
<flag name="commit-queue"
          id="451315"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430197</attachid>
            <date>2021-05-31 05:06:31 -0700</date>
            <delta_ts>2021-06-02 01:41:32 -0700</delta_ts>
            <desc>patch</desc>
            <filename>media-query-invalidation-sharing.patch</filename>
            <type>text/plain</type>
            <size>10214</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzZDY0Y2QyNDRlNTEuLjFmN2NkYTgwZTE2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIxLTA1LTMxICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBSRUdSRVNTSU9OKHIyNzY4ODIpOiBTdHlsZSBub3QgaW52YWxpZGF0ZWQgY29ycmVjdGx5IGZv
ciBtZWRpYSBxdWVyaWVzIGluIHNoYWRvdyB0cmVlcyB0aGF0IHNoYXJlIHN0eWxlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYzNjkKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzc4Njg0NTYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEV4cGFuZCB0aGUgZXhpc3RpbmcgdGVzdCB0byBoYXZlIG11bHRp
cGxlIHNoYWRvdyB0cmVlcyBzaGFyaW5nIHN0eWxlLgorCisgICAgICAgICogZmFzdC9zaGFkb3ct
ZG9tL21lZGlhLXF1ZXJ5LWluLXNoYWRvdy1zdHlsZS1leHBlY3RlZC5odG1sOgorICAgICAgICAq
IGZhc3Qvc2hhZG93LWRvbS9tZWRpYS1xdWVyeS1pbi1zaGFkb3ctc3R5bGUuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L3NoYWRvdy1kb20vcmVzb3VyY2VzL21lZGlhLXF1ZXJ5LWluLXNoYWRvdy1zdHls
ZS1mcmFtZS5odG1sOgorCiAyMDIxLTA1LTI3ICBBbWlyIE1hcmsgSnIgIDxhbWlyX21hcmtAYXBw
bGUuY29tPgogCiAgICAgICAgIFtNYWNPUyBXazFdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi1tYXJrdXAvbXJvdy9pbmZlcnJlZC1tcm93LXN0cmV0
Y2h5Lmh0bWwgaXMgYSBmbGFreSBmYWlsdXJlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3NoYWRvdy1kb20vbWVkaWEtcXVlcnktaW4tc2hhZG93LXN0eWxlLWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vbWVkaWEtcXVlcnktaW4tc2hhZG93LXN0eWxlLWV4
cGVjdGVkLmh0bWwKaW5kZXggZDk0NWIwMDNhMjA4Li45MzAwY2I4Nzg0NmIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9tZWRpYS1xdWVyeS1pbi1zaGFkb3ctc3R5bGUt
ZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vbWVkaWEtcXVl
cnktaW4tc2hhZG93LXN0eWxlLWV4cGVjdGVkLmh0bWwKQEAgLTEsNCArMSw0IEBACi08aWZyYW1l
IHNyYz0iZGF0YTp0ZXh0L2h0bWwsPGRpdiBzdHlsZT0nY29sb3I6cmVkJz5UZXh0PC9kaXY+IiB3
aWR0aD0xNTAgaGVpZ2h0PTUwPjwvaWZyYW1lPjxicj4KLTxpZnJhbWUgc3JjPSJkYXRhOnRleHQv
aHRtbCw8ZGl2IHN0eWxlPSdjb2xvcjpncmVlbjtiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyZXkn
PlRleHQ8L2Rpdj4iIHdpZHRoPTMwMCBoZWlnaHQ9NTA+PC9pZnJhbWU+PGJyPgotPGlmcmFtZSBz
cmM9ImRhdGE6dGV4dC9odG1sLDxkaXYgc3R5bGU9J2NvbG9yOnJlZCc+VGV4dDwvZGl2PiIgd2lk
dGg9MTUwIGhlaWdodD01MD48L2lmcmFtZT48YnI+Ci08aWZyYW1lIHNyYz0iZGF0YTp0ZXh0L2h0
bWwsPGRpdiBzdHlsZT0nY29sb3I6Z3JlZW47YmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmV5Jz5U
ZXh0PC9kaXY+IiB3aWR0aD0zMDAgaGVpZ2h0PTUwPjwvaWZyYW1lPjxicj4KKzxpZnJhbWUgc3Jj
PSJkYXRhOnRleHQvaHRtbCw8ZGl2IHN0eWxlPSdjb2xvcjpyZWQnPkZpcnN0PC9kaXY+PGRpdiBz
dHlsZT0nY29sb3I6cmVkJz5TZWNvbmQ8L2Rpdj4iIHdpZHRoPTE1MCBoZWlnaHQ9MTAwPjwvaWZy
YW1lPjxicj4KKzxpZnJhbWUgc3JjPSJkYXRhOnRleHQvaHRtbCw8ZGl2IHN0eWxlPSdjb2xvcjpn
cmVlbjtiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyZXknPkZpcnN0PC9kaXY+PGRpdiBzdHlsZT0n
Y29sb3I6Z3JlZW47YmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmV5Jz5TZWNvbmQ8L2Rpdj4iIHdp
ZHRoPTMwMCBoZWlnaHQ9MTAwPjwvaWZyYW1lPjxicj4KKzxpZnJhbWUgc3JjPSJkYXRhOnRleHQv
aHRtbCw8ZGl2IHN0eWxlPSdjb2xvcjpyZWQnPkZpcnN0PC9kaXY+PGRpdiBzdHlsZT0nY29sb3I6
cmVkJz5TZWNvbmQ8L2Rpdj4iIHdpZHRoPTE1MCBoZWlnaHQ9MTAwPjwvaWZyYW1lPjxicj4KKzxp
ZnJhbWUgc3JjPSJkYXRhOnRleHQvaHRtbCw8ZGl2IHN0eWxlPSdjb2xvcjpncmVlbjtiYWNrZ3Jv
dW5kLWNvbG9yOiBsaWdodGdyZXknPkZpcnN0PC9kaXY+PGRpdiBzdHlsZT0nY29sb3I6Z3JlZW47
YmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmV5Jz5TZWNvbmQ8L2Rpdj4iIHdpZHRoPTMwMCBoZWln
aHQ9MTAwPjwvaWZyYW1lPjxicj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93
LWRvbS9tZWRpYS1xdWVyeS1pbi1zaGFkb3ctc3R5bGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
c2hhZG93LWRvbS9tZWRpYS1xdWVyeS1pbi1zaGFkb3ctc3R5bGUuaHRtbAppbmRleCAwYTUxNDU5
MGMzMmMuLjljNmQ4NjYxOGY3MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ct
ZG9tL21lZGlhLXF1ZXJ5LWluLXNoYWRvdy1zdHlsZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvc2hhZG93LWRvbS9tZWRpYS1xdWVyeS1pbi1zaGFkb3ctc3R5bGUuaHRtbApAQCAtMSw3ICsx
LDcgQEAKLTxpZnJhbWUgc3JjPXJlc291cmNlcy9tZWRpYS1xdWVyeS1pbi1zaGFkb3ctc3R5bGUt
ZnJhbWUuaHRtbCB3aWR0aD0xNTAgaGVpZ2h0PTUwPjwvaWZyYW1lPjxicj4KLTxpZnJhbWUgc3Jj
PXJlc291cmNlcy9tZWRpYS1xdWVyeS1pbi1zaGFkb3ctc3R5bGUtZnJhbWUuaHRtbCB3aWR0aD0z
MDAgaGVpZ2h0PTUwPjwvaWZyYW1lPjxicj4KLTxpZnJhbWUgc3JjPXJlc291cmNlcy9tZWRpYS1x
dWVyeS1pbi1zaGFkb3ctc3R5bGUtZnJhbWUuaHRtbCB3aWR0aD0zMDAgaGVpZ2h0PTUwIG9ubG9h
ZD0ncmVzaXplKGV2ZW50LnRhcmdldCwgMTUwKSc+PC9pZnJhbWU+PGJyPgotPGlmcmFtZSBzcmM9
cmVzb3VyY2VzL21lZGlhLXF1ZXJ5LWluLXNoYWRvdy1zdHlsZS1mcmFtZS5odG1sIHdpZHRoPTE1
MCBoZWlnaHQ9NTAgb25sb2FkPSdyZXNpemUoZXZlbnQudGFyZ2V0LCAzMDApJz48L2lmcmFtZT48
YnI+Cis8aWZyYW1lIHNyYz1yZXNvdXJjZXMvbWVkaWEtcXVlcnktaW4tc2hhZG93LXN0eWxlLWZy
YW1lLmh0bWwgd2lkdGg9MTUwIGhlaWdodD0xMDA+PC9pZnJhbWU+PGJyPgorPGlmcmFtZSBzcmM9
cmVzb3VyY2VzL21lZGlhLXF1ZXJ5LWluLXNoYWRvdy1zdHlsZS1mcmFtZS5odG1sIHdpZHRoPTMw
MCBoZWlnaHQ9MTAwPjwvaWZyYW1lPjxicj4KKzxpZnJhbWUgc3JjPXJlc291cmNlcy9tZWRpYS1x
dWVyeS1pbi1zaGFkb3ctc3R5bGUtZnJhbWUuaHRtbCB3aWR0aD0zMDAgaGVpZ2h0PTEwMCBvbmxv
YWQ9J3Jlc2l6ZShldmVudC50YXJnZXQsIDE1MCknPjwvaWZyYW1lPjxicj4KKzxpZnJhbWUgc3Jj
PXJlc291cmNlcy9tZWRpYS1xdWVyeS1pbi1zaGFkb3ctc3R5bGUtZnJhbWUuaHRtbCB3aWR0aD0x
NTAgaGVpZ2h0PTEwMCBvbmxvYWQ9J3Jlc2l6ZShldmVudC50YXJnZXQsIDMwMCknPjwvaWZyYW1l
Pjxicj4KIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20v
cmVzb3VyY2VzL21lZGlhLXF1ZXJ5LWluLXNoYWRvdy1zdHlsZS1mcmFtZS5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9zaGFkb3ctZG9tL3Jlc291cmNlcy9tZWRpYS1xdWVyeS1pbi1zaGFkb3ctc3R5
bGUtZnJhbWUuaHRtbAppbmRleCAzNDliYTNkOGIyNWEuLmNlOWU1NmNkMDhkZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL3Jlc291cmNlcy9tZWRpYS1xdWVyeS1pbi1z
aGFkb3ctc3R5bGUtZnJhbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20v
cmVzb3VyY2VzL21lZGlhLXF1ZXJ5LWluLXNoYWRvdy1zdHlsZS1mcmFtZS5odG1sCkBAIC0xLDE2
ICsxLDE5IEBACi08ZGl2IGlkPXRlc3Q+PHNwYW4+VGV4dDwvc3Bhbj48L2Rpdj4KKzxkaXYgY2xh
c3M9dGVzdD48c3Bhbj5GaXJzdDwvc3Bhbj48L2Rpdj4KKzxkaXYgY2xhc3M9dGVzdD48c3Bhbj5T
ZWNvbmQ8L3NwYW4+PC9kaXY+CiA8c2NyaXB0PgotY29uc3Qgc2hhZG93ID0gdGVzdC5hdHRhY2hT
aGFkb3coe21vZGU6ICdvcGVuJ30pOwotc2hhZG93LmlubmVySFRNTCA9IGAKLSAgICA8c3R5bGU+
Ci0gICAgQG1lZGlhIChtaW4td2lkdGg6MjAwcHgpIHsKLSAgICAgICAgZGl2IHsgY29sb3I6IGdy
ZWVuIH0KLSAgICAgICAgOmhvc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyZXkgfQotICAg
IH0KLSAgICBAbWVkaWEgKG1heC13aWR0aDoyMDBweCkgewotICAgICAgICA6OnNsb3R0ZWQoKikg
eyBjb2xvcjogcmVkIH0KLSAgICB9Ci0gICAgPC9zdHlsZT4KLSAgICA8ZGl2PjxzbG90Pjwvc2xv
dD48L2Rpdj4KLWA7Citmb3IgKHRlc3Qgb2YgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnRl
c3QnKSkgeworICAgIGNvbnN0IHNoYWRvdyA9IHRlc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnb3Bl
bid9KTsKKyAgICBzaGFkb3cuaW5uZXJIVE1MID0gYAorICAgICAgICA8c3R5bGU+CisgICAgICAg
IEBtZWRpYSAobWluLXdpZHRoOjIwMHB4KSB7CisgICAgICAgICAgICBkaXYgeyBjb2xvcjogZ3Jl
ZW4gfQorICAgICAgICAgICAgOmhvc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyZXkgfQor
ICAgICAgICB9CisgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOjIwMHB4KSB7CisgICAgICAgICAg
ICA6OnNsb3R0ZWQoKikgeyBjb2xvcjogcmVkIH0KKyAgICAgICAgfQorICAgICAgICA8L3N0eWxl
PgorICAgICAgICA8ZGl2PjxzbG90Pjwvc2xvdD48L2Rpdj4KKyAgICBgOworfQogPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggMTdjN2E4MjlhNzMwLi5lZWRhN2NmZGYxYmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNiBAQAorMjAyMS0wNS0zMSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5j
b20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjc2ODgyKTogU3R5bGUgbm90IGludmFsaWRhdGVk
IGNvcnJlY3RseSBmb3IgbWVkaWEgcXVlcmllcyBpbiBzaGFkb3cgdHJlZXMgdGhhdCBzaGFyZSBz
dHlsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2
MzY5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83ODY4NDU2Mj4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdHlsZSByZXNvbHZlcnMgYXJlIHN0YXRl
ZnVsIGluIHJlc3BlY3QgdG8gbWVkaWEgcXVlcmllcy4gV2Ugd291bGQgb25seSBpbnZhbGlkYXRl
IGluIHRoZSBmaXJzdCBzaGFkb3cgdHJlZQorICAgICAgICBiZWNhdXNlIHRoYXQgZXZhbHVhdGlv
biBmbGlwcGVkIHRoZSBzdGF0ZSBhbmQgdGhlIHNlY29uZCBldmFsdWF0aW9uIHdvdWxkIHNlZSBu
b3RoaW5nIGNoYW5naW5nIGluIG1lZGlhIHF1ZXJ5CisgICAgICAgIHN0YXRlLgorCisgICAgICAg
ICogc3R5bGUvU3R5bGVTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6U2NvcGU6
OmNvbGxlY3RSZXNvbHZlclNjb3Blcyk6CisKKyAgICAgICAgQWRkIGEgaGVscGVyIHRvIGNvbGxl
Y3QgYWxsIHNjb3BlcyBhc3NvY2lhdGVkIHdpdGggYSByZXNvbHZlci4KKworICAgICAgICAoV2Vi
Q29yZTo6U3R5bGU6OlNjb3BlOjpldmFsdWF0ZU1lZGlhUXVlcmllcyk6CisKKyAgICAgICAgT25s
eSBldmFsdWF0ZSBlYWNoIHJlc29sdmVyIG9uY2UsIHRoZW4gaW52YWxpZGF0ZSBhbGwgYXNzb2Np
YXRlZCBzY29wZXMgaWYgbmVlZGVkLgorCisgICAgICAgICogc3R5bGUvU3R5bGVTY29wZS5oOgor
CiAyMDIxLTA1LTI3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAg
ICAgICAgIFttYWNPU10gU2hvdyBjb250ZXh0IG1lbnUgd2hlbiBjbGlja2luZyBvbiBkYXRhIGRl
dGVjdGlvbiByZXN1bHRzIGluIGltYWdlIG92ZXJsYXlzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2Nv
cGUuY3BwCmluZGV4IGJhZmNlYjgwZjljZC4uNDJiNDgwZjFmMDk2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVNjb3BlLmNwcApAQCAtNjUyLDMzICs2NTIsNTkgQEAgdm9pZCBTY29wZTo6ZXZhbHVh
dGVNZWRpYVF1ZXJpZXNGb3JBcHBlYXJhbmNlQ2hhbmdlKCkKICAgICB9KTsKIH0KIAorYXV0byBT
Y29wZTo6Y29sbGVjdFJlc29sdmVyU2NvcGVzKCkgLT4gUmVzb2x2ZXJTY29wZXMKK3sKKyAgICBB
U1NFUlQoIW1fc2hhZG93Um9vdCk7CisKKyAgICBpZiAoIXJlc29sdmVySWZFeGlzdHMoKSkKKyAg
ICAgICAgcmV0dXJuIHsgfTsKKworICAgIFJlc29sdmVyU2NvcGVzIHJlc29sdmVyU2NvcGVzOwor
CisgICAgcmVzb2x2ZXJTY29wZXMuYWRkKG1ha2VSZWYoKnJlc29sdmVySWZFeGlzdHMoKSksIFZl
Y3RvcjxXZWFrUHRyPFNjb3BlPj4geyBtYWtlV2Vha1B0cigqdGhpcykgfSk7CisKKyAgICBmb3Ig
KGF1dG8qIHNoYWRvd1Jvb3QgOiBtX2RvY3VtZW50LmluRG9jdW1lbnRTaGFkb3dSb290cygpKSB7
CisgICAgICAgIGF1dG8mIHNjb3BlID0gc2hhZG93Um9vdC0+c3R5bGVTY29wZSgpOworICAgICAg
ICBhdXRvKiByZXNvbHZlciA9IHNjb3BlLnJlc29sdmVySWZFeGlzdHMoKTsKKyAgICAgICAgaWYg
KCFyZXNvbHZlcikKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICByZXNvbHZlclNjb3Bl
cy5hZGQobWFrZVJlZigqcmVzb2x2ZXIpLCBWZWN0b3I8V2Vha1B0cjxTY29wZT4+IHsgfSkuaXRl
cmF0b3ItPnZhbHVlLmFwcGVuZChtYWtlV2Vha1B0cihzY29wZSkpOworICAgIH0KKyAgICByZXR1
cm4gcmVzb2x2ZXJTY29wZXM7Cit9CisKIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXN0RnVuY3Rpb24+
CiB2b2lkIFNjb3BlOjpldmFsdWF0ZU1lZGlhUXVlcmllcyhUZXN0RnVuY3Rpb24mJiB0ZXN0RnVu
Y3Rpb24pCiB7Ci0gICAgYXV0byogcmVzb2x2ZXIgPSByZXNvbHZlcklmRXhpc3RzKCk7Ci0gICAg
aWYgKCFyZXNvbHZlcikKLSAgICAgICAgcmV0dXJuOworICAgIGJvb2wgaGFkQ2hhbmdlcyA9IGZh
bHNlOwogCi0gICAgYXV0byBldmFsdWF0aW9uQ2hhbmdlcyA9IHRlc3RGdW5jdGlvbigqcmVzb2x2
ZXIpOwotICAgIGlmIChldmFsdWF0aW9uQ2hhbmdlcykgewotICAgICAgICBzd2l0Y2ggKGV2YWx1
YXRpb25DaGFuZ2VzLT50eXBlKSB7Ci0gICAgICAgIGNhc2UgRHluYW1pY01lZGlhUXVlcnlFdmFs
dWF0aW9uQ2hhbmdlczo6VHlwZTo6SW52YWxpZGF0ZVN0eWxlOiB7Ci0gICAgICAgICAgICBJbnZh
bGlkYXRvciBpbnZhbGlkYXRvcihldmFsdWF0aW9uQ2hhbmdlcy0+aW52YWxpZGF0aW9uUnVsZVNl
dHMpOwotICAgICAgICAgICAgaW52YWxpZGF0b3IuaW52YWxpZGF0ZVN0eWxlKCp0aGlzKTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgRHluYW1pY01lZGlhUXVl
cnlFdmFsdWF0aW9uQ2hhbmdlczo6VHlwZTo6UmVzZXRTdHlsZToKLSAgICAgICAgICAgIHNjaGVk
dWxlVXBkYXRlKFVwZGF0ZVR5cGU6OkNvbnRlbnRzT3JJbnRlcnByZXRhdGlvbik7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgfQorICAgIGF1dG8gcmVzb2x2ZXJTY29wZXMgPSBjb2xsZWN0
UmVzb2x2ZXJTY29wZXMoKTsKKyAgICBmb3IgKGF1dG8mIHJlc29sdmVyQW5kU2NvcGVzIDogcmVz
b2x2ZXJTY29wZXMpIHsKKyAgICAgICAgYXV0byYgcmVzb2x2ZXIgPSByZXNvbHZlckFuZFNjb3Bl
cy5rZXkuZ2V0KCk7CisgICAgICAgIGF1dG8mIHNjb3BlcyA9IHJlc29sdmVyQW5kU2NvcGVzLnZh
bHVlOwogCi0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bWVkaWFRdWVyeVJlc3Vs
dENoYW5nZWQobV9kb2N1bWVudCk7Ci0gICAgfQorICAgICAgICBhdXRvIGV2YWx1YXRpb25DaGFu
Z2VzID0gdGVzdEZ1bmN0aW9uKHJlc29sdmVyKTsKKyAgICAgICAgaWYgKCFldmFsdWF0aW9uQ2hh
bmdlcykKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBoYWRDaGFuZ2VzID0gdHJ1ZTsK
KworICAgICAgICBmb3IgKGF1dG8mIHNjb3BlIDogc2NvcGVzKSB7CisgICAgICAgICAgICBzd2l0
Y2ggKGV2YWx1YXRpb25DaGFuZ2VzLT50eXBlKSB7CisgICAgICAgICAgICBjYXNlIER5bmFtaWNN
ZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM6OlR5cGU6OkludmFsaWRhdGVTdHlsZTogeworICAg
ICAgICAgICAgICAgIEludmFsaWRhdG9yIGludmFsaWRhdG9yKGV2YWx1YXRpb25DaGFuZ2VzLT5p
bnZhbGlkYXRpb25SdWxlU2V0cyk7CisgICAgICAgICAgICAgICAgaW52YWxpZGF0b3IuaW52YWxp
ZGF0ZVN0eWxlKCpzY29wZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICBjYXNlIER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM6OlR5
cGU6OlJlc2V0U3R5bGU6CisgICAgICAgICAgICAgICAgc2NvcGUtPnNjaGVkdWxlVXBkYXRlKFVw
ZGF0ZVR5cGU6OkNvbnRlbnRzT3JJbnRlcnByZXRhdGlvbik7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICB9CiAKLSAgICBpZiAoIW1fc2hhZG93Um9vdCkgewotICAgICAgICBm
b3IgKGF1dG8qIGRlc2NlbmRhbnRTaGFkb3dSb290IDogbV9kb2N1bWVudC5pbkRvY3VtZW50U2hh
ZG93Um9vdHMoKSkKLSAgICAgICAgICAgIGRlc2NlbmRhbnRTaGFkb3dSb290LT5zdHlsZVNjb3Bl
KCkuZXZhbHVhdGVNZWRpYVF1ZXJpZXModGVzdEZ1bmN0aW9uKTsKKyAgICAgICAgfQogICAgIH0K
KworICAgIGlmIChoYWRDaGFuZ2VzKQorICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
Om1lZGlhUXVlcnlSZXN1bHRDaGFuZ2VkKG1fZG9jdW1lbnQpOwogfQogCiB2b2lkIFNjb3BlOjpk
aWRDaGFuZ2VBY3RpdmVTdHlsZVNoZWV0Q2FuZGlkYXRlcygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNj
b3BlLmgKaW5kZXggYmE3NjcyZGQwODQwLi42MGNmMDJlYWY5NTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVNjb3BlLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU0LDcgKzU1LDcgQEAgbmFtZXNwYWNlIFN0eWxlIHsK
IAogY2xhc3MgUmVzb2x2ZXI7CiAKLWNsYXNzIFNjb3BlIHsKK2NsYXNzIFNjb3BlIDogcHVibGlj
IENhbk1ha2VXZWFrUHRyPFNjb3BlPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6CiAgICAgZXhwbGljaXQgU2NvcGUoRG9jdW1lbnQmKTsKQEAgLTEzMyw2ICsxMzQsOCBA
QCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlQWN0aXZlU3R5bGVTaGVldHMoVXBkYXRlVHlwZSk7
CiAgICAgdm9pZCBzY2hlZHVsZVVwZGF0ZShVcGRhdGVUeXBlKTsKIAorICAgIHVzaW5nIFJlc29s
dmVyU2NvcGVzID0gSGFzaE1hcDxSZWY8UmVzb2x2ZXI+LCBWZWN0b3I8V2Vha1B0cjxTY29wZT4+
PjsKKyAgICBSZXNvbHZlclNjb3BlcyBjb2xsZWN0UmVzb2x2ZXJTY29wZXMoKTsKICAgICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVGVzdEZ1bmN0aW9uPiB2b2lkIGV2YWx1YXRlTWVkaWFRdWVyaWVzKFRl
c3RGdW5jdGlvbiYmKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmx1c2hQZW5kaW5nU2Vs
ZlVwZGF0ZSgpOwo=
</data>
<flag name="review"
          id="451580"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430328</attachid>
            <date>2021-06-02 01:41:32 -0700</date>
            <delta_ts>2021-06-02 02:41:52 -0700</delta_ts>
            <desc>patch</desc>
            <filename>media-query-invalidation-sharing-2.patch</filename>
            <type>text/plain</type>
            <size>10096</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzZDY0Y2QyNDRlNTEuLjE4OGE2YTVmM2I1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIxLTA1LTMxICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBSRUdSRVNTSU9OKHIyNzY4ODIpOiBTdHlsZSBub3QgaW52YWxpZGF0ZWQgY29ycmVjdGx5IGZv
ciBtZWRpYSBxdWVyaWVzIGluIHNoYWRvdyB0cmVlcyB0aGF0IHNoYXJlIHN0eWxlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYzNjkKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzc4Njg0NTYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWlu
aWcuCisKKyAgICAgICAgRXhwYW5kIHRoZSBleGlzdGluZyB0ZXN0IHRvIGhhdmUgbXVsdGlwbGUg
c2hhZG93IHRyZWVzIHNoYXJpbmcgc3R5bGUuCisKKyAgICAgICAgKiBmYXN0L3NoYWRvdy1kb20v
bWVkaWEtcXVlcnktaW4tc2hhZG93LXN0eWxlLWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFz
dC9zaGFkb3ctZG9tL21lZGlhLXF1ZXJ5LWluLXNoYWRvdy1zdHlsZS5odG1sOgorICAgICAgICAq
IGZhc3Qvc2hhZG93LWRvbS9yZXNvdXJjZXMvbWVkaWEtcXVlcnktaW4tc2hhZG93LXN0eWxlLWZy
YW1lLmh0bWw6CisKIDIwMjEtMDUtMjcgIEFtaXIgTWFyayBKciAgPGFtaXJfbWFya0BhcHBsZS5j
b20+CiAKICAgICAgICAgW01hY09TIFdrMV0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9tYXRobWwvcHJlc2VudGF0aW9uLW1hcmt1cC9tcm93L2luZmVycmVkLW1yb3ctc3RyZXRjaHku
aHRtbCBpcyBhIGZsYWt5IGZhaWx1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hh
ZG93LWRvbS9tZWRpYS1xdWVyeS1pbi1zaGFkb3ctc3R5bGUtZXhwZWN0ZWQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9tZWRpYS1xdWVyeS1pbi1zaGFkb3ctc3R5bGUtZXhwZWN0
ZWQuaHRtbAppbmRleCBkOTQ1YjAwM2EyMDguLjkzMDBjYjg3ODQ2YiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL21lZGlhLXF1ZXJ5LWluLXNoYWRvdy1zdHlsZS1leHBl
Y3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9tZWRpYS1xdWVyeS1p
bi1zaGFkb3ctc3R5bGUtZXhwZWN0ZWQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTxpZnJhbWUgc3Jj
PSJkYXRhOnRleHQvaHRtbCw8ZGl2IHN0eWxlPSdjb2xvcjpyZWQnPlRleHQ8L2Rpdj4iIHdpZHRo
PTE1MCBoZWlnaHQ9NTA+PC9pZnJhbWU+PGJyPgotPGlmcmFtZSBzcmM9ImRhdGE6dGV4dC9odG1s
LDxkaXYgc3R5bGU9J2NvbG9yOmdyZWVuO2JhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JleSc+VGV4
dDwvZGl2PiIgd2lkdGg9MzAwIGhlaWdodD01MD48L2lmcmFtZT48YnI+Ci08aWZyYW1lIHNyYz0i
ZGF0YTp0ZXh0L2h0bWwsPGRpdiBzdHlsZT0nY29sb3I6cmVkJz5UZXh0PC9kaXY+IiB3aWR0aD0x
NTAgaGVpZ2h0PTUwPjwvaWZyYW1lPjxicj4KLTxpZnJhbWUgc3JjPSJkYXRhOnRleHQvaHRtbCw8
ZGl2IHN0eWxlPSdjb2xvcjpncmVlbjtiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyZXknPlRleHQ8
L2Rpdj4iIHdpZHRoPTMwMCBoZWlnaHQ9NTA+PC9pZnJhbWU+PGJyPgorPGlmcmFtZSBzcmM9ImRh
dGE6dGV4dC9odG1sLDxkaXYgc3R5bGU9J2NvbG9yOnJlZCc+Rmlyc3Q8L2Rpdj48ZGl2IHN0eWxl
PSdjb2xvcjpyZWQnPlNlY29uZDwvZGl2PiIgd2lkdGg9MTUwIGhlaWdodD0xMDA+PC9pZnJhbWU+
PGJyPgorPGlmcmFtZSBzcmM9ImRhdGE6dGV4dC9odG1sLDxkaXYgc3R5bGU9J2NvbG9yOmdyZWVu
O2JhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JleSc+Rmlyc3Q8L2Rpdj48ZGl2IHN0eWxlPSdjb2xv
cjpncmVlbjtiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyZXknPlNlY29uZDwvZGl2PiIgd2lkdGg9
MzAwIGhlaWdodD0xMDA+PC9pZnJhbWU+PGJyPgorPGlmcmFtZSBzcmM9ImRhdGE6dGV4dC9odG1s
LDxkaXYgc3R5bGU9J2NvbG9yOnJlZCc+Rmlyc3Q8L2Rpdj48ZGl2IHN0eWxlPSdjb2xvcjpyZWQn
PlNlY29uZDwvZGl2PiIgd2lkdGg9MTUwIGhlaWdodD0xMDA+PC9pZnJhbWU+PGJyPgorPGlmcmFt
ZSBzcmM9ImRhdGE6dGV4dC9odG1sLDxkaXYgc3R5bGU9J2NvbG9yOmdyZWVuO2JhY2tncm91bmQt
Y29sb3I6IGxpZ2h0Z3JleSc+Rmlyc3Q8L2Rpdj48ZGl2IHN0eWxlPSdjb2xvcjpncmVlbjtiYWNr
Z3JvdW5kLWNvbG9yOiBsaWdodGdyZXknPlNlY29uZDwvZGl2PiIgd2lkdGg9MzAwIGhlaWdodD0x
MDA+PC9pZnJhbWU+PGJyPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9t
L21lZGlhLXF1ZXJ5LWluLXNoYWRvdy1zdHlsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFk
b3ctZG9tL21lZGlhLXF1ZXJ5LWluLXNoYWRvdy1zdHlsZS5odG1sCmluZGV4IDBhNTE0NTkwYzMy
Yy4uOWM2ZDg2NjE4ZjcyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20v
bWVkaWEtcXVlcnktaW4tc2hhZG93LXN0eWxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9z
aGFkb3ctZG9tL21lZGlhLXF1ZXJ5LWluLXNoYWRvdy1zdHlsZS5odG1sCkBAIC0xLDcgKzEsNyBA
QAotPGlmcmFtZSBzcmM9cmVzb3VyY2VzL21lZGlhLXF1ZXJ5LWluLXNoYWRvdy1zdHlsZS1mcmFt
ZS5odG1sIHdpZHRoPTE1MCBoZWlnaHQ9NTA+PC9pZnJhbWU+PGJyPgotPGlmcmFtZSBzcmM9cmVz
b3VyY2VzL21lZGlhLXF1ZXJ5LWluLXNoYWRvdy1zdHlsZS1mcmFtZS5odG1sIHdpZHRoPTMwMCBo
ZWlnaHQ9NTA+PC9pZnJhbWU+PGJyPgotPGlmcmFtZSBzcmM9cmVzb3VyY2VzL21lZGlhLXF1ZXJ5
LWluLXNoYWRvdy1zdHlsZS1mcmFtZS5odG1sIHdpZHRoPTMwMCBoZWlnaHQ9NTAgb25sb2FkPSdy
ZXNpemUoZXZlbnQudGFyZ2V0LCAxNTApJz48L2lmcmFtZT48YnI+Ci08aWZyYW1lIHNyYz1yZXNv
dXJjZXMvbWVkaWEtcXVlcnktaW4tc2hhZG93LXN0eWxlLWZyYW1lLmh0bWwgd2lkdGg9MTUwIGhl
aWdodD01MCBvbmxvYWQ9J3Jlc2l6ZShldmVudC50YXJnZXQsIDMwMCknPjwvaWZyYW1lPjxicj4K
KzxpZnJhbWUgc3JjPXJlc291cmNlcy9tZWRpYS1xdWVyeS1pbi1zaGFkb3ctc3R5bGUtZnJhbWUu
aHRtbCB3aWR0aD0xNTAgaGVpZ2h0PTEwMD48L2lmcmFtZT48YnI+Cis8aWZyYW1lIHNyYz1yZXNv
dXJjZXMvbWVkaWEtcXVlcnktaW4tc2hhZG93LXN0eWxlLWZyYW1lLmh0bWwgd2lkdGg9MzAwIGhl
aWdodD0xMDA+PC9pZnJhbWU+PGJyPgorPGlmcmFtZSBzcmM9cmVzb3VyY2VzL21lZGlhLXF1ZXJ5
LWluLXNoYWRvdy1zdHlsZS1mcmFtZS5odG1sIHdpZHRoPTMwMCBoZWlnaHQ9MTAwIG9ubG9hZD0n
cmVzaXplKGV2ZW50LnRhcmdldCwgMTUwKSc+PC9pZnJhbWU+PGJyPgorPGlmcmFtZSBzcmM9cmVz
b3VyY2VzL21lZGlhLXF1ZXJ5LWluLXNoYWRvdy1zdHlsZS1mcmFtZS5odG1sIHdpZHRoPTE1MCBo
ZWlnaHQ9MTAwIG9ubG9hZD0ncmVzaXplKGV2ZW50LnRhcmdldCwgMzAwKSc+PC9pZnJhbWU+PGJy
PgogPHNjcmlwdD4KIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9yZXNv
dXJjZXMvbWVkaWEtcXVlcnktaW4tc2hhZG93LXN0eWxlLWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3NoYWRvdy1kb20vcmVzb3VyY2VzL21lZGlhLXF1ZXJ5LWluLXNoYWRvdy1zdHlsZS1m
cmFtZS5odG1sCmluZGV4IDM0OWJhM2Q4YjI1YS4uY2U5ZTU2Y2QwOGRkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vcmVzb3VyY2VzL21lZGlhLXF1ZXJ5LWluLXNoYWRv
dy1zdHlsZS1mcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9yZXNv
dXJjZXMvbWVkaWEtcXVlcnktaW4tc2hhZG93LXN0eWxlLWZyYW1lLmh0bWwKQEAgLTEsMTYgKzEs
MTkgQEAKLTxkaXYgaWQ9dGVzdD48c3Bhbj5UZXh0PC9zcGFuPjwvZGl2PgorPGRpdiBjbGFzcz10
ZXN0PjxzcGFuPkZpcnN0PC9zcGFuPjwvZGl2PgorPGRpdiBjbGFzcz10ZXN0PjxzcGFuPlNlY29u
ZDwvc3Bhbj48L2Rpdj4KIDxzY3JpcHQ+Ci1jb25zdCBzaGFkb3cgPSB0ZXN0LmF0dGFjaFNoYWRv
dyh7bW9kZTogJ29wZW4nfSk7Ci1zaGFkb3cuaW5uZXJIVE1MID0gYAotICAgIDxzdHlsZT4KLSAg
ICBAbWVkaWEgKG1pbi13aWR0aDoyMDBweCkgewotICAgICAgICBkaXYgeyBjb2xvcjogZ3JlZW4g
fQotICAgICAgICA6aG9zdCB7IGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JleSB9Ci0gICAgfQot
ICAgIEBtZWRpYSAobWF4LXdpZHRoOjIwMHB4KSB7Ci0gICAgICAgIDo6c2xvdHRlZCgqKSB7IGNv
bG9yOiByZWQgfQotICAgIH0KLSAgICA8L3N0eWxlPgotICAgIDxkaXY+PHNsb3Q+PC9zbG90Pjwv
ZGl2PgotYDsKK2ZvciAodGVzdCBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudGVzdCcp
KSB7CisgICAgY29uc3Qgc2hhZG93ID0gdGVzdC5hdHRhY2hTaGFkb3coe21vZGU6ICdvcGVuJ30p
OworICAgIHNoYWRvdy5pbm5lckhUTUwgPSBgCisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgQG1l
ZGlhIChtaW4td2lkdGg6MjAwcHgpIHsKKyAgICAgICAgICAgIGRpdiB7IGNvbG9yOiBncmVlbiB9
CisgICAgICAgICAgICA6aG9zdCB7IGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JleSB9CisgICAg
ICAgIH0KKyAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6MjAwcHgpIHsKKyAgICAgICAgICAgIDo6
c2xvdHRlZCgqKSB7IGNvbG9yOiByZWQgfQorICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+Cisg
ICAgICAgIDxkaXY+PHNsb3Q+PC9zbG90PjwvZGl2PgorICAgIGA7Cit9CiA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCAxN2M3YTgyOWE3MzAuLjBlMjRiNzkyYzFkZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI2IEBACisyMDIxLTA1LTMxICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4K
KworICAgICAgICBSRUdSRVNTSU9OKHIyNzY4ODIpOiBTdHlsZSBub3QgaW52YWxpZGF0ZWQgY29y
cmVjdGx5IGZvciBtZWRpYSBxdWVyaWVzIGluIHNoYWRvdyB0cmVlcyB0aGF0IHNoYXJlIHN0eWxl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYzNjkK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc4Njg0NTYyPgorCisgICAgICAgIFJldmlld2VkIGJ5
IFNhbSBXZWluaWcuCisKKyAgICAgICAgU3R5bGUgcmVzb2x2ZXJzIGFyZSBzdGF0ZWZ1bCBpbiBy
ZXNwZWN0IHRvIG1lZGlhIHF1ZXJpZXMuIFdlIHdvdWxkIG9ubHkgaW52YWxpZGF0ZSBpbiB0aGUg
Zmlyc3Qgc2hhZG93IHRyZWUKKyAgICAgICAgYmVjYXVzZSB0aGF0IGV2YWx1YXRpb24gZmxpcHBl
ZCB0aGUgc3RhdGUgYW5kIHRoZSBzZWNvbmQgZXZhbHVhdGlvbiB3b3VsZCBzZWUgbm90aGluZyBj
aGFuZ2luZyBpbiBtZWRpYSBxdWVyeQorICAgICAgICBzdGF0ZS4KKworICAgICAgICAqIHN0eWxl
L1N0eWxlU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlNjb3BlOjpjb2xsZWN0
UmVzb2x2ZXJTY29wZXMpOgorCisgICAgICAgIEFkZCBhIGhlbHBlciB0byBjb2xsZWN0IGFsbCBz
Y29wZXMgYXNzb2NpYXRlZCB3aXRoIGEgcmVzb2x2ZXIuCisKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlOjpTY29wZTo6ZXZhbHVhdGVNZWRpYVF1ZXJpZXMpOgorCisgICAgICAgIE9ubHkgZXZhbHVh
dGUgZWFjaCByZXNvbHZlciBvbmNlLCB0aGVuIGludmFsaWRhdGUgYWxsIGFzc29jaWF0ZWQgc2Nv
cGVzIGlmIG5lZWRlZC4KKworICAgICAgICAqIHN0eWxlL1N0eWxlU2NvcGUuaDoKKwogMjAyMS0w
NS0yNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBb
bWFjT1NdIFNob3cgY29udGV4dCBtZW51IHdoZW4gY2xpY2tpbmcgb24gZGF0YSBkZXRlY3Rpb24g
cmVzdWx0cyBpbiBpbWFnZSBvdmVybGF5cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlLmNwcApp
bmRleCBiYWZjZWI4MGY5Y2QuLjI2MGQ5OGIyZWEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVT
Y29wZS5jcHAKQEAgLTY1MiwzMyArNjUyLDU1IEBAIHZvaWQgU2NvcGU6OmV2YWx1YXRlTWVkaWFR
dWVyaWVzRm9yQXBwZWFyYW5jZUNoYW5nZSgpCiAgICAgfSk7CiB9CiAKK2F1dG8gU2NvcGU6OmNv
bGxlY3RSZXNvbHZlclNjb3BlcygpIC0+IFJlc29sdmVyU2NvcGVzCit7CisgICAgQVNTRVJUKCFt
X3NoYWRvd1Jvb3QpOworCisgICAgaWYgKCFyZXNvbHZlcklmRXhpc3RzKCkpCisgICAgICAgIHJl
dHVybiB7IH07CisKKyAgICBSZXNvbHZlclNjb3BlcyByZXNvbHZlclNjb3BlczsKKworICAgIHJl
c29sdmVyU2NvcGVzLmFkZChtYWtlUmVmKCpyZXNvbHZlcklmRXhpc3RzKCkpLCBWZWN0b3I8V2Vh
a1B0cjxTY29wZT4+IHsgbWFrZVdlYWtQdHIoKnRoaXMpIH0pOworCisgICAgZm9yIChhdXRvKiBz
aGFkb3dSb290IDogbV9kb2N1bWVudC5pbkRvY3VtZW50U2hhZG93Um9vdHMoKSkgeworICAgICAg
ICBhdXRvJiBzY29wZSA9IHNoYWRvd1Jvb3QtPnN0eWxlU2NvcGUoKTsKKyAgICAgICAgYXV0byog
cmVzb2x2ZXIgPSBzY29wZS5yZXNvbHZlcklmRXhpc3RzKCk7CisgICAgICAgIGlmICghcmVzb2x2
ZXIpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgcmVzb2x2ZXJTY29wZXMuYWRkKG1h
a2VSZWYoKnJlc29sdmVyKSwgVmVjdG9yPFdlYWtQdHI8U2NvcGU+PiB7IH0pLml0ZXJhdG9yLT52
YWx1ZS5hcHBlbmQobWFrZVdlYWtQdHIoc2NvcGUpKTsKKyAgICB9CisgICAgcmV0dXJuIHJlc29s
dmVyU2NvcGVzOworfQorCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGVzdEZ1bmN0aW9uPgogdm9pZCBT
Y29wZTo6ZXZhbHVhdGVNZWRpYVF1ZXJpZXMoVGVzdEZ1bmN0aW9uJiYgdGVzdEZ1bmN0aW9uKQog
ewotICAgIGF1dG8qIHJlc29sdmVyID0gcmVzb2x2ZXJJZkV4aXN0cygpOwotICAgIGlmICghcmVz
b2x2ZXIpCi0gICAgICAgIHJldHVybjsKKyAgICBib29sIGhhZENoYW5nZXMgPSBmYWxzZTsKIAot
ICAgIGF1dG8gZXZhbHVhdGlvbkNoYW5nZXMgPSB0ZXN0RnVuY3Rpb24oKnJlc29sdmVyKTsKLSAg
ICBpZiAoZXZhbHVhdGlvbkNoYW5nZXMpIHsKLSAgICAgICAgc3dpdGNoIChldmFsdWF0aW9uQ2hh
bmdlcy0+dHlwZSkgewotICAgICAgICBjYXNlIER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNo
YW5nZXM6OlR5cGU6OkludmFsaWRhdGVTdHlsZTogewotICAgICAgICAgICAgSW52YWxpZGF0b3Ig
aW52YWxpZGF0b3IoZXZhbHVhdGlvbkNoYW5nZXMtPmludmFsaWRhdGlvblJ1bGVTZXRzKTsKLSAg
ICAgICAgICAgIGludmFsaWRhdG9yLmludmFsaWRhdGVTdHlsZSgqdGhpcyk7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVh
dGlvbkNoYW5nZXM6OlR5cGU6OlJlc2V0U3R5bGU6Ci0gICAgICAgICAgICBzY2hlZHVsZVVwZGF0
ZShVcGRhdGVUeXBlOjpDb250ZW50c09ySW50ZXJwcmV0YXRpb24pOwotICAgICAgICAgICAgYnJl
YWs7CisgICAgYXV0byByZXNvbHZlclNjb3BlcyA9IGNvbGxlY3RSZXNvbHZlclNjb3BlcygpOwor
ICAgIGZvciAoYXV0byYgW3Jlc29sdmVyLCBzY29wZXNdIDogcmVzb2x2ZXJTY29wZXMpIHsKKyAg
ICAgICAgYXV0byBldmFsdWF0aW9uQ2hhbmdlcyA9IHRlc3RGdW5jdGlvbihyZXNvbHZlci5nZXQo
KSk7CisgICAgICAgIGlmICghZXZhbHVhdGlvbkNoYW5nZXMpCisgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgaGFkQ2hhbmdlcyA9IHRydWU7CisKKyAgICAgICAgZm9yIChhdXRvJiBzY29w
ZSA6IHNjb3BlcykgeworICAgICAgICAgICAgc3dpdGNoIChldmFsdWF0aW9uQ2hhbmdlcy0+dHlw
ZSkgeworICAgICAgICAgICAgY2FzZSBEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2Vz
OjpUeXBlOjpJbnZhbGlkYXRlU3R5bGU6IHsKKyAgICAgICAgICAgICAgICBJbnZhbGlkYXRvciBp
bnZhbGlkYXRvcihldmFsdWF0aW9uQ2hhbmdlcy0+aW52YWxpZGF0aW9uUnVsZVNldHMpOworICAg
ICAgICAgICAgICAgIGludmFsaWRhdG9yLmludmFsaWRhdGVTdHlsZSgqc2NvcGUpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBEeW5hbWlj
TWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzOjpUeXBlOjpSZXNldFN0eWxlOgorICAgICAgICAg
ICAgICAgIHNjb3BlLT5zY2hlZHVsZVVwZGF0ZShVcGRhdGVUeXBlOjpDb250ZW50c09ySW50ZXJw
cmV0YXRpb24pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAg
ICB9Ci0KLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjptZWRpYVF1ZXJ5UmVzdWx0
Q2hhbmdlZChtX2RvY3VtZW50KTsKICAgICB9CiAKLSAgICBpZiAoIW1fc2hhZG93Um9vdCkgewot
ICAgICAgICBmb3IgKGF1dG8qIGRlc2NlbmRhbnRTaGFkb3dSb290IDogbV9kb2N1bWVudC5pbkRv
Y3VtZW50U2hhZG93Um9vdHMoKSkKLSAgICAgICAgICAgIGRlc2NlbmRhbnRTaGFkb3dSb290LT5z
dHlsZVNjb3BlKCkuZXZhbHVhdGVNZWRpYVF1ZXJpZXModGVzdEZ1bmN0aW9uKTsKLSAgICB9Cisg
ICAgaWYgKGhhZENoYW5nZXMpCisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bWVk
aWFRdWVyeVJlc3VsdENoYW5nZWQobV9kb2N1bWVudCk7CiB9CiAKIHZvaWQgU2NvcGU6OmRpZENo
YW5nZUFjdGl2ZVN0eWxlU2hlZXRDYW5kaWRhdGVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUu
aAppbmRleCBiYTc2NzJkZDA4NDAuLjYwY2YwMmVhZjk1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
U2NvcGUuaApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVk
ZSA8d3RmL1dlYWtQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtNTQsNyArNTUsNyBAQCBuYW1lc3BhY2UgU3R5bGUgewogCiBj
bGFzcyBSZXNvbHZlcjsKIAotY2xhc3MgU2NvcGUgeworY2xhc3MgU2NvcGUgOiBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8U2NvcGU+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKICAgICBleHBsaWNpdCBTY29wZShEb2N1bWVudCYpOwpAQCAtMTMzLDYgKzEzNCw4IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCB1cGRhdGVBY3RpdmVTdHlsZVNoZWV0cyhVcGRhdGVUeXBlKTsKICAg
ICB2b2lkIHNjaGVkdWxlVXBkYXRlKFVwZGF0ZVR5cGUpOwogCisgICAgdXNpbmcgUmVzb2x2ZXJT
Y29wZXMgPSBIYXNoTWFwPFJlZjxSZXNvbHZlcj4sIFZlY3RvcjxXZWFrUHRyPFNjb3BlPj4+Owor
ICAgIFJlc29sdmVyU2NvcGVzIGNvbGxlY3RSZXNvbHZlclNjb3BlcygpOwogICAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBUZXN0RnVuY3Rpb24+IHZvaWQgZXZhbHVhdGVNZWRpYVF1ZXJpZXMoVGVzdEZ1
bmN0aW9uJiYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmbHVzaFBlbmRpbmdTZWxmVXBk
YXRlKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>