<?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>147388</bug_id>
          
          <creation_ts>2015-07-28 17:13:59 -0700</creation_ts>
          <short_desc>Remove LegacyCACFLayerTreeHost</short_desc>
          <delta_ts>2016-03-21 12:09:52 -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>WebCore Misc.</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1112947</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-07-28 17:13:59 -0700</bug_when>
    <thetext>It&apos;s old, unneeded, and poorly tested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112956</commentid>
    <comment_count>1</comment_count>
      <attachid>257709</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-07-28 17:19:33 -0700</bug_when>
    <thetext>Created attachment 257709
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112958</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-07-28 17:21:09 -0700</bug_when>
    <thetext>It&apos;s also the only thing that requires the June 2010 DirectX SDK as opposed to the one that comes with VS2012.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113410</commentid>
    <comment_count>3</comment_count>
      <attachid>257709</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-07-30 11:05:33 -0700</bug_when>
    <thetext>Comment on attachment 257709
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115027</commentid>
    <comment_count>4</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-08-05 09:25:39 -0700</bug_when>
    <thetext>*** Bug 146459 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176804</commentid>
    <comment_count>5</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-03-21 12:09:52 -0700</bug_when>
    <thetext>Committed in r187602. &lt;http://trac.webkit.org/changeset/187602&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257709</attachid>
            <date>2015-07-28 17:19:33 -0700</date>
            <delta_ts>2015-07-30 11:05:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147388-20150728171812.patch</filename>
            <type>text/plain</type>
            <size>21496</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NzUyOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA3LTI4ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIExl
