<?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>146273</bug_id>
          
          <creation_ts>2015-06-23 20:16:46 -0700</creation_ts>
          <short_desc>Subpixel rendering: roundToDevicePixel() snaps to wrong value.</short_desc>
          <delta_ts>2015-06-30 13:06:43 -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>Layout and Rendering</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1104308</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2015-06-23 20:16:46 -0700</bug_when>
    <thetext>RenderLayer::paintForegroundForFragmentsWithPhase() gets a fragment with a foregroundRect of, say:

(WebCore::LayoutRect) $23 = (m_location = { x = -96452px (-6172928), y = 0px (0) }, m_size = { width = 146px (9344), height = 310px (19840) })

where -96452 is the left edge of the layer (negative, because we&apos;re in vertical-rl content).

snapRectToDevicePixels() is converting that to:

(const WebCore::FloatRect) $24 = {
  m_location = (m_x = -96451.5, m_y = 0)
  m_size = (m_width = 146, m_height = 310)
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104309</commentid>
    <comment_count>1</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2015-06-23 20:18:10 -0700</bug_when>
    <thetext>rdar://problem/18509840</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104311</commentid>
    <comment_count>2</comment_count>
      <attachid>255471</attachid>
    <who name="alan">zalan</who>
    <bug_when>2015-06-23 21:08:48 -0700</bug_when>
    <thetext>Created attachment 255471
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104391</commentid>
    <comment_count>3</comment_count>
      <attachid>255487</attachid>
    <who name="alan">zalan</who>
    <bug_when>2015-06-24 09:58:58 -0700</bug_when>
    <thetext>Created attachment 255487
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104408</commentid>
    <comment_count>4</comment_count>
      <attachid>255487</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-24 10:54:34 -0700</bug_when>
    <thetext>Comment on attachment 255487
Patch

Clearing flags on attachment: 255487

Committed r185916: &lt;http://trac.webkit.org/changeset/185916&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104409</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-24 10:54:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104492</commentid>
    <comment_count>6</comment_count>
      <attachid>255471</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-24 14:52:46 -0700</bug_when>
    <thetext>Comment on attachment 255471
Patch

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

&gt; Source/WebCore/platform/LayoutUnit.h:875
&gt;  inline float roundToDevicePixel(LayoutUnit value, const float pixelSnappingFactor, bool needsDirectionalRounding = false)

The const here adds nothing and should be removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104500</commentid>
    <comment_count>7</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2015-06-24 15:10:06 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 255471 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=255471&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/LayoutUnit.h:875
&gt; &gt;  inline float roundToDevicePixel(LayoutUnit value, const float pixelSnappingFactor, bool needsDirectionalRounding = false)
&gt; 
&gt; The const here adds nothing and should be removed.
Indeed. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105763</commentid>
    <comment_count>8</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2015-06-30 13:06:43 -0700</bug_when>
    <thetext>Addressing post-review comment: 
http://trac.webkit.org/changeset/186128</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255471</attachid>
            <date>2015-06-23 21:08:48 -0700</date>
            <delta_ts>2015-06-24 09:58:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146273-20150623210804.patch</filename>
            <type>text/plain</type>
            <size>4810</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1NzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODQ1NDBhYjJiMmE2MjA5
MDViYzQ1MGU0YTJhOTgyYzIzZGZmNWJhZC4uYTlhMjczNDYxMTg5MjQxY2I0N2E4ODYxNmUzZWVh
MDE4MTM2M2IzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE1LTA2LTIzICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5n
OiByb3VuZFRvRGV2aWNlUGl4ZWwoKSBzbmFwcyB0byB3cm9uZyB2YWx1ZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjI3MworICAgICAgICByZGFy
Oi8vcHJvYmxlbS8xODUwOTg0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIER1ZSB0byB0aGUgZmxvYXRpbmcgcG9pbnQgYXBwcm94aW1hdGUgcmVwcmVz
ZW50YXRpb24sIHdlIGNhbid0IGFsd2F5cyBwcm9kdWNlCisgICAgICAgIHRoZSBjb3JyZWN0IHNu
YXAgdmFsdWUuIFRoaXMgcGF0Y2ggYWRkcmVzc2VzIHRoZSBpc3N1ZSBieSByZW1vdmluZyByZWR1
bmRhbnQga0ZpeGVkUG9pbnREZW5vbWluYXRvciBtdWx0aXBsaWNhdGlvbgorICAgICAgICBhbmQg
YnkgY2hhbmdpbmcgdGhlIHJvdW5kaW5nIGluIHJvdW5kVG9EZXZpY2VQaXhlbCgpIGZyb20gZmxv
YXQgdG8gZG91YmxlLgorCisgICAgICAgIEFQSSB0ZXN0IGlzIGFkZGVkLgorCisgICAgICAgICog
cGxhdGZvcm0vTGF5b3V0VW5pdC5oOgorICAgICAgICAoV2ViQ29yZTo6cm91bmRUb0RldmljZVBp
eGVsKToKKwogMjAxNS0wNi0xNyAgQ29ucmFkIFNodWx0eiAgPGNvbnJhZF9zaHVsdHpAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJFR1JFU1NJT046IGpzL2RvbS9uYXZpZ2F0b3ItcGx1Z2lucy1jcmFz
aC5odG1sIGFzc2VydHMgYSBsb3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0xheW91dFVuaXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xheW91dFVuaXQuaAppbmRl
eCBkNmJmM2U4OGQzYTUzNzg2ZTE3NjIwMjBjNzNjMjIwYTIwZjMyODk5Li40MGRhNGU0YTI5OTVj
MmE1NmZlZmFiOGFlODMwZTU3MWYwMjcxOGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9MYXlvdXRVbml0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGF5b3V0
VW5pdC5oCkBAIC04NzQsMTYgKzg3NCwxNyBAQCBpbmxpbmUgaW50IGZsb29yVG9JbnQoTGF5b3V0
VW5pdCB2YWx1ZSkKIAogaW5saW5lIGZsb2F0IHJvdW5kVG9EZXZpY2VQaXhlbChMYXlvdXRVbml0
IHZhbHVlLCBjb25zdCBmbG9hdCBwaXhlbFNuYXBwaW5nRmFjdG9yLCBib29sIG5lZWRzRGlyZWN0
aW9uYWxSb3VuZGluZyA9IGZhbHNlKQogewotICAgIGF1dG8gcm91bmRJbnRlcm5hbCA9IFsmXSAo
ZmxvYXQgdmFsdWVUb1JvdW5kKSB7IHJldHVybiByb3VuZGYoKHZhbHVlVG9Sb3VuZCAqIHBpeGVs
U25hcHBpbmdGYWN0b3IpIC8ga0ZpeGVkUG9pbnREZW5vbWluYXRvcikgLyBwaXhlbFNuYXBwaW5n
RmFjdG9yOyB9OworICAgIGRvdWJsZSB2YWx1ZVRvUm91bmQgPSB2YWx1ZS50b0RvdWJsZSgpOwor
ICAgIGlmIChuZWVkc0RpcmVjdGlvbmFsUm91bmRpbmcpCisgICAgICAgIHZhbHVlVG9Sb3VuZCAt
PSBMYXlvdXRVbml0OjplcHNpbG9uKCkgLyAoMiAqIGtGaXhlZFBvaW50RGVub21pbmF0b3IpOwog
Ci0gICAgZmxvYXQgYWRqdXN0ZWRWYWx1ZSA9IHZhbHVlLnJhd1ZhbHVlKCkgLSAobmVlZHNEaXJl
Y3Rpb25hbFJvdW5kaW5nID8gTGF5b3V0VW5pdDo6ZXBzaWxvbigpIC8gMi4wZiA6IDApOwotICAg
IGlmIChhZGp1c3RlZFZhbHVlID49IDApCi0gICAgICAgIHJldHVybiByb3VuZEludGVybmFsKGFk
anVzdGVkVmFsdWUpOworICAgIGlmICh2YWx1ZVRvUm91bmQgPj0gMCkKKyAgICAgICAgcmV0dXJu
IHJvdW5kKHZhbHVlVG9Sb3VuZCAqIHBpeGVsU25hcHBpbmdGYWN0b3IpIC8gcGl4ZWxTbmFwcGlu
Z0ZhY3RvcjsKIAogICAgIC8vIFRoaXMgYWRqdXN0cyBkaXJlY3Rpb25hbCByb3VuZGluZyBvbiBu
ZWdhdGl2ZSBoYWxmd2F5IHZhbHVlcy4gSXQgcHJvZHVjZXMgdGhlIHNhbWUgZGlyZWN0aW9uIGZv
ciBib3RoIG5lZ2F0aXZlIGFuZCBwb3NpdGl2ZSB2YWx1ZXMuCiAgICAgLy8gSXQgaGVscHMgc25h
cHBpbmcgcmVsYXRpdmUgbmVnYXRpdmUgY29vcmRpbmF0ZXMgdG8gdGhlIHNhbWUgcG9zaXRpb24g
YXMgaWYgdGhleSB3ZXJlIHBvc2l0aXZlIGFic29sdXRlIGNvb3JkaW5hdGVzLgotICAgIGZsb2F0
IHRyYW5zbGF0ZU9yaWdpbiA9IGZhYnNmKGFkanVzdGVkVmFsdWUgLSBMYXlvdXRVbml0Ojpmcm9t
UGl4ZWwoMSkpOwotICAgIHJldHVybiByb3VuZEludGVybmFsKGFkanVzdGVkVmFsdWUgKyAodHJh
bnNsYXRlT3JpZ2luICoga0ZpeGVkUG9pbnREZW5vbWluYXRvcikpIC0gdHJhbnNsYXRlT3JpZ2lu
OworICAgIHVuc2lnbmVkIHRyYW5zbGF0ZU9yaWdpbiA9IC12YWx1ZS5yYXdWYWx1ZSgpOworICAg
IHJldHVybiAocm91bmQoKHZhbHVlVG9Sb3VuZCArIHRyYW5zbGF0ZU9yaWdpbikgKiBwaXhlbFNu
YXBwaW5nRmFjdG9yKSAvIHBpeGVsU25hcHBpbmdGYWN0b3IpIC0gdHJhbnNsYXRlT3JpZ2luOwog
fQogCiBpbmxpbmUgZmxvYXQgZmxvb3JUb0RldmljZVBpeGVsKExheW91dFVuaXQgdmFsdWUsIGZs
b2F0IHBpeGVsU25hcHBpbmdGYWN0b3IpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggOTkwZmZjZGQ0OWQ1OTJhYjE0MDVhZDY0Zjk4NmU4NTk0ZjUy
Njc3ZS4uYjFhN2RkNzE1MmNkMTdjMjAxOGFmMDUxYjkwNDAyOWNjNmUzZTYwNSAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBA
CisyMDE1LTA2LTIzICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAg
U3VicGl4ZWwgcmVuZGVyaW5nOiByb3VuZFRvRGV2aWNlUGl4ZWwoKSBzbmFwcyB0byB3cm9uZyB2
YWx1ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
NjI3MworICAgICAgICByZGFyOi8vcHJvYmxlbS8xODUwOTg0MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIER1ZSB0byB0aGUgZmxvYXRpbmcgcG9pbnQg
YXBwcm94aW1hdGUgcmVwcmVzZW50YXRpb24sIHdlIGNhbid0IGFsd2F5cyBwcm9kdWNlCisgICAg
ICAgIHRoZSBjb3JyZWN0IHNuYXAgdmFsdWUuIFRoaXMgcGF0Y2ggYWRkcmVzc2VzIHRoZSBpc3N1
ZSBieSByZW1vdmluZyByZWR1bmRhbnQga0ZpeGVkUG9pbnREZW5vbWluYXRvciBtdWx0aXBsaWNh
dGlvbgorICAgICAgICBhbmQgYnkgY2hhbmdpbmcgdGhlIHJvdW5kaW5nIGluIHJvdW5kVG9EZXZp
Y2VQaXhlbCgpIGZyb20gZmxvYXQgdG8gZG91YmxlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0xheW91dFVuaXQuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisKIDIwMTUtMDYtMTggIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQuIEFkZCBNYXR0IERhaXRlciBhcyBhIGNvbnRyaWJ1dG9yLgpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0xheW91dFVuaXQuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0xheW91dFVuaXQuY3BwCmluZGV4IGZl
ODgwZWY5MWIzMDYyYWNmNzkyMDBhNGEwOWI4N2E3ZDg5NzI1MzUuLjg0ZTQ2MGY2MmY2MDM3YmY1
ZjAyYTdjYzA4NGNlN2VlMmVlYjZkODAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9MYXlvdXRVbml0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvTGF5b3V0VW5pdC5jcHAKQEAgLTIzMSw1ICsyMzEsMTkgQEAgVEVTVChXZWJD
b3JlTGF5b3V0VW5pdCwgTGF5b3V0VW5pdEZsb29yKQogICAgIEFTU0VSVF9FUSgoTGF5b3V0VW5p
dChpbnRNaW5Gb3JMYXlvdXRVbml0KSArIExheW91dFVuaXQoMSkpLmZsb29yKCksIGludE1pbkZv
ckxheW91dFVuaXQgKyAxKTsKIH0KIAorVEVTVChXZWJDb3JlTGF5b3V0VW5pdCwgTGF5b3V0VW5p
dFBpeGVsU25hcHBpbmcpCit7CisgICAgZm9yIChpbnQgaSA9IC0xMDAwMDA7IGkgPD0gMTAwMDAw
OyArK2kpIHsKKyAgICAgICAgQVNTRVJUX0VRKHJvdW5kVG9EZXZpY2VQaXhlbChMYXlvdXRVbml0
KGkpLCAxKSwgaSk7CisgICAgICAgIEFTU0VSVF9FUShyb3VuZFRvRGV2aWNlUGl4ZWwoTGF5b3V0
VW5pdChpKSwgMiksIGkpOworICAgICAgICBBU1NFUlRfRVEocm91bmRUb0RldmljZVBpeGVsKExh
eW91dFVuaXQoaSksIDMpLCBpKTsKKyAgICB9CisKKyAgICBmb3IgKGZsb2F0IGkgPSAtMTAwMDA7
IGkgPCAwOyBpID0gaSArIDAuNSkKKyAgICAgICAgQVNTRVJUX0ZMT0FUX0VRKHJvdW5kVG9EZXZp
Y2VQaXhlbChMYXlvdXRVbml0KGkpLCAyKSwgaSk7CisKKyAgICBmb3IgKGZsb2F0IGkgPSAtMTAw
MDAuMjU7IGkgPCAwOyBpID0gaSArIDAuNSkKKyAgICAgICAgQVNTRVJUX0ZMT0FUX0VRKHJvdW5k
VG9EZXZpY2VQaXhlbChMYXlvdXRVbml0KGkpLCAyKSwgaSArIDAuMjUpOworfQogCiB9IC8vIG5h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255487</attachid>
            <date>2015-06-24 09:58:58 -0700</date>
            <delta_ts>2015-06-24 10:54:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146273-20150624095813.patch</filename>
            <type>text/plain</type>
            <size>4919</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1OTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDAyYTBiMWE1YTUyYmM1
MGJlNjhhNjI3MmRhOGYyYjRhNmY4NzE1MC4uM2VmODgwNDhmMGVjOTc1MmU2NTMwMmQyOTFhMzFi
ZDAwNWNlZGMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE1LTA2LTI0ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5n
OiByb3VuZFRvRGV2aWNlUGl4ZWwoKSBzbmFwcyB0byB3cm9uZyB2YWx1ZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjI3MworICAgICAgICByZGFy
Oi8vcHJvYmxlbS8xODUwOTg0MAorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4K
KworICAgICAgICBEdWUgdG8gdGhlIGZsb2F0aW5nIHBvaW50IGFwcHJveGltYXRlIHJlcHJlc2Vu
dGF0aW9uLCB3ZSBjYW4ndCBhbHdheXMgcHJvZHVjZQorICAgICAgICB0aGUgY29ycmVjdCBzbmFw
IHZhbHVlLiBUaGlzIHBhdGNoIGFkZHJlc3NlcyB0aGUgaXNzdWUgYnkgcmVtb3ZpbmcgcmVkdW5k
YW50IGtGaXhlZFBvaW50RGVub21pbmF0b3IgbXVsdGlwbGljYXRpb24KKyAgICAgICAgYW5kIGJ5
IGNoYW5naW5nIHRoZSByb3VuZGluZyBpbiByb3VuZFRvRGV2aWNlUGl4ZWwoKSBmcm9tIGZsb2F0
IHRvIGRvdWJsZS4KKworICAgICAgICBBUEkgdGVzdCBpcyBhZGRlZC4KKworICAgICAgICAqIHBs
YXRmb3JtL0xheW91dFVuaXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OnJvdW5kVG9EZXZpY2VQaXhl
bCk6CisKIDIwMTUtMDYtMjMgIE1hdHQgUmFqY2EgIDxtcmFqY2FAYXBwbGUuY29tPgogCiAgICAg
ICAgIE1lZGlhU2Vzc2lvbjogU3VwcG9ydCBzZXR0aW5nIG9mIG1ldGFkYXRhCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYXlvdXRVbml0LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9MYXlvdXRVbml0LmgKaW5kZXggZDZiZjNlODhkM2E1Mzc4NmUxNzYyMDIwYzczYzIy
MGEyMGYzMjg5OS4uYTY0N2M1MTIwOTkxNGNlMTZhMmE5ODcxOWQ3YTA3YjA4MThjOGQyNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGF5b3V0VW5pdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xheW91dFVuaXQuaApAQCAtODc0LDE2ICs4NzQsMTggQEAgaW5s
aW5lIGludCBmbG9vclRvSW50KExheW91dFVuaXQgdmFsdWUpCiAKIGlubGluZSBmbG9hdCByb3Vu
ZFRvRGV2aWNlUGl4ZWwoTGF5b3V0VW5pdCB2YWx1ZSwgY29uc3QgZmxvYXQgcGl4ZWxTbmFwcGlu
Z0ZhY3RvciwgYm9vbCBuZWVkc0RpcmVjdGlvbmFsUm91bmRpbmcgPSBmYWxzZSkKIHsKLSAgICBh
dXRvIHJvdW5kSW50ZXJuYWwgPSBbJl0gKGZsb2F0IHZhbHVlVG9Sb3VuZCkgeyByZXR1cm4gcm91
bmRmKCh2YWx1ZVRvUm91bmQgKiBwaXhlbFNuYXBwaW5nRmFjdG9yKSAvIGtGaXhlZFBvaW50RGVu
b21pbmF0b3IpIC8gcGl4ZWxTbmFwcGluZ0ZhY3RvcjsgfTsKKyAgICBkb3VibGUgdmFsdWVUb1Jv
dW5kID0gdmFsdWUudG9Eb3VibGUoKTsKKyAgICBpZiAobmVlZHNEaXJlY3Rpb25hbFJvdW5kaW5n
KQorICAgICAgICB2YWx1ZVRvUm91bmQgLT0gTGF5b3V0VW5pdDo6ZXBzaWxvbigpIC8gKDIgKiBr
Rml4ZWRQb2ludERlbm9taW5hdG9yKTsKIAotICAgIGZsb2F0IGFkanVzdGVkVmFsdWUgPSB2YWx1
ZS5yYXdWYWx1ZSgpIC0gKG5lZWRzRGlyZWN0aW9uYWxSb3VuZGluZyA/IExheW91dFVuaXQ6OmVw
c2lsb24oKSAvIDIuMGYgOiAwKTsKLSAgICBpZiAoYWRqdXN0ZWRWYWx1ZSA+PSAwKQotICAgICAg
ICByZXR1cm4gcm91bmRJbnRlcm5hbChhZGp1c3RlZFZhbHVlKTsKKyAgICBpZiAodmFsdWVUb1Jv
dW5kID49IDApCisgICAgICAgIHJldHVybiByb3VuZCh2YWx1ZVRvUm91bmQgKiBwaXhlbFNuYXBw
aW5nRmFjdG9yKSAvIHBpeGVsU25hcHBpbmdGYWN0b3I7CiAKICAgICAvLyBUaGlzIGFkanVzdHMg
ZGlyZWN0aW9uYWwgcm91bmRpbmcgb24gbmVnYXRpdmUgaGFsZndheSB2YWx1ZXMuIEl0IHByb2R1
Y2VzIHRoZSBzYW1lIGRpcmVjdGlvbiBmb3IgYm90aCBuZWdhdGl2ZSBhbmQgcG9zaXRpdmUgdmFs
dWVzLgorICAgIC8vIEluc3RlYWQgb2Ygcm91bmRpbmcgbmVnYXRpdmUgaGFsZndheSBjYXNlcyBh
d2F5IGZyb20gemVybywgd2UgdHJhbnNsYXRlIHRoZW0gdG8gcG9zaXRpdmUgdmFsdWVzIGJlZm9y
ZSByb3VuZGluZy4KICAgICAvLyBJdCBoZWxwcyBzbmFwcGluZyByZWxhdGl2ZSBuZWdhdGl2ZSBj
b29yZGluYXRlcyB0byB0aGUgc2FtZSBwb3NpdGlvbiBhcyBpZiB0aGV5IHdlcmUgcG9zaXRpdmUg
YWJzb2x1dGUgY29vcmRpbmF0ZXMuCi0gICAgZmxvYXQgdHJhbnNsYXRlT3JpZ2luID0gZmFic2Yo
YWRqdXN0ZWRWYWx1ZSAtIExheW91dFVuaXQ6OmZyb21QaXhlbCgxKSk7Ci0gICAgcmV0dXJuIHJv
dW5kSW50ZXJuYWwoYWRqdXN0ZWRWYWx1ZSArICh0cmFuc2xhdGVPcmlnaW4gKiBrRml4ZWRQb2lu
dERlbm9taW5hdG9yKSkgLSB0cmFuc2xhdGVPcmlnaW47CisgICAgdW5zaWduZWQgdHJhbnNsYXRl
T3JpZ2luID0gLXZhbHVlLnJhd1ZhbHVlKCk7CisgICAgcmV0dXJuIChyb3VuZCgodmFsdWVUb1Jv
dW5kICsgdHJhbnNsYXRlT3JpZ2luKSAqIHBpeGVsU25hcHBpbmdGYWN0b3IpIC8gcGl4ZWxTbmFw
cGluZ0ZhY3RvcikgLSB0cmFuc2xhdGVPcmlnaW47CiB9CiAKIGlubGluZSBmbG9hdCBmbG9vclRv
RGV2aWNlUGl4ZWwoTGF5b3V0VW5pdCB2YWx1ZSwgZmxvYXQgcGl4ZWxTbmFwcGluZ0ZhY3RvcikK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1MGIw
NmYyN2E0NWZiM2JhOGY3OTg3OGExZWE1YjNhZWE4NDVhZjRiLi44ZWZiMGIxZTA5ZDQ1ZTczNjIw
NmYxZjAxMzk4MzFmMmYxYzgwMTcxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTUtMDYtMjQgIFphbGFuIEJ1anRh
cyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBTdWJwaXhlbCByZW5kZXJpbmc6IHJvdW5k
VG9EZXZpY2VQaXhlbCgpIHNuYXBzIHRvIHdyb25nIHZhbHVlLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2MjczCisgICAgICAgIHJkYXI6Ly9wcm9i
bGVtLzE4NTA5ODQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAg
ICAgIER1ZSB0byB0aGUgZmxvYXRpbmcgcG9pbnQgYXBwcm94aW1hdGUgcmVwcmVzZW50YXRpb24s
IHdlIGNhbid0IGFsd2F5cyBwcm9kdWNlCisgICAgICAgIHRoZSBjb3JyZWN0IHNuYXAgdmFsdWUu
IFRoaXMgcGF0Y2ggYWRkcmVzc2VzIHRoZSBpc3N1ZSBieSByZW1vdmluZyByZWR1bmRhbnQga0Zp
eGVkUG9pbnREZW5vbWluYXRvciBtdWx0aXBsaWNhdGlvbgorICAgICAgICBhbmQgYnkgY2hhbmdp
bmcgdGhlIHJvdW5kaW5nIGluIHJvdW5kVG9EZXZpY2VQaXhlbCgpIGZyb20gZmxvYXQgdG8gZG91
YmxlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0xheW91dFVuaXQu
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMTUtMDYtMjMgIERld2Vp
IFpodSAgPGRld2VpX3podUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVmYWN0b3JpbmcgYmVuY2ht
YXJrIHJ1bm5lciBzY3JpcHQgdG8gZm9sbG93IHBlcDggY29kZSBzdHlsZS4KZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9MYXlvdXRVbml0LmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9MYXlvdXRVbml0LmNwcAppbmRleCBmZTg4MGVm
OTFiMzA2MmFjZjc5MjAwYTRhMDliODdhN2Q4OTcyNTM1Li44NGU0NjBmNjJmNjAzN2JmNWYwMmE3
Y2MwODRjZTdlZTJlZWI2ZDgwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvTGF5b3V0VW5pdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0xheW91dFVuaXQuY3BwCkBAIC0yMzEsNSArMjMxLDE5IEBAIFRFU1QoV2ViQ29yZUxh
eW91dFVuaXQsIExheW91dFVuaXRGbG9vcikKICAgICBBU1NFUlRfRVEoKExheW91dFVuaXQoaW50
TWluRm9yTGF5b3V0VW5pdCkgKyBMYXlvdXRVbml0KDEpKS5mbG9vcigpLCBpbnRNaW5Gb3JMYXlv
dXRVbml0ICsgMSk7CiB9CiAKK1RFU1QoV2ViQ29yZUxheW91dFVuaXQsIExheW91dFVuaXRQaXhl
bFNuYXBwaW5nKQoreworICAgIGZvciAoaW50IGkgPSAtMTAwMDAwOyBpIDw9IDEwMDAwMDsgKytp
KSB7CisgICAgICAgIEFTU0VSVF9FUShyb3VuZFRvRGV2aWNlUGl4ZWwoTGF5b3V0VW5pdChpKSwg
MSksIGkpOworICAgICAgICBBU1NFUlRfRVEocm91bmRUb0RldmljZVBpeGVsKExheW91dFVuaXQo
aSksIDIpLCBpKTsKKyAgICAgICAgQVNTRVJUX0VRKHJvdW5kVG9EZXZpY2VQaXhlbChMYXlvdXRV
bml0KGkpLCAzKSwgaSk7CisgICAgfQorCisgICAgZm9yIChmbG9hdCBpID0gLTEwMDAwOyBpIDwg
MDsgaSA9IGkgKyAwLjUpCisgICAgICAgIEFTU0VSVF9GTE9BVF9FUShyb3VuZFRvRGV2aWNlUGl4
ZWwoTGF5b3V0VW5pdChpKSwgMiksIGkpOworCisgICAgZm9yIChmbG9hdCBpID0gLTEwMDAwLjI1
OyBpIDwgMDsgaSA9IGkgKyAwLjUpCisgICAgICAgIEFTU0VSVF9GTE9BVF9FUShyb3VuZFRvRGV2
aWNlUGl4ZWwoTGF5b3V0VW5pdChpKSwgMiksIGkgKyAwLjI1KTsKK30KIAogfSAvLyBuYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>