<?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>146916</bug_id>
          
          <creation_ts>2015-07-13 14:34:06 -0700</creation_ts>
          <short_desc>Input buttons rendered at the wrong size when pinching-to-zoom</short_desc>
          <delta_ts>2015-07-15 07:11:46 -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>Mac</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>
          
          <blocked>146947</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1109226</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2015-07-13 14:34:06 -0700</bug_when>
    <thetext>When zooming in with the trackpad, the button image remains at a constant height to prevent stretching upon zoom. While this was originally intended, it has been agreed that a better behavior would be to scale the button up as the user zooms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109227</commentid>
    <comment_count>1</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2015-07-13 14:34:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/9342801&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109255</commentid>
    <comment_count>2</comment_count>
      <attachid>256736</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2015-07-13 15:47:42 -0700</bug_when>
    <thetext>Created attachment 256736
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109256</commentid>
    <comment_count>3</comment_count>
      <attachid>256736</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-07-13 15:49:52 -0700</bug_when>
    <thetext>Comment on attachment 256736
Patch

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

&gt; Source/WebCore/platform/mac/ThemeMac.mm:573
&gt; +    std::unique_ptr&lt;ImageBuffer&gt; imageBuffer = ImageBuffer::createCompatibleBuffer(inflatedRect.size(), deviceScaleFactor, ColorSpaceDeviceRGB, context, false);
&gt; +    LocalCurrentGraphicsContext localContext(imageBuffer-&gt;context());

I think we should only use this intermedia buffer if the page scale is != 1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109259</commentid>
    <comment_count>4</comment_count>
      <attachid>256736</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2015-07-13 15:54:09 -0700</bug_when>
    <thetext>Comment on attachment 256736
Patch

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

&gt; Source/WebCore/ChangeLog:1
&gt; +2015-07-13  Wenson Hsieh  &lt;whsieh@berkeley.edu&gt;

Hm...I really have to figure out why it still defaults to this email

&gt;&gt; Source/WebCore/platform/mac/ThemeMac.mm:573
&gt;&gt; +    LocalCurrentGraphicsContext localContext(imageBuffer-&gt;context());
&gt; 
&gt; I think we should only use this intermedia buffer if the page scale is != 1.

Good idea! I&apos;ll do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109362</commentid>
    <comment_count>5</comment_count>
      <attachid>256770</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2015-07-14 08:35:39 -0700</bug_when>
    <thetext>Created attachment 256770
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109367</commentid>
    <comment_count>6</comment_count>
      <attachid>256770</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-07-14 08:47:05 -0700</bug_when>
    <thetext>Comment on attachment 256770
Patch

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

&gt; Source/WebCore/platform/mac/ThemeMac.mm:574
&gt; +    std::unique_ptr&lt;ImageBuffer&gt; imageBuffer = nullptr;

No need to initialize with nullptr.

&gt; Source/WebCore/platform/mac/ThemeMac.mm:603
&gt; +            std::unique_ptr&lt;ImageBuffer&gt; focusRectImageBuffer = ImageBuffer::createCompatibleBuffer(inflatedRect.size() + 2 * FloatSize(focusWidth, focusWidth), deviceScaleFactor, ColorSpaceDeviceRGB, context, false);

Can we just draw the buttonCell and the focus ring into the same buffer? Just need to make a larger buffer up front.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109372</commentid>
    <comment_count>7</comment_count>
      <attachid>256770</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2015-07-14 09:16:43 -0700</bug_when>
    <thetext>Comment on attachment 256770
Patch

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

&gt;&gt; Source/WebCore/platform/mac/ThemeMac.mm:574
&gt;&gt; +    std::unique_ptr&lt;ImageBuffer&gt; imageBuffer = nullptr;
&gt; 
&gt; No need to initialize with nullptr.

Got it. Fixed!

&gt;&gt; Source/WebCore/platform/mac/ThemeMac.mm:603
&gt;&gt; +            std::unique_ptr&lt;ImageBuffer&gt; focusRectImageBuffer = ImageBuffer::createCompatibleBuffer(inflatedRect.size() + 2 * FloatSize(focusWidth, focusWidth), deviceScaleFactor, ColorSpaceDeviceRGB, context, false);
&gt; 
&gt; Can we just draw the buttonCell and the focus ring into the same buffer? Just need to make a larger buffer up front.

Sounds good. Done!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109374</commentid>
    <comment_count>8</comment_count>
      <attachid>256772</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2015-07-14 09:21:17 -0700</bug_when>
    <thetext>Created attachment 256772
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109405</commentid>
    <comment_count>9</comment_count>
      <attachid>256772</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-07-14 11:39:20 -0700</bug_when>
    <thetext>Comment on attachment 256772
Patch

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

&gt; Source/WebCore/platform/mac/ThemeMac.mm:602
&gt; +    if (states &amp; ControlStates::FocusState) {

At some point, we should probably not paint the focus ring into the ImageBuffer, and instead paint it straight into the page but inflated to the scaled size of the button, so that it is the right thickness. Maybe leave a FIXME?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109412</commentid>
    <comment_count>10</comment_count>
      <attachid>256772</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-07-14 12:09:25 -0700</bug_when>
    <thetext>Comment on attachment 256772
Patch

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

&gt; Source/WebCore/platform/mac/ThemeMac.mm:610
&gt; +        if (shouldUseImageBuffer) {
&gt; +            drawCellFocusRing(buttonCell, CGRectMake(focusThickness, focusThickness, inflatedRect.width(), inflatedRect.height()), view);
&gt; +            context-&gt;drawImageBuffer(imageBuffer.get(), ColorSpaceDeviceRGB, inflatedRect.location() - FloatSize(focusThickness, focusThickness));
&gt; +        } else
&gt; +            drawCellFocusRing(buttonCell, inflatedRect, view);
&gt; +    }
&gt; +    
&gt; +    controlStates-&gt;setNeedsRepaint(false);

While we disabled animating the focus ring during the last cycle, I think we should at least keep this part of the logic in place. i.e. that drawCellFocusRing returns a boolean that we use to set needsRepaint.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109413</commentid>
    <comment_count>11</comment_count>
      <attachid>256772</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-07-14 12:12:34 -0700</bug_when>
    <thetext>Comment on attachment 256772
Patch

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