Z2FjeUNBQ0ZMYXllclRyZWVIb3N0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDczODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAg
ICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9DQUNGTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDQUNGTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jYS93aW4vTGVnYWN5Q0FDRkxheWVyVHJlZUhvc3QuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9MZWdhY3lDQUNGTGF5ZXJUcmVlSG9zdC5o
OiBSZW1vdmVkLgorCiAyMDE1LTA3LTI4ICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9A
aWdhbGlhLmNvbT4KIAogICAgICAgICBbRnJlZXR5cGVdIEFsd2F5cyBhbGxvdyBmb250IG1hdGNo
aW5nIGZvciBzdHJvbmcgYWxpYXNlcwpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCShyZXZpc2lvbiAxODc1MjcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC04
NzQ1LDEyICs4NzQ1LDYgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xjYVx3aW5cTGVnYWN5Q0FDRkxheWVy
VHJlZUhvc3QuY3BwIj4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xjYVx3aW5cUGxhdGZvcm1DQUFu
aW1hdGlvbldpbi5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMjA0OTksNyArMjA0OTMsNiBAQAogICAgIDxDdXN0
b21CdWlsZFN0ZXAgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Fcd2luXENBQ0ZMYXll
clRyZWVIb3N0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFw
aGljc1xjYVx3aW5cQ0FDRkxheWVyVHJlZUhvc3RDbGllbnQuaCIgLz4KICAgICA8Q3VzdG9tQnVp
bGRTdGVwIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGNhXHdpblxMYXllckNoYW5nZXNG
bHVzaGVyLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGlj
c1xjYVx3aW5cTGVnYWN5Q0FDRkxheWVyVHJlZUhvc3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGNhXHdpblxQbGF0Zm9ybUNBTGF5ZXJXaW5JbnRl
cm5hbC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3Nc
Y2Fcd2luXFdLQ0FDRlZpZXdMYXllclRyZWVIb3N0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xhdmZvdW5kYXRpb25cTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uLmgiIC8+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCShyZXZpc2lvbiAxODc1MjcpCisr
KyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMJ
KHdvcmtpbmcgY29weSkKQEAgLTE3MjUsOSArMTcyNSw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xjYVx3aW5cTGF5ZXJDaGFuZ2VzRmx1c2hlci5jcHAi
PgogICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFwaGljc1xjYVx3aW48L0ZpbHRlcj4KICAgICA8
L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNz
XGNhXHdpblxMZWdhY3lDQUNGTGF5ZXJUcmVlSG9zdC5jcHAiPgotICAgICAgPEZpbHRlcj5wbGF0
Zm9ybVxncmFwaGljc1xjYVx3aW48L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGNhXHdpblxQbGF0Zm9ybUNBQW5p
bWF0aW9uV2luLmNwcCI+CiAgICAgICA8RmlsdGVyPnBsYXRmb3JtXGdyYXBoaWNzXGNhXHdpbjwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtODcyOSw5ICs4NzI2LDYgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGNhXHdpblxDQUNGTGF5ZXJUcmVl
SG9zdENsaWVudC5oIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3NcY2Fcd2luPC9G
aWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0
Zm9ybVxncmFwaGljc1xjYVx3aW5cTGVnYWN5Q0FDRkxheWVyVHJlZUhvc3QuaCI+Ci0gICAgICA8
RmlsdGVyPnBsYXRmb3JtXGdyYXBoaWNzXGNhXHdpbjwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRl
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Fcd2luXFBs
YXRmb3JtQ0FMYXllcldpbkludGVybmFsLmgiPgogICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFw
aGljc1xjYVx3aW48L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9DQUNGTGF5ZXJUcmVlSG9zdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0NBQ0ZMYXll
clRyZWVIb3N0LmNwcAkocmV2aXNpb24gMTg3NTI3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Evd2luL0NBQ0ZMYXllclRyZWVIb3N0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIkNBQ0ZMYXllclRyZWVIb3N0Q2xpZW50LmgiCiAj
aW5jbHVkZSAiRGVmV25kUHJvY1dpbmRvd0NsYXNzLmgiCiAjaW5jbHVkZSAiTGF5ZXJDaGFuZ2Vz
Rmx1c2hlci5oIgotI2luY2x1ZGUgIkxlZ2FjeUNBQ0ZMYXllclRyZWVIb3N0LmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1DQUxheWVyV2luLmgiCiAjaW5jbHVkZSAiV0tDQUNGVmlld0xheWVyVHJlZUhv
c3QuaCIKICNpbmNsdWRlICJXZWJDb3JlSW5zdGFuY2VIYW5kbGUuaCIKQEAgLTExMyw4ICsxMTIs
NiBAQCBQYXNzUmVmUHRyPENBQ0ZMYXllclRyZWVIb3N0PiBDQUNGTGF5ZXJUCiAgICAgaWYgKCFh
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiAwOwogICAg
IFJlZlB0cjxDQUNGTGF5ZXJUcmVlSG9zdD4gaG9zdCA9IFdLQ0FDRlZpZXdMYXllclRyZWVIb3N0
OjpjcmVhdGUoKTsKLSAgICBpZiAoIWhvc3QpCi0gICAgICAgIGhvc3QgPSBMZWdhY3lDQUNGTGF5
ZXJUcmVlSG9zdDo6Y3JlYXRlKCk7CiAgICAgaG9zdC0+aW5pdGlhbGl6ZSgpOwogICAgIHJldHVy
biBob3N0LnJlbGVhc2UoKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL3dpbi9MZWdhY3lDQUNGTGF5ZXJUcmVlSG9zdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0xlZ2FjeUNBQ0ZMYXllclRyZWVI
b3N0LmNwcAkocmV2aXNpb24gMTg3NTI3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Evd2luL0xlZ2FjeUNBQ0ZMYXllclRyZWVIb3N0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMSwzOTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJMZWdhY3lDQUNGTGF5ZXJUcmVl
SG9zdC5oIgotCi0jaW5jbHVkZSAiUGxhdGZvcm1DQUxheWVyLmgiCi0jaW5jbHVkZSA8UXVhcnR6
Q29yZS9DQUJhc2UuaD4KLSNpbmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lz
dGVtSW50ZXJmYWNlLmg+Ci0KLSNpZm5kZWYgTkRFQlVHCi0jZGVmaW5lIEQzRF9ERUJVR19JTkZP
Ci0jZW5kaWYKLQotI2luY2x1ZGUgPGQzZDkuaD4KLSNpbmNsdWRlIDxkM2R4OS5oPgotCi0jcHJh
Z21hIGNvbW1lbnQobGliLCAiZDNkOSIpCi0jcHJhZ21hIGNvbW1lbnQobGliLCAiZDNkeDkiKQot
Ci11c2luZyBuYW1lc3BhY2Ugc3RkOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0YXRpYyBJ
RGlyZWN0M0Q5KiBzX2QzZCA9IDA7Ci1zdGF0aWMgSURpcmVjdDNEOSogZDNkKCkKLXsKLSAgICBp
ZiAoc19kM2QpCi0gICAgICAgIHJldHVybiBzX2QzZDsKLQotICAgIGlmICghTG9hZExpYnJhcnko
VEVYVCgiZDNkOS5kbGwiKSkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgc19kM2QgPSBEaXJl
Y3QzRENyZWF0ZTkoRDNEX1NES19WRVJTSU9OKTsKLQotICAgIHJldHVybiBzX2QzZDsKLX0KLQot
c3RhdGljIEQzRFBSRVNFTlRfUEFSQU1FVEVSUyBpbml0aWFsUHJlc2VudGF0aW9uUGFyYW1ldGVy
cygpCi17Ci0gICAgRDNEUFJFU0VOVF9QQVJBTUVURVJTIHBhcmFtZXRlcnMgPSB7MH07Ci0gICAg
cGFyYW1ldGVycy5XaW5kb3dlZCA9IFRSVUU7Ci0gICAgcGFyYW1ldGVycy5Td2FwRWZmZWN0ID0g
RDNEU1dBUEVGRkVDVF9DT1BZOwotICAgIHBhcmFtZXRlcnMuQmFja0J1ZmZlckNvdW50ID0gMTsK
LSAgICBwYXJhbWV0ZXJzLkJhY2tCdWZmZXJGb3JtYXQgPSBEM0RGTVRfQThSOEc4Qjg7Ci0gICAg
cGFyYW1ldGVycy5NdWx0aVNhbXBsZVR5cGUgPSBEM0RNVUxUSVNBTVBMRV9OT05FOwotCi0gICAg
cmV0dXJuIHBhcmFtZXRlcnM7Ci19Ci0KLS8vIEZJWE1FOiA8cmRhcjovLzY1MDc4NTE+IFNoYXJl
IHRoaXMgY29kZSB3aXRoIENvcmVBbmltYXRpb24uCi1zdGF0aWMgYm9vbCBoYXJkd2FyZUNhcGFi
aWxpdGllc0luZGljYXRlQ29yZUFuaW1hdGlvblN1cHBvcnQoY29uc3QgRDNEQ0FQUzkmIGNhcHMp
Ci17Ci0gICAgLy8gQ29yZUFuaW1hdGlvbiBuZWVkcyB0d28gb3IgbW9yZSB0ZXh0dXJlIHVuaXRz
LgotICAgIGlmIChjYXBzLk1heFRleHR1cmVCbGVuZFN0YWdlcyA8IDIpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgIC8vIENvcmVBbmltYXRpb24gbmVlZHMgbm9uLXBvd2VyLW9mLXR3byB0
ZXh0dXJlcy4KLSAgICBpZiAoKGNhcHMuVGV4dHVyZUNhcHMgJiBEM0RQVEVYVFVSRUNBUFNfUE9X
MikgJiYgIShjYXBzLlRleHR1cmVDYXBzICYgRDNEUFRFWFRVUkVDQVBTX05PTlBPVzJDT05ESVRJ
T05BTCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIC8vIENvcmVBbmltYXRpb24gbmVl
ZHMgdmVydGV4IHNoYWRlciAyLjAgb3IgZ3JlYXRlci4KLSAgICBpZiAoRDNEU0hBREVSX1ZFUlNJ
T05fTUFKT1IoY2Fwcy5WZXJ0ZXhTaGFkZXJWZXJzaW9uKSA8IDIpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLQotICAgIC8vIENvcmVBbmltYXRpb24gbmVlZHMgcGl4ZWwgc2hhZGVyIDIuMCBvciBn
cmVhdGVyLgotICAgIGlmIChEM0RTSEFERVJfVkVSU0lPTl9NQUpPUihjYXBzLlBpeGVsU2hhZGVy
VmVyc2lvbikgPCAyKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gdHJ1ZTsK
LX0KLQotUGFzc1JlZlB0cjxMZWdhY3lDQUNGTGF5ZXJUcmVlSG9zdD4gTGVnYWN5Q0FDRkxheWVy
VHJlZUhvc3Q6OmNyZWF0ZSgpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBMZWdhY3lDQUNG
TGF5ZXJUcmVlSG9zdCk7Ci19Ci0KLUxlZ2FjeUNBQ0ZMYXllclRyZWVIb3N0OjpMZWdhY3lDQUNG
TGF5ZXJUcmVlSG9zdCgpCi0gICAgOiBtX3JlbmRlclRpbWVyKCp0aGlzLCAmTGVnYWN5Q0FDRkxh
eWVyVHJlZUhvc3Q6OnJlbmRlclRpbWVyRmlyZWQpCi0gICAgLCBtX2NvbnRleHQod2tDQUNGQ29u
dGV4dENyZWF0ZSgpKQotICAgICwgbV9taWdodEJlQWJsZVRvQ3JlYXRlRGV2aWNlTGF0ZXIodHJ1
ZSkKLSAgICAsIG1fbXVzdFJlc2V0TG9zdERldmljZUJlZm9yZVJlbmRlcmluZyhmYWxzZSkKLXsK
LSNpZm5kZWYgTkRFQlVHCi0gICAgY2hhciogcHJpbnRUcmVlRmxhZyA9IGdldGVudigiQ0FfUFJJ
TlRfVFJFRSIpOwotICAgIG1fcHJpbnRUcmVlID0gcHJpbnRUcmVlRmxhZyAmJiBhdG9pKHByaW50
VHJlZUZsYWcpOwotI2VuZGlmCi19Ci0KLUxlZ2FjeUNBQ0ZMYXllclRyZWVIb3N0Ojp+TGVnYWN5
Q0FDRkxheWVyVHJlZUhvc3QoKQotewotICAgIHdrQ0FDRkNvbnRleHREZXN0cm95KG1fY29udGV4
dCk7Ci19Ci0KLXZvaWQgTGVnYWN5Q0FDRkxheWVyVHJlZUhvc3Q6OmluaXRpYWxpemVDb250ZXh0
KHZvaWQqIHVzZXJEYXRhLCBQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyKQotewotICAgIHdrQ0FDRkNv
bnRleHRTZXRVc2VyRGF0YShtX2NvbnRleHQsIHVzZXJEYXRhKTsKLSAgICB3a0NBQ0ZDb250ZXh0
U2V0TGF5ZXIobV9jb250ZXh0LCBsYXllci0+cGxhdGZvcm1MYXllcigpKTsKLX0KLQotYm9vbCBM
ZWdhY3lDQUNGTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlUmVuZGVyZXIoKQotewotICAgIGlmIChtX2Qz
ZERldmljZSB8fCAhbV9taWdodEJlQWJsZVRvQ3JlYXRlRGV2aWNlTGF0ZXIpCi0gICAgICAgIHJl
dHVybiBtX2QzZERldmljZTsKLQotICAgIG1fbWlnaHRCZUFibGVUb0NyZWF0ZURldmljZUxhdGVy
ID0gZmFsc2U7Ci0gICAgRDNEUFJFU0VOVF9QQVJBTUVURVJTIHBhcmFtZXRlcnMgPSBpbml0aWFs
UHJlc2VudGF0aW9uUGFyYW1ldGVycygpOwotCi0gICAgaWYgKCFkM2QoKSB8fCAhOjpJc1dpbmRv
dyh3aW5kb3coKSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIC8vIEQzRCBkb2Vzbid0
IGxpa2UgdG8gbWFrZSBiYWNrIGJ1ZmZlcnMgZm9yIDAgc2l6ZSB3aW5kb3dzLiBXZSBza2lydCB0
aGlzIHByb2JsZW0gaWYgd2UgbWFrZSB0aGUKLSAgICAvLyBwYXNzZWQgYmFja2J1ZmZlciB3aWR0
aCBhbmQgaGVpZ2h0IG5vbi16ZXJvLiBUaGUgd2luZG93IHdpbGwgbmVjZXNzYXJpbHkgZ2V0IHNl
dCB0byBhIG5vbi16ZXJvCi0gICAgLy8gc2l6ZSBldmVudHVhbGx5LCBhbmQgdGhlbiB0aGUgYmFj
a2J1ZmZlciBzaXplIHdpbGwgZ2V0IHJlc2V0LgotICAgIFJFQ1QgcmVjdDsKLSAgICBHZXRDbGll
bnRSZWN0KHdpbmRvdygpLCAmcmVjdCk7Ci0KLSAgICBpZiAocmVjdC5sZWZ0LXJlY3QucmlnaHQg
PT0gMCB8fCByZWN0LmJvdHRvbS1yZWN0LnRvcCA9PSAwKSB7Ci0gICAgICAgIHBhcmFtZXRlcnMu
QmFja0J1ZmZlcldpZHRoID0gMTsKLSAgICAgICAgcGFyYW1ldGVycy5CYWNrQnVmZmVySGVpZ2h0
ID0gMTsKLSAgICB9Ci0KLSAgICBEM0RDQVBTOSBkM2RDYXBzOwotICAgIGlmIChGQUlMRUQoZDNk
KCktPkdldERldmljZUNhcHMoRDNEQURBUFRFUl9ERUZBVUxULCBEM0RERVZUWVBFX0hBTCwgJmQz
ZENhcHMpKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgRFdPUkQgYmVoYXZpb3JGbGFn
cyA9IEQzRENSRUFURV9GUFVfUFJFU0VSVkU7Ci0gICAgaWYgKChkM2RDYXBzLkRldkNhcHMgJiBE
M0RERVZDQVBTX0hXVFJBTlNGT1JNQU5ETElHSFQpICYmIGQzZENhcHMuVmVydGV4UHJvY2Vzc2lu
Z0NhcHMpCi0gICAgICAgIGJlaGF2aW9yRmxhZ3MgfD0gRDNEQ1JFQVRFX0hBUkRXQVJFX1ZFUlRF
WFBST0NFU1NJTkc7Ci0gICAgZWxzZQotICAgICAgICBiZWhhdmlvckZsYWdzIHw9IEQzRENSRUFU
RV9TT0ZUV0FSRV9WRVJURVhQUk9DRVNTSU5HOwotCi0gICAgQ09NUHRyPElEaXJlY3QzRERldmlj
ZTk+IGRldmljZTsKLSAgICBpZiAoRkFJTEVEKGQzZCgpLT5DcmVhdGVEZXZpY2UoRDNEQURBUFRF
Ul9ERUZBVUxULCBEM0RERVZUWVBFX0hBTCwgd2luZG93KCksIGJlaGF2aW9yRmxhZ3MsICZwYXJh
bWV0ZXJzLCAmZGV2aWNlKSkpIHsKLSAgICAgICAgLy8gSW4gY2VydGFpbiBzaXR1YXRpb25zIChl
LmcuLCBzaG9ydGx5IGFmdGVyIHdha2luZyBmcm9tIHNsZWVwKSwgRGlyZWN0M0RDcmVhdGU5KCkg
d2lsbAotICAgICAgICAvLyByZXR1cm4gYW4gSURpcmVjdDNEOSBmb3Igd2hpY2ggSURpcmVjdDNE
OTo6Q3JlYXRlRGV2aWNlIHdpbGwgYWx3YXlzIGZhaWwuIEluIGNhc2Ugd2UKLSAgICAgICAgLy8g
aGF2ZSBvbmUgb2YgdGhlc2UgYmFkIElEaXJlY3QzRDlzLCBnZXQgcmlkIG9mIGl0IHNvIHdlJ2xs
IGZldGNoIGEgbmV3IG9uZSB0aGUgbmV4dCB0aW1lCi0gICAgICAgIC8vIHdlIHdhbnQgdG8gY2Fs
bCBDcmVhdGVEZXZpY2UuCi0gICAgICAgIHNfZDNkLT5SZWxlYXNlKCk7Ci0gICAgICAgIHNfZDNk
ID0gMDsKLQotICAgICAgICAvLyBFdmVuIGlmIHdlIGRvbid0IGhhdmUgYSBiYWQgSURpcmVjdDNE
OSwgaW4gY2VydGFpbiBzaXR1YXRpb25zIChlLmcuLCBzaG9ydGx5IGFmdGVyCi0gICAgICAgIC8v
IHdha2luZyBmcm9tIHNsZWVwKSwgQ3JlYXRlRGV2aWNlIHdpbGwgZmFpbCwgYnV0IHdpbGwgbGF0
ZXIgc3VjY2VlZCBpZiBjYWxsZWQgYWdhaW4uCi0gICAgICAgIG1fbWlnaHRCZUFibGVUb0NyZWF0
ZURldmljZUxhdGVyID0gdHJ1ZTsKLQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0g
ICAgLy8gTm93IHRoYXQgd2UndmUgY3JlYXRlZCB0aGUgSURpcmVjdDNERGV2aWNlOSBiYXNlZCBv
biB0aGUgY2FwYWJpbGl0aWVzIHdlCi0gICAgLy8gZ290IGZyb20gdGhlIElEaXJlY3QzRDkgZ2xv
YmFsIG9iamVjdCwgd2UgcmVxdWVyeSB0aGUgZGV2aWNlIGZvciBpdHMKLSAgICAvLyBhY3R1YWwg
Y2FwYWJpbGl0aWVzLiBUaGUgY2FwYWJpbGl0aWVzIHJldHVybmVkIGJ5IHRoZSBkZXZpY2UgY2Fu
Ci0gICAgLy8gc29tZXRpbWVzIGJlIG1vcmUgY29tcGxldGUsIGZvciBleGFtcGxlIHdoZW4gdXNp
bmcgc29mdHdhcmUgdmVydGV4Ci0gICAgLy8gcHJvY2Vzc2luZy4KLSAgICBEM0RDQVBTOSBkZXZp
Y2VDYXBzOwotICAgIGlmIChGQUlMRUQoZGV2aWNlLT5HZXREZXZpY2VDYXBzKCZkZXZpY2VDYXBz
KSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmICghaGFyZHdhcmVDYXBhYmlsaXRp
ZXNJbmRpY2F0ZUNvcmVBbmltYXRpb25TdXBwb3J0KGRldmljZUNhcHMpKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICBtX2QzZERldmljZSA9IGRldmljZTsKLQotICAgIGluaXREM0RHZW9t
ZXRyeSgpOwotCi0gICAgd2tDQUNGQ29udGV4dFNldEQzRERldmljZShtX2NvbnRleHQsIG1fZDNk
RGV2aWNlLmdldCgpKTsKLQotICAgIGlmIChJc1dpbmRvdyh3aW5kb3coKSkpIHsKLSAgICAgICAg
cm9vdExheWVyKCktPnNldEJvdW5kcyhib3VuZHMoKSk7Ci0gICAgICAgIGZsdXNoQ29udGV4dCgp
OwotICAgIH0KLQotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIExlZ2FjeUNBQ0ZMYXllclRy
ZWVIb3N0OjpkZXN0cm95UmVuZGVyZXIoKQotewotICAgIHdrQ0FDRkNvbnRleHRTZXRMYXllciht
X2NvbnRleHQsIDApOwotCi0gICAgd2tDQUNGQ29udGV4dFNldEQzRERldmljZShtX2NvbnRleHQs
IDApOwotICAgIG1fZDNkRGV2aWNlID0gMDsKLSAgICBpZiAoc19kM2QpCi0gICAgICAgIHNfZDNk
LT5SZWxlYXNlKCk7Ci0KLSAgICBzX2QzZCA9IDA7Ci0gICAgbV9taWdodEJlQWJsZVRvQ3JlYXRl
RGV2aWNlTGF0ZXIgPSB0cnVlOwotCi0gICAgQ0FDRkxheWVyVHJlZUhvc3Q6OmRlc3Ryb3lSZW5k
ZXJlcigpOwotfQotCi12b2lkIExlZ2FjeUNBQ0ZMYXllclRyZWVIb3N0OjpyZXNpemUoKQotewot
ICAgIGlmICghbV9kM2REZXZpY2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIFJlc2V0dGlu
ZyB0aGUgZGV2aWNlIG1pZ2h0IGZhaWwgaGVyZS4gQnV0IHRoYXQncyBPSywgYmVjYXVzZSBpZiBp
dCBkb2VzIGl0IHdlIHdpbGwgYXR0ZW1wdCB0bwotICAgIC8vIHJlc2V0IHRoZSBkZXZpY2UgdGhl
IG5leHQgdGltZSB3ZSB0cnkgdG8gcmVuZGVyLgotICAgIHJlc2V0RGV2aWNlKENoYW5nZWRXaW5k
b3dTaXplKTsKLQotICAgIGlmIChyb290TGF5ZXIoKSkgewotICAgICAgICByb290TGF5ZXIoKS0+
c2V0Qm91bmRzKGJvdW5kcygpKTsKLSAgICAgICAgZmx1c2hDb250ZXh0KCk7Ci0gICAgfQotfQot
Ci12b2lkIExlZ2FjeUNBQ0ZMYXllclRyZWVIb3N0OjpyZW5kZXJUaW1lckZpcmVkKCkKLXsKLSAg
ICBwYWludCgpOwotfQotCi12b2lkIExlZ2FjeUNBQ0ZMYXllclRyZWVIb3N0OjpwYWludCgpCi17
Ci0gICAgY3JlYXRlUmVuZGVyZXIoKTsKLSAgICBpZiAoIW1fZDNkRGV2aWNlKSB7Ci0gICAgICAg
IGlmIChtX21pZ2h0QmVBYmxlVG9DcmVhdGVEZXZpY2VMYXRlcikKLSAgICAgICAgICAgIHJlbmRl
clNvb24oKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIENBQ0ZMYXllclRyZWVIb3N0
OjpwYWludCgpOwotfQotCi12b2lkIExlZ2FjeUNBQ0ZMYXllclRyZWVIb3N0OjpyZW5kZXIoY29u
c3QgVmVjdG9yPENHUmVjdD4mIHdpbmRvd0RpcnR5UmVjdHMpCi17Ci0gICAgQVNTRVJUKG1fZDNk
RGV2aWNlKTsKLQotICAgIGlmIChtX211c3RSZXNldExvc3REZXZpY2VCZWZvcmVSZW5kZXJpbmcg
JiYgIXJlc2V0RGV2aWNlKExvc3REZXZpY2UpKSB7Ci0gICAgICAgIC8vIFdlIGNhbid0IHJlc2V0
IHRoZSBkZXZpY2UgcmlnaHQgbm93LiBUcnkgYWdhaW4gc29vbi4KLSAgICAgICAgcmVuZGVyU29v
bigpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgQ0dSZWN0IGJvdW5kcyA9IHRoaXMt
PmJvdW5kcygpOwotCi0gICAgLy8gR2l2ZSB0aGUgcmVuZGVyZXIgc29tZSBzcGFjZSB0byB1c2Uu
IFRoaXMgbmVlZHMgdG8gYmUgdmFsaWQgdW50aWwgdGhlCi0gICAgLy8gd2tDQUNGQ29udGV4dEZp
bmlzaFVwZGF0ZSgpIGNhbGwgYmVsb3cuCi0gICAgY2hhciBzcGFjZVs0MDk2XTsKLSAgICBpZiAo
IXdrQ0FDRkNvbnRleHRCZWdpblVwZGF0ZShtX2NvbnRleHQsIHNwYWNlLCBzaXplb2Yoc3BhY2Up
LCBDQUN1cnJlbnRNZWRpYVRpbWUoKSwgYm91bmRzLCB3aW5kb3dEaXJ0eVJlY3RzLmRhdGEoKSwg
d2luZG93RGlydHlSZWN0cy5zaXplKCkpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBIUkVTVUxU
IGVyciA9IFNfT0s7Ci0gICAgQ0ZUaW1lSW50ZXJ2YWwgdGltZVRvTmV4dFJlbmRlciA9IG51bWVy
aWNfbGltaXRzPENGVGltZUludGVydmFsPjo6aW5maW5pdHkoKTsKLQotICAgIGRvIHsKLSAgICAg
ICAgLy8gRklYTUU6IGRvbid0IG5lZWQgdG8gY2xlYXIgZGlydHkgcmVnaW9uIGlmIGxheWVyIHRy
ZWUgaXMgb3BhcXVlLgotCi0gICAgICAgIFdLQ0FDRlVwZGF0ZVJlY3RFbnVtZXJhdG9yKiBlID0g
d2tDQUNGQ29udGV4dENvcHlVcGRhdGVSZWN0RW51bWVyYXRvcihtX2NvbnRleHQpOwotICAgICAg
ICBpZiAoIWUpCi0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBWZWN0b3I8RDNEUkVDVCwg
NjQ+IHJlY3RzOwotICAgICAgICBmb3IgKGNvbnN0IENHUmVjdCogciA9IHdrQ0FDRlVwZGF0ZVJl
Y3RFbnVtZXJhdG9yTmV4dFJlY3QoZSk7IHI7IHIgPSB3a0NBQ0ZVcGRhdGVSZWN0RW51bWVyYXRv
ck5leHRSZWN0KGUpKSB7Ci0gICAgICAgICAgICBEM0RSRUNUIHJlY3Q7Ci0gICAgICAgICAgICBy
ZWN0LngxID0gci0+b3JpZ2luLng7Ci0gICAgICAgICAgICByZWN0LngyID0gcmVjdC54MSArIHIt
PnNpemUud2lkdGg7Ci0gICAgICAgICAgICByZWN0LnkxID0gYm91bmRzLm9yaWdpbi55ICsgYm91
bmRzLnNpemUuaGVpZ2h0IC0gKHItPm9yaWdpbi55ICsgci0+c2l6ZS5oZWlnaHQpOwotICAgICAg
ICAgICAgcmVjdC55MiA9IHJlY3QueTEgKyByLT5zaXplLmhlaWdodDsKLQotICAgICAgICAgICAg
cmVjdHMuYXBwZW5kKHJlY3QpOwotICAgICAgICB9Ci0gICAgICAgIHdrQ0FDRlVwZGF0ZVJlY3RF
bnVtZXJhdG9yUmVsZWFzZShlKTsKLQotICAgICAgICB0aW1lVG9OZXh0UmVuZGVyID0gd2tDQUNG
Q29udGV4dEdldE5leHRVcGRhdGVUaW1lKG1fY29udGV4dCk7Ci0KLSAgICAgICAgaWYgKHJlY3Rz
LmlzRW1wdHkoKSkKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIG1fZDNkRGV2aWNlLT5D
bGVhcihyZWN0cy5zaXplKCksIHJlY3RzLmRhdGEoKSwgRDNEQ0xFQVJfVEFSR0VULCAwLCAxLjBm
LCAwKTsKLQotICAgICAgICBtX2QzZERldmljZS0+QmVnaW5TY2VuZSgpOwotICAgICAgICB3a0NB
Q0ZDb250ZXh0UmVuZGVyVXBkYXRlKG1fY29udGV4dCk7Ci0gICAgICAgIG1fZDNkRGV2aWNlLT5F
bmRTY2VuZSgpOwotCi0gICAgICAgIGVyciA9IG1fZDNkRGV2aWNlLT5QcmVzZW50KDAsIDAsIDAs
IDApOwotCi0gICAgICAgIGlmIChlcnIgPT0gRDNERVJSX0RFVklDRUxPU1QpIHsKLSAgICAgICAg
ICAgIHdrQ0FDRkNvbnRleHRBZGRVcGRhdGVSZWN0KG1fY29udGV4dCwgYm91bmRzKTsKLSAgICAg
ICAgICAgIGlmICghcmVzZXREZXZpY2UoTG9zdERldmljZSkpIHsKLSAgICAgICAgICAgICAgICAv
LyBXZSBjYW4ndCByZXNldCB0aGUgZGV2aWNlIHJpZ2h0IG5vdy4gVHJ5IGFnYWluIHNvb24uCi0g
ICAgICAgICAgICAgICAgcmVuZGVyU29vbigpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0gd2hpbGUgKGVyciA9PSBEM0RFUlJfREVWSUNF
TE9TVCk7Ci0KLSAgICB3a0NBQ0ZDb250ZXh0RmluaXNoVXBkYXRlKG1fY29udGV4dCk7Ci0KLSNp
Zm5kZWYgTkRFQlVHCi0gICAgaWYgKG1fcHJpbnRUcmVlKQotICAgICAgICByb290TGF5ZXIoKS0+
cHJpbnRUcmVlKCk7Ci0jZW5kaWYKLQotICAgIC8vIElmIHRpbWVUb05leHRSZW5kZXIgaXMgbm90
IGluZmluaXR5LCBpdCBtZWFucyBhbmltYXRpb25zIGFyZSBydW5uaW5nLCBzbyBxdWV1ZSB1cCB0
byByZW5kZXIgYWdhaW4KLSAgICBpZiAodGltZVRvTmV4dFJlbmRlciAhPSBudW1lcmljX2xpbWl0
czxDRlRpbWVJbnRlcnZhbD46OmluZmluaXR5KCkpCi0gICAgICAgIHJlbmRlclNvb24oKTsKLX0K
LQotdm9pZCBMZWdhY3lDQUNGTGF5ZXJUcmVlSG9zdDo6cmVuZGVyU29vbigpCi17Ci0gICAgaWYg
KCFtX3JlbmRlclRpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAgIG1fcmVuZGVyVGltZXIuc3RhcnRP
bmVTaG90KDApOwotfQotCi12b2lkIExlZ2FjeUNBQ0ZMYXllclRyZWVIb3N0OjpmbHVzaENvbnRl
eHQoKQotewotICAgIHdrQ0FDRkNvbnRleHRGbHVzaChtX2NvbnRleHQpOwotICAgIGNvbnRleHRE
aWRDaGFuZ2UoKTsKLX0KLQotdm9pZCBMZWdhY3lDQUNGTGF5ZXJUcmVlSG9zdDo6Y29udGV4dERp
ZENoYW5nZSgpCi17Ci0gICAgcmVuZGVyU29vbigpOwotICAgIENBQ0ZMYXllclRyZWVIb3N0Ojpj
b250ZXh0RGlkQ2hhbmdlKCk7Ci19Ci0KLUNGVGltZUludGVydmFsIExlZ2FjeUNBQ0ZMYXllclRy
ZWVIb3N0OjpsYXN0Q29tbWl0VGltZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHdrQ0FDRkNvbnRl
eHRHZXRMYXN0Q29tbWl0VGltZShtX2NvbnRleHQpOwotfQotCi12b2lkIExlZ2FjeUNBQ0ZMYXll
clRyZWVIb3N0Ojppbml0RDNER2VvbWV0cnkoKQotewotICAgIEFTU0VSVChtX2QzZERldmljZSk7
Ci0KLSAgICBDR1JlY3QgYm91bmRzID0gdGhpcy0+Ym91bmRzKCk7Ci0KLSAgICBmbG9hdCB4MCA9
IGJvdW5kcy5vcmlnaW4ueDsKLSAgICBmbG9hdCB5MCA9IGJvdW5kcy5vcmlnaW4ueTsKLSAgICBm
bG9hdCB4MSA9IHgwICsgYm91bmRzLnNpemUud2lkdGg7Ci0gICAgZmxvYXQgeTEgPSB5MCArIGJv
dW5kcy5zaXplLmhlaWdodDsKLQotICAgIEQzRFhNQVRSSVhBMTYgcHJvamVjdGlvbjsKLSAgICBE
M0RYTWF0cml4T3J0aG9PZmZDZW50ZXJSSCgmcHJvamVjdGlvbiwgeDAsIHgxLCB5MCwgeTEsIC0x
LjBmLCAxLjBmKTsKLQotICAgIG1fZDNkRGV2aWNlLT5TZXRUcmFuc2Zvcm0oRDNEVFNfUFJPSkVD
VElPTiwgJnByb2plY3Rpb24pOwotfQotCi1ib29sIExlZ2FjeUNBQ0ZMYXllclRyZWVIb3N0Ojpy
ZXNldERldmljZShSZXNldFJlYXNvbiByZWFzb24pCi17Ci0gICAgQVNTRVJUKG1fZDNkRGV2aWNl
KTsKLSAgICBBU1NFUlQobV9jb250ZXh0KTsKLQotICAgIEhSRVNVTFQgaHIgPSBtX2QzZERldmlj
ZS0+VGVzdENvb3BlcmF0aXZlTGV2ZWwoKTsKLQotICAgIGlmIChociA9PSBEM0RFUlJfREVWSUNF
TE9TVCB8fCBociA9PSBEM0RFUlJfRFJJVkVSSU5URVJOQUxFUlJPUikgewotICAgICAgICAvLyBU
aGUgZGV2aWNlIGNhbm5vdCBiZSByZXNldCBhdCB0aGlzIHRpbWUuIFRyeSBhZ2FpbiBzb29uLgot
ICAgICAgICBtX211c3RSZXNldExvc3REZXZpY2VCZWZvcmVSZW5kZXJpbmcgPSB0cnVlOwotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgbV9tdXN0UmVzZXRMb3N0RGV2aWNlQmVm
b3JlUmVuZGVyaW5nID0gZmFsc2U7Ci0KLSAgICBpZiAocmVhc29uID09IExvc3REZXZpY2UgJiYg
aHIgPT0gRDNEX09LKSB7Ci0gICAgICAgIC8vIFRoZSBkZXZpY2Ugd2Fzbid0IGxvc3QgYWZ0ZXIg
YWxsLgotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICAvLyBXZSBjYW4gcmVzZXQg
dGhlIGRldmljZS4KLQotICAgIC8vIFdlIGhhdmUgdG8gcmVsZWFzZSB0aGUgY29udGV4dCdzIEQz
RCByZXNyb3VjZXMgd2hlbmV2ZXIgd2UgcmVzZXQgdGhlIElEaXJlY3QzRERldmljZTkgaW4gb3Jk
ZXIgdG8KLSAgICAvLyBkZXN0cm95IGFueSBEM0RQT09MX0RFRkFVTFQgcmVzb3VyY2VzIHRoYXQg
Q29yZSBBbmltYXRpb24gaGFzIGFsbG9jYXRlZCAoZS5nLiwgdGV4dHVyZXMgdXNlZAotICAgIC8v
IGZvciBtYXNrIGxheWVycykuIFNlZSA8aHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9s
aWJyYXJ5L2JiMTc0NDI1KHY9VlMuODUpLmFzcHg+LgotICAgIHdrQ0FDRkNvbnRleHRSZWxlYXNl
RDNEUmVzb3VyY2VzKG1fY29udGV4dCk7Ci0KLSAgICBEM0RQUkVTRU5UX1BBUkFNRVRFUlMgcGFy
YW1ldGVycyA9IGluaXRpYWxQcmVzZW50YXRpb25QYXJhbWV0ZXJzKCk7Ci0gICAgaHIgPSBtX2Qz
ZERldmljZS0+UmVzZXQoJnBhcmFtZXRlcnMpOwotCi0gICAgLy8gVGVzdENvb3BlcmF0aXZlTGV2
ZWwgdG9sZCB1cyB0aGUgZGV2aWNlIG1heSBiZSByZXNldCBub3csIHNvIHdlIHNob3VsZAotICAg
IC8vIG5vdCBiZSB0b2xkIGhlcmUgdGhhdCB0aGUgZGV2aWNlIGlzIGxvc3QuCi0gICAgQVNTRVJU
KGhyICE9IEQzREVSUl9ERVZJQ0VMT1NUKTsKLQotICAgIGluaXREM0RHZW9tZXRyeSgpOwotCi0g
ICAgcmV0dXJuIHRydWU7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9MZWdhY3lDQUNGTGF5ZXJUcmVlSG9z
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dp
bi9MZWdhY3lDQUNGTGF5ZXJUcmVlSG9zdC5oCShyZXZpc2lvbiAxODc1MjcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vTGVnYWN5Q0FDRkxheWVyVHJlZUhvc3Qu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw4MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDExLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBMZWdhY3lDQUNGTGF5ZXJUcmVl
SG9zdF9oCi0jZGVmaW5lIExlZ2FjeUNBQ0ZMYXllclRyZWVIb3N0X2gKLQotI2luY2x1ZGUgIkNB
Q0ZMYXllclRyZWVIb3N0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotLy8gRklYTUU6IEN1
cnJlbnRseSB0aGVyZSBpcyBhIExlZ2FjeUNBQ0ZMYXllclRyZWVIb3N0IGZvciBlYWNoIFdlYlZp
ZXcgYW5kIGVhY2gKLS8vIGhhcyBpdHMgb3duIFdLQ0FDRkNvbnRleHQgYW5kIERpcmVjdDNERGV2
aWNlOSwgd2hpY2ggaXMgaW5lZmZpY2llbnQuCi0vLyAoaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTMxODU1KQotY2xhc3MgTGVnYWN5Q0FDRkxheWVyVHJlZUhvc3QgOiBw
dWJsaWMgQ0FDRkxheWVyVHJlZUhvc3QgewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PExlZ2FjeUNBQ0ZMYXllclRyZWVIb3N0PiBjcmVhdGUoKTsKLSAgICB2aXJ0dWFsIH5MZWdhY3lD
QUNGTGF5ZXJUcmVlSG9zdCgpOwotCi1wcml2YXRlOgotICAgIExlZ2FjeUNBQ0ZMYXllclRyZWVI
b3N0KCk7Ci0KLSAgICB2b2lkIGluaXREM0RHZW9tZXRyeSgpOwotCi0gICAgLy8gQ2FsbCB0aGlz
IHdoZW4gdGhlIGRldmljZSB3aW5kb3cgaGFzIGNoYW5nZWQgc2l6ZSBvciB3aGVuIElEaXJlY3Qz
RERldmljZTk6OlByZXNlbnQgcmV0dXJucwotICAgIC8vIEQzREVSUl9ERVZJQ0VMT1NULiBSZXR1
cm5zIHRydWUgaWYgdGhlIGRldmljZSB3YXMgcmVjb3ZlcmVkLCBmYWxzZSBpZiByZW5kZXJpbmcg
bXVzdCBiZQotICAgIC8vIGFib3J0ZWQgYW5kIHJlYXR0ZW1wdGVkIHNvb24uCi0gICAgZW51bSBS
ZXNldFJlYXNvbiB7IENoYW5nZWRXaW5kb3dTaXplLCBMb3N0RGV2aWNlIH07Ci0gICAgYm9vbCBy
ZXNldERldmljZShSZXNldFJlYXNvbik7Ci0KLSAgICB2b2lkIHJlbmRlclNvb24oKTsKLSAgICB2
b2lkIHJlbmRlclRpbWVyRmlyZWQoKTsKLQotICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplQ29u
dGV4dCh2b2lkKiB1c2VyRGF0YSwgUGxhdGZvcm1DQUxheWVyKik7Ci0gICAgdmlydHVhbCB2b2lk
IHJlc2l6ZSgpOwotICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVSZW5kZXJlcigpOwotICAgIHZpcnR1
YWwgdm9pZCBkZXN0cm95UmVuZGVyZXIoKTsKLSAgICB2aXJ0dWFsIENGVGltZUludGVydmFsIGxh
c3RDb21taXRUaW1lKCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIGZsdXNoQ29udGV4dCgpOwot
ICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGlkQ2hhbmdlKCk7Ci0gICAgdmlydHVhbCB2b2lkIHBh
aW50KCk7Ci0gICAgdmlydHVhbCB2b2lkIHJlbmRlcihjb25zdCBWZWN0b3I8Q0dSZWN0PiYgZGly
dHlSZWN0cyA9IFZlY3RvcjxDR1JlY3Q+KCkpOwotCi0jaWYgVVNFKEFWRk9VTkRBVElPTikKLSAg
ICB2aXJ0dWFsIEdyYXBoaWNzRGV2aWNlQWRhcHRlciogZ3JhcGhpY3NEZXZpY2VBZGFwdGVyKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQotI2VuZGlmCi0KLSAgICBUaW1lciBtX3JlbmRl
clRpbWVyOwotICAgIENPTVB0cjxJRGlyZWN0M0REZXZpY2U5PiBtX2QzZERldmljZTsKLSAgICBX
S0NBQ0ZDb250ZXh0KiBtX2NvbnRleHQ7Ci0gICAgYm9vbCBtX21pZ2h0QmVBYmxlVG9DcmVhdGVE
ZXZpY2VMYXRlcjsKLSAgICBib29sIG1fbXVzdFJlc2V0TG9zdERldmljZUJlZm9yZVJlbmRlcmlu
ZzsKLQotI2lmbmRlZiBOREVCVUcKLSAgICBib29sIG1fcHJpbnRUcmVlOwotI2VuZGlmCi19Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBMZWdhY3lDQUNGTGF5ZXJUcmVl
SG9zdF9oCg==
</data>
<flag name="review"
          id="282883"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>