<?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>172918</bug_id>
          
          <creation_ts>2017-06-05 06:04:20 -0700</creation_ts>
          <short_desc>[GStreamer] Cleanup ifdefs in MediaPlayerPrivateGStreamerBase</short_desc>
          <delta_ts>2017-06-05 09:26:06 -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>Platform</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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>170003</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>magomez</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1315682</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-05 06:04:20 -0700</bug_when>
    <thetext>The code in MediaPlayerPrivateGStreamerBase is quite difficult to follow with all the ifdefs for the possibilities when rendering. Some of them are even dead code now that all ports using GStreamer are using also coordinated graphics.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315684</commentid>
    <comment_count>1</comment_count>
      <attachid>312008</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-05 06:30:38 -0700</bug_when>
    <thetext>Created attachment 312008
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315692</commentid>
    <comment_count>2</comment_count>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2017-06-05 08:29:29 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #1)
&gt; Created attachment 312008 [details]
&gt; Patch

Looks good to me, and video use cases seem to be working properly.

At last getting rid of that code!! \o/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315704</commentid>
    <comment_count>3</comment_count>
      <attachid>312008</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-06-05 09:20:55 -0700</bug_when>
    <thetext>Comment on attachment 312008
Patch

It&apos;s still a mess, but I see it&apos;s better than before. rs=me based on Miguel&apos;s review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315706</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-06-05 09:21:40 -0700</bug_when>
    <thetext>Also, Calvaris, if you want to review these GStreamer patches, let me know and I&apos;ll leave r+ for you... I&apos;m just assuming you&apos;re busy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315707</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-05 09:26:06 -0700</bug_when>
    <thetext>Committed r217785: &lt;http://trac.webkit.org/changeset/217785&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312008</attachid>
            <date>2017-06-05 06:30:38 -0700</date>
            <delta_ts>2017-06-05 09:20:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk-gst-ifdefs-cleanup.diff</filename>
            <type>text/plain</type>
            <size>17487</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiZWMyNDEzZDUwMi4uNzFjZDZkMGUzYjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxNy0wNi0wNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl0gQ2xlYW51cCBpZmRlZnMgaW4gTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTcyOTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhlIGNvZGUgaW4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
