<?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>228816</bug_id>
          
          <creation_ts>2021-08-05 03:09:27 -0700</creation_ts>
          <short_desc>MediaPlayerPrivateMediaStreamAVFObjC should skip enqueuing frames when not visible</short_desc>
          <delta_ts>2021-08-06 02:16:02 -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>WebRTC</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1782160</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-08-05 03:09:27 -0700</bug_when>
    <thetext>MediaPlayerPrivateMediaStreamAVFObjC should skip enqueuing frames when not visible</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782161</commentid>
    <comment_count>1</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-08-05 03:10:59 -0700</bug_when>
    <thetext>&lt;rdar://81077972&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782163</commentid>
    <comment_count>2</comment_count>
      <attachid>434974</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-08-05 03:24:45 -0700</bug_when>
    <thetext>Created attachment 434974
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782237</commentid>
    <comment_count>3</comment_count>
      <attachid>434974</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-08-05 09:38:47 -0700</bug_when>
    <thetext>Comment on attachment 434974
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        We do this by stopping to call ensureLayers when getting a new track. Instead we react upon player renderingCanBeAccelerated value.

s/by stopping to call/by not calling/

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:611
&gt; -void MediaPlayerPrivateMediaStreamAVFObjC::setVisible(bool visible)
&gt; +void MediaPlayerPrivateMediaStreamAVFObjC::setVisible(bool isVisible)

