<?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>106460</bug_id>
          
          <creation_ts>2013-01-09 08:48:51 -0800</creation_ts>
          <short_desc>Fix scale of screen.width, window.outerWidth and @media device-width when page scale not applied in compositor.</short_desc>
          <delta_ts>2013-01-10 13:11:29 -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>New Bugs</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>http://jsbin.com/urowoh/latest</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="John Mellor">johnme</reporter>
          <assigned_to name="John Mellor">johnme</assigned_to>
          <cc>abarth</cc>
    
    <cc>abecsi</cc>
    
    <cc>aelias</cc>
    
    <cc>eric</cc>
    
    <cc>kenneth</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>peter</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>803362</commentid>
    <comment_count>0</comment_count>
    <who name="John Mellor">johnme</who>
    <bug_when>2013-01-09 08:48:51 -0800</bug_when>
    <thetext>Fix scale of screen.width, window.outerWidth and @media device-width when page scale not applied in compositor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803485</commentid>
    <comment_count>1</comment_count>
      <attachid>181948</attachid>
    <who name="John Mellor">johnme</who>
    <bug_when>2013-01-09 10:48:56 -0800</bug_when>
    <thetext>Created attachment 181948
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803520</commentid>
    <comment_count>2</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2013-01-09 11:21:08 -0800</bug_when>
    <thetext>Hmm, applyPageScaleFactorInCompositor defaults to false so this patch may not be a no-op for non-Chromium ports.  How about moving applyDeviceScaleFactorInCompositor to WebCore/page/Settings.h and defaulting that value to true?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803562</commentid>
    <comment_count>3</comment_count>
      <attachid>181948</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-01-09 12:06:52 -0800</bug_when>
    <thetext>Comment on attachment 181948
Patch

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

&gt; Source/WebCore/ChangeLog:40
&gt; +        No new tests, as I don&apos;t know how to setup DRT so it
&gt; +            a) has a deviceScaleFactor other than 1, and

This is indeed done in some tests... try grepping for deviceScaleFactor

&gt; Source/WebCore/page/DOMWindow.cpp:1122
&gt; -    return static_cast&lt;int&gt;(page-&gt;chrome()-&gt;windowRect().height());
&gt; +    float height = page-&gt;chrome()-&gt;windowRect().height();
&gt; +    if (!page-&gt;settings()-&gt;applyPageScaleFactorInCompositor())
&gt; +        height /= page-&gt;deviceScaleFactor();
&gt; +    return static_cast&lt;int&gt;(height);

This is against what iOS, Qt etc are doing. windowRect should returns values in UI units instead. Can&apos;t you move this code there?

&gt; Source/WebCore/platform/chromium/PlatformScreenChromium.cpp:92
&gt; +static FloatRect scaleToUIPixels(FloatRect rect, Widget* widget)
&gt; +{
&gt; +    if (widget-&gt;isFrameView()) {
&gt; +        Page* page = static_cast&lt;FrameView*&gt;(widget)-&gt;frame()-&gt;page();
&gt; +        if (page &amp;&amp; !page-&gt;settings()-&gt;applyPageScaleFactorInCompositor())
&gt; +            rect.scale(1 / page-&gt;deviceScaleFactor());
&gt; +    }
&gt; +    return rect;
&gt; +}

mac already uses similar functions (though their OS reports values already in UI units, but they need flipping). I think they are in their webkit2 Pageclient class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804213</commentid>
    <comment_count>4</comment_count>
      <attachid>182104</attachid>
    <who name="John Mellor">johnme</who>
    <bug_when>2013-01-10 03:03:57 -0800</bug_when>
    <thetext>Created attachment 182104
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804214</commentid>
    <comment_count>5</comment_count>
    <who name="John Mellor">johnme</who>
    <bug_when>2013-01-10 03:05:00 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; applyPageScaleFactorInCompositor defaults to false so this patch may not be a no-op for non-Chromium ports.  How about moving applyDeviceScaleFactorInCompositor to WebCore/page/Settings.h and defaulting that value to true?

Oops! Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804245</commentid>
    <comment_count>6</comment_count>
      <attachid>182104</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-01-10 04:28:29 -0800</bug_when>
    <thetext>Comment on attachment 182104
Patch

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

&gt; Source/WebCore/page/DOMWindow.cpp:1121
&gt; +    float height = page-&gt;chrome()-&gt;windowRect().height();
&gt; +    if (!page-&gt;settings()-&gt;applyDeviceScaleFactorInCompositor())
&gt; +        height /= page-&gt;deviceScaleFactor();

I still don&apos;t think this is the right place for this. Other ports are treading windowRect as in ui units</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804318</commentid>
    <comment_count>7</comment_count>
      <attachid>181948</attachid>
    <who name="John Mellor">johnme</who>
    <bug_when>2013-01-10 06:22:32 -0800</bug_when>
    <thetext>Comment on attachment 181948
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:40
&gt;&gt; +            a) has a deviceScaleFactor other than 1, and
&gt; 
&gt; This is indeed done in some tests... try grepping for deviceScaleFactor

Yes, it seems one can use testRunner.setBackingScaleFactor for a); but b) is tricky. I guess I could expose the applyDeviceScaleFactorInCompositor setting on InternalSettings and set it from a test (and the test would presumably check that with dSF of 2, DRT has a 400x300px window instead of 800x600px). Do you think it would be worth exposing that just for this?

&gt;&gt; Source/WebCore/page/DOMWindow.cpp:1122
&gt;&gt; +    return static_cast&lt;int&gt;(height);
&gt; 
&gt; This is against what iOS, Qt etc are doing. windowRect should returns values in UI units instead. Can&apos;t you move this code there?

I agree; I&apos;d assumed that would break things in Chrome for Android&apos;s current implementation, but actually this seems to work fine. Alex, can you confirm that this new approach is ok? I&apos;ll upload a new patch in a minute.

&gt;&gt; Source/WebCore/platform/chromium/PlatformScreenChromium.cpp:92
&gt;&gt; +}
&gt; 
&gt; mac already uses similar functions (though their OS reports values already in UI units, but they need flipping). I think they are in their webkit2 Pageclient class.

Yes, they have toUserSpace and toDeviceSpace in platform/mac/PlatformScreenMac.mm - are you suggesting I use the same name (toUserSpace)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804333</commentid>
    <comment_count>8</comment_count>
      <attachid>182129</attachid>
    <who name="John Mellor">johnme</who>
    <bug_when>2013-01-10 06:47:41 -0800</bug_when>
    <thetext>Created attachment 182129
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804537</commentid>
    <comment_count>9</comment_count>
      <attachid>182129</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-01-10 10:53:09 -0800</bug_when>
    <thetext>Comment on attachment 182129
Patch

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

&gt; Source/WebCore/ChangeLog:42
&gt; +        No new tests, as I don&apos;t know how to setup DRT so it
&gt; +            a) has a deviceScaleFactor other than 1, and
&gt; +            b) applyPageScaleFactorInCompositor is false.
&gt; +        Advice welcome if this is actually possible!

You should probably rewrite this part

is b) true for Android only? Then just make the test expected failure on non-android chrome? it should pass for other platforms doing this right</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804539</commentid>
    <comment_count>10</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-01-10 10:54:49 -0800</bug_when>
    <thetext>
&gt; Yes, it seems one can use testRunner.setBackingScaleFactor for a); but b) is tricky. I guess I could expose the applyDeviceScaleFactorInCompositor setting on InternalSettings and set it from a test (and the test would presumably check that with dSF of 2, DRT has a 400x300px window instead of 800x600px). Do you think it would be worth exposing that just for this?

doesnt seem worth it. Cant you not just make the test pass on Android and have expected failure for desktop Chrome?

&gt; Yes, they have toUserSpace and toDeviceSpace in platform/mac/PlatformScreenMac.mm - are you suggesting I use the same name (toUserSpace)?

It is not the best names in the world, but consistency is important, so it might be worth it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804588</commentid>
    <comment_count>11</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2013-01-10 11:35:59 -0800</bug_when>
    <thetext>As far as I know, adjusting windowRect should be fine, although please double-check that there isn&apos;t a call site that ends up double-applying the scale.

On http://trac.webkit.org/wiki/ScalesAndZooms we wrote &quot;DIP pixel&quot; (for density independent pixel) which is the same term that&apos;s used in Chromium.  It&apos;s not prevalent in WebKit yet, but it&apos;s unambiguous so I&apos;d suggest that one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804621</commentid>
    <comment_count>12</comment_count>
      <attachid>182129</attachid>
    <who name="John Mellor">johnme</who>
    <bug_when>2013-01-10 12:08:04 -0800</bug_when>
    <thetext>Comment on attachment 182129
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:42
&gt;&gt; +        Advice welcome if this is actually possible!
&gt; 
&gt; You should probably rewrite this part
&gt; 
&gt; is b) true for Android only? Then just make the test expected failure on non-android chrome? it should pass for other platforms doing this right

Actually, I mean applyDeviceScaleFactorInCompositor. And sadly no, it&apos;s true for all platforms except Chrome for Android. So for example, I could write a test to check that when deviceScaleFactor == 1, then screen.width == @media device-width == 800; and that when deviceScaleFactor == 2, then screen.width == @media device-width == still 800 (because then WebCore assumes the 800px is in UI pixels, and so is still the correct value for these APIs). But that&apos;s not testing the right thing. In fact, that test won&apos;t even fail on Android, because Android DRT does AFAIK have applyDeviceScaleFactorInCompositor true, like all the desktop platforms.

I&apos;ve changed the explanation to &quot;No new tests, as applyDeviceScaleFactorInCompositor appears to always be true in DumpRenderTree, so this situation cannot occur there.&quot;

&gt; It is not the best names in the world, but consistency is important, so it [renaming to toUserSpace] might be worth it

Done.

&gt; As far as I know, adjusting windowRect should be fine, although please double-check that there isn&apos;t a call site that ends up double-applying the scale.

Done - they all seem benign.

&gt; On http://trac.webkit.org/wiki/ScalesAndZooms we wrote &quot;DIP pixel&quot; (for density independent pixel)

I&apos;ve switched to that term in the ChangeLog &amp; comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804622</commentid>
    <comment_count>13</comment_count>
      <attachid>182190</attachid>
    <who name="John Mellor">johnme</who>
    <bug_when>2013-01-10 12:09:08 -0800</bug_when>
    <thetext>Created attachment 182190
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804665</commentid>
    <comment_count>14</comment_count>
      <attachid>182190</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-10 13:11:24 -0800</bug_when>
    <thetext>Comment on attachment 182190
Patch

Clearing flags on attachment: 182190

Committed r139356: &lt;http://trac.webkit.org/changeset/139356&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804666</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-10 13:11:29 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181948</attachid>
            <date>2013-01-09 10:48:56 -0800</date>
            <delta_ts>2013-01-10 06:22:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106460-20130109184600.patch</filename>
            <type>text/plain</type>
            <size>6146</size>
            <attacher name="John Mellor">johnme</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzBkOTk5YzYxN2YxYWIx
