<?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>231235</bug_id>
          
          <creation_ts>2021-10-05 09:54:43 -0700</creation_ts>
          <short_desc>ASSERT(m_callback-&gt;hasCallback()) under IntersectionObserver::notify()</short_desc>
          <delta_ts>2023-01-23 09:06:49 -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>WebCore 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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=231260</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=251015</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>ggaren</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1800606</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-05 09:54:43 -0700</bug_when>
    <thetext>ASSERTION FAILED: m_callback-&gt;hasCallback()
./page/IntersectionObserver.cpp(278) : void WebCore::IntersectionObserver::notify()
1   0x4744dd069 WTFCrash
2   0x48611b24b WTFCrashWithInfo(int, char const*, char const*, int)
3   0x489e238fb WebCore::IntersectionObserver::notify()
4   0x489046a39 WebCore::Document::updateIntersectionObservations()
5   0x489e80f59 WebCore::Page::updateRendering()::$_27::operator()(WebCore::Document&amp;) const
6   0x489e80ef1 WTF::Detail::CallableWrapper&lt;WebCore::Page::updateRendering()::$_27, void, WebCore::Document&amp;&gt;::call(WebCore::Document&amp;)
7   0x488f9b647 WTF::Function&lt;void (WebCore::Document&amp;)&gt;::operator()(WebCore::Document&amp;) const
8   0x489e3c286 WebCore::Page::forEachDocument(WTF::Function&lt;void (WebCore::Document&amp;)&gt; const&amp;) const
9   0x489e433b9 WebCore::Page::updateRendering()::$_21::operator()(WebCore::RenderingUpdateStep, WTF::Function&lt;void (WebCore::Document&amp;)&gt; const&amp;) const
10  0x489e42ffa WebCore::Page::updateRendering()
11  0x45c6e2b61 WebKit::WebPage::updateRendering()
12  0x45bef992d WebKit::TiledCoreAnimationDrawingArea::updateRendering(WebKit::TiledCoreAnimationDrawingArea::UpdateRenderingType)
13  0x45bef9898 WebKit::TiledCoreAnimationDrawingArea::forceRepaint()
14  0x45c6e1502 WebKit::WebPage::forceRepaintWithoutCallback()
15  0x45c2d8d3d WKBundlePageForceRepaint
16  0x454c2a62e WTR::InjectedBundlePage::dump()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800607</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-05 09:54:57 -0700</bug_when>
    <thetext>&lt;rdar://80837616&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800615</commentid>
    <comment_count>2</comment_count>
      <attachid>440227</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-05 10:05:43 -0700</bug_when>
    <thetext>Created attachment 440227
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800680</commentid>
    <comment_count>3</comment_count>
      <attachid>440240</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-05 11:41:42 -0700</bug_when>
    <thetext>Created attachment 440240
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800720</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-05 13:00:15 -0700</bug_when>
    <thetext>Does Resize Observer need the same fix?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800721</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-05 13:04:43 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #4)
&gt; Does Resize Observer need the same fix?