Not new to this patch, but we might want to rename this to `setPageIsVisible`, or maybe `setViewportIsVisible`, to match the names of the other &quot;visible&quot; methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782278</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-08-05 10:49:04 -0700</bug_when>
    <thetext>(In reply to Eric Carlson from comment #3)
&gt; Comment on attachment 434974 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=434974&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:11
&gt; &gt; +        We do this by stopping to call ensureLayers when getting a new track. Instead we react upon player renderingCanBeAccelerated value.
&gt; 
&gt; s/by stopping to call/by not calling/
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:611
&gt; &gt; -void MediaPlayerPrivateMediaStreamAVFObjC::setVisible(bool visible)
&gt; &gt; +void MediaPlayerPrivateMediaStreamAVFObjC::setVisible(bool isVisible)
&gt; 
&gt; Not new to this patch, but we might want to rename this to
&gt; `setPageIsVisible`, or maybe `setViewportIsVisible`, to match the names of
&gt; the other &quot;visible&quot; methods.

Thanks for the review, I&apos;ll do that renaming in a follow-up: https://bugs.webkit.org/show_bug.cgi?id=228837</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782282</commentid>
    <comment_count>5</comment_count>
      <attachid>435006</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-08-05 10:53:07 -0700</bug_when>
    <thetext>Created attachment 435006
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782458</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-06 02:15:58 -0700</bug_when>
    <thetext>Committed r280720 (240311@main): &lt;https://commits.webkit.org/240311@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 435006.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434974</attachid>
            <date>2021-08-05 03:24:45 -0700</date>
            <delta_ts>2021-08-05 10:53:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228816-20210805122444.patch</filename>
            <type>text/plain</type>
            <size>17168</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmEzZmM2N2NlYTNhMGM4
Y2JlZTc4Zjg1ZDkzNWUxMjU3NjkwYWMwZC4uMzc0NzJkYTZlM2E4OTNmMzA1MDNjODg3NzVkODQ4
OGJhNDI0MmEzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIxLTA4LTA1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMgc2hvdWxkIHNraXAgZW5xdWV1aW5nIGZyYW1lcyB3aGVuIG5v
dCB2aXNpYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjg4MTYKKyAgICAgICAgPHJkYXI6Ly84MTA3Nzk3Mj4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEbyBub3QgY3JlYXRlIGxheWVycyB3aGVuIG5v
dCBuZWVkZWQuCisgICAgICAgIFRoaXMgcHJldmVudHMgZW5xdWV1aW5nIGZyYW1lcyBpbiBhIEFW
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIHRoYXQgd2lsbCBvbmx5IGJ1ZmZlciB0aGVtLCB0aHVz
IGJyZWFraW5nIGNhbWVyYSBjYXB0dXJlL3ZpZGVvIGRlY29kaW5nLgorICAgICAgICBXZSBkbyB0
aGlzIGJ5IHN0b3BwaW5nIHRvIGNhbGwgZW5zdXJlTGF5ZXJzIHdoZW4gZ2V0dGluZyBhIG5ldyB0
cmFjay4gSW5zdGVhZCB3ZSByZWFjdCB1cG9uIHBsYXllciByZW5kZXJpbmdDYW5CZUFjY2VsZXJh
dGVkIHZhbHVlLgorCisgICAgICAgIEl0IGlzIGFsc28gdW5uZWNlc3NhcnkgYW5kIHRha2VzIENQ
VSBjeWNsZXMgdG8gZW5xdWV1ZSBmcmFtZXMgd2hlbiB0aGUgdmlkZW8gZWxlbWVudCBpcyBub3Qg
dmlzaWJsZS4KKyAgICAgICAgSFRNTE1lZGlhRWxlbWVudCBhbmQgUmVuZGVyVmlkZW8gdGh1cyBw
YXNzIHRvIE1lZGlhUGxheWVyIGEgbmV3IGZsYWcgdGVsbGluZyB3aGV0aGVyIHRoZSB2aWRlbyBl
bGVtZW50IGlzIHZpc2libGUgaW4gdGhlIHZpZXcgcG9ydC4KKyAgICAgICAgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDIHdpbGwgdGhlbiBza2lwIGVucXVldWVpbmcgZnJhbWVz
IGlmIG5vdCBuZWVkZWQuCisKKyAgICAgICAgQWRkIGdldHRlciBhbmQgaW50ZXJuYWxzIEFQSSB0
byBjb3ZlciB0aGVzZSBjaGFuZ2VzLgorCisgICAgICAgIFRlc3Q6IGZhc3QvbWVkaWFzdHJlYW0v
bWVkaWFQbGF5ZXItdmlzaWJpbGl0eS5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6aXNWaXNpYmxl
SW5WaWV3cG9ydENoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpsb2FkV2l0aE5leHRNZWRp
YUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6c2V0VmlzaWJsZUluVmll
d3BvcnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnNldFZpc2libGVJblZpZXdwb3J0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OmVucXVldWVWaWRlb1NhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldFZpc2libGUpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRWaXNpYmxlSW5WaWV3
cG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OmNoZWNrU2VsZWN0ZWRWaWRlb1RyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRl
eHQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWRlby5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJWaWRlbzo6dXBkYXRlUGxheWVyKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVy
bmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmlzUGxheWVyVmlzaWJsZUlu
Vmlld3BvcnQgY29uc3QpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDIxLTA3LTMwICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xpY2tpbmcgYW4gSFRNTExpbmtFbGVtZW50IHNo
b3VsZCBub3QgdHJpZ2dlciBhIG5hdmlnYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCmluZGV4IDBhNDNmZWNkMWVlY2ViNjJkZTkxODg2ODY2ZDk1MDhjNzVlNmU3
ZGEuLjJmMDcxMGE2YjM3YmIzYzc2ODUxOWFmZjlhNGI2OTQxZjg4YjYzYWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNjc0NCw2ICs2NzQ0LDcgQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjpjcmVhdGVNZWRpYVBsYXllcigpIFdURl9JR05PUkVTX1RIUkVB
RF9TQUZFVFlfQU5BTFlTSVMKICAgICBtX3BsYXllci0+c2V0UHJlZmVycmVkRHluYW1pY1Jhbmdl
TW9kZShtX292ZXJyaWRlRHluYW1pY1JhbmdlTW9kZS52YWx1ZV9vcihwcmVmZXJyZWREeW5hbWlj
UmFuZ2VNb2RlKGRvY3VtZW50KCkudmlldygpKSkpOwogICAgIG1fcGxheWVyLT5zZXRNdXRlZChl
ZmZlY3RpdmVNdXRlZCgpKTsKICAgICBtX3BsYXllci0+c2V0VmlzaWJsZSghbV9lbGVtZW50SXNI
aWRkZW4pOworICAgIG1fcGxheWVyLT5zZXRWaXNpYmxlSW5WaWV3cG9ydChpc1Zpc2libGVJblZp
ZXdwb3J0KCkpOwogICAgIHNjaGVkdWxlUGxheWJhY2tDb250cm9sc01hbmFnZXJVcGRhdGUoKTsK
IAogI2lmIEVOQUJMRShXRUJfQVVESU8pCkBAIC04MDcxLDYgKzgwNzIsOCBAQCBib29sIEhUTUxN
ZWRpYUVsZW1lbnQ6OmlzVmlkZW9Ub29TbWFsbEZvcklubGluZVBsYXliYWNrKCkKIAogdm9pZCBI
VE1MTWVkaWFFbGVtZW50Ojppc1Zpc2libGVJblZpZXdwb3J0Q2hhbmdlZCgpCiB7CisgICAgaWYg
KG1fcGxheWVyKQorICAgICAgICBtX3BsYXllci0+c2V0VmlzaWJsZUluVmlld3BvcnQoaXNWaXNp
YmxlSW5WaWV3cG9ydCgpKTsKICAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMs
IFRhc2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgW3RoaXNdIHsKICAgICAgICAgaWYgKGlzQ29udGV4
dFN0b3BwZWQoKSkKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCAxZGI3MGM1YmE1NWE3NDVjYjRm
NmFhYzNmMzdkNGQ5NTIxYzZiODQ3Li4xZGI3ZjlmYTlkODQ2Mzc0YTI0NTJjNTE3ODExZWY5Yzll
YzIyZWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuY3BwCkBAIC01NzUsNiArNTc1LDggQEAgdm9pZCBNZWRpYVBsYXllcjo6bG9hZFdpdGhO
ZXh0TWVkaWFFbmdpbmUoY29uc3QgTWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50KQogICAgICAg
ICAgICAgY2xpZW50KCkubWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKCk7CiAgICAgICAgICAgICBp
ZiAobV92aXNpYmxlKQogICAgICAgICAgICAgICAgIG1fcHJpdmF0ZS0+c2V0VmlzaWJsZShtX3Zp
c2libGUpOworICAgICAgICAgICAgaWYgKG1fdmlzaWJsZUluVmlld3BvcnQpCisgICAgICAgICAg
ICAgICAgbV9wcml2YXRlLT5zZXRWaXNpYmxlSW5WaWV3cG9ydChtX3Zpc2libGVJblZpZXdwb3J0
KTsKICAgICAgICAgICAgIG1fcHJpdmF0ZS0+cHJlcGFyZUZvclBsYXliYWNrKG1fcHJpdmF0ZUJy
b3dzaW5nLCBtX3ByZWxvYWQsIG1fcHJlc2VydmVzUGl0Y2gsIG1fc2hvdWxkUHJlcGFyZVRvUmVu
ZGVyKTsKICAgICAgICAgfQogICAgIH0KQEAgLTEwMTEsNiArMTAxMywxMiBAQCB2b2lkIE1lZGlh
UGxheWVyOjpzZXRWaXNpYmxlRm9yQ2FudmFzKGJvb2wgdmlzaWJsZSkKICAgICBtX3ByaXZhdGUt
PnNldFZpc2libGVGb3JDYW52YXModmlzaWJsZSk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXI6OnNl
dFZpc2libGVJblZpZXdwb3J0KGJvb2wgdmlzaWJsZSkKK3sKKyAgICBtX3Zpc2libGVJblZpZXdw
b3J0ID0gdmlzaWJsZTsKKyAgICBtX3ByaXZhdGUtPnNldFZpc2libGVJblZpZXdwb3J0KHZpc2li
bGUpOworfQorCiBNZWRpYVBsYXllcjo6UHJlbG9hZCBNZWRpYVBsYXllcjo6cHJlbG9hZCgpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIG1fcHJlbG9hZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDQwOWQ4MThiNGY3MjgyMTQxMWUxODAwNGE5
YjczN2Q2NzQyNWUxOTkuLjYyM2ExOGUxNzRjNzllN2U2YmE2OWY4MDE4MGFmZmYzNzA3YTk0Y2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApA
QCAtMzYwLDYgKzM2MCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFZpc2libGUoYm9vbCk7CiAg
ICAgdm9pZCBzZXRWaXNpYmxlRm9yQ2FudmFzKGJvb2wpOwogCisgICAgdm9pZCBzZXRWaXNpYmxl
SW5WaWV3cG9ydChib29sKTsKKyAgICBib29sIGlzVmlzaWJsZUluVmlld3BvcnQoKSBjb25zdCB7
IHJldHVybiBtX3Zpc2libGVJblZpZXdwb3J0OyB9CisKICAgICB2b2lkIHByZXBhcmVUb1BsYXko
KTsKICAgICB2b2lkIHBsYXkoKTsKICAgICB2b2lkIHBhdXNlKCk7CkBAIC02OTksNiArNzAyLDcg
QEAgcHJpdmF0ZToKICAgICBQcmVsb2FkIG1fcHJlbG9hZCB7IFByZWxvYWQ6OkF1dG8gfTsKICAg
ICBkb3VibGUgbV92b2x1bWUgeyAxIH07CiAgICAgYm9vbCBtX3Zpc2libGUgeyBmYWxzZSB9Owor
ICAgIGJvb2wgbV92aXNpYmxlSW5WaWV3cG9ydCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX211dGVk
IHsgZmFsc2UgfTsKICAgICBib29sIG1fcHJlc2VydmVzUGl0Y2ggeyB0cnVlIH07CiAgICAgYm9v
bCBtX3ByaXZhdGVCcm93c2luZyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IGZmZmNmMDVhZWE1
MTY0NTJhZDdhMDc3NWM4NTllMDBiMmE5N2I2YWIuLmJlOWUzZDc2YmIzMjJjOWNiYTM2NzA1NDNl
ZGRmYzlmMjRiYzFhMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC05OCw2ICs5OCw3IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0VmlzaWJsZUZvckNhbnZhcyhib29sIHZpc2libGUpIHsgc2V0VmlzaWJsZSh2aXNpYmxlKTsg
fQorICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlSW5WaWV3cG9ydChib29sKSB7IH0KIAogICAg
IHZpcnR1YWwgZmxvYXQgZHVyYXRpb24oKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgdmlydHVh
bCBkb3VibGUgZHVyYXRpb25Eb3VibGUoKSBjb25zdCB7IHJldHVybiBkdXJhdGlvbigpOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCmluZGV4IDIyYTZhZWE4YjE2NGZhMGYxNjZlZWE1ODZkZDE4
MjZiOGEyZTQ1MDUuLmNjZmQzMGI1MzlmNDYyNmFiNmI3ZTg2MmJjNmM5YWQ4OTcxYmQ0YjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCkBAIC0xMjIsNiArMTIyLDcgQEAgcHJpdmF0ZToKIAog
ICAgIHZvaWQgc2V0VmlzaWJsZShib29sKSBmaW5hbDsKICAgICB2b2lkIHNldFZpc2libGVGb3JD
YW52YXMoYm9vbCkgZmluYWw7CisgICAgdm9pZCBzZXRWaXNpYmxlSW5WaWV3cG9ydChib29sKSBm
aW5hbDsKIAogICAgIE1lZGlhVGltZSBkdXJhdGlvbk1lZGlhVGltZSgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIE1lZGlhVGltZSBjdXJyZW50TWVkaWFUaW1lKCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC0x
NDMsNyArMTQ0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250
ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIGJv
b2wgbWV0YURhdGFBdmFpbGFibGUoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RyZWFtUHJpdmF0
ZSAmJiBtX3JlYWR5U3RhdGUgPj0gTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0
YTsgfQogCi0gICAgdm9pZCBhY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpIG92ZXJy
aWRlOworICAgIHZvaWQgYWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKSBmaW5hbCB7
IHVwZGF0ZUxheWVyc0FzTmVlZGVkKCk7IH0KICAgICBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRS
ZW5kZXJpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICBib29sIGhh
c1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpA
QCAtMTcwLDYgKzE3MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzY2hlZHVsZURlZmVycmVkVGFz
ayhGdW5jdGlvbjx2b2lkICgpPiYmKTsKIAogICAgIHZvaWQgbGF5ZXJzQXJlSW5pdGlhbGl6ZWQo
SW50U2l6ZSwgYm9vbCk7CisgICAgdm9pZCB1cGRhdGVMYXllcnNBc05lZWRlZCgpOwogCiAgICAg
ZW51bSBEaXNwbGF5TW9kZSB7CiAgICAgICAgIE5vbmUsCkBAIC0yNzIsNyArMjc0LDggQEAgcHJp
dmF0ZToKICAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9lbmRlZCB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX2hhc0V2ZXJFbnF1ZXVlZFZpZGVvRnJhbWUgeyBmYWxzZSB9Owot
ICAgIGJvb2wgbV92aXNpYmxlIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNQYWdlVmlzaWJsZSB7
IGZhbHNlIH07CisgICAgYm9vbCBtX2lzVmlzaWJsZUluVmlld1BvcnQgeyBmYWxzZSB9OwogICAg
IGJvb2wgbV9oYXZlU2Vlbk1ldGFkYXRhIHsgZmFsc2UgfTsKICAgICBib29sIG1fd2FpdGluZ0Zv
ckZpcnN0SW1hZ2UgeyBmYWxzZSB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQppbmRl
eCA1NWI1MDBjNTdlOTNlYmJhNDk2YWU3NDE2ZmQ1ZGY3OGQ3Yjk0NThlLi45OTQ4MDYwOTY0MGQ3
MDliMjg5ODA0NmY0OWIxZjhkZTQ4MTNlMjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1t
CkBAIC0yNTEsNyArMjUxLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBzYW0KIAogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmVucXVldWVWaWRlb1NhbXBsZShNZWRp
YVNhbXBsZSYgc2FtcGxlKQogewotICAgIGlmICghbV92aXNpYmxlKQorICAgIGlmICghbV9pc1Bh
Z2VWaXNpYmxlIHx8ICFtX2lzVmlzaWJsZUluVmlld1BvcnQpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGlmICghbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJMb2NrLnRyeUxvY2soKSkKQEAgLTYw
OCwxMiArNjA4LDEyIEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
OjpoYXNBdWRpbygpIGNvbnN0CiAgICAgcmV0dXJuICFtX2F1ZGlvVHJhY2tNYXAuaXNFbXB0eSgp
OwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0Vmlz
aWJsZShib29sIHZpc2libGUpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6c2V0VmlzaWJsZShib29sIGlzVmlzaWJsZSkKIHsKLSAgICBpZiAobV92aXNpYmxlID09
IHZpc2libGUpCisgICAgaWYgKG1faXNQYWdlVmlzaWJsZSA9PSBpc1Zpc2libGUpCiAgICAgICAg
IHJldHVybjsKIAotICAgIG1fdmlzaWJsZSA9IHZpc2libGU7CisgICAgbV9pc1BhZ2VWaXNpYmxl
ID0gaXNWaXNpYmxlOwogICAgIGZsdXNoUmVuZGVyZXJzKCk7CiB9CiAKQEAgLTYyMSw2ICs2MjEs
MTEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldFZpc2li
bGVGb3JDYW52YXMoYm9vbCkKIHsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6OnNldFZpc2libGVJblZpZXdwb3J0KGJvb2wgaXNWaXNpYmxlKQoreworICAg
IG1faXNWaXNpYmxlSW5WaWV3UG9ydCA9IGlzVmlzaWJsZTsKK30KKwogTWVkaWFUaW1lIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZHVyYXRpb25NZWRpYVRpbWUoKSBjb25z
dAogewogICAgIHJldHVybiBNZWRpYVRpbWU6OnBvc2l0aXZlSW5maW5pdGVUaW1lKCk7CkBAIC04
NTUsNyArODYwLDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
OmNoZWNrU2VsZWN0ZWRWaWRlb1RyYWNrKCkKICAgICAgICAgaWYgKG1fZGlzcGxheU1vZGUgPT0g
Tm9uZSkKICAgICAgICAgICAgIG1fd2FpdGluZ0ZvckZpcnN0SW1hZ2UgPSB0cnVlOwogICAgIH0K
LSAgICBlbnN1cmVMYXllcnMoKTsKKworICAgIHVwZGF0ZUxheWVyc0FzTmVlZGVkKCk7CisKICAg
ICBpZiAobV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpIHsKICAgICAgICAgaWYgKCFtX2FjdGl2
ZVZpZGVvVHJhY2spCiAgICAgICAgICAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+Y2xl
YXJFbnF1ZXVlZFNhbXBsZXMoKTsKQEAgLTk5MSw3ICs5OTgsNyBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3Jh
cGhpY3NDbwogICAgIGNvbnRleHQuZHJhd05hdGl2ZUltYWdlKCppbWFnZSwgaW1hZ2VSZWN0LnNp
emUoKSwgdHJhbnNmb3JtZWREZXN0UmVjdCwgaW1hZ2VSZWN0KTsKIH0KIAotdm9pZCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmFjY2VsZXJhdGVkUmVuZGVyaW5nU3RhdGVD
aGFuZ2VkKCkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1cGRh
dGVMYXllcnNBc05lZWRlZCgpCiB7CiAgICAgaWYgKG1fcGxheWVyLT5yZW5kZXJpbmdDYW5CZUFj
Y2VsZXJhdGVkKCkpCiAgICAgICAgIGVuc3VyZUxheWVycygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWRlby5jcHAKaW5kZXggMjkyOGRkNGRjYWZlZDJhNGMwN2JhZDBkMTRhZTQz
MzkwZTU5Y2E5My4uMDM2NjM0MjYzMTVjM2E0ZTAxZTk2ZWU0NmMwNjU2YTQyNGQxYjc5OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwCkBAIC0yODIsNiArMjgyLDcg
QEAgdm9pZCBSZW5kZXJWaWRlbzo6dXBkYXRlUGxheWVyKCkKICAgICBJbnRSZWN0IHZpZGVvQm91
bmRzID0gdmlkZW9Cb3goKTsgCiAgICAgbWVkaWFQbGF5ZXItPnNldFNpemUoSW50U2l6ZSh2aWRl
b0JvdW5kcy53aWR0aCgpLCB2aWRlb0JvdW5kcy5oZWlnaHQoKSkpOwogICAgIG1lZGlhUGxheWVy
LT5zZXRWaXNpYmxlKCF2aWRlb0VsZW1lbnQoKS5lbGVtZW50SXNIaWRkZW4oKSk7CisgICAgbWVk
aWFQbGF5ZXItPnNldFZpc2libGVJblZpZXdwb3J0KHZpZGVvRWxlbWVudCgpLmlzVmlzaWJsZUlu
Vmlld3BvcnQoKSk7CiAgICAgbWVkaWFQbGF5ZXItPnNldFNob3VsZE1haW50YWluQXNwZWN0UmF0
aW8oc3R5bGUoKS5vYmplY3RGaXQoKSAhPSBPYmplY3RGaXQ6OkZpbGwpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggZDczYzgzZWNkNWNhMjA2MmJhODBiYmFiN2Nj
NzM3MmY4ZTM4YmMzZC4uZjY0ODA2YmEyODNlYzgyZTI3NjI4YzIwNzNkYjk2Mjg4NTVmY2U5MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNDQxOSw2ICs0NDE5LDEzIEBA
IGJvb2wgSW50ZXJuYWxzOjplbGVtZW50SXNCbG9ja2luZ0Rpc3BsYXlTbGVlcChIVE1MTWVkaWFF
bGVtZW50JiBlbGVtZW50KSBjb25zdAogewogICAgIHJldHVybiBlbGVtZW50LmlzRGlzYWJsaW5n
U2xlZXAoKTsKIH0KKworYm9vbCBJbnRlcm5hbHM6OmlzUGxheWVyVmlzaWJsZUluVmlld3BvcnQo
SFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkgY29uc3QKK3sKKyAgICBhdXRvIHBsYXllciA9IGVs
ZW1lbnQucGxheWVyKCk7CisgICAgcmV0dXJuIHBsYXllciAmJiBwbGF5ZXItPmlzVmlzaWJsZUlu
Vmlld3BvcnQoKTsKK30KKwogI2VuZGlmIC8vIEVOQUJMRShWSURFTykKIAogI2lmIEVOQUJMRShX
RUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCAwNWI0YmRkNTVlMTFm
MGUxOTRmZDI2ZTM5MzJmMzg1NjRmNjQxN2YzLi5kYjgzNzYwNjNmMWQzM2RmNWUzNzA1ZDRmMzJm
ZTA0MzA1ZjAxNDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTcxMiw2ICs3
MTIsNyBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcG9zdFJlbW90ZUNvbnRyb2xD
b21tYW5kKGNvbnN0IFN0cmluZyYsIGZsb2F0IGFyZ3VtZW50KTsKICAgICB2b2lkIGFjdGl2ZUF1
ZGlvUm91dGVEaWRDaGFuZ2UoYm9vbCBzaG91bGRQYXVzZSk7CiAgICAgYm9vbCBlbGVtZW50SXNC
bG9ja2luZ0Rpc3BsYXlTbGVlcChIVE1MTWVkaWFFbGVtZW50JikgY29uc3Q7CisgICAgYm9vbCBp
c1BsYXllclZpc2libGVJblZpZXdwb3J0KEhUTUxNZWRpYUVsZW1lbnQmKSBjb25zdDsKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbAppbmRleCBjZjAxZWFjZDI5ZmVmODE4ZjZmNjA1OGViMDBiNjU0OTkw
ZWMzODU5Li43ZTEwN2E3NjUyMzVkZGY1M2ZjMTY3NDYzYTlhNDdmY2Q0OTM0MmE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC03NzMsNiArNzczLDcgQEAgZW51bSBBdXRv
cGxheVBvbGljeSB7CiAgICAgW0NvbmRpdGlvbmFsPVZJREVPXSB1bmRlZmluZWQgc2ltdWxhdGVT
eXN0ZW1TbGVlcCgpOwogICAgIFtDb25kaXRpb25hbD1WSURFT10gdW5kZWZpbmVkIHNpbXVsYXRl
U3lzdGVtV2FrZSgpOwogICAgIFtDb25kaXRpb25hbD1WSURFT10gYm9vbGVhbiBlbGVtZW50SXNC
bG9ja2luZ0Rpc3BsYXlTbGVlcChIVE1MTWVkaWFFbGVtZW50IGVsZW1lbnQpOworICAgIFtDb25k
aXRpb25hbD1WSURFT10gYm9vbGVhbiBpc1BsYXllclZpc2libGVJblZpZXdwb3J0KEhUTUxNZWRp
YUVsZW1lbnQgZWxlbWVudCk7CiAKICAgICBNb2NrUGFnZU92ZXJsYXkgaW5zdGFsbE1vY2tQYWdl
T3ZlcmxheShQYWdlT3ZlcmxheVR5cGUgdHlwZSk7CiAgICAgRE9NU3RyaW5nIHBhZ2VPdmVybGF5
TGF5ZXJUcmVlQXNUZXh0KG9wdGlvbmFsIHVuc2lnbmVkIHNob3J0IGZsYWdzID0gMCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggZDczMDE0Mjk2MDMwNmMyMDZjYzczOTBjMDI2NmQ5NGE0NTNmMmU2Yy4uODg3NDBlZTdhMWFl
MTY5NDY0ZGNjOTNkZjA5Mzc3OWE2YmE1NjQ0YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIx
LTA4LTA1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMgc2hvdWxkIHNraXAgZW5xdWV1aW5nIGZy
YW1lcyB3aGVuIG5vdCB2aXNpYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjg4MTYKKyAgICAgICAgPHJkYXI6Ly84MTA3Nzk3Mj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJl
YW0vbWVkaWFQbGF5ZXItdmlzaWJpbGl0eS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvbWVkaWFzdHJlYW0vbWVkaWFQbGF5ZXItdmlzaWJpbGl0eS5odG1sOiBBZGRlZC4KKwog
MjAyMS0wNy0zMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBM
YXlvdXQgVGVzdCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9maXJl
LWVycm9yLWV2ZW50LWV4Y2VwdGlvbi5odG1sIGlzIGEgRmxha3kgRmFpbHVyZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYVBsYXllci12aXNpYmlsaXR5LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFQbGF5ZXItdmlz
aWJpbGl0eS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDI2NzFkOTQyY2EwODk4Y2Q2NjdkN2U1
ZjAzNTcwNjQ3NjQ2YzI1ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vbWVkaWFQbGF5ZXItdmlzaWJpbGl0eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2
IEBACisKKworUEFTUyBDaGVjayBkZWZhdWx0IG1lZGlhIHN0cmVhbSBwbGF5ZXIgdmlzaWJpbGl0
eQorUEFTUyBDaGVjayBtZWRpYSBzdHJlYW0gcGxheWVyIHZpc2liaWxpdHkgd2l0aCBDU1MKK1BB
U1MgQ2hlY2sgbWVkaWEgc3RyZWFtIHBsYXllciB2aXNpYmlsaXR5IG9mIHVuYXR0YWNoZWQgbWVk
aWEgZWxlbWVudAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21l
ZGlhUGxheWVyLXZpc2liaWxpdHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
bWVkaWFQbGF5ZXItdmlzaWJpbGl0eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0MTc3MjlkMGY3NmEzOGY5
MTRkMzhlYjgyMjM5ZTMwZjg5Y2U1OWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL21lZGlhUGxheWVyLXZpc2liaWxpdHkuaHRtbApAQCAtMCwwICsxLDU5
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxib2R5PgorPHZpZGVvIGlkPSJ2aWRlbzEiIGF1dG9wbGF5IHBsYXlzSW5saW5lPjwvdmlk
ZW8+Cis8dmlkZW8gaWQ9InZpZGVvMiIgYXV0b3BsYXkgcGxheXNJbmxpbmUgc3R5bGU9InZpc2li
aWxpdHk6aGlkZGVuIj48L3ZpZGVvPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK3Byb21pc2VfdGVzdChhc3lu
YygpID0+IHsKKyAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgcmV0dXJuIFByb21p
c2UucmVqZWN0KCJUZXN0IHJlcXVpcmVzIGludGVybmFscyBBUEkiKTsKKworICAgIGNvbnN0IHN0
cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt2aWRlbyA6
IHRydWV9KTsKKyAgICB2aWRlbzEuc3JjT2JqZWN0ID0gc3RyZWFtOworICAgIGF3YWl0IHZpZGVv
MS5wbGF5KCk7CisKKyAgICBhc3NlcnRfdHJ1ZShpbnRlcm5hbHMuaXNQbGF5ZXJWaXNpYmxlSW5W
aWV3cG9ydCh2aWRlbzEpLCAidmlkZW8xIik7Cit9LCAiQ2hlY2sgZGVmYXVsdCBtZWRpYSBzdHJl
YW0gcGxheWVyIHZpc2liaWxpdHkiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jKCkgPT4geworICAg
aWYgKCF3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoIlRl
c3QgcmVxdWlyZXMgaW50ZXJuYWxzIEFQSSIpOworCisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQg
bmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvIDogdHJ1ZX0pOworICAg
IHZpZGVvMi5zcmNPYmplY3QgPSBzdHJlYW07CisgICAgYXdhaXQgdmlkZW8yLnBsYXkoKTsKKwor
ICAgIGFzc2VydF9mYWxzZShpbnRlcm5hbHMuaXNQbGF5ZXJWaXNpYmxlSW5WaWV3cG9ydCh2aWRl
bzIpLCAidmlkZW8yIik7CisKKyAgICB2aWRlbzIuc3R5bGUudmlzaWJpbGl0eSA9ICJ2aXNpYmxl
IjsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwg
MCkpOworICAgIGFzc2VydF90cnVlKGludGVybmFscy5pc1BsYXllclZpc2libGVJblZpZXdwb3J0
KHZpZGVvMiksICJ2aWRlbzIgMiIpOworCisgICAgdmlkZW8yLnN0eWxlLnZpc2liaWxpdHkgPSAi
aGlkZGVuIjsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVz
b2x2ZSwgMCkpOworICAgIGFzc2VydF9mYWxzZShpbnRlcm5hbHMuaXNQbGF5ZXJWaXNpYmxlSW5W
aWV3cG9ydCh2aWRlbzIpLCAidmlkZW8yIDMiKTsKK30sICJDaGVjayBtZWRpYSBzdHJlYW0gcGxh
eWVyIHZpc2liaWxpdHkgd2l0aCBDU1MiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jKCkgPT4gewor
ICAgIGlmICghd2luZG93LmludGVybmFscykKKyAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0
KCJUZXN0IHJlcXVpcmVzIGludGVybmFscyBBUEkiKTsKKworICAgIGNvbnN0IHZpZGVvMyA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInZpZGVvIik7CisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQg
bmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvIDogdHJ1ZX0pOworICAg
IHZpZGVvMy5zcmNPYmplY3QgPSBzdHJlYW07CisgICAgdmlkZW8zLnBsYXlzSW5saW5lID0gdHJ1
ZTsKKyAgICBhd2FpdCB2aWRlbzMucGxheSgpOworCisgICAgYXNzZXJ0X2ZhbHNlKGludGVybmFs
cy5pc1BsYXllclZpc2libGVJblZpZXdwb3J0KHZpZGVvMyksICJ2aWRlbzMiKTsKKworICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodmlkZW8zKTsKKyAgICBhd2FpdCB2aWRlbzMucGxheSgp
OworICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAw
KSk7CisgICAgYXNzZXJ0X2ZhbHNlKGludGVybmFscy5pc1BsYXllclZpc2libGVJblZpZXdwb3J0
KHZpZGVvMyksICJ2aWRlbzMgMiIpOworfSwgIkNoZWNrIG1lZGlhIHN0cmVhbSBwbGF5ZXIgdmlz
aWJpbGl0eSBvZiB1bmF0dGFjaGVkIG1lZGlhIGVsZW1lbnQiKTsKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435006</attachid>
            <date>2021-08-05 10:53:07 -0700</date>
            <delta_ts>2021-08-06 02:16:00 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-228816-20210805195305.patch</filename>
            <type>text/plain</type>
            <size>17159</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmEzZmM2N2NlYTNhMGM4
Y2JlZTc4Zjg1ZDkzNWUxMjU3NjkwYWMwZC4uOGNhZjFiNzZlZGQ2MTAzMDQwMjA2YjAyOGYyZDFj
NWM0NGU3YzYwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIxLTA4LTA1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMgc2hvdWxkIHNraXAgZW5xdWV1aW5nIGZyYW1lcyB3aGVuIG5v
dCB2aXNpYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjg4MTYKKyAgICAgICAgPHJkYXI6Ly84MTA3Nzk3Mj4KKworICAgICAgICBSZXZpZXdlZCBi
eSBFcmljIENhcmxzb24uCisKKyAgICAgICAgRG8gbm90IGNyZWF0ZSBsYXllcnMgd2hlbiBub3Qg
bmVlZGVkLgorICAgICAgICBUaGlzIHByZXZlbnRzIGVucXVldWluZyBmcmFtZXMgaW4gYSBBVlNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllciB0aGF0IHdpbGwgb25seSBidWZmZXIgdGhlbSwgdGh1cyBi
cmVha2luZyBjYW1lcmEgY2FwdHVyZS92aWRlbyBkZWNvZGluZy4KKyAgICAgICAgV2UgZG8gdGhp
cyBieSBub3QgY2FsbGluZyBlbnN1cmVMYXllcnMgd2hlbiBnZXR0aW5nIGEgbmV3IHRyYWNrLiBJ
bnN0ZWFkIHdlIHJlYWN0IHVwb24gcGxheWVyIHJlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQgdmFs
dWUuCisKKyAgICAgICAgSXQgaXMgYWxzbyB1bm5lY2Vzc2FyeSBhbmQgdGFrZXMgQ1BVIGN5Y2xl
cyB0byBlbnF1ZXVlIGZyYW1lcyB3aGVuIHRoZSB2aWRlbyBlbGVtZW50IGlzIG5vdCB2aXNpYmxl
LgorICAgICAgICBIVE1MTWVkaWFFbGVtZW50IGFuZCBSZW5kZXJWaWRlbyB0aHVzIHBhc3MgdG8g
TWVkaWFQbGF5ZXIgYSBuZXcgZmxhZyB0ZWxsaW5nIHdoZXRoZXIgdGhlIHZpZGVvIGVsZW1lbnQg
aXMgdmlzaWJsZSBpbiB0aGUgdmlldyBwb3J0LgorICAgICAgICBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakMgd2lsbCB0aGVuIHNraXAgZW5xdWV1ZWluZyBmcmFtZXMgaWYgbm90
IG5lZWRlZC4KKworICAgICAgICBBZGQgZ2V0dGVyIGFuZCBpbnRlcm5hbHMgQVBJIHRvIGNvdmVy
IHRoZXNlIGNoYW5nZXMuCisKKyAgICAgICAgVGVzdDogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYVBs
YXllci12aXNpYmlsaXR5Lmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojppc1Zpc2libGVJblZpZXdw
b3J0Q2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmxvYWRXaXRoTmV4dE1lZGlhRW5naW5l
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpzZXRWaXNpYmxlSW5WaWV3cG9ydCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTo6c2V0VmlzaWJsZUluVmlld3BvcnQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
ZW5xdWV1ZVZpZGVvU2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0VmlzaWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldFZpc2libGVJblZpZXdwb3J0KToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
Y2hlY2tTZWxlY3RlZFZpZGVvVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZGVvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclZpZGVvOjp1cGRhdGVQbGF5ZXIpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aXNQbGF5ZXJWaXNpYmxlSW5WaWV3cG9y
dCBjb25zdCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5pZGw6CisKIDIwMjEtMDctMzAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBDbGlja2luZyBhbiBIVE1MTGlua0VsZW1lbnQgc2hvdWxkIG5v
dCB0cmlnZ2VyIGEgbmF2aWdhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKaW5kZXggMGE0M2ZlY2QxZWVjZWI2MmRlOTE4ODY4NjZkOTUwOGM3NWU2ZTdkYS4uMmYw
NzEwYTZiMzdiYjNjNzY4NTE5YWZmOWE0YjY5NDFmODhiNjNhZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC02NzQ0LDYgKzY3NDQsNyBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OmNyZWF0ZU1lZGlhUGxheWVyKCkgV1RGX0lHTk9SRVNfVEhSRUFEX1NBRkVU
WV9BTkFMWVNJUwogICAgIG1fcGxheWVyLT5zZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKG1f
b3ZlcnJpZGVEeW5hbWljUmFuZ2VNb2RlLnZhbHVlX29yKHByZWZlcnJlZER5bmFtaWNSYW5nZU1v
ZGUoZG9jdW1lbnQoKS52aWV3KCkpKSk7CiAgICAgbV9wbGF5ZXItPnNldE11dGVkKGVmZmVjdGl2
ZU11dGVkKCkpOwogICAgIG1fcGxheWVyLT5zZXRWaXNpYmxlKCFtX2VsZW1lbnRJc0hpZGRlbik7
CisgICAgbV9wbGF5ZXItPnNldFZpc2libGVJblZpZXdwb3J0KGlzVmlzaWJsZUluVmlld3BvcnQo
KSk7CiAgICAgc2NoZWR1bGVQbGF5YmFja0NvbnRyb2xzTWFuYWdlclVwZGF0ZSgpOwogCiAjaWYg
RU5BQkxFKFdFQl9BVURJTykKQEAgLTgwNzEsNiArODA3Miw4IEBAIGJvb2wgSFRNTE1lZGlhRWxl
bWVudDo6aXNWaWRlb1Rvb1NtYWxsRm9ySW5saW5lUGxheWJhY2soKQogCiB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OmlzVmlzaWJsZUluVmlld3BvcnRDaGFuZ2VkKCkKIHsKKyAgICBpZiAobV9wbGF5
ZXIpCisgICAgICAgIG1fcGxheWVyLT5zZXRWaXNpYmxlSW5WaWV3cG9ydChpc1Zpc2libGVJblZp
ZXdwb3J0KCkpOwogICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1Nv
dXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpc10gewogICAgICAgICBpZiAoaXNDb250ZXh0U3RvcHBl
ZCgpKQogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDFkYjcwYzViYTU1YTc0NWNiNGY2YWFjM2Yz
N2Q0ZDk1MjFjNmI4NDcuLjFkYjdmOWZhOWQ4NDYzNzRhMjQ1MmM1MTc4MTFlZjljOWVjMjJlYmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5j
cHAKQEAgLTU3NSw2ICs1NzUsOCBAQCB2b2lkIE1lZGlhUGxheWVyOjpsb2FkV2l0aE5leHRNZWRp
YUVuZ2luZShjb25zdCBNZWRpYVBsYXllckZhY3RvcnkqIGN1cnJlbnQpCiAgICAgICAgICAgICBj
bGllbnQoKS5tZWRpYVBsYXllckVuZ2luZVVwZGF0ZWQoKTsKICAgICAgICAgICAgIGlmIChtX3Zp
c2libGUpCiAgICAgICAgICAgICAgICAgbV9wcml2YXRlLT5zZXRWaXNpYmxlKG1fdmlzaWJsZSk7
CisgICAgICAgICAgICBpZiAobV92aXNpYmxlSW5WaWV3cG9ydCkKKyAgICAgICAgICAgICAgICBt
X3ByaXZhdGUtPnNldFZpc2libGVJblZpZXdwb3J0KG1fdmlzaWJsZUluVmlld3BvcnQpOwogICAg
ICAgICAgICAgbV9wcml2YXRlLT5wcmVwYXJlRm9yUGxheWJhY2sobV9wcml2YXRlQnJvd3Npbmcs
IG1fcHJlbG9hZCwgbV9wcmVzZXJ2ZXNQaXRjaCwgbV9zaG91bGRQcmVwYXJlVG9SZW5kZXIpOwog
ICAgICAgICB9CiAgICAgfQpAQCAtMTAxMSw2ICsxMDEzLDEyIEBAIHZvaWQgTWVkaWFQbGF5ZXI6
OnNldFZpc2libGVGb3JDYW52YXMoYm9vbCB2aXNpYmxlKQogICAgIG1fcHJpdmF0ZS0+c2V0Vmlz
aWJsZUZvckNhbnZhcyh2aXNpYmxlKTsKIH0KIAordm9pZCBNZWRpYVBsYXllcjo6c2V0VmlzaWJs
ZUluVmlld3BvcnQoYm9vbCB2aXNpYmxlKQoreworICAgIG1fdmlzaWJsZUluVmlld3BvcnQgPSB2
aXNpYmxlOworICAgIG1fcHJpdmF0ZS0+c2V0VmlzaWJsZUluVmlld3BvcnQodmlzaWJsZSk7Cit9
CisKIE1lZGlhUGxheWVyOjpQcmVsb2FkIE1lZGlhUGxheWVyOjpwcmVsb2FkKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9wcmVsb2FkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmgKaW5kZXggNDA5ZDgxOGI0ZjcyODIxNDExZTE4MDA0YTliNzM3ZDY3
NDI1ZTE5OS4uNjIzYTE4ZTE3NGM3OWU3ZTZiYTY5ZjgwMTgwYWZmZjM3MDdhOTRjZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0zNjAs
NiArMzYwLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VmlzaWJsZShib29sKTsKICAgICB2b2lk
IHNldFZpc2libGVGb3JDYW52YXMoYm9vbCk7CiAKKyAgICB2b2lkIHNldFZpc2libGVJblZpZXdw
b3J0KGJvb2wpOworICAgIGJvb2wgaXNWaXNpYmxlSW5WaWV3cG9ydCgpIGNvbnN0IHsgcmV0dXJu
IG1fdmlzaWJsZUluVmlld3BvcnQ7IH0KKwogICAgIHZvaWQgcHJlcGFyZVRvUGxheSgpOwogICAg
IHZvaWQgcGxheSgpOwogICAgIHZvaWQgcGF1c2UoKTsKQEAgLTY5OSw2ICs3MDIsNyBAQCBwcml2
YXRlOgogICAgIFByZWxvYWQgbV9wcmVsb2FkIHsgUHJlbG9hZDo6QXV0byB9OwogICAgIGRvdWJs
ZSBtX3ZvbHVtZSB7IDEgfTsKICAgICBib29sIG1fdmlzaWJsZSB7IGZhbHNlIH07CisgICAgYm9v
bCBtX3Zpc2libGVJblZpZXdwb3J0IHsgZmFsc2UgfTsKICAgICBib29sIG1fbXV0ZWQgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9wcmVzZXJ2ZXNQaXRjaCB7IHRydWUgfTsKICAgICBib29sIG1fcHJp
dmF0ZUJyb3dzaW5nIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggZmZmY2YwNWFlYTUxNjQ1MmFk
N2EwNzc1Yzg1OWUwMGIyYTk3YjZhYi4uYmU5ZTNkNzZiYjMyMmM5Y2JhMzY3MDU0M2VkZGZjOWYy
NGJjMWEyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTk4LDYgKzk4LDcgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCB2b2lkIHNldFZpc2libGUoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNp
YmxlRm9yQ2FudmFzKGJvb2wgdmlzaWJsZSkgeyBzZXRWaXNpYmxlKHZpc2libGUpOyB9CisgICAg
dmlydHVhbCB2b2lkIHNldFZpc2libGVJblZpZXdwb3J0KGJvb2wpIHsgfQogCiAgICAgdmlydHVh
bCBmbG9hdCBkdXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIGRvdWJs
ZSBkdXJhdGlvbkRvdWJsZSgpIGNvbnN0IHsgcmV0dXJuIGR1cmF0aW9uKCk7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDLmgKaW5kZXggMjJhNmFlYThiMTY0ZmEwZjE2NmVlYTU4NmRkMTgyNmI4YTJl
NDUwNS4uY2NmZDMwYjUzOWY0NjI2YWI2YjdlODYyYmM2YzlhZDg5NzFiZDRiOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLmgKQEAgLTEyMiw2ICsxMjIsNyBAQCBwcml2YXRlOgogCiAgICAgdm9p
ZCBzZXRWaXNpYmxlKGJvb2wpIGZpbmFsOwogICAgIHZvaWQgc2V0VmlzaWJsZUZvckNhbnZhcyhi
b29sKSBmaW5hbDsKKyAgICB2b2lkIHNldFZpc2libGVJblZpZXdwb3J0KGJvb2wpIGZpbmFsOwog
CiAgICAgTWVkaWFUaW1lIGR1cmF0aW9uTWVkaWFUaW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
TWVkaWFUaW1lIGN1cnJlbnRNZWRpYVRpbWUoKSBjb25zdCBvdmVycmlkZTsKQEAgLTE0Myw3ICsx
NDQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgYm9vbCBtZXRh
RGF0YUF2YWlsYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdHJlYW1Qcml2YXRlICYmIG1f
cmVhZHlTdGF0ZSA+PSBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU1ldGFkYXRhOyB9CiAK
LSAgICB2b2lkIGFjY2VsZXJhdGVkUmVuZGVyaW5nU3RhdGVDaGFuZ2VkKCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBhY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpIGZpbmFsIHsgdXBkYXRl
TGF5ZXJzQXNOZWVkZWQoKTsgfQogICAgIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmlu
ZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIGJvb2wgaGFzU2luZ2xl
U2VjdXJpdHlPcmlnaW4oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CkBAIC0xNzAs
NiArMTcxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxlRGVmZXJyZWRUYXNrKEZ1bmN0
aW9uPHZvaWQgKCk+JiYpOwogCiAgICAgdm9pZCBsYXllcnNBcmVJbml0aWFsaXplZChJbnRTaXpl
LCBib29sKTsKKyAgICB2b2lkIHVwZGF0ZUxheWVyc0FzTmVlZGVkKCk7CiAKICAgICBlbnVtIERp
c3BsYXlNb2RlIHsKICAgICAgICAgTm9uZSwKQEAgLTI3Miw3ICsyNzQsOCBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9tdXRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2VuZGVkIHsgZmFsc2UgfTsK
ICAgICBib29sIG1faGFzRXZlckVucXVldWVkVmlkZW9GcmFtZSB7IGZhbHNlIH07Ci0gICAgYm9v
bCBtX3Zpc2libGUgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc1BhZ2VWaXNpYmxlIHsgZmFsc2Ug
fTsKKyAgICBib29sIG1faXNWaXNpYmxlSW5WaWV3UG9ydCB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2hhdmVTZWVuTWV0YWRhdGEgeyBmYWxzZSB9OwogICAgIGJvb2wgbV93YWl0aW5nRm9yRmlyc3RJ
bWFnZSB7IGZhbHNlIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IDU1YjUw
MGM1N2U5M2ViYmE0OTZhZTc0MTZmZDVkZjc4ZDdiOTQ1OGUuLjk5NDgwNjA5NjQwZDcwOWIyODk4
MDQ2ZjQ5YjFmOGRlNDgxM2UyMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTI1
MSw3ICsyNTEsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbQogCiB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZW5xdWV1ZVZpZGVvU2FtcGxlKE1lZGlhU2FtcGxl
JiBzYW1wbGUpCiB7Ci0gICAgaWYgKCFtX3Zpc2libGUpCisgICAgaWYgKCFtX2lzUGFnZVZpc2li
bGUgfHwgIW1faXNWaXNpYmxlSW5WaWV3UG9ydCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYg
KCFtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckxvY2sudHJ5TG9jaygpKQpAQCAtNjA4LDEyICs2
MDgsMTIgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Omhhc0F1
ZGlvKCkgY29uc3QKICAgICByZXR1cm4gIW1fYXVkaW9UcmFja01hcC5pc0VtcHR5KCk7CiB9CiAK
LXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRWaXNpYmxlKGJv
b2wgdmlzaWJsZSkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpz
ZXRWaXNpYmxlKGJvb2wgaXNWaXNpYmxlKQogewotICAgIGlmIChtX3Zpc2libGUgPT0gdmlzaWJs
ZSkKKyAgICBpZiAobV9pc1BhZ2VWaXNpYmxlID09IGlzVmlzaWJsZSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgbV92aXNpYmxlID0gdmlzaWJsZTsKKyAgICBtX2lzUGFnZVZpc2libGUgPSBpc1Zp
c2libGU7CiAgICAgZmx1c2hSZW5kZXJlcnMoKTsKIH0KIApAQCAtNjIxLDYgKzYyMSwxMSBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0VmlzaWJsZUZvckNh
bnZhcyhib29sKQogewogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6c2V0VmlzaWJsZUluVmlld3BvcnQoYm9vbCBpc1Zpc2libGUpCit7CisgICAgbV9pc1Zp
c2libGVJblZpZXdQb3J0ID0gaXNWaXNpYmxlOworfQorCiBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpkdXJhdGlvbk1lZGlhVGltZSgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIE1lZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKTsKQEAgLTg1NSw3ICs4
NjAsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y2hlY2tT
ZWxlY3RlZFZpZGVvVHJhY2soKQogICAgICAgICBpZiAobV9kaXNwbGF5TW9kZSA9PSBOb25lKQog
ICAgICAgICAgICAgbV93YWl0aW5nRm9yRmlyc3RJbWFnZSA9IHRydWU7CiAgICAgfQotICAgIGVu
c3VyZUxheWVycygpOworCisgICAgdXBkYXRlTGF5ZXJzQXNOZWVkZWQoKTsKKwogICAgIGlmICht
X3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcikgewogICAgICAgICBpZiAoIW1fYWN0aXZlVmlkZW9U
cmFjaykKICAgICAgICAgICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5jbGVhckVucXVl
dWVkU2FtcGxlcygpOwpAQCAtOTkxLDcgKzk5OCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0Nv
CiAgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoKmltYWdlLCBpbWFnZVJlY3Quc2l6ZSgpLCB0
cmFuc2Zvcm1lZERlc3RSZWN0LCBpbWFnZVJlY3QpOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6YWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQo
KQordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnVwZGF0ZUxheWVy
c0FzTmVlZGVkKCkKIHsKICAgICBpZiAobV9wbGF5ZXItPnJlbmRlcmluZ0NhbkJlQWNjZWxlcmF0
ZWQoKSkKICAgICAgICAgZW5zdXJlTGF5ZXJzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclZpZGVvLmNwcAppbmRleCAyOTI4ZGQ0ZGNhZmVkMmE0YzA3YmFkMGQxNGFlNDMzOTBlNTlj
YTkzLi4wMzY2MzQyNjMxNWMzYTRlMDFlOTZlZTQ2YzA2NTZhNDI0ZDFiNzk4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5jcHAKQEAgLTI4Miw2ICsyODIsNyBAQCB2b2lk
IFJlbmRlclZpZGVvOjp1cGRhdGVQbGF5ZXIoKQogICAgIEludFJlY3QgdmlkZW9Cb3VuZHMgPSB2
aWRlb0JveCgpOyAKICAgICBtZWRpYVBsYXllci0+c2V0U2l6ZShJbnRTaXplKHZpZGVvQm91bmRz
LndpZHRoKCksIHZpZGVvQm91bmRzLmhlaWdodCgpKSk7CiAgICAgbWVkaWFQbGF5ZXItPnNldFZp
c2libGUoIXZpZGVvRWxlbWVudCgpLmVsZW1lbnRJc0hpZGRlbigpKTsKKyAgICBtZWRpYVBsYXll
ci0+c2V0VmlzaWJsZUluVmlld3BvcnQodmlkZW9FbGVtZW50KCkuaXNWaXNpYmxlSW5WaWV3cG9y
dCgpKTsKICAgICBtZWRpYVBsYXllci0+c2V0U2hvdWxkTWFpbnRhaW5Bc3BlY3RSYXRpbyhzdHls
ZSgpLm9iamVjdEZpdCgpICE9IE9iamVjdEZpdDo6RmlsbCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcAppbmRleCBkNzNjODNlY2Q1Y2EyMDYyYmE4MGJiYWI3Y2M3MzcyZjhl
MzhiYzNkLi5mNjQ4MDZiYTI4M2VjODJlMjc2MjhjMjA3M2RiOTYyODg1NWZjZTkzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC00NDE5LDYgKzQ0MTksMTMgQEAgYm9vbCBJ
bnRlcm5hbHM6OmVsZW1lbnRJc0Jsb2NraW5nRGlzcGxheVNsZWVwKEhUTUxNZWRpYUVsZW1lbnQm
IGVsZW1lbnQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGVsZW1lbnQuaXNEaXNhYmxpbmdTbGVlcCgp
OwogfQorCitib29sIEludGVybmFsczo6aXNQbGF5ZXJWaXNpYmxlSW5WaWV3cG9ydChIVE1MTWVk
aWFFbGVtZW50JiBlbGVtZW50KSBjb25zdAoreworICAgIGF1dG8gcGxheWVyID0gZWxlbWVudC5w
bGF5ZXIoKTsKKyAgICByZXR1cm4gcGxheWVyICYmIHBsYXllci0+aXNWaXNpYmxlSW5WaWV3cG9y
dCgpOworfQorCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPKQogCiAjaWYgRU5BQkxFKFdFQl9BVURJ
TykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDA1YjRiZGQ1NWUxMWYwZTE5NGZk
MjZlMzkzMmYzODU2NGY2NDE3ZjMuLmRiODM3NjA2M2YxZDMzZGY1ZTM3MDVkNGYzMmZlMDQzMDVm
MDE0OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtNzEyLDYgKzcxMiw3IEBA
IHB1YmxpYzoKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBwb3N0UmVtb3RlQ29udHJvbENvbW1hbmQo
Y29uc3QgU3RyaW5nJiwgZmxvYXQgYXJndW1lbnQpOwogICAgIHZvaWQgYWN0aXZlQXVkaW9Sb3V0
ZURpZENoYW5nZShib29sIHNob3VsZFBhdXNlKTsKICAgICBib29sIGVsZW1lbnRJc0Jsb2NraW5n
RGlzcGxheVNsZWVwKEhUTUxNZWRpYUVsZW1lbnQmKSBjb25zdDsKKyAgICBib29sIGlzUGxheWVy
VmlzaWJsZUluVmlld3BvcnQoSFRNTE1lZGlhRWxlbWVudCYpIGNvbnN0OwogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsCmluZGV4IGNmMDFlYWNkMjlmZWY4MThmNmY2MDU4ZWIwMGI2NTQ5OTBlYzM4NTku
LjdlMTA3YTc2NTIzNWRkZjUzZmMxNjc0NjNhOWE0N2ZjZDQ5MzQyYTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTc3Myw2ICs3NzMsNyBAQCBlbnVtIEF1dG9wbGF5UG9s
aWN5IHsKICAgICBbQ29uZGl0aW9uYWw9VklERU9dIHVuZGVmaW5lZCBzaW11bGF0ZVN5c3RlbVNs
ZWVwKCk7CiAgICAgW0NvbmRpdGlvbmFsPVZJREVPXSB1bmRlZmluZWQgc2ltdWxhdGVTeXN0ZW1X
YWtlKCk7CiAgICAgW0NvbmRpdGlvbmFsPVZJREVPXSBib29sZWFuIGVsZW1lbnRJc0Jsb2NraW5n
RGlzcGxheVNsZWVwKEhUTUxNZWRpYUVsZW1lbnQgZWxlbWVudCk7CisgICAgW0NvbmRpdGlvbmFs
PVZJREVPXSBib29sZWFuIGlzUGxheWVyVmlzaWJsZUluVmlld3BvcnQoSFRNTE1lZGlhRWxlbWVu
dCBlbGVtZW50KTsKIAogICAgIE1vY2tQYWdlT3ZlcmxheSBpbnN0YWxsTW9ja1BhZ2VPdmVybGF5
KFBhZ2VPdmVybGF5VHlwZSB0eXBlKTsKICAgICBET01TdHJpbmcgcGFnZU92ZXJsYXlMYXllclRy
ZWVBc1RleHQob3B0aW9uYWwgdW5zaWduZWQgc2hvcnQgZmxhZ3MgPSAwKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkNzMw
MTQyOTYwMzA2YzIwNmNjNzM5MGMwMjY2ZDk0YTQ1M2YyZTZjLi4zYTA2NGRjMmI4NzI1ZTU3MzJm
ZTJjOTczZmNmMWY1NWRiNGM1OTFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDgtMDUg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyBzaG91bGQgc2tpcCBlbnF1ZXVpbmcgZnJhbWVzIHdo
ZW4gbm90IHZpc2libGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyODgxNgorICAgICAgICA8cmRhcjovLzgxMDc3OTcyPgorCisgICAgICAgIFJldmll
d2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vbWVkaWFQ
bGF5ZXItdmlzaWJpbGl0eS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVk
aWFzdHJlYW0vbWVkaWFQbGF5ZXItdmlzaWJpbGl0eS5odG1sOiBBZGRlZC4KKwogMjAyMS0wNy0z
MCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBMYXlvdXQgVGVz
dCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9maXJlLWVycm9yLWV2
ZW50LWV4Y2VwdGlvbi5odG1sIGlzIGEgRmxha3kgRmFpbHVyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYVBsYXllci12aXNpYmlsaXR5LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFQbGF5ZXItdmlzaWJpbGl0eS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDI2NzFkOTQyY2EwODk4Y2Q2NjdkN2U1ZjAzNTcwNjQ3
NjQ2YzI1ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
bWVkaWFQbGF5ZXItdmlzaWJpbGl0eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKKwor
UEFTUyBDaGVjayBkZWZhdWx0IG1lZGlhIHN0cmVhbSBwbGF5ZXIgdmlzaWJpbGl0eQorUEFTUyBD
aGVjayBtZWRpYSBzdHJlYW0gcGxheWVyIHZpc2liaWxpdHkgd2l0aCBDU1MKK1BBU1MgQ2hlY2sg
bWVkaWEgc3RyZWFtIHBsYXllciB2aXNpYmlsaXR5IG9mIHVuYXR0YWNoZWQgbWVkaWEgZWxlbWVu
dAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhUGxheWVy
LXZpc2liaWxpdHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFQbGF5
ZXItdmlzaWJpbGl0eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0MTc3MjlkMGY3NmEzOGY5MTRkMzhlYjgy
MjM5ZTMwZjg5Y2U1OWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL21lZGlhUGxheWVyLXZpc2liaWxpdHkuaHRtbApAQCAtMCwwICsxLDU5IEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxib2R5
PgorPHZpZGVvIGlkPSJ2aWRlbzEiIGF1dG9wbGF5IHBsYXlzSW5saW5lPjwvdmlkZW8+Cis8dmlk
ZW8gaWQ9InZpZGVvMiIgYXV0b3BsYXkgcGxheXNJbmxpbmUgc3R5bGU9InZpc2liaWxpdHk6aGlk
ZGVuIj48L3ZpZGVvPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK3Byb21pc2VfdGVzdChhc3luYygpID0+IHsK
KyAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0
KCJUZXN0IHJlcXVpcmVzIGludGVybmFscyBBUEkiKTsKKworICAgIGNvbnN0IHN0cmVhbSA9IGF3
YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt2aWRlbyA6IHRydWV9KTsK
KyAgICB2aWRlbzEuc3JjT2JqZWN0ID0gc3RyZWFtOworICAgIGF3YWl0IHZpZGVvMS5wbGF5KCk7
CisKKyAgICBhc3NlcnRfdHJ1ZShpbnRlcm5hbHMuaXNQbGF5ZXJWaXNpYmxlSW5WaWV3cG9ydCh2
aWRlbzEpLCAidmlkZW8xIik7Cit9LCAiQ2hlY2sgZGVmYXVsdCBtZWRpYSBzdHJlYW0gcGxheWVy
IHZpc2liaWxpdHkiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jKCkgPT4geworICAgaWYgKCF3aW5k
b3cuaW50ZXJuYWxzKQorICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoIlRlc3QgcmVxdWly
ZXMgaW50ZXJuYWxzIEFQSSIpOworCisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9y
Lm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvIDogdHJ1ZX0pOworICAgIHZpZGVvMi5z
cmNPYmplY3QgPSBzdHJlYW07CisgICAgYXdhaXQgdmlkZW8yLnBsYXkoKTsKKworICAgIGFzc2Vy
dF9mYWxzZShpbnRlcm5hbHMuaXNQbGF5ZXJWaXNpYmxlSW5WaWV3cG9ydCh2aWRlbzIpLCAidmlk
ZW8yIik7CisKKyAgICB2aWRlbzIuc3R5bGUudmlzaWJpbGl0eSA9ICJ2aXNpYmxlIjsKKyAgICBh
d2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMCkpOworICAg
IGFzc2VydF90cnVlKGludGVybmFscy5pc1BsYXllclZpc2libGVJblZpZXdwb3J0KHZpZGVvMiks
ICJ2aWRlbzIgMiIpOworCisgICAgdmlkZW8yLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsK
KyAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMCkp
OworICAgIGFzc2VydF9mYWxzZShpbnRlcm5hbHMuaXNQbGF5ZXJWaXNpYmxlSW5WaWV3cG9ydCh2
aWRlbzIpLCAidmlkZW8yIDMiKTsKK30sICJDaGVjayBtZWRpYSBzdHJlYW0gcGxheWVyIHZpc2li
aWxpdHkgd2l0aCBDU1MiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jKCkgPT4geworICAgIGlmICgh
d2luZG93LmludGVybmFscykKKyAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCJUZXN0IHJl
cXVpcmVzIGludGVybmFscyBBUEkiKTsKKworICAgIGNvbnN0IHZpZGVvMyA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoInZpZGVvIik7CisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9y
Lm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvIDogdHJ1ZX0pOworICAgIHZpZGVvMy5z
cmNPYmplY3QgPSBzdHJlYW07CisgICAgdmlkZW8zLnBsYXlzSW5saW5lID0gdHJ1ZTsKKyAgICBh
d2FpdCB2aWRlbzMucGxheSgpOworCisgICAgYXNzZXJ0X2ZhbHNlKGludGVybmFscy5pc1BsYXll
clZpc2libGVJblZpZXdwb3J0KHZpZGVvMyksICJ2aWRlbzMiKTsKKworICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQodmlkZW8zKTsKKyAgICBhd2FpdCB2aWRlbzMucGxheSgpOworICAgIGF3
YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAwKSk7CisgICAg
YXNzZXJ0X2ZhbHNlKGludGVybmFscy5pc1BsYXllclZpc2libGVJblZpZXdwb3J0KHZpZGVvMyks
ICJ2aWRlbzMgMiIpOworfSwgIkNoZWNrIG1lZGlhIHN0cmVhbSBwbGF5ZXIgdmlzaWJpbGl0eSBv
ZiB1bmF0dGFjaGVkIG1lZGlhIGVsZW1lbnQiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>