MDIyNTViNzI2MTdlYWVkMmVjMDQ0NWEwOS4uOGFhYmU3NGFmZTU0NjU2MTc4ODZjOGZkNmYxYWRk
ZmZkZmU2ZDQxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEzLTAxLTA5ICBKb2hu
IE1lbGxvciAgPGpvaG5tZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRml4IHNjYWxlIG9mIHNj
cmVlbi53aWR0aCwgd2luZG93Lm91dGVyV2lkdGggYW5kIEBtZWRpYSBkZXZpY2Utd2lkdGggd2hl
biBwYWdlIHNjYWxlIG5vdCBhcHBsaWVkIGluIGNvbXBvc2l0b3IuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY0NjAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzY3JlZW4ud2lkdGgsIHdpbmRvdy5vdXRl
cldpZHRoIGFuZCBAbWVkaWEgZGV2aWNlLXdpZHRoIHNob3VsZCBiZSBpbgorICAgICAgICBsb2dp
Y2FsIFVJIHBpeGVscywgbm90IHBoeXNpY2FsIHNjcmVlbiBwaXhlbHMuCisKKyAgICAgICAgVGhp
cyBhbHJlYWR5IHdvcmtzIG9uIG1vc3QgcG9ydHMgKGluY2x1ZGluZyBpT1MpLiBIb3dldmVyIENo
cm9tZSBmb3IKKyAgICAgICAgQW5kcm9pZCBjdXJyZW50bHkgaW50ZXJuYWxseSBzaXplcyBpdHMg
d2luZG93cyBpbiBwaHlzaWNhbCBzY3JlZW4gcGl4ZWxzCisgICAgICAgIGluc3RlYWQgb2YgZGV2
aWNlLXNjYWxlLWFkanVzdGVkIHVuaXRzLCBhbmQgdGhpcyBsZWFrcyB0aHJvdWdoIGluIHRoZQor
ICAgICAgICBzaXplcyBwcm92aWRlZCB0byBXZWJDb3JlLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
c2NhbGVzIHRoZXNlIHNpemVzIGFwcHJvcHJpYXRlbHkgYmVmb3JlIHRoZXkgcmVhY2ggSmF2YVNj
cmlwdCwKKyAgICAgICAgb24gcGxhdGZvcm1zIHdoZXJlIHRoZSBhcHBseVBhZ2VTY2FsZUZhY3Rv
ckluQ29tcG9zaXRvciBzZXR0aW5nIGlzIGZhbHNlCisgICAgICAgIChpLmUuIGp1c3QgQ2hyb21l
IGZvciBBbmRyb2lkKS4gT25jZSBDaHJvbWUgZm9yIEFuZHJvaWQgc3dpdGNoZXMgb3ZlciB0bwor
ICAgICAgICB0aGUgc2FtZSBjb29yZGluYXRlIHNwYWNlLCB0aGUgYXBwbHlQYWdlU2NhbGVGYWN0
b3JJbkNvbXBvc2l0b3Igc2V0dGluZworICAgICAgICB3aWxsIGJlIHJlbW92ZWQsIGFsb25nIHdp
dGggYW55IGNvZGUgKHN1Y2ggYXMgdGhpcykgdGhhdCBkZXBlbmRzIG9uIGl0LgorCisgICAgICAg
IFRoZSBlZmZlY3Qgb2YgdGhpcyBwYXRjaCBvbiBDaHJvbWUgZm9yIEFuZHJvaWQgd2hlbiB2aWV3
aW5nIGEgcGFnZSB3aXRoCisgICAgICAgIGEgd2lkdGg9ZGV2aWNlLXdpZHRoIHZpZXdwb3J0IG9u
IGEgR2FsYXh5IE5leHVzICg3MjB4MTI4MCBAIGRQUiAyKSBpczoKKyAgICAgICAgICAgIEBtZWRp
YSBkZXZpY2Utd2lkdGggICAgICBjaGFuZ2VzIGZyb20gNzIwIHRvIDM2MAorICAgICAgICAgICAg
c2NyZWVuLndpZHRoICAgICAgICAgICAgIGNoYW5nZXMgZnJvbSA3MjAgdG8gMzYwCisgICAgICAg
ICAgICBzY3JlZW4uYXZhaWxXaWR0aCAgICAgICAgY2hhbmdlcyBmcm9tIDcyMCB0byAzNjAKKyAg
ICAgICAgICAgIHdpbmRvdy5vdXRlcldpZHRoICAgICAgICBjaGFuZ2VzIGZyb20gNzIwIHRvIDM2
MAorICAgICAgICAgICAgd2luZG93LmlubmVyV2lkdGggICAgICAgICAgICAgICAgICAgIHJlbWFp
bnMgMzYwIChhdCBvdmVydmlldyB6b29tKQorICAgICAgICAgICAgQG1lZGlhIHdpZHRoICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlbWFpbnMgMzYwCisgICAgICAgICAgICBkb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQuY2xpZW50V2lkdGggcmVtYWlucyAzNjAKKyAgICAgICAgICAgIGRvY3VtZW50
LmRvY3VtZW50RWxlbWVudC5vZmZzZXRXaWR0aCByZW1haW5zIDM2MAorICAgICAgICAgICAgZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFdpZHRoIHJlbWFpbnMgMzYwCisgICAgICAgICAg
ICBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoICAgICAgICAgICAgcmVtYWlucyAzNjAKKyAgICAg
ICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGggICAgICAgICAgICByZW1haW5zIDM2MAor
ICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5zY3JvbGxXaWR0aCAgICAgICAgICAgIHJlbWFpbnMg
MzYwCisgICAgICAgIEFuZCBzaW1pbGFybHkgZm9yIGhlaWdodHMgKHRob3VnaCB0aGV5IGFyZSBz
bGlnaHRseSBsZXNzIHRoYW4gNjQwLCBzaW5jZQorICAgICAgICB0b29sYmFycyBldGMuIGdldCBz
dWJ0cmFjdGVkIGZyb20gdGhlIGF2YWlsYWJsZSBoZWlnaHQpLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cywgYXMgSSBkb24ndCBrbm93IGhvdyB0byBzZXR1cCBEUlQgc28gaXQKKyAgICAgICAgICAg
IGEpIGhhcyBhIGRldmljZVNjYWxlRmFjdG9yIG90aGVyIHRoYW4gMSwgYW5kCisgICAgICAgICAg
ICBiKSBhcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvciBpcyBmYWxzZS4KKyAgICAgICAg
QWR2aWNlIHdlbGNvbWUgaWYgdGhpcyBpcyBhY3R1YWxseSBwb3NzaWJsZSEKKworICAgICAgICAq
IHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6b3V0ZXJI
ZWlnaHQpOgorICAgICAgICAgICAgTm9ybWFsaXplcyBoZWlnaHQuCisgICAgICAgIChXZWJDb3Jl
OjpET01XaW5kb3c6Om91dGVyV2lkdGgpOgorICAgICAgICAgICAgTm9ybWFsaXplcyB3aWR0aC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVNjcmVlbkNocm9taXVtLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnNjYWxlVG9VSVBpeGVscyk6CisgICAgICAgICAgICBTdGF0aWMg
ZnVuY3Rpb24gZm9yIG5vcm1hbGl6aW5nIHNjcmVlbiByZWN0IHNjYWxlLgorICAgICAgICAoV2Vi
Q29yZTo6c2NyZWVuUmVjdCk6CisgICAgICAgICAgICBVc2VzIHNjYWxlVG9VSVBpeGVscy4KKyAg
ICAgICAgKFdlYkNvcmU6OnNjcmVlbkF2YWlsYWJsZVJlY3QpOgorICAgICAgICAgICAgVXNlcyBz
Y2FsZVRvVUlQaXhlbHMuCisKIDIwMTItMTItMjggIFJhZmFlbCBXZWluc3RlaW4gIDxyYWZhZWx3
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbVGVtcGxhdGVzXTogRml4IGFzc2VydCBpbiBjb2xn
cm91cCBwYXJzZSBoYW5kbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGRiZWFm
ZjM1YzQ5MDQ5MDFlNDE3ZDg3N2JkOTcxMWNmMGU4OTJmMjIuLmIxY2QwYWQ2OTQ3MDk1MDZlZjY4
ZmEyNTI0NDFiMDliZThjOTc2YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTEx
MTYsNyArMTExNiwxMCBAQCBpbnQgRE9NV2luZG93OjpvdXRlckhlaWdodCgpIGNvbnN0CiAgICAg
aWYgKCFwYWdlKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxp
bnQ+KHBhZ2UtPmNocm9tZSgpLT53aW5kb3dSZWN0KCkuaGVpZ2h0KCkpOworICAgIGZsb2F0IGhl
aWdodCA9IHBhZ2UtPmNocm9tZSgpLT53aW5kb3dSZWN0KCkuaGVpZ2h0KCk7CisgICAgaWYgKCFw
YWdlLT5zZXR0aW5ncygpLT5hcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpKQorICAg
ICAgICBoZWlnaHQgLz0gcGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKTsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8aW50PihoZWlnaHQpOwogfQogCiBpbnQgRE9NV2luZG93OjpvdXRlcldpZHRoKCkg
Y29uc3QKQEAgLTExMjgsNyArMTEzMSwxMCBAQCBpbnQgRE9NV2luZG93OjpvdXRlcldpZHRoKCkg
Y29uc3QKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIHN0
YXRpY19jYXN0PGludD4ocGFnZS0+Y2hyb21lKCktPndpbmRvd1JlY3QoKS53aWR0aCgpKTsKKyAg
ICBmbG9hdCB3aWR0aCA9IHBhZ2UtPmNocm9tZSgpLT53aW5kb3dSZWN0KCkud2lkdGgoKTsKKyAg
ICBpZiAoIXBhZ2UtPnNldHRpbmdzKCktPmFwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9y
KCkpCisgICAgICAgIHdpZHRoIC89IHBhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCk7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGludD4od2lkdGgpOwogfQogCiBpbnQgRE9NV2luZG93Ojppbm5lckhl
aWdodCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9QbGF0Zm9ybVNjcmVlbkNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL1BsYXRmb3JtU2NyZWVuQ2hyb21pdW0uY3BwCmluZGV4IDRmYjY5MTVhNDY5YTY4Nzdk
YjY1YjZiYzE2ODk1MWMwNWE2YmYwZTcuLjJlZTEwZDUyODMxZWQ1MzgzZWNlNzI2NzYyODJjN2Nh
M2ZjYTUyZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Bs
YXRmb3JtU2NyZWVuQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL1BsYXRmb3JtU2NyZWVuQ2hyb21pdW0uY3BwCkBAIC0zMiw4ICszMiwxMiBAQAogI2lu
Y2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCiAKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNpbmNs
dWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhvc3RXaW5k
b3cuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU2Nyb2xsVmlldy5oIgorI2luY2x1
ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAjaW5jbHVkZSA8cHVibGljL1Bs
YXRmb3JtLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlNjcmVlbkluZm8uaD4KQEAgLTc3LDEyICs4
MSwyMiBAQCBib29sIHNjcmVlbklzTW9ub2Nocm9tZShXaWRnZXQqIHdpZGdldCkKICAgICByZXR1
cm4gY2xpZW50LT5zY3JlZW5JbmZvKCkuaXNNb25vY2hyb21lOwogfQogCitzdGF0aWMgRmxvYXRS
ZWN0IHNjYWxlVG9VSVBpeGVscyhGbG9hdFJlY3QgcmVjdCwgV2lkZ2V0KiB3aWRnZXQpCit7Cisg
ICAgaWYgKHdpZGdldC0+aXNGcmFtZVZpZXcoKSkgeworICAgICAgICBQYWdlKiBwYWdlID0gc3Rh
dGljX2Nhc3Q8RnJhbWVWaWV3Kj4od2lkZ2V0KS0+ZnJhbWUoKS0+cGFnZSgpOworICAgICAgICBp
ZiAocGFnZSAmJiAhcGFnZS0+c2V0dGluZ3MoKS0+YXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBv
c2l0b3IoKSkKKyAgICAgICAgICAgIHJlY3Quc2NhbGUoMSAvIHBhZ2UtPmRldmljZVNjYWxlRmFj
dG9yKCkpOworICAgIH0KKyAgICByZXR1cm4gcmVjdDsKK30KKwogRmxvYXRSZWN0IHNjcmVlblJl
Y3QoV2lkZ2V0KiB3aWRnZXQpCiB7CiAgICAgUGxhdGZvcm1QYWdlQ2xpZW50IGNsaWVudCA9IHRv
UGxhdGZvcm1QYWdlQ2xpZW50KHdpZGdldCk7CiAgICAgaWYgKCFjbGllbnQpCiAgICAgICAgIHJl
dHVybiBGbG9hdFJlY3QoKTsKLSAgICByZXR1cm4gSW50UmVjdChjbGllbnQtPnNjcmVlbkluZm8o
KS5yZWN0KTsKKyAgICByZXR1cm4gc2NhbGVUb1VJUGl4ZWxzKEludFJlY3QoY2xpZW50LT5zY3Jl
ZW5JbmZvKCkucmVjdCksIHdpZGdldCk7CiB9CiAKIEZsb2F0UmVjdCBzY3JlZW5BdmFpbGFibGVS
ZWN0KFdpZGdldCogd2lkZ2V0KQpAQCAtOTAsNyArMTA0LDcgQEAgRmxvYXRSZWN0IHNjcmVlbkF2
YWlsYWJsZVJlY3QoV2lkZ2V0KiB3aWRnZXQpCiAgICAgUGxhdGZvcm1QYWdlQ2xpZW50IGNsaWVu
dCA9IHRvUGxhdGZvcm1QYWdlQ2xpZW50KHdpZGdldCk7CiAgICAgaWYgKCFjbGllbnQpCiAgICAg
ICAgIHJldHVybiBGbG9hdFJlY3QoKTsKLSAgICByZXR1cm4gSW50UmVjdChjbGllbnQtPnNjcmVl
bkluZm8oKS5hdmFpbGFibGVSZWN0KTsKKyAgICByZXR1cm4gc2NhbGVUb1VJUGl4ZWxzKEludFJl
Y3QoY2xpZW50LT5zY3JlZW5JbmZvKCkuYXZhaWxhYmxlUmVjdCksIHdpZGdldCk7CiB9CiAKIHZv
aWQgc2NyZWVuQ29sb3JQcm9maWxlKENvbG9yUHJvZmlsZSYgdG9Qcm9maWxlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182104</attachid>
            <date>2013-01-10 03:03:57 -0800</date>
            <delta_ts>2013-01-10 06:47:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106460-20130110110100.patch</filename>
            <type>text/plain</type>
            <size>11959</size>
            <attacher name="John Mellor">johnme</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzBkOTk5YzYxN2YxYWIx
