<?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>14893</bug_id>
          
          <creation_ts>2007-08-06 21:08:30 -0700</creation_ts>
          <short_desc>WebKit confuses width/height for Media Queries device-aspect-ratio evaluation</short_desc>
          <delta_ts>2007-11-07 14:01:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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="Oliver Hunt">oliver</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>ddkilzer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2919</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2007-08-06 21:08:30 -0700</bug_when>
    <thetext>In WebCore/css/MediaQueryEvaluator.cpp the method device_aspect_ratioMediaFeatureEval() confuses width and height in line 241.

As a result, the MQ evaluation of &quot;device-aspect-ratio&quot; always fails.

To correct the bug, line 241 must read:

          return b != 0  &amp;&amp; cmpvalue(a * (int)sg.width(), b * (int)sg.height(), op);

&lt;rdar://problem/5380295&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2918</commentid>
    <comment_count>1</comment_count>
      <attachid>15853</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2007-08-06 21:14:06 -0700</bug_when>
    <thetext>Created attachment 15853
PAtch for bug

Patch from ADC developer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2436</commentid>
    <comment_count>2</comment_count>
      <attachid>15853</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-08-11 15:42:39 -0700</bug_when>
    <thetext>Comment on attachment 15853
PAtch for bug

Fix looks fine. Needs a regression test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60456</commentid>
    <comment_count>3</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-11-06 17:07:03 -0800</bug_when>
    <thetext>Reassigning to webkit-unassigned for more visibility.

All we need is a test case to land this fix.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60465</commentid>
    <comment_count>4</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-11-06 18:05:19 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Reassigning to webkit-unassigned for more visibility.
&gt; 
&gt; All we need is a test case to land this fix.

Actually, I believe the current code is correct (but with poorly-named variables).  We should be cross-multiplying the values to compare them, which the current code does.

http://www.w3.org/TR/css3-mediaqueries/#device-aspect-ratio

I&apos;m going to write test cases for [min-|max-|]device-aspect-ratio and fix the variable names.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60467</commentid>
    <comment_count>5</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-11-06 19:15:12 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Actually, I believe the current code is correct (but with poorly-named
&gt; variables).  We should be cross-multiplying the values to compare them, which
&gt; the current code does.
&gt; 
&gt; http://www.w3.org/TR/css3-mediaqueries/#device-aspect-ratio

