<?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>67150</bug_id>
          
          <creation_ts>2011-08-29 13:30:06 -0700</creation_ts>
          <short_desc>Would like API to use a custom device scale factor for a particular WebView/WKView</short_desc>
          <delta_ts>2011-08-31 05:42:26 -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>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Beth Dakin">bdakin</assigned_to>
          <cc>bdakin</cc>
    
    <cc>darin</cc>
    
    <cc>fsamuel</cc>
    
    <cc>sullivan</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>458418</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-08-29 13:30:06 -0700</bug_when>
    <thetext>Safari sometimes uses a windowless WebView to take snapshots of webpages. It would be handy for Safari to be able to tell WebKit what device scale factor to use for that WebView (presumably based on the scale factor at which the snapshots will be displayed).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458420</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2011-08-29 13:30:47 -0700</bug_when>
    <thetext>&lt;rdar://problem/10041016&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459186</commentid>
    <comment_count>2</comment_count>
      <attachid>105693</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2011-08-30 14:20:18 -0700</bug_when>
    <thetext>Created attachment 105693
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459189</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-30 14:24:20 -0700</bug_when>
    <thetext>Attachment 105693 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit/mac/ChangeLog&apos;, u&apos;Source/Web...&quot; exit_code: 1

Source/WebKit2/UIProcess/WebPageProxy.cpp:1124:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 1 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459196</commentid>
    <comment_count>4</comment_count>
      <attachid>105695</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2011-08-30 14:26:53 -0700</bug_when>
    <thetext>Created attachment 105695
Patch with style fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459199</commentid>
    <comment_count>5</comment_count>
      <attachid>105693</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-30 14:28:02 -0700</bug_when>
    <thetext>Comment on attachment 105693
Patch

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

AppKit uses the term “backing scale factor” for this. Is the name “device scale factor” the right one for our SPI? I know we use it internally.

review- because this doesn’t add API to WebKit2 (missing change to header)

&gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:2067
&gt; +- (void)setOverrideDeviceScaleFactor:(float)overrideScaleFactor

Maybe CGFloat instead of float? I know it’s a float internally.

It would be nice if there was a way to remove this. I guess you can do that by passing 0, but that seems a little indirect.

What if someone passes a NAN or infinity or something crazy like that?

Also, I think you forgot to add this to a header file.

How about putting this API on the WKPage instead of on the WKView? Seems it would be even more useful for WKPage objects being used for things other than backing an NSView.

&gt; Source/WebKit/mac/WebView/WebViewData.mm:82
&gt; +    overrideDeviceScaleFactor = 0;

This is not needed. Objective-C data members are automatically initialized to 0.

&gt; Source/WebKit/mac/WebView/WebViewPrivate.h:552
&gt; +- (void)_setOverrideDeviceScaleFactor:(float)overrideScaleFactor;

Maybe CGFloat instead of float? I know it’s a float internally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459211</commentid>
    <comment_count>6</comment_count>
      <attachid>105695</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-08-30 14:37:27 -0700</bug_when>
    <thetext>Comment on attachment 105695
Patch with style fixes

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

If we believe we only need this feature on the Mac, most of this code could be Mac-only.

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:148
&gt; +    , m_overrideDeviceScaleFactor(0)

Can this ivar be Mac-only?

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:1124
&gt; +    if (!m_overrideDeviceScaleFactor)

This if clause should be Mac only.

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:1129
&gt; +void WebPageProxy::setOverrideDeviceScaleFactor(float overrideScaleFactor)

setOverrideDeviceScaleFactor() should be Mac-only, and its implementation moved to WebPageProxyMac.mm.

&gt; Source/WebKit2/UIProcess/WebPageProxy.h:865
&gt; +    float m_overrideDeviceScaleFactor;

As mentioned above, this ivar should be Mac-only.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459223</commentid>
    <comment_count>7</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2011-08-30 14:43:28 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 105695 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=105695&amp;action=review
&gt; 
&gt; If we believe we only need this feature on the Mac, most of this code could be Mac-only.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:148
&gt; &gt; +    , m_overrideDeviceScaleFactor(0)
&gt; 
&gt; Can this ivar be Mac-only?
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:1124
&gt; &gt; +    if (!m_overrideDeviceScaleFactor)
&gt; 
&gt; This if clause should be Mac only.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:1129
&gt; &gt; +void WebPageProxy::setOverrideDeviceScaleFactor(float overrideScaleFactor)
&gt; 
&gt; setOverrideDeviceScaleFactor() should be Mac-only, and its implementation moved to WebPageProxyMac.mm.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebPageProxy.h:865
&gt; &gt; +    float m_overrideDeviceScaleFactor;
&gt; 
&gt; As mentioned above, this ivar should be Mac-only.

I&apos;m not sure that we do want this to be Mac-only. Adam added m_deviceScaleFactor as a cross-platform member variable to WebPageProxy, so it seems to me that the override should be cross-platform as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459235</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-30 14:53:58 -0700</bug_when>
    <thetext>I don’t think this should be Mac-only.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459237</commentid>
    <comment_count>9</comment_count>
      <attachid>105695</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-30 14:54:19 -0700</bug_when>
    <thetext>Comment on attachment 105695
Patch with style fixes

review- because this doesn’t add API to WebKit2 (missing change to header)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459279</commentid>
    <comment_count>10</comment_count>
      <attachid>105711</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2011-08-30 15:44:04 -0700</bug_when>
    <thetext>Created attachment 105711
Patch that addresses comments

Here&apos;s a patch that I believe addresses all comments so far, except for Darin&apos;s comment about strange input values. It&apos;s true that callers of this API that send in crazy float values are not protected. It&apos;s also true that to un-set the override, a caller would have to set the overrideBackingScaleFactor to 0, which is a little strange. I am open to suggestions here for restricting the values or adding additional API to turn the override off (instead of relying on 0).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459291</commentid>
    <comment_count>11</comment_count>
      <attachid>105711</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-30 16:01:55 -0700</bug_when>
    <thetext>Comment on attachment 105711
Patch that addresses comments

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

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:1140
&gt; +    m_overrideBackingScaleFactor = overrideScaleFactor;
&gt; +
&gt; +    if (m_overrideBackingScaleFactor != m_deviceScaleFactor)
&gt; +        m_drawingArea-&gt;deviceScaleFactorDidChange();

This if statement seems wrong for the case where the device scale factor was 2, the old override scale factor was 1, and the new override scale factor is 2. Clearly in that case we do want to call deviceScaleFactorDidChange.