MDIyNTViNzI2MTdlYWVkMmVjMDQ0NWEwOS4uYWQ4NTNjY2Q5MjBlYmYyNDViNDIwZTQ5YWEyNGFk
YTk4MjY3ZTEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDEzLTAxLTEwICBKb2hu
IE1lbGxvciAgPGpvaG5tZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRml4IHNjYWxlIG9mIHNj
cmVlbi53aWR0aCwgd2luZG93Lm91dGVyV2lkdGggYW5kIEBtZWRpYSBkZXZpY2Utd2lkdGggd2hl
biBwYWdlIHNjYWxlIG5vdCBhcHBsaWVkIGluIGNvbXBvc2l0b3IuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY0NjAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzY3JlZW4ud2lkdGgsIHdpbmRvdy5vdXRl
cldpZHRoIGFuZCBAbWVkaWEgZGV2aWNlLXdpZHRoIHNob3VsZCBiZSBpbgorICAgICAgICBsb2dp
Y2FsIFVJIHBpeGVscywgbm90IHBoeXNpY2FsIHNjcmVlbiBwaXhlbHMuCisKKyAgICAgICAgVGhp
cyBhbHJlYWR5IHdvcmtzIG9uIG1vc3QgcG9ydHMgKGluY2x1ZGluZyBpT1MpLiBIb3dldmVyIENo
cm9tZSBmb3IKKyAgICAgICAgQW5kcm9pZCBjdXJyZW50bHkgaW50ZXJuYWxseSBzaXplcyBpdHMg
d2luZG93cyBpbiBwaHlzaWNhbCBzY3JlZW4gcGl4ZWxzCisgICAgICAgIGluc3RlYWQgb2YgZGV2
aWNlLXNjYWxlLWFkanVzdGVkIHVuaXRzLCBhbmQgdGhpcyBsZWFrcyB0aHJvdWdoIGluIHRoZQor
ICAgICAgICBzaXplcyBwcm92aWRlZCB0byBXZWJDb3JlLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
c2NhbGVzIHRoZXNlIHNpemVzIGFwcHJvcHJpYXRlbHkgYmVmb3JlIHRoZXkgcmVhY2ggSmF2YVNj
cmlwdCwKKyAgICAgICAgb24gcGxhdGZvcm1zIHdoZXJlIHRoZSBhcHBseVBhZ2VTY2FsZUZhY3Rv
ckluQ29tcG9zaXRvciBzZXR0aW5nIGlzIGZhbHNlCisgICAgICAgIChpLmUuIGp1c3QgQ2hyb21l
IGZvciBBbmRyb2lkKS4gT25jZSBDaHJvbWUgZm9yIEFuZHJvaWQgc3dpdGNoZXMgb3ZlciB0bwor
ICAgICAgICB0aGUgc2FtZSBjb29yZGluYXRlIHNwYWNlLCB0aGUgYXBwbHlQYWdlU2NhbGVGYWN0
b3JJbkNvbXBvc2l0b3Igc2V0dGluZworICAgICAgICB3aWxsIGJlIHJlbW92ZWQsIGFsb25nIHdp
dGggYW55IGNvZGUgKHN1Y2ggYXMgdGhpcykgdGhhdCBkZXBlbmRzIG9uIGl0LgorCisgICAgICAg
IFRoZSBlZmZlY3Qgb2YgdGhpcyBwYXRjaCBvbiBDaHJvbWUgZm9yIEFuZHJvaWQgd2hlbiB2aWV3
aW5nIGEgcGFnZSB3aXRoCisgICAgICAgIGEgd2lkdGg9ZGV2aWNlLXdpZHRoIHZpZXdwb3J0IG9u
IGEgR2FsYXh5IE5leHVzICg3MjB4MTI4MCBAIGRQUiAyKSBpczoKKyAgICAgICAgICAgIEBtZWRp
YSBkZXZpY2Utd2lkdGggICAgICBjaGFuZ2VzIGZyb20gNzIwIHRvIDM2MAorICAgICAgICAgICAg
c2NyZWVuLndpZHRoICAgICAgICAgICAgIGNoYW5nZXMgZnJvbSA3MjAgdG8gMzYwCisgICAgICAg
ICAgICBzY3JlZW4uYXZhaWxXaWR0aCAgICAgICAgY2hhbmdlcyBmcm9tIDcyMCB0byAzNjAKKyAg
ICAgICAgICAgIHdpbmRvdy5vdXRlcldpZHRoICAgICAgICBjaGFuZ2VzIGZyb20gNzIwIHRvIDM2
MAorICAgICAgICAgICAgd2luZG93LmlubmVyV2lkdGggICAgICAgICAgICAgICAgICAgIHJlbWFp
bnMgMzYwIChhdCBvdmVydmlldyB6b29tKQorICAgICAgICAgICAgQG1lZGlhIHdpZHRoICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlbWFpbnMgMzYwCisgICAgICAgICAgICBkb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQuY2xpZW50V2lkdGggcmVtYWlucyAzNjAKKyAgICAgICAgICAgIGRvY3VtZW50
LmRvY3VtZW50RWxlbWVudC5vZmZzZXRXaWR0aCByZW1haW5zIDM2MAorICAgICAgICAgICAgZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFdpZHRoIHJlbWFpbnMgMzYwCisgICAgICAgICAg
ICBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoICAgICAgICAgICAgcmVtYWlucyAzNjAKKyAgICAg
ICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGggICAgICAgICAgICByZW1haW5zIDM2MAor
ICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5zY3JvbGxXaWR0aCAgICAgICAgICAgIHJlbWFpbnMg
MzYwCisgICAgICAgIEFuZCBzaW1pbGFybHkgZm9yIGhlaWdodHMgKHRob3VnaCB0aGV5IGFyZSBz
bGlnaHRseSBsZXNzIHRoYW4gNjQwLCBzaW5jZQorICAgICAgICB0b29sYmFycyBldGMuIGdldCBz
dWJ0cmFjdGVkIGZyb20gdGhlIGF2YWlsYWJsZSBoZWlnaHQpLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cywgYXMgSSBkb24ndCBrbm93IGhvdyB0byBzZXR1cCBEUlQgc28gaXQKKyAgICAgICAgICAg
IGEpIGhhcyBhIGRldmljZVNjYWxlRmFjdG9yIG90aGVyIHRoYW4gMSwgYW5kCisgICAgICAgICAg
ICBiKSBhcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvciBpcyBmYWxzZS4KKyAgICAgICAg
QWR2aWNlIHdlbGNvbWUgaWYgdGhpcyBpcyBhY3R1YWxseSBwb3NzaWJsZSEKKworICAgICAgICAq
IHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6b3V0ZXJI
ZWlnaHQpOgorICAgICAgICAgICAgTm9ybWFsaXplcyBoZWlnaHQuCisgICAgICAgIChXZWJDb3Jl
OjpET01XaW5kb3c6Om91dGVyV2lkdGgpOgorICAgICAgICAgICAgTm9ybWFsaXplcyB3aWR0aC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVNjcmVlbkNocm9taXVtLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnNjYWxlVG9VSVBpeGVscyk6CisgICAgICAgICAgICBTdGF0aWMg
ZnVuY3Rpb24gZm9yIG5vcm1hbGl6aW5nIHNjcmVlbiByZWN0IHNjYWxlLgorICAgICAgICAoV2Vi
Q29yZTo6c2NyZWVuUmVjdCk6CisgICAgICAgICAgICBVc2VzIHNjYWxlVG9VSVBpeGVscy4KKyAg
ICAgICAgKFdlYkNvcmU6OnNjcmVlbkF2YWlsYWJsZVJlY3QpOgorICAgICAgICAgICAgVXNlcyBz
Y2FsZVRvVUlQaXhlbHMuCisgICAgICAgICogcGFnZS9TZXR0aW5ncy5pbjoKKyAgICAgICAgICAg
IEFkZGVkIGFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3Igc2V0dGluZywgd2hpY2gg
YWxsb3dzCisgICAgICAgICAgICBkZXRlY3Rpbmcgd2hldGhlciB3ZSBuZWVkIHRvIG5vcm1hbGl6
ZSB0aGUgc2NhbGUuCisgICAgICAgICogcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dEF1dG9zaXplcjo6cHJvY2Vzc1N1YnRyZWUpOgorICAgICAgICAg
ICAgVXNlIGFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IgaW5zdGVhZCBvZgorICAg
ICAgICAgICAgYXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IsIHRvIHNjYWxlIHRoZSB3
aW5kb3cgcmVjdCBjb3JyZWN0bHkKKyAgICAgICAgICAgIG9uIHBsYXRmb3JtcyBvdGhlciB0aGFu
IENocm9tZSBmb3IgQW5kcm9pZC4KKwogMjAxMi0xMi0yOCAgUmFmYWVsIFdlaW5zdGVpbiAgPHJh
ZmFlbHdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtUZW1wbGF0ZXNdOiBGaXggYXNzZXJ0IGlu
IGNvbGdyb3VwIHBhcnNlIGhhbmRsaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDk1
NDM1NWFjNWY3ZmM5MWJlNzBlMzNhYmMyYWE5NDdjMjEwMTYzN2MuLjVhZWRkNTFlZGExYWMxYjUx
MTU1NjQzYzBhOTUyYjk0YmRkYzEyZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjIgQEAKKzIwMTMtMDEtMTAgIEpvaG4gTWVsbG9yICA8am9obm1lQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBGaXggc2NhbGUgb2Ygc2NyZWVuLndpZHRoLCB3aW5kb3cub3V0ZXJXaWR0
aCBhbmQgQG1lZGlhIGRldmljZS13aWR0aCB3aGVuIHBhZ2Ugc2NhbGUgbm90IGFwcGxpZWQgaW4g
Y29tcG9zaXRvci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwNjQ2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEV4cG9zZXMgdGhlIGV4aXN0aW5nIGFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0
b3IgZnJvbSBXZWJTZXR0aW5ncworICAgICAgICBvbiBTZXR0aW5ncyAoYW5kIHN0b3JlcyB0aGUg
dmFsdWUgdGhlcmUgaW5zdGVhZCksIHNvIGl0IGNhbiBiZSBhY2Nlc3NlZAorICAgICAgICBmcm9t
IFdlYkNvcmUuCisKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpXZWJTZXR0aW5nc0ltcGwpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTZXR0aW5nc0ltcGw6OnNldEFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0
b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXR0aW5nc0ltcGw6OmFwcGx5RGV2aWNlU2NhbGVG
YWN0b3JJbkNvbXBvc2l0b3IpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvV2Vi
U2V0dGluZ3NJbXBsLmg6CisgICAgICAgIChXZWJTZXR0aW5nc0ltcGwpOgorCiAyMDEyLTEyLTI4
ICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJvbGwgQ2hy
b21pdW0gREVQUyB0byByMTc0NzM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggZGJl
YWZmMzVjNDkwNDkwMWU0MTdkODc3YmQ5NzExY2YwZTg5MmYyMi4uODZlNjk4N2I0YjRhMmMyNmZj
YThmZGNmNTRiMmZhYjQ0ODRkZjk5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAt
MTExNiw3ICsxMTE2LDEwIEBAIGludCBET01XaW5kb3c6Om91dGVySGVpZ2h0KCkgY29uc3QKICAg
ICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0
PGludD4ocGFnZS0+Y2hyb21lKCktPndpbmRvd1JlY3QoKS5oZWlnaHQoKSk7CisgICAgZmxvYXQg
aGVpZ2h0ID0gcGFnZS0+Y2hyb21lKCktPndpbmRvd1JlY3QoKS5oZWlnaHQoKTsKKyAgICBpZiAo
IXBhZ2UtPnNldHRpbmdzKCktPmFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSkK
KyAgICAgICAgaGVpZ2h0IC89IHBhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCk7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PGludD4oaGVpZ2h0KTsKIH0KIAogaW50IERPTVdpbmRvdzo6b3V0ZXJXaWR0
aCgpIGNvbnN0CkBAIC0xMTI4LDcgKzExMzEsMTAgQEAgaW50IERPTVdpbmRvdzo6b3V0ZXJXaWR0
aCgpIGNvbnN0CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxpbnQ+KHBhZ2UtPmNocm9tZSgpLT53aW5kb3dSZWN0KCkud2lkdGgoKSk7
CisgICAgZmxvYXQgd2lkdGggPSBwYWdlLT5jaHJvbWUoKS0+d2luZG93UmVjdCgpLndpZHRoKCk7
CisgICAgaWYgKCFwYWdlLT5zZXR0aW5ncygpLT5hcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21w
b3NpdG9yKCkpCisgICAgICAgIHdpZHRoIC89IHBhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCk7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4od2lkdGgpOwogfQogCiBpbnQgRE9NV2luZG93Ojpp
bm5lckhlaWdodCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmluIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgppbmRleCAxMjY2MzBjMzNh
YzE5NTEzYWM5ZTkwMDhkYTBhNjgwNmVlYmI5NzEzLi4xMzRmY2Q0YzgzMmNiMjRkNDI2ZGZmNzAz
MGZmOTNjOGE1NWNlYzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KQEAgLTE1Nyw2ICsxNTcs
NyBAQCBjb29raWVFbmFibGVkIGluaXRpYWw9dHJ1ZQogd2luZG93Rm9jdXNSZXN0cmljdGVkIGlu
aXRpYWw9dHJ1ZQogCiBkaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorYXBw
bHlEZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvciBpbml0aWFsPXRydWUKIGFwcGx5UGFnZVNj
YWxlRmFjdG9ySW5Db21wb3NpdG9yIGluaXRpYWw9ZmFsc2UKIHBsdWdJblNuYXBzaG90dGluZ0Vu
YWJsZWQgaW5pdGlhbD1mYWxzZQogZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCBpbml0aWFsPWZhbHNl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVNj
cmVlbkNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRm
b3JtU2NyZWVuQ2hyb21pdW0uY3BwCmluZGV4IDRmYjY5MTVhNDY5YTY4NzdkYjY1YjZiYzE2ODk1
MWMwNWE2YmYwZTcuLjc0MDY0ODkzMTk0MjQ2ZmRmNDU3YTIyY2JiNDA0MmE3M2NmNThiNDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU2NyZWVu
Q2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRm
b3JtU2NyZWVuQ2hyb21pdW0uY3BwCkBAIC0zMiw4ICszMiwxMiBAQAogI2luY2x1ZGUgIlBsYXRm
b3JtU2NyZWVuLmgiCiAKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJGcmFtZS5o
IgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKKyNpbmNs
dWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU2Nyb2xsVmlldy5oIgorI2luY2x1ZGUgIlNldHRpbmdz
LmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAjaW5jbHVkZSA8cHVibGljL1BsYXRmb3JtLmg+CiAj
aW5jbHVkZSA8cHVibGljL1dlYlNjcmVlbkluZm8uaD4KQEAgLTc3LDEyICs4MSwyMiBAQCBib29s
IHNjcmVlbklzTW9ub2Nocm9tZShXaWRnZXQqIHdpZGdldCkKICAgICByZXR1cm4gY2xpZW50LT5z
Y3JlZW5JbmZvKCkuaXNNb25vY2hyb21lOwogfQogCitzdGF0aWMgRmxvYXRSZWN0IHNjYWxlVG9V
SVBpeGVscyhGbG9hdFJlY3QgcmVjdCwgV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgaWYgKHdpZGdl
dC0+aXNGcmFtZVZpZXcoKSkgeworICAgICAgICBQYWdlKiBwYWdlID0gc3RhdGljX2Nhc3Q8RnJh
bWVWaWV3Kj4od2lkZ2V0KS0+ZnJhbWUoKS0+cGFnZSgpOworICAgICAgICBpZiAocGFnZSAmJiAh
cGFnZS0+c2V0dGluZ3MoKS0+YXBwbHlEZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpKQor
ICAgICAgICAgICAgcmVjdC5zY2FsZSgxIC8gcGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSk7Cisg
ICAgfQorICAgIHJldHVybiByZWN0OworfQorCiBGbG9hdFJlY3Qgc2NyZWVuUmVjdChXaWRnZXQq
IHdpZGdldCkKIHsKICAgICBQbGF0Zm9ybVBhZ2VDbGllbnQgY2xpZW50ID0gdG9QbGF0Zm9ybVBh
Z2VDbGllbnQod2lkZ2V0KTsKICAgICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0dXJuIEZsb2F0
UmVjdCgpOwotICAgIHJldHVybiBJbnRSZWN0KGNsaWVudC0+c2NyZWVuSW5mbygpLnJlY3QpOwor
ICAgIHJldHVybiBzY2FsZVRvVUlQaXhlbHMoSW50UmVjdChjbGllbnQtPnNjcmVlbkluZm8oKS5y
ZWN0KSwgd2lkZ2V0KTsKIH0KIAogRmxvYXRSZWN0IHNjcmVlbkF2YWlsYWJsZVJlY3QoV2lkZ2V0
KiB3aWRnZXQpCkBAIC05MCw3ICsxMDQsNyBAQCBGbG9hdFJlY3Qgc2NyZWVuQXZhaWxhYmxlUmVj
dChXaWRnZXQqIHdpZGdldCkKICAgICBQbGF0Zm9ybVBhZ2VDbGllbnQgY2xpZW50ID0gdG9QbGF0
Zm9ybVBhZ2VDbGllbnQod2lkZ2V0KTsKICAgICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0dXJu
IEZsb2F0UmVjdCgpOwotICAgIHJldHVybiBJbnRSZWN0KGNsaWVudC0+c2NyZWVuSW5mbygpLmF2
YWlsYWJsZVJlY3QpOworICAgIHJldHVybiBzY2FsZVRvVUlQaXhlbHMoSW50UmVjdChjbGllbnQt
PnNjcmVlbkluZm8oKS5hdmFpbGFibGVSZWN0KSwgd2lkZ2V0KTsKIH0KIAogdm9pZCBzY3JlZW5D
b2xvclByb2ZpbGUoQ29sb3JQcm9maWxlJiB0b1Byb2ZpbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvVGV4dEF1dG9zaXplci5jcHAKaW5kZXggOTdlMmQxODRkODJiOGVmMDI2YTFkOGYwNjg2
Yzg2ZDk2NzFkNDRmZC4uMTk5Yjk3MzQ3M2FlOWY0NTQ3NTEyOTQ0MzFiMDBhY2MzN2Q3ZDg2MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcApAQCAtODUsNyAr
ODUsNyBAQCBib29sIFRleHRBdXRvc2l6ZXI6OnByb2Nlc3NTdWJ0cmVlKFJlbmRlck9iamVjdCog
bGF5b3V0Um9vdCkKICAgICBpZiAod2luZG93SW5mby53aW5kb3dTaXplLmlzRW1wdHkoKSkgewog
ICAgICAgICBib29sIGluY2x1ZGVTY3JvbGxiYXJzID0gIUluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6c2hvdWxkQXBwbHlTY3JlZW5XaWR0aE92ZXJyaWRlKG1haW5GcmFtZSk7CiAgICAgICAgIHdp
bmRvd0luZm8ud2luZG93U2l6ZSA9IG1haW5GcmFtZS0+dmlldygpLT52aXNpYmxlQ29udGVudFJl
Y3QoaW5jbHVkZVNjcm9sbGJhcnMpLnNpemUoKTsKLSAgICAgICAgaWYgKCFtX2RvY3VtZW50LT5z
ZXR0aW5ncygpLT5hcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpKQorICAgICAgICBp
ZiAoIW1fZG9jdW1lbnQtPnNldHRpbmdzKCktPmFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBv
c2l0b3IoKSkKICAgICAgICAgICAgIHdpbmRvd0luZm8ud2luZG93U2l6ZS5zY2FsZSgxIC8gbV9k
b2N1bWVudC0+cGFnZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpKTsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCmluZGV4IGY2MjE3MThh
YzAzNGM4NmFjMjJmN2M2NWNjZmQzMGIzY2U3N2UyNjUuLmM5NTc3ZTg3OTg4YzNkNDRiOTY4ZDQ3
MDkxYzUyMzMwMjljY2I1YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlNldHRpbmdzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
U2V0dGluZ3NJbXBsLmNwcApAQCAtNTQsNyArNTQsNiBAQCBXZWJTZXR0aW5nc0ltcGw6OldlYlNl
dHRpbmdzSW1wbChTZXR0aW5ncyogc2V0dGluZ3MpCiAgICAgLCBtX3JlbmRlclZTeW5jRW5hYmxl
ZCh0cnVlKQogICAgICwgbV9sb3dMYXRlbmN5UmVuZGVyaW5nRW5hYmxlZChmYWxzZSkKICAgICAs
IG1fdmlld3BvcnRFbmFibGVkKGZhbHNlKQotICAgICwgbV9hcHBseURldmljZVNjYWxlRmFjdG9y
SW5Db21wb3NpdG9yKGZhbHNlKQogICAgICwgbV9nZXN0dXJlVGFwSGlnaGxpZ2h0RW5hYmxlZCh0
cnVlKQogICAgICwgbV9hdXRvWm9vbUZvY3VzZWROb2RlVG9MZWdpYmxlU2NhbGUoZmFsc2UpCiAg
ICAgLCBtX2RlZmVycmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQoZmFsc2UpCkBAIC0xNDIsNyArMTQx
LDcgQEAgYm9vbCBXZWJTZXR0aW5nc0ltcGw6OmRldmljZVN1cHBvcnRzVG91Y2goKQogCiB2b2lk
IFdlYlNldHRpbmdzSW1wbDo6c2V0QXBwbHlEZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcihi
b29sIGFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IpCiB7Ci0gICAgbV9hcHBseURl
dmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yID0gYXBwbHlEZXZpY2VTY2FsZUZhY3RvckluQ29t
cG9zaXRvcjsKKyAgICBtX3NldHRpbmdzLT5zZXRBcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21w
b3NpdG9yKGFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IpOwogfQogCiB2b2lkIFdl
YlNldHRpbmdzSW1wbDo6c2V0QXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoYm9vbCBh
cHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcikKQEAgLTcxNCw2ICs3MTMsMTEgQEAgdm9p
ZCBXZWJTZXR0aW5nc0ltcGw6OnNldEdlc3R1cmVUYXBIaWdobGlnaHRFbmFibGVkKGJvb2wgZW5h
YmxlSGlnaGxpZ2h0KQogICAgIG1fZ2VzdHVyZVRhcEhpZ2hsaWdodEVuYWJsZWQgPSBlbmFibGVI
aWdobGlnaHQ7CiB9CiAKK2Jvb2wgV2ViU2V0dGluZ3NJbXBsOjphcHBseURldmljZVNjYWxlRmFj
dG9ySW5Db21wb3NpdG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zZXR0aW5ncy0+YXBwbHlE
ZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpOworfQorCiBib29sIFdlYlNldHRpbmdzSW1w
bDo6YXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSBjb25zdAogewogICAgIHJldHVy
biBtX3NldHRpbmdzLT5hcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmggYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAppbmRleCAxOGZiYzJhZDQ0
NDljMDJlNTQ0YTRkM2M4NmE5ZjMyNDNiNjM4M2E2Li41Mjc1ZWU2NTU3MTUzMDBhN2M4MzYyODI4
ODNmNWJhNGUyOTUzMGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJTZXR0aW5nc0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0
aW5nc0ltcGwuaApAQCAtMTcyLDcgKzE3Miw3IEBAIHB1YmxpYzoKICAgICBib29sIHNob3dQYWlu
dFJlY3RzKCkgY29uc3QgeyByZXR1cm4gbV9zaG93UGFpbnRSZWN0czsgfQogICAgIGJvb2wgcmVu
ZGVyVlN5bmNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJWU3luY0VuYWJsZWQ7IH0K
ICAgICBib29sIGxvd0xhdGVuY3lSZW5kZXJpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9s
b3dMYXRlbmN5UmVuZGVyaW5nRW5hYmxlZDsgfQotICAgIGJvb2wgYXBwbHlEZXZpY2VTY2FsZUZh
Y3RvckluQ29tcG9zaXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fYXBwbHlEZXZpY2VTY2FsZUZhY3Rv
ckluQ29tcG9zaXRvcjsgfQorICAgIGJvb2wgYXBwbHlEZXZpY2VTY2FsZUZhY3RvckluQ29tcG9z
aXRvcigpIGNvbnN0OwogICAgIGJvb2wgYXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3Io
KSBjb25zdDsKICAgICBib29sIGF1dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVTY2FsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fYXV0b1pvb21Gb2N1c2VkTm9kZVRvTGVnaWJsZVNjYWxlOyB9CiAgICAg
Ym9vbCBnZXN0dXJlVGFwSGlnaGxpZ2h0RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZ2VzdHVy
ZVRhcEhpZ2hsaWdodEVuYWJsZWQ7IH0KQEAgLTE5MCw3ICsxOTAsNiBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9yZW5kZXJWU3luY0VuYWJsZWQ7CiAgICAgYm9vbCBtX2xvd0xhdGVuY3lSZW5kZXJp
bmdFbmFibGVkOwogICAgIGJvb2wgbV92aWV3cG9ydEVuYWJsZWQ7Ci0gICAgYm9vbCBtX2FwcGx5
RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3I7CiAgICAgYm9vbCBtX2dlc3R1cmVUYXBIaWdo
bGlnaHRFbmFibGVkOwogICAgIGJvb2wgbV9hdXRvWm9vbUZvY3VzZWROb2RlVG9MZWdpYmxlU2Nh
bGU7CiAgICAgYm9vbCBtX2RlZmVycmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182129</attachid>
            <date>2013-01-10 06:47:41 -0800</date>
            <delta_ts>2013-01-10 12:09:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106460-20130110144443.patch</filename>
            <type>text/plain</type>
            <size>12535</size>
            <attacher name="John Mellor">johnme</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzBkOTk5YzYxN2YxYWIx
