<?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>201800</bug_id>
          
          <creation_ts>2019-09-14 14:39:18 -0700</creation_ts>
          <short_desc>[FTW] Correct lifespan of other SharedBitmaps</short_desc>
          <delta_ts>2019-09-16 14:40:16 -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>WebKit2</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="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>fujii</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1570898</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-09-14 14:39:18 -0700</bug_when>
    <thetext>The pop-up menu code creates its own SharedBitmap in the WebContent process, which needs to release its handle before destruction, otherwise the UIProcess will be unable to access the GPU texture (since it will have been cleaned up).

This patch also audits other uses of SharedBitmap to make sure a similar problem doesn&apos;t exist elsewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570999</commentid>
    <comment_count>1</comment_count>
      <attachid>378835</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-09-15 20:15:46 -0700</bug_when>
    <thetext>Created attachment 378835
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571274</commentid>
    <comment_count>2</comment_count>
      <attachid>378835</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-16 14:39:53 -0700</bug_when>
    <thetext>Comment on attachment 378835
Patch

Clearing flags on attachment: 378835

Committed r249921: &lt;https://trac.webkit.org/changeset/249921&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571275</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-16 14:39:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571276</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-16 14:40:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/55415000&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378835</attachid>
            <date>2019-09-15 20:15:46 -0700</date>
            <delta_ts>2019-09-16 14:39:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201800-20190915201542.patch</filename>
            <type>text/plain</type>
            <size>22624</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0OTg4OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDE5LTA5LTE1ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtGVFddIENvcnJlY3QgbGlm
ZXNwYW4gb2Ygb3RoZXIgU2hhcmVkQml0bWFwcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxODAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhlIHBvcC11cCBtZW51IGNvZGUgY3JlYXRlcyBpdHMgb3du
IFNoYXJlZEJpdG1hcCBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLAorICAgICAgICB3aGljaCBu
ZWVkcyB0byByZWxlYXNlIGl0cyBoYW5kbGUgYmVmb3JlIGRlc3RydWN0aW9uLCBvdGhlcndpc2Ug
dGhlIFVJUHJvY2VzcworICAgICAgICB3aWxsIGJlIHVuYWJsZSB0byBhY2Nlc3MgdGhlIEdQVSB0
ZXh0dXJlIChzaW5jZSBpdCB3aWxsIGhhdmUgYmVlbiBjbGVhbmVkIHVwKS4KKworICAgICAgICBU
aGlzIHBhdGNoIGFsc28gYXVkaXRzIG90aGVyIHVzZXMgb2YgU2hhcmVkQml0bWFwIHRvIG1ha2Ug
c3VyZSBhIHNpbWlsYXIKKyAgICAgICAgcHJvYmxlbSBkb2Vzbid0IGV4aXN0IGVsc2V3aGVyZS4K
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXJlY3QyRFV0aWxpdGllcy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEaXJlY3QyRDo6dG9EWEdJRGV2aWNlKTogU3dpdGNoIHRvIElE
WEdJRGV2aWNlMSAoc2luY2UgdGhhdCBpcyBvdXIKKyAgICAgICAgbWluaW11bSB0YXJnZXQgRFgp
LgorICAgICAgICAoV2ViQ29yZTo6RGlyZWN0MkQ6OmZhY3RvcnlGb3JEWEdJRGV2aWNlKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpEaXJlY3QyRDo6c3dhcENoYWluT2ZTaXplRm9yV2luZG93
QW5kRGV2aWNlKTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0RpcmVj
dDJEVXRpbGl0aWVzLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNz
Q29udGV4dERpcmVjdDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dFBs
YXRmb3JtUHJpdmF0ZTo6R3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlKTogQ29ycmVjdAor
ICAgICAgICBhIHZlcnkgc2lsbHkgdXNlLWFmdGVyLW1vdmUgaW4gdGhlIGltcGxlbWVudGF0aW9u
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9QbGF0Zm9ybUNvbnRleHREaXJlY3Qy
RC5oOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0RGlyZWN0MkQ6OmQzZERldmlj
ZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0RGlyZWN0
MkQ6OnNldEQzRERldmljZSk6CisKIDIwMTktMDktMTUgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBw
bGUuY29tPgogCiAgICAgICAgIFtXZWJJRExdIERlcml2ZWQgZGljdGlvbmFyaWVzIHNob3VsZCBp
bmhlcml0IHRoZWlyIGluaGVyaXRlZCBkaWN0aW9uYXJpZXMnIHBhcnRpYWxzCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlyZWN0MkRVdGlsaXRpZXMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXJlY3Qy
RFV0aWxpdGllcy5jcHAJKHJldmlzaW9uIDI0OTg1MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9EaXJlY3QyRFV0aWxpdGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQxMiwyMCArNDEyLDIwIEBAIGJvb2wgY3JlYXRlRGV2aWNlQW5kQ29udGV4dChDT01QdHI8SUQz
RDEKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotQ09NUHRyPElEWEdJRGV2aWNlPiB0b0RYR0lEZXZp
Y2UoY29uc3QgQ09NUHRyPElEM0QxMURldmljZTE+JiBkM2REZXZpY2UpCitDT01QdHI8SURYR0lE
ZXZpY2UxPiB0b0RYR0lEZXZpY2UoY29uc3QgQ09NUHRyPElEM0QxMURldmljZTE+JiBkM2REZXZp
Y2UpCiB7CiAgICAgaWYgKCFkM2REZXZpY2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0g
ICAgQ09NUHRyPElEWEdJRGV2aWNlPiBkeGdpRGV2aWNlOwotICAgIEhSRVNVTFQgaHIgPSBkM2RE
ZXZpY2UtPlF1ZXJ5SW50ZXJmYWNlKF9fdXVpZG9mKElEWEdJRGV2aWNlKSwgKHZvaWQgKiopJmR4
Z2lEZXZpY2UpOworICAgIENPTVB0cjxJRFhHSURldmljZTE+IGR4Z2lEZXZpY2U7CisgICAgSFJF
U1VMVCBociA9IGQzZERldmljZS0+UXVlcnlJbnRlcmZhY2UoX191dWlkb2YoSURYR0lEZXZpY2Ux
KSwgKHZvaWQgKiopJmR4Z2lEZXZpY2UpOwogICAgIGlmICghU1VDQ0VFREVEKGhyKSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICByZXR1cm4gZHhnaURldmljZTsKIH0KIAotQ09NUHRy
PElEWEdJRmFjdG9yeTI+IGZhY3RvcnlGb3JEWEdJRGV2aWNlKGNvbnN0IENPTVB0cjxJRFhHSURl
dmljZT4mIGRldmljZSkKK0NPTVB0cjxJRFhHSUZhY3RvcnkyPiBmYWN0b3J5Rm9yRFhHSURldmlj
ZShjb25zdCBDT01QdHI8SURYR0lEZXZpY2UxPiYgZGV2aWNlKQogewogICAgIGlmICghZGV2aWNl
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTQ0NSw2ICs0NDUsMzMgQEAgQ09NUHRyPElE
WEdJRmFjdG9yeTI+IGZhY3RvcnlGb3JEWEdJRGV2aQogICAgIHJldHVybiBmYWN0b3J5MjsKIH0K
IAorQ09NUHRyPElEWEdJU3dhcENoYWluPiBzd2FwQ2hhaW5PZlNpemVGb3JXaW5kb3dBbmREZXZp
Y2UoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSwgSFdORCB3aW5kb3csIGNvbnN0IENPTVB0
cjxJRDNEMTFEZXZpY2UxPiYgZGV2aWNlKQoreworICAgIGlmICghZGV2aWNlKQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKworICAgIERYR0lfU1dBUF9DSEFJTl9ERVNDMSBzd2FwQ2hhaW5EZXNj
cmlwdGlvbjsKKyAgICA6Olplcm9NZW1vcnkoJnN3YXBDaGFpbkRlc2NyaXB0aW9uLCBzaXplb2Yo
c3dhcENoYWluRGVzY3JpcHRpb24pKTsKKyAgICBzd2FwQ2hhaW5EZXNjcmlwdGlvbi5XaWR0aCA9
IHNpemUud2lkdGgoKTsKKyAgICBzd2FwQ2hhaW5EZXNjcmlwdGlvbi5IZWlnaHQgPSBzaXplLmhl
aWdodCgpOworICAgIHN3YXBDaGFpbkRlc2NyaXB0aW9uLkZvcm1hdCA9IHdlYmtpdFRleHR1cmVG
b3JtYXQ7CisgICAgc3dhcENoYWluRGVzY3JpcHRpb24uU2FtcGxlRGVzYy5Db3VudCA9IDE7Cisg
ICAgc3dhcENoYWluRGVzY3JpcHRpb24uU2FtcGxlRGVzYy5RdWFsaXR5ID0gMDsKKyAgICBzd2Fw
Q2hhaW5EZXNjcmlwdGlvbi5CdWZmZXJVc2FnZSA9IERYR0lfVVNBR0VfU0hBREVSX0lOUFVUIHwg
RFhHSV9VU0FHRV9SRU5ERVJfVEFSR0VUX09VVFBVVDsKKyAgICBzd2FwQ2hhaW5EZXNjcmlwdGlv
bi5CdWZmZXJDb3VudCA9IDE7CisgICAgc3dhcENoYWluRGVzY3JpcHRpb24uRmxhZ3MgPSBEWEdJ
X1NXQVBfQ0hBSU5fRkxBR19HRElfQ09NUEFUSUJMRTsKKworICAgIGF1dG8gZmFjdG9yeSA9IERp
cmVjdDJEOjpmYWN0b3J5Rm9yRFhHSURldmljZShEaXJlY3QyRDo6dG9EWEdJRGV2aWNlKGRldmlj
ZSkpOworCisgICAgQ09NUHRyPElEWEdJU3dhcENoYWluMT4gc3dhcENoYWluMTsKKyAgICBIUkVT
VUxUIGhyID0gZmFjdG9yeS0+Q3JlYXRlU3dhcENoYWluRm9ySHduZChkZXZpY2UuZ2V0KCksIHdp
bmRvdywgJnN3YXBDaGFpbkRlc2NyaXB0aW9uLCBudWxscHRyLCBudWxscHRyLCAmc3dhcENoYWlu
MSk7CisgICAgaWYgKCFTVUNDRUVERUQoaHIpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwor
ICAgIENPTVB0cjxJRFhHSVN3YXBDaGFpbj4gc3dhcENoYWluKFF1ZXJ5LCBzd2FwQ2hhaW4xKTsK
KyAgICByZXR1cm4gc3dhcENoYWluOworfQorCiB9IC8vIG5hbWVzcGFjZSBEaXJlY3QyRAogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vRGlyZWN0MkRVdGlsaXRpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlyZWN0MkRVdGlsaXRpZXMuaAkocmV2aXNpb24gMjQ5
ODUwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0RpcmVjdDJEVXRp
bGl0aWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDggKzQwLDEwIEBAIGludGVyZmFjZSBJRDJE
MURDUmVuZGVyVGFyZ2V0OwogaW50ZXJmYWNlIElEMkQxUmVuZGVyVGFyZ2V0OwogaW50ZXJmYWNl
IElEM0QxMURldmljZTE7CiBpbnRlcmZhY2UgSUQzRDExRGV2aWNlQ29udGV4dDE7Ci1pbnRlcmZh
Y2UgSURYR0lEZXZpY2U7CitpbnRlcmZhY2UgSUQzRDExUmVuZGVyVGFyZ2V0VmlldzsKK2ludGVy
ZmFjZSBJRFhHSURldmljZTE7CiBpbnRlcmZhY2UgSURYR0lGYWN0b3J5MjsKK2ludGVyZmFjZSBJ
RFhHSVN3YXBDaGFpbjsKIGludGVyZmFjZSBJRFhHSVN1cmZhY2UxOwogaW50ZXJmYWNlIElXSUNC
aXRtYXBTb3VyY2U7CiBpbnRlcmZhY2UgSVdJQ0JpdG1hcDsKQEAgLTQ5LDYgKzUxLDcgQEAgaW50
ZXJmYWNlIElXSUNCaXRtYXA7CiBzdHJ1Y3QgRDJEMV9CSVRNQVBfUFJPUEVSVElFUzsKIHN0cnVj
dCBEMkQxX1BJWEVMX0ZPUk1BVDsKIHN0cnVjdCBEMkQxX1JFTkRFUl9UQVJHRVRfUFJPUEVSVElF
UzsKK3N0cnVjdCBEM0QxMV9WSUVXUE9SVDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC04
Nyw4ICs5MCw5IEBAIHZvaWQgY29weVJlY3RGcm9tT25lU3VyZmFjZVRvQW5vdGhlcihJRDIKIFdF
QkNPUkVfRVhQT1JUIElEM0QxMURldmljZUNvbnRleHQxKiBkeGdpSW1tZWRpYXRlQ29udGV4dCgp
OwogV0VCQ09SRV9FWFBPUlQgSUQzRDExRGV2aWNlMSogZGVmYXVsdERpcmVjdFhEZXZpY2UoKTsK
IFdFQkNPUkVfRVhQT1JUIGJvb2wgY3JlYXRlRGV2aWNlQW5kQ29udGV4dChDT01QdHI8SUQzRDEx
RGV2aWNlMT4mLCBDT01QdHI8SUQzRDExRGV2aWNlQ29udGV4dDE+Jik7Ci1XRUJDT1JFX0VYUE9S
VCBDT01QdHI8SURYR0lEZXZpY2U+IHRvRFhHSURldmljZShjb25zdCBDT01QdHI8SUQzRDExRGV2
aWNlMT4mKTsKLVdFQkNPUkVfRVhQT1JUIENPTVB0cjxJRFhHSUZhY3RvcnkyPiBmYWN0b3J5Rm9y
RFhHSURldmljZShjb25zdCBDT01QdHI8SURYR0lEZXZpY2U+Jik7CitXRUJDT1JFX0VYUE9SVCBD
T01QdHI8SURYR0lEZXZpY2UxPiB0b0RYR0lEZXZpY2UoY29uc3QgQ09NUHRyPElEM0QxMURldmlj
ZTE+Jik7CitXRUJDT1JFX0VYUE9SVCBDT01QdHI8SURYR0lGYWN0b3J5Mj4gZmFjdG9yeUZvckRY
R0lEZXZpY2UoY29uc3QgQ09NUHRyPElEWEdJRGV2aWNlMT4mKTsKK1dFQkNPUkVfRVhQT1JUIENP
TVB0cjxJRFhHSVN3YXBDaGFpbj4gc3dhcENoYWluT2ZTaXplRm9yV2luZG93QW5kRGV2aWNlKGNv
bnN0IFdlYkNvcmU6OkludFNpemUmLCBIV05ELCBjb25zdCBDT01QdHI8SUQzRDExRGV2aWNlMT4m
KTsKIAogdm9pZCB3cml0ZURpYWdub3N0aWNQTkdUb1BhdGgoSUQyRDFSZW5kZXJUYXJnZXQqLCBJ
RDJEMUJpdG1hcCosIExQQ1dTVFIgZmlsZU5hbWUpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0RGlyZWN0MkQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRl
eHREaXJlY3QyRC5jcHAJKHJldmlzaW9uIDI0OTg1MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHREaXJlY3QyRC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI5Niw3ICsyOTYsNyBAQCBHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGU6Okdy
YXBoaWNzCiAKIEdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZTo6R3JhcGhpY3NDb250ZXh0
UGxhdGZvcm1Qcml2YXRlKHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybUNvbnRleHREaXJlY3QyRD4m
JiBvd25lZFBsYXRmb3JtQ29udGV4dCwgR3JhcGhpY3NDb250ZXh0OjpCaXRtYXBSZW5kZXJpbmdD
b250ZXh0VHlwZSByZW5kZXJpbmdUeXBlKQogICAgIDogbV9vd25lZFBsYXRmb3JtQ29udGV4dChX
VEZNb3ZlKG93bmVkUGxhdGZvcm1Db250ZXh0KSkKLSAgICAsIG1fcGxhdGZvcm1Db250ZXh0KCpv
d25lZFBsYXRmb3JtQ29udGV4dCkKKyAgICAsIG1fcGxhdGZvcm1Db250ZXh0KCptX293bmVkUGxh
dGZvcm1Db250ZXh0KQogICAgICwgbV9yZW5kZXJlclR5cGUocmVuZGVyaW5nVHlwZSkKIHsKICAg
ICBpZiAoIW1fcGxhdGZvcm1Db250ZXh0LnJlbmRlclRhcmdldCgpKQpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1BsYXRmb3JtQ29udGV4dERpcmVjdDJELmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1BsYXRmb3Jt
Q29udGV4dERpcmVjdDJELmgJKHJldmlzaW9uIDI0OTg1MCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9QbGF0Zm9ybUNvbnRleHREaXJlY3QyRC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8ZDJkMS5oPgogI2luY2x1ZGUgPGQyZDFf
MS5oPgogI2luY2x1ZGUgPGQyZDFlZmZlY3RzLmg+CisjaW5jbHVkZSA8ZDNkMTFfMS5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU0LDYgKzU1LDkgQEAgcHVibGljOgogICAgIElEMkQx
UmVuZGVyVGFyZ2V0KiByZW5kZXJUYXJnZXQoKSB7IHJldHVybiBtX3JlbmRlclRhcmdldC5nZXQo
KTsgfQogICAgIHZvaWQgc2V0UmVuZGVyVGFyZ2V0KElEMkQxUmVuZGVyVGFyZ2V0KiByZW5kZXJU
YXJnZXQpIHsgbV9yZW5kZXJUYXJnZXQgPSByZW5kZXJUYXJnZXQ7IH0KIAorICAgIElEM0QxMURl
dmljZTEqIGQzZERldmljZSgpIGNvbnN0IHsgcmV0dXJuIG1fZDNkRGV2aWNlLmdldCgpOyB9Cisg
ICAgdm9pZCBzZXREM0REZXZpY2UoSUQzRDExRGV2aWNlMSogZGV2aWNlKSB7IG1fZDNkRGV2aWNl
ID0gZGV2aWNlOyB9CisKICAgICBHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGUqIGdyYXBo
aWNzQ29udGV4dFByaXZhdGUoKSB7IHJldHVybiBtX2dyYXBoaWNzQ29udGV4dFByaXZhdGU7IH0K
ICAgICB2b2lkIHNldEdyYXBoaWNzQ29udGV4dFByaXZhdGUoR3JhcGhpY3NDb250ZXh0UGxhdGZv
cm1Qcml2YXRlKiBncmFwaGljc0NvbnRleHRQcml2YXRlKSB7IG1fZ3JhcGhpY3NDb250ZXh0UHJp
dmF0ZSA9IGdyYXBoaWNzQ29udGV4dFByaXZhdGU7IH0KIApAQCAtMTI3LDYgKzEzMSw4IEBAIHBy
aXZhdGU6CiAgICAgQ09NUHRyPElEMkQxQml0bWFwQnJ1c2g+IG1fcGF0dGVyblN0cm9rZUJydXNo
OwogICAgIENPTVB0cjxJRDJEMUJpdG1hcEJydXNoPiBtX3BhdHRlcm5GaWxsQnJ1c2g7CiAKKyAg
ICBDT01QdHI8SUQzRDExRGV2aWNlMT4gbV9kM2REZXZpY2U7CisKICAgICBXVEY6OkZ1bmN0aW9u
PHZvaWQoKT4gbV9wcmVEcmF3SGFuZGxlcjsKICAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4gbV9w
b3N0RHJhd0hhbmRsZXI7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDk4NTApCisrKyBTb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDE5
LTA5LTE1ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtG
VFddIENvcnJlY3QgbGlmZXNwYW4gb2Ygb3RoZXIgU2hhcmVkQml0bWFwcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxODAwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHBvcC11cCBtZW51IGNvZGUg
Y3JlYXRlcyBpdHMgb3duIFNoYXJlZEJpdG1hcCBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLAor
ICAgICAgICB3aGljaCBuZWVkcyB0byByZWxlYXNlIGl0cyBoYW5kbGUgYmVmb3JlIGRlc3RydWN0
aW9uLCBvdGhlcndpc2UgdGhlIFVJUHJvY2VzcworICAgICAgICB3aWxsIGJlIHVuYWJsZSB0byBh
Y2Nlc3MgdGhlIEdQVSB0ZXh0dXJlIChzaW5jZSBpdCB3aWxsIGhhdmUgYmVlbiBjbGVhbmVkIHVw
KS4KKworICAgICAgICBTaW5jZSBXZWJQb3B1cE1lbnVQcm94eVdpbiBoYXMgaXRzIG93biBIV05E
IGFuZCBXaW5Qcm9jLCBpdCBuZWVkcyBpdHMgb3duCisgICAgICAgIHN3YXBDaGFpbiB0byBoYW5k
bGUgc3luY2luZyBvZiBjb250ZW50IHRvIHRoZSBzY3JlZW4uCisKKyAgICAgICAgVGhpcyBwYXRj
aCBhbHNvIGF1ZGl0cyBvdGhlciB1c2VzIG9mIFNoYXJlZEJpdG1hcCB0byBtYWtlIHN1cmUgYSBz
aW1pbGFyCisgICAgICAgIHByb2JsZW0gZG9lc24ndCBleGlzdCBlbHNld2hlcmUuCisKKyAgICAg
ICAgKiBTaGFyZWQvU2hhcmVhYmxlQml0bWFwLmg6CisgICAgICAgICogU2hhcmVkL3dpbi9TaGFy
ZWFibGVCaXRtYXBEaXJlY3QyRC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlYWJsZUJpdG1h
cDo6cGFpbnQpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZURpcmVj
dDJEU3VyZmFjZSk6CisgICAgICAgICogVUlQcm9jZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdp
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5V2luOjpzaG93UG9wdXBN
ZW51KTogQWRkIERpcmVjdDJEIGNvZGUgcGF0aHMuCisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVw
TWVudVByb3h5V2luOjpwYWludCk6IFVwZGF0ZSBmb3IgRGlyZWN0MkQuCisgICAgICAgIChXZWJL
aXQ6OldlYlBvcHVwTWVudVByb3h5V2luOjpzZXR1cFN3YXBDaGFpbik6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eVdpbjo6Y29uZmlndXJlQmFja2luZ1N0b3JlKTog
QWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXc6OnNldHVwU3dhcENoYWluKTogTW92ZSBzb21lIGltcGxlbWVudGF0aW9uIGNvZGUgdG8g
dGhlCisgICAgICAgIERpcmVjdDJEVXRpbGl0aWVzIGZpbGUuCisgICAgICAgICogVUlQcm9jZXNz
L3dpbi9XZWJWaWV3Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OmQzZERldmljZSBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OmQzZEltbWVkaWF0ZUNvbnRleHQgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3OjpkM2REZXZpY2UpOiBEZWxldGVkLgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUG9wdXBNZW51OjpzaG93KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvRmluZENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpGaW5kQ29udHJvbGxlcjo6
Z2V0SW1hZ2VGb3JGaW5kTWF0Y2gpOiBQcmV2ZW50IFdlYkNvbnRlbnQgcHJvY2VzcyBmcm9tCisg
ICAgICAgIGRlc3Ryb3lpbmcgU2hhcmVkQml0bWFwIGJlZm9yZSB0aGUgVUlQcm9jZXNzIGNhbiBy
ZWNlaXZlIGl0LgorCiAyMDE5LTA5LTEzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5OjpzZW5kV2l0aEFz
eW5jUmVwbHkgc2hvdWxkIHF1ZXVlIHVwIG1lc3NhZ2VzIGlmIHNlbnQgd2hpbGUgdGhlIHByb2Nl
c3MgaXMgc3RhcnRpbmcgbGlrZSBpdCBkb2VzIG1lc3NhZ2VzIHdpdGhvdXQgcmVwbGllcwpJbmRl
eDogU291cmNlL1dlYktpdC9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmgJKHJldmlzaW9uIDI0OTg1MCkK
KysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xNzQsNiArMTc0LDcgQEAgcHJpdmF0ZToKICNpZiBVU0UoRElSRUNUMkQpCiAgICAgQ09N
UHRyPElEWEdJU3VyZmFjZTE+IG1fc3VyZmFjZTsKICAgICBDT01QdHI8SURYR0lLZXllZE11dGV4
PiBtX3N1cmZhY2VNdXRleDsKKyAgICBDT01QdHI8SUQyRDFCaXRtYXA+IG1fYml0bWFwOwogI2Vu
ZGlmCiAKICAgICAvLyBJZiB0aGUgc2hhcmVhYmxlIGJpdG1hcCBpcyBiYWNrZWQgYnkgc2hhcmVk
IG1lbW9yeSwgdGhpcyBwb2ludHMgdG8gdGhlIHNoYXJlZCBtZW1vcnkgb2JqZWN0LgpJbmRleDog
U291cmNlL1dlYktpdC9TaGFyZWQvd2luL1NoYXJlYWJsZUJpdG1hcERpcmVjdDJELmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC93aW4vU2hhcmVhYmxlQml0bWFwRGlyZWN0
MkQuY3BwCShyZXZpc2lvbiAyNDk4NTApCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC93aW4vU2hh
cmVhYmxlQml0bWFwRGlyZWN0MkQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQsNyArMTE0LDcg
QEAgdm9pZCBTaGFyZWFibGVCaXRtYXA6OnBhaW50KEdyYXBoaWNzQ29udAogCiB2b2lkIFNoYXJl
YWJsZUJpdG1hcDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBmbG9hdCBzY2FsZUZh
Y3RvciwgY29uc3QgSW50UG9pbnQmIGRzdFBvaW50LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0KQog
ewotICAgIGF1dG8gc3VyZmFjZSA9IGNyZWF0ZURpcmVjdDJEU3VyZmFjZShudWxscHRyLCBjb250
ZXh0LnBsYXRmb3JtQ29udGV4dCgpLT5yZW5kZXJUYXJnZXQoKSk7CisgICAgYXV0byBzdXJmYWNl
ID0gY3JlYXRlRGlyZWN0MkRTdXJmYWNlKGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCktPmQzZERl
dmljZSgpLCBjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLT5yZW5kZXJUYXJnZXQoKSk7CiAKICNp
Zm5kZWYgX05ERUJVRwogICAgIGF1dG8gYml0bWFwU2l6ZSA9IHN1cmZhY2UtPkdldFBpeGVsU2l6
ZSgpOwpAQCAtMTM5LDI3ICsxMzksMjggQEAgQ09NUHRyPElEMkQxQml0bWFwPiBTaGFyZWFibGVC
aXRtYXA6OmNyZQogICAgIGlmICghZGlyZWN0WERldmljZSkKICAgICAgICAgZGlyZWN0WERldmlj
ZSA9IERpcmVjdDJEOjpkZWZhdWx0RGlyZWN0WERldmljZSgpOwogCi0gICAgQ09NUHRyPElEM0Qx
MVRleHR1cmUyRD4gdGV4dHVyZTsKLSAgICBIUkVTVUxUIGhyID0gZGlyZWN0WERldmljZS0+T3Bl
blNoYXJlZFJlc291cmNlMShtX2NvbmZpZ3VyYXRpb24uc2hhcmVkUmVzb3VyY2VIYW5kbGUsIF9f
dXVpZG9mKElEM0QxMVRleHR1cmUyRCksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPigmdGV4dHVy
ZSkpOwotICAgIGlmICghU1VDQ0VFREVEKGhyKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0K
LSAgICBociA9IHRleHR1cmUtPlF1ZXJ5SW50ZXJmYWNlKCZtX3N1cmZhY2UpOwotICAgIFJFTEVB
U0VfQVNTRVJUKFNVQ0NFRURFRChocikpOwotCi0gICAgLy8gTG9jayB0aGUgc3VyZmFjZSB0byB0
aGUgY3VycmVudCBkZXZpY2Ugd2hpbGUgcmVuZGVyaW5nLgotICAgIGhyID0gbV9zdXJmYWNlLT5R
dWVyeUludGVyZmFjZSgmbV9zdXJmYWNlTXV0ZXgpOwotICAgIFJFTEVBU0VfQVNTRVJUKFNVQ0NF
RURFRChocikpOwotICAgIGhyID0gbV9zdXJmYWNlTXV0ZXgtPkFjcXVpcmVTeW5jKDEsIElORklO
SVRFKTsKLSAgICBSRUxFQVNFX0FTU0VSVChTVUNDRUVERUQoaHIpKTsKLQotICAgIENPTVB0cjxJ
RDJEMUJpdG1hcD4gYml0bWFwOwotICAgIGF1dG8gYml0bWFwUHJvcGVydGllcyA9IERpcmVjdDJE
OjpiaXRtYXBQcm9wZXJ0aWVzKCk7Ci0gICAgaHIgPSByZW5kZXJUYXJnZXQtPkNyZWF0ZVNoYXJl
ZEJpdG1hcChfX3V1aWRvZihJRFhHSVN1cmZhY2UxKSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4o
bV9zdXJmYWNlLmdldCgpKSwgJmJpdG1hcFByb3BlcnRpZXMsICZiaXRtYXApOwotICAgIGlmICgh
U1VDQ0VFREVEKGhyKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKCFtX2JpdG1h
cCkgeworICAgICAgICBDT01QdHI8SUQzRDExVGV4dHVyZTJEPiB0ZXh0dXJlOworICAgICAgICBI
UkVTVUxUIGhyID0gZGlyZWN0WERldmljZS0+T3BlblNoYXJlZFJlc291cmNlMShtX2NvbmZpZ3Vy
YXRpb24uc2hhcmVkUmVzb3VyY2VIYW5kbGUsIF9fdXVpZG9mKElEM0QxMVRleHR1cmUyRCksIHJl
aW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPigmdGV4dHVyZSkpOworICAgICAgICBpZiAoIVNVQ0NFRURF
RChocikpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgICAgICBociA9IHRleHR1
cmUtPlF1ZXJ5SW50ZXJmYWNlKCZtX3N1cmZhY2UpOworICAgICAgICBSRUxFQVNFX0FTU0VSVChT
VUNDRUVERUQoaHIpKTsKKworICAgICAgICAvLyBMb2NrIHRoZSBzdXJmYWNlIHRvIHRoZSBjdXJy
ZW50IGRldmljZSB3aGlsZSByZW5kZXJpbmcuCisgICAgICAgIGhyID0gbV9zdXJmYWNlLT5RdWVy
eUludGVyZmFjZSgmbV9zdXJmYWNlTXV0ZXgpOworICAgICAgICBSRUxFQVNFX0FTU0VSVChTVUND
RUVERUQoaHIpKTsKKyAgICAgICAgaHIgPSBtX3N1cmZhY2VNdXRleC0+QWNxdWlyZVN5bmMoMSwg
SU5GSU5JVEUpOworICAgICAgICBSRUxFQVNFX0FTU0VSVChTVUNDRUVERUQoaHIpKTsKKworICAg
ICAgICBhdXRvIGJpdG1hcFByb3BlcnRpZXMgPSBEaXJlY3QyRDo6Yml0bWFwUHJvcGVydGllcygp
OworICAgICAgICBociA9IHJlbmRlclRhcmdldC0+Q3JlYXRlU2hhcmVkQml0bWFwKF9fdXVpZG9m
KElEWEdJU3VyZmFjZTEpLCByZWludGVycHJldF9jYXN0PHZvaWQqPihtX3N1cmZhY2UuZ2V0KCkp
LCAmYml0bWFwUHJvcGVydGllcywgJm1fYml0bWFwKTsKKyAgICAgICAgaWYgKCFTVUNDRUVERUQo
aHIpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQogCi0gICAgcmV0dXJuIGJp
dG1hcDsKKyAgICByZXR1cm4gbV9iaXRtYXA7CiB9CiAKIFJlZlB0cjxJbWFnZT4gU2hhcmVhYmxl
Qml0bWFwOjpjcmVhdGVJbWFnZSgpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4v
V2ViUG9wdXBNZW51UHJveHlXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5jcHAJKHJldmlzaW9uIDI0OTg1MCkKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDEzIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJDb3Jl
SW5zdGFuY2VIYW5kbGUuaD4KICNpbmNsdWRlIDx3aW5kb3dzeC5oPgogCisjaWYgVVNFKERJUkVD
VDJEKQorI2luY2x1ZGUgPFdlYkNvcmUvRGlyZWN0MkRVdGlsaXRpZXMuaD4KKyNpbmNsdWRlIDxk
M2QxMV8xLmg+CisjaW5jbHVkZSA8ZGlyZWN0eGNvbG9ycy5oPiAKKyNpbmNsdWRlIDxkeGdpLmg+
CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IApAQCAtMjA1LDYgKzIxMiwxMSBAQCB2b2lkIFdlYlBvcHVwTWVudVByb3h5V2luOjpzaG93UG9w
dXBNZW51CiAKICAgICAgICAgaWYgKCFtX3BvcHVwKQogICAgICAgICAgICAgcmV0dXJuOworCisj
aWYgVVNFKERJUkVDVDJEKQorICAgICAgICBEaXJlY3QyRDo6Y3JlYXRlRGV2aWNlQW5kQ29udGV4
dChtX2QzZERldmljZSwgbV9pbW1lZGlhdGVDb250ZXh0KTsKKyAgICAgICAgc2V0dXBTd2FwQ2hh
aW4obV93aW5kb3dSZWN0LnNpemUoKSk7CisjZW5kaWYKICAgICB9CiAKICAgICBCT09MIHNob3Vs
ZEFuaW1hdGUgPSBGQUxTRTsKQEAgLTgxMyw2ICs4MjUsNyBAQCB2b2lkIFdlYlBvcHVwTWVudVBy
b3h5V2luOjpwYWludChjb25zdCBJCiAgICAgaWYgKCFtX3BvcHVwKQogICAgICAgICByZXR1cm47
CiAKKyNpZiAhVVNFKERJUkVDVDJEKQogICAgIGlmICghbV9EQykgewogICAgICAgICBtX0RDID0g
YWRvcHRHRElPYmplY3QoOjpDcmVhdGVDb21wYXRpYmxlREMoSFduZERDKG1fcG9wdXApKSk7CiAg
ICAgICAgIGlmICghbV9EQykKQEAgLTgzOCw2ICs4NTEsMjIgQEAgdm9pZCBXZWJQb3B1cE1lbnVQ
cm94eVdpbjo6cGFpbnQoY29uc3QgSQogICAgIH0KIAogICAgIEdyYXBoaWNzQ29udGV4dCBjb250
ZXh0KG1fREMuZ2V0KCkpOworI2Vsc2UKKyAgICBDT01QdHI8SUQzRDExVGV4dHVyZTJEPiBiYWNr
QnVmZmVyOyAKKyAgICBIUkVTVUxUIGhyID0gbV9zd2FwQ2hhaW4tPkdldEJ1ZmZlcigwLCBfX3V1
aWRvZihJRDNEMTFUZXh0dXJlMkQpLCByZWludGVycHJldF9jYXN0PHZvaWQqKj4oJmJhY2tCdWZm
ZXIpKTsgCisgICAgaWYgKCFTVUNDRUVERUQoaHIpKQorICAgICAgICByZXR1cm47CisKKyAgICBD
T01QdHI8SURYR0lTdXJmYWNlMT4gc3VyZmFjZShRdWVyeSwgYmFja0J1ZmZlcik7CisgICAgaWYg
KCFzdXJmYWNlKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHJlbmRlclRhcmdldCA9IFdl
YkNvcmU6OkRpcmVjdDJEOjpjcmVhdGVTdXJmYWNlUmVuZGVyVGFyZ2V0KHN1cmZhY2UuZ2V0KCkp
OworCisgICAgUGxhdGZvcm1Db250ZXh0RGlyZWN0MkQgcGxhdGZvcm1Db250ZXh0KHJlbmRlclRh
cmdldC5nZXQoKSk7CisgICAgcGxhdGZvcm1Db250ZXh0LnNldEQzRERldmljZShtX2QzZERldmlj
ZS5nZXQoKSk7CisgICAgR3JhcGhpY3NDb250ZXh0IGNvbnRleHQoJnBsYXRmb3JtQ29udGV4dCwg
R3JhcGhpY3NDb250ZXh0OjpCaXRtYXBSZW5kZXJpbmdDb250ZXh0VHlwZTo6R1BVTWVtb3J5KTsK
KyNlbmRpZgogCiAgICAgSW50UmVjdCB0cmFuc2xhdGVkRGFtYWdlUmVjdCA9IGRhbWFnZVJlY3Q7
CiAgICAgdHJhbnNsYXRlZERhbWFnZVJlY3QubW92ZShJbnRTaXplKDAsIG1fc2Nyb2xsT2Zmc2V0
ICogbV9pdGVtSGVpZ2h0KSk7CkBAIC04NTIsMTEgKzg4MSwxNSBAQCB2b2lkIFdlYlBvcHVwTWVu
dVByb3h5V2luOjpwYWludChjb25zdCBJCiAgICAgaWYgKG1fc2Nyb2xsYmFyKQogICAgICAgICBt
X3Njcm9sbGJhci0+cGFpbnQoY29udGV4dCwgZGFtYWdlUmVjdCk7CiAKLQorI2lmICFVU0UoRElS
RUNUMkQpCiAgICAgSFduZERDIGhXbmREQzsKICAgICBIREMgbG9jYWxEQyA9IGhkYyA/IGhkYyA6
IGhXbmREQy5zZXRIV25kKG1fcG9wdXApOwogCiAgICAgOjpCaXRCbHQobG9jYWxEQywgZGFtYWdl
UmVjdC54KCksIGRhbWFnZVJlY3QueSgpLCBkYW1hZ2VSZWN0LndpZHRoKCksIGRhbWFnZVJlY3Qu
aGVpZ2h0KCksIG1fREMuZ2V0KCksIGRhbWFnZVJlY3QueCgpLCBkYW1hZ2VSZWN0LnkoKSwgU1JD
Q09QWSk7CisjZWxzZQorICAgIGNvbnRleHQuZmx1c2goKTsKKyAgICBtX3N3YXBDaGFpbi0+UHJl
c2VudCgwLCAwKTsgCisjZW5kaWYKIH0KIAogYm9vbCBXZWJQb3B1cE1lbnVQcm94eVdpbjo6c2V0
Rm9jdXNlZEluZGV4KGludCBpLCBib29sIGhvdFRyYWNraW5nKQpAQCAtOTU5LDQgKzk5Miw0NSBA
QCBib29sIFdlYlBvcHVwTWVudVByb3h5V2luOjpzY3JvbGxUb1JldmVhCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCisjaWYgVVNFKERJUkVDVDJEKQordm9pZCBXZWJQb3B1cE1lbnVQcm94eVdpbjo6
c2V0dXBTd2FwQ2hhaW4oY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBtX3N3
YXBDaGFpbiA9IERpcmVjdDJEOjpzd2FwQ2hhaW5PZlNpemVGb3JXaW5kb3dBbmREZXZpY2Uoc2l6
ZSwgbV9wb3B1cCwgbV9kM2REZXZpY2UpOworICAgIFJFTEVBU0VfQVNTRVJUKG1fc3dhcENoYWlu
KTsKKyAgICBhdXRvIGZhY3RvcnkgPSBEaXJlY3QyRDo6ZmFjdG9yeUZvckRYR0lEZXZpY2UoRGly
ZWN0MkQ6OnRvRFhHSURldmljZShtX2QzZERldmljZSkpOworCisgICAgZmFjdG9yeS0+TWFrZVdp
bmRvd0Fzc29jaWF0aW9uKG1fcG9wdXAsIDApOworICAgIGNvbmZpZ3VyZUJhY2tpbmdTdG9yZShz
aXplKTsKK30KKwordm9pZCBXZWJQb3B1cE1lbnVQcm94eVdpbjo6Y29uZmlndXJlQmFja2luZ1N0
b3JlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUpCit7CisgICAgQVNTRVJUKG1fc3dhcENo
YWluKTsKKyAgICBBU1NFUlQobV9kM2REZXZpY2UpOworICAgIEFTU0VSVChtX2ltbWVkaWF0ZUNv
bnRleHQpOworCisgICAgLy8gQ3JlYXRlIGEgcmVuZGVyIHRhcmdldCB2aWV3IAorICAgIENPTVB0
cjxJRDNEMTFUZXh0dXJlMkQ+IGJhY2tCdWZmZXI7IAorICAgIEhSRVNVTFQgaHIgPSBtX3N3YXBD
aGFpbi0+R2V0QnVmZmVyKDAsIF9fdXVpZG9mKElEM0QxMVRleHR1cmUyRCksIHJlaW50ZXJwcmV0
X2Nhc3Q8dm9pZCoqPigmYmFja0J1ZmZlcikpOyAKKyAgICBSRUxFQVNFX0FTU0VSVChTVUNDRUVE
RUQoaHIpKTsKKworICAgIGhyID0gbV9kM2REZXZpY2UtPkNyZWF0ZVJlbmRlclRhcmdldFZpZXco
YmFja0J1ZmZlci5nZXQoKSwgbnVsbHB0ciwgJm1fcmVuZGVyVGFyZ2V0Vmlldyk7IAorICAgIFJF
TEVBU0VfQVNTRVJUKFNVQ0NFRURFRChocikpOworCisgICAgYXV0byogcmVuZGVyVGFyZ2V0Vmll
dyA9IG1fcmVuZGVyVGFyZ2V0Vmlldy5nZXQoKTsKKyAgICBtX2ltbWVkaWF0ZUNvbnRleHQtPk9N
U2V0UmVuZGVyVGFyZ2V0cygxLCAmcmVuZGVyVGFyZ2V0VmlldywgbnVsbHB0cik7CisKKyAgICAv
LyBTZXR1cCB0aGUgdmlld3BvcnQgCisgICAgRDNEMTFfVklFV1BPUlQgdmlld3BvcnQ7CisgICAg
dmlld3BvcnQuV2lkdGggPSAoRkxPQVQpc2l6ZS53aWR0aCgpOworICAgIHZpZXdwb3J0LkhlaWdo
dCA9IChGTE9BVClzaXplLmhlaWdodCgpOworICAgIHZpZXdwb3J0Lk1pbkRlcHRoID0gMC4wZjsK
KyAgICB2aWV3cG9ydC5NYXhEZXB0aCA9IDEuMGY7CisgICAgdmlld3BvcnQuVG9wTGVmdFggPSAw
OworICAgIHZpZXdwb3J0LlRvcExlZnRZID0gMDsKKyAgICBtX2ltbWVkaWF0ZUNvbnRleHQtPlJT
U2V0Vmlld3BvcnRzKDEsICZ2aWV3cG9ydCk7CisKKyAgICBtX2ltbWVkaWF0ZUNvbnRleHQtPkNs
ZWFyUmVuZGVyVGFyZ2V0VmlldyhtX3JlbmRlclRhcmdldFZpZXcuZ2V0KCksIERpcmVjdFg6OkNv
bG9yczo6QmxhbmNoZWRBbG1vbmQpOyAKK30KKyNlbmRpZgogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlXaW4u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51
UHJveHlXaW4uaAkocmV2aXNpb24gMjQ5ODUwKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
d2luL1dlYlBvcHVwTWVudVByb3h5V2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDEz
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxhYmxlQXJlYS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU2Nyb2xsYmFyLmg+CiAKKyNpZiBVU0UoRElSRUNUMkQpCitpbnRlcmZhY2UgSUQzRDExRGV2
aWNlMTsKK2ludGVyZmFjZSBJRDNEMTFEZXZpY2VDb250ZXh0MTsKK2ludGVyZmFjZSBJRDNEMTFS
ZW5kZXJUYXJnZXRWaWV3OworaW50ZXJmYWNlIElEWEdJU3dhcENoYWluOworI2VuZGlmCisKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJWaWV3OwpAQCAtMTIyLDEyICsxMjksMjMgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGluY3JlbWVudFdoZWVsRGVsdGEoaW50IGRlbHRhKTsKICAgICB2
b2lkIHJlZHVjZVdoZWVsRGVsdGEoaW50IGRlbHRhKTsKIAorI2lmIFVTRShESVJFQ1QyRCkKKyAg
ICB2b2lkIHNldHVwU3dhcENoYWluKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKKyAgICB2b2lk
IGNvbmZpZ3VyZUJhY2tpbmdTdG9yZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CisjZW5kaWYK
KwogICAgIFdlYlZpZXcqIG1fd2ViVmlldzsKICAgICBWZWN0b3I8V2ViUG9wdXBJdGVtPiBtX2l0
ZW1zOwogICAgIFBsYXRmb3JtUG9wdXBNZW51RGF0YSBtX2RhdGE7CiAgICAgaW50IG1fbmV3U2Vs
ZWN0ZWRJbmRleCB7IDAgfTsKIAogICAgIFJlZlB0cjxXZWJDb3JlOjpTY3JvbGxiYXI+IG1fc2Ny
b2xsYmFyOworI2lmIFVTRShESVJFQ1QyRCkKKyAgICBDT01QdHI8SUQzRDExRGV2aWNlMT4gbV9k
M2REZXZpY2U7CisgICAgQ09NUHRyPElEM0QxMURldmljZUNvbnRleHQxPiBtX2ltbWVkaWF0ZUNv
bnRleHQ7CisgICAgQ09NUHRyPElEM0QxMVJlbmRlclRhcmdldFZpZXc+IG1fcmVuZGVyVGFyZ2V0
VmlldzsgCisgICAgQ09NUHRyPElEWEdJU3dhcENoYWluPiBtX3N3YXBDaGFpbjsKKyNlbmRpZgog
ICAgIEdESU9iamVjdDxIREM+IG1fREM7CiAgICAgR0RJT2JqZWN0PEhCSVRNQVA+IG1fYm1wOwog
ICAgIEhXTkQgbV9wb3B1cCB7IG51bGxwdHIgfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL3dpbi9XZWJWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy93aW4vV2ViVmlldy5jcHAJKHJldmlzaW9uIDI0OTg1MCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL3dpbi9XZWJWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTU2LDI0ICs5NTYsMTEg
QEAgdm9pZCBXZWJWaWV3OjpzZXR1cFN3YXBDaGFpbihjb25zdCBXZWJDbwogICAgIGlmICghbV9k
M2REZXZpY2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIERYR0lfU1dBUF9DSEFJTl9ERVNDMSBz
d2FwQ2hhaW5EZXNjcmlwdGlvbjsKLSAgICA6Olplcm9NZW1vcnkoJnN3YXBDaGFpbkRlc2NyaXB0
aW9uLCBzaXplb2Yoc3dhcENoYWluRGVzY3JpcHRpb24pKTsKLSAgICBzd2FwQ2hhaW5EZXNjcmlw
dGlvbi5XaWR0aCA9IHNpemUud2lkdGgoKTsKLSAgICBzd2FwQ2hhaW5EZXNjcmlwdGlvbi5IZWln
aHQgPSBzaXplLmhlaWdodCgpOwotICAgIHN3YXBDaGFpbkRlc2NyaXB0aW9uLkZvcm1hdCA9IERY
R0lfRk9STUFUX0I4RzhSOEE4X1VOT1JNOwotICAgIHN3YXBDaGFpbkRlc2NyaXB0aW9uLlNhbXBs
ZURlc2MuQ291bnQgPSAxOwotICAgIHN3YXBDaGFpbkRlc2NyaXB0aW9uLlNhbXBsZURlc2MuUXVh
bGl0eSA9IDA7Ci0gICAgc3dhcENoYWluRGVzY3JpcHRpb24uQnVmZmVyVXNhZ2UgPSBEWEdJX1VT
QUdFX1JFTkRFUl9UQVJHRVRfT1VUUFVUOwotICAgIHN3YXBDaGFpbkRlc2NyaXB0aW9uLkJ1ZmZl
ckNvdW50ID0gMTsKKyAgICBtX3N3YXBDaGFpbiA9IERpcmVjdDJEOjpzd2FwQ2hhaW5PZlNpemVG
b3JXaW5kb3dBbmREZXZpY2Uoc2l6ZSwgbV93aW5kb3csIG1fZDNkRGV2aWNlKTsKKyAgICBSRUxF
QVNFX0FTU0VSVChtX3N3YXBDaGFpbik7CiAKICAgICBhdXRvIGZhY3RvcnkgPSBEaXJlY3QyRDo6
ZmFjdG9yeUZvckRYR0lEZXZpY2UoRGlyZWN0MkQ6OnRvRFhHSURldmljZShtX2QzZERldmljZSkp
OwogCi0gICAgSURYR0lTd2FwQ2hhaW4xKiBzd2FwQ2hhaW4xID0gbnVsbHB0cjsKLSAgICBIUkVT
VUxUIGhyID0gZmFjdG9yeS0+Q3JlYXRlU3dhcENoYWluRm9ySHduZChtX2QzZERldmljZS5nZXQo
KSwgbV93aW5kb3csICZzd2FwQ2hhaW5EZXNjcmlwdGlvbiwgbnVsbHB0ciwgbnVsbHB0ciwgJnN3
YXBDaGFpbjEpOwotICAgIGlmIChTVUNDRUVERUQoaHIpKQotICAgICAgICBociA9IHN3YXBDaGFp
bjEtPlF1ZXJ5SW50ZXJmYWNlKF9fdXVpZG9mKElEWEdJU3dhcENoYWluKSwgcmVpbnRlcnByZXRf
Y2FzdDx2b2lkKio+KCZtX3N3YXBDaGFpbikpOwotICAgIFJFTEVBU0VfQVNTRVJUKFNVQ0NFRURF
RChocikpOwotCiAgICAgZmFjdG9yeS0+TWFrZVdpbmRvd0Fzc29jaWF0aW9uKG1fd2luZG93LCAw
KTsKICAgICBjb25maWd1cmVCYWNraW5nU3RvcmUoc2l6ZSk7CiB9CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy93aW4vV2ViVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL3dpbi9XZWJWaWV3LmgJKHJldmlzaW9uIDI0OTg1MCkKKysrIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTg0LDcgKzg0LDgg
QEAgcHVibGljOgogICAgIERyYXdpbmdBcmVhUHJveHkqIGRyYXdpbmdBcmVhKCkgeyByZXR1cm4g
cGFnZSgpID8gcGFnZSgpLT5kcmF3aW5nQXJlYSgpIDogbnVsbHB0cjsgfQogCiAjaWYgVVNFKERJ
UkVDVDJEKQotICAgIElEM0QxMURldmljZTEqIGQzZERldmljZSgpIHsgcmV0dXJuIG1fZDNkRGV2
aWNlLmdldCgpOyB9CisgICAgSUQzRDExRGV2aWNlMSogZDNkRGV2aWNlKCkgY29uc3QgeyByZXR1
cm4gbV9kM2REZXZpY2UuZ2V0KCk7IH0KKyAgICBJRDNEMTFEZXZpY2VDb250ZXh0MSogZDNkSW1t
ZWRpYXRlQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1faW1tZWRpYXRlQ29udGV4dC5nZXQoKTsg
fQogI2VuZGlmCiAKIHByaXZhdGU6CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcAkocmV2aXNpb24gMjQ5
ODUwKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVw
TWVudS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMiw2ICsxMTIsMTIgQEAgdm9pZCBXZWJQb3B1
cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgcgogICAgIHNldFVwUGxhdGZvcm1EYXRhKHBhZ2VD
b29yZGluYXRlcywgcGxhdGZvcm1EYXRhKTsKIAogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
U2hvd1BvcHVwTWVudShwYWdlQ29vcmRpbmF0ZXMsIHN0YXRpY19jYXN0PHVpbnQ2NF90PihtX3Bv
cHVwQ2xpZW50LT5tZW51U3R5bGUoKS50ZXh0RGlyZWN0aW9uKCkpLCBpdGVtcywgaW5kZXgsIHBs
YXRmb3JtRGF0YSksIG1fcGFnZS0+aWRlbnRpZmllcigpKTsKKworI2lmIFVTRShESVJFQ1QyRCkK
KyAgICAvLyBEb24ndCBkZXN0cm95IHRoZSBzaGFyZWQgaGFuZGxlIGluIHRoZSBXZWJDb250ZW50
IHByb2Nlc3MuIEl0IHdpbGwgYmUgZGVzdHJveWVkIGluIHRoZSBVSVByb2Nlc3MuCisgICAgcGxh
dGZvcm1EYXRhLm1fbm90U2VsZWN0ZWRCYWNraW5nU3RvcmUtPmxlYWtTaGFyZWRSZXNvdXJjZSgp
OworICAgIHBsYXRmb3JtRGF0YS5tX3NlbGVjdGVkQmFja2luZ1N0b3JlLT5sZWFrU2hhcmVkUmVz
b3VyY2UoKTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlBvcHVwTWVudTo6aGlkZSgpCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIu
Y3BwCShyZXZpc2lvbiAyNDk4NTApCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9GaW5kQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyOCw2ICszMjgsMTAgQEAg
dm9pZCBGaW5kQ29udHJvbGxlcjo6Z2V0SW1hZ2VGb3JGaW5kTWF0YwogICAgICAgICByZXR1cm47
CiAKICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkR2V0SW1h
Z2VGb3JGaW5kTWF0Y2goaGFuZGxlLCBtYXRjaEluZGV4KSk7CisjaWYgVVNFKERJUkVDVDJEKQor
ICAgIC8vIERvbid0IGRlc3Ryb3kgdGhlIHNoYXJlZCBoYW5kbGUgaW4gdGhlIFdlYkNvbnRlbnQg
cHJvY2Vzcy4gSXQgd2lsbCBiZSBkZXN0cm95ZWQgaW4gdGhlIFVJUHJvY2Vzcy4KKyAgICBzZWxl
Y3Rpb25TbmFwc2hvdC0+bGVha1NoYXJlZFJlc291cmNlKCk7CisjZW5kaWYKIH0KIAogdm9pZCBG
aW5kQ29udHJvbGxlcjo6c2VsZWN0RmluZE1hdGNoKHVpbnQzMl90IG1hdGNoSW5kZXgpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>