QmFzZSBpcyBxdWl0ZSBkaWZmaWN1bHQgdG8gZm9sbG93IHdpdGggYWxsIHRoZSBpZmRlZnMgZm9y
IHRoZQorICAgICAgICBwb3NzaWJpbGl0aWVzIHdoZW4gcmVuZGVyaW5nLiBTb21lIG9mIHRoZW0g
YXJlIGV2ZW4gZGVhZCBjb2RlIG5vdyB0aGF0IGFsbCBwb3J0cyB1c2luZyBHU3RyZWFtZXIgYXJl
IHVzaW5nIGFsc28KKyAgICAgICAgY29vcmRpbmF0ZWQgZ3JhcGhpY3MuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFz
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
OjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6On5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJh
c2U6OnB1c2hUZXh0dXJlVG9Db21wb3NpdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnJlcGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6dHJpZ2dlclJlcGFpbnQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJC
YXNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dT
dHJlYW1lci5jcHA6CisgICAgICAgIChWaWRlb1JlbmRlclJlcXVlc3RTY2hlZHVsZXI6OlZpZGVv
UmVuZGVyUmVxdWVzdFNjaGVkdWxlcik6CisgICAgICAgIChWaWRlb1JlbmRlclJlcXVlc3RTY2hl
ZHVsZXI6OnN0b3ApOgorICAgICAgICAoVmlkZW9SZW5kZXJSZXF1ZXN0U2NoZWR1bGVyOjpyZXF1
ZXN0UmVuZGVyKToKKyAgICAgICAgKHdlYmtpdFZpZGVvU2lua1JlcXVlc3RSZW5kZXIpOgorCiAy
MDE3LTA2LTA1ICBNaWd1ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CiAKICAgICAgICAg
W0dUS11bV1BFXSBGaXggdGhlIGNvbmRpdGlvbiB0byBkZWNpZGUgd2hldGhlciB0aGUgTWVkaWFQ
bGF5ZXIgY2FuIGJlIHJlbmRlcmVkIGFjY2VsZXJhdGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKaW5kZXggZGYwNmUwNTFjNDkuLmQ1
MWRlMTUwMzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lckJhc2UuY3BwCkBAIC04NywxNCArODcsMTEgQEAKICNpbmNsdWRlICJCaXRtYXBUZXh0
dXJlR0wuaCIKICNpbmNsdWRlICJCaXRtYXBUZXh0dXJlUG9vbC5oIgogI2luY2x1ZGUgIlRleHR1
cmVNYXBwZXJHTC5oIgotI2VuZGlmCi0jaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVB
REVEKQogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyLmgiCi0jZW5k
aWYKLQogI2lmIFVTRShDQUlSTykgJiYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKICNp
bmNsdWRlIDxjYWlyby1nbC5oPgogI2VuZGlmCisjZW5kaWYgLy8gVVNFKFRFWFRVUkVfTUFQUEVS
X0dMKQogCiAjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpIHx8IEVOQUJMRShFTkNS
WVBURURfTUVESUEpCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCkBAIC0xNzYsNyArMTczLDcg
QEAgc3RhdGljIGlubGluZSBUZXh0dXJlTWFwcGVyR0w6OkZsYWdzIHRleE1hcEZsYWdGcm9tT3Jp
ZW50YXRpb24oY29uc3QgSW1hZ2VPcmllbnQKIH0KICNlbmRpZgogCi0jaWYgVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTX1RIUkVBREVEKSAmJiBVU0UoR1NUUkVBTUVSX0dMKQorI2lmIFVTRShHU1RS
RUFNRVJfR0wpCiBjbGFzcyBHc3RWaWRlb0ZyYW1lSG9sZGVyIDogcHVibGljIFRleHR1cmVNYXBw
ZXJQbGF0Zm9ybUxheWVyQnVmZmVyOjpVbm1hbmFnZWRCdWZmZXJEYXRhSG9sZGVyIHsKIHB1Ymxp
YzoKICAgICBleHBsaWNpdCBHc3RWaWRlb0ZyYW1lSG9sZGVyKEdzdFNhbXBsZSogc2FtcGxlLCBU
ZXh0dXJlTWFwcGVyR0w6OkZsYWdzIGZsYWdzKQpAQCAtMjE2LDI1ICsyMTMsMTkgQEAgcHJpdmF0
ZToKICAgICBHTHVpbnQgbV90ZXh0dXJlSUQ7CiAgICAgYm9vbCBtX2lzVmFsaWQgeyBmYWxzZSB9
OwogfTsKLSNlbmRpZiAvLyBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpICYmIFVT
RShHU1RSRUFNRVJfR0wpCisjZW5kaWYgLy8gVVNFKEdTVFJFQU1FUl9HTCkKIAogTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZShN
ZWRpYVBsYXllciogcGxheWVyKQogICAgIDogbV9wbGF5ZXIocGxheWVyKQogICAgICwgbV9mcHNT
aW5rKG51bGxwdHIpCiAgICAgLCBtX3JlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OkhhdmVOb3RoaW5n
KQogICAgICwgbV9uZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6OkVtcHR5KQotI2lmIFVTRShHU1RS
RUFNRVJfR0wpIHx8IFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKyNpZiBVU0Uo
VEVYVFVSRV9NQVBQRVJfR0wpCisgICAgLCBtX3BsYXRmb3JtTGF5ZXJQcm94eShhZG9wdFJlZihu
ZXcgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eSgpKSkKICAgICAsIG1fZHJhd1RpbWVy
KFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6
OnJlcGFpbnQpCiAjZW5kaWYKLSAgICAsIG1fdXNpbmdGYWxsYmFja1ZpZGVvU2luayhmYWxzZSkK
LSNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKLSAgICAsIG1fY2RtU2Vzc2lvbihu
dWxscHRyKQotI2VuZGlmCiB7CiAgICAgZ19tdXRleF9pbml0KCZtX3NhbXBsZU11dGV4KTsKLSNp
ZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCi0gICAgbV9wbGF0Zm9ybUxheWVy
UHJveHkgPSBhZG9wdFJlZihuZXcgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eSgpKTsK
LSNlbmRpZgogfQogCiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp+TWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSgpCkBAIC0yNDQsMTMgKzIzNSwxOCBAQCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJCYXNlOjp+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSgp
CiAjZW5kaWYKICAgICBtX25vdGlmaWVyLmNhbmNlbFBlbmRpbmdOb3RpZmljYXRpb25zKCk7CiAK
LSNpZiBVU0UoR1NUUkVBTUVSX0dMKSB8fCBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFE
RUQpCi0gICAgbV9kcmF3VGltZXIuc3RvcCgpOwotICAgIHsKKyNpZiBVU0UoVEVYVFVSRV9NQVBQ
RVJfR0wpCisjaWYgVVNFKEdTVFJFQU1FUl9HTCkKKyAgICBib29sIHNob3VsZENhbmNlbFJlcGFp
bnQgPSAhbV9yZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkOworI2Vsc2UKKyAgICBib29sIHNob3Vs
ZENhbmNlbFJlcGFpbnQgPSB0cnVlOworI2VuZGlmCisgICAgaWYgKHNob3VsZENhbmNlbFJlcGFp
bnQpIHsKKyAgICAgICAgbV9kcmF3VGltZXIuc3RvcCgpOwogICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX2RyYXdNdXRleCk7CiAgICAgICAgIG1fZHJhd0NvbmRpdGlvbi5ub3RpZnlPbmUoKTsK
ICAgICB9Ci0jZW5kaWYKKyNlbmRpZiAvLyBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiAKICAgICBp
ZiAobV92aWRlb1NpbmspIHsKICAgICAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9t
YXRjaGVkKG1fdmlkZW9TaW5rLmdldCgpLCBHX1NJR05BTF9NQVRDSF9EQVRBLCAwLCAwLCBudWxs
cHRyLCBudWxscHRyLCB0aGlzKTsKQEAgLTI2OSwxMSArMjY1LDYgQEAgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyQmFzZTo6fk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UoKQogICAg
IGlmIChtX3ZvbHVtZUVsZW1lbnQpCiAgICAgICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5l
Y3RfbWF0Y2hlZChtX3ZvbHVtZUVsZW1lbnQuZ2V0KCksIEdfU0lHTkFMX01BVENIX0RBVEEsIDAs
IDAsIG51bGxwdHIsIG51bGxwdHIsIHRoaXMpOwogCi0jaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dM
KSAmJiAhVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQotICAgIGlmIChjbGllbnQoKSkKLSAgICAg
ICAgY2xpZW50KCktPnBsYXRmb3JtTGF5ZXJXaWxsQmVEZXN0cm95ZWQoKTsKLSNlbmRpZgotCiAj
aWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCiAgICAgbV9jZG1TZXNzaW9uID0gbnVs
bHB0cjsKICNlbmRpZgpAQCAtNjgyLDcgKzY3Myw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyQmFzZTo6dXBkYXRlVGV4dHVyZShCaXRtYXBUZXh0dXJlR0wmIHRleHR1cmUsIEdz
CiB9CiAjZW5kaWYKIAotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKyNp
ZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2U6OnB1c2hUZXh0dXJlVG9Db21wb3NpdG9yKCkKIHsKICNpZiAhVVNFKEdTVFJFQU1FUl9H
TCkKQEAgLTc0NiwzMiArNzM3LDI4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
QmFzZTo6cHVzaFRleHR1cmVUb0NvbXBvc2l0b3IoKQogICAgIHVwZGF0ZVRleHR1cmUoYnVmZmVy
LT50ZXh0dXJlR0woKSwgdmlkZW9JbmZvKTsKICAgICBidWZmZXItPnNldEV4dHJhRmxhZ3ModGV4
TWFwRmxhZ0Zyb21PcmllbnRhdGlvbihtX3ZpZGVvU291cmNlT3JpZW50YXRpb24pIHwgKEdTVF9W
SURFT19JTkZPX0hBU19BTFBIQSgmdmlkZW9JbmZvKSA/IFRleHR1cmVNYXBwZXJHTDo6U2hvdWxk
QmxlbmQgOiAwKSk7CiAgICAgbV9wbGF0Zm9ybUxheWVyUHJveHktPnB1c2hOZXh0QnVmZmVyKFdU
Rk1vdmUoYnVmZmVyKSk7Ci0jZW5kaWYKKyNlbmRpZiAvLyBVU0UoR1NUUkVBTUVSX0dMKQogfQot
I2VuZGlmCisjZW5kaWYgLy8gVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogCiB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnJlcGFpbnQoKQogewogICAgIEFTU0VSVChtX3NhbXBs
ZSk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotI2lmIFVTRShURVhUVVJFX01BUFBF
Ul9HTCkgJiYgIVVTRShDT09SRElOQVRFRF9HUkFQSElDUykKLSAgICBpZiAobV9yZW5kZXJpbmdD
YW5CZUFjY2VsZXJhdGVkICYmIGNsaWVudCgpKSB7Ci0gICAgICAgIGNsaWVudCgpLT5zZXRQbGF0
Zm9ybUxheWVyTmVlZHNEaXNwbGF5KCk7CisgICAgbV9wbGF5ZXItPnJlcGFpbnQoKTsKKworI2lm
IFVTRShURVhUVVJFX01BUFBFUl9HTCkKICNpZiBVU0UoR1NUUkVBTUVSX0dMKQorICAgIGJvb2wg
c2hvdWxkTm90aWZ5RHJhdyA9ICFtX3JlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQ7CisjZWxzZQor
ICAgIGJvb2wgc2hvdWxkTm90aWZ5RHJhdyA9IHRydWU7CisjZW5kaWYKKyAgICBpZiAoc2hvdWxk
Tm90aWZ5RHJhdykgewogICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9kcmF3TXV0ZXgpOwogICAg
ICAgICBtX2RyYXdDb25kaXRpb24ubm90aWZ5T25lKCk7Ci0jZW5kaWYKLSAgICAgICAgcmV0dXJu
OwogICAgIH0KLSNlbmRpZgotCi0gICAgbV9wbGF5ZXItPnJlcGFpbnQoKTsKLQotI2lmIFVTRShH
U1RSRUFNRVJfR0wpIHx8IFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKLSAgICBM
b2NrSG9sZGVyIGxvY2sobV9kcmF3TXV0ZXgpOwotICAgIG1fZHJhd0NvbmRpdGlvbi5ub3RpZnlP
bmUoKTsKLSNlbmRpZgorI2VuZGlmIC8vIFVTRShURVhUVVJFX01BUFBFUl9HTCkKIH0KIAogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp0cmlnZ2VyUmVwYWludChHc3RTYW1w
bGUqIHNhbXBsZSkKQEAgLTc4OCw3ICs3NzUsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lckJhc2U6OnRyaWdnZXJSZXBhaW50KEdzdFNhbXBsZSogc2FtcGxlKQogICAgICAgICBt
X25vdGlmaWVyLm5vdGlmeShNYWluVGhyZWFkTm90aWZpY2F0aW9uOjpTaXplQ2hhbmdlZCwgW3Ro
aXNdIHsgbV9wbGF5ZXItPnNpemVDaGFuZ2VkKCk7IH0pOwogICAgIH0KIAotI2lmIFVTRShDT09S
RElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKyNpZiAhVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQor
ICAgIHJlcGFpbnQoKTsKKyNlbHNlCiAgICAgaWYgKCFtX3JlbmRlcmluZ0NhbkJlQWNjZWxlcmF0
ZWQpIHsKICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9kcmF3TXV0ZXgpOwogICAgICAgICBt
X2RyYXdUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKQEAgLTgwNiwyMCArNzk1LDcgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp0cmlnZ2VyUmVwYWludChHc3RTYW1wbGUq
IHNhbXBsZSkKICAgICAgICAgbV9kcmF3Q29uZGl0aW9uLndhaXQobV9kcmF3TXV0ZXgpOwogICAg
IH0KICNlbmRpZgotICAgIHJldHVybjsKLSNlbHNlCi0jaWYgVVNFKEdTVFJFQU1FUl9HTCkKLSAg
ICB7Ci0gICAgICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwotCi0gICAgICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fZHJhd011dGV4KTsKLSAgICAgICAgbV9kcmF3VGltZXIuc3RhcnRPbmVTaG90
KDBfcyk7Ci0gICAgICAgIG1fZHJhd0NvbmRpdGlvbi53YWl0KG1fZHJhd011dGV4KTsKLSAgICB9
Ci0jZWxzZQotICAgIHJlcGFpbnQoKTsKLSNlbmRpZgotI2VuZGlmCisjZW5kaWYgLy8gIVVTRShU
RVhUVVJFX01BUFBFUl9HTCkKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJC
YXNlOjpyZXBhaW50Q2FsbGJhY2soTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSogcGxh
eWVyLCBHc3RTYW1wbGUqIHNhbXBsZSkKQEAgLTg0MSw3ICs4MTcsNyBAQCBHc3RGbG93UmV0dXJu
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6Om5ld1ByZXJvbGxDYWxsYmFjayhHc3RF
bGVtZW50KiBzaQogICAgIHBsYXllci0+dHJpZ2dlclJlcGFpbnQoc2FtcGxlLmdldCgpKTsKICAg
ICByZXR1cm4gR1NUX0ZMT1dfT0s7CiB9Ci0jZW5kaWYKKyNlbmRpZiAvLyBVU0UoR1NUUkVBTUVS
X0dMKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnNldFNpemUoY29u
c3QgSW50U2l6ZSYgc2l6ZSkKIHsKQEAgLTg3Miw1NyArODQ4LDYgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJCYXNlOjpwYWludChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNv
bnN0IEZsb2EKICAgICAgICAgY29udGV4dC5kcmF3SW1hZ2UoKmltYWdlLCByZWN0LCBnc3RJbWFn
ZS0+cmVjdCgpLCBwYWludGluZ09wdGlvbnMpOwogfQogCi0jaWYgVVNFKFRFWFRVUkVfTUFQUEVS
X0dMKSAmJiAhVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQotdm9pZCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlOjpwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyJiB0ZXh0
dXJlTWFwcGVyLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0
aW9uTWF0cml4JiBtYXRyaXgsIGZsb2F0IG9wYWNpdHkpCi17Ci0gICAgaWYgKCFtX3BsYXllci0+
dmlzaWJsZSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAobV91c2luZ0ZhbGxiYWNrVmlk
ZW9TaW5rKSB7Ci0gICAgICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiB0ZXh0dXJlOwotICAgICAg
ICBJbnRTaXplIHNpemU7Ci0gICAgICAgIFRleHR1cmVNYXBwZXJHTDo6RmxhZ3MgZmxhZ3M7Ci0g
ICAgICAgIHsKLSAgICAgICAgICAgIFdURjo6R011dGV4TG9ja2VyPEdNdXRleD4gbG9jayhtX3Nh
bXBsZU11dGV4KTsKLQotICAgICAgICAgICAgR3N0VmlkZW9JbmZvIHZpZGVvSW5mbzsKLSAgICAg
ICAgICAgIGlmIChVTkxJS0VMWSghZ2V0U2FtcGxlVmlkZW9JbmZvKG1fc2FtcGxlLmdldCgpLCB2
aWRlb0luZm8pKSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIHNpemUg
PSBJbnRTaXplKEdTVF9WSURFT19JTkZPX1dJRFRIKCZ2aWRlb0luZm8pLCBHU1RfVklERU9fSU5G
T19IRUlHSFQoJnZpZGVvSW5mbykpOwotICAgICAgICAgICAgZmxhZ3MgPSB0ZXhNYXBGbGFnRnJv
bU9yaWVudGF0aW9uKG1fdmlkZW9Tb3VyY2VPcmllbnRhdGlvbikgfCAoR1NUX1ZJREVPX0lORk9f
SEFTX0FMUEhBKCZ2aWRlb0luZm8pID8gVGV4dHVyZU1hcHBlckdMOjpTaG91bGRCbGVuZCA6IDAp
OwotICAgICAgICAgICAgdGV4dHVyZSA9IHRleHR1cmVNYXBwZXIuYWNxdWlyZVRleHR1cmVGcm9t
UG9vbChzaXplLCBHU1RfVklERU9fSU5GT19IQVNfQUxQSEEoJnZpZGVvSW5mbykgPyBCaXRtYXBU
ZXh0dXJlOjpTdXBwb3J0c0FscGhhIDogQml0bWFwVGV4dHVyZTo6Tm9GbGFnKTsKLSAgICAgICAg
ICAgIHVwZGF0ZVRleHR1cmUoc3RhdGljX2Nhc3Q8Qml0bWFwVGV4dHVyZUdMJj4oKnRleHR1cmUp
LCB2aWRlb0luZm8pOwotICAgICAgICB9Ci0gICAgICAgIFRleHR1cmVNYXBwZXJHTCYgdGV4bWFw
R0wgPSByZWludGVycHJldF9jYXN0PFRleHR1cmVNYXBwZXJHTCY+KHRleHR1cmVNYXBwZXIpOwot
ICAgICAgICBCaXRtYXBUZXh0dXJlR0wqIHRleHR1cmVHTCA9IHN0YXRpY19jYXN0PEJpdG1hcFRl
eHR1cmVHTCo+KHRleHR1cmUuZ2V0KCkpOwotICAgICAgICB0ZXhtYXBHTC5kcmF3VGV4dHVyZSh0
ZXh0dXJlR0wtPmlkKCksIGZsYWdzLCB0ZXh0dXJlR0wtPnNpemUoKSwgdGFyZ2V0UmVjdCwgbWF0
cml4LCBvcGFjaXR5KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotI2lmIFVTRShHU1RSRUFN
RVJfR0wpCi0gICAgV1RGOjpHTXV0ZXhMb2NrZXI8R011dGV4PiBsb2NrKG1fc2FtcGxlTXV0ZXgp
OwotCi0gICAgR3N0VmlkZW9JbmZvIHZpZGVvSW5mbzsKLSAgICBpZiAoIWdldFNhbXBsZVZpZGVv
SW5mbyhtX3NhbXBsZS5nZXQoKSwgdmlkZW9JbmZvKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
R3N0QnVmZmVyKiBidWZmZXIgPSBnc3Rfc2FtcGxlX2dldF9idWZmZXIobV9zYW1wbGUuZ2V0KCkp
OwotICAgIEdzdFZpZGVvRnJhbWUgdmlkZW9GcmFtZTsKLSAgICBpZiAoIWdzdF92aWRlb19mcmFt
ZV9tYXAoJnZpZGVvRnJhbWUsICZ2aWRlb0luZm8sIGJ1ZmZlciwgc3RhdGljX2Nhc3Q8R3N0TWFw
RmxhZ3M+KEdTVF9NQVBfUkVBRCB8IEdTVF9NQVBfR0wpKSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgdW5zaWduZWQgdGV4dHVyZUlEID0gKnJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPih2aWRl
b0ZyYW1lLmRhdGFbMF0pOwotICAgIFRleHR1cmVNYXBwZXJHTDo6RmxhZ3MgZmxhZ3MgPSB0ZXhN
YXBGbGFnRnJvbU9yaWVudGF0aW9uKG1fdmlkZW9Tb3VyY2VPcmllbnRhdGlvbikgfCAoR1NUX1ZJ
REVPX0lORk9fSEFTX0FMUEhBKCZ2aWRlb0luZm8pID8gVGV4dHVyZU1hcHBlckdMOjpTaG91bGRC
bGVuZCA6IDApOwotCi0gICAgSW50U2l6ZSBzaXplID0gSW50U2l6ZShHU1RfVklERU9fSU5GT19X
SURUSCgmdmlkZW9JbmZvKSwgR1NUX1ZJREVPX0lORk9fSEVJR0hUKCZ2aWRlb0luZm8pKTsKLSAg
ICBUZXh0dXJlTWFwcGVyR0wmIHRleHR1cmVNYXBwZXJHTCA9IHJlaW50ZXJwcmV0X2Nhc3Q8VGV4
dHVyZU1hcHBlckdMJj4odGV4dHVyZU1hcHBlcik7Ci0gICAgdGV4dHVyZU1hcHBlckdMLmRyYXdU
ZXh0dXJlKHRleHR1cmVJRCwgZmxhZ3MsIHNpemUsIHRhcmdldFJlY3QsIG1hdHJpeCwgb3BhY2l0
eSk7Ci0gICAgZ3N0X3ZpZGVvX2ZyYW1lX3VubWFwKCZ2aWRlb0ZyYW1lKTsKLSNlbmRpZgotfQot
I2VuZGlmCi0KICNpZiBVU0UoR1NUUkVBTUVSX0dMKQogYm9vbCBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJCYXNlOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3ND
b250ZXh0M0QqIGNvbnRleHQsIFBsYXRmb3JtM0RPYmplY3Qgb3V0cHV0VGV4dHVyZSwgR0MzRGVu
dW0gb3V0cHV0VGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbEZvcm1hdCwg
R0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJv
b2wgZmxpcFkpCiB7CkBAIC0xMDkzLDcgKzEwMTgsNyBAQCBHc3RFbGVtZW50KiBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJCYXNlOjpjcmVhdGVWaWRlb1NpbmtHTCgpCiAgICAgfQogICAgIHJl
dHVybiB2aWRlb1Npbms7CiB9Ci0jZW5kaWYKKyNlbmRpZiAvLyBVU0UoR1NUUkVBTUVSX0dMKQog
CiBHc3RFbGVtZW50KiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpjcmVhdGVWaWRl
b1NpbmsoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJCYXNlLmgKaW5kZXggODk5MmY0MzUyMDYuLmI2MDY1OGRkYjk3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgKQEAgLTU4LDcgKzU4LDcg
QEAgY2xhc3MgVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyOwogdm9pZCByZWdpc3RlcldlYktp
dEdTdHJlYW1lckVsZW1lbnRzKCk7CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2UgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlCi0jaWYgVVNFKENPT1JE
SU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKSB8fCAoVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSAmJiAh
VVNFKENPT1JESU5BVEVEX0dSQVBISUNTKSkKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiAg
ICAgLCBwdWJsaWMgUGxhdGZvcm1MYXllcgogI2VuZGlmCiB7CkBAIC0xMDcsNyArMTA3LDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBhY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpIG92
ZXJyaWRlOwogCi0jaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSAmJiAhVVNFKENPT1JESU5BVEVE
X0dSQVBISUNTKQorI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKICAgICBQbGF0Zm9ybUxheWVy
KiBwbGF0Zm9ybUxheWVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gY29uc3RfY2FzdDxNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlKj4odGhpcyk7IH0KICNpZiBQTEFURk9STShXSU5f
Q0FJUk8pCiAgICAgLy8gRklYTUU6IEFjY2VsZXJhdGVkIHJlbmRlcmluZyBoYXMgbm90IGJlZW4g
aW1wbGVtZW50ZWQgZm9yIFdpbkNhaXJvIHlldC4KQEAgLTExNSwxMiArMTE1LDYgQEAgcHVibGlj
OgogI2Vsc2UKICAgICBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAjZW5kaWYKLSAgICB2b2lkIHBhaW50VG9UZXh0dXJl
TWFwcGVyKFRleHR1cmVNYXBwZXImLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYsIGZsb2F0KSBvdmVycmlkZTsKLSNlbmRpZgotCi0jaWYgVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTX1RIUkVBREVEKQotICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBjb25zdF9jYXN0PE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lckJhc2UqPih0aGlzKTsgfQotICAgIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRl
cmluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICNlbmRpZgogCiAjaWYgRU5B
QkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCkBAIC0xNTgsNiArMTUyLDEzIEBAIHByb3RlY3Rl
ZDoKICAgICBHc3RHTERpc3BsYXkqIGdzdEdMRGlzcGxheSgpIGNvbnN0IHsgcmV0dXJuIG1fZ2xE
aXNwbGF5LmdldCgpOyB9CiAjZW5kaWYKIAorI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKKyAg
ICB2b2lkIHVwZGF0ZVRleHR1cmUoQml0bWFwVGV4dHVyZUdMJiwgR3N0VmlkZW9JbmZvJik7Cisg
ICAgUmVmUHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk+IHByb3h5KCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9wbGF0Zm9ybUxheWVyUHJveHkuY29weVJlZigpOyB9CisgICAg
dm9pZCBzd2FwQnVmZmVyc0lmTmVlZGVkKCkgb3ZlcnJpZGUgeyB9OworICAgIHZvaWQgcHVzaFRl
eHR1cmVUb0NvbXBvc2l0b3IoKTsKKyNlbmRpZgorCiAgICAgR3N0RWxlbWVudCogdmlkZW9TaW5r
KCkgY29uc3QgeyByZXR1cm4gbV92aWRlb1NpbmsuZ2V0KCk7IH0KIAogICAgIHZvaWQgc2V0U3Ry
ZWFtVm9sdW1lRWxlbWVudChHc3RTdHJlYW1Wb2x1bWUqKTsKQEAgLTIwMCw0NSArMjAxLDM0IEBA
IHByb3RlY3RlZDoKICAgICBJbnRTaXplIG1fc2l6ZTsKICAgICBtdXRhYmxlIEdNdXRleCBtX3Nh
bXBsZU11dGV4OwogICAgIEdSZWZQdHI8R3N0U2FtcGxlPiBtX3NhbXBsZTsKLSNpZiBVU0UoR1NU
UkVBTUVSX0dMKSB8fCBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCi0gICAgUnVu
TG9vcDo6VGltZXI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZT4gbV9kcmF3VGltZXI7
Ci0jZW5kaWYKKwogICAgIG11dGFibGUgRmxvYXRTaXplIG1fdmlkZW9TaXplOwotICAgIGJvb2wg
bV91c2luZ0ZhbGxiYWNrVmlkZW9TaW5rOworICAgIGJvb2wgbV91c2luZ0ZhbGxiYWNrVmlkZW9T
aW5rIHsgZmFsc2UgfTsKICAgICBib29sIG1fcmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZCB7IGZh
bHNlIH07CisKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCi0gICAgdm9pZCB1cGRhdGVUZXh0
dXJlKEJpdG1hcFRleHR1cmVHTCYsIEdzdFZpZGVvSW5mbyYpOworICAgIFJlZlB0cjxHcmFwaGlj
c0NvbnRleHQzRD4gbV9jb250ZXh0M0Q7CisgICAgUmVmUHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9y
bUxheWVyUHJveHk+IG1fcGxhdGZvcm1MYXllclByb3h5OworICAgIENvbmRpdGlvbiBtX2RyYXdD
b25kaXRpb247CisgICAgTG9jayBtX2RyYXdNdXRleDsKKyAgICBSdW5Mb29wOjpUaW1lcjxNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlPiBtX2RyYXdUaW1lcjsKICNlbmRpZgorCiAjaWYg
VVNFKEdTVFJFQU1FUl9HTCkKICAgICBHUmVmUHRyPEdzdEdMQ29udGV4dD4gbV9nbENvbnRleHQ7
CiAgICAgR1JlZlB0cjxHc3RHTERpc3BsYXk+IG1fZ2xEaXNwbGF5OwotI2VuZGlmCi0KLSNpZiBV
U0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCi0gICAgUmVmUHRyPFRleHR1cmVNYXBw
ZXJQbGF0Zm9ybUxheWVyUHJveHk+IHByb3h5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9w
bGF0Zm9ybUxheWVyUHJveHkuY29weVJlZigpOyB9Ci0gICAgdm9pZCBzd2FwQnVmZmVyc0lmTmVl
ZGVkKCkgb3ZlcnJpZGUgeyB9OwotICAgIHZvaWQgcHVzaFRleHR1cmVUb0NvbXBvc2l0b3IoKTsK
LSAgICBSZWZQdHI8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eT4gbV9wbGF0Zm9ybUxh
eWVyUHJveHk7Ci0jZW5kaWYKLQotI2lmIFVTRShHU1RSRUFNRVJfR0wpIHx8IFVTRShDT09SRElO
QVRFRF9HUkFQSElDU19USFJFQURFRCkKLSAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IG1f
Y29udGV4dDNEOwotICAgIENvbmRpdGlvbiBtX2RyYXdDb25kaXRpb247Ci0gICAgTG9jayBtX2Ry
YXdNdXRleDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVy
PiBtX3ZpZGVvVGV4dHVyZUNvcGllcjsKICNlbmRpZgogCiAgICAgSW1hZ2VPcmllbnRhdGlvbiBt
X3ZpZGVvU291cmNlT3JpZW50YXRpb247CiAjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVE
SUEpCiAgICAgc3RkOjp1bmlxdWVfcHRyPENETVNlc3Npb24+IGNyZWF0ZVNlc3Npb24oY29uc3Qg
U3RyaW5nJiwgQ0RNU2Vzc2lvbkNsaWVudCopIG92ZXJyaWRlOwotICAgIENETVNlc3Npb24qIG1f
Y2RtU2Vzc2lvbjsKKyAgICBDRE1TZXNzaW9uKiBtX2NkbVNlc3Npb24geyBudWxscHRyIH07CiAg
ICAgTG9jayBtX3Byb3RlY3Rpb25NdXRleDsKICAgICBDb25kaXRpb24gbV9wcm90ZWN0aW9uQ29u
ZGl0aW9uOwogICAgIFN0cmluZyBtX2xhc3RHZW5lcmF0ZUtleVJlcXVlc3RLZXlTeXN0ZW1VdWlk
OwogICAgIEhhc2hTZXQ8dWludDMyX3Q+IG1faGFuZGxlZFByb3RlY3Rpb25FdmVudHM7CiAjZW5k
aWYKLSNpZiBVU0UoR1NUUkVBTUVSX0dMKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb1RleHR1
cmVDb3BpZXJHU3RyZWFtZXI+IG1fdmlkZW9UZXh0dXJlQ29waWVyOwotI2VuZGlmCiB9OwogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
VmlkZW9TaW5rR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCmluZGV4IDlkOGY5MzM5NThjLi44MzQx
NTlmZTRiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKQEAgLTY5LDcgKzY5
LDcgQEAgc3RhdGljIEdSZWZQdHI8R3N0U2FtcGxlPiB3ZWJraXRWaWRlb1NpbmtSZXF1ZXN0UmVu
ZGVyKFdlYktpdFZpZGVvU2luayosIEdzdEJ1ZmYKIGNsYXNzIFZpZGVvUmVuZGVyUmVxdWVzdFNj
aGVkdWxlciB7CiBwdWJsaWM6CiAgICAgVmlkZW9SZW5kZXJSZXF1ZXN0U2NoZWR1bGVyKCkKLSNp
ZiAhVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQorI2lmICFVU0UoVEVYVFVSRV9N
QVBQRVJfR0wpCiAgICAgICAgIDogbV90aW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZWaWRl
b1JlbmRlclJlcXVlc3RTY2hlZHVsZXI6OnJlbmRlcikKICNlbmRpZgogICAgIHsKQEAgLTg2LDcg
Kzg2LDcgQEAgcHVibGljOgogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NhbXBsZU11dGV4
KTsKICAgICAgICAgbV9zYW1wbGUgPSBudWxscHRyOwogICAgICAgICBtX3VubG9ja2VkID0gdHJ1
ZTsKLSNpZiAhVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQorI2lmICFVU0UoVEVY
VFVSRV9NQVBQRVJfR0wpCiAgICAgICAgIG1fdGltZXIuc3RvcCgpOwogICAgICAgICBtX2RhdGFD
b25kaXRpb24ubm90aWZ5T25lKCk7CiAjZW5kaWYKQEAgLTEwOCw3ICsxMDgsNyBAQCBwdWJsaWM6
CiAgICAgICAgIGlmICghbV9zYW1wbGUpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSNp
ZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisjaWYgVVNFKFRFWFRVUkVfTUFQ
UEVSX0dMKQogICAgICAgICBhdXRvIHNhbXBsZSA9IFdURk1vdmUobV9zYW1wbGUpOwogICAgICAg
ICBsb2NrZXIudW5sb2NrRWFybHkoKTsKICAgICAgICAgaWYgKExJS0VMWShHU1RfSVNfU0FNUExF
KHNhbXBsZS5nZXQoKSkpKQpAQCAtMTIzLDcgKzEyMyw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToK
IAotI2lmICFVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisjaWYgIVVTRShURVhU
VVJFX01BUFBFUl9HTCkKICAgICB2b2lkIHJlbmRlcigpCiAgICAgewogICAgICAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX3NhbXBsZU11dGV4KTsKQEAgLTEzOCw3ICsxMzgsNyBAQCBwcml2YXRlOgog
ICAgIExvY2sgbV9zYW1wbGVNdXRleDsKICAgICBHUmVmUHRyPEdzdFNhbXBsZT4gbV9zYW1wbGU7
CiAKLSNpZiAhVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQorI2lmICFVU0UoVEVY
VFVSRV9NQVBQRVJfR0wpCiAgICAgUnVuTG9vcDo6VGltZXI8VmlkZW9SZW5kZXJSZXF1ZXN0U2No
ZWR1bGVyPiBtX3RpbWVyOwogICAgIENvbmRpdGlvbiBtX2RhdGFDb25kaXRpb247CiAgICAgR1Jl
ZlB0cjxXZWJLaXRWaWRlb1Npbms+IG1fc2luazsKQEAgLTE5OCw3ICsxOTgsNiBAQCBzdGF0aWMg
R1JlZlB0cjxHc3RTYW1wbGU+IHdlYmtpdFZpZGVvU2lua1JlcXVlc3RSZW5kZXIoV2ViS2l0Vmlk
ZW9TaW5rKiBzaW5rLCBHcwogICAgIGlmIChmb3JtYXQgPT0gR1NUX1ZJREVPX0ZPUk1BVF9VTktO
T1dOKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotI2lmICEoVVNFKFRFWFRVUkVfTUFQUEVS
X0dMKSAmJiAhVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKSkKICAgICAvLyBDYWlybydzIEFSR0Ig
aGFzIHByZS1tdWx0aXBsaWVkIGFscGhhIHdoaWxlIEdTdHJlYW1lcidzIGRvZXNuJ3QuCiAgICAg
Ly8gSGVyZSB3ZSBjb252ZXJ0IHRvIENhaXJvJ3MgQVJHQi4KICAgICBpZiAoZm9ybWF0ID09IEdT
VF9WSURFT19GT1JNQVRfQVJHQiB8fCBmb3JtYXQgPT0gR1NUX1ZJREVPX0ZPUk1BVF9CR1JBKSB7
CkBAIC0yNTgsNyArMjU3LDYgQEAgc3RhdGljIEdSZWZQdHI8R3N0U2FtcGxlPiB3ZWJraXRWaWRl
b1NpbmtSZXF1ZXN0UmVuZGVyKFdlYktpdFZpZGVvU2luayogc2luaywgR3MKICAgICAgICAgc2Ft
cGxlID0gYWRvcHRHUmVmKGdzdF9zYW1wbGVfbmV3KG5ld0J1ZmZlciwgcHJpdi0+Y3VycmVudENh
cHMsIG51bGxwdHIsIG51bGxwdHIpKTsKICAgICAgICAgZ3N0X2J1ZmZlcl91bnJlZihuZXdCdWZm
ZXIpOwogICAgIH0KLSNlbmRpZgogCiAgICAgcmV0dXJuIHNhbXBsZTsKIH0K
</data>
<flag name="review"
          id="332940"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>