MDIyNTViNzI2MTdlYWVkMmVjMDQ0NWEwOS4uN2VkZDMzMTZhMjE3MDY0Y2QwY2VhOTg3YWQ0MWY1
M2NkMTYwZGQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDEzLTAxLTEwICBKb2hu
IE1lbGxvciAgPGpvaG5tZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRml4IHNjYWxlIG9mIHNj
cmVlbi53aWR0aCwgd2luZG93Lm91dGVyV2lkdGggYW5kIEBtZWRpYSBkZXZpY2Utd2lkdGggd2hl
biBwYWdlIHNjYWxlIG5vdCBhcHBsaWVkIGluIGNvbXBvc2l0b3IuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY0NjAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzY3JlZW4ud2lkdGgsIHdpbmRvdy5vdXRl
cldpZHRoIGFuZCBAbWVkaWEgZGV2aWNlLXdpZHRoIHNob3VsZCBiZSBpbgorICAgICAgICBsb2dp
Y2FsIFVJIHBpeGVscywgbm90IHBoeXNpY2FsIHNjcmVlbiBwaXhlbHMuCisKKyAgICAgICAgVGhp
cyBhbHJlYWR5IHdvcmtzIG9uIG1vc3QgcG9ydHMgKGluY2x1ZGluZyBpT1MpLiBIb3dldmVyIENo
cm9tZSBmb3IKKyAgICAgICAgQW5kcm9pZCBjdXJyZW50bHkgaW50ZXJuYWxseSBzaXplcyBpdHMg
d2luZG93cyBpbiBwaHlzaWNhbCBzY3JlZW4gcGl4ZWxzCisgICAgICAgIGluc3RlYWQgb2YgZGV2
aWNlLXNjYWxlLWFkanVzdGVkIHVuaXRzLCBhbmQgdGhpcyBsZWFrcyB0aHJvdWdoIGluIHRoZQor
ICAgICAgICBzaXplcyBwcm92aWRlZCB0byBXZWJDb3JlLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
c2NhbGVzIHRoZXNlIHNpemVzIGFwcHJvcHJpYXRlbHkgYmVmb3JlIHRoZXkgcmVhY2ggSmF2YVNj
cmlwdCwKKyAgICAgICAgb24gcGxhdGZvcm1zIHdoZXJlIHRoZSBhcHBseVBhZ2VTY2FsZUZhY3Rv
ckluQ29tcG9zaXRvciBzZXR0aW5nIGlzIGZhbHNlCisgICAgICAgIChpLmUuIGp1c3QgQ2hyb21l
IGZvciBBbmRyb2lkKS4gT25jZSBDaHJvbWUgZm9yIEFuZHJvaWQgc3dpdGNoZXMgb3ZlciB0bwor
ICAgICAgICB0aGUgc2FtZSBjb29yZGluYXRlIHNwYWNlLCB0aGUgYXBwbHlQYWdlU2NhbGVGYWN0
b3JJbkNvbXBvc2l0b3Igc2V0dGluZworICAgICAgICB3aWxsIGJlIHJlbW92ZWQsIGFsb25nIHdp
dGggYW55IGNvZGUgKHN1Y2ggYXMgdGhpcykgdGhhdCBkZXBlbmRzIG9uIGl0LgorCisgICAgICAg
IFRoZSBlZmZlY3Qgb2YgdGhpcyBwYXRjaCBvbiBDaHJvbWUgZm9yIEFuZHJvaWQgd2hlbiB2aWV3
aW5nIGEgcGFnZSB3aXRoCisgICAgICAgIGEgd2lkdGg9ZGV2aWNlLXdpZHRoIHZpZXdwb3J0IG9u
IGEgR2FsYXh5IE5leHVzICg3MjB4MTI4MCBAIGRQUiAyKSBpczoKKyAgICAgICAgICAgIEBtZWRp
YSBkZXZpY2Utd2lkdGggICAgICBjaGFuZ2VzIGZyb20gNzIwIHRvIDM2MAorICAgICAgICAgICAg
c2NyZWVuLndpZHRoICAgICAgICAgICAgIGNoYW5nZXMgZnJvbSA3MjAgdG8gMzYwCisgICAgICAg
ICAgICBzY3JlZW4uYXZhaWxXaWR0aCAgICAgICAgY2hhbmdlcyBmcm9tIDcyMCB0byAzNjAKKyAg
ICAgICAgICAgIHdpbmRvdy5vdXRlcldpZHRoICAgICAgICBjaGFuZ2VzIGZyb20gNzIwIHRvIDM2
MAorICAgICAgICAgICAgd2luZG93LmlubmVyV2lkdGggICAgICAgICAgICAgICAgICAgIHJlbWFp
bnMgMzYwIChhdCBvdmVydmlldyB6b29tKQorICAgICAgICAgICAgQG1lZGlhIHdpZHRoICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlbWFpbnMgMzYwCisgICAgICAgICAgICBkb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQuY2xpZW50V2lkdGggcmVtYWlucyAzNjAKKyAgICAgICAgICAgIGRvY3VtZW50
LmRvY3VtZW50RWxlbWVudC5vZmZzZXRXaWR0aCByZW1haW5zIDM2MAorICAgICAgICAgICAgZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFdpZHRoIHJlbWFpbnMgMzYwCisgICAgICAgICAg
ICBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoICAgICAgICAgICAgcmVtYWlucyAzNjAKKyAgICAg
ICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGggICAgICAgICAgICByZW1haW5zIDM2MAor
ICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5zY3JvbGxXaWR0aCAgICAgICAgICAgIHJlbWFpbnMg
MzYwCisgICAgICAgIEFuZCBzaW1pbGFybHkgZm9yIGhlaWdodHMgKHRob3VnaCB0aGV5IGFyZSBz
bGlnaHRseSBsZXNzIHRoYW4gNjQwLCBzaW5jZQorICAgICAgICB0b29sYmFycyBldGMuIGdldCBz
dWJ0cmFjdGVkIGZyb20gdGhlIGF2YWlsYWJsZSBoZWlnaHQpLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cywgYXMgSSBkb24ndCBrbm93IGhvdyB0byBzZXR1cCBEUlQgc28gaXQKKyAgICAgICAgICAg
IGEpIGhhcyBhIGRldmljZVNjYWxlRmFjdG9yIG90aGVyIHRoYW4gMSwgYW5kCisgICAgICAgICAg
ICBiKSBhcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvciBpcyBmYWxzZS4KKyAgICAgICAg
QWR2aWNlIHdlbGNvbWUgaWYgdGhpcyBpcyBhY3R1YWxseSBwb3NzaWJsZSEKKworICAgICAgICAq
IHBhZ2UvU2V0dGluZ3MuaW46CisgICAgICAgICAgICBBZGRlZCBhcHBseURldmljZVNjYWxlRmFj
dG9ySW5Db21wb3NpdG9yIHNldHRpbmcsIHdoaWNoIGFsbG93cworICAgICAgICAgICAgZGV0ZWN0
aW5nIHdoZXRoZXIgd2UgbmVlZCB0byBub3JtYWxpemUgdGhlIHNjYWxlLgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU2NyZWVuQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6c2NhbGVUb1VJUGl4ZWxzKToKKyAgICAgICAgICAgIFN0YXRpYyBmdW5jdGlvbiBmb3Ig
bm9ybWFsaXppbmcgc2NyZWVuIHJlY3Qgc2NhbGUuCisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5S
ZWN0KToKKyAgICAgICAgICAgIFVzZXMgc2NhbGVUb1VJUGl4ZWxzLgorICAgICAgICAoV2ViQ29y
ZTo6c2NyZWVuQXZhaWxhYmxlUmVjdCk6CisgICAgICAgICAgICBVc2VzIHNjYWxlVG9VSVBpeGVs
cy4KKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0QXV0b3NpemVyOjpwcm9jZXNzU3VidHJlZSk6CisgICAgICAgICAgICBVc2UgYXBw
bHlEZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvciBpbnN0ZWFkIG9mCisgICAgICAgICAgICBh
cHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvciwgdG8gc2NhbGUgdGhlIHdpbmRvdyByZWN0
IGNvcnJlY3RseQorICAgICAgICAgICAgb24gcGxhdGZvcm1zIG90aGVyIHRoYW4gQ2hyb21lIGZv
ciBBbmRyb2lkLgorCiAyMDEyLTEyLTI4ICBSYWZhZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgW1RlbXBsYXRlc106IEZpeCBhc3NlcnQgaW4gY29sZ3JvdXAg
cGFyc2UgaGFuZGxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggOTU0MzU1YWM1Zjdm
YzkxYmU3MGUzM2FiYzJhYTk0N2MyMTAxNjM3Yy4uMzYxNmUzZDAwZWYzZDA1ZDM4ODA2NjdiNTdj
NTNmNTU4ZmYzZTM4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBA
QAorMjAxMy0wMS0xMCAgSm9obiBNZWxsb3IgIDxqb2hubWVAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIEZpeCBzY2FsZSBvZiBzY3JlZW4ud2lkdGgsIHdpbmRvdy5vdXRlcldpZHRoIGFuZCBAbWVk
aWEgZGV2aWNlLXdpZHRoIHdoZW4gcGFnZSBzY2FsZSBub3QgYXBwbGllZCBpbiBjb21wb3NpdG9y
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2NDYw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgMS4gRXhw
b3NlcyB0aGUgZXhpc3RpbmcgYXBwbHlEZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvciBmcm9t
CisgICAgICAgIFdlYlNldHRpbmdzIG9uIFNldHRpbmdzIChhbmQgc3RvcmVzIHRoZSB2YWx1ZSB0
aGVyZSBpbnN0ZWFkKSwgc28gaXQgY2FuCisgICAgICAgIGJlIGFjY2Vzc2VkIGZyb20gV2ViQ29y
ZS4KKworICAgICAgICAyLiBDaGFuZ2VzIENocm9tZUNsaWVudEltcGw6OndpbmRvd1JlY3QgdG8g
cmV0dXJuIHZhbHVlcyBpbiBsb2dpY2FsIFVJCisgICAgICAgIHBpeGVscyBpbnN0ZWFkIG9mIHBo
eXNpY2FsIHNjcmVlbiBwaXhlbHMgKHNlZSBleHBsYW5hdGlvbiBpbgorICAgICAgICBTb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cpLgorCisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjp3aW5kb3dSZWN0KToKKyAgICAg
ICAgICAgIE5vcm1hbGl6ZXMgd2luZG93IHJlY3Qgc2NhbGUuCisgICAgICAgICogc3JjL1dlYlNl
dHRpbmdzSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6V2ViU2V0
dGluZ3NJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRBcHBseURl
dmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGlu
Z3NJbXBsOjphcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKToKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5oOgorICAgICAgICAoV2ViU2V0
dGluZ3NJbXBsKToKKwogMjAxMi0xMi0yOCAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSb2xsIENocm9taXVtIERFUFMgdG8gcjE3NDczOQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbiBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuaW4KaW5kZXggMTI2NjMwYzMzYWMxOTUxM2FjOWU5MDA4ZGEwYTY4MDZlZWJiOTcx
My4uMTM0ZmNkNGM4MzJjYjI0ZDQyNmRmZjcwMzBmZjkzYzhhNTVjZWM4YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmluCkBAIC0xNTcsNiArMTU3LDcgQEAgY29va2llRW5hYmxlZCBpbml0aWFsPXRy
dWUKIHdpbmRvd0ZvY3VzUmVzdHJpY3RlZCBpbml0aWFsPXRydWUKIAogZGlhZ25vc3RpY0xvZ2dp
bmdFbmFibGVkIGluaXRpYWw9ZmFsc2UKK2FwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0
b3IgaW5pdGlhbD10cnVlCiBhcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvciBpbml0aWFs
PWZhbHNlCiBwbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkIGluaXRpYWw9ZmFsc2UKIGZyYW1lRmxh
dHRlbmluZ0VuYWJsZWQgaW5pdGlhbD1mYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TY3JlZW5DaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVNjcmVlbkNocm9taXVtLmNwcAppbmRleCA0
ZmI2OTE1YTQ2OWE2ODc3ZGI2NWI2YmMxNjg5NTFjMDVhNmJmMGU3Li43NDA2NDg5MzE5NDI0NmZk
ZjQ1N2EyMmNiYjQwNDJhNzNjZjU4YjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVNjcmVlbkNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVNjcmVlbkNocm9taXVtLmNwcApAQCAtMzIs
OCArMzIsMTIgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogCiAjaW5jbHVkZSAiRmxv
YXRSZWN0LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNp
bmNsdWRlICJIb3N0V2luZG93LmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNjcm9s
bFZpZXcuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldpZGdldC5oIgogI2lu
Y2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJTY3JlZW5JbmZv
Lmg+CkBAIC03NywxMiArODEsMjIgQEAgYm9vbCBzY3JlZW5Jc01vbm9jaHJvbWUoV2lkZ2V0KiB3
aWRnZXQpCiAgICAgcmV0dXJuIGNsaWVudC0+c2NyZWVuSW5mbygpLmlzTW9ub2Nocm9tZTsKIH0K
IAorc3RhdGljIEZsb2F0UmVjdCBzY2FsZVRvVUlQaXhlbHMoRmxvYXRSZWN0IHJlY3QsIFdpZGdl
dCogd2lkZ2V0KQoreworICAgIGlmICh3aWRnZXQtPmlzRnJhbWVWaWV3KCkpIHsKKyAgICAgICAg
UGFnZSogcGFnZSA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHdpZGdldCktPmZyYW1lKCktPnBh
Z2UoKTsKKyAgICAgICAgaWYgKHBhZ2UgJiYgIXBhZ2UtPnNldHRpbmdzKCktPmFwcGx5RGV2aWNl
U2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSkKKyAgICAgICAgICAgIHJlY3Quc2NhbGUoMSAvIHBh
Z2UtPmRldmljZVNjYWxlRmFjdG9yKCkpOworICAgIH0KKyAgICByZXR1cm4gcmVjdDsKK30KKwog
RmxvYXRSZWN0IHNjcmVlblJlY3QoV2lkZ2V0KiB3aWRnZXQpCiB7CiAgICAgUGxhdGZvcm1QYWdl
Q2xpZW50IGNsaWVudCA9IHRvUGxhdGZvcm1QYWdlQ2xpZW50KHdpZGdldCk7CiAgICAgaWYgKCFj
bGllbnQpCiAgICAgICAgIHJldHVybiBGbG9hdFJlY3QoKTsKLSAgICByZXR1cm4gSW50UmVjdChj
bGllbnQtPnNjcmVlbkluZm8oKS5yZWN0KTsKKyAgICByZXR1cm4gc2NhbGVUb1VJUGl4ZWxzKElu
dFJlY3QoY2xpZW50LT5zY3JlZW5JbmZvKCkucmVjdCksIHdpZGdldCk7CiB9CiAKIEZsb2F0UmVj
dCBzY3JlZW5BdmFpbGFibGVSZWN0KFdpZGdldCogd2lkZ2V0KQpAQCAtOTAsNyArMTA0LDcgQEAg
RmxvYXRSZWN0IHNjcmVlbkF2YWlsYWJsZVJlY3QoV2lkZ2V0KiB3aWRnZXQpCiAgICAgUGxhdGZv
cm1QYWdlQ2xpZW50IGNsaWVudCA9IHRvUGxhdGZvcm1QYWdlQ2xpZW50KHdpZGdldCk7CiAgICAg
aWYgKCFjbGllbnQpCiAgICAgICAgIHJldHVybiBGbG9hdFJlY3QoKTsKLSAgICByZXR1cm4gSW50
UmVjdChjbGllbnQtPnNjcmVlbkluZm8oKS5hdmFpbGFibGVSZWN0KTsKKyAgICByZXR1cm4gc2Nh
bGVUb1VJUGl4ZWxzKEludFJlY3QoY2xpZW50LT5zY3JlZW5JbmZvKCkuYXZhaWxhYmxlUmVjdCks
IHdpZGdldCk7CiB9CiAKIHZvaWQgc2NyZWVuQ29sb3JQcm9maWxlKENvbG9yUHJvZmlsZSYgdG9Q
cm9maWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwCmluZGV4
IDk3ZTJkMTg0ZDgyYjhlZjAyNmExZDhmMDY4NmM4NmQ5NjcxZDQ0ZmQuLjE5OWI5NzM0NzNhZTlm
NDU0NzUxMjk0NDMxYjAwYWNjMzdkN2Q4NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
VGV4dEF1dG9zaXplci5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgYm9vbCBUZXh0QXV0b3NpemVyOjpw
cm9jZXNzU3VidHJlZShSZW5kZXJPYmplY3QqIGxheW91dFJvb3QpCiAgICAgaWYgKHdpbmRvd0lu
Zm8ud2luZG93U2l6ZS5pc0VtcHR5KCkpIHsKICAgICAgICAgYm9vbCBpbmNsdWRlU2Nyb2xsYmFy
cyA9ICFJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnNob3VsZEFwcGx5U2NyZWVuV2lkdGhPdmVy
cmlkZShtYWluRnJhbWUpOwogICAgICAgICB3aW5kb3dJbmZvLndpbmRvd1NpemUgPSBtYWluRnJh
bWUtPnZpZXcoKS0+dmlzaWJsZUNvbnRlbnRSZWN0KGluY2x1ZGVTY3JvbGxiYXJzKS5zaXplKCk7
Ci0gICAgICAgIGlmICghbV9kb2N1bWVudC0+c2V0dGluZ3MoKS0+YXBwbHlQYWdlU2NhbGVGYWN0
b3JJbkNvbXBvc2l0b3IoKSkKKyAgICAgICAgaWYgKCFtX2RvY3VtZW50LT5zZXR0aW5ncygpLT5h
cHBseURldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKCkpCiAgICAgICAgICAgICB3aW5kb3dJ
bmZvLndpbmRvd1NpemUuc2NhbGUoMSAvIG1fZG9jdW1lbnQtPnBhZ2UoKS0+ZGV2aWNlU2NhbGVG
YWN0b3IoKSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9DaHJvbWVDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
ZUNsaWVudEltcGwuY3BwCmluZGV4IDIxZGJmNDAzOWFlYjU2ZTk3ZDI3NGMyM2FiNDQ3ZTFmOTE2
ZTViMjIuLmI0MjRiYjA1ZDIxY2MzNjA5ZWI2MjIzYmYwZGNhNWJjMzRjZDRiNDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC0xNzAs
MTcgKzE3MCwxNyBAQCB2b2lkIENocm9tZUNsaWVudEltcGw6OnNldFdpbmRvd1JlY3QoY29uc3Qg
RmxvYXRSZWN0JiByKQogCiBGbG9hdFJlY3QgQ2hyb21lQ2xpZW50SW1wbDo6d2luZG93UmVjdCgp
CiB7Ci0gICAgV2ViUmVjdCByZWN0OwotICAgIGlmIChtX3dlYlZpZXctPmNsaWVudCgpKQotICAg
ICAgICByZWN0ID0gbV93ZWJWaWV3LT5jbGllbnQoKS0+cm9vdFdpbmRvd1JlY3QoKTsKLSAgICBl
bHNlIHsKLSAgICAgICAgLy8gVGhlc2UgbnVtYmVycyB3aWxsIGJlIGZhaXJseSB3cm9uZy4gVGhl
IHdpbmRvdydzIHgveSBjb29yZGluYXRlcyB3aWxsCi0gICAgICAgIC8vIGJlIHRoZSB0b3AgbGVm
dCBjb3JuZXIgb2YgdGhlIHNjcmVlbiBhbmQgdGhlIHNpemUgd2lsbCBiZSB0aGUgY29udGVudAot
ICAgICAgICAvLyBzaXplIGluc3RlYWQgb2YgdGhlIHdpbmRvdyBzaXplLgotICAgICAgICByZWN0
LndpZHRoID0gbV93ZWJWaWV3LT5zaXplKCkud2lkdGg7Ci0gICAgICAgIHJlY3QuaGVpZ2h0ID0g
bV93ZWJWaWV3LT5zaXplKCkuaGVpZ2h0OworICAgIGlmIChtX3dlYlZpZXctPmNsaWVudCgpKSB7
CisgICAgICAgIEZsb2F0UmVjdCByZWN0ID0gRmxvYXRSZWN0KG1fd2ViVmlldy0+Y2xpZW50KCkt
PnJvb3RXaW5kb3dSZWN0KCkpOworICAgICAgICBpZiAoIW1fd2ViVmlldy0+cGFnZSgpLT5zZXR0
aW5ncygpLT5hcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKCkpCisgICAgICAgICAg
ICByZWN0LnNjYWxlKDEgLyBtX3dlYlZpZXctPmNsaWVudCgpLT5zY3JlZW5JbmZvKCkuZGV2aWNl
U2NhbGVGYWN0b3IpOworICAgICAgICByZXR1cm4gcmVjdDsKICAgICB9Ci0gICAgcmV0dXJuIEZs
b2F0UmVjdChyZWN0KTsKKworICAgIC8vIFRoZXNlIG51bWJlcnMgd2lsbCBiZSBmYWlybHkgd3Jv
bmcuIFRoZSB3aW5kb3cncyB4L3kgY29vcmRpbmF0ZXMgd2lsbAorICAgIC8vIGJlIHRoZSB0b3Ag
bGVmdCBjb3JuZXIgb2YgdGhlIHNjcmVlbiBhbmQgdGhlIHNpemUgd2lsbCBiZSB0aGUgY29udGVu
dAorICAgIC8vIHNpemUgaW5zdGVhZCBvZiB0aGUgd2luZG93IHNpemUuCisgICAgcmV0dXJuIEZs
b2F0UmVjdCgwLCAwLCBtX3dlYlZpZXctPnNpemUoKS53aWR0aCwgbV93ZWJWaWV3LT5zaXplKCku
aGVpZ2h0KTsKIH0KIAogRmxvYXRSZWN0IENocm9tZUNsaWVudEltcGw6OnBhZ2VSZWN0KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCmluZGV4IGY2
MjE3MThhYzAzNGM4NmFjMjJmN2M2NWNjZmQzMGIzY2U3N2UyNjUuLmM5NTc3ZTg3OTg4YzNkNDRi
OTY4ZDQ3MDkxYzUyMzMwMjljY2I1YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViU2V0dGluZ3NJbXBsLmNwcApAQCAtNTQsNyArNTQsNiBAQCBXZWJTZXR0aW5nc0ltcGw6
OldlYlNldHRpbmdzSW1wbChTZXR0aW5ncyogc2V0dGluZ3MpCiAgICAgLCBtX3JlbmRlclZTeW5j
RW5hYmxlZCh0cnVlKQogICAgICwgbV9sb3dMYXRlbmN5UmVuZGVyaW5nRW5hYmxlZChmYWxzZSkK
ICAgICAsIG1fdmlld3BvcnRFbmFibGVkKGZhbHNlKQotICAgICwgbV9hcHBseURldmljZVNjYWxl
RmFjdG9ySW5Db21wb3NpdG9yKGZhbHNlKQogICAgICwgbV9nZXN0dXJlVGFwSGlnaGxpZ2h0RW5h
YmxlZCh0cnVlKQogICAgICwgbV9hdXRvWm9vbUZvY3VzZWROb2RlVG9MZWdpYmxlU2NhbGUoZmFs
c2UpCiAgICAgLCBtX2RlZmVycmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQoZmFsc2UpCkBAIC0xNDIs
NyArMTQxLDcgQEAgYm9vbCBXZWJTZXR0aW5nc0ltcGw6OmRldmljZVN1cHBvcnRzVG91Y2goKQog
CiB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0QXBwbHlEZXZpY2VTY2FsZUZhY3RvckluQ29tcG9z
aXRvcihib29sIGFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IpCiB7Ci0gICAgbV9h
cHBseURldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yID0gYXBwbHlEZXZpY2VTY2FsZUZhY3Rv
ckluQ29tcG9zaXRvcjsKKyAgICBtX3NldHRpbmdzLT5zZXRBcHBseURldmljZVNjYWxlRmFjdG9y
SW5Db21wb3NpdG9yKGFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IpOwogfQogCiB2
b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0QXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3Io
Ym9vbCBhcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcikKQEAgLTcxNCw2ICs3MTMsMTEg
QEAgdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldEdlc3R1cmVUYXBIaWdobGlnaHRFbmFibGVkKGJv
b2wgZW5hYmxlSGlnaGxpZ2h0KQogICAgIG1fZ2VzdHVyZVRhcEhpZ2hsaWdodEVuYWJsZWQgPSBl
bmFibGVIaWdobGlnaHQ7CiB9CiAKK2Jvb2wgV2ViU2V0dGluZ3NJbXBsOjphcHBseURldmljZVNj
YWxlRmFjdG9ySW5Db21wb3NpdG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zZXR0aW5ncy0+
YXBwbHlEZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpOworfQorCiBib29sIFdlYlNldHRp
bmdzSW1wbDo6YXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSBjb25zdAogewogICAg
IHJldHVybiBtX3NldHRpbmdzLT5hcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAppbmRleCAxOGZi
YzJhZDQ0NDljMDJlNTQ0YTRkM2M4NmE5ZjMyNDNiNjM4M2E2Li41Mjc1ZWU2NTU3MTUzMDBhN2M4
MzYyODI4ODNmNWJhNGUyOTUzMGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJTZXR0aW5nc0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJTZXR0aW5nc0ltcGwuaApAQCAtMTcyLDcgKzE3Miw3IEBAIHB1YmxpYzoKICAgICBib29sIHNo
b3dQYWludFJlY3RzKCkgY29uc3QgeyByZXR1cm4gbV9zaG93UGFpbnRSZWN0czsgfQogICAgIGJv
b2wgcmVuZGVyVlN5bmNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJWU3luY0VuYWJs
ZWQ7IH0KICAgICBib29sIGxvd0xhdGVuY3lSZW5kZXJpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1
cm4gbV9sb3dMYXRlbmN5UmVuZGVyaW5nRW5hYmxlZDsgfQotICAgIGJvb2wgYXBwbHlEZXZpY2VT
Y2FsZUZhY3RvckluQ29tcG9zaXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fYXBwbHlEZXZpY2VTY2Fs
ZUZhY3RvckluQ29tcG9zaXRvcjsgfQorICAgIGJvb2wgYXBwbHlEZXZpY2VTY2FsZUZhY3Rvcklu
Q29tcG9zaXRvcigpIGNvbnN0OwogICAgIGJvb2wgYXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBv
c2l0b3IoKSBjb25zdDsKICAgICBib29sIGF1dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVTY2Fs
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXV0b1pvb21Gb2N1c2VkTm9kZVRvTGVnaWJsZVNjYWxlOyB9
CiAgICAgYm9vbCBnZXN0dXJlVGFwSGlnaGxpZ2h0RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
Z2VzdHVyZVRhcEhpZ2hsaWdodEVuYWJsZWQ7IH0KQEAgLTE5MCw3ICsxOTAsNiBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9yZW5kZXJWU3luY0VuYWJsZWQ7CiAgICAgYm9vbCBtX2xvd0xhdGVuY3lS
ZW5kZXJpbmdFbmFibGVkOwogICAgIGJvb2wgbV92aWV3cG9ydEVuYWJsZWQ7Ci0gICAgYm9vbCBt
X2FwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3I7CiAgICAgYm9vbCBtX2dlc3R1cmVU
YXBIaWdobGlnaHRFbmFibGVkOwogICAgIGJvb2wgbV9hdXRvWm9vbUZvY3VzZWROb2RlVG9MZWdp
YmxlU2NhbGU7CiAgICAgYm9vbCBtX2RlZmVycmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182190</attachid>
            <date>2013-01-10 12:09:08 -0800</date>
            <delta_ts>2013-01-10 13:11:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106460-20130110200611.patch</filename>
            <type>text/plain</type>
            <size>12862</size>
            <attacher name="John Mellor">johnme</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5MjI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWI5ZjUyZDhiYWIxOThk