&gt; Source/WebCore/platform/mac/ThemeMac.mm:540
&gt; +static void paintButton(ControlPart part, ControlStates* controlStates, GraphicsContext* context, const FloatRect&amp; zoomedRect, float zoomFactor, ScrollView* scrollView, float deviceScaleFactor, float pageScaleFactor)
&gt;  {

Now that we have the scale factors, we should use them to pick the most appropriate control size. i.e. if we have a small control and are really zoomed in, it doesn&apos;t make sense to draw a small bitmap in a huge area, when we can get the bigger bitmap by asking for a larger control.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109415</commentid>
    <comment_count>12</comment_count>
      <attachid>256772</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-07-14 12:25:34 -0700</bug_when>
    <thetext>Comment on attachment 256772
Patch

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

&gt;&gt; Source/WebCore/platform/mac/ThemeMac.mm:540
&gt;&gt;  {
&gt; 
&gt; Now that we have the scale factors, we should use them to pick the most appropriate control size. i.e. if we have a small control and are really zoomed in, it doesn&apos;t make sense to draw a small bitmap in a huge area, when we can get the bigger bitmap by asking for a larger control.

After some discussion on IRC, we&apos;ll move this to a followup patch (maybe next cycle). The issue is that we need to know the metrics of all the controls in order to draw the bigger control at the size of the smaller controls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109467</commentid>
    <comment_count>13</comment_count>
      <attachid>256772</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-14 14:40:46 -0700</bug_when>
    <thetext>Comment on attachment 256772
Patch

Clearing flags on attachment: 256772

Committed r186817: &lt;http://trac.webkit.org/changeset/186817&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109468</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-14 14:40:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109624</commentid>
    <comment_count>15</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-07-15 07:11:46 -0700</bug_when>
    <thetext>Follow-up build fix in Bug 146947:

Committed r186825: &lt;http://trac.webkit.org/changeset/186825&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256736</attachid>
            <date>2015-07-13 15:47:42 -0700</date>
            <delta_ts>2015-07-14 08:35:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146916-20150713154636.patch</filename>
            <type>text/plain</type>
            <size>9643</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2NzA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTU3NDFmZGFkYmIyOWFi
YzQ0YTU3MzZiZWExNmY1Yjg4YjYwNDUxZi4uMjFiM2E3MDU2NDdlMTViZjgxOTYwYzI3ZWI4ZWU2
NzcxNDJlZmFhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE1LTA3LTEzICBXZW5z
b24gSHNpZWggIDx3aHNpZWhAYmVya2VsZXkuZWR1PgorCisgICAgICAgIElucHV0IGJ1dHRvbnMg
cmVuZGVyZWQgYXQgdGhlIHdyb25nIHNpemUgd2hlbiBwaW5jaGluZy10by16b29tCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY5MTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTY2FsZXMgYnV0dG9ucyBh
bmQgdGhlaXIgZm9jdXMgcmVjdHMgdXAgd2hlbiBwaW5jaGluZyB0byB6b29tLiBXb3JrIGluIHBy
b2dyZXNzIHdoaWxlIEkgZmlndXJlCisgICAgICAgIG91dCBob3cgdG8gd3JpdGUgdGVzdHMgZm9y
IHRoaXMuIFdlIG1heSBhbHNvIHdhbnQgdG8gZmlsZSBhIG5ldyBidWcgcmVnYXJkaW5nIHRoZSB3
YXkgdGhlIGZvY3VzCisgICAgICAgIHJlY3QgYWxzbyBzY2FsZXMgdXAgd2hlbiB6b29taW5nLgor
CisgICAgICAgICogcGxhdGZvcm0vVGhlbWUuaDogTW9kaWZpZWQgc2lnbmF0dXJlIG9mIFRoZW1l
OjpwYWludC4KKyAgICAgICAgKFdlYkNvcmU6OlRoZW1lOjpwYWludCk6IEFkZGVkIHBsdW1iaW5n
IG5lY2Vzc2FyeSB0byBzZW5kIHRoZSBkZXZpY2Ugc2NhbGUgZmFjdG9yIHRvIHBhaW50QnV0dG9u
LgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UaGVtZU1hYy5oOiBNb2RpZmllZCBzaWduYXR1cmUg
b2YgcGFpbnRCdXR0b24uCisgICAgICAgICogcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tOiBBZGRl
ZCBJbWFnZUJ1ZmZlci5oIGhlYWRlci4KKyAgICAgICAgKFdlYkNvcmU6OmJ1dHRvbkZvY3VzUmVj
dE91dGxpbmVXaWR0aCk6IFJlcHJlc2VudHMgdGhlIHdpZHRoIG9mIHRoZSBmb2N1cyByZWN0IG9m
IGEgYnV0dG9uLiBVc2VkIGJ5IHBhaW50QnV0dG9uCisgICAgICAgICAgICB0byBkZXRlcm1pbmUg
dGhlIHNpemUgb2YgdGhlIEltYWdlQnVmZmVyIHJlcXVpcmVkIHRvIGRyYXcgYSBmb2N1cyByZWN0
LgorICAgICAgICAoV2ViQ29yZTo6cGFpbnRCdXR0b24pOiBDaGFuZ2VkIHRvIHBhaW50IGJ1dHRv
biBjZWxscyBhbmQgdGhlIGZvY3VzIHJlY3QsIGlmIGFwcGxpY2FibGUsIHRvIGEgdGVtcG9yYXJ5
IEltYWdlQnVmZmVyCisgICAgICAgICAgICBiZWZvcmUgcGFpbnRpbmcgdGhlIEltYWdlQnVmZmVy
IG9udG8gdGhlIHZpZXcuIFJlZmFjdG9yZWQgdG8gcmVjZWl2ZSBhIGRldmljZVNjYWxlRmFjdG9y
LCB1c2VkIHdoZW4gcGFpbnRpbmcgdG8KKyAgICAgICAgICAgIHRoZSBJbWFnZUJ1ZmZlci4KKyAg
ICAgICAgKFdlYkNvcmU6OlRoZW1lTWFjOjpwYWludCk6IEFkZGVkIHBsdW1iaW5nIG5lY2Vzc2Fy
eSB0byBzZW5kIHRoZSBkZXZpY2Ugc2NhbGUgZmFjdG9yIHRvIHBhaW50QnV0dG9uLgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6IE1vZGlmaWVkIHNpZ25hdHVyZSBvZiBSZW5k
ZXJUaGVtZTo6cGFpbnQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnQpOiBB
ZGRlZCBwbHVtYmluZyBuZWNlc3NhcnkgdG8gc2VuZCB0aGUgZGV2aWNlIHNjYWxlIGZhY3RvciB0
byBwYWludEJ1dHRvbi4KKwogMjAxNS0wNy0xMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtXSzJdIERpYWdub3N0aWMgbG9nZ2luZyBtZXNzYWdlcyBhcmUgY2F1
c2luZyB0b28gbXVjaCBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Ro
ZW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZS5oCmluZGV4IDEwZTBjNzczZmUy
MjQwMWY2YjQ0ZjFiZDRkNmNiNjllNmUwZmQ2NzQuLjU2Mzg0MzlmYTU2NzlkM2I2YjI2ZmY4NjMw
NDZlYjg2YjY3MGEyMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1l
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWUuaApAQCAtMTAwLDcgKzEwMCw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgY29udHJvbFJlcXVpcmVzUHJlV2hpdGVTcGFj
ZShDb250cm9sUGFydCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIE1ldGhvZCBm
b3IgcGFpbnRpbmcgYSBjb250cm9sLiBUaGUgcmVjdCBpcyBpbiB6b29tZWQgY29vcmRpbmF0ZXMu
Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50KENvbnRyb2xQYXJ0LCBDb250cm9sU3RhdGVzKiwgR3Jh
cGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiAvKnpvb21lZFJlY3QqLywgZmxvYXQgLyp6
b29tRmFjdG9yKi8sIFNjcm9sbFZpZXcqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoQ29u
dHJvbFBhcnQsIENvbnRyb2xTdGF0ZXMqLCBHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJl
Y3QmIC8qem9vbWVkUmVjdCovLCBmbG9hdCAvKnpvb21GYWN0b3IqLywgU2Nyb2xsVmlldyosIGZs
b2F0IC8qZGV2aWNlU2NhbGVGYWN0b3IqLykgeyB9CiAKICAgICAvLyBTb21lIGNvbnRyb2xzIG1h
eSBzcGlsbCBvdXQgb2YgdGhlaXIgY29udGFpbmVycyAoZS5nLiwgdGhlIGNoZWNrIG9uIGFuIE9T
IFggY2hlY2tib3gpLiAgV2hlbiB0aGVzZSBjb250cm9scyByZXBhaW50LAogICAgIC8vIHRoZSB0
aGVtZSBuZWVkcyB0byBjb21tdW5pY2F0ZSB0aGlzIGluZmxhdGVkIHJlY3QgdG8gdGhlIGVuZ2lu
ZSBzbyB0aGF0IGl0IGNhbiBpbnZhbGlkYXRlIHRoZSB3aG9sZSBjb250cm9sLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMuaAppbmRleCA0NDQwMTQ0MzY2ZmM2OTZmZjNlYjY0M2Y3
Mzc4MjQxMTQ3MGFlNTZkLi4wYTc5MTBhYmJhNjA4NzMxYWZjNTliYTVlNjNlZGU2ODI0Y2U3NjFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMuaApAQCAtNTIsNyArNTIsNyBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgY29udHJvbFJlcXVpcmVzUHJlV2hpdGVTcGFj
ZShDb250cm9sUGFydCBwYXJ0KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBwYXJ0ID09IFB1c2hC
dXR0b25QYXJ0OyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoQ29udHJvbFBhcnQsIENvbnRy
b2xTdGF0ZXMqLCBHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmLCBmbG9hdCB6b29t
RmFjdG9yLCBTY3JvbGxWaWV3Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHBhaW50KENv
bnRyb2xQYXJ0LCBDb250cm9sU3RhdGVzKiwgR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRS
ZWN0JiwgZmxvYXQgem9vbUZhY3RvciwgU2Nyb2xsVmlldyosIGZsb2F0IGRldmljZVNjYWxlRmFj
dG9yKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgaW5mbGF0ZUNvbnRyb2xQYWludFJlY3Qo
Q29udHJvbFBhcnQsIGNvbnN0IENvbnRyb2xTdGF0ZXMqLCBGbG9hdFJlY3QmLCBmbG9hdCB6b29t
RmFjdG9yKSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIEZJWE1FOiBPbmNlIFJlbmRlclRoZW1l
TWFjIGlzIGNvbnZlcnRlZCBvdmVyIHRvIHVzZSBUaGVtZSB0aGVuIHRoaXMgY2FuIGJlIGludGVy
bmFsIHRvIFRoZW1lTWFjLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1RoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tCmlu
ZGV4IGNkYWVkYmM1NWY3ZDIyMmJmMjNiNzRjOWI4OTlmMDMzNDRkNmNkNjQuLjUzMGE4ZTZhNjNj
YTczZWViZjE2N2ExOTE5MjdmMjcxMWY4YWQwMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9UaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvVGhlbWVNYWMubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgIkFYT2JqZWN0Q2FjaGUu
aCIKICNpbXBvcnQgIkJsb2NrRXhjZXB0aW9ucy5oIgogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0
LmgiCisjaW1wb3J0ICJJbWFnZUJ1ZmZlci5oIgogI2ltcG9ydCAiTG9jYWxDdXJyZW50R3JhcGhp
Y3NDb250ZXh0LmgiCiAjaW1wb3J0ICJTY3JvbGxWaWV3LmgiCiAjaW1wb3J0ICJXZWJDb3JlU3lz
dGVtSW50ZXJmYWNlLmgiCkBAIC01MzAsNyArNTMxLDEyIEBAIHN0YXRpYyBOU0J1dHRvbkNlbGwg
KmJ1dHRvbihDb250cm9sUGFydCBwYXJ0LCBjb25zdCBDb250cm9sU3RhdGVzKiBjb250cm9sU3Rh
dGVzCiAgICAgcmV0dXJuIGNlbGw7CiB9CiAKLXN0YXRpYyB2b2lkIHBhaW50QnV0dG9uKENvbnRy
b2xQYXJ0IHBhcnQsIENvbnRyb2xTdGF0ZXMqIGNvbnRyb2xTdGF0ZXMsIEdyYXBoaWNzQ29udGV4
dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCB6b29tRmFjdG9y
LCBTY3JvbGxWaWV3KiBzY3JvbGxWaWV3KQorc3RhdGljIGZsb2F0IGJ1dHRvbkZvY3VzUmVjdE91
dGxpbmVXaWR0aCgpCit7CisgICAgcmV0dXJuIDMuMGY7Cit9CisgICAgCitzdGF0aWMgdm9pZCBw
YWludEJ1dHRvbihDb250cm9sUGFydCBwYXJ0LCBDb250cm9sU3RhdGVzKiBjb250cm9sU3RhdGVz
LCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwg
ZmxvYXQgem9vbUZhY3RvciwgU2Nyb2xsVmlldyogc2Nyb2xsVmlldywgZmxvYXQgZGV2aWNlU2Nh
bGVGYWN0b3IpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgCkBAIC01
NjEsOSArNTY3LDExIEBAIHN0YXRpYyB2b2lkIHBhaW50QnV0dG9uKENvbnRyb2xQYXJ0IHBhcnQs
IENvbnRyb2xTdGF0ZXMqIGNvbnRyb2xTdGF0ZXMsIEdyYXBoaWNzCiAgICAgICAgICAgICBjb250
ZXh0LT5zY2FsZShGbG9hdFNpemUoem9vbUZhY3Rvciwgem9vbUZhY3RvcikpOwogICAgICAgICAg
ICAgY29udGV4dC0+dHJhbnNsYXRlKC1pbmZsYXRlZFJlY3QueCgpLCAtaW5mbGF0ZWRSZWN0Lnko
KSk7CiAgICAgICAgIH0KLSAgICB9IAotCi0gICAgTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0
IGxvY2FsQ29udGV4dChjb250ZXh0KTsKKyAgICB9CisgICAgCisgICAgc3RkOjp1bmlxdWVfcHRy
PEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGVDb21wYXRpYmxl
QnVmZmVyKGluZmxhdGVkUmVjdC5zaXplKCksIGRldmljZVNjYWxlRmFjdG9yLCBDb2xvclNwYWNl
RGV2aWNlUkdCLCBjb250ZXh0LCBmYWxzZSk7CisgICAgTG9jYWxDdXJyZW50R3JhcGhpY3NDb250
ZXh0IGxvY2FsQ29udGV4dChpbWFnZUJ1ZmZlci0+Y29udGV4dCgpKTsKKyAgICAKICAgICBOU1Zp
ZXcgKnZpZXcgPSBUaGVtZU1hYzo6ZW5zdXJlZFZpZXcoc2Nyb2xsVmlldywgY29udHJvbFN0YXRl
cyk7CiAgICAgTlNXaW5kb3cgKndpbmRvdyA9IFt2aWV3IHdpbmRvd107CiAgICAgTlNCdXR0b25D
ZWxsICpwcmV2aW91c0RlZmF1bHRCdXR0b25DZWxsID0gW3dpbmRvdyBkZWZhdWx0QnV0dG9uQ2Vs
bF07CkBAIC01NzYsMTEgKzU4NCwxOCBAQCBzdGF0aWMgdm9pZCBwYWludEJ1dHRvbihDb250cm9s
UGFydCBwYXJ0LCBDb250cm9sU3RhdGVzKiBjb250cm9sU3RhdGVzLCBHcmFwaGljcwogICAgIH0g
ZWxzZSBpZiAoW3ByZXZpb3VzRGVmYXVsdEJ1dHRvbkNlbGwgaXNFcXVhbDpidXR0b25DZWxsXSkK
ICAgICAgICAgW3dpbmRvdyBzZXREZWZhdWx0QnV0dG9uQ2VsbDpuaWxdOwogCi0gICAgW2J1dHRv
bkNlbGwgZHJhd1dpdGhGcmFtZTpOU1JlY3QoaW5mbGF0ZWRSZWN0KSBpblZpZXc6dmlld107Cisg
ICAgW2J1dHRvbkNlbGwgZHJhd1dpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIGluZmxhdGVkUmVj
dC53aWR0aCgpLCBpbmZsYXRlZFJlY3QuaGVpZ2h0KCkpIGluVmlldzp2aWV3XTsKKyAgICBjb250
ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIuZ2V0KCksIENvbG9yU3BhY2VEZXZpY2VS
R0IsIGluZmxhdGVkUmVjdC5sb2NhdGlvbigpKTsKKyAgICAKICAgICBib29sIG5lZWRzUmVwYWlu
dCA9IGZhbHNlOwotICAgIGlmIChzdGF0ZXMgJiBDb250cm9sU3RhdGVzOjpGb2N1c1N0YXRlKQot
ICAgICAgICBuZWVkc1JlcGFpbnQgPSBkcmF3Q2VsbEZvY3VzUmluZyhidXR0b25DZWxsLCBpbmZs
YXRlZFJlY3QsIHZpZXcpOwotCisgICAgaWYgKHN0YXRlcyAmIENvbnRyb2xTdGF0ZXM6OkZvY3Vz
U3RhdGUpIHsKKyAgICAgICAgZmxvYXQgZm9jdXNXaWR0aCA9IGJ1dHRvbkZvY3VzUmVjdE91dGxp
bmVXaWR0aCgpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGZvY3VzUmVj
dEltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZUNvbXBhdGlibGVCdWZmZXIoaW5mbGF0
ZWRSZWN0LnNpemUoKSArIDIgKiBGbG9hdFNpemUoZm9jdXNXaWR0aCwgZm9jdXNXaWR0aCksIDIs
IENvbG9yU3BhY2VEZXZpY2VSR0IsIGNvbnRleHQsIGZhbHNlKTsKKyAgICAgICAgTG9jYWxDdXJy
ZW50R3JhcGhpY3NDb250ZXh0IGxvY2FsQ29udGV4dChmb2N1c1JlY3RJbWFnZUJ1ZmZlci0+Y29u
dGV4dCgpKTsKKyAgICAgICAgbmVlZHNSZXBhaW50ID0gZHJhd0NlbGxGb2N1c1JpbmcoYnV0dG9u
Q2VsbCwgQ0dSZWN0TWFrZShmb2N1c1dpZHRoLCBmb2N1c1dpZHRoLCBpbmZsYXRlZFJlY3Qud2lk
dGgoKSwgaW5mbGF0ZWRSZWN0LmhlaWdodCgpKSwgdmlldyk7CisgICAgICAgIGNvbnRleHQtPmRy
YXdJbWFnZUJ1ZmZlcihmb2N1c1JlY3RJbWFnZUJ1ZmZlci5nZXQoKSwgQ29sb3JTcGFjZURldmlj
ZVJHQiwgaW5mbGF0ZWRSZWN0LmxvY2F0aW9uKCkgLSBGbG9hdFNpemUoZm9jdXNXaWR0aCwgZm9j
dXNXaWR0aCkpOworICAgIH0KKyAgICAKICAgICBjb250cm9sU3RhdGVzLT5zZXROZWVkc1JlcGFp
bnQobmVlZHNSZXBhaW50KTsKIAogICAgIFtidXR0b25DZWxsIHNldENvbnRyb2xWaWV3Om5pbF07
CkBAIC04MjMsNyArODM4LDcgQEAgdm9pZCBUaGVtZU1hYzo6aW5mbGF0ZUNvbnRyb2xQYWludFJl
Y3QoQ29udHJvbFBhcnQgcGFydCwgY29uc3QgQ29udHJvbFN0YXRlcyogc3QKICAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TCiB9CiAKLXZvaWQgVGhlbWVNYWM6OnBhaW50KENvbnRyb2xQYXJ0
IHBhcnQsIENvbnRyb2xTdGF0ZXMqIHN0YXRlcywgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBj
b25zdCBGbG9hdFJlY3QmIHpvb21lZFJlY3QsIGZsb2F0IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcq
IHNjcm9sbFZpZXcpCit2b2lkIFRoZW1lTWFjOjpwYWludChDb250cm9sUGFydCBwYXJ0LCBDb250
cm9sU3RhdGVzKiBzdGF0ZXMsIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRS
ZWN0JiB6b29tZWRSZWN0LCBmbG9hdCB6b29tRmFjdG9yLCBTY3JvbGxWaWV3KiBzY3JvbGxWaWV3
LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKIHsKICAgICBzd2l0Y2ggKHBhcnQpIHsKICAgICAg
ICAgY2FzZSBDaGVja2JveFBhcnQ6CkBAIC04MzYsNyArODUxLDcgQEAgdm9pZCBUaGVtZU1hYzo6
cGFpbnQoQ29udHJvbFBhcnQgcGFydCwgQ29udHJvbFN0YXRlcyogc3RhdGVzLCBHcmFwaGljc0Nv
bnRleHQqIGMKICAgICAgICAgY2FzZSBEZWZhdWx0QnV0dG9uUGFydDoKICAgICAgICAgY2FzZSBC
dXR0b25QYXJ0OgogICAgICAgICBjYXNlIFNxdWFyZUJ1dHRvblBhcnQ6Ci0gICAgICAgICAgICBw
YWludEJ1dHRvbihwYXJ0LCBzdGF0ZXMsIGNvbnRleHQsIHpvb21lZFJlY3QsIHpvb21GYWN0b3Is
IHNjcm9sbFZpZXcpOworICAgICAgICAgICAgcGFpbnRCdXR0b24ocGFydCwgc3RhdGVzLCBjb250
ZXh0LCB6b29tZWRSZWN0LCB6b29tRmFjdG9yLCBzY3JvbGxWaWV3LCBkZXZpY2VTY2FsZUZhY3Rv
cik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBJbm5lclNwaW5CdXR0b25QYXJ0
OgogICAgICAgICAgICAgcGFpbnRTdGVwcGVyKHN0YXRlcywgY29udGV4dCwgem9vbWVkUmVjdCwg
em9vbUZhY3Rvciwgc2Nyb2xsVmlldyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lLmNwcAppbmRleCA4MDE0MDgyYmQ0ZTBlNjljN2M3ODE3YTY3NGFmNDg0YjhlZGFjYzE4Li5m
ZDMzZTk0MWQ1ZmI3ZjY3YTUzZTlmNjFmZjY1YjBmNjhkOTZmNDU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKQEAgLTI3Nyw3ICsyNzcsOCBAQCBib29sIFJlbmRl
clRoZW1lOjpwYWludChjb25zdCBSZW5kZXJPYmplY3QmIG8sIENvbnRyb2xTdGF0ZXMqIGNvbnRy
b2xTdGF0ZXMsIGNvbgogCiAgICAgQ29udHJvbFBhcnQgcGFydCA9IG8uc3R5bGUoKS5hcHBlYXJh
bmNlKCk7CiAgICAgSW50UmVjdCBpbnRlZ3JhbFNuYXBwZWRSZWN0ID0gc25hcHBlZEludFJlY3Qo
cik7Ci0gICAgRmxvYXRSZWN0IGRldmljZVBpeGVsU25hcHBlZFJlY3QgPSBzbmFwUmVjdFRvRGV2
aWNlUGl4ZWxzKHIsIG8uZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKKyAgICBmbG9h
dCBkZXZpY2VTY2FsZUZhY3RvciA9IG8uZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpOwor
ICAgIEZsb2F0UmVjdCBkZXZpY2VQaXhlbFNuYXBwZWRSZWN0ID0gc25hcFJlY3RUb0RldmljZVBp
eGVscyhyLCBkZXZpY2VTY2FsZUZhY3Rvcik7CiAKICNpZiBVU0UoTkVXX1RIRU1FKQogICAgIHN3
aXRjaCAocGFydCkgewpAQCAtMjg5LDcgKzI5MCw3IEBAIGJvb2wgUmVuZGVyVGhlbWU6OnBhaW50
KGNvbnN0IFJlbmRlck9iamVjdCYgbywgQ29udHJvbFN0YXRlcyogY29udHJvbFN0YXRlcywgY29u
CiAgICAgY2FzZSBCdXR0b25QYXJ0OgogICAgIGNhc2UgSW5uZXJTcGluQnV0dG9uUGFydDoKICAg
ICAgICAgdXBkYXRlQ29udHJvbFN0YXRlc0ZvclJlbmRlcmVyKG8sIGNvbnRyb2xTdGF0ZXMpOwot
ICAgICAgICBtX3RoZW1lLT5wYWludChwYXJ0LCBjb250cm9sU3RhdGVzLCBjb25zdF9jYXN0PEdy
YXBoaWNzQ29udGV4dCo+KHBhaW50SW5mby5jb250ZXh0KSwgZGV2aWNlUGl4ZWxTbmFwcGVkUmVj
dCwgby5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSwgJm8udmlldygpLmZyYW1lVmlldygpKTsKKyAg
ICAgICAgbV90aGVtZS0+cGFpbnQocGFydCwgY29udHJvbFN0YXRlcywgY29uc3RfY2FzdDxHcmFw
aGljc0NvbnRleHQqPihwYWludEluZm8uY29udGV4dCksIGRldmljZVBpeGVsU25hcHBlZFJlY3Qs
IG8uc3R5bGUoKS5lZmZlY3RpdmVab29tKCksICZvLnZpZXcoKS5mcmFtZVZpZXcoKSwgZGV2aWNl
U2NhbGVGYWN0b3IpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgZGVmYXVsdDoKICAgICAg
ICAgYnJlYWs7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256770</attachid>
            <date>2015-07-14 08:35:39 -0700</date>
            <delta_ts>2015-07-14 09:21:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146916-20150714083433.patch</filename>
            <type>text/plain</type>
            <size>10911</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2ODAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjczYjM1OGU4YmMzMTQ0
NjFhY2VjYTk0MDExMjI0NzhmY2ZkYjIxNC4uOTVhZjJlNjgwYTMwYjlhMzg4OGNkZGI3YTFmOGY4
ZGY0ZWZkZmUwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE1LTA3LTE0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIElucHV0IGJ1dHRv
bnMgcmVuZGVyZWQgYXQgdGhlIHdyb25nIHNpemUgd2hlbiBwaW5jaGluZy10by16b29tCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY5MTYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTY2FsZXMgYnV0dG9u
cyBhbmQgdGhlaXIgZm9jdXMgcmVjdHMgdXAgd2hlbiBwaW5jaGluZyB0byB6b29tLiBXb3JrIGlu
IHByb2dyZXNzIHdoaWxlIEkgZmlndXJlCisgICAgICAgIG91dCBob3cgdG8gd3JpdGUgdGVzdHMg
Zm9yIHRoaXMuIFdlIG1heSBhbHNvIHdhbnQgdG8gZmlsZSBhIG5ldyBidWcgcmVnYXJkaW5nIHRo
ZSB3YXkgdGhlIGZvY3VzCisgICAgICAgIHJlY3QgYWxzbyBzY2FsZXMgdXAgd2hlbiB6b29taW5n
LgorCisgICAgICAgICogcGxhdGZvcm0vVGhlbWUuaDogTW9kaWZpZWQgc2lnbmF0dXJlIG9mIFRo
ZW1lOjpwYWludC4KKyAgICAgICAgKFdlYkNvcmU6OlRoZW1lOjpwYWludCk6IEFkZGVkIHBsdW1i
aW5nIG5lY2Vzc2FyeSB0byBzZW5kIHRoZSBkZXZpY2UgYW5kIHBhZ2Ugc2NhbGUgZmFjdG9ycyB0
byBwYWludEJ1dHRvbi4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGhlbWVNYWMuaDogTW9kaWZp
ZWQgc2lnbmF0dXJlIG9mIHBhaW50QnV0dG9uLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UaGVt
ZU1hYy5tbTogQWRkZWQgSW1hZ2VCdWZmZXIuaCBoZWFkZXIuCisgICAgICAgIChXZWJDb3JlOjpi
dXR0b25Gb2N1c1JlY3RPdXRsaW5lV2lkdGgpOiBSZXByZXNlbnRzIHRoZSB3aWR0aCBvZiB0aGUg
Zm9jdXMgcmVjdCBvZiBhIGJ1dHRvbi4gVXNlZCBieSBwYWludEJ1dHRvbgorICAgICAgICAgICAg
dG8gZGV0ZXJtaW5lIHRoZSBzaXplIG9mIHRoZSBJbWFnZUJ1ZmZlciByZXF1aXJlZCB0byBkcmF3
IGEgZm9jdXMgcmVjdC4KKyAgICAgICAgKFdlYkNvcmU6OnBhaW50QnV0dG9uKTogQ2hhbmdlZCB0
byBwYWludCBidXR0b24gY2VsbHMgYW5kIHRoZSBmb2N1cyByZWN0LCBpZiBhcHBsaWNhYmxlLCB0
byBhIHRlbXBvcmFyeSBJbWFnZUJ1ZmZlcgorICAgICAgICAgICAgYmVmb3JlIHBhaW50aW5nIHRo
ZSBJbWFnZUJ1ZmZlciBvbnRvIHRoZSB2aWV3LiBSZWZhY3RvcmVkIHRvIHJlY2VpdmUgYSBkZXZp
Y2VTY2FsZUZhY3RvciBhbmQgcGFnZSBzY2FsZSBmYWN0b3IsCisgICAgICAgICAgICB1c2VkIHdo
ZW4gcGFpbnRpbmcgdG8gdGhlIEltYWdlQnVmZmVyLgorICAgICAgICAoV2ViQ29yZTo6VGhlbWVN
YWM6OnBhaW50KTogQWRkZWQgcGx1bWJpbmcgbmVjZXNzYXJ5IHRvIHNlbmQgdGhlIGRldmljZSBh
bmQgcGFnZSBzY2FsZSBmYWN0b3JzIHRvIHBhaW50QnV0dG9uLgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUaGVtZS5jcHA6IE1vZGlmaWVkIHNpZ25hdHVyZSBvZiBSZW5kZXJUaGVtZTo6cGFp
bnQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnQpOiBBZGRlZCBwbHVtYmlu
ZyBuZWNlc3NhcnkgdG8gc2VuZCB0aGUgZGV2aWNlIGFuZCBwYWdlIHNjYWxlIGZhY3RvcnMgdG8g
cGFpbnRCdXR0b24uCisKIDIwMTUtMDctMTMgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW1dpbl0gVW5yZXZpZXdlZCBidWlsZCBmaXguCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vVGhlbWUuaAppbmRleCAxMGUwYzc3M2ZlMjI0MDFmNmI0NGYxYmQ0ZDZjYjY5ZTZlMGZkNjc0
Li5hMTM2NzUxNGY0ODYwOGI3MDZmZDk5ZWFhMmQzMzBjOTliMmVhMzgyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1RoZW1lLmgKQEAgLTEwMCw3ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29s
IGNvbnRyb2xSZXF1aXJlc1ByZVdoaXRlU3BhY2UoQ29udHJvbFBhcnQpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAKICAgICAvLyBNZXRob2QgZm9yIHBhaW50aW5nIGEgY29udHJvbC4gVGhlIHJl
Y3QgaXMgaW4gem9vbWVkIGNvb3JkaW5hdGVzLgotICAgIHZpcnR1YWwgdm9pZCBwYWludChDb250
cm9sUGFydCwgQ29udHJvbFN0YXRlcyosIEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVj
dCYgLyp6b29tZWRSZWN0Ki8sIGZsb2F0IC8qem9vbUZhY3RvciovLCBTY3JvbGxWaWV3KikgeyB9
CisgICAgdmlydHVhbCB2b2lkIHBhaW50KENvbnRyb2xQYXJ0LCBDb250cm9sU3RhdGVzKiwgR3Jh
cGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiAvKnpvb21lZFJlY3QqLywgZmxvYXQgLyp6
b29tRmFjdG9yKi8sIFNjcm9sbFZpZXcqLCBmbG9hdCAvKmRldmljZVNjYWxlRmFjdG9yKi8sIGZs
b2F0IC8qcGFnZVNjYWxlRmFjdG9yKi8pIHsgfQogCiAgICAgLy8gU29tZSBjb250cm9scyBtYXkg
c3BpbGwgb3V0IG9mIHRoZWlyIGNvbnRhaW5lcnMgKGUuZy4sIHRoZSBjaGVjayBvbiBhbiBPUyBY
IGNoZWNrYm94KS4gIFdoZW4gdGhlc2UgY29udHJvbHMgcmVwYWludCwKICAgICAvLyB0aGUgdGhl
bWUgbmVlZHMgdG8gY29tbXVuaWNhdGUgdGhpcyBpbmZsYXRlZCByZWN0IHRvIHRoZSBlbmdpbmUg
c28gdGhhdCBpdCBjYW4gaW52YWxpZGF0ZSB0aGUgd2hvbGUgY29udHJvbC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1RoZW1lTWFjLmgKaW5kZXggNDQ0MDE0NDM2NmZjNjk2ZmYzZWI2NDNmNzM3
ODI0MTE0NzBhZTU2ZC4uYzdkZDVkMGNiMTI1MDQ5OWY5YzM1MDM3NzEwZTNlNTAxZjFiMWFjOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLmgKQEAgLTUyLDcgKzUyLDcgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGNvbnRyb2xSZXF1aXJlc1ByZVdoaXRlU3BhY2Uo
Q29udHJvbFBhcnQgcGFydCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gcGFydCA9PSBQdXNoQnV0
dG9uUGFydDsgfQogCi0gICAgdmlydHVhbCB2b2lkIHBhaW50KENvbnRyb2xQYXJ0LCBDb250cm9s
U3RhdGVzKiwgR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQgem9vbUZh
Y3RvciwgU2Nyb2xsVmlldyopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwYWludChDb250
cm9sUGFydCwgQ29udHJvbFN0YXRlcyosIEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVj
dCYsIGZsb2F0IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcqLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rv
ciwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgaW5m
bGF0ZUNvbnRyb2xQYWludFJlY3QoQ29udHJvbFBhcnQsIGNvbnN0IENvbnRyb2xTdGF0ZXMqLCBG
bG9hdFJlY3QmLCBmbG9hdCB6b29tRmFjdG9yKSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIEZJ
WE1FOiBPbmNlIFJlbmRlclRoZW1lTWFjIGlzIGNvbnZlcnRlZCBvdmVyIHRvIHVzZSBUaGVtZSB0
aGVuIHRoaXMgY2FuIGJlIGludGVybmFsIHRvIFRoZW1lTWFjLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1RoZW1lTWFjLm1tCmluZGV4IGNkYWVkYmM1NWY3ZDIyMmJmMjNiNzRjOWI4OTlmMDMz
NDRkNmNkNjQuLmU2NTM2NjA4MDAwZTllZmMxOTAxYjliMmFjMGUyYjUxOGE5NWM2NzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNp
bXBvcnQgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbXBvcnQgIkJsb2NrRXhjZXB0aW9ucy5oIgogI2lt
cG9ydCAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW1wb3J0ICJJbWFnZUJ1ZmZlci5oIgogI2ltcG9y
dCAiTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0LmgiCiAjaW1wb3J0ICJTY3JvbGxWaWV3Lmgi
CiAjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCkBAIC01MzAsNyArNTMxLDEyIEBA
IHN0YXRpYyBOU0J1dHRvbkNlbGwgKmJ1dHRvbihDb250cm9sUGFydCBwYXJ0LCBjb25zdCBDb250
cm9sU3RhdGVzKiBjb250cm9sU3RhdGVzCiAgICAgcmV0dXJuIGNlbGw7CiB9CiAKLXN0YXRpYyB2
b2lkIHBhaW50QnV0dG9uKENvbnRyb2xQYXJ0IHBhcnQsIENvbnRyb2xTdGF0ZXMqIGNvbnRyb2xT
dGF0ZXMsIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiB6b29tZWRS
ZWN0LCBmbG9hdCB6b29tRmFjdG9yLCBTY3JvbGxWaWV3KiBzY3JvbGxWaWV3KQorc3RhdGljIGZs
b2F0IGJ1dHRvbkZvY3VzUmVjdE91dGxpbmVXaWR0aCgpCit7CisgICAgcmV0dXJuIDMuMGY7Cit9
CisgICAgCitzdGF0aWMgdm9pZCBwYWludEJ1dHRvbihDb250cm9sUGFydCBwYXJ0LCBDb250cm9s
U3RhdGVzKiBjb250cm9sU3RhdGVzLCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZs
b2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQgem9vbUZhY3RvciwgU2Nyb2xsVmlldyogc2Nyb2xs
VmlldywgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcikKIHsK
ICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICAKQEAgLTU1Myw3ICs1NTksNyBA
QCBzdGF0aWMgdm9pZCBwYWludEJ1dHRvbihDb250cm9sUGFydCBwYXJ0LCBDb250cm9sU3RhdGVz
KiBjb250cm9sU3RhdGVzLCBHcmFwaGljcwogCiAgICAgICAgIC8vIE5vdyBpbmZsYXRlIGl0IHRv
IGFjY291bnQgZm9yIHRoZSBzaGFkb3cuCiAgICAgICAgIGluZmxhdGVkUmVjdCA9IGluZmxhdGVS
ZWN0KGluZmxhdGVkUmVjdCwgem9vbWVkU2l6ZSwgYnV0dG9uTWFyZ2lucyhjb250cm9sU2l6ZSks
IHpvb21GYWN0b3IpOwotCisgICAgICAgIAogICAgICAgICBpZiAoem9vbUZhY3RvciAhPSAxLjBm
KSB7CiAgICAgICAgICAgICBpbmZsYXRlZFJlY3Quc2V0V2lkdGgoaW5mbGF0ZWRSZWN0LndpZHRo
KCkgLyB6b29tRmFjdG9yKTsKICAgICAgICAgICAgIGluZmxhdGVkUmVjdC5zZXRIZWlnaHQoaW5m
bGF0ZWRSZWN0LmhlaWdodCgpIC8gem9vbUZhY3Rvcik7CkBAIC01NjEsOSArNTY3LDE4IEBAIHN0
YXRpYyB2b2lkIHBhaW50QnV0dG9uKENvbnRyb2xQYXJ0IHBhcnQsIENvbnRyb2xTdGF0ZXMqIGNv
bnRyb2xTdGF0ZXMsIEdyYXBoaWNzCiAgICAgICAgICAgICBjb250ZXh0LT5zY2FsZShGbG9hdFNp
emUoem9vbUZhY3Rvciwgem9vbUZhY3RvcikpOwogICAgICAgICAgICAgY29udGV4dC0+dHJhbnNs
YXRlKC1pbmZsYXRlZFJlY3QueCgpLCAtaW5mbGF0ZWRSZWN0LnkoKSk7CiAgICAgICAgIH0KLSAg
ICB9IAotCi0gICAgTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0IGxvY2FsQ29udGV4dChjb250
ZXh0KTsKKyAgICB9CisgICAgCisgICAgYm9vbCBzaG91bGRVc2VJbWFnZUJ1ZmZlciA9IHBhZ2VT
Y2FsZUZhY3RvciAhPSAxLjBmIHx8IHpvb21GYWN0b3IgIT0gMS4wZjsKKyAgICAKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0gbnVsbHB0cjsKKyAgICBHcmFw
aGljc0NvbnRleHQqIGRyYXdCdXR0b25Db250ZXh0ID0gY29udGV4dDsKKyAgICBpZiAoc2hvdWxk
VXNlSW1hZ2VCdWZmZXIpIHsKKyAgICAgICAgaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3Jl
YXRlQ29tcGF0aWJsZUJ1ZmZlcihpbmZsYXRlZFJlY3Quc2l6ZSgpLCBkZXZpY2VTY2FsZUZhY3Rv
ciwgQ29sb3JTcGFjZURldmljZVJHQiwgY29udGV4dCwgZmFsc2UpOworICAgICAgICBkcmF3QnV0
dG9uQ29udGV4dCA9IGltYWdlQnVmZmVyLT5jb250ZXh0KCk7CisgICAgfQorICAgIExvY2FsQ3Vy
cmVudEdyYXBoaWNzQ29udGV4dCBsb2NhbENvbnRleHQoZHJhd0J1dHRvbkNvbnRleHQpOworICAg
IAogICAgIE5TVmlldyAqdmlldyA9IFRoZW1lTWFjOjplbnN1cmVkVmlldyhzY3JvbGxWaWV3LCBj
b250cm9sU3RhdGVzKTsKICAgICBOU1dpbmRvdyAqd2luZG93ID0gW3ZpZXcgd2luZG93XTsKICAg
ICBOU0J1dHRvbkNlbGwgKnByZXZpb3VzRGVmYXVsdEJ1dHRvbkNlbGwgPSBbd2luZG93IGRlZmF1
bHRCdXR0b25DZWxsXTsKQEAgLTU3NiwxMiArNTkxLDI0IEBAIHN0YXRpYyB2b2lkIHBhaW50QnV0
dG9uKENvbnRyb2xQYXJ0IHBhcnQsIENvbnRyb2xTdGF0ZXMqIGNvbnRyb2xTdGF0ZXMsIEdyYXBo
aWNzCiAgICAgfSBlbHNlIGlmIChbcHJldmlvdXNEZWZhdWx0QnV0dG9uQ2VsbCBpc0VxdWFsOmJ1
dHRvbkNlbGxdKQogICAgICAgICBbd2luZG93IHNldERlZmF1bHRCdXR0b25DZWxsOm5pbF07CiAK
LSAgICBbYnV0dG9uQ2VsbCBkcmF3V2l0aEZyYW1lOk5TUmVjdChpbmZsYXRlZFJlY3QpIGluVmll
dzp2aWV3XTsKLSAgICBib29sIG5lZWRzUmVwYWludCA9IGZhbHNlOwotICAgIGlmIChzdGF0ZXMg
JiBDb250cm9sU3RhdGVzOjpGb2N1c1N0YXRlKQotICAgICAgICBuZWVkc1JlcGFpbnQgPSBkcmF3
Q2VsbEZvY3VzUmluZyhidXR0b25DZWxsLCBpbmZsYXRlZFJlY3QsIHZpZXcpOwotCi0gICAgY29u
dHJvbFN0YXRlcy0+c2V0TmVlZHNSZXBhaW50KG5lZWRzUmVwYWludCk7CisgICAgaWYgKHNob3Vs
ZFVzZUltYWdlQnVmZmVyKSB7CisgICAgICAgIFtidXR0b25DZWxsIGRyYXdXaXRoRnJhbWU6Q0dS
ZWN0TWFrZSgwLCAwLCBpbmZsYXRlZFJlY3Qud2lkdGgoKSwgaW5mbGF0ZWRSZWN0LmhlaWdodCgp
KSBpblZpZXc6dmlld107CisgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWFnZUJ1
ZmZlci5nZXQoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgaW5mbGF0ZWRSZWN0LmxvY2F0aW9uKCkp
OworICAgIH0gZWxzZQorICAgICAgICBbYnV0dG9uQ2VsbCBkcmF3V2l0aEZyYW1lOkNHUmVjdChp
bmZsYXRlZFJlY3QpIGluVmlldzp2aWV3XTsKKyAgICAKKyAgICBpZiAoc3RhdGVzICYgQ29udHJv
bFN0YXRlczo6Rm9jdXNTdGF0ZSkgeworICAgICAgICBpZiAoc2hvdWxkVXNlSW1hZ2VCdWZmZXIp
IHsKKyAgICAgICAgICAgIGZsb2F0IGZvY3VzV2lkdGggPSBidXR0b25Gb2N1c1JlY3RPdXRsaW5l
V2lkdGgoKTsKKyAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gZm9jdXNS
ZWN0SW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcihpbmZs
YXRlZFJlY3Quc2l6ZSgpICsgMiAqIEZsb2F0U2l6ZShmb2N1c1dpZHRoLCBmb2N1c1dpZHRoKSwg
ZGV2aWNlU2NhbGVGYWN0b3IsIENvbG9yU3BhY2VEZXZpY2VSR0IsIGNvbnRleHQsIGZhbHNlKTsK
KyAgICAgICAgICAgIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dCBsb2NhbENvbnRleHQoZm9j
dXNSZWN0SW1hZ2VCdWZmZXItPmNvbnRleHQoKSk7CisgICAgICAgICAgICBkcmF3Q2VsbEZvY3Vz
UmluZyhidXR0b25DZWxsLCBDR1JlY3RNYWtlKGZvY3VzV2lkdGgsIGZvY3VzV2lkdGgsIGluZmxh
dGVkUmVjdC53aWR0aCgpLCBpbmZsYXRlZFJlY3QuaGVpZ2h0KCkpLCB2aWV3KTsKKyAgICAgICAg
ICAgIGNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihmb2N1c1JlY3RJbWFnZUJ1ZmZlci5nZXQoKSwg
Q29sb3JTcGFjZURldmljZVJHQiwgaW5mbGF0ZWRSZWN0LmxvY2F0aW9uKCkgLSBGbG9hdFNpemUo
Zm9jdXNXaWR0aCwgZm9jdXNXaWR0aCkpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGRy
YXdDZWxsRm9jdXNSaW5nKGJ1dHRvbkNlbGwsIGluZmxhdGVkUmVjdCwgdmlldyk7CisgICAgfQor
ICAgIAorICAgIGNvbnRyb2xTdGF0ZXMtPnNldE5lZWRzUmVwYWludChmYWxzZSk7CiAKICAgICBb
YnV0dG9uQ2VsbCBzZXRDb250cm9sVmlldzpuaWxdOwogCkBAIC04MjMsNyArODUwLDcgQEAgdm9p
ZCBUaGVtZU1hYzo6aW5mbGF0ZUNvbnRyb2xQYWludFJlY3QoQ29udHJvbFBhcnQgcGFydCwgY29u
c3QgQ29udHJvbFN0YXRlcyogc3QKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAK
LXZvaWQgVGhlbWVNYWM6OnBhaW50KENvbnRyb2xQYXJ0IHBhcnQsIENvbnRyb2xTdGF0ZXMqIHN0
YXRlcywgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHpvb21lZFJl
Y3QsIGZsb2F0IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcqIHNjcm9sbFZpZXcpCit2b2lkIFRoZW1l
TWFjOjpwYWludChDb250cm9sUGFydCBwYXJ0LCBDb250cm9sU3RhdGVzKiBzdGF0ZXMsIEdyYXBo
aWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCB6
b29tRmFjdG9yLCBTY3JvbGxWaWV3KiBzY3JvbGxWaWV3LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rv
ciwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKQogewogICAgIHN3aXRjaCAocGFydCkgewogICAgICAg
ICBjYXNlIENoZWNrYm94UGFydDoKQEAgLTgzNiw3ICs4NjMsNyBAQCB2b2lkIFRoZW1lTWFjOjpw
YWludChDb250cm9sUGFydCBwYXJ0LCBDb250cm9sU3RhdGVzKiBzdGF0ZXMsIEdyYXBoaWNzQ29u
dGV4dCogYwogICAgICAgICBjYXNlIERlZmF1bHRCdXR0b25QYXJ0OgogICAgICAgICBjYXNlIEJ1
dHRvblBhcnQ6CiAgICAgICAgIGNhc2UgU3F1YXJlQnV0dG9uUGFydDoKLSAgICAgICAgICAgIHBh
aW50QnV0dG9uKHBhcnQsIHN0YXRlcywgY29udGV4dCwgem9vbWVkUmVjdCwgem9vbUZhY3Rvciwg
c2Nyb2xsVmlldyk7CisgICAgICAgICAgICBwYWludEJ1dHRvbihwYXJ0LCBzdGF0ZXMsIGNvbnRl
eHQsIHpvb21lZFJlY3QsIHpvb21GYWN0b3IsIHNjcm9sbFZpZXcsIGRldmljZVNjYWxlRmFjdG9y
LCBwYWdlU2NhbGVGYWN0b3IpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgSW5u
ZXJTcGluQnV0dG9uUGFydDoKICAgICAgICAgICAgIHBhaW50U3RlcHBlcihzdGF0ZXMsIGNvbnRl
eHQsIHpvb21lZFJlY3QsIHpvb21GYWN0b3IsIHNjcm9sbFZpZXcpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKaW5kZXggODAxNDA4MmJkNGUwZTY5YzdjNzgxN2E2NzRh
ZjQ4NGI4ZWRhY2MxOC4uODIwOTg3NDkwODg2OWUxM2U5OTQ3NjMyZTQwZTVjY2JmOTc2NWIyYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCkBAIC0yNzcsNyArMjc3
LDkgQEAgYm9vbCBSZW5kZXJUaGVtZTo6cGFpbnQoY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBDb250
cm9sU3RhdGVzKiBjb250cm9sU3RhdGVzLCBjb24KIAogICAgIENvbnRyb2xQYXJ0IHBhcnQgPSBv
LnN0eWxlKCkuYXBwZWFyYW5jZSgpOwogICAgIEludFJlY3QgaW50ZWdyYWxTbmFwcGVkUmVjdCA9
IHNuYXBwZWRJbnRSZWN0KHIpOwotICAgIEZsb2F0UmVjdCBkZXZpY2VQaXhlbFNuYXBwZWRSZWN0
ID0gc25hcFJlY3RUb0RldmljZVBpeGVscyhyLCBvLmRvY3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0
b3IoKSk7CisgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IgPSBvLmRvY3VtZW50KCkuZGV2aWNl
U2NhbGVGYWN0b3IoKTsKKyAgICBGbG9hdFJlY3QgZGV2aWNlUGl4ZWxTbmFwcGVkUmVjdCA9IHNu
YXBSZWN0VG9EZXZpY2VQaXhlbHMociwgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIGZsb2F0IHBh
Z2VTY2FsZUZhY3RvciA9IG8uZG9jdW1lbnQoKS5wYWdlKCkgPyBvLmRvY3VtZW50KCkucGFnZSgp
LT5wYWdlU2NhbGVGYWN0b3IoKSA6IDE7CiAKICNpZiBVU0UoTkVXX1RIRU1FKQogICAgIHN3aXRj
aCAocGFydCkgewpAQCAtMjg5LDcgKzI5MSw3IEBAIGJvb2wgUmVuZGVyVGhlbWU6OnBhaW50KGNv
bnN0IFJlbmRlck9iamVjdCYgbywgQ29udHJvbFN0YXRlcyogY29udHJvbFN0YXRlcywgY29uCiAg
ICAgY2FzZSBCdXR0b25QYXJ0OgogICAgIGNhc2UgSW5uZXJTcGluQnV0dG9uUGFydDoKICAgICAg
ICAgdXBkYXRlQ29udHJvbFN0YXRlc0ZvclJlbmRlcmVyKG8sIGNvbnRyb2xTdGF0ZXMpOwotICAg
ICAgICBtX3RoZW1lLT5wYWludChwYXJ0LCBjb250cm9sU3RhdGVzLCBjb25zdF9jYXN0PEdyYXBo
aWNzQ29udGV4dCo+KHBhaW50SW5mby5jb250ZXh0KSwgZGV2aWNlUGl4ZWxTbmFwcGVkUmVjdCwg
by5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSwgJm8udmlldygpLmZyYW1lVmlldygpKTsKKyAgICAg
ICAgbV90aGVtZS0+cGFpbnQocGFydCwgY29udHJvbFN0YXRlcywgY29uc3RfY2FzdDxHcmFwaGlj
c0NvbnRleHQqPihwYWludEluZm8uY29udGV4dCksIGRldmljZVBpeGVsU25hcHBlZFJlY3QsIG8u
c3R5bGUoKS5lZmZlY3RpdmVab29tKCksICZvLnZpZXcoKS5mcmFtZVZpZXcoKSwgZGV2aWNlU2Nh
bGVGYWN0b3IsIHBhZ2VTY2FsZUZhY3Rvcik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBk
ZWZhdWx0OgogICAgICAgICBicmVhazsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256772</attachid>
            <date>2015-07-14 09:21:17 -0700</date>
            <delta_ts>2015-07-14 14:40:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146916-20150714092011.patch</filename>
            <type>text/plain</type>
            <size>10294</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2ODAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjczYjM1OGU4YmMzMTQ0
NjFhY2VjYTk0MDExMjI0NzhmY2ZkYjIxNC4uZGViZjRhMTkzYjQ5MzE0YmRhYmM1YTJiYWZhM2I0
ZTM3NWUxNTc3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE1LTA3LTE0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIElucHV0IGJ1dHRv
bnMgcmVuZGVyZWQgYXQgdGhlIHdyb25nIHNpemUgd2hlbiBwaW5jaGluZy10by16b29tCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY5MTYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTY2FsZXMgYnV0dG9u
cyBhbmQgdGhlaXIgZm9jdXMgcmVjdHMgdXAgd2hlbiBwaW5jaGluZyB0byB6b29tIGJ5IHBhaW50
aW5nIHRvIGFuIG9mZnNjcmVlbiBJbWFnZUJ1ZmZlciB3aGljaCBpcworICAgICAgICB0aGVuIHNj
YWxlZCBhbmQgcGFpbnRlZCBvbnRvIHRoZSBkaXNwbGF5LgorCisgICAgICAgICogcGxhdGZvcm0v
VGhlbWUuaDogTW9kaWZpZWQgc2lnbmF0dXJlIG9mIFRoZW1lOjpwYWludC4KKyAgICAgICAgKFdl
YkNvcmU6OlRoZW1lOjpwYWludCk6IEFkZGVkIHBsdW1iaW5nIG5lY2Vzc2FyeSB0byBzZW5kIHRo
ZSBkZXZpY2UgYW5kIHBhZ2Ugc2NhbGUgZmFjdG9ycyB0byBwYWludEJ1dHRvbi4KKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvVGhlbWVNYWMuaDogTW9kaWZpZWQgc2lnbmF0dXJlIG9mIHBhaW50QnV0
dG9uLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UaGVtZU1hYy5tbTogQWRkZWQgSW1hZ2VCdWZm
ZXIuaCBoZWFkZXIuCisgICAgICAgIChXZWJDb3JlOjpidXR0b25Gb2N1c1JlY3RPdXRsaW5lV2lk
dGgpOiBSZXByZXNlbnRzIHRoZSB3aWR0aCBvZiB0aGUgZm9jdXMgcmVjdCBvZiBhIGJ1dHRvbi4g
VXNlZCBieSBwYWludEJ1dHRvbgorICAgICAgICAgICAgdG8gZGV0ZXJtaW5lIHRoZSBzaXplIG9m
IHRoZSBJbWFnZUJ1ZmZlciByZXF1aXJlZCB0byBkcmF3IGEgZm9jdXMgcmVjdC4KKyAgICAgICAg
KFdlYkNvcmU6OnBhaW50QnV0dG9uKTogQ2hhbmdlZCB0byBwYWludCBidXR0b24gY2VsbHMgYW5k
IHRoZSBmb2N1cyByZWN0LCBpZiBhcHBsaWNhYmxlLCB0byBhIHRlbXBvcmFyeSBJbWFnZUJ1ZmZl
cgorICAgICAgICAgICAgYmVmb3JlIHBhaW50aW5nIHRoZSBJbWFnZUJ1ZmZlciBvbnRvIHRoZSB2
aWV3LiBSZWZhY3RvcmVkIHRvIHJlY2VpdmUgYSBkZXZpY2VTY2FsZUZhY3RvciBhbmQgcGFnZSBz
Y2FsZSBmYWN0b3IsCisgICAgICAgICAgICB1c2VkIHdoZW4gcGFpbnRpbmcgdG8gdGhlIEltYWdl
QnVmZmVyLgorICAgICAgICAoV2ViQ29yZTo6VGhlbWVNYWM6OnBhaW50KTogQWRkZWQgcGx1bWJp
bmcgbmVjZXNzYXJ5IHRvIHNlbmQgdGhlIGRldmljZSBhbmQgcGFnZSBzY2FsZSBmYWN0b3JzIHRv
IHBhaW50QnV0dG9uLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6IE1vZGlm
aWVkIHNpZ25hdHVyZSBvZiBSZW5kZXJUaGVtZTo6cGFpbnQuCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZTo6cGFpbnQpOiBBZGRlZCBwbHVtYmluZyBuZWNlc3NhcnkgdG8gc2VuZCB0aGUg
ZGV2aWNlIGFuZCBwYWdlIHNjYWxlIGZhY3RvcnMgdG8gcGFpbnRCdXR0b24uCisKIDIwMTUtMDct
MTMgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0g
VW5yZXZpZXdlZCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9UaGVtZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWUuaAppbmRleCAxMGUwYzc3
M2ZlMjI0MDFmNmI0NGYxYmQ0ZDZjYjY5ZTZlMGZkNjc0Li5hMTM2NzUxNGY0ODYwOGI3MDZmZDk5
ZWFhMmQzMzBjOTliMmVhMzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9U
aGVtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1lLmgKQEAgLTEwMCw3ICsx
MDAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGNvbnRyb2xSZXF1aXJlc1ByZVdoaXRl
U3BhY2UoQ29udHJvbFBhcnQpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICAvLyBNZXRo
b2QgZm9yIHBhaW50aW5nIGEgY29udHJvbC4gVGhlIHJlY3QgaXMgaW4gem9vbWVkIGNvb3JkaW5h
dGVzLgotICAgIHZpcnR1YWwgdm9pZCBwYWludChDb250cm9sUGFydCwgQ29udHJvbFN0YXRlcyos
IEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgLyp6b29tZWRSZWN0Ki8sIGZsb2F0
IC8qem9vbUZhY3RvciovLCBTY3JvbGxWaWV3KikgeyB9CisgICAgdmlydHVhbCB2b2lkIHBhaW50
KENvbnRyb2xQYXJ0LCBDb250cm9sU3RhdGVzKiwgR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxv
YXRSZWN0JiAvKnpvb21lZFJlY3QqLywgZmxvYXQgLyp6b29tRmFjdG9yKi8sIFNjcm9sbFZpZXcq
LCBmbG9hdCAvKmRldmljZVNjYWxlRmFjdG9yKi8sIGZsb2F0IC8qcGFnZVNjYWxlRmFjdG9yKi8p
IHsgfQogCiAgICAgLy8gU29tZSBjb250cm9scyBtYXkgc3BpbGwgb3V0IG9mIHRoZWlyIGNvbnRh
aW5lcnMgKGUuZy4sIHRoZSBjaGVjayBvbiBhbiBPUyBYIGNoZWNrYm94KS4gIFdoZW4gdGhlc2Ug
Y29udHJvbHMgcmVwYWludCwKICAgICAvLyB0aGUgdGhlbWUgbmVlZHMgdG8gY29tbXVuaWNhdGUg
dGhpcyBpbmZsYXRlZCByZWN0IHRvIHRoZSBlbmdpbmUgc28gdGhhdCBpdCBjYW4gaW52YWxpZGF0
ZSB0aGUgd2hvbGUgY29udHJvbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9UaGVtZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLmgK
aW5kZXggNDQ0MDE0NDM2NmZjNjk2ZmYzZWI2NDNmNzM3ODI0MTE0NzBhZTU2ZC4uYzdkZDVkMGNi
MTI1MDQ5OWY5YzM1MDM3NzEwZTNlNTAxZjFiMWFjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1RoZW1lTWFjLmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBi
b29sIGNvbnRyb2xSZXF1aXJlc1ByZVdoaXRlU3BhY2UoQ29udHJvbFBhcnQgcGFydCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gcGFydCA9PSBQdXNoQnV0dG9uUGFydDsgfQogCi0gICAgdmlydHVh
bCB2b2lkIHBhaW50KENvbnRyb2xQYXJ0LCBDb250cm9sU3RhdGVzKiwgR3JhcGhpY3NDb250ZXh0
KiwgY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQgem9vbUZhY3RvciwgU2Nyb2xsVmlldyopIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBwYWludChDb250cm9sUGFydCwgQ29udHJvbFN0YXRlcyos
IEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0IHpvb21GYWN0b3IsIFNj
cm9sbFZpZXcqLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciwgZmxvYXQgcGFnZVNjYWxlRmFjdG9y
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgaW5mbGF0ZUNvbnRyb2xQYWludFJlY3QoQ29u
dHJvbFBhcnQsIGNvbnN0IENvbnRyb2xTdGF0ZXMqLCBGbG9hdFJlY3QmLCBmbG9hdCB6b29tRmFj
dG9yKSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIEZJWE1FOiBPbmNlIFJlbmRlclRoZW1lTWFj
IGlzIGNvbnZlcnRlZCBvdmVyIHRvIHVzZSBUaGVtZSB0aGVuIHRoaXMgY2FuIGJlIGludGVybmFs
IHRvIFRoZW1lTWFjLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Ro
ZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tCmluZGV4
IGNkYWVkYmM1NWY3ZDIyMmJmMjNiNzRjOWI4OTlmMDMzNDRkNmNkNjQuLjRiMjc3OWUzNjFjNzQx
NmQwMWU1YTg4ZGEzYTQ0ZWRhNmFjZDA5NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9UaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
VGhlbWVNYWMubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgIkFYT2JqZWN0Q2FjaGUuaCIK
ICNpbXBvcnQgIkJsb2NrRXhjZXB0aW9ucy5oIgogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0Lmgi
CisjaW1wb3J0ICJJbWFnZUJ1ZmZlci5oIgogI2ltcG9ydCAiTG9jYWxDdXJyZW50R3JhcGhpY3ND
b250ZXh0LmgiCiAjaW1wb3J0ICJTY3JvbGxWaWV3LmgiCiAjaW1wb3J0ICJXZWJDb3JlU3lzdGVt
SW50ZXJmYWNlLmgiCkBAIC01MzAsNyArNTMxLDEyIEBAIHN0YXRpYyBOU0J1dHRvbkNlbGwgKmJ1
dHRvbihDb250cm9sUGFydCBwYXJ0LCBjb25zdCBDb250cm9sU3RhdGVzKiBjb250cm9sU3RhdGVz
CiAgICAgcmV0dXJuIGNlbGw7CiB9CiAKLXN0YXRpYyB2b2lkIHBhaW50QnV0dG9uKENvbnRyb2xQ
YXJ0IHBhcnQsIENvbnRyb2xTdGF0ZXMqIGNvbnRyb2xTdGF0ZXMsIEdyYXBoaWNzQ29udGV4dCog
Y29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCB6b29tRmFjdG9yLCBT
Y3JvbGxWaWV3KiBzY3JvbGxWaWV3KQorc3RhdGljIGZsb2F0IGJ1dHRvbkZvY3VzUmVjdE91dGxp
bmVXaWR0aCgpCit7CisgICAgcmV0dXJuIDMuMGY7Cit9CisgICAgCitzdGF0aWMgdm9pZCBwYWlu
dEJ1dHRvbihDb250cm9sUGFydCBwYXJ0LCBDb250cm9sU3RhdGVzKiBjb250cm9sU3RhdGVzLCBH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxv
YXQgem9vbUZhY3RvciwgU2Nyb2xsVmlldyogc2Nyb2xsVmlldywgZmxvYXQgZGV2aWNlU2NhbGVG
YWN0b3IsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcikKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlMKICAgICAKQEAgLTU2MSw5ICs1NjcsMTkgQEAgc3RhdGljIHZvaWQgcGFpbnRCdXR0
b24oQ29udHJvbFBhcnQgcGFydCwgQ29udHJvbFN0YXRlcyogY29udHJvbFN0YXRlcywgR3JhcGhp
Y3MKICAgICAgICAgICAgIGNvbnRleHQtPnNjYWxlKEZsb2F0U2l6ZSh6b29tRmFjdG9yLCB6b29t
RmFjdG9yKSk7CiAgICAgICAgICAgICBjb250ZXh0LT50cmFuc2xhdGUoLWluZmxhdGVkUmVjdC54
KCksIC1pbmZsYXRlZFJlY3QueSgpKTsKICAgICAgICAgfQotICAgIH0gCi0KLSAgICBMb2NhbEN1
cnJlbnRHcmFwaGljc0NvbnRleHQgbG9jYWxDb250ZXh0KGNvbnRleHQpOworICAgIH0KKyAgICAK
KyAgICBib29sIHNob3VsZFVzZUltYWdlQnVmZmVyID0gcGFnZVNjYWxlRmFjdG9yICE9IDEuMGYg
fHwgem9vbUZhY3RvciAhPSAxLjBmOworICAgIGZsb2F0IGZvY3VzVGhpY2tuZXNzID0gYnV0dG9u
Rm9jdXNSZWN0T3V0bGluZVdpZHRoKCk7CisgICAgCisgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdl
QnVmZmVyPiBpbWFnZUJ1ZmZlcjsKKyAgICBHcmFwaGljc0NvbnRleHQqIGRyYXdCdXR0b25Db250
ZXh0ID0gY29udGV4dDsKKyAgICBpZiAoc2hvdWxkVXNlSW1hZ2VCdWZmZXIpIHsKKyAgICAgICAg
aW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcihpbmZsYXRl
ZFJlY3Quc2l6ZSgpICsgMiAqIEZsb2F0U2l6ZShmb2N1c1RoaWNrbmVzcywgZm9jdXNUaGlja25l
c3MpLCBkZXZpY2VTY2FsZUZhY3RvciwgQ29sb3JTcGFjZURldmljZVJHQiwgY29udGV4dCwgZmFs
c2UpOworICAgICAgICBkcmF3QnV0dG9uQ29udGV4dCA9IGltYWdlQnVmZmVyLT5jb250ZXh0KCk7
CisgICAgfQorICAgIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dCBsb2NhbENvbnRleHQoZHJh
d0J1dHRvbkNvbnRleHQpOworICAgIAogICAgIE5TVmlldyAqdmlldyA9IFRoZW1lTWFjOjplbnN1
cmVkVmlldyhzY3JvbGxWaWV3LCBjb250cm9sU3RhdGVzKTsKICAgICBOU1dpbmRvdyAqd2luZG93
ID0gW3ZpZXcgd2luZG93XTsKICAgICBOU0J1dHRvbkNlbGwgKnByZXZpb3VzRGVmYXVsdEJ1dHRv
bkNlbGwgPSBbd2luZG93IGRlZmF1bHRCdXR0b25DZWxsXTsKQEAgLTU3NiwxMiArNTkyLDIyIEBA
IHN0YXRpYyB2b2lkIHBhaW50QnV0dG9uKENvbnRyb2xQYXJ0IHBhcnQsIENvbnRyb2xTdGF0ZXMq
IGNvbnRyb2xTdGF0ZXMsIEdyYXBoaWNzCiAgICAgfSBlbHNlIGlmIChbcHJldmlvdXNEZWZhdWx0
QnV0dG9uQ2VsbCBpc0VxdWFsOmJ1dHRvbkNlbGxdKQogICAgICAgICBbd2luZG93IHNldERlZmF1
bHRCdXR0b25DZWxsOm5pbF07CiAKLSAgICBbYnV0dG9uQ2VsbCBkcmF3V2l0aEZyYW1lOk5TUmVj
dChpbmZsYXRlZFJlY3QpIGluVmlldzp2aWV3XTsKLSAgICBib29sIG5lZWRzUmVwYWludCA9IGZh
bHNlOwotICAgIGlmIChzdGF0ZXMgJiBDb250cm9sU3RhdGVzOjpGb2N1c1N0YXRlKQotICAgICAg
ICBuZWVkc1JlcGFpbnQgPSBkcmF3Q2VsbEZvY3VzUmluZyhidXR0b25DZWxsLCBpbmZsYXRlZFJl
Y3QsIHZpZXcpOwotCi0gICAgY29udHJvbFN0YXRlcy0+c2V0TmVlZHNSZXBhaW50KG5lZWRzUmVw
YWludCk7CisgICAgaWYgKHNob3VsZFVzZUltYWdlQnVmZmVyKSB7CisgICAgICAgIFtidXR0b25D
ZWxsIGRyYXdXaXRoRnJhbWU6Q0dSZWN0TWFrZShmb2N1c1RoaWNrbmVzcywgZm9jdXNUaGlja25l
c3MsIGluZmxhdGVkUmVjdC53aWR0aCgpLCBpbmZsYXRlZFJlY3QuaGVpZ2h0KCkpIGluVmlldzp2
aWV3XTsKKyAgICAgICAgaWYgKCEoc3RhdGVzICYgQ29udHJvbFN0YXRlczo6Rm9jdXNTdGF0ZSkp
CisgICAgICAgICAgICBjb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIuZ2V0KCks
IENvbG9yU3BhY2VEZXZpY2VSR0IsIGluZmxhdGVkUmVjdC5sb2NhdGlvbigpIC0gRmxvYXRTaXpl
KGZvY3VzVGhpY2tuZXNzLCBmb2N1c1RoaWNrbmVzcykpOworICAgIH0gZWxzZQorICAgICAgICBb
YnV0dG9uQ2VsbCBkcmF3V2l0aEZyYW1lOkNHUmVjdChpbmZsYXRlZFJlY3QpIGluVmlldzp2aWV3
XTsKKyAgICAKKyAgICBpZiAoc3RhdGVzICYgQ29udHJvbFN0YXRlczo6Rm9jdXNTdGF0ZSkgewor
ICAgICAgICBpZiAoc2hvdWxkVXNlSW1hZ2VCdWZmZXIpIHsKKyAgICAgICAgICAgIGRyYXdDZWxs
Rm9jdXNSaW5nKGJ1dHRvbkNlbGwsIENHUmVjdE1ha2UoZm9jdXNUaGlja25lc3MsIGZvY3VzVGhp
Y2tuZXNzLCBpbmZsYXRlZFJlY3Qud2lkdGgoKSwgaW5mbGF0ZWRSZWN0LmhlaWdodCgpKSwgdmll
dyk7CisgICAgICAgICAgICBjb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIuZ2V0
KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGluZmxhdGVkUmVjdC5sb2NhdGlvbigpIC0gRmxvYXRT
aXplKGZvY3VzVGhpY2tuZXNzLCBmb2N1c1RoaWNrbmVzcykpOworICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgIGRyYXdDZWxsRm9jdXNSaW5nKGJ1dHRvbkNlbGwsIGluZmxhdGVkUmVjdCwgdmll
dyk7CisgICAgfQorICAgIAorICAgIGNvbnRyb2xTdGF0ZXMtPnNldE5lZWRzUmVwYWludChmYWxz
ZSk7CiAKICAgICBbYnV0dG9uQ2VsbCBzZXRDb250cm9sVmlldzpuaWxdOwogCkBAIC04MjMsNyAr
ODQ5LDcgQEAgdm9pZCBUaGVtZU1hYzo6aW5mbGF0ZUNvbnRyb2xQYWludFJlY3QoQ29udHJvbFBh
cnQgcGFydCwgY29uc3QgQ29udHJvbFN0YXRlcyogc3QKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TCiB9CiAKLXZvaWQgVGhlbWVNYWM6OnBhaW50KENvbnRyb2xQYXJ0IHBhcnQsIENvbnRy
b2xTdGF0ZXMqIHN0YXRlcywgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJl
Y3QmIHpvb21lZFJlY3QsIGZsb2F0IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcqIHNjcm9sbFZpZXcp
Cit2b2lkIFRoZW1lTWFjOjpwYWludChDb250cm9sUGFydCBwYXJ0LCBDb250cm9sU3RhdGVzKiBz
dGF0ZXMsIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiB6b29tZWRS
ZWN0LCBmbG9hdCB6b29tRmFjdG9yLCBTY3JvbGxWaWV3KiBzY3JvbGxWaWV3LCBmbG9hdCBkZXZp
Y2VTY2FsZUZhY3RvciwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKQogewogICAgIHN3aXRjaCAocGFy
dCkgewogICAgICAgICBjYXNlIENoZWNrYm94UGFydDoKQEAgLTgzNiw3ICs4NjIsNyBAQCB2b2lk
IFRoZW1lTWFjOjpwYWludChDb250cm9sUGFydCBwYXJ0LCBDb250cm9sU3RhdGVzKiBzdGF0ZXMs
IEdyYXBoaWNzQ29udGV4dCogYwogICAgICAgICBjYXNlIERlZmF1bHRCdXR0b25QYXJ0OgogICAg
ICAgICBjYXNlIEJ1dHRvblBhcnQ6CiAgICAgICAgIGNhc2UgU3F1YXJlQnV0dG9uUGFydDoKLSAg
ICAgICAgICAgIHBhaW50QnV0dG9uKHBhcnQsIHN0YXRlcywgY29udGV4dCwgem9vbWVkUmVjdCwg
em9vbUZhY3Rvciwgc2Nyb2xsVmlldyk7CisgICAgICAgICAgICBwYWludEJ1dHRvbihwYXJ0LCBz
dGF0ZXMsIGNvbnRleHQsIHpvb21lZFJlY3QsIHpvb21GYWN0b3IsIHNjcm9sbFZpZXcsIGRldmlj
ZVNjYWxlRmFjdG9yLCBwYWdlU2NhbGVGYWN0b3IpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgSW5uZXJTcGluQnV0dG9uUGFydDoKICAgICAgICAgICAgIHBhaW50U3RlcHBlcihz
dGF0ZXMsIGNvbnRleHQsIHpvb21lZFJlY3QsIHpvb21GYWN0b3IsIHNjcm9sbFZpZXcpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKaW5kZXggODAxNDA4MmJkNGUwZTY5
YzdjNzgxN2E2NzRhZjQ4NGI4ZWRhY2MxOC4uNzJjMzQ0MmIyMDEwYTAwNDE4YWNiZGZiOGM3NWY3
ODRmYzkyODA1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCkBA
IC0yNzcsOSArMjc3LDEyIEBAIGJvb2wgUmVuZGVyVGhlbWU6OnBhaW50KGNvbnN0IFJlbmRlck9i
amVjdCYgbywgQ29udHJvbFN0YXRlcyogY29udHJvbFN0YXRlcywgY29uCiAKICAgICBDb250cm9s
UGFydCBwYXJ0ID0gby5zdHlsZSgpLmFwcGVhcmFuY2UoKTsKICAgICBJbnRSZWN0IGludGVncmFs
U25hcHBlZFJlY3QgPSBzbmFwcGVkSW50UmVjdChyKTsKLSAgICBGbG9hdFJlY3QgZGV2aWNlUGl4
ZWxTbmFwcGVkUmVjdCA9IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMociwgby5kb2N1bWVudCgpLmRl
dmljZVNjYWxlRmFjdG9yKCkpOworICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yID0gby5kb2N1
bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCk7CisgICAgRmxvYXRSZWN0IGRldmljZVBpeGVsU25h
cHBlZFJlY3QgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKHIsIGRldmljZVNjYWxlRmFjdG9yKTsK
IAogI2lmIFVTRShORVdfVEhFTUUpCisgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yID0gby5kb2N1
bWVudCgpLnBhZ2UoKSA/IG8uZG9jdW1lbnQoKS5wYWdlKCktPnBhZ2VTY2FsZUZhY3RvcigpIDog
MS4wZjsKKyAgICAKICAgICBzd2l0Y2ggKHBhcnQpIHsKICAgICBjYXNlIENoZWNrYm94UGFydDoK
ICAgICBjYXNlIFJhZGlvUGFydDoKQEAgLTI4OSw3ICsyOTIsNyBAQCBib29sIFJlbmRlclRoZW1l
OjpwYWludChjb25zdCBSZW5kZXJPYmplY3QmIG8sIENvbnRyb2xTdGF0ZXMqIGNvbnRyb2xTdGF0
ZXMsIGNvbgogICAgIGNhc2UgQnV0dG9uUGFydDoKICAgICBjYXNlIElubmVyU3BpbkJ1dHRvblBh
cnQ6CiAgICAgICAgIHVwZGF0ZUNvbnRyb2xTdGF0ZXNGb3JSZW5kZXJlcihvLCBjb250cm9sU3Rh
dGVzKTsKLSAgICAgICAgbV90aGVtZS0+cGFpbnQocGFydCwgY29udHJvbFN0YXRlcywgY29uc3Rf
Y2FzdDxHcmFwaGljc0NvbnRleHQqPihwYWludEluZm8uY29udGV4dCksIGRldmljZVBpeGVsU25h
cHBlZFJlY3QsIG8uc3R5bGUoKS5lZmZlY3RpdmVab29tKCksICZvLnZpZXcoKS5mcmFtZVZpZXco
KSk7CisgICAgICAgIG1fdGhlbWUtPnBhaW50KHBhcnQsIGNvbnRyb2xTdGF0ZXMsIGNvbnN0X2Nh
c3Q8R3JhcGhpY3NDb250ZXh0Kj4ocGFpbnRJbmZvLmNvbnRleHQpLCBkZXZpY2VQaXhlbFNuYXBw
ZWRSZWN0LCBvLnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpLCAmby52aWV3KCkuZnJhbWVWaWV3KCks
IGRldmljZVNjYWxlRmFjdG9yLCBwYWdlU2NhbGVGYWN0b3IpOwogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>