<?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>188575</bug_id>
          
          <creation_ts>2018-08-14 13:25:21 -0700</creation_ts>
          <short_desc>[IntersectionObserver] Do not hold a strong reference to the root element</short_desc>
          <delta_ts>2018-08-15 07:15:43 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>159475</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ali Juma">ajuma</reporter>
          <assigned_to name="Ali Juma">ajuma</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1450077</commentid>
    <comment_count>0</comment_count>
    <who name="Ali Juma">ajuma</who>
    <bug_when>2018-08-14 13:25:21 -0700</bug_when>
    <thetext>An IntersectionObserver should not keep its root element alive when there aren&apos;t any other references to the root.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1450081</commentid>
    <comment_count>1</comment_count>
      <attachid>347106</attachid>
    <who name="Ali Juma">ajuma</who>
    <bug_when>2018-08-14 13:34:31 -0700</bug_when>
    <thetext>Created attachment 347106
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1450140</commentid>
    <comment_count>2</comment_count>
      <attachid>347106</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-14 16:03:01 -0700</bug_when>
    <thetext>Comment on attachment 347106
Patch

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

&gt; Source/WebCore/page/IntersectionObserver.cpp:126
&gt; +        for (size_t i = 0; i &lt; elementObservers.size(); ++i) {
&gt; +            if (elementObservers.at(i) == this) {
&gt; +                elementObservers.remove(i);
&gt; +                break;
&gt; +            }

This should use removeFirst()

&gt; Source/WebCore/page/IntersectionObserver.h:43
&gt; +    Vector&lt;IntersectionObserver*&gt; observers;

Who owns the IntersectionObservers? Would be nice for the comment to say what the ownership model is.

&gt; Source/WebCore/page/IntersectionObserver.h:75
&gt; +    Element* m_root;

We should make WeakPtr work for Elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1450274</commentid>
    <comment_count>3</comment_count>
      <attachid>347159</attachid>
    <who name="Ali Juma">ajuma</who>
    <bug_when>2018-08-15 06:29:18 -0700</bug_when>
    <thetext>Created attachment 347159
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1450275</commentid>
    <comment_count>4</comment_count>
      <attachid>347106</attachid>
    <who name="Ali Juma">ajuma</who>
    <bug_when>2018-08-15 06:31:22 -0700</bug_when>
    <thetext>Comment on attachment 347106
Patch

Thanks for the review!

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

&gt;&gt; Source/WebCore/page/IntersectionObserver.cpp:126
&gt;&gt; +            }
&gt; 
&gt; This should use removeFirst()

Done.

&gt;&gt; Source/WebCore/page/IntersectionObserver.h:43
&gt;&gt; +    Vector&lt;IntersectionObserver*&gt; observers;
&gt; 
&gt; Who owns the IntersectionObservers? Would be nice for the comment to say what the ownership model is.

Updated the comment to mention that observers are owned by JavaScript wrappers and by IntersectionObserverRegistrations for currently-observed targets (to be implemented in a future patch).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1450279</commentid>
    <comment_count>5</comment_count>
      <attachid>347159</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-15 07:13:13 -0700</bug_when>
    <thetext>Comment on attachment 347159
Patch for landing

Clearing flags on attachment: 347159

Committed r234884: &lt;https://trac.webkit.org/changeset/234884&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1450280</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-15 07:13:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1450281</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-15 07:15:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/43332185&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347106</attachid>
            <date>2018-08-14 13:34:31 -0700</date>
            <delta_ts>2018-08-15 06:29:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188575-20180814163430.patch</filename>
            <type>text/plain</type>
            <size>13657</size>
            <attacher name="Ali Juma">ajuma</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0ODUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWY1OTY4NTNlZGU3N2Fi