The current code is incorrect, but so is the patch (Attachment #15853).  The entire first and second arguments need to be swapped, not just the sg.width() and sg.height() calls.

&gt; I&apos;m going to write test cases for [min-|max-|]device-aspect-ratio and fix the
&gt; variable names.

Test cases are a Good Thing(tm).

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60470</commentid>
    <comment_count>6</comment_count>
      <attachid>17078</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-11-06 20:15:13 -0800</bug_when>
    <thetext>Created attachment 17078
Patch v2

Now with correct fix and 3 layout tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60576</commentid>
    <comment_count>7</comment_count>
      <attachid>17078</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-11-07 10:44:38 -0800</bug_when>
    <thetext>Comment on attachment 17078
Patch v2

r=me

(I probably would have used h/v instead of longer names.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60583</commentid>
    <comment_count>8</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-11-07 12:05:46 -0800</bug_when>
    <thetext>The test cases also pass on Opera 9.50b and Firefox 2.0.0.9 on Tiger.  (Note that the shouldBe() test fails on Opera 9.50b because computed styles are accessed differently than Safari/Firefox.  The text turns green as it is supposed to, though.)

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60594</commentid>
    <comment_count>9</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-11-07 13:15:58 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Note
&gt; that the shouldBe() test fails on Opera 9.50b because computed styles are
&gt; accessed differently than Safari/Firefox.

Filed Bug 15888 to provide cross-browser method for getComputedStyle().

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60596</commentid>
    <comment_count>10</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-11-07 13:58:05 -0800</bug_when>
    <thetext>Committed revision 27581.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60597</commentid>
    <comment_count>11</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-11-07 14:01:48 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (I probably would have used h/v instead of longer names.)

I made this change before committing.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15853</attachid>
            <date>2007-08-06 21:14:06 -0700</date>
            <delta_ts>2007-11-06 20:15:13 -0800</delta_ts>
            <desc>PAtch for bug</desc>
            <filename>MQ-device-aspect-ration.patch</filename>
            <type>text/plain</type>
            <size>785</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIChyZXZpc2lvbiAyNDc5NykKKysr
IFdlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwICh3b3JraW5nIGNvcHkpCkBAIC0y
MzQsMTEgKzIzNCwxMSBAQCBzdGF0aWMgYm9vbCBtb25vY2hyb21lTWVkaWFGZWF0dXJlRXZhbChD
CiBzdGF0aWMgYm9vbCBkZXZpY2VfYXNwZWN0X3JhdGlvTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1
ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgUGFnZSogcGFnZSwgIE1lZGlhRmVhdHVyZVBy
ZWZpeCBvcCkKIHsKICAgICBpZiAodmFsdWUpIHsKICAgICAgICAgRmxvYXRSZWN0IHNnID0gc2Ny
ZWVuUmVjdChwYWdlLT5tYWluRnJhbWUoKS0+dmlldygpKTsKICAgICAgICAgaW50IGEgPSAwOwog
ICAgICAgICBpbnQgYiA9IDA7CiAgICAgICAgIGlmIChwYXJzZUFzcGVjdFJhdGlvKHZhbHVlLCBh
LCBiKSkKLSAgICAgICAgICAgIHJldHVybiBiICE9IDAgICYmIGNtcHZhbHVlKGEgKiAoaW50KXNn
LmhlaWdodCgpLCBiICogKGludClzZy53aWR0aCgpLCBvcCk7CisgICAgICAgICAgICByZXR1cm4g
YiAhPSAwICAmJiBjbXB2YWx1ZShhICogKGludClzZy53aWR0aCgpLCBiICogKGludClzZy5oZWln
aHQoKSwgb3ApOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCgo=
</data>
<flag name="review"
          id="6635"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17078</attachid>
            <date>2007-11-06 20:15:13 -0800</date>
            <delta_ts>2007-11-07 10:44:38 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-14893-v2.diff</filename>
            <type>text/plain</type>
            <size>14335</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNzQ5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMDctMTEtMDYgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxl
LmNvbT4KKworICAgICAgICBXZWJLaXQgY29uZnVzZXMgd2lkdGgvaGVpZ2h0IGZvciBNZWRpYSBR
dWVyaWVzIGRldmljZS1hc3BlY3QtcmF0aW8gZXZhbHVhdGlvbgorICAgICAgICA8aHR0cDovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4OTM+CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS81MzgwMjk1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRlc3RzOiBmYXN0L2Nzcy9kZXZpY2UtYXNwZWN0LXJhdGlvLmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3QvY3NzL21heC1kZXZpY2UtYXNwZWN0LXJhdGlvLmh0bWwKKyAgICAgICAgICAg
ICAgIGZhc3QvY3NzL21pbi1kZXZpY2UtYXNwZWN0LXJhdGlvLmh0bWwKKworICAgICAgICAqIGNz
cy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlQXNwZWN0
UmF0aW8pOiBSZW5hbWVkIG1ldGhvZCBwYXJhbWV0ZXJzIGZyb20gYS9iIHRvCisgICAgICAgIGhv
cml6b250YWxWYWx1ZS92ZXJ0aWNhbFZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6ZGV2aWNlX2Fz
cGVjdF9yYXRpb01lZGlhRmVhdHVyZUV2YWwpOiBSZW5hbWVkIGxvY2FsIHZhcmlhYmxlcyBmcm9t
CisgICAgICAgIGEvYiB0byBob3Jpem9udGFsVmFsdWUvdmVydGljYWxWYWx1ZS4gIFN3aXRjaGVk
IGZpcnN0IHR3byBhcmd1bWVudHMgb2YgdGhlCisgICAgICAgIGNhbGwgdG8gY21wdmFsdWUoKSB0
byBmaXggdGhlIGJ1Zy4KKwogMjAwNy0xMS0wNiAgSnVzdGluIEdhcmNpYSAgPGp1c3Rpbi5nYXJj
aWFAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCkluZGV4
OiBXZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAkocmV2aXNpb24gMjc0OTMpCisrKyBXZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU0LDcg
KzE1NCw3IEBAIGJvb2wgTWVkaWFRdWVyeUV2YWx1YXRvcjo6ZXZhbChjb25zdCBNZWQKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgYm9vbCBwYXJzZUFzcGVjdFJhdGlvKENTU1ZhbHVl
KiB2YWx1ZSwgaW50JiBhLCBpbnQmIGIpCitzdGF0aWMgYm9vbCBwYXJzZUFzcGVjdFJhdGlvKENT
U1ZhbHVlKiB2YWx1ZSwgaW50JiBob3Jpem9udGFsVmFsdWUsIGludCYgdmVydGljYWxWYWx1ZSkK
IHsKICAgICBpZiAodmFsdWUtPmlzVmFsdWVMaXN0KCkpewogICAgICAgICBDU1NWYWx1ZUxpc3Qq
IHZhbHVlTGlzdCA9IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVlKTsKQEAgLTE2Nyw4
ICsxNjcsOCBAQCBzdGF0aWMgYm9vbCBwYXJzZUFzcGVjdFJhdGlvKENTU1ZhbHVlKiB2CiAgICAg
ICAgICAgICAgICAgJiYgaTItPmlzUHJpbWl0aXZlVmFsdWUoKSAmJiBzdGF0aWNfY2FzdDxDU1NQ
cmltaXRpdmVWYWx1ZSo+KGkyKS0+cHJpbWl0aXZlVHlwZSgpID09IENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfTlVNQkVSKSB7CiAgICAgICAgICAgICAgICAgU3RyaW5nIHN0ciA9IHN0YXRpY19jYXN0
PENTU1ByaW1pdGl2ZVZhbHVlKj4oaTEpLT5nZXRTdHJpbmdWYWx1ZSgpOwogICAgICAgICAgICAg
ICAgIGlmICghc3RyLmlzTnVsbCgpICYmIHN0ci5sZW5ndGgoKSA9PSAxICYmIHN0clswXSA9PSBE
ZXByZWNhdGVkQ2hhcignLycpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGEgPSBzdGF0aWNfY2Fz
dDxDU1NQcmltaXRpdmVWYWx1ZSo+KGkwKS0+Z2V0SW50VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU19OVU1CRVIpOwotICAgICAgICAgICAgICAgICAgICBiID0gc3RhdGljX2Nhc3Q8Q1NTUHJp
bWl0aXZlVmFsdWUqPihpMiktPmdldEludFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVN
QkVSKTsKKyAgICAgICAgICAgICAgICAgICAgaG9yaXpvbnRhbFZhbHVlID0gc3RhdGljX2Nhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWUqPihpMCktPmdldEludFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfTlVNQkVSKTsKKyAgICAgICAgICAgICAgICAgICAgdmVydGljYWxWYWx1ZSA9IHN0YXRpY19j
YXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oaTIpLT5nZXRJbnRWYWx1ZShDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX05VTUJFUik7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTIzNSwxMCArMjM1LDEwIEBAIHN0YXRpYyBi
b29sIGRldmljZV9hc3BlY3RfcmF0aW9NZWRpYUZlYXQKIHsKICAgICBpZiAodmFsdWUpIHsKICAg
ICAgICAgRmxvYXRSZWN0IHNnID0gc2NyZWVuUmVjdChwYWdlLT5tYWluRnJhbWUoKS0+dmlldygp
KTsKLSAgICAgICAgaW50IGEgPSAwOwotICAgICAgICBpbnQgYiA9IDA7Ci0gICAgICAgIGlmIChw
YXJzZUFzcGVjdFJhdGlvKHZhbHVlLCBhLCBiKSkKLSAgICAgICAgICAgIHJldHVybiBiICE9IDAg
ICYmIGNtcHZhbHVlKGEgKiAoaW50KXNnLmhlaWdodCgpLCBiICogKGludClzZy53aWR0aCgpLCBv
cCk7CisgICAgICAgIGludCBob3Jpem9udGFsVmFsdWUgPSAwOworICAgICAgICBpbnQgdmVydGlj
YWxWYWx1ZSA9IDA7CisgICAgICAgIGlmIChwYXJzZUFzcGVjdFJhdGlvKHZhbHVlLCBob3Jpem9u
dGFsVmFsdWUsIHZlcnRpY2FsVmFsdWUpKQorICAgICAgICAgICAgcmV0dXJuIHZlcnRpY2FsVmFs
dWUgIT0gMCAgJiYgY21wdmFsdWUoKGludClzZy53aWR0aCgpICogdmVydGljYWxWYWx1ZSwgKGlu
dClzZy5oZWlnaHQoKSAqIGhvcml6b250YWxWYWx1ZSwgb3ApOwogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzQ5NikKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDA3LTExLTA2ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViS2l0IGNvbmZ1c2Vz
IHdpZHRoL2hlaWdodCBmb3IgTWVkaWEgUXVlcmllcyBkZXZpY2UtYXNwZWN0LXJhdGlvIGV2YWx1
YXRpb24KKyAgICAgICAgPGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
ODkzPgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTM4MDI5NT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFYWNoIG9mIHRoZSBmb2xsb3dpbmcgdGVz
dHMgY3JlYXRlcyBhIDxsaW5rPiBlbGVtZW50IGFuZCBkeW5hbWljYWxseSBzZXRzIGl0cworICAg
ICAgICBtZWRpYSBxdWVyeSBiYXNlZCBvbiB0aGUgYXNwZWN0IHJhdGlvICh3aWR0aC9oZWlnaHQp
IG9mIHRoZSBjdXJyZW50IHNjcmVlbi4KKyAgICAgICAgV2hlbiB0aGUgPGxpbms+IGVsZW1lbnQg
aXMgYXR0YWNoZWQgdG8gdGhlIDxoZWFkPiBub2RlLCB0aGUgdGVzdCBleHBlY3RzIHRoZQorICAg
ICAgICBzdHlsZXNoZWV0IHRvIGJlIGxvYWRlZCBmb3IgdGhlIHRlc3QgdG8gcGFzcy4KKworICAg
ICAgICAqIGZhc3QvY3NzL2RldmljZS1hc3BlY3QtcmF0aW8tZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Nzcy9kZXZpY2UtYXNwZWN0LXJhdGlvLmh0bWw6IEFkZGVkLgorCisg
ICAgICAgIFRoaXMgdGVzdCBzZXRzIHRoZSBkZXZpY2UtYXNwZWN0LXJhdGlvIHRvIHRoZSBjdXJy
ZW50IHNpemUgb2YgdGhlIHNjcmVlbi4KKyAgICAgICAgTk9URTogVGhpcyB0ZXN0IHBhc3NlZCBi
ZWZvcmUgdGhlIGZpeC4KKworICAgICAgICAqIGZhc3QvY3NzL21heC1kZXZpY2UtYXNwZWN0LXJh
dGlvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvbWF4LWRldmljZS1h
c3BlY3QtcmF0aW8uaHRtbDogQWRkZWQuCisKKyAgICAgICAgVGhpcyB0ZXN0IHNldHMgdGhlIG1h
eC1kZXZpY2UtYXNwZWN0IHJhdGlvIHRvIDEwMC8xIGZvciBsYW5kc2NhcGUgbW9uaXRvcnMgb3IK
KyAgICAgICAgMS8xIGZvciBwb3J0cmFpdCAob3Igc3F1YXJlKSBtb25pdG9ycy4KKyAgICAgICAg
Tk9URTogVGhpcyB0ZXN0IGZhaWxlZCBiZWZvcmUgdGhlIGZpeC4KKworICAgICAgICAqIGZhc3Qv
Y3NzL21pbi1kZXZpY2UtYXNwZWN0LXJhdGlvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9jc3MvbWluLWRldmljZS1hc3BlY3QtcmF0aW8uaHRtbDogQWRkZWQuCisKKyAgICAg
ICAgVGhpcyB0ZXN0IHNldHMgdGhlIG1pbi1kZXZpY2UtYXNwZWN0IHJhdGlvIHRvIDEvMSBmb3Ig
bGFuZHNjYXBlIG1vbml0b3JzIG9yCisgICAgICAgIDEvMTAwIGZvciBwb3J0cmFpdCAob3Igc3F1
YXJlKSBtb25pdG9ycy4KKyAgICAgICAgTk9URTogVGhpcyB0ZXN0IGZhaWxlZCBiZWZvcmUgdGhl
IGZpeC4KKworICAgICAgICAqIGZhc3QvY3NzL3Jlc291cmNlcy9kZXZpY2UtYXNwZWN0LXJhdGlv
LmNzczogQWRkZWQuCisKIDIwMDctMTEtMDYgIEp1c3RpbiBHYXJjaWEgIDxqdXN0aW4uZ2FyY2lh
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9jc3MvZGV2aWNlLWFzcGVjdC1yYXRpby1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvZGV2aWNlLWFzcGVjdC1yYXRpby1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9kZXZpY2UtYXNw
ZWN0LXJhdGlvLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAorVGhp
cyB0ZXh0IGlzIGdyZWVuIGlmIHRoZSBkZXZpY2UtYXNwZWN0LXJhdGlvIG1lZGlhIHF1ZXJ5IHdv
cmtzIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1
bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdkZXNjcmlwdGlvbicpLCBudWxsKS5jb2xvciBpcyAncmdiKDAsIDEyOCwgMCknCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9jc3MvZGV2aWNlLWFzcGVjdC1yYXRpby5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvY3NzL2RldmljZS1hc3BlY3QtcmF0aW8uaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2RldmljZS1hc3BlY3QtcmF0aW8uaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZCBpZD0ibXloZWFkIj4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3Jp
cHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICB3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorCit2YXIgY291bnQg
PSAwOwordmFyIG1heENvdW50ID0gMTA7Cit2YXIgdGltZW91dCA9IDEwMDsKKworZnVuY3Rpb24g
ZG9UZXN0KCkKK3sKKyAgICB2YXIgaGVhZEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgibXloZWFkIik7CisgICAgdmFyIGxpbmtFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgibGluayIpOworICAgIGxpbmtFbGVtZW50LnJlbCA9ICJzdHlsZXNoZWV0IjsKKyAgICBsaW5r
RWxlbWVudC5tZWRpYSA9ICJzY3JlZW4gYW5kIChkZXZpY2UtYXNwZWN0LXJhdGlvOiAiICsgc2Ny
ZWVuLndpZHRoICsgIi8iICsgc2NyZWVuLmhlaWdodCArICIpIjsKKyAgICBsaW5rRWxlbWVudC5o
cmVmID0gInJlc291cmNlcy9kZXZpY2UtYXNwZWN0LXJhdGlvLmNzcyI7CisgICAgaGVhZEVsZW1l
bnQuYXBwZW5kQ2hpbGQobGlua0VsZW1lbnQpOworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRleHQg
aXMgZ3JlZW4gaWYgdGhlIGRldmljZS1hc3BlY3QtcmF0aW8gbWVkaWEgcXVlcnkgd29ya3MgcHJv
cGVybHkuIik7CisgICAgc2V0VGltZW91dCgid2FpdEZvclN0eWxlc2hlZXRMb2FkKCkiLCB0aW1l
b3V0KTsKK30KKworZnVuY3Rpb24gd2FpdEZvclN0eWxlc2hlZXRMb2FkKCkKK3sKKyAgICBjb3Vu
dCsrOworCisgICAgaWYgKGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rlc2NyaXB0aW9uJyksIG51bGwpLmNvbG9yID09ICJyZ2Io
MCwgMTI4LCAwKSIpIHsKKyAgICAgICAgc2hvdWxkQmUoImRvY3VtZW50LmRlZmF1bHRWaWV3Lmdl
dENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rlc2NyaXB0aW9uJyksIG51
bGwpLmNvbG9yIiwgIidyZ2IoMCwgMTI4LCAwKSciKTsKKyAgICAgICAgd2luZG93LnN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7CisgICAgICAgIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7CisgICAg
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgIHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGlmIChjb3VudCA+IG1heENvdW50KSB7CisgICAgICAgIHRl
c3RGYWlsZWQoIlN0eWxlc2hlZXQgZGlkIG5vdCBsb2FkIGluICIgKyAobWF4Q291bnQgKiB0aW1l
b3V0IC8gMTAwMCkgKyAiIHNlY29uZChzKS4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIHNldFRpbWVvdXQoIndhaXRGb3JTdHlsZXNoZWV0TG9hZCgpIiwgdGltZW91dCk7Cit9Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0iZG9UZXN0KCkiPgorPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL21heC1kZXZpY2UtYXNwZWN0LXJhdGlvLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9tYXgtZGV2aWNlLWFz
cGVjdC1yYXRpby1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2Nzcy9tYXgtZGV2aWNlLWFzcGVjdC1yYXRpby1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTAgQEAKK1RoaXMgdGV4dCBpcyBncmVlbiBpZiB0aGUgbWF4LWRldmljZS1hc3Bl
Y3QtcmF0aW8gbWVkaWEgcXVlcnkgd29ya3MgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rlc2NyaXB0aW9uJyksIG51bGwpLmNvbG9yIGlzICdy
Z2IoMCwgMTI4LCAwKScKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9tYXgtZGV2aWNlLWFzcGVjdC1y
YXRpby5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL21heC1kZXZpY2Ut
YXNwZWN0LXJhdGlvLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9t
YXgtZGV2aWNlLWFzcGVjdC1yYXRpby5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY3IEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4K
KzxoZWFkIGlkPSJteWhlYWQiPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciBjb3VudCA9IDA7Cit2YXIgbWF4Q291bnQgPSAx
MDsKK3ZhciB0aW1lb3V0ID0gMTAwOworCitmdW5jdGlvbiBkb1Rlc3QoKQoreworICAgIHZhciBo
ZWFkRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteWhlYWQiKTsKKyAgICB2YXIg
bGlua0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIik7CisgICAgbGlua0Vs
ZW1lbnQucmVsID0gInN0eWxlc2hlZXQiOworICAgIHZhciB3aWR0aDsKKyAgICB2YXIgaGVpZ2h0
OworICAgIGlmIChzY3JlZW4ud2lkdGggPiBzY3JlZW4uaGVpZ2h0KSB7CisgICAgICAgIC8vIEZv
ciBhIGxhbmRzY2FwZSBzY3JlZW4sIGEgcmF0aW8gb2YgMTAwLzEgc2hvdWxkIGFsd2F5cyBiZSBn
cmVhdGVyIHRoYW4gdGhlIHNjcmVlbiAoZS5nLiwgMTYvOSkKKyAgICAgICAgd2lkdGggPSAxMDA7
CisgICAgICAgIGhlaWdodCA9IDE7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gRm9yIGEgcG9y
dHJhaXQgc2NyZWVuLCBhIHJhdGlvIG9mIDEvMSB3aWxsIGFsd2F5cyBiZSBncmVhdGVyIHRoYW4g
dGhlIHNjcmVlbiAoZS5nLiwgOS8xNikKKyAgICAgICAgLy8gRm9yIGEgc3F1YXJlIHNjcmVlbiwg
YSByYXRpbyBvZiAxLzEgd2lsbCBhbHdheXMgYmUgZXF1YWwgdG8gdGhlIHNjcmVlbiAoZS5nLiwg
OS85KQorICAgICAgICB3aWR0aCA9IDE7CisgICAgICAgIGhlaWdodCA9IDE7CisgICAgfQorICAg
IGxpbmtFbGVtZW50Lm1lZGlhID0gInNjcmVlbiBhbmQgKG1heC1kZXZpY2UtYXNwZWN0LXJhdGlv
OiAiICsgd2lkdGggKyAiLyIgKyBoZWlnaHQgKyAiKSI7CisgICAgbGlua0VsZW1lbnQuaHJlZiA9
ICJyZXNvdXJjZXMvZGV2aWNlLWFzcGVjdC1yYXRpby5jc3MiOworICAgIGhlYWRFbGVtZW50LmFw
cGVuZENoaWxkKGxpbmtFbGVtZW50KTsKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXh0IGlzIGdy
ZWVuIGlmIHRoZSBtYXgtZGV2aWNlLWFzcGVjdC1yYXRpbyBtZWRpYSBxdWVyeSB3b3JrcyBwcm9w
ZXJseS4iKTsKKyAgICBzZXRUaW1lb3V0KCJ3YWl0Rm9yU3R5bGVzaGVldExvYWQoKSIsIHRpbWVv
dXQpOworfQorCitmdW5jdGlvbiB3YWl0Rm9yU3R5bGVzaGVldExvYWQoKQoreworICAgIGNvdW50
Kys7CisKKyAgICBpZiAoZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZGVzY3JpcHRpb24nKSwgbnVsbCkuY29sb3IgPT0gInJnYigw
LCAxMjgsIDApIikgeworICAgICAgICBzaG91bGRCZSgiZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVzY3JpcHRpb24nKSwgbnVs
bCkuY29sb3IiLCAiJ3JnYigwLCAxMjgsIDApJyIpOworICAgICAgICB3aW5kb3cuc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICAgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKyAgICAg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICAgICAgd2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgaWYgKGNvdW50ID4gbWF4Q291bnQpIHsKKyAgICAgICAgdGVz
dEZhaWxlZCgiU3R5bGVzaGVldCBkaWQgbm90IGxvYWQgaW4gIiArIChtYXhDb3VudCAqIHRpbWVv
dXQgLyAxMDAwKSArICIgc2Vjb25kKHMpLiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgc2V0VGltZW91dCgid2FpdEZvclN0eWxlc2hlZXRMb2FkKCkiLCB0aW1lb3V0KTsKK30KKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJkb1Rlc3QoKSI+Cis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvbWluLWRldmljZS1hc3BlY3QtcmF0aW8tZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL21pbi1kZXZpY2UtYXNw
ZWN0LXJhdGlvLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
Y3NzL21pbi1kZXZpY2UtYXNwZWN0LXJhdGlvLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxMCBAQAorVGhpcyB0ZXh0IGlzIGdyZWVuIGlmIHRoZSBtaW4tZGV2aWNlLWFzcGVj
dC1yYXRpbyBtZWRpYSBxdWVyeSB3b3JrcyBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVzY3JpcHRpb24nKSwgbnVsbCkuY29sb3IgaXMgJ3Jn
YigwLCAxMjgsIDApJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL21pbi1kZXZpY2UtYXNwZWN0LXJh
dGlvLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvbWluLWRldmljZS1h
c3BlY3QtcmF0aW8uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL21p
bi1kZXZpY2UtYXNwZWN0LXJhdGlvLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjcgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgor
PGhlYWQgaWQ9Im15aGVhZCI+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKK30KKwordmFyIGNvdW50ID0gMDsKK3ZhciBtYXhDb3VudCA9IDEw
OwordmFyIHRpbWVvdXQgPSAxMDA7CisKK2Z1bmN0aW9uIGRvVGVzdCgpCit7CisgICAgdmFyIGhl
YWRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15aGVhZCIpOworICAgIHZhciBs
aW5rRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTsKKyAgICBsaW5rRWxl
bWVudC5yZWwgPSAic3R5bGVzaGVldCI7CisgICAgdmFyIHdpZHRoOworICAgIHZhciBoZWlnaHQ7
CisgICAgaWYgKHNjcmVlbi53aWR0aCA+IHNjcmVlbi5oZWlnaHQpIHsKKyAgICAgICAgLy8gRm9y
IGEgbGFuZHNjYXBlIHNjcmVlbiwgYSByYXRpbyBvZiAxLzEgd2lsbCBhbHdheXMgYmUgbGVzcyB0
aGFuIHRoZSBzY3JlZW4gKGUuZy4sIDE2LzkpCisgICAgICAgIHdpZHRoID0gMTsKKyAgICAgICAg
aGVpZ2h0ID0gMTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBGb3IgYSBwb3J0cmFpdCBzY3Jl
ZW4sIGEgcmF0aW8gb2YgMS8xMDAgc2hvdWxkIGFsd2F5cyBiZSBsZXNzIHRoYW4gdGhlIHNjcmVl
biAoZS5nLiwgOS8xNikKKyAgICAgICAgLy8gRm9yIGEgc3F1YXJlIHNjcmVlbiwgYSByYXRpbyBv
ZiAxLzEwMCB3aWxsIGFsd2F5cyBiZSBsZXNzIHRoYW4gdGhlIHNjcmVlbiAoZS5nLiwgOS85KQor
ICAgICAgICB3aWR0aCA9IDE7CisgICAgICAgIGhlaWdodCA9IDEwMDsKKyAgICB9CisgICAgbGlu
a0VsZW1lbnQubWVkaWEgPSAic2NyZWVuIGFuZCAobWluLWRldmljZS1hc3BlY3QtcmF0aW86ICIg
KyB3aWR0aCArICIvIiArIGhlaWdodCArICIpIjsKKyAgICBsaW5rRWxlbWVudC5ocmVmID0gInJl
c291cmNlcy9kZXZpY2UtYXNwZWN0LXJhdGlvLmNzcyI7CisgICAgaGVhZEVsZW1lbnQuYXBwZW5k
Q2hpbGQobGlua0VsZW1lbnQpOworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRleHQgaXMgZ3JlZW4g
aWYgdGhlIG1pbi1kZXZpY2UtYXNwZWN0LXJhdGlvIG1lZGlhIHF1ZXJ5IHdvcmtzIHByb3Blcmx5
LiIpOworICAgIHNldFRpbWVvdXQoIndhaXRGb3JTdHlsZXNoZWV0TG9hZCgpIiwgdGltZW91dCk7
Cit9CisKK2Z1bmN0aW9uIHdhaXRGb3JTdHlsZXNoZWV0TG9hZCgpCit7CisgICAgY291bnQrKzsK
KworICAgIGlmIChkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdkZXNjcmlwdGlvbicpLCBudWxsKS5jb2xvciA9PSAicmdiKDAsIDEy
OCwgMCkiKSB7CisgICAgICAgIHNob3VsZEJlKCJkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXNjcmlwdGlvbicpLCBudWxsKS5j
b2xvciIsICIncmdiKDAsIDEyOCwgMCknIik7CisgICAgICAgIHdpbmRvdy5zdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworICAgICAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOworICAgICAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgICAgICB3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBpZiAoY291bnQgPiBtYXhDb3VudCkgeworICAgICAgICB0ZXN0RmFp
bGVkKCJTdHlsZXNoZWV0IGRpZCBub3QgbG9hZCBpbiAiICsgKG1heENvdW50ICogdGltZW91dCAv
IDEwMDApICsgIiBzZWNvbmQocykuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBz
ZXRUaW1lb3V0KCJ3YWl0Rm9yU3R5bGVzaGVldExvYWQoKSIsIHRpbWVvdXQpOworfQorPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImRvVGVzdCgpIj4KKzxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZXNvdXJjZXMvZGV2aWNlLWFzcGVjdC1yYXRpby5jc3MK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVzb3VyY2VzL2RldmljZS1hc3Bl
Y3QtcmF0aW8uY3NzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVzb3Vy
Y2VzL2RldmljZS1hc3BlY3QtcmF0aW8uY3NzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACitw
IHsgY29sb3I6IHJnYigwLCAxMjgsIDApOyB9Cg==
</data>
<flag name="review"
          id="7269"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>