I&apos;ll check but I doubt we&apos;d expect a resize observation to ever be sent for a detached element?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800731</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-10-05 13:36:49 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #5)
&gt; (In reply to Simon Fraser (smfr) from comment #4)
&gt; &gt; Does Resize Observer need the same fix?
&gt; 
&gt; I&apos;ll check but I doubt we&apos;d expect a resize observation to ever be sent for
&gt; a detached element?

I think we do for the initial observation. Also, right after the element got detached from the document because then the element becomes (0, 0) instead of whatever size it used to have. Come to think of it, wouldn&apos;t intersection observer do the same thing?

If a node was in the document and intersection observer notified of its current position, wouldn&apos;t removing the node result in another notification?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800751</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-05 14:12:05 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #6)
&gt; (In reply to Chris Dumez from comment #5)
&gt; &gt; (In reply to Simon Fraser (smfr) from comment #4)
&gt; &gt; &gt; Does Resize Observer need the same fix?
&gt; &gt; 
&gt; &gt; I&apos;ll check but I doubt we&apos;d expect a resize observation to ever be sent for
&gt; &gt; a detached element?
&gt; 
&gt; I think we do for the initial observation. Also, right after the element got
&gt; detached from the document because then the element becomes (0, 0) instead
&gt; of whatever size it used to have. Come to think of it, wouldn&apos;t intersection
&gt; observer do the same thing?
&gt; 
&gt; If a node was in the document and intersection observer notified of its
&gt; current position, wouldn&apos;t removing the node result in another notification?

I am adding a test to cover the case where the target is initially visible and then we remove it from the document (it does trigger an observation notification in the intersection handler case).

I will need to test the resize observer too. It may well have the exact same bug based on your comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800762</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-05 14:22:00 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #6)
&gt; (In reply to Chris Dumez from comment #5)
&gt; &gt; (In reply to Simon Fraser (smfr) from comment #4)
&gt; &gt; &gt; Does Resize Observer need the same fix?
&gt; &gt; 
&gt; &gt; I&apos;ll check but I doubt we&apos;d expect a resize observation to ever be sent for
&gt; &gt; a detached element?
&gt; 
&gt; I think we do for the initial observation. Also, right after the element got
&gt; detached from the document because then the element becomes (0, 0) instead
&gt; of whatever size it used to have. Come to think of it, wouldn&apos;t intersection
&gt; observer do the same thing?

Based on my local testing, the same test does not crash for the resize observer. We don&apos;t dispatch an initial observation at all it seems when the element is initially disconnected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800769</commentid>
    <comment_count>9</comment_count>
      <attachid>440270</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-05 14:33:51 -0700</bug_when>
    <thetext>Created attachment 440270
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800774</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-05 14:38:31 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #8)
&gt; (In reply to Ryosuke Niwa from comment #6)
&gt; &gt; (In reply to Chris Dumez from comment #5)
&gt; &gt; &gt; (In reply to Simon Fraser (smfr) from comment #4)
&gt; &gt; &gt; &gt; Does Resize Observer need the same fix?
&gt; &gt; &gt; 
&gt; &gt; &gt; I&apos;ll check but I doubt we&apos;d expect a resize observation to ever be sent for
&gt; &gt; &gt; a detached element?
&gt; &gt; 
&gt; &gt; I think we do for the initial observation. Also, right after the element got
&gt; &gt; detached from the document because then the element becomes (0, 0) instead
&gt; &gt; of whatever size it used to have. Come to think of it, wouldn&apos;t intersection
&gt; &gt; observer do the same thing?
&gt; 
&gt; Based on my local testing, the same test does not crash for the resize
&gt; observer. We don&apos;t dispatch an initial observation at all it seems when the
&gt; element is initially disconnected.

I&apos;ll add some corresponding resize observer tests in a separate patch. I could not get them to hit the assertion though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800827</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-05 16:04:56 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #8)

&gt; Based on my local testing, the same test does not crash for the resize
&gt; observer. We don&apos;t dispatch an initial observation at all it seems when the
&gt; element is initially disconnected.

That would make a nice layout/wpt test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800879</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-05 17:16:40 -0700</bug_when>
    <thetext>Committed r283590 (?): &lt;https://commits.webkit.org/r283590&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 440270.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440227</attachid>
            <date>2021-10-05 10:05:43 -0700</date>
            <delta_ts>2021-10-05 11:41:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231235-20211005100542.patch</filename>
            <type>text/plain</type>
            <size>10520</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDhkOTE1Nzc0MGIxYWQ2
NWE0NjhiMzk2NjMwODA2OTZiNGJhMzhjMS4uODA3OTYzY2M0YmE5YmNmOGQ2YjZjMDNmNWQ4NTMw
MTllNThjMWU4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIxLTEwLTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQVNTRVJUKG1fY2FsbGJhY2st
Pmhhc0NhbGxiYWNrKCkpIHVuZGVyIEludGVyc2VjdGlvbk9ic2VydmVyOjpub3RpZnkoKQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMjM1CisgICAg
ICAgIDxyZGFyOi8vODA4Mzc2MTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIncyBKUyBjYWxsYmFjayBzdGF5cyBh
bGl2ZSBhcyBsb25nIGFzIGl0cyBKUyB3cmFwcGVyIGFuZAorICAgICAgICBpdHMgSlMgd3JhcHBl
cidzIGxpZmV0aW1lIHJlbGllcyBvbiB0aGUgSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OmlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKCkKKyAgICAgICAgaW1wbGVtZW50YXRpb24uIGlzUmVhY2hhYmxl
RnJvbU9wYXF1ZVJvb3RzKCkga2VlcHMgdGhlIHdyYXBwZXIgYWxpdmUgYXMgbG9uZworICAgICAg
ICBhcyB0aGUgSlMgd3JhcHBlcnMgb2Ygb2JzZXJ2YXRpb24gLyBwZW5kaW5nIHRhcmdldHMgYXJl
IGFsaXZlLiBIb3dldmVyLCBhcyBwZXIgc3BlY2lmaWNhdGlvbiwKKyAgICAgICAgd2UgYWx3YXlz
IG5lZWQgdG8gZGlzcGF0Y2ggYW4gb2JzZXJ2YXRpb24gZm9yIGFuIG9ic2VydmF0aW9uIHRhcmdl
dCwgZXZlbiBpZiB0aGF0IHRhcmdldAorICAgICAgICBpcyBub3QgY29ubmVjdGVkLiBPdXIgY29k
ZSB3YXMgYWxyZWFkeSB0YWtpbmcgY2FyZSBvZiBkaXNwYXRjaGluZyBzdWNoIG9ic2VydmF0aW9u
LiBIb3dldmVyLAorICAgICAgICB0aGVyZSB3YXMgbm90aGluZyBrZWVwaW5nIHRoZSBvYnNlcnZh
dGlvbiB0YXJnZXQgYWxpdmUgaW4gdGhpcyBjYXNlIGFuZCB0aHVzIG5vdGhpbmcga2VlcGluZwor
ICAgICAgICB0aGUgSlMgY2FsbGJhY2sgYWxpdmUgZWl0aGVyLgorCisgICAgICAgIFRvIGFkZHJl
c3MgdGhlIGlzc3VlLCBJIGFtIGludHJvZHVjaW5nIGEgbmV3IG1fdGFyZ2V0c1dhaXRpbmdGb3JG
aXJzdE9ic2VydmF0aW9uIGRhdGEgbWVtYmVyCisgICAgICAgIHdoaWNoIGhvbGRzIGEgc3Ryb25n
IHJlZiB0byB0aGUgb2JzZXJ2YXRpb24gdGFyZ2V0IHVudGlsIHRoZSBuZXh0IHRpbWUgd2UgY2Fs
bCBub3RpZnkoKS4KKyAgICAgICAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgdGhlIG9ic2VydmF0aW9u
IHRhcmdldCBzdGF5cyBhbGl2ZSBsb25nIGVub3VnaCBmb3IgdXMgdG8gZGlzcGF0Y2ggdGhlCisg
ICAgICAgIGZpcnN0IG9ic2VydmF0aW9uIGZvciBpdC4gSSBhbHNvIHVwZGF0ZWQgaXNSZWFjaGFi
bGVGcm9tT3BhcXVlUm9vdHMoKSB0byByZXR1cm4gdHJ1ZSBhcyBsb25nCisgICAgICAgIGFzIG1f
dGFyZ2V0c1dhaXRpbmdGb3JGaXJzdE9ic2VydmF0aW9uIGlzIG5vbi1lbXB0eSBzbyB0aGF0IHRo
ZSBJbnRlcnNlY3Rpb25PYnNlcnZlcidzIEpTCisgICAgICAgIHdyYXBwZXIgKGFuZCB0aHVzIHRo
ZSBKUyBjYWxsYmFjaykgc3RheSBhbGl2ZSBsb25nIGVub3VnaCB0b28uCisKKyAgICAgICAgTm90
ZSB0aGF0IEkgZGlkIG5vdCB0YWtlIGFueSBzdGVwIHRvIGtlZXAgdGhlIG9ic2VydmF0aW9uIHRh
cmdldCdzIHdyYXBwZXIgYWxpdmUuIFdlIGNvdWxkIGRvCisgICAgICAgIHNvIGJ1dCBJIGFtIG5v
dCBjb252aW5jZWQgdGhpcyBpcyByZXF1aXJlZC4gQXMgbG9uZyBhcyB0aGUgdGFyZ2V0IGlzIGFs
aXZlIGF0IHRoZSB0aW1lIHRoZQorICAgICAgICBvYnNlcnZhdGlvbiBpcyBkaXNwYXRjaGVkLCBh
IG5ldyBKUyB3cmFwcGVyIGNhbiBnZXQgcmUtY3JlYXRlZCBpZiBuZWNlc3NhcnkuCisKKyAgICAg
ICAgVGVzdHM6IGludGVyc2VjdGlvbi1vYnNlcnZlci9vYnNlcnZlLWRpc2Nvbm5lY3RlZC10YXJn
ZXQtY3Jhc2guaHRtbAorICAgICAgICAgICAgICAgaW50ZXJzZWN0aW9uLW9ic2VydmVyL29ic2Vy
dmUtZGlzY29ubmVjdGVkLXRhcmdldC5odG1sCisKKyAgICAgICAgKiBwYWdlL0ludGVyc2VjdGlv
bk9ic2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVyc2VjdGlvbk9ic2VydmVyOjpv
YnNlcnZlKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVyc2VjdGlvbk9ic2VydmVyOjp1bm9ic2Vy
dmUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OnJlbW92ZUFsbFRh
cmdldHMpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJzZWN0aW9uT2JzZXJ2ZXI6Om5vdGlmeSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcnNlY3Rpb25PYnNlcnZlcjo6aXNSZWFjaGFibGVGcm9t
T3BhcXVlUm9vdHMgY29uc3QpOgorICAgICAgICAqIHBhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIu
aDoKKwogMjAyMS0xMC0wNSAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0lGQ11bSW50ZWdyYXRpb25dIEVuYWJsZSBmaXJzdC1saW5lIHN0eWxlIGZvciBtb2Rlcm4g
bGluZSBsYXlvdXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9u
T2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5j
cHAKaW5kZXggOTA1Mjg0NTc0Yzk5YzRjYTdkNmRmOGViMjQzOWQxY2EwYTQxOTI1NC4uNTJiMDJl
NWM1NzFlZTAyMDZhODFkMjdkZjU3ZWJiMjZjMGU1N2MyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5jcHAKQEAgLTE2OSw2ICsxNjksMTEgQEAgdm9pZCBJ
bnRlcnNlY3Rpb25PYnNlcnZlcjo6b2JzZXJ2ZShFbGVtZW50JiB0YXJnZXQpCiAgICAgYm9vbCBo
YWRPYnNlcnZhdGlvblRhcmdldHMgPSBoYXNPYnNlcnZhdGlvblRhcmdldHMoKTsKICAgICBtX29i
c2VydmF0aW9uVGFyZ2V0cy5hcHBlbmQobWFrZVdlYWtQdHIodGFyZ2V0KSk7CiAKKyAgICAvLyBQ
ZXIgdGhlIHNwZWNpZmljYXRpb24sIHdlIHNob3VsZCBkaXNwYXRjaCBhdCBsZWFzdCBvbmUgb2Jz
ZXJ2YXRpb24gZm9yIHRoZSB0YXJnZXQuIEZvciB0aGlzIHJlYXNvbiwgd2UgbWFrZSBzdXJlIHRv
IGtlZXAgdGhlCisgICAgLy8gdGFyZ2V0IGFsaXZlIHVudGlsIHRoaXMgZmlyc3Qgb2JzZXJ2YXRp
b24uIFRoaXMsIGluIHR1cm4sIHdpbGwga2VlcCB0aGUgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIncyBK
UyB3cmFwcGVyIGFsaXZlIHZpYQorICAgIC8vIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKCks
IHNvIHRoZSBjYWxsYmFjayBzdGF5cyBhbGl2ZS4KKyAgICBtX3RhcmdldHNXYWl0aW5nRm9yRmly
c3RPYnNlcnZhdGlvbi5hcHBlbmQodGFyZ2V0KTsKKwogICAgIGF1dG8qIGRvY3VtZW50ID0gdHJh
Y2tpbmdEb2N1bWVudCgpOwogICAgIGlmICghaGFkT2JzZXJ2YXRpb25UYXJnZXRzKQogICAgICAg
ICBkb2N1bWVudC0+YWRkSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKnRoaXMpOwpAQCAtMTgyLDYgKzE4
Nyw3IEBAIHZvaWQgSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OnVub2JzZXJ2ZShFbGVtZW50JiB0YXJn
ZXQpCiAKICAgICBib29sIHJlbW92ZWQgPSBtX29ic2VydmF0aW9uVGFyZ2V0cy5yZW1vdmVGaXJz
dCgmdGFyZ2V0KTsKICAgICBBU1NFUlRfVU5VU0VEKHJlbW92ZWQsIHJlbW92ZWQpOworICAgIG1f
dGFyZ2V0c1dhaXRpbmdGb3JGaXJzdE9ic2VydmF0aW9uLnJlbW92ZUZpcnN0KHRhcmdldCk7CiAK
ICAgICBpZiAoIWhhc09ic2VydmF0aW9uVGFyZ2V0cygpKSB7CiAgICAgICAgIGlmIChhdXRvKiBk
b2N1bWVudCA9IHRyYWNraW5nRG9jdW1lbnQoKSkKQEAgLTIwNyw2ICsyMTMsNyBAQCBhdXRvIElu
dGVyc2VjdGlvbk9ic2VydmVyOjp0YWtlUmVjb3JkcygpIC0+IFRha2VuUmVjb3Jkcwogdm9pZCBJ
bnRlcnNlY3Rpb25PYnNlcnZlcjo6dGFyZ2V0RGVzdHJveWVkKEVsZW1lbnQmIHRhcmdldCkKIHsK
ICAgICBtX29ic2VydmF0aW9uVGFyZ2V0cy5yZW1vdmVGaXJzdCgmdGFyZ2V0KTsKKyAgICBtX3Rh
cmdldHNXYWl0aW5nRm9yRmlyc3RPYnNlcnZhdGlvbi5yZW1vdmVGaXJzdCh0YXJnZXQpOwogICAg
IGlmICghaGFzT2JzZXJ2YXRpb25UYXJnZXRzKCkpIHsKICAgICAgICAgaWYgKGF1dG8qIGRvY3Vt
ZW50ID0gdHJhY2tpbmdEb2N1bWVudCgpKQogICAgICAgICAgICAgZG9jdW1lbnQtPnJlbW92ZUlu
dGVyc2VjdGlvbk9ic2VydmVyKCp0aGlzKTsKQEAgLTIzMiw2ICsyMzksNyBAQCB2b2lkIEludGVy
c2VjdGlvbk9ic2VydmVyOjpyZW1vdmVBbGxUYXJnZXRzKCkKICAgICAgICAgQVNTRVJUX1VOVVNF
RChyZW1vdmVkLCByZW1vdmVkKTsKICAgICB9CiAgICAgbV9vYnNlcnZhdGlvblRhcmdldHMuY2xl
YXIoKTsKKyAgICBtX3RhcmdldHNXYWl0aW5nRm9yRmlyc3RPYnNlcnZhdGlvbi5jbGVhcigpOwog
fQogCiB2b2lkIEludGVyc2VjdGlvbk9ic2VydmVyOjpyb290RGVzdHJveWVkKCkKQEAgLTI3Myw2
ICsyODEsNyBAQCB2b2lkIEludGVyc2VjdGlvbk9ic2VydmVyOjpub3RpZnkoKQogICAgIH0KIAog
ICAgIGF1dG8gdGFrZW5SZWNvcmRzID0gdGFrZVJlY29yZHMoKTsKKyAgICBhdXRvIHRhcmdldHNX
YWl0aW5nRm9yRmlyc3RPYnNlcnZhdGlvbiA9IHN0ZDo6ZXhjaGFuZ2UobV90YXJnZXRzV2FpdGlu
Z0ZvckZpcnN0T2JzZXJ2YXRpb24sIHsgfSk7CiAKICAgICAvLyBGSVhNRTogVGhlIEpTSW50ZXJz
ZWN0aW9uT2JzZXJ2ZXIgd3JhcHBlciBzaG91bGQgYmUga2VwdCBhbGl2ZSBhcyBsb25nIGFzIHRo
ZSBpbnRlcnNlY3Rpb24gb2JzZXJ2ZXIgY2FuIGZpcmUgZXZlbnRzLgogICAgIEFTU0VSVChtX2Nh
bGxiYWNrLT5oYXNDYWxsYmFjaygpKTsKQEAgLTI5OCw3ICszMDcsNyBAQCBib29sIEludGVyc2Vj
dGlvbk9ic2VydmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkFic3RyYWN0U2xv
dFZpc2l0b3ImCiAgICAgICAgIGlmICh2aXNpdG9yLmNvbnRhaW5zT3BhcXVlUm9vdCh0YXJnZXQt
Pm9wYXF1ZVJvb3QoKSkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0
dXJuIGZhbHNlOworICAgIHJldHVybiAhbV90YXJnZXRzV2FpdGluZ0ZvckZpcnN0T2JzZXJ2YXRp
b24uaXNFbXB0eSgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmgKaW5kZXggYzEyYzgyNmNhOTllM2JmODdlOWRk
ODYyZWEyNjVhN2E1NGZmOWE2Ny4uZTk3ZWVhNzY3N2NiN2MyM2RlNjVkYTE4MDIzYmUyZGM0ZTEx
MTUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuaApAQCAt
MTIwLDYgKzEyMCw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFdlYWtQdHI8RWxlbWVudD4+IG1f
b2JzZXJ2YXRpb25UYXJnZXRzOwogICAgIFZlY3RvcjxHQ1JlYWNoYWJsZVJlZjxFbGVtZW50Pj4g
bV9wZW5kaW5nVGFyZ2V0czsKICAgICBWZWN0b3I8UmVmPEludGVyc2VjdGlvbk9ic2VydmVyRW50
cnk+PiBtX3F1ZXVlZEVudHJpZXM7CisgICAgVmVjdG9yPFJlZjxFbGVtZW50Pj4gbV90YXJnZXRz
V2FpdGluZ0ZvckZpcnN0T2JzZXJ2YXRpb247CiB9OwogCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjYWVlMjEwYjljMzEw
NGRhZjI3YWM2YzhmODNiOGRlYTQ4ZmY5NTcyLi5jYTQ0MDVmMTY1NzM0MzlmMTQ5ZDhjZGE1MmM1
NjMwYzUxZjE4NGMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMTAtMDUgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBU1NFUlQobV9jYWxsYmFjay0+aGFz
Q2FsbGJhY2soKSkgdW5kZXIgSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6Om5vdGlmeSgpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEyMzUKKyAgICAgICAg
PHJkYXI6Ly84MDgzNzYxNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgbGF5b3V0IHRlc3QgY292ZXJhZ2UgYm90aCBmb3IgdGhlIGNyYXNoIGFu
ZCB0aGUgV2ViIGZhY2luZyBiZWhhdmlvci4KKworICAgICAgICAqIGludGVyc2VjdGlvbi1vYnNl
cnZlci9vYnNlcnZlLWRpc2Nvbm5lY3RlZC10YXJnZXQtY3Jhc2gtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBpbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvb2JzZXJ2ZS1kaXNjb25uZWN0ZWQt
dGFyZ2V0LWNyYXNoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGludGVyc2VjdGlvbi1vYnNlcnZl
ci9vYnNlcnZlLWRpc2Nvbm5lY3RlZC10YXJnZXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBpbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvb2JzZXJ2ZS1kaXNjb25uZWN0ZWQtdGFyZ2V0Lmh0
bWw6IEFkZGVkLgorCiAyMDIxLTEwLTA1ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBbSUZDXVtJbnRlZ3JhdGlvbl0gRW5hYmxlIGZpcnN0LWxpbmUgc3R5bGUgZm9y
IG1vZGVybiBsaW5lIGxheW91dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9u
LW9ic2VydmVyL29ic2VydmUtZGlzY29ubmVjdGVkLXRhcmdldC1jcmFzaC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvb2JzZXJ2ZS1kaXNjb25uZWN0ZWQt
dGFyZ2V0LWNyYXNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MzBlYmY2NmEwZGE0OTgwMDE3
ZTliYzAzN2M2ZTNmODRhYjdlNzllCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW50
ZXJzZWN0aW9uLW9ic2VydmVyL29ic2VydmUtZGlzY29ubmVjdGVkLXRhcmdldC1jcmFzaC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSBAQAorVGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBkb2Vzbid0IGNy
YXNoLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL29ic2Vy
dmUtZGlzY29ubmVjdGVkLXRhcmdldC1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvaW50ZXJzZWN0
aW9uLW9ic2VydmVyL29ic2VydmUtZGlzY29ubmVjdGVkLXRhcmdldC1jcmFzaC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjAyZmNhMGFkNTQ2YWI5ODhmNDUxYzkzODViYmM1ZDU0NWQ2ZDkwZDgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvb2JzZXJ2ZS1kaXNj
b25uZWN0ZWQtdGFyZ2V0LWNyYXNoLmh0bWwKQEAgLTAsMCArMSwyMCBAQAorPHA+VGhpcyB0ZXN0
IHBhc3NlcyBpZiBpdCBkb2Vzbid0IGNyYXNoLjwvcD4KKzxzY3JpcHQ+CisgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOworICB9CisgIG9ubG9hZCA9IGFzeW5jICgpID0+IHsKKyAgICBm
b3IgKGxldCBpID0gMDsgaSA8IDg7IGkrKykgeworICAgICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7CisgICAgfQorICAgIGZvciAobGV0IGkgPSAwOyBpIDwgODsgaSsrKSB7CisgICAg
ICBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKCkgPT4ge30pOworICAgIH0KKyAgICBsZXQgaW50
ZXJzZWN0aW9uT2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKCkgPT4ge30pOwor
ICAgIGF3YWl0IGludGVyc2VjdGlvbk9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2JykpOworICAgIG5ldyBJbWFnZURhdGEoMTAwMCwgMTAwMDApOworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICB9Owor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIv
b2JzZXJ2ZS1kaXNjb25uZWN0ZWQtdGFyZ2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
dGVyc2VjdGlvbi1vYnNlcnZlci9vYnNlcnZlLWRpc2Nvbm5lY3RlZC10YXJnZXQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjFkNGI2OTY2ODdlNTY3MjgxYTRhNjdlYWIwN2ZkN2RjNzcwMWQwNzkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvb2Jz
ZXJ2ZS1kaXNjb25uZWN0ZWQtdGFyZ2V0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitU
ZXN0cyB0aGF0IGFuIG9ic2VydmF0aW9uIGlzIHJlY2VpdmVkIHdoZW4gY2FsbGluZyBJbnRlcnNl
Y3Rpb25PYnNlcnZlci5vYnNlcnZlKCkgd2l0aCBhIGRpc2Nvbm5lY3RlZCB0YXJnZXQuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlY2VpdmVkT2JzZXJ2YXRpb25zIGlz
IGZhbHNlCitQQVNTIG9ic2VydmF0aW9ucy5sZW5ndGggaXMgMQorUEFTUyBvYnNlcnZhdGlvbnNb
MF0udGFyZ2V0LnRhZ05hbWUgaXMgIkRJViIKK1BBU1Mgb2JzZXJ2YXRpb25zWzBdLmlzSW50ZXJz
ZWN0aW5nIGlzIGZhbHNlCitQQVNTIG9ic2VydmF0aW9uc1swXS5pbnRlcnNlY3Rpb25SYXRpbyBp
cyAwLjAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvb2JzZXJ2ZS1k
aXNjb25uZWN0ZWQtdGFyZ2V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2
ZXIvb2JzZXJ2ZS1kaXNjb25uZWN0ZWQtdGFyZ2V0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM5MjAyZDk0
ZTBiOTI0NDQxZmUzMmYxYzE1YWFiMzI1MzMwZTQzNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9vYnNlcnZlLWRpc2Nvbm5lY3RlZC10YXJnZXQu
aHRtbApAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
KyAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYW4gb2JzZXJ2YXRpb24gaXMgcmVjZWl2ZWQgd2hl
biBjYWxsaW5nIEludGVyc2VjdGlvbk9ic2VydmVyLm9ic2VydmUoKSB3aXRoIGEgZGlzY29ubmVj
dGVkIHRhcmdldC4iKTsKKyAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgbGV0IHJlY2VpdmVk
T2JzZXJ2YXRpb25zID0gZmFsc2U7CisgIG9ubG9hZCA9ICgpID0+IHsKKyAgICBsZXQgaW50ZXJz
ZWN0aW9uT2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKF9vYnNlcnZhdGlvbnMp
ID0+IHsKKyAgICAgIG9ic2VydmF0aW9ucyA9IF9vYnNlcnZhdGlvbnM7CisKKyAgICAgIHNob3Vs
ZEJlRmFsc2UoInJlY2VpdmVkT2JzZXJ2YXRpb25zIik7CisgICAgICByZWNlaXZlZE9ic2VydmF0
aW9ucyA9IHRydWU7CisKKyAgICAgIHNob3VsZEJlKCJvYnNlcnZhdGlvbnMubGVuZ3RoIiwgIjEi
KTsKKyAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygib2JzZXJ2YXRpb25zWzBdLnRhcmdldC50
YWdOYW1lIiwgIkRJViIpOworICAgICAgc2hvdWxkQmVGYWxzZSgib2JzZXJ2YXRpb25zWzBdLmlz
SW50ZXJzZWN0aW5nIik7CisgICAgICBzaG91bGRCZSgib2JzZXJ2YXRpb25zWzBdLmludGVyc2Vj
dGlvblJhdGlvIiwgIjAuMCIpOworICAgICAgc2V0VGltZW91dChmaW5pc2hKU1Rlc3QsIDEwMCk7
CisgICAgfSk7CisgICAgaW50ZXJzZWN0aW9uT2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKSk7CisgICAgZ2MoKTsKKyAgICBzZXRUaW1lb3V0KGdjLCAwKTsKKyAg
fTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440240</attachid>
            <date>2021-10-05 11:41:42 -0700</date>
            <delta_ts>2021-10-05 14:33:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231235-20211005114141.patch</filename>
            <type>text/plain</type>
            <size>10557</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDhkOTE1Nzc0MGIxYWQ2
NWE0NjhiMzk2NjMwODA2OTZiNGJhMzhjMS4uYzAxZGUwNWNmZGRkMTU0YWUxZDQ0OWNiMWVlMTUy
ZGZlNzhhMzJkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIxLTEwLTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQVNTRVJUKG1fY2FsbGJhY2st
Pmhhc0NhbGxiYWNrKCkpIHVuZGVyIEludGVyc2VjdGlvbk9ic2VydmVyOjpub3RpZnkoKQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMjM1CisgICAg
ICAgIDxyZGFyOi8vODA4Mzc2MTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIncyBKUyBjYWxsYmFjayBzdGF5cyBh
bGl2ZSBhcyBsb25nIGFzIGl0cyBKUyB3cmFwcGVyIGFuZAorICAgICAgICBpdHMgSlMgd3JhcHBl
cidzIGxpZmV0aW1lIHJlbGllcyBvbiB0aGUgSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OmlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKCkKKyAgICAgICAgaW1wbGVtZW50YXRpb24uIGlzUmVhY2hhYmxl
RnJvbU9wYXF1ZVJvb3RzKCkga2VlcHMgdGhlIHdyYXBwZXIgYWxpdmUgYXMgbG9uZworICAgICAg
ICBhcyB0aGUgSlMgd3JhcHBlcnMgb2Ygb2JzZXJ2YXRpb24gLyBwZW5kaW5nIHRhcmdldHMgYXJl
IGFsaXZlLiBIb3dldmVyLCBhcyBwZXIgc3BlY2lmaWNhdGlvbiwKKyAgICAgICAgd2UgYWx3YXlz
IG5lZWQgdG8gZGlzcGF0Y2ggYW4gb2JzZXJ2YXRpb24gZm9yIGFuIG9ic2VydmF0aW9uIHRhcmdl
dCwgZXZlbiBpZiB0aGF0IHRhcmdldAorICAgICAgICBpcyBub3QgY29ubmVjdGVkLiBPdXIgY29k
ZSB3YXMgYWxyZWFkeSB0YWtpbmcgY2FyZSBvZiBkaXNwYXRjaGluZyBzdWNoIG9ic2VydmF0aW9u
LiBIb3dldmVyLAorICAgICAgICB0aGVyZSB3YXMgbm90aGluZyBrZWVwaW5nIHRoZSBvYnNlcnZh
dGlvbiB0YXJnZXQgYWxpdmUgaW4gdGhpcyBjYXNlIGFuZCB0aHVzIG5vdGhpbmcga2VlcGluZwor
ICAgICAgICB0aGUgSlMgY2FsbGJhY2sgYWxpdmUgZWl0aGVyLgorCisgICAgICAgIFRvIGFkZHJl
c3MgdGhlIGlzc3VlLCBJIGFtIGludHJvZHVjaW5nIGEgbmV3IG1fdGFyZ2V0c1dhaXRpbmdGb3JG
aXJzdE9ic2VydmF0aW9uIGRhdGEgbWVtYmVyCisgICAgICAgIHdoaWNoIGhvbGRzIGEgc3Ryb25n
IHJlZiB0byB0aGUgb2JzZXJ2YXRpb24gdGFyZ2V0IHVudGlsIHRoZSBuZXh0IHRpbWUgd2UgY2Fs
bCBub3RpZnkoKS4KKyAgICAgICAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgdGhlIG9ic2VydmF0aW9u
IHRhcmdldCAoYW5kIGl0cyBKUyB3cmFwcGVyKSBzdGF5cyBhbGl2ZSBsb25nIGVub3VnaCBmb3IK
KyAgICAgICAgdXMgdG8gZGlzcGF0Y2ggdGhlIGZpcnN0IG9ic2VydmF0aW9uIGZvciBpdC4gSSBh
bHNvIHVwZGF0ZWQgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoKSB0bworICAgICAgICByZXR1
cm4gdHJ1ZSBhcyBsb25nIGFzIG1fdGFyZ2V0c1dhaXRpbmdGb3JGaXJzdE9ic2VydmF0aW9uIGlz
IG5vbi1lbXB0eSBzbyB0aGF0IHRoZQorICAgICAgICBJbnRlcnNlY3Rpb25PYnNlcnZlcidzIEpT
IHdyYXBwZXIgKGFuZCB0aHVzIHRoZSBKUyBjYWxsYmFjaykgc3RheSBhbGl2ZSBsb25nIGVub3Vn
aCB0b28uCisKKyAgICAgICAgVGVzdHM6IGludGVyc2VjdGlvbi1vYnNlcnZlci9vYnNlcnZlLWRp
c2Nvbm5lY3RlZC10YXJnZXQtY3Jhc2guaHRtbAorICAgICAgICAgICAgICAgaW50ZXJzZWN0aW9u
LW9ic2VydmVyL29ic2VydmUtZGlzY29ubmVjdGVkLXRhcmdldC5odG1sCisKKyAgICAgICAgKiBw
YWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVyc2Vj
dGlvbk9ic2VydmVyOjpvYnNlcnZlKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVyc2VjdGlvbk9i
c2VydmVyOjp1bm9ic2VydmUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJzZWN0aW9uT2JzZXJ2
ZXI6OnJlbW92ZUFsbFRhcmdldHMpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXI6Om5vdGlmeSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcnNlY3Rpb25PYnNlcnZlcjo6
aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMgY29uc3QpOgorICAgICAgICAqIHBhZ2UvSW50ZXJz
ZWN0aW9uT2JzZXJ2ZXIuaDoKKwogMjAyMS0xMC0wNSAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0lGQ11bSW50ZWdyYXRpb25dIEVuYWJsZSBmaXJzdC1saW5lIHN0
eWxlIGZvciBtb2Rlcm4gbGluZSBsYXlvdXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNl
Y3Rpb25PYnNlcnZlci5jcHAKaW5kZXggOTA1Mjg0NTc0Yzk5YzRjYTdkNmRmOGViMjQzOWQxY2Ew
YTQxOTI1NC4uM2EyMzA4YWE2YTVjNDU3YzZhMWI5MmYxODE5ZGU3MmEzNTQyMmRlZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5jcHAKQEAgLTE2OSw2ICsx
NjksMTEgQEAgdm9pZCBJbnRlcnNlY3Rpb25PYnNlcnZlcjo6b2JzZXJ2ZShFbGVtZW50JiB0YXJn
ZXQpCiAgICAgYm9vbCBoYWRPYnNlcnZhdGlvblRhcmdldHMgPSBoYXNPYnNlcnZhdGlvblRhcmdl
dHMoKTsKICAgICBtX29ic2VydmF0aW9uVGFyZ2V0cy5hcHBlbmQobWFrZVdlYWtQdHIodGFyZ2V0
KSk7CiAKKyAgICAvLyBQZXIgdGhlIHNwZWNpZmljYXRpb24sIHdlIHNob3VsZCBkaXNwYXRjaCBh
dCBsZWFzdCBvbmUgb2JzZXJ2YXRpb24gZm9yIHRoZSB0YXJnZXQuIEZvciB0aGlzIHJlYXNvbiwg
d2UgbWFrZSBzdXJlIHRvIGtlZXAgdGhlCisgICAgLy8gdGFyZ2V0IGFsaXZlIHVudGlsIHRoaXMg
Zmlyc3Qgb2JzZXJ2YXRpb24uIFRoaXMsIGluIHR1cm4sIHdpbGwga2VlcCB0aGUgSW50ZXJzZWN0
aW9uT2JzZXJ2ZXIncyBKUyB3cmFwcGVyIGFsaXZlIHZpYQorICAgIC8vIGlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKCksIHNvIHRoZSBjYWxsYmFjayBzdGF5cyBhbGl2ZS4KKyAgICBtX3Rhcmdl
dHNXYWl0aW5nRm9yRmlyc3RPYnNlcnZhdGlvbi5hcHBlbmQodGFyZ2V0KTsKKwogICAgIGF1dG8q
IGRvY3VtZW50ID0gdHJhY2tpbmdEb2N1bWVudCgpOwogICAgIGlmICghaGFkT2JzZXJ2YXRpb25U
YXJnZXRzKQogICAgICAgICBkb2N1bWVudC0+YWRkSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKnRoaXMp
OwpAQCAtMTgyLDYgKzE4Nyw3IEBAIHZvaWQgSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OnVub2JzZXJ2
ZShFbGVtZW50JiB0YXJnZXQpCiAKICAgICBib29sIHJlbW92ZWQgPSBtX29ic2VydmF0aW9uVGFy
Z2V0cy5yZW1vdmVGaXJzdCgmdGFyZ2V0KTsKICAgICBBU1NFUlRfVU5VU0VEKHJlbW92ZWQsIHJl
bW92ZWQpOworICAgIG1fdGFyZ2V0c1dhaXRpbmdGb3JGaXJzdE9ic2VydmF0aW9uLnJlbW92ZUZp
cnN0TWF0Y2hpbmcoWyZdKGF1dG8mIHBlbmRpbmdUYXJnZXQpIHsgcmV0dXJuIHBlbmRpbmdUYXJn
ZXQucHRyKCkgPT0gJnRhcmdldDsgfSk7CiAKICAgICBpZiAoIWhhc09ic2VydmF0aW9uVGFyZ2V0
cygpKSB7CiAgICAgICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IHRyYWNraW5nRG9jdW1lbnQoKSkK
QEAgLTIwNyw2ICsyMTMsNyBAQCBhdXRvIEludGVyc2VjdGlvbk9ic2VydmVyOjp0YWtlUmVjb3Jk
cygpIC0+IFRha2VuUmVjb3Jkcwogdm9pZCBJbnRlcnNlY3Rpb25PYnNlcnZlcjo6dGFyZ2V0RGVz
dHJveWVkKEVsZW1lbnQmIHRhcmdldCkKIHsKICAgICBtX29ic2VydmF0aW9uVGFyZ2V0cy5yZW1v
dmVGaXJzdCgmdGFyZ2V0KTsKKyAgICBtX3RhcmdldHNXYWl0aW5nRm9yRmlyc3RPYnNlcnZhdGlv
bi5yZW1vdmVGaXJzdE1hdGNoaW5nKFsmXShhdXRvJiBwZW5kaW5nVGFyZ2V0KSB7IHJldHVybiBw
ZW5kaW5nVGFyZ2V0LnB0cigpID09ICZ0YXJnZXQ7IH0pOwogICAgIGlmICghaGFzT2JzZXJ2YXRp
b25UYXJnZXRzKCkpIHsKICAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gdHJhY2tpbmdEb2N1
bWVudCgpKQogICAgICAgICAgICAgZG9jdW1lbnQtPnJlbW92ZUludGVyc2VjdGlvbk9ic2VydmVy
KCp0aGlzKTsKQEAgLTIzMiw2ICsyMzksNyBAQCB2b2lkIEludGVyc2VjdGlvbk9ic2VydmVyOjpy
ZW1vdmVBbGxUYXJnZXRzKCkKICAgICAgICAgQVNTRVJUX1VOVVNFRChyZW1vdmVkLCByZW1vdmVk
KTsKICAgICB9CiAgICAgbV9vYnNlcnZhdGlvblRhcmdldHMuY2xlYXIoKTsKKyAgICBtX3Rhcmdl
dHNXYWl0aW5nRm9yRmlyc3RPYnNlcnZhdGlvbi5jbGVhcigpOwogfQogCiB2b2lkIEludGVyc2Vj
dGlvbk9ic2VydmVyOjpyb290RGVzdHJveWVkKCkKQEAgLTI3Myw2ICsyODEsNyBAQCB2b2lkIElu
dGVyc2VjdGlvbk9ic2VydmVyOjpub3RpZnkoKQogICAgIH0KIAogICAgIGF1dG8gdGFrZW5SZWNv
cmRzID0gdGFrZVJlY29yZHMoKTsKKyAgICBhdXRvIHRhcmdldHNXYWl0aW5nRm9yRmlyc3RPYnNl
cnZhdGlvbiA9IHN0ZDo6ZXhjaGFuZ2UobV90YXJnZXRzV2FpdGluZ0ZvckZpcnN0T2JzZXJ2YXRp
b24sIHsgfSk7CiAKICAgICAvLyBGSVhNRTogVGhlIEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgd3Jh
cHBlciBzaG91bGQgYmUga2VwdCBhbGl2ZSBhcyBsb25nIGFzIHRoZSBpbnRlcnNlY3Rpb24gb2Jz
ZXJ2ZXIgY2FuIGZpcmUgZXZlbnRzLgogICAgIEFTU0VSVChtX2NhbGxiYWNrLT5oYXNDYWxsYmFj
aygpKTsKQEAgLTI5OCw3ICszMDcsNyBAQCBib29sIEludGVyc2VjdGlvbk9ic2VydmVyOjppc1Jl
YWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkFic3RyYWN0U2xvdFZpc2l0b3ImCiAgICAgICAg
IGlmICh2aXNpdG9yLmNvbnRhaW5zT3BhcXVlUm9vdCh0YXJnZXQtPm9wYXF1ZVJvb3QoKSkpCiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJl
dHVybiAhbV90YXJnZXRzV2FpdGluZ0ZvckZpcnN0T2JzZXJ2YXRpb24uaXNFbXB0eSgpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ludGVyc2VjdGlvbk9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlv
bk9ic2VydmVyLmgKaW5kZXggYzEyYzgyNmNhOTllM2JmODdlOWRkODYyZWEyNjVhN2E1NGZmOWE2
Ny4uNzc2ZWQ3YzllY2EzOTQ5MThkY2M1MDA2YTFmMGJhMzAzNDE1MzdjNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuaApAQCAtMTIwLDYgKzEyMCw3IEBAIHBy
aXZhdGU6CiAgICAgVmVjdG9yPFdlYWtQdHI8RWxlbWVudD4+IG1fb2JzZXJ2YXRpb25UYXJnZXRz
OwogICAgIFZlY3RvcjxHQ1JlYWNoYWJsZVJlZjxFbGVtZW50Pj4gbV9wZW5kaW5nVGFyZ2V0czsK
ICAgICBWZWN0b3I8UmVmPEludGVyc2VjdGlvbk9ic2VydmVyRW50cnk+PiBtX3F1ZXVlZEVudHJp
ZXM7CisgICAgVmVjdG9yPEdDUmVhY2hhYmxlUmVmPEVsZW1lbnQ+PiBtX3RhcmdldHNXYWl0aW5n
Rm9yRmlyc3RPYnNlcnZhdGlvbjsKIH07CiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNhZWUyMTBiOWMzMTA0ZGFmMjdh
YzZjOGY4M2I4ZGVhNDhmZjk1NzIuLmNhNDQwNWYxNjU3MzQzOWYxNDlkOGNkYTUyYzU2MzBjNTFm
MTg0YzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0xMC0wNSAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFTU0VSVChtX2NhbGxiYWNrLT5oYXNDYWxsYmFj
aygpKSB1bmRlciBJbnRlcnNlY3Rpb25PYnNlcnZlcjo6bm90aWZ5KCkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTIzNQorICAgICAgICA8cmRhcjov
LzgwODM3NjE2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZSBib3RoIGZvciB0aGUgY3Jhc2ggYW5kIHRoZSBX
ZWIgZmFjaW5nIGJlaGF2aW9yLgorCisgICAgICAgICogaW50ZXJzZWN0aW9uLW9ic2VydmVyL29i
c2VydmUtZGlzY29ubmVjdGVkLXRhcmdldC1jcmFzaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGludGVyc2VjdGlvbi1vYnNlcnZlci9vYnNlcnZlLWRpc2Nvbm5lY3RlZC10YXJnZXQt
Y3Jhc2guaHRtbDogQWRkZWQuCisgICAgICAgICogaW50ZXJzZWN0aW9uLW9ic2VydmVyL29ic2Vy
dmUtZGlzY29ubmVjdGVkLXRhcmdldC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGlu
dGVyc2VjdGlvbi1vYnNlcnZlci9vYnNlcnZlLWRpc2Nvbm5lY3RlZC10YXJnZXQuaHRtbDogQWRk
ZWQuCisKIDIwMjEtMTAtMDUgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtJRkNdW0ludGVncmF0aW9uXSBFbmFibGUgZmlyc3QtbGluZSBzdHlsZSBmb3IgbW9kZXJu
IGxpbmUgbGF5b3V0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2
ZXIvb2JzZXJ2ZS1kaXNjb25uZWN0ZWQtdGFyZ2V0LWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9vYnNlcnZlLWRpc2Nvbm5lY3RlZC10YXJnZXQt
Y3Jhc2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjczMGViZjY2YTBkYTQ5ODAwMTdlOWJjMDM3
YzZlM2Y4NGFiN2U3OWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rp
b24tb2JzZXJ2ZXIvb2JzZXJ2ZS1kaXNjb25uZWN0ZWQtdGFyZ2V0LWNyYXNoLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxIEBACitUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXNuJ3QgY3Jhc2guCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvb2JzZXJ2ZS1kaXNj
b25uZWN0ZWQtdGFyZ2V0LWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2Jz
ZXJ2ZXIvb2JzZXJ2ZS1kaXNjb25uZWN0ZWQtdGFyZ2V0LWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDJmY2EwYWQ1NDZhYjk4OGY0NTFjOTM4NWJiYzVkNTQ1ZDZkOTBkOAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9vYnNlcnZlLWRpc2Nvbm5lY3Rl
ZC10YXJnZXQtY3Jhc2guaHRtbApAQCAtMCwwICsxLDIwIEBACis8cD5UaGlzIHRlc3QgcGFzc2Vz
IGlmIGl0IGRvZXNuJ3QgY3Jhc2guPC9wPgorPHNjcmlwdD4KKyAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CisgIH0KKyAgb25sb2FkID0gYXN5bmMgKCkgPT4geworICAgIGZvciAobGV0
IGkgPSAwOyBpIDwgODsgaSsrKSB7CisgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKKyAgICB9CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA4OyBpKyspIHsKKyAgICAgIG5ldyBJ
bnRlcnNlY3Rpb25PYnNlcnZlcigoKSA9PiB7fSk7CisgICAgfQorICAgIGxldCBpbnRlcnNlY3Rp
b25PYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoKSA9PiB7fSk7CisgICAgYXdh
aXQgaW50ZXJzZWN0aW9uT2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKSk7CisgICAgbmV3IEltYWdlRGF0YSgxMDAwLCAxMDAwMCk7CisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgIH07Cis8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9vYnNlcnZl
LWRpc2Nvbm5lY3RlZC10YXJnZXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW50ZXJzZWN0
aW9uLW9ic2VydmVyL29ic2VydmUtZGlzY29ubmVjdGVkLXRhcmdldC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDcxMTQ5MzYxODU4YTM1NWQ2YzYwMjkwMjkwZDY3OWM3OWE3MmVlNwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9vYnNlcnZlLWRp
c2Nvbm5lY3RlZC10YXJnZXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3RzIHRo
YXQgYW4gb2JzZXJ2YXRpb24gaXMgcmVjZWl2ZWQgd2hlbiBjYWxsaW5nIEludGVyc2VjdGlvbk9i
c2VydmVyLm9ic2VydmUoKSB3aXRoIGEgZGlzY29ubmVjdGVkIHRhcmdldC4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjZWl2ZWRPYnNlcnZhdGlvbnMgaXMgZmFsc2UK
K1BBU1Mgb2JzZXJ2YXRpb25zLmxlbmd0aCBpcyAxCitQQVNTIG9ic2VydmF0aW9uc1swXS50YXJn
ZXQudGFnTmFtZSBpcyAiRElWIgorUEFTUyBvYnNlcnZhdGlvbnNbMF0uaXNJbnRlcnNlY3Rpbmcg
aXMgZmFsc2UKK1BBU1Mgb2JzZXJ2YXRpb25zWzBdLmludGVyc2VjdGlvblJhdGlvIGlzIDAuMAor
UEFTUyBvYnNlcnZhdGlvbnNbMF0udGFyZ2V0LmZvbyBpcyAxCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW50ZXJzZWN0aW9uLW9ic2VydmVyL29ic2VydmUtZGlzY29ubmVjdGVkLXRhcmdldC5odG1sIGIv
TGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL29ic2VydmUtZGlzY29ubmVjdGVkLXRh
cmdldC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlZDk1OTI2YmU1MDViZWExMjMyMzVlMmY3MzYzNzJiZTky
M2M3ODAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2
ZXIvb2JzZXJ2ZS1kaXNjb25uZWN0ZWQtdGFyZ2V0Lmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0
IGFuIG9ic2VydmF0aW9uIGlzIHJlY2VpdmVkIHdoZW4gY2FsbGluZyBJbnRlcnNlY3Rpb25PYnNl
cnZlci5vYnNlcnZlKCkgd2l0aCBhIGRpc2Nvbm5lY3RlZCB0YXJnZXQuIik7CisgIGpzVGVzdElz
QXN5bmMgPSB0cnVlOworCisgIGxldCByZWNlaXZlZE9ic2VydmF0aW9ucyA9IGZhbHNlOworICBv
bmxvYWQgPSAoKSA9PiB7CisgICAgbGV0IGludGVyc2VjdGlvbk9ic2VydmVyID0gbmV3IEludGVy
c2VjdGlvbk9ic2VydmVyKChfb2JzZXJ2YXRpb25zKSA9PiB7CisgICAgICBnYygpOworICAgICAg
b2JzZXJ2YXRpb25zID0gX29ic2VydmF0aW9uczsKKworICAgICAgc2hvdWxkQmVGYWxzZSgicmVj
ZWl2ZWRPYnNlcnZhdGlvbnMiKTsKKyAgICAgIHJlY2VpdmVkT2JzZXJ2YXRpb25zID0gdHJ1ZTsK
KworICAgICAgc2hvdWxkQmUoIm9ic2VydmF0aW9ucy5sZW5ndGgiLCAiMSIpOworICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJvYnNlcnZhdGlvbnNbMF0udGFyZ2V0LnRhZ05hbWUiLCAiRElW
Iik7CisgICAgICBzaG91bGRCZUZhbHNlKCJvYnNlcnZhdGlvbnNbMF0uaXNJbnRlcnNlY3Rpbmci
KTsKKyAgICAgIHNob3VsZEJlKCJvYnNlcnZhdGlvbnNbMF0uaW50ZXJzZWN0aW9uUmF0aW8iLCAi
MC4wIik7CisgICAgICBzaG91bGRCZSgib2JzZXJ2YXRpb25zWzBdLnRhcmdldC5mb28iLCAiMSIp
OworICAgICAgc2V0VGltZW91dChmaW5pc2hKU1Rlc3QsIDEwMCk7CisgICAgfSk7CisgICAgbGV0
IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGRpdi5mb28gPSAxOwor
ICAgIGludGVyc2VjdGlvbk9ic2VydmVyLm9ic2VydmUoZGl2KTsKKyAgICBkaXYgPSBudWxsOwor
ICAgIGdjKCk7CisgICAgc2V0VGltZW91dChnYywgMCk7CisgIH07Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440270</attachid>
            <date>2021-10-05 14:33:51 -0700</date>
            <delta_ts>2021-10-05 17:16:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231235-20211005143350.patch</filename>
            <type>text/plain</type>
            <size>13224</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGVlODA2ODIxODIzY2Yw
YzRhZDlkZjI1MGJlZjkxYzc1MDU5NGI1NS4uMGMzNzNlMzhkMTllY2I5M2NhNTllYzBiOGM4ODVh
MTYxNmI1NDQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIxLTEwLTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQVNTRVJUKG1fY2FsbGJhY2st
Pmhhc0NhbGxiYWNrKCkpIHVuZGVyIEludGVyc2VjdGlvbk9ic2VydmVyOjpub3RpZnkoKQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMjM1CisgICAg
ICAgIDxyZGFyOi8vODA4Mzc2MTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdh
LgorCisgICAgICAgIEludGVyc2VjdGlvbk9ic2VydmVyJ3MgSlMgY2FsbGJhY2sgc3RheXMgYWxp
dmUgYXMgbG9uZyBhcyBpdHMgSlMgd3JhcHBlciBhbmQKKyAgICAgICAgaXRzIEpTIHdyYXBwZXIn
cyBsaWZldGltZSByZWxpZXMgb24gdGhlIEludGVyc2VjdGlvbk9ic2VydmVyOjppc1JlYWNoYWJs
ZUZyb21PcGFxdWVSb290cygpCisgICAgICAgIGltcGxlbWVudGF0aW9uLiBpc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cygpIGtlZXBzIHRoZSB3cmFwcGVyIGFsaXZlIGFzIGxvbmcKKyAgICAgICAg
YXMgdGhlIEpTIHdyYXBwZXJzIG9mIG9ic2VydmF0aW9uIC8gcGVuZGluZyB0YXJnZXRzIGFyZSBh
bGl2ZS4gSG93ZXZlciwgYXMgcGVyIHNwZWNpZmljYXRpb24sCisgICAgICAgIHdlIGFsd2F5cyBu
ZWVkIHRvIGRpc3BhdGNoIGFuIG9ic2VydmF0aW9uIGZvciBhbiBvYnNlcnZhdGlvbiB0YXJnZXQs
IGV2ZW4gaWYgdGhhdCB0YXJnZXQKKyAgICAgICAgaXMgbm90IGNvbm5lY3RlZC4gT3VyIGNvZGUg
d2FzIGFscmVhZHkgdGFraW5nIGNhcmUgb2YgZGlzcGF0Y2hpbmcgc3VjaCBvYnNlcnZhdGlvbi4g
SG93ZXZlciwKKyAgICAgICAgdGhlcmUgd2FzIG5vdGhpbmcga2VlcGluZyB0aGUgb2JzZXJ2YXRp
b24gdGFyZ2V0IGFsaXZlIGluIHRoaXMgY2FzZSBhbmQgdGh1cyBub3RoaW5nIGtlZXBpbmcKKyAg
ICAgICAgdGhlIEpTIGNhbGxiYWNrIGFsaXZlIGVpdGhlci4KKworICAgICAgICBUbyBhZGRyZXNz
IHRoZSBpc3N1ZSwgSSBhbSBpbnRyb2R1Y2luZyBhIG5ldyBtX3RhcmdldHNXYWl0aW5nRm9yRmly
c3RPYnNlcnZhdGlvbiBkYXRhIG1lbWJlcgorICAgICAgICB3aGljaCBob2xkcyBhIHN0cm9uZyBy
ZWYgdG8gdGhlIG9ic2VydmF0aW9uIHRhcmdldCB1bnRpbCB0aGUgbmV4dCB0aW1lIHdlIGNhbGwg
bm90aWZ5KCkuCisgICAgICAgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IHRoZSBvYnNlcnZhdGlvbiB0
YXJnZXQgKGFuZCBpdHMgSlMgd3JhcHBlcikgc3RheXMgYWxpdmUgbG9uZyBlbm91Z2ggZm9yCisg
ICAgICAgIHVzIHRvIGRpc3BhdGNoIHRoZSBmaXJzdCBvYnNlcnZhdGlvbiBmb3IgaXQuIEkgYWxz
byB1cGRhdGVkIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKCkgdG8KKyAgICAgICAgcmV0dXJu
IHRydWUgYXMgbG9uZyBhcyBtX3RhcmdldHNXYWl0aW5nRm9yRmlyc3RPYnNlcnZhdGlvbiBpcyBu
b24tZW1wdHkgc28gdGhhdCB0aGUKKyAgICAgICAgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIncyBKUyB3
cmFwcGVyIChhbmQgdGh1cyB0aGUgSlMgY2FsbGJhY2spIHN0YXkgYWxpdmUgbG9uZyBlbm91Z2gg
dG9vLgorCisgICAgICAgIFRlc3RzOiBpbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvb2JzZXJ2ZS1kaXNj
b25uZWN0ZWQtdGFyZ2V0LWNyYXNoLmh0bWwKKyAgICAgICAgICAgICAgIGludGVyc2VjdGlvbi1v
YnNlcnZlci9vYnNlcnZlLWRpc2Nvbm5lY3RlZC10YXJnZXQuaHRtbAorCisgICAgICAgICogcGFn
ZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcnNlY3Rp
b25PYnNlcnZlcjo6b2JzZXJ2ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcnNlY3Rpb25PYnNl
cnZlcjo6dW5vYnNlcnZlKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVyc2VjdGlvbk9ic2VydmVy
OjpyZW1vdmVBbGxUYXJnZXRzKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVyc2VjdGlvbk9ic2Vy
dmVyOjpub3RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJzZWN0aW9uT2JzZXJ2ZXI6Omlz
UmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0ludGVyc2Vj
dGlvbk9ic2VydmVyLmg6CisKIDIwMjEtMTAtMDUgIEdhYnJpZWwgTmF2YSBNYXJpbm8gIDxnbmF2
YW1hcmlub0BhcHBsZS5jb20+CiAKICAgICAgICAgSW5jb3JyZWN0IExlbmd0aCBjb25zdHJ1Y3Rv
ciB1c2VkIGFmdGVyIGJsZW5kaW5nIG5lZ2F0aXZlIExlbmd0aApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmNwcAppbmRleCA5MDUyODQ1NzRjOTljNGNhN2Q2ZGY4
ZWIyNDM5ZDFjYTBhNDE5MjU0Li4zYTIzMDhhYTZhNWM0NTdjNmExYjkyZjE4MTlkZTcyYTM1NDIy
ZGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmNwcApA
QCAtMTY5LDYgKzE2OSwxMSBAQCB2b2lkIEludGVyc2VjdGlvbk9ic2VydmVyOjpvYnNlcnZlKEVs
ZW1lbnQmIHRhcmdldCkKICAgICBib29sIGhhZE9ic2VydmF0aW9uVGFyZ2V0cyA9IGhhc09ic2Vy
dmF0aW9uVGFyZ2V0cygpOwogICAgIG1fb2JzZXJ2YXRpb25UYXJnZXRzLmFwcGVuZChtYWtlV2Vh
a1B0cih0YXJnZXQpKTsKIAorICAgIC8vIFBlciB0aGUgc3BlY2lmaWNhdGlvbiwgd2Ugc2hvdWxk
IGRpc3BhdGNoIGF0IGxlYXN0IG9uZSBvYnNlcnZhdGlvbiBmb3IgdGhlIHRhcmdldC4gRm9yIHRo
aXMgcmVhc29uLCB3ZSBtYWtlIHN1cmUgdG8ga2VlcCB0aGUKKyAgICAvLyB0YXJnZXQgYWxpdmUg
dW50aWwgdGhpcyBmaXJzdCBvYnNlcnZhdGlvbi4gVGhpcywgaW4gdHVybiwgd2lsbCBrZWVwIHRo
ZSBJbnRlcnNlY3Rpb25PYnNlcnZlcidzIEpTIHdyYXBwZXIgYWxpdmUgdmlhCisgICAgLy8gaXNS
ZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoKSwgc28gdGhlIGNhbGxiYWNrIHN0YXlzIGFsaXZlLgor
ICAgIG1fdGFyZ2V0c1dhaXRpbmdGb3JGaXJzdE9ic2VydmF0aW9uLmFwcGVuZCh0YXJnZXQpOwor
CiAgICAgYXV0byogZG9jdW1lbnQgPSB0cmFja2luZ0RvY3VtZW50KCk7CiAgICAgaWYgKCFoYWRP
YnNlcnZhdGlvblRhcmdldHMpCiAgICAgICAgIGRvY3VtZW50LT5hZGRJbnRlcnNlY3Rpb25PYnNl
cnZlcigqdGhpcyk7CkBAIC0xODIsNiArMTg3LDcgQEAgdm9pZCBJbnRlcnNlY3Rpb25PYnNlcnZl
cjo6dW5vYnNlcnZlKEVsZW1lbnQmIHRhcmdldCkKIAogICAgIGJvb2wgcmVtb3ZlZCA9IG1fb2Jz
ZXJ2YXRpb25UYXJnZXRzLnJlbW92ZUZpcnN0KCZ0YXJnZXQpOwogICAgIEFTU0VSVF9VTlVTRUQo
cmVtb3ZlZCwgcmVtb3ZlZCk7CisgICAgbV90YXJnZXRzV2FpdGluZ0ZvckZpcnN0T2JzZXJ2YXRp
b24ucmVtb3ZlRmlyc3RNYXRjaGluZyhbJl0oYXV0byYgcGVuZGluZ1RhcmdldCkgeyByZXR1cm4g
cGVuZGluZ1RhcmdldC5wdHIoKSA9PSAmdGFyZ2V0OyB9KTsKIAogICAgIGlmICghaGFzT2JzZXJ2
YXRpb25UYXJnZXRzKCkpIHsKICAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gdHJhY2tpbmdE
b2N1bWVudCgpKQpAQCAtMjA3LDYgKzIxMyw3IEBAIGF1dG8gSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6
OnRha2VSZWNvcmRzKCkgLT4gVGFrZW5SZWNvcmRzCiB2b2lkIEludGVyc2VjdGlvbk9ic2VydmVy
Ojp0YXJnZXREZXN0cm95ZWQoRWxlbWVudCYgdGFyZ2V0KQogewogICAgIG1fb2JzZXJ2YXRpb25U
YXJnZXRzLnJlbW92ZUZpcnN0KCZ0YXJnZXQpOworICAgIG1fdGFyZ2V0c1dhaXRpbmdGb3JGaXJz
dE9ic2VydmF0aW9uLnJlbW92ZUZpcnN0TWF0Y2hpbmcoWyZdKGF1dG8mIHBlbmRpbmdUYXJnZXQp
IHsgcmV0dXJuIHBlbmRpbmdUYXJnZXQucHRyKCkgPT0gJnRhcmdldDsgfSk7CiAgICAgaWYgKCFo
YXNPYnNlcnZhdGlvblRhcmdldHMoKSkgewogICAgICAgICBpZiAoYXV0byogZG9jdW1lbnQgPSB0
cmFja2luZ0RvY3VtZW50KCkpCiAgICAgICAgICAgICBkb2N1bWVudC0+cmVtb3ZlSW50ZXJzZWN0
aW9uT2JzZXJ2ZXIoKnRoaXMpOwpAQCAtMjMyLDYgKzIzOSw3IEBAIHZvaWQgSW50ZXJzZWN0aW9u
T2JzZXJ2ZXI6OnJlbW92ZUFsbFRhcmdldHMoKQogICAgICAgICBBU1NFUlRfVU5VU0VEKHJlbW92
ZWQsIHJlbW92ZWQpOwogICAgIH0KICAgICBtX29ic2VydmF0aW9uVGFyZ2V0cy5jbGVhcigpOwor
ICAgIG1fdGFyZ2V0c1dhaXRpbmdGb3JGaXJzdE9ic2VydmF0aW9uLmNsZWFyKCk7CiB9CiAKIHZv
aWQgSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OnJvb3REZXN0cm95ZWQoKQpAQCAtMjczLDYgKzI4MSw3
IEBAIHZvaWQgSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6Om5vdGlmeSgpCiAgICAgfQogCiAgICAgYXV0
byB0YWtlblJlY29yZHMgPSB0YWtlUmVjb3JkcygpOworICAgIGF1dG8gdGFyZ2V0c1dhaXRpbmdG
b3JGaXJzdE9ic2VydmF0aW9uID0gc3RkOjpleGNoYW5nZShtX3RhcmdldHNXYWl0aW5nRm9yRmly
c3RPYnNlcnZhdGlvbiwgeyB9KTsKIAogICAgIC8vIEZJWE1FOiBUaGUgSlNJbnRlcnNlY3Rpb25P
YnNlcnZlciB3cmFwcGVyIHNob3VsZCBiZSBrZXB0IGFsaXZlIGFzIGxvbmcgYXMgdGhlIGludGVy
c2VjdGlvbiBvYnNlcnZlciBjYW4gZmlyZSBldmVudHMuCiAgICAgQVNTRVJUKG1fY2FsbGJhY2st
Pmhhc0NhbGxiYWNrKCkpOwpAQCAtMjk4LDcgKzMwNyw3IEBAIGJvb2wgSW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6QWJzdHJhY3RTbG90VmlzaXRv
ciYKICAgICAgICAgaWYgKHZpc2l0b3IuY29udGFpbnNPcGFxdWVSb290KHRhcmdldC0+b3BhcXVl
Um9vdCgpKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gZmFs
c2U7CisgICAgcmV0dXJuICFtX3RhcmdldHNXYWl0aW5nRm9yRmlyc3RPYnNlcnZhdGlvbi5pc0Vt
cHR5KCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
SW50ZXJzZWN0aW9uT2JzZXJ2ZXIuaAppbmRleCBjMTJjODI2Y2E5OWUzYmY4N2U5ZGQ4NjJlYTI2
NWE3YTU0ZmY5YTY3Li43NzZlZDdjOWVjYTM5NDkxOGRjYzUwMDZhMWYwYmEzMDM0MTUzN2M0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5oCkBAIC0xMjAsNiAr
MTIwLDcgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8V2Vha1B0cjxFbGVtZW50Pj4gbV9vYnNlcnZh
dGlvblRhcmdldHM7CiAgICAgVmVjdG9yPEdDUmVhY2hhYmxlUmVmPEVsZW1lbnQ+PiBtX3BlbmRp
bmdUYXJnZXRzOwogICAgIFZlY3RvcjxSZWY8SW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeT4+IG1f
cXVldWVkRW50cmllczsKKyAgICBWZWN0b3I8R0NSZWFjaGFibGVSZWY8RWxlbWVudD4+IG1fdGFy
Z2V0c1dhaXRpbmdGb3JGaXJzdE9ic2VydmF0aW9uOwogfTsKIAogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjI1NmJhYjk3
NjI3ZDkwODMwOTI2ZWVlN2M3OWFmYmYzNGY1ODgxYS4uNjIxNDEwNzc1YzIzMTZhY2YzZmVjNGU3
NjgxYjViZDk5Zjg0NWQ0ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTEwLTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQVNTRVJUKG1fY2FsbGJhY2st
Pmhhc0NhbGxiYWNrKCkpIHVuZGVyIEludGVyc2VjdGlvbk9ic2VydmVyOjpub3RpZnkoKQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMjM1CisgICAg
ICAgIDxyZGFyOi8vODA4Mzc2MTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdh
LgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZSBib3RoIGZvciB0aGUgY3Jhc2gg
YW5kIHRoZSBXZWIgZmFjaW5nIGJlaGF2aW9yLgorCisgICAgICAgICogaW50ZXJzZWN0aW9uLW9i
c2VydmVyL29ic2VydmUtZGlzY29ubmVjdGVkLXRhcmdldC1jcmFzaC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGludGVyc2VjdGlvbi1vYnNlcnZlci9vYnNlcnZlLWRpc2Nvbm5lY3Rl
ZC10YXJnZXQtY3Jhc2guaHRtbDogQWRkZWQuCisgICAgICAgICogaW50ZXJzZWN0aW9uLW9ic2Vy
dmVyL29ic2VydmUtZGlzY29ubmVjdGVkLXRhcmdldC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGludGVyc2VjdGlvbi1vYnNlcnZlci9vYnNlcnZlLWRpc2Nvbm5lY3RlZC10YXJnZXQu
aHRtbDogQWRkZWQuCisKIDIwMjEtMTAtMDUgIEdhYnJpZWwgTmF2YSBNYXJpbm8gIDxnbmF2YW1h
cmlub0BhcHBsZS5jb20+CiAKICAgICAgICAgSW5jb3JyZWN0IExlbmd0aCBjb25zdHJ1Y3RvciB1
c2VkIGFmdGVyIGJsZW5kaW5nIG5lZ2F0aXZlIExlbmd0aApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL29ic2VydmUtZGlzY29ubmVjdGVkLXRhcmdldC1jcmFz
aC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvb2JzZXJ2
ZS1kaXNjb25uZWN0ZWQtdGFyZ2V0LWNyYXNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MzBl
YmY2NmEwZGE0OTgwMDE3ZTliYzAzN2M2ZTNmODRhYjdlNzllCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL29ic2VydmUtZGlzY29ubmVjdGVkLXRh
cmdldC1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorVGhpcyB0ZXN0IHBhc3NlcyBp
ZiBpdCBkb2Vzbid0IGNyYXNoLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9u
LW9ic2VydmVyL29ic2VydmUtZGlzY29ubmVjdGVkLXRhcmdldC1jcmFzaC5odG1sIGIvTGF5b3V0
VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL29ic2VydmUtZGlzY29ubmVjdGVkLXRhcmdldC1j
cmFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyZmNhMGFkNTQ2YWI5ODhmNDUxYzkzODViYmM1ZDU0NWQ2
ZDkwZDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2
ZXIvb2JzZXJ2ZS1kaXNjb25uZWN0ZWQtdGFyZ2V0LWNyYXNoLmh0bWwKQEAgLTAsMCArMSwyMCBA
QAorPHA+VGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBkb2Vzbid0IGNyYXNoLjwvcD4KKzxzY3JpcHQ+
CisgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICB9CisgIG9ubG9hZCA9IGFzeW5j
ICgpID0+IHsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDg7IGkrKykgeworICAgICAgZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgfQorICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
ODsgaSsrKSB7CisgICAgICBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKCkgPT4ge30pOworICAg
IH0KKyAgICBsZXQgaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2
ZXIoKCkgPT4ge30pOworICAgIGF3YWl0IGludGVyc2VjdGlvbk9ic2VydmVyLm9ic2VydmUoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpOworICAgIG5ldyBJbWFnZURhdGEoMTAwMCwgMTAw
MDApOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICB9OworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnRlcnNl
Y3Rpb24tb2JzZXJ2ZXIvb2JzZXJ2ZS1kaXNjb25uZWN0ZWQtdGFyZ2V0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9vYnNlcnZlLWRpc2Nvbm5lY3RlZC10
YXJnZXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3MTE0OTM2MTg1OGEzNTVkNmM2MDI5MDI5
MGQ2NzljNzlhNzJlZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rp
b24tb2JzZXJ2ZXIvb2JzZXJ2ZS1kaXNjb25uZWN0ZWQtdGFyZ2V0LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE1IEBACitUZXN0cyB0aGF0IGFuIG9ic2VydmF0aW9uIGlzIHJlY2VpdmVkIHdoZW4g
Y2FsbGluZyBJbnRlcnNlY3Rpb25PYnNlcnZlci5vYnNlcnZlKCkgd2l0aCBhIGRpc2Nvbm5lY3Rl
ZCB0YXJnZXQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlY2VpdmVk
T2JzZXJ2YXRpb25zIGlzIGZhbHNlCitQQVNTIG9ic2VydmF0aW9ucy5sZW5ndGggaXMgMQorUEFT
UyBvYnNlcnZhdGlvbnNbMF0udGFyZ2V0LnRhZ05hbWUgaXMgIkRJViIKK1BBU1Mgb2JzZXJ2YXRp
b25zWzBdLmlzSW50ZXJzZWN0aW5nIGlzIGZhbHNlCitQQVNTIG9ic2VydmF0aW9uc1swXS5pbnRl
cnNlY3Rpb25SYXRpbyBpcyAwLjAKK1BBU1Mgb2JzZXJ2YXRpb25zWzBdLnRhcmdldC5mb28gaXMg
MQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9vYnNlcnZlLWRpc2Nv
bm5lY3RlZC10YXJnZXQuaHRtbCBiL0xheW91dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9v
YnNlcnZlLWRpc2Nvbm5lY3RlZC10YXJnZXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWQ5NTkyNmJlNTA1
YmVhMTIzMjM1ZTJmNzM2MzcyYmU5MjNjNzgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL29ic2VydmUtZGlzY29ubmVjdGVkLXRhcmdldC5odG1s
CkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICBk
ZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhbiBvYnNlcnZhdGlvbiBpcyByZWNlaXZlZCB3aGVuIGNh
bGxpbmcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSgpIHdpdGggYSBkaXNjb25uZWN0ZWQg
dGFyZ2V0LiIpOworICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICBsZXQgcmVjZWl2ZWRPYnNl
cnZhdGlvbnMgPSBmYWxzZTsKKyAgb25sb2FkID0gKCkgPT4geworICAgIGxldCBpbnRlcnNlY3Rp
b25PYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoX29ic2VydmF0aW9ucykgPT4g
eworICAgICAgZ2MoKTsKKyAgICAgIG9ic2VydmF0aW9ucyA9IF9vYnNlcnZhdGlvbnM7CisKKyAg
ICAgIHNob3VsZEJlRmFsc2UoInJlY2VpdmVkT2JzZXJ2YXRpb25zIik7CisgICAgICByZWNlaXZl
ZE9ic2VydmF0aW9ucyA9IHRydWU7CisKKyAgICAgIHNob3VsZEJlKCJvYnNlcnZhdGlvbnMubGVu
Z3RoIiwgIjEiKTsKKyAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygib2JzZXJ2YXRpb25zWzBd
LnRhcmdldC50YWdOYW1lIiwgIkRJViIpOworICAgICAgc2hvdWxkQmVGYWxzZSgib2JzZXJ2YXRp
b25zWzBdLmlzSW50ZXJzZWN0aW5nIik7CisgICAgICBzaG91bGRCZSgib2JzZXJ2YXRpb25zWzBd
LmludGVyc2VjdGlvblJhdGlvIiwgIjAuMCIpOworICAgICAgc2hvdWxkQmUoIm9ic2VydmF0aW9u
c1swXS50YXJnZXQuZm9vIiwgIjEiKTsKKyAgICAgIHNldFRpbWVvdXQoZmluaXNoSlNUZXN0LCAx
MDApOworICAgIH0pOworICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKKyAgICBkaXYuZm9vID0gMTsKKyAgICBpbnRlcnNlY3Rpb25PYnNlcnZlci5vYnNlcnZlKGRp
dik7CisgICAgZGl2ID0gbnVsbDsKKyAgICBnYygpOworICAgIHNldFRpbWVvdXQoZ2MsIDApOwor
ICB9OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvb2JzZXJ2ZS10aGVuLWRpc2Nvbm5lY3QtdGFyZ2V0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9vYnNlcnZlLXRo
ZW4tZGlzY29ubmVjdC10YXJnZXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzYmVkY2Q3OGY5
ZTk2OWU4OTQzODBkZDdhNmQwMzcxNDk2MzA1MjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvb2JzZXJ2ZS10aGVuLWRpc2Nvbm5lY3QtdGFyZ2V0
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0cyB0aGF0IGFuIG9ic2VydmF0aW9u
IGlzIHJlY2VpdmVkIGFmdGVyIGRpc2Nvbm5lY3RpbmcgYSB2aXNpYmxlIHRhcmdldAorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBvYnNlcnZhdGlvbnMubGVuZ3RoIGlzIDEK
K1BBU1Mgb2JzZXJ2YXRpb25zWzBdLnRhcmdldC50YWdOYW1lIGlzICJESVYiCitQQVNTIG9ic2Vy
dmF0aW9uc1swXS50YXJnZXQuZm9vIGlzIDEKK1BBU1Mgb2JzZXJ2YXRpb25zWzBdLmlzSW50ZXJz
ZWN0aW5nIGlzIHRydWUKKyogUmVtb3ZpbmcgdGFyZ2V0IGZyb20gZG9jdW1lbnQKK1BBU1Mgb2Jz
ZXJ2YXRpb25zLmxlbmd0aCBpcyAxCitQQVNTIG9ic2VydmF0aW9uc1swXS50YXJnZXQudGFnTmFt
ZSBpcyAiRElWIgorUEFTUyBvYnNlcnZhdGlvbnNbMF0udGFyZ2V0LmZvbyBpcyAxCitQQVNTIG9i
c2VydmF0aW9uc1swXS5pc0ludGVyc2VjdGluZyBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ludGVyc2VjdGlvbi1vYnNlcnZlci9vYnNlcnZlLXRoZW4tZGlzY29ubmVjdC10YXJnZXQuaHRt
bCBiL0xheW91dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9vYnNlcnZlLXRoZW4tZGlzY29u
bmVjdC10YXJnZXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzgyMWI0YzNlNDI5ODU2MGZjMzVhODcyZWFh
ZDQzMzk1NDJjZjMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9u
LW9ic2VydmVyL29ic2VydmUtdGhlbi1kaXNjb25uZWN0LXRhcmdldC5odG1sCkBAIC0wLDAgKzEs
NDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJ0ZXN0RGl2Ij50ZXN0PC9k
aXY+Cis8c2NyaXB0PgorICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhbiBvYnNlcnZhdGlvbiBp
cyByZWNlaXZlZCBhZnRlciBkaXNjb25uZWN0aW5nIGEgdmlzaWJsZSB0YXJnZXQiKTsKKyAganNU
ZXN0SXNBc3luYyA9IHRydWU7CisKKyAgbGV0IHJlY2VpdmVkSW5pdGlhbE9ic2VydmF0aW9uID0g
ZmFsc2U7CisgIG9ubG9hZCA9ICgpID0+IHsKKyAgICBsZXQgaW50ZXJzZWN0aW9uT2JzZXJ2ZXIg
PSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKF9vYnNlcnZhdGlvbnMpID0+IHsKKyAgICAgIGdj
KCk7CisgICAgICBvYnNlcnZhdGlvbnMgPSBfb2JzZXJ2YXRpb25zOworCisgICAgICBzaG91bGRC
ZSgib2JzZXJ2YXRpb25zLmxlbmd0aCIsICIxIik7CisgICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoIm9ic2VydmF0aW9uc1swXS50YXJnZXQudGFnTmFtZSIsICJESVYiKTsKKyAgICAgIHNob3Vs
ZEJlKCJvYnNlcnZhdGlvbnNbMF0udGFyZ2V0LmZvbyIsICIxIik7CisKKyAgICAgIGlmICghcmVj
ZWl2ZWRJbml0aWFsT2JzZXJ2YXRpb24pIHsKKyAgICAgICAgICByZWNlaXZlZEluaXRpYWxPYnNl
cnZhdGlvbiA9IHRydWU7CisgICAgICAgICAgc2hvdWxkQmVUcnVlKCJvYnNlcnZhdGlvbnNbMF0u
aXNJbnRlcnNlY3RpbmciKTsKKyAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAg
ICAgICAgZGVidWcoIiogUmVtb3ZpbmcgdGFyZ2V0IGZyb20gZG9jdW1lbnQiKTsKKyAgICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3REaXYiKS5yZW1vdmUoKTsKKyAgICAg
ICAgICAgICAgZ2MoKTsKKyAgICAgICAgICAgICAgc2V0VGltZW91dChnYywgMCk7CisgICAgICAg
ICAgfSwgMCk7CisgICAgICB9IGVsc2UgeworICAgICAgICAgIHNob3VsZEJlRmFsc2UoIm9ic2Vy
dmF0aW9uc1swXS5pc0ludGVyc2VjdGluZyIpOworICAgICAgICAgIHNldFRpbWVvdXQoZmluaXNo
SlNUZXN0LCAxMDApOworICAgICAgfQorICAgIH0pOworICAgIGxldCBkaXYgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGVzdERpdiIpOworICAgIGRpdi5mb28gPSAxOworICAgIGludGVyc2Vj
dGlvbk9ic2VydmVyLm9ic2VydmUoZGl2KTsKKyAgICBkaXYgPSBudWxsOworICAgIGdjKCk7Cisg
ICAgc2V0VGltZW91dChnYywgMCk7CisgIH07Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>