ZWI2ODliZjU4NDAyNTljYTUzMGMxNmI5ZS4uZDQ4MzdkOGJjM2E5YWQwMGM4OTJlNTdmMmMzMzYz
Yzc5NDU4ZDU3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE4LTA4LTE0ICBBbGkg
SnVtYSAgPGFqdW1hQGNocm9taXVtLm9yZz4KKworICAgICAgICBbSW50ZXJzZWN0aW9uT2JzZXJ2
ZXJdIERvIG5vdCBob2xkIGEgc3Ryb25nIHJlZmVyZW5jZSB0byB0aGUgcm9vdCBlbGVtZW50Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg1NzUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIEludGVy
c2VjdGlvbk9ic2VydmVyIGhhdmUgb25seSBhIHJhdyBwb2ludGVyIHRvIGl0cyByb290IGVsZW1l
bnQgcmF0aGVyIHRoYW4KKyAgICAgICAgYSByZWZlcmVuY2UsIHNvIHRoYXQgYW4gb3RoZXJ3aXNl
LXVucmVhY2hhYmxlIHJvb3QgaXNuJ3Qga2VwdCBhbGl2ZS4gQWRkIGxvZ2ljIHRvCisgICAgICAg
IHRvIGNsZWFyIHRoaXMgcG9pbnRlciB3aGVuIHRoZSByb290IGVsZW1lbnQgZ2V0cyBkZWxldGVk
LgorCisgICAgICAgIFRlc3Q6IGludGVyc2VjdGlvbi1vYnNlcnZlci9yb290LWVsZW1lbnQtZGVs
ZXRlZC5odG1sCisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50Ojp+RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpkaXNjb25u
ZWN0RnJvbUludGVyc2VjdGlvbk9ic2VydmVycyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
OjplbnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZlckRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RWxl
bWVudDo6aW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5o
OgorICAgICAgICAqIGRvbS9FbGVtZW50UmFyZURhdGEuY3BwOgorICAgICAgICAqIGRvbS9FbGVt
ZW50UmFyZURhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6aW50ZXJz
ZWN0aW9uT2JzZXJ2ZXJEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6
c2V0SW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhKToKKyAgICAgICAgKiBwYWdlL0ludGVyc2VjdGlv
bk9ic2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVyc2VjdGlvbk9ic2VydmVyOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OkludGVyc2Vj
dGlvbk9ic2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVyc2VjdGlvbk9ic2VydmVyOjp+
SW50ZXJzZWN0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXI6OnJvb3REZXN0cm95ZWQpOgorICAgICAgICAqIHBhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVyc2VjdGlvbk9ic2VydmVyOjpyb290IGNvbnN0
KToKKwogMjAxOC0wOC0xNCAgQWxpIEp1bWEgIDxhanVtYUBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgRm9sbG93LXVwOiBbSW50ZXJzZWN0aW9uT2JzZXJ2ZXJdIEltcGxlbWVudCByb290TWFyZ2lu
IHBhcnNpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA2OWU2ZjkwYzE2OTNkZDc3NDkzODRj
MmM3ZTJkYjcxOWM3YjNkMjA2Li5iNDdjODkzMjU4N2JiMTkwZjgyMjJiYWQ4YmY1ODNmNTllOTBi
NzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xODcsNiArMTg3LDEwIEBAIEVsZW1lbnQ6
On5FbGVtZW50KCkKICAgICBBU1NFUlQoIWJlZm9yZVBzZXVkb0VsZW1lbnQoKSk7CiAgICAgQVNT
RVJUKCFhZnRlclBzZXVkb0VsZW1lbnQoKSk7CiAKKyNpZiBFTkFCTEUoSU5URVJTRUNUSU9OX09C
U0VSVkVSKQorICAgIGRpc2Nvbm5lY3RGcm9tSW50ZXJzZWN0aW9uT2JzZXJ2ZXJzKCk7CisjZW5k
aWYKKwogICAgIHJlbW92ZVNoYWRvd1Jvb3QoKTsKIAogICAgIGlmIChoYXNTeW50aGV0aWNBdHRy
Q2hpbGROb2RlcygpKQpAQCAtMzIzMyw2ICszMjM3LDMyIEBAIHZvaWQgRWxlbWVudDo6cmVxdWVz
dFBvaW50ZXJMb2NrKCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKElOVEVSU0VDVElPTl9PQlNF
UlZFUikKK3ZvaWQgRWxlbWVudDo6ZGlzY29ubmVjdEZyb21JbnRlcnNlY3Rpb25PYnNlcnZlcnMo
KQoreworICAgIGF1dG8qIG9ic2VydmVyRGF0YSA9IGludGVyc2VjdGlvbk9ic2VydmVyRGF0YSgp
OworICAgIGlmICghb2JzZXJ2ZXJEYXRhKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGF1
dG8qIG9ic2VydmVyIDogb2JzZXJ2ZXJEYXRhLT5vYnNlcnZlcnMpCisgICAgICAgIG9ic2VydmVy
LT5yb290RGVzdHJveWVkKCk7CisgICAgb2JzZXJ2ZXJEYXRhLT5vYnNlcnZlcnMuY2xlYXIoKTsK
K30KKworSW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhJiBFbGVtZW50OjplbnN1cmVJbnRlcnNlY3Rp
b25PYnNlcnZlckRhdGEoKQoreworICAgIGF1dG8mIHJhcmVEYXRhID0gZW5zdXJlRWxlbWVudFJh
cmVEYXRhKCk7CisgICAgaWYgKCFyYXJlRGF0YS5pbnRlcnNlY3Rpb25PYnNlcnZlckRhdGEoKSkK
KyAgICAgICAgcmFyZURhdGEuc2V0SW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhKHN0ZDo6bWFrZV91
bmlxdWU8SW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhPigpKTsKKyAgICByZXR1cm4gKnJhcmVEYXRh
LmludGVyc2VjdGlvbk9ic2VydmVyRGF0YSgpOworfQorCitJbnRlcnNlY3Rpb25PYnNlcnZlckRh
dGEqIEVsZW1lbnQ6OmludGVyc2VjdGlvbk9ic2VydmVyRGF0YSgpCit7CisgICAgcmV0dXJuIGhh
c1JhcmVEYXRhKCkgPyBlbGVtZW50UmFyZURhdGEoKS0+aW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRh
KCkgOiBudWxscHRyOworfQorI2VuZGlmCisKIFNwZWxsY2hlY2tBdHRyaWJ1dGVTdGF0ZSBFbGVt
ZW50OjpzcGVsbGNoZWNrQXR0cmlidXRlU3RhdGUoKSBjb25zdAogewogICAgIGNvbnN0IEF0b21p
Y1N0cmluZyYgdmFsdWUgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1l
czo6c3BlbGxjaGVja0F0dHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggOGMzOTA1YjNkOTMzNDhj
OWI5Yzc0MDczMmI2ZGE5YWJlNGQ2NjYxOS4uZjk0Y2NlMGFmZTI4OGFkNjhmNDg3YTE0OTNjMDVh
M2VkOWNlZjRhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC01Niw2ICs1NiwxMCBAQCBjbGFzcyBS
ZW5kZXJUcmVlUG9zaXRpb247CiBjbGFzcyBXZWJBbmltYXRpb247CiBzdHJ1Y3QgRWxlbWVudFN0
eWxlOwogCisjaWYgRU5BQkxFKElOVEVSU0VDVElPTl9PQlNFUlZFUikKK3N0cnVjdCBJbnRlcnNl
Y3Rpb25PYnNlcnZlckRhdGE7CisjZW5kaWYKKwogZW51bSBTcGVsbGNoZWNrQXR0cmlidXRlU3Rh
dGUgewogICAgIFNwZWxsY2hlY2tBdHRyaWJ1dGVUcnVlLAogICAgIFNwZWxsY2hlY2tBdHRyaWJ1
dGVGYWxzZSwKQEAgLTU2Nyw2ICs1NzEsMTEgQEAgcHVibGljOgogICAgIHVzaW5nIENvbnRhaW5l
ck5vZGU6OnNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXI7CiAgICAgdm9pZCBzZXRBdHRyaWJ1dGVF
dmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKTsKIAorI2lm
IEVOQUJMRShJTlRFUlNFQ1RJT05fT0JTRVJWRVIpCisgICAgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJE
YXRhJiBlbnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZlckRhdGEoKTsKKyAgICBJbnRlcnNlY3Rpb25P
YnNlcnZlckRhdGEqIGludGVyc2VjdGlvbk9ic2VydmVyRGF0YSgpOworI2VuZGlmCisKICAgICBF
bGVtZW50KiBmaW5kQW5jaG9yRWxlbWVudEZvckxpbmsoU3RyaW5nJiBvdXRBbmNob3JOYW1lKTsK
IAogICAgIEV4Y2VwdGlvbk9yPFJlZjxXZWJBbmltYXRpb24+PiBhbmltYXRlKEpTQzo6RXhlY1N0
YXRlJiwgSlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4mJiwgc3RkOjpvcHRpb25hbDxWYXJpYW50
PGRvdWJsZSwgS2V5ZnJhbWVBbmltYXRpb25PcHRpb25zPj4mJik7CkBAIC02NDYsNiArNjU1LDEw
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBmb3JtYXRGb3JEZWJ1Z2dlcihjaGFyKiBidWZmZXIsIHVu
c2lnbmVkIGxlbmd0aCkgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTlRF
UlNFQ1RJT05fT0JTRVJWRVIpCisgICAgdm9pZCBkaXNjb25uZWN0RnJvbUludGVyc2VjdGlvbk9i
c2VydmVycygpOworI2VuZGlmCisKICAgICAvLyBUaGUgY2xvbmVOb2RlIGZ1bmN0aW9uIGlzIHBy
aXZhdGUgc28gdGhhdCBub24tdmlydHVhbCBjbG9uZUVsZW1lbnRXaXRoL1dpdGhvdXRDaGlsZHJl
biBhcmUgdXNlZCBpbnN0ZWFkLgogICAgIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1
bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgUmVmPEVsZW1l
bnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5jcHAKaW5kZXggNDc4YTg4ODdlMDA1MWFj
YWJiNjIwZTM3NWFiNjAyMjUyODE5NWJjZS4uNmNmYTgwOTZkM2Y1ODQwN2RkMGE4NmNjNzNmOGY3
ZTBjMzYwZTU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0
YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5jcHAKQEAgLTQ0
LDYgKzQ0LDEwIEBAIHN0cnVjdCBTYW1lU2l6ZUFzRWxlbWVudFJhcmVEYXRhIDogTm9kZVJhcmVE
YXRhIHsKICAgICBMYXlvdXRTaXplIHNpemVGb3JSZXNpemluZzsKICAgICBJbnRQb2ludCBzYXZl
ZExheWVyU2Nyb2xsUG9zaXRpb247CiAgICAgdm9pZCogcG9pbnRlcnNbOF07CisjaWYgRU5BQkxF
KElOVEVSU0VDVElPTl9PQlNFUlZFUikKKyAgICB2b2lkKiBpbnRlcnNlY3Rpb25PYnNlcnZlckRh
dGE7CisjZW5kaWYKKwogfTsKIAogc3RhdGljX2Fzc2VydChzaXplb2YoRWxlbWVudFJhcmVEYXRh
KSA9PSBzaXplb2YoU2FtZVNpemVBc0VsZW1lbnRSYXJlRGF0YSksICJFbGVtZW50UmFyZURhdGEg
c2hvdWxkIHN0YXkgc21hbGwiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50UmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAppbmRl
eCBhMGYzMDFlODc0YTRjMGFmMTQzOTMwYWRhZGRlNjJjNWVhOGZiYmZmLi5lNzE5YjNkNDlkYWE3
MGI2ZjIxZmJlZTkxZjFkMTJkNWY2ZGNjNDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudFJhcmVEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJl
RGF0YS5oCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiQ3VzdG9tRWxlbWVudFJlYWN0aW9u
UXVldWUuaCIKICNpbmNsdWRlICJET01Ub2tlbkxpc3QuaCIKICNpbmNsdWRlICJEYXRhc2V0RE9N
U3RyaW5nTWFwLmgiCisjaW5jbHVkZSAiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRl
ICJOYW1lZE5vZGVNYXAuaCIKICNpbmNsdWRlICJOb2RlUmFyZURhdGEuaCIKICNpbmNsdWRlICJQ
c2V1ZG9FbGVtZW50LmgiCkBAIC0xMTYsNiArMTE3LDExIEBAIHB1YmxpYzoKICAgICBib29sIGhh
c0NTU0FuaW1hdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1faGFzQ1NTQW5pbWF0aW9uOyB9CiAgICAg
dm9pZCBzZXRIYXNDU1NBbmltYXRpb24oYm9vbCB2YWx1ZSkgeyBtX2hhc0NTU0FuaW1hdGlvbiA9
IHZhbHVlOyB9CiAKKyNpZiBFTkFCTEUoSU5URVJTRUNUSU9OX09CU0VSVkVSKQorICAgIEludGVy
c2VjdGlvbk9ic2VydmVyRGF0YSogaW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhKCkgeyByZXR1cm4g
bV9pbnRlcnNlY3Rpb25PYnNlcnZlckRhdGEuZ2V0KCk7IH0KKyAgICB2b2lkIHNldEludGVyc2Vj
dGlvbk9ic2VydmVyRGF0YShzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRh
PiYmIGRhdGEpIHsgbV9pbnRlcnNlY3Rpb25PYnNlcnZlckRhdGEgPSBXVEZNb3ZlKGRhdGEpOyB9
CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBpbnQgbV90YWJJbmRleDsKICAgICB1bnNpZ25lZCBz
aG9ydCBtX2NoaWxkSW5kZXg7CkBAIC0xNDksNiArMTU1LDkgQEAgcHJpdmF0ZToKICAgICBSZWZQ
dHI8U2hhZG93Um9vdD4gbV9zaGFkb3dSb290OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDdXN0b21F
bGVtZW50UmVhY3Rpb25RdWV1ZT4gbV9jdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZTsKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8TmFtZWROb2RlTWFwPiBtX2F0dHJpYnV0ZU1hcDsKKyNpZiBFTkFCTEUo
SU5URVJTRUNUSU9OX09CU0VSVkVSKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcnNlY3Rpb25P
YnNlcnZlckRhdGE+IG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhOworI2VuZGlmCiAKICAgICBS
ZWZQdHI8UHNldWRvRWxlbWVudD4gbV9iZWZvcmVQc2V1ZG9FbGVtZW50OwogICAgIFJlZlB0cjxQ
c2V1ZG9FbGVtZW50PiBtX2FmdGVyUHNldWRvRWxlbWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5jcHAKaW5kZXggODNjYjJiMGEwNTY5MzhkY2UyNDI0NzBm
NmY5ZmUwMDE5YjYzOTgwMC4uZTNkYjIwOWUwZTA5NWVjNTJjYTFmMmRjYmY5OGI3OTlmOTJhNTA3
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5jcHAKQEAg
LTEwMCwxNSArMTAwLDMyIEBAIEV4Y2VwdGlvbk9yPFJlZjxJbnRlcnNlY3Rpb25PYnNlcnZlcj4+
IEludGVyc2VjdGlvbk9ic2VydmVyOjpjcmVhdGUoUmVmPEludGVyc2VjCiAgICAgICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgUmFuZ2VFcnJvciwgIkZhaWxlZCB0byBjb25zdHJ1Y3QgJ0ludGVy
c2VjdGlvbk9ic2VydmVyJzogYWxsIHRocmVzaG9sZHMgbXVzdCBsaWUgaW4gdGhlIHJhbmdlIFsw
LjAsIDEuMF0uIiB9OwogICAgIH0KIAotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEludGVyc2Vj
dGlvbk9ic2VydmVyKFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGluaXQucm9vdCksIHJvb3RN
YXJnaW5PckV4Y2VwdGlvbi5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgV1RGTW92ZSh0aHJlc2hvbGRz
KSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFdURk1v
dmUoY2FsbGJhY2spLCBpbml0LnJvb3QsIHJvb3RNYXJnaW5PckV4Y2VwdGlvbi5yZWxlYXNlUmV0
dXJuVmFsdWUoKSwgV1RGTW92ZSh0aHJlc2hvbGRzKSkpOwogfQogCi1JbnRlcnNlY3Rpb25PYnNl
cnZlcjo6SW50ZXJzZWN0aW9uT2JzZXJ2ZXIoUmVmPEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJh
Y2s+JiYgY2FsbGJhY2ssIFJlZlB0cjxFbGVtZW50PiYmIHJvb3QsIExlbmd0aEJveCYmIHBhcnNl
ZFJvb3RNYXJnaW4sIFZlY3Rvcjxkb3VibGU+JiYgdGhyZXNob2xkcykKLSAgICA6IG1fcm9vdChX
VEZNb3ZlKHJvb3QpKQorSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OkludGVyc2VjdGlvbk9ic2VydmVy
KFJlZjxJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrPiYmIGNhbGxiYWNrLCBFbGVtZW50KiBy
b290LCBMZW5ndGhCb3gmJiBwYXJzZWRSb290TWFyZ2luLCBWZWN0b3I8ZG91YmxlPiYmIHRocmVz
aG9sZHMpCisgICAgOiBtX3Jvb3Qocm9vdCkKICAgICAsIG1fcm9vdE1hcmdpbihXVEZNb3ZlKHBh
cnNlZFJvb3RNYXJnaW4pKQogICAgICwgbV90aHJlc2hvbGRzKFdURk1vdmUodGhyZXNob2xkcykp
CiAgICAgLCBtX2NhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKQogeworICAgIGlmIChtX3Jvb3Qp
IHsKKyAgICAgICAgYXV0byYgb2JzZXJ2ZXJEYXRhID0gbV9yb290LT5lbnN1cmVJbnRlcnNlY3Rp
b25PYnNlcnZlckRhdGEoKTsKKyAgICAgICAgb2JzZXJ2ZXJEYXRhLm9ic2VydmVycy5hcHBlbmQo
dGhpcyk7CisgICAgfQorfQorCitJbnRlcnNlY3Rpb25PYnNlcnZlcjo6fkludGVyc2VjdGlvbk9i
c2VydmVyKCkKK3sKKyAgICBpZiAobV9yb290KSB7CisgICAgICAgIGF1dG8mIGVsZW1lbnRPYnNl
cnZlcnMgPSBtX3Jvb3QtPmludGVyc2VjdGlvbk9ic2VydmVyRGF0YSgpLT5vYnNlcnZlcnM7Cisg
ICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZWxlbWVudE9ic2VydmVycy5zaXplKCk7ICsr
aSkgeworICAgICAgICAgICAgaWYgKGVsZW1lbnRPYnNlcnZlcnMuYXQoaSkgPT0gdGhpcykgewor
ICAgICAgICAgICAgICAgIGVsZW1lbnRPYnNlcnZlcnMucmVtb3ZlKGkpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQogfQogCiBTdHJpbmcg
SW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OnJvb3RNYXJnaW4oKSBjb25zdApAQCAtMTQ1LDYgKzE2Miwx
MiBAQCBWZWN0b3I8UmVmUHRyPEludGVyc2VjdGlvbk9ic2VydmVyRW50cnk+PiBJbnRlcnNlY3Rp
b25PYnNlcnZlcjo6dGFrZVJlY29yZHMoKQogICAgIHJldHVybiB7IH07CiB9CiAKK3ZvaWQgSW50
ZXJzZWN0aW9uT2JzZXJ2ZXI6OnJvb3REZXN0cm95ZWQoKQoreworICAgIEFTU0VSVChtX3Jvb3Qp
OworICAgIGRpc2Nvbm5lY3QoKTsKKyAgICBtX3Jvb3QgPSBudWxscHRyOworfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJz
ZWN0aW9uT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2
ZXIuaAppbmRleCBiMDRjZmIyMTE2Mjg1NWIyMWI2NzA0NTAxMzA4OTUzNDlhMmUxNGUyLi45NjFk
OGM0NTIxNzA1ODIzNWM4MDM5NDYwYzFiM2I3OGE4ZThiYzY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5oCkBAIC0zOCwxNyArMzgsMjYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBFbGVtZW50OwogCitzdHJ1Y3QgSW50ZXJzZWN0aW9uT2JzZXJ2
ZXJEYXRhIHsKKyAgICAvLyBJbnRlcnNlY3Rpb25PYnNlcnZlcnMgZm9yIHdoaWNoIHRoZSBlbGVt
ZW50IHRoYXQgb3ducyB0aGlzIEludGVyc2VjdGlvbk9ic2VydmVyRGF0YSBpcyB0aGUgcm9vdC4K
KyAgICBWZWN0b3I8SW50ZXJzZWN0aW9uT2JzZXJ2ZXIqPiBvYnNlcnZlcnM7CisKKyAgICAvLyBG
SVhNRTogQWxzbyB0cmFjayBJbnRlcnNlY3Rpb25PYnNlcnZlcnMgZm9yIHdoaWNoIHRoZSBlbGVt
ZW50IHRoYXQgb3ducyB0aGlzIEludGVyc2VjdGlvbk9ic2VydmVyRGF0YSBpcyB0aGUgdGFyZ2V0
LgorfTsKKwogY2xhc3MgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxJ
bnRlcnNlY3Rpb25PYnNlcnZlcj4gewogcHVibGljOgogICAgIHN0cnVjdCBJbml0IHsKLSAgICAg
ICAgUmVmUHRyPEVsZW1lbnQ+IHJvb3Q7CisgICAgICAgIEVsZW1lbnQqIHJvb3QgeyBudWxscHRy
IH07CiAgICAgICAgIFN0cmluZyByb290TWFyZ2luOwogICAgICAgICBWYXJpYW50PGRvdWJsZSwg
VmVjdG9yPGRvdWJsZT4+IHRocmVzaG9sZDsKICAgICB9OwogCiAgICAgc3RhdGljIEV4Y2VwdGlv
bk9yPFJlZjxJbnRlcnNlY3Rpb25PYnNlcnZlcj4+IGNyZWF0ZShSZWY8SW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXJDYWxsYmFjaz4mJiwgSW5pdCYmKTsKLSAgICAKLSAgICBFbGVtZW50KiByb290KCkgY29u
c3QgeyByZXR1cm4gbV9yb290LmdldCgpOyB9CisKKyAgICB+SW50ZXJzZWN0aW9uT2JzZXJ2ZXIo
KTsKKworICAgIEVsZW1lbnQqIHJvb3QoKSBjb25zdCB7IHJldHVybiBtX3Jvb3Q7IH0KICAgICBT
dHJpbmcgcm9vdE1hcmdpbigpIGNvbnN0OwogICAgIGNvbnN0IFZlY3Rvcjxkb3VibGU+JiB0aHJl
c2hvbGRzKCkgY29uc3QgeyByZXR1cm4gbV90aHJlc2hvbGRzOyB9CiAKQEAgLTU4LDEwICs2Nywx
MiBAQCBwdWJsaWM6CiAKICAgICBWZWN0b3I8UmVmUHRyPEludGVyc2VjdGlvbk9ic2VydmVyRW50
cnk+PiB0YWtlUmVjb3JkcygpOwogCisgICAgdm9pZCByb290RGVzdHJveWVkKCk7CisKIHByaXZh
dGU6Ci0gICAgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoUmVmPEludGVyc2VjdGlvbk9ic2VydmVyQ2Fs
bGJhY2s+JiYsIFJlZlB0cjxFbGVtZW50PiYmIHJvb3QsIExlbmd0aEJveCYmIHBhcnNlZFJvb3RN
YXJnaW4sIFZlY3Rvcjxkb3VibGU+JiYgdGhyZXNob2xkcyk7CisgICAgSW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXIoUmVmPEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2s+JiYsIEVsZW1lbnQqIHJvb3Qs
IExlbmd0aEJveCYmIHBhcnNlZFJvb3RNYXJnaW4sIFZlY3Rvcjxkb3VibGU+JiYgdGhyZXNob2xk
cyk7CiAgICAgCi0gICAgUmVmUHRyPEVsZW1lbnQ+IG1fcm9vdDsKKyAgICBFbGVtZW50KiBtX3Jv
b3Q7CiAgICAgTGVuZ3RoQm94IG1fcm9vdE1hcmdpbjsKICAgICBWZWN0b3I8ZG91YmxlPiBtX3Ro
cmVzaG9sZHM7CiAgICAgUmVmPEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2s+IG1fY2FsbGJh
Y2s7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggZWU3NDk2MGFhMDEzYzk0MDNhYWVmMmY4ZWM4MDBmMWUyMGU5MjBmMC4uN2Rk
Y2ZjMzQ4MWNhNDgyNzdiMGE2MDM5YzAwMTBkNjcwYTM0MDY2NCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDE4LTA4LTE0ICBBbGkgSnVtYSAgPGFqdW1hQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBbSW50ZXJzZWN0aW9uT2JzZXJ2ZXJdIERvIG5vdCBob2xkIGEgc3Ryb25nIHJlZmVyZW5jZSB0
byB0aGUgcm9vdCBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODg1NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGludGVyc2VjdGlvbi1vYnNlcnZlci9yb290LWVsZW1lbnQtZGVsZXRlZC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGludGVyc2VjdGlvbi1vYnNlcnZlci9yb290
LWVsZW1lbnQtZGVsZXRlZC5odG1sOiBBZGRlZC4KKwogMjAxOC0wOC0xNCAgQW50b2luZSBRdWlu
dCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWIgQW5pbWF0aW9uc10gQ3Jhc2gg
dW5kZXIgQW5pbWF0aW9uVGltZWxpbmU6OmNhbmNlbE9yUmVtb3ZlRGVjbGFyYXRpdmVBbmltYXRp
b24oKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL3Jvb3Qt
ZWxlbWVudC1kZWxldGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ludGVyc2VjdGlvbi1v
YnNlcnZlci9yb290LWVsZW1lbnQtZGVsZXRlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Rm
MDVkNmFiY2E3YTZiYTFmNzU5YmQ5MWY5MTNlMWY3Yjc2OGJiOAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9yb290LWVsZW1lbnQtZGVsZXRlZC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIg
ZG9lc24ndCBrZWVwIHVucmVhY2hhYmxlIHJvb3QgYWxpdmUgCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9yb290LWVsZW1lbnQtZGVsZXRlZC5odG1sIGIv
TGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL3Jvb3QtZWxlbWVudC1kZWxldGVkLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODZkNDM2YjRiOTMwOWU0OGYzMGFlMjdjOTc4YmNlMDBkYjhlZjgzZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9yb290
LWVsZW1lbnQtZGVsZXRlZC5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPGJvZHk+CisKKzxkaXYgaWQ9InJvb3QiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZSI+
CisgICAgPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4
OyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbiI+PC9kaXY+Cis8L2Rpdj4KKworPHNjcmlwdD4KKyAg
ICBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICAgICAgdmFyIHJvb3QgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgncm9vdCcpOworICAgICAgICB2YXIgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJz
ZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKSB7fSwgeyByb290OiBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgncm9vdCcpIH0pOzsKKyAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0YXJnZXQnKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhvYnNlcnZlci5yb290LCBy
b290LCAnT2JzZXJ2ZXIgc3RhcnRzIG91dCB3aXRoIG5vbi1udWxsIHJvb3QnKTsKKyAgICAgICAg
b2JzZXJ2ZXIub2JzZXJ2ZSh0YXJnZXQpOworICAgICAgICByb290LnBhcmVudE5vZGUucmVtb3Zl
Q2hpbGQocm9vdCk7CisgICAgICAgIHJvb3QgPSBudWxsOworICAgICAgICB0YXJnZXQgPSBudWxs
OworICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodC5zdGVwX2Z1bmNfZG9uZShmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIEdDQ29udHJvbGxlci5jb2xsZWN0KCk7CisgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKG9ic2VydmVyLnJvb3QsIG51bGwsICdPYnNlcnZlciBoYXMgbnVsbCByb290
IGFmdGVyIHJvb3QgZWxlbWVudCBpcyBkZXN0cm95ZWQnKTsKKyAgICAgICAgfSkpOworICAgIH0s
ICJJbnRlcnNlY3Rpb25PYnNlcnZlciBkb2Vzbid0IGtlZXAgdW5yZWFjaGFibGUgcm9vdCBhbGl2
ZSIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347159</attachid>
            <date>2018-08-15 06:29:18 -0700</date>
            <delta_ts>2018-08-15 07:13:13 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-188575-20180815092914.patch</filename>
            <type>text/plain</type>
            <size>13590</size>
            <attacher name="Ali Juma">ajuma</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0ODUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWY1OTY4NTNlZGU3N2Fi