YzZkOTYwMjMxYWQxZGVhYmI5MDA5MWQ4OC4uNWVlODUwMzY5NGJkODA2MzI0NTdiMzlhNTM1YTM5
ZDgxMWNlMWY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEzLTAxLTEwICBKb2hu
IE1lbGxvciAgPGpvaG5tZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRml4IHNjYWxlIG9mIHNj
cmVlbi53aWR0aCwgd2luZG93Lm91dGVyV2lkdGggYW5kIEBtZWRpYSBkZXZpY2Utd2lkdGggd2hl
biBwYWdlIHNjYWxlIG5vdCBhcHBsaWVkIGluIGNvbXBvc2l0b3IuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY0NjAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzY3JlZW4ud2lkdGgsIHdpbmRvdy5vdXRl
cldpZHRoIGFuZCBAbWVkaWEgZGV2aWNlLXdpZHRoIHNob3VsZCBiZSBpbgorICAgICAgICBkZW5z
aXR5IGluZGVwZW5kZW50IChVSSkgcGl4ZWxzLCBub3QgcGh5c2ljYWwgc2NyZWVuIHBpeGVscy4K
KworICAgICAgICBUaGlzIGFscmVhZHkgd29ya3Mgb24gbW9zdCBwb3J0cyAoaW5jbHVkaW5nIGlP
UykuIEhvd2V2ZXIgQ2hyb21lIGZvcgorICAgICAgICBBbmRyb2lkIGN1cnJlbnRseSBpbnRlcm5h
bGx5IHNpemVzIGl0cyB3aW5kb3dzIGluIHBoeXNpY2FsIHNjcmVlbiBwaXhlbHMKKyAgICAgICAg
aW5zdGVhZCBvZiBkZW5zaXR5IGluZGVwZW5kZW50IHBpeGVscywgYW5kIHRoaXMgbGVha3MgdGhy
b3VnaCBpbiB0aGUKKyAgICAgICAgc2l6ZXMgcHJvdmlkZWQgdG8gV2ViQ29yZS4KKworICAgICAg
ICBUaGlzIHBhdGNoIHNjYWxlcyB0aGVzZSBzaXplcyBhcHByb3ByaWF0ZWx5IGJlZm9yZSB0aGV5
IHJlYWNoIEphdmFTY3JpcHQsCisgICAgICAgIG9uIHBsYXRmb3JtcyB3aGVyZSB0aGUgYXBwbHlQ
YWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3Igc2V0dGluZyBpcyBmYWxzZQorICAgICAgICAoaS5l
LiBqdXN0IENocm9tZSBmb3IgQW5kcm9pZCkuIE9uY2UgQ2hyb21lIGZvciBBbmRyb2lkIHN3aXRj
aGVzIG92ZXIgdG8KKyAgICAgICAgdGhlIHNhbWUgY29vcmRpbmF0ZSBzcGFjZSwgdGhlIGFwcGx5
UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yIHNldHRpbmcKKyAgICAgICAgd2lsbCBiZSByZW1v
dmVkLCBhbG9uZyB3aXRoIGFueSBjb2RlIChzdWNoIGFzIHRoaXMpIHRoYXQgZGVwZW5kcyBvbiBp
dC4KKworICAgICAgICBUaGUgZWZmZWN0IG9mIHRoaXMgcGF0Y2ggb24gQ2hyb21lIGZvciBBbmRy
b2lkIHdoZW4gdmlld2luZyBhIHBhZ2Ugd2l0aAorICAgICAgICBhIHdpZHRoPWRldmljZS13aWR0
aCB2aWV3cG9ydCBvbiBhIEdhbGF4eSBOZXh1cyAoNzIweDEyODAgQCBkUFIgMikgaXM6CisgICAg
ICAgICAgICBAbWVkaWEgZGV2aWNlLXdpZHRoICAgICAgY2hhbmdlcyBmcm9tIDcyMCB0byAzNjAK
KyAgICAgICAgICAgIHNjcmVlbi53aWR0aCAgICAgICAgICAgICBjaGFuZ2VzIGZyb20gNzIwIHRv
IDM2MAorICAgICAgICAgICAgc2NyZWVuLmF2YWlsV2lkdGggICAgICAgIGNoYW5nZXMgZnJvbSA3
MjAgdG8gMzYwCisgICAgICAgICAgICB3aW5kb3cub3V0ZXJXaWR0aCAgICAgICAgY2hhbmdlcyBm
cm9tIDcyMCB0byAzNjAKKyAgICAgICAgICAgIHdpbmRvdy5pbm5lcldpZHRoICAgICAgICAgICAg
ICAgICAgICByZW1haW5zIDM2MCAoYXQgb3ZlcnZpZXcgem9vbSkKKyAgICAgICAgICAgIEBtZWRp
YSB3aWR0aCAgICAgICAgICAgICAgICAgICAgICAgICByZW1haW5zIDM2MAorICAgICAgICAgICAg
ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIHJlbWFpbnMgMzYwCisgICAgICAg
ICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub2Zmc2V0V2lkdGggcmVtYWlucyAzNjAKKyAg
ICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxXaWR0aCByZW1haW5zIDM2
MAorICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCAgICAgICAgICAgIHJlbWFp
bnMgMzYwCisgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoICAgICAgICAgICAg
cmVtYWlucyAzNjAKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc2Nyb2xsV2lkdGggICAgICAg
ICAgICByZW1haW5zIDM2MAorICAgICAgICBBbmQgc2ltaWxhcmx5IGZvciBoZWlnaHRzICh0aG91
Z2ggdGhleSBhcmUgc2xpZ2h0bHkgbGVzcyB0aGFuIDY0MCwgc2luY2UKKyAgICAgICAgdG9vbGJh
cnMgZXRjLiBnZXQgc3VidHJhY3RlZCBmcm9tIHRoZSBhdmFpbGFibGUgaGVpZ2h0KS4KKworICAg
ICAgICBObyBuZXcgdGVzdHMsIGFzIGFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3Ig
YXBwZWFycyB0byBhbHdheXMgYmUKKyAgICAgICAgdHJ1ZSBpbiBEdW1wUmVuZGVyVHJlZSwgc28g
dGhpcyBzaXR1YXRpb24gY2Fubm90IG9jY3VyIHRoZXJlLgorCisgICAgICAgICogcGFnZS9TZXR0
aW5ncy5pbjoKKyAgICAgICAgICAgIEFkZGVkIGFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBv
c2l0b3Igc2V0dGluZywgd2hpY2ggYWxsb3dzCisgICAgICAgICAgICBkZXRlY3Rpbmcgd2hldGhl
ciB3ZSBuZWVkIHRvIG5vcm1hbGl6ZSB0aGUgc2NhbGUuCisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0vUGxhdGZvcm1TY3JlZW5DaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Vz
ZXJTcGFjZSk6CisgICAgICAgICAgICBTdGF0aWMgZnVuY3Rpb24gZm9yIG5vcm1hbGl6aW5nIHNj
cmVlbiByZWN0IHNjYWxlLgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuUmVjdCk6CisgICAgICAg
ICAgICBVc2VzIHRvVXNlclNwYWNlLgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuQXZhaWxhYmxl
UmVjdCk6CisgICAgICAgICAgICBVc2VzIHRvVXNlclNwYWNlLgorICAgICAgICAqIHJlbmRlcmlu
Zy9UZXh0QXV0b3NpemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OnBy
b2Nlc3NTdWJ0cmVlKToKKyAgICAgICAgICAgIFVzZSBhcHBseURldmljZVNjYWxlRmFjdG9ySW5D
b21wb3NpdG9yIGluc3RlYWQgb2YKKyAgICAgICAgICAgIGFwcGx5UGFnZVNjYWxlRmFjdG9ySW5D
b21wb3NpdG9yLCB0byBzY2FsZSB0aGUgd2luZG93IHJlY3QgY29ycmVjdGx5CisgICAgICAgICAg
ICBvbiBwbGF0Zm9ybXMgb3RoZXIgdGhhbiBDaHJvbWUgZm9yIEFuZHJvaWQuCisKIDIwMTMtMDEt
MDkgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJFR1JFU1NJ
T04ocjExMTQzOSk6IEZvY3VzIHJpbmcgaXMgcmVuZGVyZWQgaW5jb3JyZWN0bHkgaW4gZmFzdC9p
bmxpbmUvY29udGludWF0aW9uLW91dGxpbmVzLXdpdGgtbGF5ZXJzLmh0bWwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggNDk5NWIxOTc1MTFjNzJjOWM1MjAzZjBhMWIxY2M2ZWU4MTU2ZjFj
ZC4uYzg2ZjZkMTk2MmNlZGZkYzUzYTUxMzllZDgxOWQ5NWEwZjE4NDg5MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMy0wMS0xMCAgSm9obiBNZWxsb3Ig
IDxqb2hubWVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEZpeCBzY2FsZSBvZiBzY3JlZW4ud2lk
dGgsIHdpbmRvdy5vdXRlcldpZHRoIGFuZCBAbWVkaWEgZGV2aWNlLXdpZHRoIHdoZW4gcGFnZSBz
Y2FsZSBub3QgYXBwbGllZCBpbiBjb21wb3NpdG9yLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2NDYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgMS4gRXhwb3NlcyB0aGUgZXhpc3RpbmcgYXBwbHlEZXZp
Y2VTY2FsZUZhY3RvckluQ29tcG9zaXRvciBmcm9tCisgICAgICAgIFdlYlNldHRpbmdzIG9uIFNl
dHRpbmdzIChhbmQgc3RvcmVzIHRoZSB2YWx1ZSB0aGVyZSBpbnN0ZWFkKSwgc28gaXQgY2FuCisg
ICAgICAgIGJlIGFjY2Vzc2VkIGZyb20gV2ViQ29yZS4KKworICAgICAgICAyLiBDaGFuZ2VzIENo
cm9tZUNsaWVudEltcGw6OndpbmRvd1JlY3QgdG8gcmV0dXJuIHZhbHVlcyBpbiBkZW5zaXR5Cisg
ICAgICAgIGluZGVwZW5kZW50IChVSSkgcGl4ZWxzIHBpeGVscyBpbnN0ZWFkIG9mIHBoeXNpY2Fs
IHNjcmVlbiBwaXhlbHMgKHNlZQorICAgICAgICBleHBsYW5hdGlvbiBpbiBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cpLgorCisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjp3aW5kb3dSZWN0KToKKyAgICAgICAgICAg
IE5vcm1hbGl6ZXMgd2luZG93IHJlY3Qgc2NhbGUuCisgICAgICAgICogc3JjL1dlYlNldHRpbmdz
SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6V2ViU2V0dGluZ3NJ
bXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRBcHBseURldmljZVNj
YWxlRmFjdG9ySW5Db21wb3NpdG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBs
OjphcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKToKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5oOgorICAgICAgICAoV2ViU2V0dGluZ3NJ
bXBsKToKKwogMjAxMy0wMS0wOSAgU3RlcGhlbiBDaGVubmV5ICA8c2NoZW5uZXlAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIEFkanVzdCBTa2lhIGJ1aWxkIGZsYWdzIHRvIFdlYktpdCBza2lhIGd5
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbiBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KaW5kZXggNTNiOTgyYjdlNjM4NGJiNTMzZDgyNWUyNzg3
ODIzNzAyNmI4MzYxMC4uNmIwZjM4ZDU5MWFlNmUyYTU2NzFlMjNiYThmZGE2YWVhZmEzM2VkNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCkBAIC0xNjAsNiArMTYwLDcgQEAgY29va2llRW5hYmxl
ZCBpbml0aWFsPXRydWUKIHdpbmRvd0ZvY3VzUmVzdHJpY3RlZCBpbml0aWFsPXRydWUKIAogZGlh
Z25vc3RpY0xvZ2dpbmdFbmFibGVkIGluaXRpYWw9ZmFsc2UKK2FwcGx5RGV2aWNlU2NhbGVGYWN0
b3JJbkNvbXBvc2l0b3IgaW5pdGlhbD10cnVlCiBhcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9z
aXRvciBpbml0aWFsPWZhbHNlCiBwbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkIGluaXRpYWw9ZmFs
c2UKIGZyYW1lRmxhdHRlbmluZ0VuYWJsZWQgaW5pdGlhbD1mYWxzZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TY3JlZW5DaHJvbWl1bS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVNjcmVlbkNocm9taXVt
LmNwcAppbmRleCA0ZmI2OTE1YTQ2OWE2ODc3ZGI2NWI2YmMxNjg5NTFjMDVhNmJmMGU3Li5hMjk4
ZWM5M2U1OWU5ZWViZTNjODMzZjBiMzIzNTMxZmVkNzQ2NDI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVNjcmVlbkNocm9taXVtLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVNjcmVlbkNocm9taXVt
LmNwcApAQCAtMzIsOCArMzIsMTIgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogCiAj
aW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFt
ZVZpZXcuaCIKICNpbmNsdWRlICJIb3N0V2luZG93LmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2lu
Y2x1ZGUgIlNjcm9sbFZpZXcuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldp
ZGdldC5oIgogI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgogI2luY2x1ZGUgPHB1YmxpYy9X
ZWJTY3JlZW5JbmZvLmg+CkBAIC03NywxMiArODEsMjQgQEAgYm9vbCBzY3JlZW5Jc01vbm9jaHJv
bWUoV2lkZ2V0KiB3aWRnZXQpCiAgICAgcmV0dXJuIGNsaWVudC0+c2NyZWVuSW5mbygpLmlzTW9u
b2Nocm9tZTsKIH0KIAorLy8gT24gQ2hyb21lIGZvciBBbmRyb2lkLCB0aGUgc2NyZWVuSW5mbyBy
ZWN0cyBhcmUgaW4gcGh5c2ljYWwgc2NyZWVuIHBpeGVscworLy8gaW5zdGVhZCBvZiBkZW5zaXR5
IGluZGVwZW5kZW50IChVSSkgcGl4ZWxzLCBhbmQgbXVzdCBiZSBzY2FsZWQgZG93bi4KK3N0YXRp
YyBGbG9hdFJlY3QgdG9Vc2VyU3BhY2UoRmxvYXRSZWN0IHJlY3QsIFdpZGdldCogd2lkZ2V0KQor
eworICAgIGlmICh3aWRnZXQtPmlzRnJhbWVWaWV3KCkpIHsKKyAgICAgICAgUGFnZSogcGFnZSA9
IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHdpZGdldCktPmZyYW1lKCktPnBhZ2UoKTsKKyAgICAg
ICAgaWYgKHBhZ2UgJiYgIXBhZ2UtPnNldHRpbmdzKCktPmFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJ
bkNvbXBvc2l0b3IoKSkKKyAgICAgICAgICAgIHJlY3Quc2NhbGUoMSAvIHBhZ2UtPmRldmljZVNj
YWxlRmFjdG9yKCkpOworICAgIH0KKyAgICByZXR1cm4gcmVjdDsKK30KKwogRmxvYXRSZWN0IHNj
cmVlblJlY3QoV2lkZ2V0KiB3aWRnZXQpCiB7CiAgICAgUGxhdGZvcm1QYWdlQ2xpZW50IGNsaWVu
dCA9IHRvUGxhdGZvcm1QYWdlQ2xpZW50KHdpZGdldCk7CiAgICAgaWYgKCFjbGllbnQpCiAgICAg
ICAgIHJldHVybiBGbG9hdFJlY3QoKTsKLSAgICByZXR1cm4gSW50UmVjdChjbGllbnQtPnNjcmVl
bkluZm8oKS5yZWN0KTsKKyAgICByZXR1cm4gdG9Vc2VyU3BhY2UoSW50UmVjdChjbGllbnQtPnNj
cmVlbkluZm8oKS5yZWN0KSwgd2lkZ2V0KTsKIH0KIAogRmxvYXRSZWN0IHNjcmVlbkF2YWlsYWJs
ZVJlY3QoV2lkZ2V0KiB3aWRnZXQpCkBAIC05MCw3ICsxMDYsNyBAQCBGbG9hdFJlY3Qgc2NyZWVu
QXZhaWxhYmxlUmVjdChXaWRnZXQqIHdpZGdldCkKICAgICBQbGF0Zm9ybVBhZ2VDbGllbnQgY2xp
ZW50ID0gdG9QbGF0Zm9ybVBhZ2VDbGllbnQod2lkZ2V0KTsKICAgICBpZiAoIWNsaWVudCkKICAg
ICAgICAgcmV0dXJuIEZsb2F0UmVjdCgpOwotICAgIHJldHVybiBJbnRSZWN0KGNsaWVudC0+c2Ny
ZWVuSW5mbygpLmF2YWlsYWJsZVJlY3QpOworICAgIHJldHVybiB0b1VzZXJTcGFjZShJbnRSZWN0
KGNsaWVudC0+c2NyZWVuSW5mbygpLmF2YWlsYWJsZVJlY3QpLCB3aWRnZXQpOwogfQogCiB2b2lk
IHNjcmVlbkNvbG9yUHJvZmlsZShDb2xvclByb2ZpbGUmIHRvUHJvZmlsZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcAppbmRleCA5N2UyZDE4NGQ4MmI4ZWYwMjZh
MWQ4ZjA2ODZjODZkOTY3MWQ0NGZkLi4xOTliOTczNDczYWU5ZjQ1NDc1MTI5NDQzMWIwMGFjYzM3
ZDdkODYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXpl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwCkBA
IC04NSw3ICs4NSw3IEBAIGJvb2wgVGV4dEF1dG9zaXplcjo6cHJvY2Vzc1N1YnRyZWUoUmVuZGVy
T2JqZWN0KiBsYXlvdXRSb290KQogICAgIGlmICh3aW5kb3dJbmZvLndpbmRvd1NpemUuaXNFbXB0
eSgpKSB7CiAgICAgICAgIGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMgPSAhSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpzaG91bGRBcHBseVNjcmVlbldpZHRoT3ZlcnJpZGUobWFpbkZyYW1lKTsKICAg
ICAgICAgd2luZG93SW5mby53aW5kb3dTaXplID0gbWFpbkZyYW1lLT52aWV3KCktPnZpc2libGVD
b250ZW50UmVjdChpbmNsdWRlU2Nyb2xsYmFycykuc2l6ZSgpOwotICAgICAgICBpZiAoIW1fZG9j
dW1lbnQtPnNldHRpbmdzKCktPmFwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKCkpCisg
ICAgICAgIGlmICghbV9kb2N1bWVudC0+c2V0dGluZ3MoKS0+YXBwbHlEZXZpY2VTY2FsZUZhY3Rv
ckluQ29tcG9zaXRvcigpKQogICAgICAgICAgICAgd2luZG93SW5mby53aW5kb3dTaXplLnNjYWxl
KDEgLyBtX2RvY3VtZW50LT5wYWdlKCktPmRldmljZVNjYWxlRmFjdG9yKCkpOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRl
eCA4MzA3NGY1Y2RmZmJhZmM0NDQxYmM5ZjBkMWNjYTBhZDY4OWVkNjE0Li5mNGM4ZjUyMDg1NmFh
OTNjYmI3MTNkMjUxMjBjYzFlYTVkZjU5NTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtMTcwLDE3ICsxNzAsMTkgQEAgdm9pZCBD
aHJvbWVDbGllbnRJbXBsOjpzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcikKIAogRmxv
YXRSZWN0IENocm9tZUNsaWVudEltcGw6OndpbmRvd1JlY3QoKQogewotICAgIFdlYlJlY3QgcmVj
dDsKLSAgICBpZiAobV93ZWJWaWV3LT5jbGllbnQoKSkKLSAgICAgICAgcmVjdCA9IG1fd2ViVmll
dy0+Y2xpZW50KCktPnJvb3RXaW5kb3dSZWN0KCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIC8vIFRo
ZXNlIG51bWJlcnMgd2lsbCBiZSBmYWlybHkgd3JvbmcuIFRoZSB3aW5kb3cncyB4L3kgY29vcmRp
bmF0ZXMgd2lsbAotICAgICAgICAvLyBiZSB0aGUgdG9wIGxlZnQgY29ybmVyIG9mIHRoZSBzY3Jl
ZW4gYW5kIHRoZSBzaXplIHdpbGwgYmUgdGhlIGNvbnRlbnQKLSAgICAgICAgLy8gc2l6ZSBpbnN0
ZWFkIG9mIHRoZSB3aW5kb3cgc2l6ZS4KLSAgICAgICAgcmVjdC53aWR0aCA9IG1fd2ViVmlldy0+
c2l6ZSgpLndpZHRoOwotICAgICAgICByZWN0LmhlaWdodCA9IG1fd2ViVmlldy0+c2l6ZSgpLmhl
aWdodDsKKyAgICBpZiAobV93ZWJWaWV3LT5jbGllbnQoKSkgeworICAgICAgICAvLyBPbiBDaHJv
bWUgZm9yIEFuZHJvaWQsIHJvb3RXaW5kb3dSZWN0IGlzIGluIHBoeXNpY2FsIHNjcmVlbiBwaXhl
bHMKKyAgICAgICAgLy8gaW5zdGVhZCBvZiBkZW5zaXR5IGluZGVwZW5kZW50IChVSSkgcGl4ZWxz
LCBhbmQgbXVzdCBiZSBzY2FsZWQgZG93bi4KKyAgICAgICAgRmxvYXRSZWN0IHJlY3QgPSBGbG9h
dFJlY3QobV93ZWJWaWV3LT5jbGllbnQoKS0+cm9vdFdpbmRvd1JlY3QoKSk7CisgICAgICAgIGlm
ICghbV93ZWJWaWV3LT5wYWdlKCktPnNldHRpbmdzKCktPmFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJ
bkNvbXBvc2l0b3IoKSkKKyAgICAgICAgICAgIHJlY3Quc2NhbGUoMSAvIG1fd2ViVmlldy0+Y2xp
ZW50KCktPnNjcmVlbkluZm8oKS5kZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgICAgIHJldHVybiBy
ZWN0OwogICAgIH0KLSAgICByZXR1cm4gRmxvYXRSZWN0KHJlY3QpOworCisgICAgLy8gVGhlc2Ug
bnVtYmVycyB3aWxsIGJlIGZhaXJseSB3cm9uZy4gVGhlIHdpbmRvdydzIHgveSBjb29yZGluYXRl
cyB3aWxsCisgICAgLy8gYmUgdGhlIHRvcCBsZWZ0IGNvcm5lciBvZiB0aGUgc2NyZWVuIGFuZCB0
aGUgc2l6ZSB3aWxsIGJlIHRoZSBjb250ZW50CisgICAgLy8gc2l6ZSBpbnN0ZWFkIG9mIHRoZSB3
aW5kb3cgc2l6ZS4KKyAgICByZXR1cm4gRmxvYXRSZWN0KDAsIDAsIG1fd2ViVmlldy0+c2l6ZSgp
LndpZHRoLCBtX3dlYlZpZXctPnNpemUoKS5oZWlnaHQpOwogfQogCiBGbG9hdFJlY3QgQ2hyb21l
Q2xpZW50SW1wbDo6cGFnZVJlY3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlNldHRpbmdzSW1wbC5jcHAKaW5kZXggMDhkZWIzZGFkZTQyOGIzYjc0MDNhZGM0ZTgxNzMxZTJl
ZmFkMWM4My4uNGNmMTU4NTJhMjY0OTRhM2ZlMjdlOGFkMmMyZWY5YTIwZDZlOTc1ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCkBAIC01NCw3
ICs1NCw2IEBAIFdlYlNldHRpbmdzSW1wbDo6V2ViU2V0dGluZ3NJbXBsKFNldHRpbmdzKiBzZXR0
aW5ncykKICAgICAsIG1fcmVuZGVyVlN5bmNFbmFibGVkKHRydWUpCiAgICAgLCBtX3JlbmRlclZT
eW5jTm90aWZpY2F0aW9uRW5hYmxlZChmYWxzZSkKICAgICAsIG1fdmlld3BvcnRFbmFibGVkKGZh
bHNlKQotICAgICwgbV9hcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKGZhbHNlKQog
ICAgICwgbV9nZXN0dXJlVGFwSGlnaGxpZ2h0RW5hYmxlZCh0cnVlKQogICAgICwgbV9hdXRvWm9v
bUZvY3VzZWROb2RlVG9MZWdpYmxlU2NhbGUoZmFsc2UpCiAgICAgLCBtX2RlZmVycmVkSW1hZ2VE
ZWNvZGluZ0VuYWJsZWQoZmFsc2UpCkBAIC0xNDIsNyArMTQxLDcgQEAgYm9vbCBXZWJTZXR0aW5n
c0ltcGw6OmRldmljZVN1cHBvcnRzVG91Y2goKQogCiB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0
QXBwbHlEZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcihib29sIGFwcGx5RGV2aWNlU2NhbGVG
YWN0b3JJbkNvbXBvc2l0b3IpCiB7Ci0gICAgbV9hcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21w
b3NpdG9yID0gYXBwbHlEZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcjsKKyAgICBtX3NldHRp
bmdzLT5zZXRBcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKGFwcGx5RGV2aWNlU2Nh
bGVGYWN0b3JJbkNvbXBvc2l0b3IpOwogfQogCiB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0QXBw
bHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoYm9vbCBhcHBseVBhZ2VTY2FsZUZhY3Rvcklu
Q29tcG9zaXRvcikKQEAgLTcyNCw2ICs3MjMsMTEgQEAgdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNl
dEdlc3R1cmVUYXBIaWdobGlnaHRFbmFibGVkKGJvb2wgZW5hYmxlSGlnaGxpZ2h0KQogICAgIG1f
Z2VzdHVyZVRhcEhpZ2hsaWdodEVuYWJsZWQgPSBlbmFibGVIaWdobGlnaHQ7CiB9CiAKK2Jvb2wg
V2ViU2V0dGluZ3NJbXBsOjphcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9zZXR0aW5ncy0+YXBwbHlEZXZpY2VTY2FsZUZhY3RvckluQ29t
cG9zaXRvcigpOworfQorCiBib29sIFdlYlNldHRpbmdzSW1wbDo6YXBwbHlQYWdlU2NhbGVGYWN0
b3JJbkNvbXBvc2l0b3IoKSBjb25zdAogewogICAgIHJldHVybiBtX3NldHRpbmdzLT5hcHBseVBh
Z2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJTZXR0aW5nc0ltcGwuaAppbmRleCA3NDMwYjQ4YWE4ZTNmNTQ1NjVkMzQ4ZDkwZWQ4ODhl
M2UyZGQwNGYxLi41YTk2NDEzZWZkOTkzMDUwYzVkYmI2ZTQwNDg2MTMyOTdlNzA0ZmI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaApAQCAtMTc1LDcg
KzE3NSw3IEBAIHB1YmxpYzoKICAgICBib29sIHNob3dQYWludFJlY3RzKCkgY29uc3QgeyByZXR1
cm4gbV9zaG93UGFpbnRSZWN0czsgfQogICAgIGJvb2wgcmVuZGVyVlN5bmNFbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gbV9yZW5kZXJWU3luY0VuYWJsZWQ7IH0KICAgICBib29sIHJlbmRlclZTeW5j
Tm90aWZpY2F0aW9uRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyVlN5bmNOb3RpZmlj
YXRpb25FbmFibGVkOyB9Ci0gICAgYm9vbCBhcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21wb3Np
dG9yKCkgY29uc3QgeyByZXR1cm4gbV9hcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9y
OyB9CisgICAgYm9vbCBhcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKCkgY29uc3Q7
CiAgICAgYm9vbCBhcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpIGNvbnN0OwogICAg
IGJvb2wgYXV0b1pvb21Gb2N1c2VkTm9kZVRvTGVnaWJsZVNjYWxlKCkgY29uc3QgeyByZXR1cm4g
bV9hdXRvWm9vbUZvY3VzZWROb2RlVG9MZWdpYmxlU2NhbGU7IH0KICAgICBib29sIGdlc3R1cmVU
YXBIaWdobGlnaHRFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9nZXN0dXJlVGFwSGlnaGxpZ2h0
RW5hYmxlZDsgfQpAQCAtMTkzLDcgKzE5Myw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3JlbmRl
clZTeW5jRW5hYmxlZDsKICAgICBib29sIG1fcmVuZGVyVlN5bmNOb3RpZmljYXRpb25FbmFibGVk
OwogICAgIGJvb2wgbV92aWV3cG9ydEVuYWJsZWQ7Ci0gICAgYm9vbCBtX2FwcGx5RGV2aWNlU2Nh
bGVGYWN0b3JJbkNvbXBvc2l0b3I7CiAgICAgYm9vbCBtX2dlc3R1cmVUYXBIaWdobGlnaHRFbmFi
bGVkOwogICAgIGJvb2wgbV9hdXRvWm9vbUZvY3VzZWROb2RlVG9MZWdpYmxlU2NhbGU7CiAgICAg
Ym9vbCBtX2RlZmVycmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>