The easiest way to write this correctly is probably this:

    float oldScaleFactor = deviceScaleFactor();

    m_overrideBackingScaleFactor = overrideScaleFactor;

    if (deviceScaleFactor() != oldScaleFactor)
        m_drawingArea-&gt;deviceScaleFactorDidChange();

&gt; Source/WebKit2/UIProcess/API/C/WKPage.h:352
&gt; +WK_EXPORT void WKPageSetOverrideBackingScaleFactor(WKPageRef page, float overrideScaleFactor);

Other WebKit2 API seem to use double rather the float. For example, see WKPageSetTextZoomFactor below.

Other WebKit2 APIs seem to include both setters and getters. For example, see WKPageGetTextZoomFactor below.

Since 0 is a magic number meaning “get the scale factor from the view”, it would be good to have a named constant for that magic number in the header.

All of these are things we can fix later, although the double vs. float thing seems worth doing up front to me.

&gt; Source/WebKit/mac/WebView/WebView.mm:2803
&gt; +    if (oldScaleFactor != overrideScaleFactor)
&gt; +        _private-&gt;page-&gt;setDeviceScaleFactor(overrideScaleFactor);

This should be:

    if (oldScaleFactor != [self _deviceScaleFactor])

Otherwise, we will send an unnecessary setDeviceScaleFactor call in the case where we are setting the override scale factor back to 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459320</commentid>
    <comment_count>12</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2011-08-30 16:32:26 -0700</bug_when>
    <thetext>I addressed all of Darin&apos;s comment except coming up with a named constant for 0 as the magic number before committing. I like the idea of having a constant for that, I just haven&apos;t come up with a good name yet.

Everything else was committed with revision 94122!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459571</commentid>
    <comment_count>13</comment_count>
      <attachid>105711</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-08-31 05:42:26 -0700</bug_when>
    <thetext>Comment on attachment 105711
Patch that addresses comments

It would be great to have an API test for this. I&apos;m happy to help you with that if needed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105693</attachid>
            <date>2011-08-30 14:20:18 -0700</date>
            <delta_ts>2011-08-30 15:44:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>for-review.txt</filename>
            <type>text/plain</type>
            <size>7481</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDk0MTA4KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDgtMzAgIEJldGggRGFr
aW4gIDxiZGFraW5AYXBwbGUuY29tPgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02NzE1MAorICAgICAgICBXb3VsZCBsaWtlIEFQSSB0byB1c2UgYSBj
dXN0b20gZGV2aWNlIHNjYWxlIGZhY3RvciBmb3IgYSBwYXJ0aWN1bGFyIFdlYlZpZXcvV0tWaWV3
CisgICAgICAgIC1hbmQgY29ycmVzcG9uZGluZy0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEw
MDQxMDE2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5ldyBBUEkgaXMgc2V0T3ZlcnJpZGVTY2FsZUZhY3RvcigpCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgc2V0T3ZlcnJpZGVEZXZpY2VT
Y2FsZUZhY3RvcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRldmljZVNjYWxlRmFjdG9yKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpzZXRPdmVycmlkZURldmljZVNjYWxlRmFjdG9yKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisKIDIwMTEtMDgtMjkgIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgRHVtcFJlbmRlclRyZWUgc2hvdWxkIGJlZ2lu
IGVhY2ggdGVzdCB3aXRoIGFuIGVtcHR5IGNvb2tpZSBzdG9yZQpJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDkzOTk5KQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0
NSw2ICsxNDUsNyBAQCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50KiBwCiAg
ICAgLCBtX3BhZ2Vab29tRmFjdG9yKDEpCiAgICAgLCBtX3BhZ2VTY2FsZUZhY3RvcigxKQogICAg
ICwgbV9kZXZpY2VTY2FsZUZhY3RvcigxKQorICAgICwgbV9vdmVycmlkZURldmljZVNjYWxlRmFj
dG9yKDApCiAgICAgLCBtX2RyYXdzQmFja2dyb3VuZCh0cnVlKQogICAgICwgbV9kcmF3c1RyYW5z
cGFyZW50QmFja2dyb3VuZChmYWxzZSkKICAgICAsIG1fYXJlTWVtb3J5Q2FjaGVDbGllbnRDYWxs
c0VuYWJsZWQodHJ1ZSkKQEAgLTExMTgsNiArMTExOSwyNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
c2V0RGV2aWNlU2NhbGVGYWN0b3IoCiAgICAgbV9kcmF3aW5nQXJlYS0+ZGV2aWNlU2NhbGVGYWN0
b3JEaWRDaGFuZ2UoKTsKIH0KIAorZmxvYXQgV2ViUGFnZVByb3h5OjpkZXZpY2VTY2FsZUZhY3Rv
cigpIGNvbnN0Cit7CisgICAgaWYgKG1fb3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvciAhPSAwKQor
ICAgICAgICByZXR1cm4gbV9vdmVycmlkZURldmljZVNjYWxlRmFjdG9yOworICAgIHJldHVybiBt
X2RldmljZVNjYWxlRmFjdG9yOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0T3ZlcnJpZGVE
ZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBvdmVycmlkZVNjYWxlRmFjdG9yKQoreworICAgIGlmICgh
aXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9vdmVycmlkZURldmljZVNj
YWxlRmFjdG9yID09IG92ZXJyaWRlU2NhbGVGYWN0b3IpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fb3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvciA9IG92ZXJyaWRlU2NhbGVGYWN0b3I7CisKKyAg
ICBpZiAobV9vdmVycmlkZURldmljZVNjYWxlRmFjdG9yICE9IG1fZGV2aWNlU2NhbGVGYWN0b3Ip
CisgICAgICAgIG1fZHJhd2luZ0FyZWEtPmRldmljZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKCk7Cit9
CisKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRVc2VGaXhlZExheW91dChib29sIGZpeGVkKQogewog
ICAgIGlmICghaXNWYWxpZCgpKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAkocmV2aXNpb24gOTM5OTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTM4Nyw3ICszODcsOSBAQCBwdWJsaWM6CiAg
ICAgZG91YmxlIHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZVNjYWxlRmFj
dG9yOyB9CiAKICAgICB2b2lkIHNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0KTsKLSAgICBmbG9h
dCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlU2NhbGVGYWN0b3I7
IH0KKyAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0OworCisgICAgdm9pZCBzZXRP
dmVycmlkZURldmljZVNjYWxlRmFjdG9yKGZsb2F0KTsKIAogICAgIHZvaWQgc2V0VXNlRml4ZWRM
YXlvdXQoYm9vbCk7CiAgICAgdm9pZCBzZXRGaXhlZExheW91dFNpemUoY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYpOwpAQCAtODYwLDYgKzg2Miw3IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIG1fcGFn
ZVpvb21GYWN0b3I7CiAgICAgZG91YmxlIG1fcGFnZVNjYWxlRmFjdG9yOwogICAgIGZsb2F0IG1f
ZGV2aWNlU2NhbGVGYWN0b3I7CisgICAgZmxvYXQgbV9vdmVycmlkZURldmljZVNjYWxlRmFjdG9y
OwogCiAgICAgYm9vbCBtX2RyYXdzQmFja2dyb3VuZDsKICAgICBib29sIG1fZHJhd3NUcmFuc3Bh
cmVudEJhY2tncm91bmQ7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9X
S1ZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMv
V0tWaWV3Lm1tCShyZXZpc2lvbiA5Mzk5OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvbWFjL1dLVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjA2NCw2ICsyMDY0LDExIEBAIC0g
KE5TUHJpbnRPcGVyYXRpb24gKilwcmludE9wZXJhdGlvbldpdGgKICAgICB9CiB9CiAKKy0gKHZv
aWQpc2V0T3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcjooZmxvYXQpb3ZlcnJpZGVTY2FsZUZhY3Rv
cgoreworICAgIF9kYXRhLT5fcGFnZS0+c2V0T3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcihvdmVy
cmlkZVNjYWxlRmFjdG9yKTsKK30KKwogLSAoZmxvYXQpX2RldmljZVNjYWxlRmFjdG9yCiB7CiAg
ICAgTlNXaW5kb3cgKndpbmRvdyA9IFtzZWxmIHdpbmRvd107CkluZGV4OiBTb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CShyZXZpc2lvbiA5NDEwOCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDExLTA4LTMwICBCZXRoIERha2luICA8YmRha2lu
QGFwcGxlLmNvbT4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjcxNTAKKyAgICAgICAgV291bGQgbGlrZSBBUEkgdG8gdXNlIGEgY3VzdG9tIGRldmlj
ZSBzY2FsZSBmYWN0b3IgZm9yIGEgcGFydGljdWxhciBXZWJWaWV3L1dLVmlldworICAgICAgICAt
YW5kIGNvcnJlc3BvbmRpbmctCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDA0MTAxNj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZXcgQVBJIGlz
IHNldE92ZXJyaWRlU2NhbGVGYWN0b3IoKQorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToK
KyAgICAgICAgKC1bV2ViVmlldyBfc2V0T3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcjpdKToKKyAg
ICAgICAgKC1bV2ViVmlldyBfZGV2aWNlU2NhbGVGYWN0b3JdKToKKyAgICAgICAgKiBXZWJWaWV3
L1dlYlZpZXdEYXRhLmg6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3RGF0YS5tbToKKyAgICAg
ICAgKC1bV2ViVmlld1ByaXZhdGUgaW5pdF0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld1By
aXZhdGUuaDoKKwogMjAxMS0wOC0yOSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNv
bT4KIAogICAgICAgICBEdW1wUmVuZGVyVHJlZSBzaG91bGQgYmVnaW4gZWFjaCB0ZXN0IHdpdGgg
YW4gZW1wdHkgY29va2llIHN0b3JlCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCShyZXZpc2lvbiA5Mzk5OSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjc5Myw2ICsyNzkzLDE2IEBAIC0gKE5TU2l6ZSlfZml4
ZWRMYXlvdXRTaXplCiAgICAgcmV0dXJuIHZpZXctPmZpeGVkTGF5b3V0U2l6ZSgpOwogfQogCist
ICh2b2lkKV9zZXRPdmVycmlkZURldmljZVNjYWxlRmFjdG9yOihmbG9hdClvdmVycmlkZVNjYWxl
RmFjdG9yCit7CisgICAgZmxvYXQgb2xkU2NhbGVGYWN0b3IgPSBbc2VsZiBfZGV2aWNlU2NhbGVG
YWN0b3JdOworCisgICAgX3ByaXZhdGUtPm92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IgPSBvdmVy
cmlkZVNjYWxlRmFjdG9yOworCisgICAgaWYgKG9sZFNjYWxlRmFjdG9yICE9IG92ZXJyaWRlU2Nh
bGVGYWN0b3IpCisgICAgICAgIF9wcml2YXRlLT5wYWdlLT5zZXREZXZpY2VTY2FsZUZhY3Rvcihv
dmVycmlkZVNjYWxlRmFjdG9yKTsKK30KKwogLSAoTlNVSW50ZWdlciltYXJrQWxsTWF0Y2hlc0Zv
clRleHQ6KE5TU3RyaW5nICopc3RyaW5nIGNhc2VTZW5zaXRpdmU6KEJPT0wpY2FzZUZsYWcgaGln
aGxpZ2h0OihCT09MKWhpZ2hsaWdodCBsaW1pdDooTlNVSW50ZWdlcilsaW1pdAogewogICAgIHJl
dHVybiBbc2VsZiBjb3VudE1hdGNoZXNGb3JUZXh0OnN0cmluZyBvcHRpb25zOihjYXNlRmxhZyA/
IDAgOiBXZWJGaW5kT3B0aW9uc0Nhc2VJbnNlbnNpdGl2ZSkgaGlnaGxpZ2h0OmhpZ2hsaWdodCBs
aW1pdDpsaW1pdCBtYXJrTWF0Y2hlczpZRVNdOwpAQCAtNTUyMCw2ICs1NTMwLDkgQEAgc3RhdGlj
IFdlYkZyYW1lVmlldyAqY29udGFpbmluZ0ZyYW1lVmlldwogCiAtIChmbG9hdClfZGV2aWNlU2Nh
bGVGYWN0b3IKIHsKKyAgICBpZiAoX3ByaXZhdGUtPm92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3Ig
IT0gMCkKKyAgICAgICAgcmV0dXJuIF9wcml2YXRlLT5vdmVycmlkZURldmljZVNjYWxlRmFjdG9y
OworCiAgICAgTlNXaW5kb3cgKndpbmRvdyA9IFtzZWxmIHdpbmRvd107CiAjaWYgIWRlZmluZWQo
QlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJE
KQogICAgIGlmICh3aW5kb3cpCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXdEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
RGF0YS5oCShyZXZpc2lvbiA5Mzk5OSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlld0RhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMTkzLDUgKzE5Myw3IEBAIEBpbnRlcmZhY2Ug
V2ViVmlld1ByaXZhdGUgOiBOU09iamVjdCB7CiAKICAgICBCT09MIGludGVyYWN0aXZlRm9ybVZh
bGlkYXRpb25FbmFibGVkOwogICAgIGludCB2YWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNh
dGlvbjsKKworICAgIGZsb2F0IG92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3I7CiB9CiBAZW5kCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0JKHJldmlzaW9uIDkz
OTk5KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtNzksNiArNzksOCBAQCAtIChpZClpbml0IAogCiAgICAgcGx1Z2luRGF0YWJh
c2VDbGllbnRDb3VudCsrOwogCisgICAgb3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvciA9IDA7CisK
ICAgICByZXR1cm4gc2VsZjsKIH0KIApJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVmlld1ByaXZhdGUuaAkocmV2aXNpb24gOTM5OTkpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU0OSw2ICs1NDksOCBA
QCBDb3VsZCBiZSB3b3J0aCBhZGRpbmcgdG8gdGhlIEFQSS4KIC0gKEJPT0wpX3VzZUZpeGVkTGF5
b3V0OwogLSAoTlNTaXplKV9maXhlZExheW91dFNpemU7CiAKKy0gKHZvaWQpX3NldE92ZXJyaWRl
RGV2aWNlU2NhbGVGYWN0b3I6KGZsb2F0KW92ZXJyaWRlU2NhbGVGYWN0b3I7CisKIC8vIERlcHJl
Y2F0ZWQuIFVzZSB0aGUgbWV0aG9kcyBpbiBwZW5kaW5nIHB1YmxpYyBhYm92ZSBpbnN0ZWFkLgog
LSAoTlNVSW50ZWdlciltYXJrQWxsTWF0Y2hlc0ZvclRleHQ6KE5TU3RyaW5nICopc3RyaW5nIGNh
c2VTZW5zaXRpdmU6KEJPT0wpY2FzZUZsYWcgaGlnaGxpZ2h0OihCT09MKWhpZ2hsaWdodCBsaW1p
dDooTlNVSW50ZWdlcilsaW1pdDsKIC0gKE5TVUludGVnZXIpY291bnRNYXRjaGVzRm9yVGV4dDoo
TlNTdHJpbmcgKilzdHJpbmcgY2FzZVNlbnNpdGl2ZTooQk9PTCljYXNlRmxhZyBoaWdobGlnaHQ6
KEJPT0wpaGlnaGxpZ2h0IGxpbWl0OihOU1VJbnRlZ2VyKWxpbWl0IG1hcmtNYXRjaGVzOihCT09M
KW1hcmtNYXRjaGVzOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105695</attachid>
            <date>2011-08-30 14:26:53 -0700</date>
            <delta_ts>2011-08-30 15:44:04 -0700</delta_ts>
            <desc>Patch with style fixes</desc>
            <filename>for-review-2.txt</filename>
            <type>text/plain</type>
            <size>7477</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDk0MTA4KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDgtMzAgIEJldGggRGFr
aW4gIDxiZGFraW5AYXBwbGUuY29tPgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02NzE1MAorICAgICAgICBXb3VsZCBsaWtlIEFQSSB0byB1c2UgYSBj
dXN0b20gZGV2aWNlIHNjYWxlIGZhY3RvciBmb3IgYSBwYXJ0aWN1bGFyIFdlYlZpZXcvV0tWaWV3
CisgICAgICAgIC1hbmQgY29ycmVzcG9uZGluZy0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEw
MDQxMDE2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5ldyBBUEkgaXMgc2V0T3ZlcnJpZGVTY2FsZUZhY3RvcigpCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgc2V0T3ZlcnJpZGVEZXZpY2VT
Y2FsZUZhY3RvcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRldmljZVNjYWxlRmFjdG9yKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpzZXRPdmVycmlkZURldmljZVNjYWxlRmFjdG9yKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisKIDIwMTEtMDgtMjkgIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgRHVtcFJlbmRlclRyZWUgc2hvdWxkIGJlZ2lu
IGVhY2ggdGVzdCB3aXRoIGFuIGVtcHR5IGNvb2tpZSBzdG9yZQpJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDkzOTk5KQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0
NSw2ICsxNDUsNyBAQCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50KiBwCiAg
ICAgLCBtX3BhZ2Vab29tRmFjdG9yKDEpCiAgICAgLCBtX3BhZ2VTY2FsZUZhY3RvcigxKQogICAg
ICwgbV9kZXZpY2VTY2FsZUZhY3RvcigxKQorICAgICwgbV9vdmVycmlkZURldmljZVNjYWxlRmFj
dG9yKDApCiAgICAgLCBtX2RyYXdzQmFja2dyb3VuZCh0cnVlKQogICAgICwgbV9kcmF3c1RyYW5z
cGFyZW50QmFja2dyb3VuZChmYWxzZSkKICAgICAsIG1fYXJlTWVtb3J5Q2FjaGVDbGllbnRDYWxs
c0VuYWJsZWQodHJ1ZSkKQEAgLTExMTgsNiArMTExOSwyNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
c2V0RGV2aWNlU2NhbGVGYWN0b3IoCiAgICAgbV9kcmF3aW5nQXJlYS0+ZGV2aWNlU2NhbGVGYWN0
b3JEaWRDaGFuZ2UoKTsKIH0KIAorZmxvYXQgV2ViUGFnZVByb3h5OjpkZXZpY2VTY2FsZUZhY3Rv
cigpIGNvbnN0Cit7CisgICAgaWYgKCFtX292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IpCisgICAg
ICAgIHJldHVybiBtX292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3I7CisgICAgcmV0dXJuIG1fZGV2
aWNlU2NhbGVGYWN0b3I7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRPdmVycmlkZURldmlj
ZVNjYWxlRmFjdG9yKGZsb2F0IG92ZXJyaWRlU2NhbGVGYWN0b3IpCit7CisgICAgaWYgKCFpc1Zh
bGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX292ZXJyaWRlRGV2aWNlU2NhbGVG
YWN0b3IgPT0gb3ZlcnJpZGVTY2FsZUZhY3RvcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9v
dmVycmlkZURldmljZVNjYWxlRmFjdG9yID0gb3ZlcnJpZGVTY2FsZUZhY3RvcjsKKworICAgIGlm
IChtX292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IgIT0gbV9kZXZpY2VTY2FsZUZhY3RvcikKKyAg
ICAgICAgbV9kcmF3aW5nQXJlYS0+ZGV2aWNlU2NhbGVGYWN0b3JEaWRDaGFuZ2UoKTsKK30KKwog
dm9pZCBXZWJQYWdlUHJveHk6OnNldFVzZUZpeGVkTGF5b3V0KGJvb2wgZml4ZWQpCiB7CiAgICAg
aWYgKCFpc1ZhbGlkKCkpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCShyZXZpc2lvbiA5Mzk5OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMzg3LDcgKzM4Nyw5IEBAIHB1YmxpYzoKICAgICBk
b3VibGUgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlU2NhbGVGYWN0b3I7
IH0KIAogICAgIHZvaWQgc2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQpOwotICAgIGZsb2F0IGRl
dmljZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VTY2FsZUZhY3RvcjsgfQor
ICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Q7CisKKyAgICB2b2lkIHNldE92ZXJy
aWRlRGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQpOwogCiAgICAgdm9pZCBzZXRVc2VGaXhlZExheW91
dChib29sKTsKICAgICB2b2lkIHNldEZpeGVkTGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRT
aXplJik7CkBAIC04NjAsNiArODYyLDcgQEAgcHJpdmF0ZToKICAgICBkb3VibGUgbV9wYWdlWm9v
bUZhY3RvcjsKICAgICBkb3VibGUgbV9wYWdlU2NhbGVGYWN0b3I7CiAgICAgZmxvYXQgbV9kZXZp
Y2VTY2FsZUZhY3RvcjsKKyAgICBmbG9hdCBtX292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3I7CiAK
ICAgICBib29sIG1fZHJhd3NCYWNrZ3JvdW5kOwogICAgIGJvb2wgbV9kcmF3c1RyYW5zcGFyZW50
QmFja2dyb3VuZDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmll
dy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1Zp
ZXcubW0JKHJldmlzaW9uIDkzOTk5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvV0tWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMDY0LDYgKzIwNjQsMTEgQEAgLSAoTlNQ
cmludE9wZXJhdGlvbiAqKXByaW50T3BlcmF0aW9uV2l0aAogICAgIH0KIH0KIAorLSAodm9pZClz
ZXRPdmVycmlkZURldmljZVNjYWxlRmFjdG9yOihmbG9hdClvdmVycmlkZVNjYWxlRmFjdG9yCit7
CisgICAgX2RhdGEtPl9wYWdlLT5zZXRPdmVycmlkZURldmljZVNjYWxlRmFjdG9yKG92ZXJyaWRl
U2NhbGVGYWN0b3IpOworfQorCiAtIChmbG9hdClfZGV2aWNlU2NhbGVGYWN0b3IKIHsKICAgICBO
U1dpbmRvdyAqd2luZG93ID0gW3NlbGYgd2luZG93XTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDk0MTA4KQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDgtMzAgIEJldGggRGFraW4gIDxiZGFraW5AYXBw
bGUuY29tPgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02NzE1MAorICAgICAgICBXb3VsZCBsaWtlIEFQSSB0byB1c2UgYSBjdXN0b20gZGV2aWNlIHNj
YWxlIGZhY3RvciBmb3IgYSBwYXJ0aWN1bGFyIFdlYlZpZXcvV0tWaWV3CisgICAgICAgIC1hbmQg
Y29ycmVzcG9uZGluZy0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMDQxMDE2PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyBBUEkgaXMgc2V0
T3ZlcnJpZGVTY2FsZUZhY3RvcigpCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAg
ICAgICAoLVtXZWJWaWV3IF9zZXRPdmVycmlkZURldmljZVNjYWxlRmFjdG9yOl0pOgorICAgICAg
ICAoLVtXZWJWaWV3IF9kZXZpY2VTY2FsZUZhY3Rvcl0pOgorICAgICAgICAqIFdlYlZpZXcvV2Vi
Vmlld0RhdGEuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLm1tOgorICAgICAgICAo
LVtXZWJWaWV3UHJpdmF0ZSBpbml0XSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3UHJpdmF0
ZS5oOgorCiAyMDExLTA4LTI5ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgog
CiAgICAgICAgIER1bXBSZW5kZXJUcmVlIHNob3VsZCBiZWdpbiBlYWNoIHRlc3Qgd2l0aCBhbiBl
bXB0eSBjb29raWUgc3RvcmUKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0J
KHJldmlzaW9uIDkzOTk5KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0yNzkzLDYgKzI3OTMsMTYgQEAgLSAoTlNTaXplKV9maXhlZExh
eW91dFNpemUKICAgICByZXR1cm4gdmlldy0+Zml4ZWRMYXlvdXRTaXplKCk7CiB9CiAKKy0gKHZv
aWQpX3NldE92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3I6KGZsb2F0KW92ZXJyaWRlU2NhbGVGYWN0
b3IKK3sKKyAgICBmbG9hdCBvbGRTY2FsZUZhY3RvciA9IFtzZWxmIF9kZXZpY2VTY2FsZUZhY3Rv
cl07CisKKyAgICBfcHJpdmF0ZS0+b3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvciA9IG92ZXJyaWRl
U2NhbGVGYWN0b3I7CisKKyAgICBpZiAob2xkU2NhbGVGYWN0b3IgIT0gb3ZlcnJpZGVTY2FsZUZh
Y3RvcikKKyAgICAgICAgX3ByaXZhdGUtPnBhZ2UtPnNldERldmljZVNjYWxlRmFjdG9yKG92ZXJy
aWRlU2NhbGVGYWN0b3IpOworfQorCiAtIChOU1VJbnRlZ2VyKW1hcmtBbGxNYXRjaGVzRm9yVGV4
dDooTlNTdHJpbmcgKilzdHJpbmcgY2FzZVNlbnNpdGl2ZTooQk9PTCljYXNlRmxhZyBoaWdobGln
aHQ6KEJPT0wpaGlnaGxpZ2h0IGxpbWl0OihOU1VJbnRlZ2VyKWxpbWl0CiB7CiAgICAgcmV0dXJu
IFtzZWxmIGNvdW50TWF0Y2hlc0ZvclRleHQ6c3RyaW5nIG9wdGlvbnM6KGNhc2VGbGFnID8gMCA6
IFdlYkZpbmRPcHRpb25zQ2FzZUluc2Vuc2l0aXZlKSBoaWdobGlnaHQ6aGlnaGxpZ2h0IGxpbWl0
OmxpbWl0IG1hcmtNYXRjaGVzOllFU107CkBAIC01NTIwLDYgKzU1MzAsOSBAQCBzdGF0aWMgV2Vi
RnJhbWVWaWV3ICpjb250YWluaW5nRnJhbWVWaWV3CiAKIC0gKGZsb2F0KV9kZXZpY2VTY2FsZUZh
Y3RvcgogeworICAgIGlmIChfcHJpdmF0ZS0+b3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvciAhPSAw
KQorICAgICAgICByZXR1cm4gX3ByaXZhdGUtPm92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3I7CisK
ICAgICBOU1dpbmRvdyAqd2luZG93ID0gW3NlbGYgd2luZG93XTsKICNpZiAhZGVmaW5lZChCVUlM
RElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAg
ICAgaWYgKHdpbmRvdykKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0Rh
dGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRh
LmgJKHJldmlzaW9uIDkzOTk5KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTMsNSArMTkzLDcgQEAgQGludGVyZmFjZSBXZWJW
aWV3UHJpdmF0ZSA6IE5TT2JqZWN0IHsKIAogICAgIEJPT0wgaW50ZXJhY3RpdmVGb3JtVmFsaWRh
dGlvbkVuYWJsZWQ7CiAgICAgaW50IHZhbGlkYXRpb25NZXNzYWdlVGltZXJNYWduaWZpY2F0aW9u
OworCisgICAgZmxvYXQgb3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcjsKIH0KIEBlbmQKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbQkocmV2aXNpb24gOTM5OTkp
CisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC03OSw2ICs3OSw4IEBAIC0gKGlkKWluaXQgCiAKICAgICBwbHVnaW5EYXRhYmFzZUNs
aWVudENvdW50Kys7CiAKKyAgICBvdmVycmlkZURldmljZVNjYWxlRmFjdG9yID0gMDsKKwogICAg
IHJldHVybiBzZWxmOwogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXdQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3UHJpdmF0ZS5oCShyZXZpc2lvbiA5Mzk5OSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViVmlld1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTQ5LDYgKzU0OSw4IEBAIENv
dWxkIGJlIHdvcnRoIGFkZGluZyB0byB0aGUgQVBJLgogLSAoQk9PTClfdXNlRml4ZWRMYXlvdXQ7
CiAtIChOU1NpemUpX2ZpeGVkTGF5b3V0U2l6ZTsKIAorLSAodm9pZClfc2V0T3ZlcnJpZGVEZXZp
Y2VTY2FsZUZhY3RvcjooZmxvYXQpb3ZlcnJpZGVTY2FsZUZhY3RvcjsKKwogLy8gRGVwcmVjYXRl
ZC4gVXNlIHRoZSBtZXRob2RzIGluIHBlbmRpbmcgcHVibGljIGFib3ZlIGluc3RlYWQuCiAtIChO
U1VJbnRlZ2VyKW1hcmtBbGxNYXRjaGVzRm9yVGV4dDooTlNTdHJpbmcgKilzdHJpbmcgY2FzZVNl
bnNpdGl2ZTooQk9PTCljYXNlRmxhZyBoaWdobGlnaHQ6KEJPT0wpaGlnaGxpZ2h0IGxpbWl0OihO
U1VJbnRlZ2VyKWxpbWl0OwogLSAoTlNVSW50ZWdlciljb3VudE1hdGNoZXNGb3JUZXh0OihOU1N0
cmluZyAqKXN0cmluZyBjYXNlU2Vuc2l0aXZlOihCT09MKWNhc2VGbGFnIGhpZ2hsaWdodDooQk9P
TCloaWdobGlnaHQgbGltaXQ6KE5TVUludGVnZXIpbGltaXQgbWFya01hdGNoZXM6KEJPT0wpbWFy
a01hdGNoZXM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105711</attachid>
            <date>2011-08-30 15:44:04 -0700</date>
            <delta_ts>2011-08-31 05:42:26 -0700</delta_ts>
            <desc>Patch that addresses comments</desc>
            <filename>for-review-4.txt</filename>
            <type>text/plain</type>
            <size>8024</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDk0MTE3KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDgtMzAgIEJldGggRGFr
aW4gIDxiZGFraW5AYXBwbGUuY29tPgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02NzE1MAorICAgICAgICBXb3VsZCBsaWtlIEFQSSB0byB1c2UgYSBj
dXN0b20gZGV2aWNlIHNjYWxlIGZhY3RvciBmb3IgYSBwYXJ0aWN1bGFyIFdlYlZpZXcvV0tWaWV3
CisgICAgICAgIC1hbmQgY29ycmVzcG9uZGluZy0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEw
MDQxMDE2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5ldyBBUEkgaXMgc2V0T3ZlcnJpZGVCYWNraW5nU2NhbGVGYWN0b3IoKSBvbiBXS1BhZ2UKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZVNldE92
ZXJyaWRlQmFja2luZ1NjYWxlRmFjdG9yKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkZXZpY2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6c2V0T3ZlcnJpZGVCYWNraW5nU2NhbGVGYWN0b3IpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaDoKKwogMjAxMS0wOC0zMCAgQWRhIENoYW4gIDxhZGFjaGFuQGFwcGxl
LmNvbT4KIAogICAgICAgICBMYXlpbmcgc29tZSBncm91bmR3b3JrIHRvIGZldGNoIHBlcmZvcm1h
bmNlIHN0YXRpc3RpY3MgZnJvbSBXZWJQcm9jZXNzLgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDkzOTk5KQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw2ICsx
NDUsNyBAQCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50KiBwCiAgICAgLCBt
X3BhZ2Vab29tRmFjdG9yKDEpCiAgICAgLCBtX3BhZ2VTY2FsZUZhY3RvcigxKQogICAgICwgbV9k
ZXZpY2VTY2FsZUZhY3RvcigxKQorICAgICwgbV9vdmVycmlkZUJhY2tpbmdTY2FsZUZhY3Rvcigw
KQogICAgICwgbV9kcmF3c0JhY2tncm91bmQodHJ1ZSkKICAgICAsIG1fZHJhd3NUcmFuc3BhcmVu
dEJhY2tncm91bmQoZmFsc2UpCiAgICAgLCBtX2FyZU1lbW9yeUNhY2hlQ2xpZW50Q2FsbHNFbmFi
bGVkKHRydWUpCkBAIC0xMTE4LDYgKzExMTksMjcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldERl
dmljZVNjYWxlRmFjdG9yKAogICAgIG1fZHJhd2luZ0FyZWEtPmRldmljZVNjYWxlRmFjdG9yRGlk
Q2hhbmdlKCk7CiB9CiAKK2Zsb2F0IFdlYlBhZ2VQcm94eTo6ZGV2aWNlU2NhbGVGYWN0b3IoKSBj
b25zdAoreworICAgIGlmIChtX292ZXJyaWRlQmFja2luZ1NjYWxlRmFjdG9yKQorICAgICAgICBy
ZXR1cm4gbV9vdmVycmlkZUJhY2tpbmdTY2FsZUZhY3RvcjsKKyAgICByZXR1cm4gbV9kZXZpY2VT
Y2FsZUZhY3RvcjsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnNldE92ZXJyaWRlQmFja2luZ1Nj
YWxlRmFjdG9yKGZsb2F0IG92ZXJyaWRlU2NhbGVGYWN0b3IpCit7CisgICAgaWYgKCFpc1ZhbGlk
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX292ZXJyaWRlQmFja2luZ1NjYWxlRmFj
dG9yID09IG92ZXJyaWRlU2NhbGVGYWN0b3IpCisgICAgICAgIHJldHVybjsKKworICAgIG1fb3Zl
cnJpZGVCYWNraW5nU2NhbGVGYWN0b3IgPSBvdmVycmlkZVNjYWxlRmFjdG9yOworCisgICAgaWYg
KG1fb3ZlcnJpZGVCYWNraW5nU2NhbGVGYWN0b3IgIT0gbV9kZXZpY2VTY2FsZUZhY3RvcikKKyAg
ICAgICAgbV9kcmF3aW5nQXJlYS0+ZGV2aWNlU2NhbGVGYWN0b3JEaWRDaGFuZ2UoKTsKK30KKwog
dm9pZCBXZWJQYWdlUHJveHk6OnNldFVzZUZpeGVkTGF5b3V0KGJvb2wgZml4ZWQpCiB7CiAgICAg
aWYgKCFpc1ZhbGlkKCkpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCShyZXZpc2lvbiA5Mzk5OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMzg3LDcgKzM4Nyw5IEBAIHB1YmxpYzoKICAgICBk
b3VibGUgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlU2NhbGVGYWN0b3I7
IH0KIAogICAgIHZvaWQgc2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQpOwotICAgIGZsb2F0IGRl
dmljZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VTY2FsZUZhY3RvcjsgfQor
ICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Q7CisKKyAgICB2b2lkIHNldE92ZXJy
aWRlQmFja2luZ1NjYWxlRmFjdG9yKGZsb2F0KTsKIAogICAgIHZvaWQgc2V0VXNlRml4ZWRMYXlv
dXQoYm9vbCk7CiAgICAgdm9pZCBzZXRGaXhlZExheW91dFNpemUoY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYpOwpAQCAtODYwLDYgKzg2Miw3IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIG1fcGFnZVpv
b21GYWN0b3I7CiAgICAgZG91YmxlIG1fcGFnZVNjYWxlRmFjdG9yOwogICAgIGZsb2F0IG1fZGV2
aWNlU2NhbGVGYWN0b3I7CisgICAgZmxvYXQgbV9vdmVycmlkZUJhY2tpbmdTY2FsZUZhY3RvcjsK
IAogICAgIGJvb2wgbV9kcmF3c0JhY2tncm91bmQ7CiAgICAgYm9vbCBtX2RyYXdzVHJhbnNwYXJl
bnRCYWNrZ3JvdW5kOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5jcHAJKHJldmlzaW9uIDkzOTk5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1OCw2ICsyNTgsMTEgQEAgZG91YmxlIFdL
UGFnZUdldFRleHRab29tRmFjdG9yKFdLUGFnZVJlZgogICAgIHJldHVybiB0b0ltcGwocGFnZVJl
ZiktPnRleHRab29tRmFjdG9yKCk7CiB9CiAKK3ZvaWQgV0tQYWdlU2V0T3ZlcnJpZGVCYWNraW5n
U2NhbGVGYWN0b3IoV0tQYWdlUmVmIHBhZ2VSZWYsIGZsb2F0IG92ZXJyaWRlU2NhbGVGYWN0b3Ip
Cit7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5zZXRPdmVycmlkZUJhY2tpbmdTY2FsZUZhY3Rvcihv
dmVycmlkZVNjYWxlRmFjdG9yKTsKK30KKwogYm9vbCBXS1BhZ2VTdXBwb3J0c1RleHRab29tKFdL
UGFnZVJlZiBwYWdlUmVmKQogewogICAgIHJldHVybiB0b0ltcGwocGFnZVJlZiktPnN1cHBvcnRz
VGV4dFpvb20oKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgJ
KHJldmlzaW9uIDkzOTk5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNDksNiArMzQ5LDggQEAgdHlwZWRlZiBib29sICgqV0tQ
YWdlU2Vzc2lvblN0YXRlRmlsdGVyQwogV0tfRVhQT1JUIFdLRGF0YVJlZiBXS1BhZ2VDb3B5U2Vz
c2lvblN0YXRlKFdLUGFnZVJlZiBwYWdlLCB2b2lkKiBjb250ZXh0LCBXS1BhZ2VTZXNzaW9uU3Rh
dGVGaWx0ZXJDYWxsYmFjayB1cmxBbGxvd2VkQ2FsbGJhY2spOwogV0tfRVhQT1JUIHZvaWQgV0tQ
YWdlUmVzdG9yZUZyb21TZXNzaW9uU3RhdGUoV0tQYWdlUmVmIHBhZ2UsIFdLRGF0YVJlZiBzZXNz
aW9uU3RhdGVEYXRhKTsKIAorV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0T3ZlcnJpZGVCYWNraW5n
U2NhbGVGYWN0b3IoV0tQYWdlUmVmIHBhZ2UsIGZsb2F0IG92ZXJyaWRlU2NhbGVGYWN0b3IpOwor
CiBXS19FWFBPUlQgYm9vbCBXS1BhZ2VTdXBwb3J0c1RleHRab29tKFdLUGFnZVJlZiBwYWdlKTsK
IFdLX0VYUE9SVCBkb3VibGUgV0tQYWdlR2V0VGV4dFpvb21GYWN0b3IoV0tQYWdlUmVmIHBhZ2Up
OwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0VGV4dFpvb21GYWN0b3IoV0tQYWdlUmVmIHBhZ2Us
IGRvdWJsZSB6b29tRmFjdG9yKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDk0MTE3
KQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTkgQEAKKzIwMTEtMDgtMzAgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgorCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzE1MAorICAg
ICAgICBXb3VsZCBsaWtlIEFQSSB0byB1c2UgYSBjdXN0b20gZGV2aWNlIHNjYWxlIGZhY3RvciBm
b3IgYSBwYXJ0aWN1bGFyIFdlYlZpZXcvV0tWaWV3CisgICAgICAgIC1hbmQgY29ycmVzcG9uZGlu
Zy0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMDQxMDE2PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyBBUEkgaXMgX3NldE92ZXJyaWRlQmFj
a2luZ1NjYWxlRmFjdG9yOihDR0Zsb2F0KQorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToK
KyAgICAgICAgKC1bV2ViVmlldyBfc2V0T3ZlcnJpZGVCYWNraW5nU2NhbGVGYWN0b3I6XSk6Cisg
ICAgICAgICgtW1dlYlZpZXcgX2RldmljZVNjYWxlRmFjdG9yXSk6CisgICAgICAgICogV2ViVmll
dy9XZWJWaWV3RGF0YS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld1ByaXZhdGUuaDoKKwog
MjAxMS0wOC0yOSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAg
ICBEdW1wUmVuZGVyVHJlZSBzaG91bGQgYmVnaW4gZWFjaCB0ZXN0IHdpdGggYW4gZW1wdHkgY29v
a2llIHN0b3JlCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCShyZXZpc2lv
biA5Mzk5OSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMjc5Myw2ICsyNzkzLDE2IEBAIC0gKE5TU2l6ZSlfZml4ZWRMYXlvdXRTaXpl
CiAgICAgcmV0dXJuIHZpZXctPmZpeGVkTGF5b3V0U2l6ZSgpOwogfQogCistICh2b2lkKV9zZXRP
dmVycmlkZUJhY2tpbmdTY2FsZUZhY3RvcjooQ0dGbG9hdClvdmVycmlkZVNjYWxlRmFjdG9yCit7
CisgICAgZmxvYXQgb2xkU2NhbGVGYWN0b3IgPSBbc2VsZiBfZGV2aWNlU2NhbGVGYWN0b3JdOwor
CisgICAgX3ByaXZhdGUtPm92ZXJyaWRlQmFja2luZ1NjYWxlRmFjdG9yID0gb3ZlcnJpZGVTY2Fs
ZUZhY3RvcjsKKworICAgIGlmIChvbGRTY2FsZUZhY3RvciAhPSBvdmVycmlkZVNjYWxlRmFjdG9y
KQorICAgICAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0RGV2aWNlU2NhbGVGYWN0b3Iob3ZlcnJpZGVT
Y2FsZUZhY3Rvcik7Cit9CisKIC0gKE5TVUludGVnZXIpbWFya0FsbE1hdGNoZXNGb3JUZXh0OihO
U1N0cmluZyAqKXN0cmluZyBjYXNlU2Vuc2l0aXZlOihCT09MKWNhc2VGbGFnIGhpZ2hsaWdodDoo
Qk9PTCloaWdobGlnaHQgbGltaXQ6KE5TVUludGVnZXIpbGltaXQKIHsKICAgICByZXR1cm4gW3Nl
bGYgY291bnRNYXRjaGVzRm9yVGV4dDpzdHJpbmcgb3B0aW9uczooY2FzZUZsYWcgPyAwIDogV2Vi
RmluZE9wdGlvbnNDYXNlSW5zZW5zaXRpdmUpIGhpZ2hsaWdodDpoaWdobGlnaHQgbGltaXQ6bGlt
aXQgbWFya01hdGNoZXM6WUVTXTsKQEAgLTU1MjAsNiArNTUzMCw5IEBAIHN0YXRpYyBXZWJGcmFt
ZVZpZXcgKmNvbnRhaW5pbmdGcmFtZVZpZXcKIAogLSAoZmxvYXQpX2RldmljZVNjYWxlRmFjdG9y
CiB7CisgICAgaWYgKF9wcml2YXRlLT5vdmVycmlkZUJhY2tpbmdTY2FsZUZhY3RvciAhPSAwKQor
ICAgICAgICByZXR1cm4gX3ByaXZhdGUtPm92ZXJyaWRlQmFja2luZ1NjYWxlRmFjdG9yOworCiAg
ICAgTlNXaW5kb3cgKndpbmRvdyA9IFtzZWxmIHdpbmRvd107CiAjaWYgIWRlZmluZWQoQlVJTERJ
TkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogICAg
IGlmICh3aW5kb3cpCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRh
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5o
CShyZXZpc2lvbiA5Mzk5OSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0Rh
dGEuaAkod29ya2luZyBjb3B5KQpAQCAtMTkzLDUgKzE5Myw3IEBAIEBpbnRlcmZhY2UgV2ViVmll
d1ByaXZhdGUgOiBOU09iamVjdCB7CiAKICAgICBCT09MIGludGVyYWN0aXZlRm9ybVZhbGlkYXRp
b25FbmFibGVkOwogICAgIGludCB2YWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbjsK
KworICAgIGZsb2F0IG92ZXJyaWRlQmFja2luZ1NjYWxlRmFjdG9yOwogfQogQGVuZApJbmRleDog
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaAkocmV2aXNpb24gOTM5
OTkpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTU0OSw2ICs1NDksOCBAQCBDb3VsZCBiZSB3b3J0aCBhZGRpbmcgdG8gdGhl
IEFQSS4KIC0gKEJPT0wpX3VzZUZpeGVkTGF5b3V0OwogLSAoTlNTaXplKV9maXhlZExheW91dFNp
emU7CiAKKy0gKHZvaWQpX3NldE92ZXJyaWRlQmFja2luZ1NjYWxlRmFjdG9yOihDR0Zsb2F0KW92
ZXJyaWRlU2NhbGVGYWN0b3I7CisKIC8vIERlcHJlY2F0ZWQuIFVzZSB0aGUgbWV0aG9kcyBpbiBw
ZW5kaW5nIHB1YmxpYyBhYm92ZSBpbnN0ZWFkLgogLSAoTlNVSW50ZWdlciltYXJrQWxsTWF0Y2hl
c0ZvclRleHQ6KE5TU3RyaW5nICopc3RyaW5nIGNhc2VTZW5zaXRpdmU6KEJPT0wpY2FzZUZsYWcg
aGlnaGxpZ2h0OihCT09MKWhpZ2hsaWdodCBsaW1pdDooTlNVSW50ZWdlcilsaW1pdDsKIC0gKE5T
VUludGVnZXIpY291bnRNYXRjaGVzRm9yVGV4dDooTlNTdHJpbmcgKilzdHJpbmcgY2FzZVNlbnNp
dGl2ZTooQk9PTCljYXNlRmxhZyBoaWdobGlnaHQ6KEJPT0wpaGlnaGxpZ2h0IGxpbWl0OihOU1VJ
bnRlZ2VyKWxpbWl0IG1hcmtNYXRjaGVzOihCT09MKW1hcmtNYXRjaGVzOwo=
</data>
<flag name="review"
          id="101944"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>