ZWI2ODliZjU4NDAyNTljYTUzMGMxNmI5ZS4uYTAxNmY5MjNlYTNhYjYxNjgxZjliNTFjOTgyODkx
Y2JkMDc0MTdhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE4LTA4LTE1ICBBbGkg
SnVtYSAgPGFqdW1hQGNocm9taXVtLm9yZz4KKworICAgICAgICBbSW50ZXJzZWN0aW9uT2JzZXJ2
ZXJdIERvIG5vdCBob2xkIGEgc3Ryb25nIHJlZmVyZW5jZSB0byB0aGUgcm9vdCBlbGVtZW50Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg1NzUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgTWFrZSBJbnRlcnNl
Y3Rpb25PYnNlcnZlciBoYXZlIG9ubHkgYSByYXcgcG9pbnRlciB0byBpdHMgcm9vdCBlbGVtZW50
IHJhdGhlciB0aGFuCisgICAgICAgIGEgcmVmZXJlbmNlLCBzbyB0aGF0IGFuIG90aGVyd2lzZS11
bnJlYWNoYWJsZSByb290IGlzbid0IGtlcHQgYWxpdmUuIEFkZCBsb2dpYyB0bworICAgICAgICB0
byBjbGVhciB0aGlzIHBvaW50ZXIgd2hlbiB0aGUgcm9vdCBlbGVtZW50IGdldHMgZGVsZXRlZC4K
KworICAgICAgICBUZXN0OiBpbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvcm9vdC1lbGVtZW50LWRlbGV0
ZWQuaHRtbAorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RWxlbWVudDo6fkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZGlzY29ubmVj
dEZyb21JbnRlcnNlY3Rpb25PYnNlcnZlcnMpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6
ZW5zdXJlSW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6OmludGVyc2VjdGlvbk9ic2VydmVyRGF0YSk6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoK
KyAgICAgICAgKiBkb20vRWxlbWVudFJhcmVEYXRhLmNwcDoKKyAgICAgICAgKiBkb20vRWxlbWVu
dFJhcmVEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UmFyZURhdGE6OmludGVyc2Vj
dGlvbk9ic2VydmVyRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UmFyZURhdGE6OnNl
dEludGVyc2VjdGlvbk9ic2VydmVyRGF0YSk6CisgICAgICAgICogcGFnZS9JbnRlcnNlY3Rpb25P
YnNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcnNlY3Rpb25PYnNlcnZlcjo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVyc2VjdGlvbk9ic2VydmVyOjpJbnRlcnNlY3Rp
b25PYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcnNlY3Rpb25PYnNlcnZlcjo6fklu
dGVyc2VjdGlvbk9ic2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVyc2VjdGlvbk9ic2Vy
dmVyOjpyb290RGVzdHJveWVkKToKKyAgICAgICAgKiBwYWdlL0ludGVyc2VjdGlvbk9ic2VydmVy
Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcnNlY3Rpb25PYnNlcnZlcjo6cm9vdCBjb25zdCk6
CisKIDIwMTgtMDgtMTQgIEFsaSBKdW1hICA8YWp1bWFAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IEZvbGxvdy11cDogW0ludGVyc2VjdGlvbk9ic2VydmVyXSBJbXBsZW1lbnQgcm9vdE1hcmdpbiBw
YXJzaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNjllNmY5MGMxNjkzZGQ3NzQ5Mzg0YzJj
N2UyZGI3MTljN2IzZDIwNi4uYjQ3Yzg5MzI1ODdiYjE5MGY4MjIyYmFkOGJmNTgzZjU5ZTkwYjc3
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMTg3LDYgKzE4NywxMCBAQCBFbGVtZW50Ojp+
RWxlbWVudCgpCiAgICAgQVNTRVJUKCFiZWZvcmVQc2V1ZG9FbGVtZW50KCkpOwogICAgIEFTU0VS
VCghYWZ0ZXJQc2V1ZG9FbGVtZW50KCkpOwogCisjaWYgRU5BQkxFKElOVEVSU0VDVElPTl9PQlNF
UlZFUikKKyAgICBkaXNjb25uZWN0RnJvbUludGVyc2VjdGlvbk9ic2VydmVycygpOworI2VuZGlm
CisKICAgICByZW1vdmVTaGFkb3dSb290KCk7CiAKICAgICBpZiAoaGFzU3ludGhldGljQXR0ckNo
aWxkTm9kZXMoKSkKQEAgLTMyMzMsNiArMzIzNywzMiBAQCB2b2lkIEVsZW1lbnQ6OnJlcXVlc3RQ
b2ludGVyTG9jaygpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTlRFUlNFQ1RJT05fT0JTRVJW
RVIpCit2b2lkIEVsZW1lbnQ6OmRpc2Nvbm5lY3RGcm9tSW50ZXJzZWN0aW9uT2JzZXJ2ZXJzKCkK
K3sKKyAgICBhdXRvKiBvYnNlcnZlckRhdGEgPSBpbnRlcnNlY3Rpb25PYnNlcnZlckRhdGEoKTsK
KyAgICBpZiAoIW9ic2VydmVyRGF0YSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChhdXRv
KiBvYnNlcnZlciA6IG9ic2VydmVyRGF0YS0+b2JzZXJ2ZXJzKQorICAgICAgICBvYnNlcnZlci0+
cm9vdERlc3Ryb3llZCgpOworICAgIG9ic2VydmVyRGF0YS0+b2JzZXJ2ZXJzLmNsZWFyKCk7Cit9
CisKK0ludGVyc2VjdGlvbk9ic2VydmVyRGF0YSYgRWxlbWVudDo6ZW5zdXJlSW50ZXJzZWN0aW9u
T2JzZXJ2ZXJEYXRhKCkKK3sKKyAgICBhdXRvJiByYXJlRGF0YSA9IGVuc3VyZUVsZW1lbnRSYXJl
RGF0YSgpOworICAgIGlmICghcmFyZURhdGEuaW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhKCkpCisg
ICAgICAgIHJhcmVEYXRhLnNldEludGVyc2VjdGlvbk9ic2VydmVyRGF0YShzdGQ6Om1ha2VfdW5p
cXVlPEludGVyc2VjdGlvbk9ic2VydmVyRGF0YT4oKSk7CisgICAgcmV0dXJuICpyYXJlRGF0YS5p
bnRlcnNlY3Rpb25PYnNlcnZlckRhdGEoKTsKK30KKworSW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRh
KiBFbGVtZW50OjppbnRlcnNlY3Rpb25PYnNlcnZlckRhdGEoKQoreworICAgIHJldHVybiBoYXNS
YXJlRGF0YSgpID8gZWxlbWVudFJhcmVEYXRhKCktPmludGVyc2VjdGlvbk9ic2VydmVyRGF0YSgp
IDogbnVsbHB0cjsKK30KKyNlbmRpZgorCiBTcGVsbGNoZWNrQXR0cmlidXRlU3RhdGUgRWxlbWVu
dDo6c3BlbGxjaGVja0F0dHJpYnV0ZVN0YXRlKCkgY29uc3QKIHsKICAgICBjb25zdCBBdG9taWNT
dHJpbmcmIHZhbHVlID0gYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6
OnNwZWxsY2hlY2tBdHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDhjMzkwNWIzZDkzMzQ4Yzli
OWM3NDA3MzJiNmRhOWFiZTRkNjY2MTkuLmY5NGNjZTBhZmUyODhhZDY4ZjQ4N2ExNDkzYzA1YTNl
ZDljZWY0YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtNTYsNiArNTYsMTAgQEAgY2xhc3MgUmVu
ZGVyVHJlZVBvc2l0aW9uOwogY2xhc3MgV2ViQW5pbWF0aW9uOwogc3RydWN0IEVsZW1lbnRTdHls
ZTsKIAorI2lmIEVOQUJMRShJTlRFUlNFQ1RJT05fT0JTRVJWRVIpCitzdHJ1Y3QgSW50ZXJzZWN0
aW9uT2JzZXJ2ZXJEYXRhOworI2VuZGlmCisKIGVudW0gU3BlbGxjaGVja0F0dHJpYnV0ZVN0YXRl
IHsKICAgICBTcGVsbGNoZWNrQXR0cmlidXRlVHJ1ZSwKICAgICBTcGVsbGNoZWNrQXR0cmlidXRl
RmFsc2UsCkBAIC01NjcsNiArNTcxLDExIEBAIHB1YmxpYzoKICAgICB1c2luZyBDb250YWluZXJO
b2RlOjpzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyOwogICAgIHZvaWQgc2V0QXR0cmlidXRlRXZl
bnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0cmlidXRlTmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSk7CiAKKyNpZiBF
TkFCTEUoSU5URVJTRUNUSU9OX09CU0VSVkVSKQorICAgIEludGVyc2VjdGlvbk9ic2VydmVyRGF0
YSYgZW5zdXJlSW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhKCk7CisgICAgSW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXJEYXRhKiBpbnRlcnNlY3Rpb25PYnNlcnZlckRhdGEoKTsKKyNlbmRpZgorCiAgICAgRWxl
bWVudCogZmluZEFuY2hvckVsZW1lbnRGb3JMaW5rKFN0cmluZyYgb3V0QW5jaG9yTmFtZSk7CiAK
ICAgICBFeGNlcHRpb25PcjxSZWY8V2ViQW5pbWF0aW9uPj4gYW5pbWF0ZShKU0M6OkV4ZWNTdGF0
ZSYsIEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+JiYsIHN0ZDo6b3B0aW9uYWw8VmFyaWFudDxk
b3VibGUsIEtleWZyYW1lQW5pbWF0aW9uT3B0aW9ucz4+JiYpOwpAQCAtNjQ2LDYgKzY1NSwxMCBA
QCBwcml2YXRlOgogICAgIHZvaWQgZm9ybWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1bnNp
Z25lZCBsZW5ndGgpIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5URVJT
RUNUSU9OX09CU0VSVkVSKQorICAgIHZvaWQgZGlzY29ubmVjdEZyb21JbnRlcnNlY3Rpb25PYnNl
cnZlcnMoKTsKKyNlbmRpZgorCiAgICAgLy8gVGhlIGNsb25lTm9kZSBmdW5jdGlvbiBpcyBwcml2
YXRlIHNvIHRoYXQgbm9uLXZpcnR1YWwgY2xvbmVFbGVtZW50V2l0aC9XaXRob3V0Q2hpbGRyZW4g
YXJlIHVzZWQgaW5zdGVhZC4KICAgICBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1l
bnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFJlZjxFbGVtZW50
PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50Jik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuY3BwCmluZGV4IDQ3OGE4ODg3ZTAwNTFhY2Fi
YjYyMGUzNzVhYjYwMjI1MjgxOTViY2UuLjZjZmE4MDk2ZDNmNTg0MDdkZDBhODZjYzczZjhmN2Uw
YzM2MGU1NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuY3BwCkBAIC00NCw2
ICs0NCwxMCBAQCBzdHJ1Y3QgU2FtZVNpemVBc0VsZW1lbnRSYXJlRGF0YSA6IE5vZGVSYXJlRGF0
YSB7CiAgICAgTGF5b3V0U2l6ZSBzaXplRm9yUmVzaXppbmc7CiAgICAgSW50UG9pbnQgc2F2ZWRM
YXllclNjcm9sbFBvc2l0aW9uOwogICAgIHZvaWQqIHBvaW50ZXJzWzhdOworI2lmIEVOQUJMRShJ
TlRFUlNFQ1RJT05fT0JTRVJWRVIpCisgICAgdm9pZCogaW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRh
OworI2VuZGlmCisKIH07CiAKIHN0YXRpY19hc3NlcnQoc2l6ZW9mKEVsZW1lbnRSYXJlRGF0YSkg
PT0gc2l6ZW9mKFNhbWVTaXplQXNFbGVtZW50UmFyZURhdGEpLCAiRWxlbWVudFJhcmVEYXRhIHNo
b3VsZCBzdGF5IHNtYWxsIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dFJhcmVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKaW5kZXgg
YTBmMzAxZTg3NGE0YzBhZjE0MzkzMGFkYWRkZTYyYzVlYThmYmJmZi4uZTcxOWIzZDQ5ZGFhNzBi
NmYyMWZiZWU5MWYxZDEyZDVmNmRjYzQ5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnRSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURh
dGEuaApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgIkN1c3RvbUVsZW1lbnRSZWFjdGlvblF1
ZXVlLmgiCiAjaW5jbHVkZSAiRE9NVG9rZW5MaXN0LmgiCiAjaW5jbHVkZSAiRGF0YXNldERPTVN0
cmluZ01hcC5oIgorI2luY2x1ZGUgIkludGVyc2VjdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAi
TmFtZWROb2RlTWFwLmgiCiAjaW5jbHVkZSAiTm9kZVJhcmVEYXRhLmgiCiAjaW5jbHVkZSAiUHNl
dWRvRWxlbWVudC5oIgpAQCAtMTE2LDYgKzExNywxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXND
U1NBbmltYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2hhc0NTU0FuaW1hdGlvbjsgfQogICAgIHZv
aWQgc2V0SGFzQ1NTQW5pbWF0aW9uKGJvb2wgdmFsdWUpIHsgbV9oYXNDU1NBbmltYXRpb24gPSB2
YWx1ZTsgfQogCisjaWYgRU5BQkxFKElOVEVSU0VDVElPTl9PQlNFUlZFUikKKyAgICBJbnRlcnNl
Y3Rpb25PYnNlcnZlckRhdGEqIGludGVyc2VjdGlvbk9ic2VydmVyRGF0YSgpIHsgcmV0dXJuIG1f
aW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhLmdldCgpOyB9CisgICAgdm9pZCBzZXRJbnRlcnNlY3Rp
b25PYnNlcnZlckRhdGEoc3RkOjp1bmlxdWVfcHRyPEludGVyc2VjdGlvbk9ic2VydmVyRGF0YT4m
JiBkYXRhKSB7IG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhID0gV1RGTW92ZShkYXRhKTsgfQor
I2VuZGlmCisKIHByaXZhdGU6CiAgICAgaW50IG1fdGFiSW5kZXg7CiAgICAgdW5zaWduZWQgc2hv
cnQgbV9jaGlsZEluZGV4OwpAQCAtMTQ5LDYgKzE1NSw5IEBAIHByaXZhdGU6CiAgICAgUmVmUHRy
PFNoYWRvd1Jvb3Q+IG1fc2hhZG93Um9vdDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q3VzdG9tRWxl
bWVudFJlYWN0aW9uUXVldWU+IG1fY3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWU7CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPE5hbWVkTm9kZU1hcD4gbV9hdHRyaWJ1dGVNYXA7CisjaWYgRU5BQkxFKElO
VEVSU0VDVElPTl9PQlNFUlZFUikKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXJEYXRhPiBtX2ludGVyc2VjdGlvbk9ic2VydmVyRGF0YTsKKyNlbmRpZgogCiAgICAgUmVm
UHRyPFBzZXVkb0VsZW1lbnQ+IG1fYmVmb3JlUHNldWRvRWxlbWVudDsKICAgICBSZWZQdHI8UHNl
dWRvRWxlbWVudD4gbV9hZnRlclBzZXVkb0VsZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
SW50ZXJzZWN0aW9uT2JzZXJ2ZXIuY3BwCmluZGV4IDgzY2IyYjBhMDU2OTM4ZGNlMjQyNDcwZjZm
OWZlMDAxOWI2Mzk4MDAuLjQ0ZjM0NmRhMTQzNTYwZWU0ZjM1MTBmM2RiYTM2NWQ1MmM0YjQzZGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuY3BwCkBAIC0x
MDAsMTUgKzEwMCwyNSBAQCBFeGNlcHRpb25PcjxSZWY8SW50ZXJzZWN0aW9uT2JzZXJ2ZXI+PiBJ
bnRlcnNlY3Rpb25PYnNlcnZlcjo6Y3JlYXRlKFJlZjxJbnRlcnNlYwogICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IFJhbmdlRXJyb3IsICJGYWlsZWQgdG8gY29uc3RydWN0ICdJbnRlcnNl
Y3Rpb25PYnNlcnZlcic6IGFsbCB0aHJlc2hvbGRzIG11c3QgbGllIGluIHRoZSByYW5nZSBbMC4w
LCAxLjBdLiIgfTsKICAgICB9CiAKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnRlcnNlY3Rp
b25PYnNlcnZlcihXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShpbml0LnJvb3QpLCByb290TWFy
Z2luT3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCksIFdURk1vdmUodGhyZXNob2xkcykp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihXVEZNb3Zl
KGNhbGxiYWNrKSwgaW5pdC5yb290LCByb290TWFyZ2luT3JFeGNlcHRpb24ucmVsZWFzZVJldHVy
blZhbHVlKCksIFdURk1vdmUodGhyZXNob2xkcykpKTsKIH0KIAotSW50ZXJzZWN0aW9uT2JzZXJ2
ZXI6OkludGVyc2VjdGlvbk9ic2VydmVyKFJlZjxJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNr
PiYmIGNhbGxiYWNrLCBSZWZQdHI8RWxlbWVudD4mJiByb290LCBMZW5ndGhCb3gmJiBwYXJzZWRS
b290TWFyZ2luLCBWZWN0b3I8ZG91YmxlPiYmIHRocmVzaG9sZHMpCi0gICAgOiBtX3Jvb3QoV1RG
TW92ZShyb290KSkKK0ludGVyc2VjdGlvbk9ic2VydmVyOjpJbnRlcnNlY3Rpb25PYnNlcnZlcihS
ZWY8SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjaz4mJiBjYWxsYmFjaywgRWxlbWVudCogcm9v
dCwgTGVuZ3RoQm94JiYgcGFyc2VkUm9vdE1hcmdpbiwgVmVjdG9yPGRvdWJsZT4mJiB0aHJlc2hv
bGRzKQorICAgIDogbV9yb290KHJvb3QpCiAgICAgLCBtX3Jvb3RNYXJnaW4oV1RGTW92ZShwYXJz
ZWRSb290TWFyZ2luKSkKICAgICAsIG1fdGhyZXNob2xkcyhXVEZNb3ZlKHRocmVzaG9sZHMpKQog
ICAgICwgbV9jYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKIHsKKyAgICBpZiAobV9yb290KSB7
CisgICAgICAgIGF1dG8mIG9ic2VydmVyRGF0YSA9IG1fcm9vdC0+ZW5zdXJlSW50ZXJzZWN0aW9u
T2JzZXJ2ZXJEYXRhKCk7CisgICAgICAgIG9ic2VydmVyRGF0YS5vYnNlcnZlcnMuYXBwZW5kKHRo
aXMpOworICAgIH0KK30KKworSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6On5JbnRlcnNlY3Rpb25PYnNl
cnZlcigpCit7CisgICAgaWYgKG1fcm9vdCkKKyAgICAgICAgbV9yb290LT5pbnRlcnNlY3Rpb25P
YnNlcnZlckRhdGEoKS0+b2JzZXJ2ZXJzLnJlbW92ZUZpcnN0KHRoaXMpOwogfQogCiBTdHJpbmcg
SW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OnJvb3RNYXJnaW4oKSBjb25zdApAQCAtMTQ1LDYgKzE1NSwx
MiBAQCBWZWN0b3I8UmVmUHRyPEludGVyc2VjdGlvbk9ic2VydmVyRW50cnk+PiBJbnRlcnNlY3Rp
b25PYnNlcnZlcjo6dGFrZVJlY29yZHMoKQogICAgIHJldHVybiB7IH07CiB9CiAKK3ZvaWQgSW50
ZXJzZWN0aW9uT2JzZXJ2ZXI6OnJvb3REZXN0cm95ZWQoKQoreworICAgIEFTU0VSVChtX3Jvb3Qp
OworICAgIGRpc2Nvbm5lY3QoKTsKKyAgICBtX3Jvb3QgPSBudWxscHRyOworfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJz
ZWN0aW9uT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2
ZXIuaAppbmRleCBiMDRjZmIyMTE2Mjg1NWIyMWI2NzA0NTAxMzA4OTUzNDlhMmUxNGUyLi43YWFj
MjE4MzIwOTRkODYzZWY3NjhmOTJkZjc1YmZhZjNhNWFiM2I3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5oCkBAIC0zOCwxNyArMzgsMjggQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBFbGVtZW50OwogCitzdHJ1Y3QgSW50ZXJzZWN0aW9uT2JzZXJ2
ZXJEYXRhIHsKKyAgICAvLyBJbnRlcnNlY3Rpb25PYnNlcnZlcnMgZm9yIHdoaWNoIHRoZSBlbGVt
ZW50IHRoYXQgb3ducyB0aGlzIEludGVyc2VjdGlvbk9ic2VydmVyRGF0YSBpcyB0aGUgcm9vdC4K
KyAgICAvLyBUaGUgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJzIGFyZSBvd25lZCBieSBKYXZhU2NyaXB0
IHdyYXBwZXJzIGFuZCBieSBJbnRlcnNlY3Rpb25PYnNlcnZlclJlZ2lzdHJhdGlvbnMKKyAgICAv
LyBmb3IgZWFjaCB0YXJnZXQgY3VycmVudGx5IGJlaW5nIG9ic2VydmVkLgorICAgIFZlY3RvcjxJ
bnRlcnNlY3Rpb25PYnNlcnZlcio+IG9ic2VydmVyczsKKworICAgIC8vIEZJWE1FOiBDcmVhdGUg
YW5kIHRyYWNrIEludGVyc2VjdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9ucy4KK307CisKIGNsYXNz
IEludGVyc2VjdGlvbk9ic2VydmVyIDogcHVibGljIFJlZkNvdW50ZWQ8SW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXI+IHsKIHB1YmxpYzoKICAgICBzdHJ1Y3QgSW5pdCB7Ci0gICAgICAgIFJlZlB0cjxFbGVt
ZW50PiByb290OworICAgICAgICBFbGVtZW50KiByb290IHsgbnVsbHB0ciB9OwogICAgICAgICBT
dHJpbmcgcm9vdE1hcmdpbjsKICAgICAgICAgVmFyaWFudDxkb3VibGUsIFZlY3Rvcjxkb3VibGU+
PiB0aHJlc2hvbGQ7CiAgICAgfTsKIAogICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8SW50ZXJz
ZWN0aW9uT2JzZXJ2ZXI+PiBjcmVhdGUoUmVmPEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2s+
JiYsIEluaXQmJik7Ci0gICAgCi0gICAgRWxlbWVudCogcm9vdCgpIGNvbnN0IHsgcmV0dXJuIG1f
cm9vdC5nZXQoKTsgfQorCisgICAgfkludGVyc2VjdGlvbk9ic2VydmVyKCk7CisKKyAgICBFbGVt
ZW50KiByb290KCkgY29uc3QgeyByZXR1cm4gbV9yb290OyB9CiAgICAgU3RyaW5nIHJvb3RNYXJn
aW4oKSBjb25zdDsKICAgICBjb25zdCBWZWN0b3I8ZG91YmxlPiYgdGhyZXNob2xkcygpIGNvbnN0
IHsgcmV0dXJuIG1fdGhyZXNob2xkczsgfQogCkBAIC01OCwxMCArNjksMTIgQEAgcHVibGljOgog
CiAgICAgVmVjdG9yPFJlZlB0cjxJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5Pj4gdGFrZVJlY29y
ZHMoKTsKIAorICAgIHZvaWQgcm9vdERlc3Ryb3llZCgpOworCiBwcml2YXRlOgotICAgIEludGVy
c2VjdGlvbk9ic2VydmVyKFJlZjxJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrPiYmLCBSZWZQ
dHI8RWxlbWVudD4mJiByb290LCBMZW5ndGhCb3gmJiBwYXJzZWRSb290TWFyZ2luLCBWZWN0b3I8
ZG91YmxlPiYmIHRocmVzaG9sZHMpOworICAgIEludGVyc2VjdGlvbk9ic2VydmVyKFJlZjxJbnRl
cnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrPiYmLCBFbGVtZW50KiByb290LCBMZW5ndGhCb3gmJiBw
YXJzZWRSb290TWFyZ2luLCBWZWN0b3I8ZG91YmxlPiYmIHRocmVzaG9sZHMpOwogICAgIAotICAg
IFJlZlB0cjxFbGVtZW50PiBtX3Jvb3Q7CisgICAgRWxlbWVudCogbV9yb290OwogICAgIExlbmd0
aEJveCBtX3Jvb3RNYXJnaW47CiAgICAgVmVjdG9yPGRvdWJsZT4gbV90aHJlc2hvbGRzOwogICAg
IFJlZjxJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrPiBtX2NhbGxiYWNrOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVl
NzQ5NjBhYTAxM2M5NDAzYWFlZjJmOGVjODAwZjFlMjBlOTIwZjAuLmFiMWMyMGM4ZjM5YTYzMGFh
NGMyOWU0ZjgyYjU4ZGExMTRiMmM3MDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOC0wOC0x
NSAgQWxpIEp1bWEgIDxhanVtYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0ludGVyc2VjdGlv
bk9ic2VydmVyXSBEbyBub3QgaG9sZCBhIHN0cm9uZyByZWZlcmVuY2UgdG8gdGhlIHJvb3QgZWxl
bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4
NTc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgICogaW50
ZXJzZWN0aW9uLW9ic2VydmVyL3Jvb3QtZWxlbWVudC1kZWxldGVkLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaW50ZXJzZWN0aW9uLW9ic2VydmVyL3Jvb3QtZWxlbWVudC1kZWxldGVk
Lmh0bWw6IEFkZGVkLgorCiAyMDE4LTA4LTE0ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBs
ZS5jb20+CiAKICAgICAgICAgW1dlYiBBbmltYXRpb25zXSBDcmFzaCB1bmRlciBBbmltYXRpb25U
aW1lbGluZTo6Y2FuY2VsT3JSZW1vdmVEZWNsYXJhdGl2ZUFuaW1hdGlvbigpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvcm9vdC1lbGVtZW50LWRlbGV0ZWQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL3Jvb3QtZWxl
bWVudC1kZWxldGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZGYwNWQ2YWJjYTdhNmJhMWY3
NTliZDkxZjkxM2UxZjdiNzY4YmI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW50
ZXJzZWN0aW9uLW9ic2VydmVyL3Jvb3QtZWxlbWVudC1kZWxldGVkLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKworUEFTUyBJbnRlcnNlY3Rpb25PYnNlcnZlciBkb2Vzbid0IGtlZXAgdW5y
ZWFjaGFibGUgcm9vdCBhbGl2ZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW50ZXJzZWN0
aW9uLW9ic2VydmVyL3Jvb3QtZWxlbWVudC1kZWxldGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnRl
cnNlY3Rpb24tb2JzZXJ2ZXIvcm9vdC1lbGVtZW50LWRlbGV0ZWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
MTRkOWFjNTAyYjRmN2U5Y2ZjNjEwZDE4ZTllNGUyOWRlNGI4ZGE2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL3Jvb3QtZWxlbWVudC1kZWxldGVk
Lmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVJbnRlcnNlY3Rpb25PYnNlcnZlcj10cnVlIF0gLS0+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8Ym9k
eT4KKworPGRpdiBpZD0icm9vdCIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlIj4KKyAgICA8ZGl2
IGlkPSJ0YXJnZXQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IGJhY2tncm91
bmQtY29sb3I6IGdyZWVuIj48L2Rpdj4KKzwvZGl2PgorCis8c2NyaXB0PgorICAgIGFzeW5jX3Rl
c3QoZnVuY3Rpb24odCkgeworICAgICAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdyb290Jyk7CisgICAgICAgIHZhciBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNl
cnZlcihmdW5jdGlvbigpIHt9LCB7IHJvb3Q6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyb290
JykgfSk7OworICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rh
cmdldCcpOworICAgICAgICBhc3NlcnRfZXF1YWxzKG9ic2VydmVyLnJvb3QsIHJvb3QsICdPYnNl
cnZlciBzdGFydHMgb3V0IHdpdGggbm9uLW51bGwgcm9vdCcpOworICAgICAgICBvYnNlcnZlci5v
YnNlcnZlKHRhcmdldCk7CisgICAgICAgIHJvb3QucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyb290
KTsKKyAgICAgICAgcm9vdCA9IG51bGw7CisgICAgICAgIHRhcmdldCA9IG51bGw7CisgICAgICAg
IHJlcXVlc3RBbmltYXRpb25GcmFtZSh0LnN0ZXBfZnVuY19kb25lKGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMob2JzZXJ2ZXIucm9vdCwgbnVsbCwgJ09ic2VydmVyIGhhcyBudWxsIHJvb3QgYWZ0ZXIgcm9v
dCBlbGVtZW50IGlzIGRlc3Ryb3llZCcpOworICAgICAgICB9KSk7CisgICAgfSwgIkludGVyc2Vj
dGlvbk9ic2VydmVyIGRvZXNuJ3Qga2VlcCB1bnJlYWNoYWJsZSByb290IGFsaXZlIik7Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>