<?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>36434</bug_id>
          
          <creation_ts>2010-03-21 22:33:42 -0700</creation_ts>
          <short_desc>[chromium]WebKit side of adding search support to Pepper.</short_desc>
          <delta_ts>2010-03-24 14:10:42 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="John Abd-El-Malek">jam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>fishd</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>202400</commentid>
    <comment_count>0</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2010-03-21 22:33:42 -0700</bug_when>
    <thetext>[chromium]WebKit side of adding search support to Pepper.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202401</commentid>
    <comment_count>1</comment_count>
      <attachid>51267</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2010-03-21 22:49:13 -0700</bug_when>
    <thetext>Created attachment 51267
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202407</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-03-21 23:53:23 -0700</bug_when>
    <thetext>Note to fellow reviewers.  This review is blocked pending agreement on the API, which is being discussed here:  http://codereview.chromium.org/1075011</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202884</commentid>
    <comment_count>3</comment_count>
      <attachid>51384</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2010-03-22 19:01:31 -0700</bug_when>
    <thetext>Created attachment 51384
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202887</commentid>
    <comment_count>4</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2010-03-22 19:02:27 -0700</bug_when>
    <thetext>Darin: I&apos;ve updated the patch per our discussion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203241</commentid>
    <comment_count>5</comment_count>
      <attachid>51384</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-03-23 15:05:58 -0700</bug_when>
    <thetext>Comment on attachment 51384
Patch

&gt; Index: WebKit/chromium/public/WebDocument.h
...
&gt;      // Returns the frame the document belongs to or 0 if the document is frameless.
&gt;      WEBKIT_API WebFrame* frame() const;
&gt;      WEBKIT_API bool isHTMLDocument() const;
&gt; +    WEBKIT_API bool isPluginDocument(WebPluginContainer**);

I think it is a little awkward for this function to have the side effect of
returning the contained plugin.

We could instead follow the inheritance approach.  Define WebPluginDocument:

class WebPluginDocument : public WebDocument {
public:
    /* boiler plate */
    WEBKIT_API WebPlugin* plugin();
};

Then, WebDocument would just have the simple method:

    WEBKIT_API bool isPluginDocument() const;

Folks would then use WebPluginDocument like so.

    WebDocument doc = ...;
    if (doc.isPluginDocument()) {
        WebPlugin* plugin = doc.to&lt;WebPluginDocument&gt;.plugin();
        ...
    }

Unfortunately, WebNode (which WebDocument extends) doesn&apos;t have a to&lt;T&gt;
method.  It just has a toElement&lt;T&gt; method, which should really just be
renamed to&lt;T&gt; so that it can be used with derived types that are not
elements.  For now, we could just add a copy of toElement&lt;T&gt; named to&lt;T&gt;,
and mark toElement&lt;T&gt; as deprecated.  You can leave it to me to clean up
the deprecated usage.

-Darin</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203550</commentid>
    <comment_count>6</comment_count>
      <attachid>51537</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2010-03-24 13:27:12 -0700</bug_when>
    <thetext>Created attachment 51537
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203552</commentid>
    <comment_count>7</comment_count>
      <attachid>51538</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2010-03-24 13:31:56 -0700</bug_when>
    <thetext>Created attachment 51538
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203553</commentid>
    <comment_count>8</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2010-03-24 13:32:19 -0700</bug_when>
    <thetext>Darin: when you have a chance, here&apos;s the updated patch with your suggested changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203567</commentid>
    <comment_count>9</comment_count>
      <attachid>51538</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-03-24 13:58:15 -0700</bug_when>
    <thetext>Comment on attachment 51538
Patch

&gt; Index: WebKit/chromium/public/WebNode.h

&gt; +    // DEPRECATED! use toConstElement() instead

nit: &quot;use toConst() instead&quot;


&gt; Index: WebKit/chromium/public/WebPluginDocument.h

&gt; +    WebPluginDocument(const WebPluginDocument&amp; e) : WebDocument(e) { }
&gt; +
&gt; +    WebPluginDocument&amp; operator=(const WebPluginDocument&amp; e)
&gt; +    {
&gt; +        WebNode::assign(e);
&gt; +        return *this;
&gt; +    }
&gt; +    void assign(const WebPluginDocument&amp; e) { WebNode::assign(e); }

nit: &quot;e&quot; stood for WebElement probably in the case you copied this
from.  how about using &quot;d&quot; for document instead?


R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203574</commentid>
    <comment_count>10</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2010-03-24 14:10:42 -0700</bug_when>
    <thetext>Committed r56457: &lt;http://trac.webkit.org/changeset/56457&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51267</attachid>
            <date>2010-03-21 22:49:13 -0700</date>
            <delta_ts>2010-03-22 19:01:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36434-20100321224913.patch</filename>
            <type>text/plain</type>
            <size>25494</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTYzMjIpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTAtMDMtMjEgIEpvaG4g
QWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dV2ViS2l0IHNpZGUgb2YgYWRkaW5n
IHNlYXJjaCBzdXBwb3J0IHRvIFBlcHBlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM2NDM0CisKKyAgICAgICAgKiBwdWJsaWMvV2ViUGx1Z2luLmg6
CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbjo6c3VwcG9ydHNGaW5kKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGx1Z2luOjpmaW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luOjpnb1Rv
RmluZFJlc3VsdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbjo6c3RvcEZpbmQpOgorICAg
ICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUlt
cGw6OmZpbmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OnN0b3BGaW5kaW5nKToK
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBsOjpzY29wZVN0cmluZ01hdGNoZXMpOgorICAg
ICAgICAqIHNyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGx1Z2luQ29udGFpbmVySW1wbDo6c3VwcG9ydHNGaW5kKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGx1Z2luQ29udGFpbmVySW1wbDo6ZmluZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdp
bkNvbnRhaW5lckltcGw6OmdvVG9GaW5kUmVzdWx0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1
Z2luQ29udGFpbmVySW1wbDo6c3RvcEZpbmQpOgorICAgICAgICAqIHNyYy9XZWJQbHVnaW5Db250
YWluZXJJbXBsLmg6CisKIDIwMTAtMDMtMjAgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBObyByZXZpZXcsIHJvbGxpbmcgb3V0IHI1NjI5NC4KSW5k
ZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2luLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVnaW4uaAkocmV2aXNpb24gNTYzMjIpCisrKyBXZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC05Myw2ICs5
MywxMiBAQCBwdWJsaWM6CiAgICAgLy8gRW5kcyB0aGUgcHJpbnQgb3BlcmF0aW9uLgogICAgIHZp
cnR1YWwgdm9pZCBwcmludEVuZCgpIHsgfQogCisgICAgLy8gRmluZCBpbnRlcmZhY2UuICBTZWUg
V2ViUGx1Z2luQ29udGFpbmVySW1wbC5oIGZvciBhIGRlc2NyaXB0aW9uIG9mIHRoZSBpbnRlcmZh
Y2UuCisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRmluZCgpIHsgcmV0dXJuIGZhbHNlOyB9Cisg
ICAgdmlydHVhbCBib29sIGZpbmQoY29uc3QgV2ViU3RyaW5nJiBzZWFyY2hUZXh0LCBib29sIGZv
cndhcmQsIGJvb2wgY2FzZVNlbnNpdGl2ZSkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgZ29Ub0ZpbmRSZXN1bHQoYm9vbCBmb3J3YXJkKSB7fQorICAgIHZpcnR1YWwgdm9pZCBz
dG9wRmluZCgpIHt9CisKIHByb3RlY3RlZDoKICAgICB+V2ViUGx1Z2luKCkgeyB9CiB9OwpJbmRl
eDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAkocmV2aXNpb24gNTYzMjIpCisrKyBX
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEy
NzUsOTIgKzEyNzUsMTE3IEBAIGJvb2wgV2ViRnJhbWVJbXBsOjpmaW5kKGludCBpZGVudGlmaWVy
LAogewogICAgIFdlYkZyYW1lSW1wbCogbWFpbkZyYW1lSW1wbCA9IHZpZXdJbXBsKCktPm1haW5G
cmFtZUltcGwoKTsKIAotICAgIGlmICghb3B0aW9ucy5maW5kTmV4dCkKLSAgICAgICAgZnJhbWUo
KS0+cGFnZSgpLT51bm1hcmtBbGxUZXh0TWF0Y2hlcygpOwotICAgIGVsc2UKLSAgICAgICAgc2V0
TWFya2VyQWN0aXZlKG1fYWN0aXZlTWF0Y2guZ2V0KCksIGZhbHNlKTsgIC8vIEFjdGl2ZSBtYXRj
aCBpcyBjaGFuZ2luZy4KLQogICAgIC8vIFN0YXJ0cyB0aGUgc2VhcmNoIGZyb20gdGhlIGN1cnJl
bnQgc2VsZWN0aW9uLgogICAgIGJvb2wgc3RhcnRJblNlbGVjdGlvbiA9IHRydWU7CiAKLSAgICAv
LyBJZiB0aGUgdXNlciBoYXMgc2VsZWN0ZWQgc29tZXRoaW5nIHNpbmNlIHRoZSBsYXN0IEZpbmQg
b3BlcmF0aW9uIHdlIHdhbnQKLSAgICAvLyB0byBzdGFydCBmcm9tIHRoZXJlLiBPdGhlcndpc2Us
IHdlIHN0YXJ0IHNlYXJjaGluZyBmcm9tIHdoZXJlIHRoZSBsYXN0IEZpbmQKLSAgICAvLyBvcGVy
YXRpb24gbGVmdCBvZmYgKGVpdGhlciBhIEZpbmQgb3IgYSBGaW5kTmV4dCBvcGVyYXRpb24pLgot
ICAgIFZpc2libGVTZWxlY3Rpb24gc2VsZWN0aW9uKGZyYW1lKCktPnNlbGVjdGlvbigpLT5zZWxl
Y3Rpb24oKSk7Ci0gICAgYm9vbCBhY3RpdmVTZWxlY3Rpb24gPSAhc2VsZWN0aW9uLmlzTm9uZSgp
OwotICAgIGlmICghYWN0aXZlU2VsZWN0aW9uICYmIG1fYWN0aXZlTWF0Y2gpIHsKLSAgICAgICAg
c2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihtX2FjdGl2ZU1hdGNoLmdldCgpKTsKLSAgICAg
ICAgZnJhbWUoKS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihzZWxlY3Rpb24pOwotICAgIH0K
LQogICAgIEFTU0VSVChmcmFtZSgpICYmIGZyYW1lKCktPnZpZXcoKSk7Ci0gICAgYm9vbCBmb3Vu
ZCA9IGZyYW1lKCktPmZpbmRTdHJpbmcoCi0gICAgICAgIHNlYXJjaFRleHQsIG9wdGlvbnMuZm9y
d2FyZCwgb3B0aW9ucy5tYXRjaENhc2UsIHdyYXBXaXRoaW5GcmFtZSwKLSAgICAgICAgc3RhcnRJ
blNlbGVjdGlvbik7Ci0gICAgaWYgKGZvdW5kKSB7Ci0gICAgICAgIC8vIFN0b3JlIHdoaWNoIGZy
YW1lIHdhcyBhY3RpdmUuIFRoaXMgd2lsbCBjb21lIGluIGhhbmR5IGxhdGVyIHdoZW4gd2UKLSAg
ICAgICAgLy8gY2hhbmdlIHRoZSBhY3RpdmUgbWF0Y2ggb3JkaW5hbCBiZWxvdy4KLSAgICAgICAg
V2ViRnJhbWVJbXBsKiBvbGRBY3RpdmVGcmFtZSA9IG1haW5GcmFtZUltcGwtPm1fYWN0aXZlTWF0
Y2hGcmFtZTsKLSAgICAgICAgLy8gU2V0IHRoaXMgZnJhbWUgYXMgdGhlIGFjdGl2ZSBmcmFtZSAo
dGhlIG9uZSB3aXRoIHRoZSBhY3RpdmUgaGlnaGxpZ2h0KS4KLSAgICAgICAgbWFpbkZyYW1lSW1w
bC0+bV9hY3RpdmVNYXRjaEZyYW1lID0gdGhpczsKLQotICAgICAgICAvLyBXZSBmb3VuZCBzb21l
dGhpbmcsIHNvIHdlIGNhbiBub3cgcXVlcnkgdGhlIHNlbGVjdGlvbiBmb3IgaXRzIHBvc2l0aW9u
LgotICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihmcmFtZSgpLT5zZWxlY3Rp
b24oKS0+c2VsZWN0aW9uKCkpOwotICAgICAgICBJbnRSZWN0IGN1cnJTZWxlY3Rpb25SZWN0Owot
Ci0gICAgICAgIC8vIElmIHdlIHRob3VnaHQgd2UgZm91bmQgc29tZXRoaW5nLCBidXQgaXQgY291
bGRuJ3QgYmUgc2VsZWN0ZWQgKHBlcmhhcHMKLSAgICAgICAgLy8gYmVjYXVzZSBpdCB3YXMgbWFy
a2VkIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmUpLCB3ZSBjYW4ndCBzZXQgaXQgdG8KLSAgICAg
ICAgLy8gYmUgYWN0aXZlIGJ1dCB3ZSBzdGlsbCBjb250aW51ZSBzZWFyY2hpbmcuIFRoaXMgbWF0
Y2hlcyBTYWZhcmkncwotICAgICAgICAvLyBiZWhhdmlvciwgaW5jbHVkaW5nIHNvbWUgb2RkaXRp
ZXMgd2hlbiBzZWxlY3RhYmxlIGFuZCB1bi1zZWxlY3RhYmxlIHRleHQKLSAgICAgICAgLy8gYXJl
IG1peGVkIG9uIGEgcGFnZTogc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTEyNy4KLSAgICAgICAgaWYgKG5ld1NlbGVjdGlvbi5pc05vbmUoKSB8fCAobmV3U2Vs
ZWN0aW9uLnN0YXJ0KCkgPT0gbmV3U2VsZWN0aW9uLmVuZCgpKSkKLSAgICAgICAgICAgIG1fYWN0
aXZlTWF0Y2ggPSAwOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIG1fYWN0aXZlTWF0Y2gg
PSBuZXdTZWxlY3Rpb24udG9Ob3JtYWxpemVkUmFuZ2UoKTsKLSAgICAgICAgICAgIGN1cnJTZWxl
Y3Rpb25SZWN0ID0gbV9hY3RpdmVNYXRjaC0+Ym91bmRpbmdCb3goKTsKLSAgICAgICAgICAgIHNl
dE1hcmtlckFjdGl2ZShtX2FjdGl2ZU1hdGNoLmdldCgpLCB0cnVlKTsgIC8vIEFjdGl2ZS4KLSAg
ICAgICAgICAgIC8vIFdlYktpdCBkcmF3cyB0aGUgaGlnaGxpZ2h0aW5nIGZvciBhbGwgbWF0Y2hl
cy4KLSAgICAgICAgICAgIGV4ZWN1dGVDb21tYW5kKFdlYlN0cmluZzo6ZnJvbVVURjgoIlVuc2Vs
ZWN0IikpOwotICAgICAgICB9CisgICAgYm9vbCBmb3VuZCA9IGZhbHNlOwogCi0gICAgICAgIGlm
ICghb3B0aW9ucy5maW5kTmV4dCB8fCBhY3RpdmVTZWxlY3Rpb24pIHsKLSAgICAgICAgICAgIC8v
IFRoaXMgaXMgZWl0aGVyIGEgRmluZCBvcGVyYXRpb24gb3IgYSBGaW5kLW5leHQgZnJvbSBhIG5l
dyBzdGFydCBwb2ludAotICAgICAgICAgICAgLy8gZHVlIHRvIGEgc2VsZWN0aW9uLCBzbyB3ZSBz
ZXQgdGhlIGZsYWcgdG8gYXNrIHRoZSBzY29waW5nIGVmZm9ydAotICAgICAgICAgICAgLy8gdG8g
ZmluZCB0aGUgYWN0aXZlIHJlY3QgZm9yIHVzIHNvIHdlIGNhbiB1cGRhdGUgdGhlIG9yZGluYWwg
KG4gb2YgbSkuCi0gICAgICAgICAgICBtX2xvY2F0aW5nQWN0aXZlUmVjdCA9IHRydWU7CisgICAg
Ly8gSWYgd2UncmUgZGlzcGxheWluZyBhIGZ1bGwgcGFnZSBwbHVnaW4sIGdldCB0aGUgZmluZCBy
ZXN1bHQgZnJvbSBpdC4KKyAgICAvLyBGb3Igbm93LCB3ZSBkb24ndCBzdXBwb3J0IHNlYXJjaGlu
ZyBpbnNpZGUgcGx1Z2lucyB0aGF0IGFyZSBwYXJ0IG9mIGEgcGFnZS4KKyAgICBXZWJQbHVnaW5D
b250YWluZXJJbXBsKiBwbHVnaW5Db250YWluZXIgPSBwbHVnaW5Db250YWluZXJGcm9tRnJhbWUo
ZnJhbWUoKSk7CisgICAgaWYgKHBsdWdpbkNvbnRhaW5lciAmJiBwbHVnaW5Db250YWluZXItPnN1
cHBvcnRzRmluZCgpICYmICFwYXJlbnQoKSkgeworICAgICAgICBpZiAoIW9wdGlvbnMuZmluZE5l
eHQpIHsKKyAgICAgICAgICAgIC8vICBGaXJzdCB0aW1lIHdlIHRyeSB0byBmaW5kIHRoZSB0ZXh0
IHNvIGZpbmQgdGhlIGxvY2F0aW9uIG9mIHRoZSBmaXJzdCBtYXRjaC4KKyAgICAgICAgICAgIGZv
dW5kID0gcGx1Z2luQ29udGFpbmVyLT5maW5kKHNlYXJjaFRleHQsIG9wdGlvbnMuZm9yd2FyZCwg
b3B0aW9ucy5tYXRjaENhc2UpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKG9s
ZEFjdGl2ZUZyYW1lICE9IHRoaXMpIHsKLSAgICAgICAgICAgICAgICAvLyBJZiB0aGUgYWN0aXZl
IGZyYW1lIGhhcyBjaGFuZ2VkIGl0IG1lYW5zIHRoYXQgd2UgaGF2ZSBhIG11bHRpLWZyYW1lCi0g
ICAgICAgICAgICAgICAgLy8gcGFnZSBhbmQgd2UganVzdCBzd2l0Y2ggdG8gc2VhcmNoaW5nIGlu
IGEgbmV3IGZyYW1lLiBUaGVuIHdlIGp1c3QKLSAgICAgICAgICAgICAgICAvLyB3YW50IHRvIHJl
c2V0IHRoZSBpbmRleC4KLSAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5mb3J3YXJkKQotICAg
ICAgICAgICAgICAgICAgICBtX2FjdGl2ZU1hdGNoSW5kZXggPSAwOwotICAgICAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgbV9hY3RpdmVNYXRjaEluZGV4ID0gbV9sYXN0TWF0
Y2hDb3VudCAtIDE7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIC8vIFdl
IGFyZSBzdGlsbCB0aGUgYWN0aXZlIGZyYW1lLCBzbyBpbmNyZW1lbnQgKG9yIGRlY3JlbWVudCkg
dGhlCi0gICAgICAgICAgICAgICAgLy8gfG1fYWN0aXZlTWF0Y2hJbmRleHwsIHdyYXBwaW5nIGlm
IG5lZWRlZCAob24gc2luZ2xlIGZyYW1lIHBhZ2VzKS4KLSAgICAgICAgICAgICAgICBvcHRpb25z
LmZvcndhcmQgPyArK21fYWN0aXZlTWF0Y2hJbmRleCA6IC0tbV9hY3RpdmVNYXRjaEluZGV4Owot
ICAgICAgICAgICAgICAgIGlmIChtX2FjdGl2ZU1hdGNoSW5kZXggKyAxID4gbV9sYXN0TWF0Y2hD
b3VudCkKLSAgICAgICAgICAgICAgICAgICAgbV9hY3RpdmVNYXRjaEluZGV4ID0gMDsKLSAgICAg
ICAgICAgICAgICBpZiAobV9hY3RpdmVNYXRjaEluZGV4ID09IC0xKQotICAgICAgICAgICAgICAg
ICAgICBtX2FjdGl2ZU1hdGNoSW5kZXggPSBtX2xhc3RNYXRjaENvdW50IC0gMTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGlmIChzZWxlY3Rpb25SZWN0KSB7Ci0gICAgICAgICAgICAgICAg
V2ViUmVjdCByZWN0ID0gZnJhbWUoKS0+dmlldygpLT5jb252ZXJ0VG9Db250YWluaW5nV2luZG93
KGN1cnJTZWxlY3Rpb25SZWN0KTsKLSAgICAgICAgICAgICAgICByZWN0LnggLT0gZnJhbWVWaWV3
KCktPnNjcm9sbE9mZnNldCgpLndpZHRoKCk7Ci0gICAgICAgICAgICAgICAgcmVjdC55IC09IGZy
YW1lVmlldygpLT5zY3JvbGxPZmZzZXQoKS5oZWlnaHQoKTsKLSAgICAgICAgICAgICAgICAqc2Vs
ZWN0aW9uUmVjdCA9IHJlY3Q7CisgICAgICAgICAgICAvLyBXZSdkIG9ubHkgYmUgY2FsbGVkIGEg
c2Vjb25kIHRpbWUgaWYgYXQgbGVhc3Qgb25lIG1hdGNoIHdhcyBmb3VuZC4KKyAgICAgICAgICAg
IGZvdW5kID0gdHJ1ZTsKKyAgICAgICAgICAgIG9wdGlvbnMuZm9yd2FyZCA/ICsrbV9hY3RpdmVN
YXRjaEluZGV4IDogLS1tX2FjdGl2ZU1hdGNoSW5kZXg7CisgICAgICAgICAgICBpZiAobV9hY3Rp
dmVNYXRjaEluZGV4ICsgMSA+IG1fbGFzdE1hdGNoQ291bnQpCisgICAgICAgICAgICAgICAgbV9h
Y3RpdmVNYXRjaEluZGV4ID0gMDsKKyAgICAgICAgICAgIGlmIChtX2FjdGl2ZU1hdGNoSW5kZXgg
PT0gLTEpCisgICAgICAgICAgICAgICAgbV9hY3RpdmVNYXRjaEluZGV4ID0gbV9sYXN0TWF0Y2hD
b3VudCAtIDE7CisgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIHJlcG9ydEZpbmRJblBhZ2VT
ZWxlY3Rpb24ocmVjdCwgbV9hY3RpdmVNYXRjaEluZGV4ICsgMSwgaWRlbnRpZmllcik7Ci0gICAg
ICAgICAgICB9CisgICAgICAgIGlmIChmb3VuZCkgeworICAgICAgICAgICAgcGx1Z2luQ29udGFp
bmVyLT5nb1RvRmluZFJlc3VsdChvcHRpb25zLmZvcndhcmQpOworICAgICAgICAgICAgcmVwb3J0
RmluZEluUGFnZVNlbGVjdGlvbihXZWJSZWN0KCksIG1fYWN0aXZlTWF0Y2hJbmRleCArIDEsIGlk
ZW50aWZpZXIpOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAgLy8gTm90aGluZyB3
YXMgZm91bmQgaW4gdGhpcyBmcmFtZS4KLSAgICAgICAgbV9hY3RpdmVNYXRjaCA9IDA7CisgICAg
ICAgIGlmICghb3B0aW9ucy5maW5kTmV4dCkKKyAgICAgICAgICAgIGZyYW1lKCktPnBhZ2UoKS0+
dW5tYXJrQWxsVGV4dE1hdGNoZXMoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2V0TWFy
a2VyQWN0aXZlKG1fYWN0aXZlTWF0Y2guZ2V0KCksIGZhbHNlKTsgLy8gQWN0aXZlIG1hdGNoIGlz
IGNoYW5naW5nLgogCi0gICAgICAgIC8vIEVyYXNlIGFsbCBwcmV2aW91cyB0aWNrbWFya3MgYW5k
IGhpZ2hsaWdodGluZy4KLSAgICAgICAgaW52YWxpZGF0ZUFyZWEoSW52YWxpZGF0ZUFsbCk7Cisg
ICAgICAgIC8vIElmIHRoZSB1c2VyIGhhcyBzZWxlY3RlZCBzb21ldGhpbmcgc2luY2UgdGhlIGxh
c3QgRmluZCBvcGVyYXRpb24gd2Ugd2FudAorICAgICAgICAvLyB0byBzdGFydCBmcm9tIHRoZXJl
LiBPdGhlcndpc2UsIHdlIHN0YXJ0IHNlYXJjaGluZyBmcm9tIHdoZXJlIHRoZSBsYXN0IEZpbmQK
KyAgICAgICAgLy8gb3BlcmF0aW9uIGxlZnQgb2ZmIChlaXRoZXIgYSBGaW5kIG9yIGEgRmluZE5l
eHQgb3BlcmF0aW9uKS4KKyAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb24oZnJhbWUo
KS0+c2VsZWN0aW9uKCktPnNlbGVjdGlvbigpKTsKKyAgICAgICAgYm9vbCBhY3RpdmVTZWxlY3Rp
b24gPSAhc2VsZWN0aW9uLmlzTm9uZSgpOworICAgICAgICBpZiAoIWFjdGl2ZVNlbGVjdGlvbiAm
JiBtX2FjdGl2ZU1hdGNoKSB7CisgICAgICAgICAgICBzZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0
aW9uKG1fYWN0aXZlTWF0Y2guZ2V0KCkpOworICAgICAgICAgICAgZnJhbWUoKS0+c2VsZWN0aW9u
KCktPnNldFNlbGVjdGlvbihzZWxlY3Rpb24pOworICAgICAgICB9CisKKyAgICAgICAgZm91bmQg
PSBmcmFtZSgpLT5maW5kU3RyaW5nKAorICAgICAgICAgICAgc2VhcmNoVGV4dCwgb3B0aW9ucy5m
b3J3YXJkLCBvcHRpb25zLm1hdGNoQ2FzZSwgd3JhcFdpdGhpbkZyYW1lLAorICAgICAgICAgICAg
c3RhcnRJblNlbGVjdGlvbik7CisgICAgICAgIGlmIChmb3VuZCkgeworICAgICAgICAgICAgLy8g
U3RvcmUgd2hpY2ggZnJhbWUgd2FzIGFjdGl2ZS4gVGhpcyB3aWxsIGNvbWUgaW4gaGFuZHkgbGF0
ZXIgd2hlbiB3ZQorICAgICAgICAgICAgLy8gY2hhbmdlIHRoZSBhY3RpdmUgbWF0Y2ggb3JkaW5h
bCBiZWxvdy4KKyAgICAgICAgICAgIFdlYkZyYW1lSW1wbCogb2xkQWN0aXZlRnJhbWUgPSBtYWlu
RnJhbWVJbXBsLT5tX2FjdGl2ZU1hdGNoRnJhbWU7CisgICAgICAgICAgICAvLyBTZXQgdGhpcyBm
cmFtZSBhcyB0aGUgYWN0aXZlIGZyYW1lICh0aGUgb25lIHdpdGggdGhlIGFjdGl2ZSBoaWdobGln
aHQpLgorICAgICAgICAgICAgbWFpbkZyYW1lSW1wbC0+bV9hY3RpdmVNYXRjaEZyYW1lID0gdGhp
czsKKworICAgICAgICAgICAgLy8gV2UgZm91bmQgc29tZXRoaW5nLCBzbyB3ZSBjYW4gbm93IHF1
ZXJ5IHRoZSBzZWxlY3Rpb24gZm9yIGl0cyBwb3NpdGlvbi4KKyAgICAgICAgICAgIFZpc2libGVT
ZWxlY3Rpb24gbmV3U2VsZWN0aW9uKGZyYW1lKCktPnNlbGVjdGlvbigpLT5zZWxlY3Rpb24oKSk7
CisgICAgICAgICAgICBJbnRSZWN0IGN1cnJTZWxlY3Rpb25SZWN0OworCisgICAgICAgICAgICAv
LyBJZiB3ZSB0aG91Z2h0IHdlIGZvdW5kIHNvbWV0aGluZywgYnV0IGl0IGNvdWxkbid0IGJlIHNl
bGVjdGVkIChwZXJoYXBzCisgICAgICAgICAgICAvLyBiZWNhdXNlIGl0IHdhcyBtYXJrZWQgLXdl
YmtpdC11c2VyLXNlbGVjdDogbm9uZSksIHdlIGNhbid0IHNldCBpdCB0bworICAgICAgICAgICAg
Ly8gYmUgYWN0aXZlIGJ1dCB3ZSBzdGlsbCBjb250aW51ZSBzZWFyY2hpbmcuIFRoaXMgbWF0Y2hl
cyBTYWZhcmkncworICAgICAgICAgICAgLy8gYmVoYXZpb3IsIGluY2x1ZGluZyBzb21lIG9kZGl0
aWVzIHdoZW4gc2VsZWN0YWJsZSBhbmQgdW4tc2VsZWN0YWJsZSB0ZXh0CisgICAgICAgICAgICAv
LyBhcmUgbWl4ZWQgb24gYSBwYWdlOiBzZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5MTI3LgorICAgICAgICAgICAgaWYgKG5ld1NlbGVjdGlvbi5pc05vbmUoKSB8
fCAobmV3U2VsZWN0aW9uLnN0YXJ0KCkgPT0gbmV3U2VsZWN0aW9uLmVuZCgpKSkKKyAgICAgICAg
ICAgICAgICBtX2FjdGl2ZU1hdGNoID0gMDsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAg
ICAgICAgIG1fYWN0aXZlTWF0Y2ggPSBuZXdTZWxlY3Rpb24udG9Ob3JtYWxpemVkUmFuZ2UoKTsK
KyAgICAgICAgICAgICAgICBjdXJyU2VsZWN0aW9uUmVjdCA9IG1fYWN0aXZlTWF0Y2gtPmJvdW5k
aW5nQm94KCk7CisgICAgICAgICAgICAgICAgc2V0TWFya2VyQWN0aXZlKG1fYWN0aXZlTWF0Y2gu
Z2V0KCksIHRydWUpOyAvLyBBY3RpdmUuCisgICAgICAgICAgICAgICAgLy8gV2ViS2l0IGRyYXdz
IHRoZSBoaWdobGlnaHRpbmcgZm9yIGFsbCBtYXRjaGVzLgorICAgICAgICAgICAgICAgIGV4ZWN1
dGVDb21tYW5kKFdlYlN0cmluZzo6ZnJvbVVURjgoIlVuc2VsZWN0IikpOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBpZiAoIW9wdGlvbnMuZmluZE5leHQgfHwgYWN0aXZlU2VsZWN0aW9u
KSB7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBlaXRoZXIgYSBGaW5kIG9wZXJhdGlvbiBv
ciBhIEZpbmQtbmV4dCBmcm9tIGEgbmV3IHN0YXJ0IHBvaW50CisgICAgICAgICAgICAgICAgLy8g
ZHVlIHRvIGEgc2VsZWN0aW9uLCBzbyB3ZSBzZXQgdGhlIGZsYWcgdG8gYXNrIHRoZSBzY29waW5n
IGVmZm9ydAorICAgICAgICAgICAgICAgIC8vIHRvIGZpbmQgdGhlIGFjdGl2ZSByZWN0IGZvciB1
cyBzbyB3ZSBjYW4gdXBkYXRlIHRoZSBvcmRpbmFsIChuIG9mIG0pLgorICAgICAgICAgICAgICAg
IG1fbG9jYXRpbmdBY3RpdmVSZWN0ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgICAgaWYgKG9sZEFjdGl2ZUZyYW1lICE9IHRoaXMpIHsKKyAgICAgICAgICAgICAg
ICAgICAgLy8gSWYgdGhlIGFjdGl2ZSBmcmFtZSBoYXMgY2hhbmdlZCBpdCBtZWFucyB0aGF0IHdl
IGhhdmUgYSBtdWx0aS1mcmFtZQorICAgICAgICAgICAgICAgICAgICAvLyBwYWdlIGFuZCB3ZSBq
dXN0IHN3aXRjaCB0byBzZWFyY2hpbmcgaW4gYSBuZXcgZnJhbWUuIFRoZW4gd2UganVzdAorICAg
ICAgICAgICAgICAgICAgICAvLyB3YW50IHRvIHJlc2V0IHRoZSBpbmRleC4KKyAgICAgICAgICAg
ICAgICAgICAgaWYgKG9wdGlvbnMuZm9yd2FyZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1f
YWN0aXZlTWF0Y2hJbmRleCA9IDA7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG1fYWN0aXZlTWF0Y2hJbmRleCA9IG1fbGFzdE1hdGNoQ291bnQgLSAx
OworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFdlIGFy
ZSBzdGlsbCB0aGUgYWN0aXZlIGZyYW1lLCBzbyBpbmNyZW1lbnQgKG9yIGRlY3JlbWVudCkgdGhl
CisgICAgICAgICAgICAgICAgICAgIC8vIHxtX2FjdGl2ZU1hdGNoSW5kZXh8LCB3cmFwcGluZyBp
ZiBuZWVkZWQgKG9uIHNpbmdsZSBmcmFtZSBwYWdlcykuCisgICAgICAgICAgICAgICAgICAgIG9w
dGlvbnMuZm9yd2FyZCA/ICsrbV9hY3RpdmVNYXRjaEluZGV4IDogLS1tX2FjdGl2ZU1hdGNoSW5k
ZXg7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX2FjdGl2ZU1hdGNoSW5kZXggKyAxID4gbV9s
YXN0TWF0Y2hDb3VudCkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fYWN0aXZlTWF0Y2hJbmRl
eCA9IDA7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX2FjdGl2ZU1hdGNoSW5kZXggPT0gLTEp
CisgICAgICAgICAgICAgICAgICAgICAgICBtX2FjdGl2ZU1hdGNoSW5kZXggPSBtX2xhc3RNYXRj
aENvdW50IC0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHNlbGVj
dGlvblJlY3QpIHsKKyAgICAgICAgICAgICAgICAgICAgV2ViUmVjdCByZWN0ID0gZnJhbWUoKS0+
dmlldygpLT5jb252ZXJ0VG9Db250YWluaW5nV2luZG93KGN1cnJTZWxlY3Rpb25SZWN0KTsKKyAg
ICAgICAgICAgICAgICAgICAgcmVjdC54IC09IGZyYW1lVmlldygpLT5zY3JvbGxPZmZzZXQoKS53
aWR0aCgpOworICAgICAgICAgICAgICAgICAgICByZWN0LnkgLT0gZnJhbWVWaWV3KCktPnNjcm9s
bE9mZnNldCgpLmhlaWdodCgpOworICAgICAgICAgICAgICAgICAgICAqc2VsZWN0aW9uUmVjdCA9
IHJlY3Q7CisKKyAgICAgICAgICAgICAgICAgICAgcmVwb3J0RmluZEluUGFnZVNlbGVjdGlvbihy
ZWN0LCBtX2FjdGl2ZU1hdGNoSW5kZXggKyAxLCBpZGVudGlmaWVyKTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBOb3Ro
aW5nIHdhcyBmb3VuZCBpbiB0aGlzIGZyYW1lLgorICAgICAgICAgICAgbV9hY3RpdmVNYXRjaCA9
IDA7CisKKyAgICAgICAgICAgIC8vIEVyYXNlIGFsbCBwcmV2aW91cyB0aWNrbWFya3MgYW5kIGhp
Z2hsaWdodGluZy4KKyAgICAgICAgICAgIGludmFsaWRhdGVBcmVhKEludmFsaWRhdGVBbGwpOwor
ICAgICAgICB9CiAgICAgfQogCiAgICAgcmV0dXJuIGZvdW5kOwpAQCAtMTM2OCwxNiArMTM5Mywy
MiBAQCBib29sIFdlYkZyYW1lSW1wbDo6ZmluZChpbnQgaWRlbnRpZmllciwKIAogdm9pZCBXZWJG
cmFtZUltcGw6OnN0b3BGaW5kaW5nKGJvb2wgY2xlYXJTZWxlY3Rpb24pCiB7Ci0gICAgaWYgKCFj
bGVhclNlbGVjdGlvbikKLSAgICAgICAgc2V0RmluZEVuZHN0YXRlRm9jdXNBbmRTZWxlY3Rpb24o
KTsKLSAgICBjYW5jZWxQZW5kaW5nU2NvcGluZ0VmZm9ydCgpOworICAgIFdlYlBsdWdpbkNvbnRh
aW5lckltcGwqIHBsdWdpbkNvbnRhaW5lciA9IHBsdWdpbkNvbnRhaW5lckZyb21GcmFtZShmcmFt
ZSgpKTsKKyAgICBpZiAocGx1Z2luQ29udGFpbmVyICYmIHBsdWdpbkNvbnRhaW5lci0+c3VwcG9y
dHNGaW5kKCkgJiYgIXBhcmVudCgpKQorICAgICAgICBwbHVnaW5Db250YWluZXItPnN0b3BGaW5k
KCk7CisgICAgZWxzZSB7CisgICAgICAgIGlmICghY2xlYXJTZWxlY3Rpb24pCisgICAgICAgICAg
ICBzZXRGaW5kRW5kc3RhdGVGb2N1c0FuZFNlbGVjdGlvbigpOwogCi0gICAgLy8gUmVtb3ZlIGFs
bCBtYXJrZXJzIGZvciBtYXRjaGVzIGZvdW5kIGFuZCB0dXJuIG9mZiB0aGUgaGlnaGxpZ2h0aW5n
LgotICAgIGZyYW1lKCktPmRvY3VtZW50KCktPnJlbW92ZU1hcmtlcnMoRG9jdW1lbnRNYXJrZXI6
OlRleHRNYXRjaCk7Ci0gICAgZnJhbWUoKS0+c2V0TWFya2VkVGV4dE1hdGNoZXNBcmVIaWdobGln
aHRlZChmYWxzZSk7CisgICAgICAgIC8vIFJlbW92ZSBhbGwgbWFya2VycyBmb3IgbWF0Y2hlcyBm
b3VuZCBhbmQgdHVybiBvZmYgdGhlIGhpZ2hsaWdodGluZy4KKyAgICAgICAgZnJhbWUoKS0+ZG9j
dW1lbnQoKS0+cmVtb3ZlTWFya2VycyhEb2N1bWVudE1hcmtlcjo6VGV4dE1hdGNoKTsKKyAgICAg
ICAgZnJhbWUoKS0+c2V0TWFya2VkVGV4dE1hdGNoZXNBcmVIaWdobGlnaHRlZChmYWxzZSk7CisK
KyAgICAgICAgLy8gTGV0IHRoZSBmcmFtZSBrbm93IHRoYXQgd2UgZG9uJ3Qgd2FudCB0aWNrbWFy
a3Mgb3IgaGlnaGxpZ2h0aW5nIGFueW1vcmUuCisgICAgICAgIGludmFsaWRhdGVBcmVhKEludmFs
aWRhdGVBbGwpOworICAgIH0KIAotICAgIC8vIExldCB0aGUgZnJhbWUga25vdyB0aGF0IHdlIGRv
bid0IHdhbnQgdGlja21hcmtzIG9yIGhpZ2hsaWdodGluZyBhbnltb3JlLgotICAgIGludmFsaWRh
dGVBcmVhKEludmFsaWRhdGVBbGwpOworICAgIGNhbmNlbFBlbmRpbmdTY29waW5nRWZmb3J0KCk7
CiB9CiAKIHZvaWQgV2ViRnJhbWVJbXBsOjpzY29wZVN0cmluZ01hdGNoZXMoaW50IGlkZW50aWZp
ZXIsCkBAIC0xNDE0LDYgKzE0NDUsMTEgQEAgdm9pZCBXZWJGcmFtZUltcGw6OnNjb3BlU3RyaW5n
TWF0Y2hlcyhpbgogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgV2ViUGx1Z2luQ29udGFp
bmVySW1wbCogcGx1Z2luQ29udGFpbmVyID0gcGx1Z2luQ29udGFpbmVyRnJvbUZyYW1lKGZyYW1l
KCkpOworICAgIGlmIChwbHVnaW5Db250YWluZXIgJiYgKCFwbHVnaW5Db250YWluZXItPnN1cHBv
cnRzRmluZCgpIHx8IHBhcmVudCgpKSkKKyAgICAgICAgcGx1Z2luQ29udGFpbmVyID0gMDsKKwor
ICAgIC8vIFVudXNlZCB3aGVuIHNlYXJjaGluZyB0aHJvdWdoIGEgcGx1Z2luLgogICAgIFJlZlB0
cjxSYW5nZT4gc2VhcmNoUmFuZ2UocmFuZ2VPZkNvbnRlbnRzKGZyYW1lKCktPmRvY3VtZW50KCkp
KTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwLCBlYzIgPSAwOwpAQCAtMTQzOSw3OSArMTQ3
NSw5NiBAQCB2b2lkIFdlYkZyYW1lSW1wbDo6c2NvcGVTdHJpbmdNYXRjaGVzKGluCiAgICAgYm9v
bCB0aW1lZE91dCA9IGZhbHNlOwogICAgIGRvdWJsZSBzdGFydFRpbWUgPSBjdXJyZW50VGltZSgp
OwogICAgIGRvIHsKLSAgICAgICAgLy8gRmluZCBuZXh0IG9jY3VycmVuY2Ugb2YgdGhlIHNlYXJj
aCBzdHJpbmcuCi0gICAgICAgIC8vIEZJWE1FOiAoaHR0cDovL2IvMTA4ODI0NSkgVGhpcyBXZWJL
aXQgb3BlcmF0aW9uIG1heSBydW4gZm9yIGxvbmdlcgotICAgICAgICAvLyB0aGFuIHRoZSB0aW1l
b3V0IHZhbHVlLCBhbmQgaXMgbm90IGludGVycnVwdGlibGUgYXMgaXQgaXMgY3VycmVudGx5Ci0g
ICAgICAgIC8vIHdyaXR0ZW4uIFdlIG1heSBuZWVkIHRvIHJld3JpdGUgaXQgd2l0aCBpbnRlcnJ1
cHRpYmlsaXR5IGluIG1pbmQsIG9yCi0gICAgICAgIC8vIGZpbmQgYW4gYWx0ZXJuYXRpdmUuCi0g
ICAgICAgIFJlZlB0cjxSYW5nZT4gcmVzdWx0UmFuZ2UoZmluZFBsYWluVGV4dChzZWFyY2hSYW5n
ZS5nZXQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlYXJjaFRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0cnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3B0aW9ucy5tYXRjaENhc2UpKTsKLSAgICAgICAgaWYgKHJlc3VsdFJhbmdlLT5jb2xsYXBz
ZWQoZWMpKSB7Ci0gICAgICAgICAgICBpZiAoIXJlc3VsdFJhbmdlLT5zdGFydENvbnRhaW5lcigp
LT5pc0luU2hhZG93VHJlZSgpKQorICAgICAgICBpZiAocGx1Z2luQ29udGFpbmVyKSB7CisgICAg
ICAgICAgLy8gVGhlIGZpcnN0IHRpbWUgd2UgY29tZSBpbiBoZXJlLCBjYW5jZWxQZW5kaW5nU2Nv
cGluZ0VmZm9ydCB3YXMgY2FsbGVkCisgICAgICAgICAgLy8gcHJldmlvdXNseSBzbyB3ZSBuZWVk
IHRvIHNldCBpdCB0byB0aGUgZmlyc3QgZmluZCByZXN1bHQuCisgICAgICAgICAgaWYgKG1fYWN0
aXZlTWF0Y2hJbmRleCA9PSAtMSkgeworICAgICAgICAgICAgICAvLyBXZSBrbm93IHdlIGFscmVh
ZHkgZm91bmQgb25lIG1hdGNoIG9yIGVsc2Ugd2Ugd291bGRuJ3QgYmUgaGVyZS4KKyAgICAgICAg
ICAgICAgbV9hY3RpdmVNYXRjaEluZGV4ID0gMDsKKyAgICAgICAgICAgICAgbWF0Y2hDb3VudCsr
OworICAgICAgICAgICAgICByZXBvcnRGaW5kSW5QYWdlU2VsZWN0aW9uKFdlYlJlY3QoKSwgbV9h
Y3RpdmVNYXRjaEluZGV4ICsgMSwgaWRlbnRpZmllcik7CisgICAgICAgICAgfQorCisgICAgICAg
ICAgaWYgKHBsdWdpbkNvbnRhaW5lci0+ZmluZChzZWFyY2hUZXh0LCBvcHRpb25zLmZvcndhcmQs
IG9wdGlvbnMubWF0Y2hDYXNlKSkKKyAgICAgICAgICAgICAgbWF0Y2hDb3VudCsrOworICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAvLyBGaW5kIG5leHQgb2NjdXJyZW5jZSBvZiB0aGUgc2VhcmNoIHN0cmluZy4KKyAgICAg
ICAgICAgIC8vIEZJWE1FOiAoaHR0cDovL2IvMTA4ODI0NSkgVGhpcyBXZWJLaXQgb3BlcmF0aW9u
IG1heSBydW4gZm9yIGxvbmdlcgorICAgICAgICAgICAgLy8gdGhhbiB0aGUgdGltZW91dCB2YWx1
ZSwgYW5kIGlzIG5vdCBpbnRlcnJ1cHRpYmxlIGFzIGl0IGlzIGN1cnJlbnRseQorICAgICAgICAg
ICAgLy8gd3JpdHRlbi4gV2UgbWF5IG5lZWQgdG8gcmV3cml0ZSBpdCB3aXRoIGludGVycnVwdGli
aWxpdHkgaW4gbWluZCwgb3IKKyAgICAgICAgICAgIC8vIGZpbmQgYW4gYWx0ZXJuYXRpdmUuCisg
ICAgICAgICAgICBSZWZQdHI8UmFuZ2U+IHJlc3VsdFJhbmdlKGZpbmRQbGFpblRleHQoc2VhcmNo
UmFuZ2UuZ2V0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2VhcmNoVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG9wdGlvbnMubWF0Y2hDYXNlKSk7CisgICAgICAgICAgICBpZiAo
cmVzdWx0UmFuZ2UtPmNvbGxhcHNlZChlYykpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXJlc3Vs
dFJhbmdlLT5zdGFydENvbnRhaW5lcigpLT5pc0luU2hhZG93VHJlZSgpKQorICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIHNlYXJjaFJhbmdlID0gcmFuZ2VPZkNv
bnRlbnRzKGZyYW1lKCktPmRvY3VtZW50KCkpOworICAgICAgICAgICAgICAgIHNlYXJjaFJhbmdl
LT5zZXRTdGFydEFmdGVyKAorICAgICAgICAgICAgICAgICAgICByZXN1bHRSYW5nZS0+c3RhcnRD
b250YWluZXIoKS0+c2hhZG93QW5jZXN0b3JOb2RlKCksIGVjKTsKKyAgICAgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQSBub24tY29sbGFwc2Vk
IHJlc3VsdCByYW5nZSBjYW4gaW4gc29tZSBmdW5reSB3aGl0ZXNwYWNlIGNhc2VzIHN0aWxsIG5v
dAorICAgICAgICAgICAgLy8gYWR2YW5jZSB0aGUgcmFuZ2UncyBzdGFydCBwb3NpdGlvbiAoNDUw
OTMyOCkuIEJyZWFrIHRvIGF2b2lkIGluZmluaXRlCisgICAgICAgICAgICAvLyBsb29wLiAoVGhp
cyBmdW5jdGlvbiBpcyBiYXNlZCBvbiB0aGUgaW1wbGVtZW50YXRpb24gb2YKKyAgICAgICAgICAg
IC8vIEZyYW1lOjptYXJrQWxsTWF0Y2hlc0ZvclRleHQsIHdoaWNoIGlzIHdoZXJlIHRoaXMgc2Fm
ZWd1YXJkIGNvbWVzIGZyb20pLgorICAgICAgICAgICAgVmlzaWJsZVBvc2l0aW9uIG5ld1N0YXJ0
ID0gZW5kVmlzaWJsZVBvc2l0aW9uKHJlc3VsdFJhbmdlLmdldCgpLCBET1dOU1RSRUFNKTsKKyAg
ICAgICAgICAgIGlmIChuZXdTdGFydCA9PSBzdGFydFZpc2libGVQb3NpdGlvbihzZWFyY2hSYW5n
ZS5nZXQoKSwgRE9XTlNUUkVBTSkpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAg
ICAgIHNlYXJjaFJhbmdlID0gcmFuZ2VPZkNvbnRlbnRzKGZyYW1lKCktPmRvY3VtZW50KCkpOwot
ICAgICAgICAgICAgc2VhcmNoUmFuZ2UtPnNldFN0YXJ0QWZ0ZXIoCi0gICAgICAgICAgICAgICAg
cmVzdWx0UmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCktPnNoYWRvd0FuY2VzdG9yTm9kZSgpLCBlYyk7
Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIEEgbm9uLWNv
bGxhcHNlZCByZXN1bHQgcmFuZ2UgY2FuIGluIHNvbWUgZnVua3kgd2hpdGVzcGFjZSBjYXNlcyBz
dGlsbCBub3QKLSAgICAgICAgLy8gYWR2YW5jZSB0aGUgcmFuZ2UncyBzdGFydCBwb3NpdGlvbiAo
NDUwOTMyOCkuIEJyZWFrIHRvIGF2b2lkIGluZmluaXRlCi0gICAgICAgIC8vIGxvb3AuIChUaGlz
IGZ1bmN0aW9uIGlzIGJhc2VkIG9uIHRoZSBpbXBsZW1lbnRhdGlvbiBvZgotICAgICAgICAvLyBG
cmFtZTo6bWFya0FsbE1hdGNoZXNGb3JUZXh0LCB3aGljaCBpcyB3aGVyZSB0aGlzIHNhZmVndWFy
ZCBjb21lcyBmcm9tKS4KLSAgICAgICAgVmlzaWJsZVBvc2l0aW9uIG5ld1N0YXJ0ID0gZW5kVmlz
aWJsZVBvc2l0aW9uKHJlc3VsdFJhbmdlLmdldCgpLCBET1dOU1RSRUFNKTsKLSAgICAgICAgaWYg
KG5ld1N0YXJ0ID09IHN0YXJ0VmlzaWJsZVBvc2l0aW9uKHNlYXJjaFJhbmdlLmdldCgpLCBET1dO
U1RSRUFNKSkKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIC8vIE9ubHkgdHJlYXQgdGhl
IHJlc3VsdCBhcyBhIG1hdGNoIGlmIGl0IGlzIHZpc2libGUKLSAgICAgICAgaWYgKGZyYW1lKCkt
PmVkaXRvcigpLT5pbnNpZGVWaXNpYmxlQXJlYShyZXN1bHRSYW5nZS5nZXQoKSkpIHsKLSAgICAg
ICAgICAgICsrbWF0Y2hDb3VudDsKLQotICAgICAgICAgICAgc2V0U3RhcnQoc2VhcmNoUmFuZ2Uu
Z2V0KCksIG5ld1N0YXJ0KTsKLSAgICAgICAgICAgIE5vZGUqIHNoYWRvd1RyZWVSb290ID0gc2Vh
cmNoUmFuZ2UtPnNoYWRvd1RyZWVSb290Tm9kZSgpOwotICAgICAgICAgICAgaWYgKHNlYXJjaFJh
bmdlLT5jb2xsYXBzZWQoZWMpICYmIHNoYWRvd1RyZWVSb290KQotICAgICAgICAgICAgICAgIHNl
YXJjaFJhbmdlLT5zZXRFbmQoc2hhZG93VHJlZVJvb3QsIHNoYWRvd1RyZWVSb290LT5jaGlsZE5v
ZGVDb3VudCgpLCBlYyk7Ci0KLSAgICAgICAgICAgIC8vIENhdGNoIGEgc3BlY2lhbCBjYXNlIHdo
ZXJlIEZpbmQgZm91bmQgc29tZXRoaW5nIGJ1dCBkb2Vzbid0IGtub3cgd2hhdAotICAgICAgICAg
ICAgLy8gdGhlIGJvdW5kaW5nIGJveCBmb3IgaXQgaXMuIEluIHRoaXMgY2FzZSB3ZSBzZXQgdGhl
IGZpcnN0IG1hdGNoIHdlIGZpbmQKLSAgICAgICAgICAgIC8vIGFzIHRoZSBhY3RpdmUgcmVjdC4K
LSAgICAgICAgICAgIEludFJlY3QgcmVzdWx0Qm91bmRzID0gcmVzdWx0UmFuZ2UtPmJvdW5kaW5n
Qm94KCk7Ci0gICAgICAgICAgICBJbnRSZWN0IGFjdGl2ZVNlbGVjdGlvblJlY3Q7Ci0gICAgICAg
ICAgICBpZiAobV9sb2NhdGluZ0FjdGl2ZVJlY3QpIHsKLSAgICAgICAgICAgICAgICBhY3RpdmVT
ZWxlY3Rpb25SZWN0ID0gbV9hY3RpdmVNYXRjaC5nZXQoKSA/Ci0gICAgICAgICAgICAgICAgICAg
IG1fYWN0aXZlTWF0Y2gtPmJvdW5kaW5nQm94KCkgOiByZXN1bHRCb3VuZHM7Ci0gICAgICAgICAg
ICB9CisgICAgICAgICAgICAvLyBPbmx5IHRyZWF0IHRoZSByZXN1bHQgYXMgYSBtYXRjaCBpZiBp
dCBpcyB2aXNpYmxlCisgICAgICAgICAgICBpZiAoZnJhbWUoKS0+ZWRpdG9yKCktPmluc2lkZVZp
c2libGVBcmVhKHJlc3VsdFJhbmdlLmdldCgpKSkgeworICAgICAgICAgICAgICAgICsrbWF0Y2hD
b3VudDsKKworICAgICAgICAgICAgICAgIHNldFN0YXJ0KHNlYXJjaFJhbmdlLmdldCgpLCBuZXdT
dGFydCk7CisgICAgICAgICAgICAgICAgTm9kZSogc2hhZG93VHJlZVJvb3QgPSBzZWFyY2hSYW5n
ZS0+c2hhZG93VHJlZVJvb3ROb2RlKCk7CisgICAgICAgICAgICAgICAgaWYgKHNlYXJjaFJhbmdl
LT5jb2xsYXBzZWQoZWMpICYmIHNoYWRvd1RyZWVSb290KQorICAgICAgICAgICAgICAgICAgICBz
ZWFyY2hSYW5nZS0+c2V0RW5kKHNoYWRvd1RyZWVSb290LCBzaGFkb3dUcmVlUm9vdC0+Y2hpbGRO
b2RlQ291bnQoKSwgZWMpOworCisgICAgICAgICAgICAgICAgLy8gQ2F0Y2ggYSBzcGVjaWFsIGNh
c2Ugd2hlcmUgRmluZCBmb3VuZCBzb21ldGhpbmcgYnV0IGRvZXNuJ3Qga25vdyB3aGF0CisgICAg
ICAgICAgICAgICAgLy8gdGhlIGJvdW5kaW5nIGJveCBmb3IgaXQgaXMuIEluIHRoaXMgY2FzZSB3
ZSBzZXQgdGhlIGZpcnN0IG1hdGNoIHdlIGZpbmQKKyAgICAgICAgICAgICAgICAvLyBhcyB0aGUg
YWN0aXZlIHJlY3QuCisgICAgICAgICAgICAgICAgSW50UmVjdCByZXN1bHRCb3VuZHMgPSByZXN1
bHRSYW5nZS0+Ym91bmRpbmdCb3goKTsKKyAgICAgICAgICAgICAgICBJbnRSZWN0IGFjdGl2ZVNl
bGVjdGlvblJlY3Q7CisgICAgICAgICAgICAgICAgaWYgKG1fbG9jYXRpbmdBY3RpdmVSZWN0KSB7
CisgICAgICAgICAgICAgICAgICAgIGFjdGl2ZVNlbGVjdGlvblJlY3QgPSBtX2FjdGl2ZU1hdGNo
LmdldCgpID8KKyAgICAgICAgICAgICAgICAgICAgICAgIG1fYWN0aXZlTWF0Y2gtPmJvdW5kaW5n
Qm94KCkgOiByZXN1bHRCb3VuZHM7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
ICAgLy8gSWYgdGhlIEZpbmQgZnVuY3Rpb24gZm91bmQgYSBtYXRjaCBpdCB3aWxsIGhhdmUgc3Rv
cmVkIHdoZXJlIHRoZQorICAgICAgICAgICAgICAgIC8vIG1hdGNoIHdhcyBmb3VuZCBpbiBtX2Fj
dGl2ZVNlbGVjdGlvblJlY3Qgb24gdGhlIGN1cnJlbnQgZnJhbWUuIElmIHdlCisgICAgICAgICAg
ICAgICAgLy8gZmluZCB0aGlzIHJlY3QgZHVyaW5nIHNjb3BpbmcgaXQgbWVhbnMgd2UgaGF2ZSBm
b3VuZCB0aGUgYWN0aXZlCisgICAgICAgICAgICAgICAgLy8gdGlja21hcmsuCisgICAgICAgICAg
ICAgICAgYm9vbCBmb3VuZEFjdGl2ZU1hdGNoID0gZmFsc2U7CisgICAgICAgICAgICAgICAgaWYg
KG1fbG9jYXRpbmdBY3RpdmVSZWN0ICYmIChhY3RpdmVTZWxlY3Rpb25SZWN0ID09IHJlc3VsdEJv
dW5kcykpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSBmb3VuZCB0aGUgYWN0aXZl
IHRpY2ttYXJrIGZyYW1lLgorICAgICAgICAgICAgICAgICAgICBtYWluRnJhbWVJbXBsLT5tX2Fj
dGl2ZU1hdGNoRnJhbWUgPSB0aGlzOworICAgICAgICAgICAgICAgICAgICBmb3VuZEFjdGl2ZU1h
dGNoID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgLy8gV2UgYWxzbyBrbm93IHdoaWNoIHRp
Y2ttYXJrIGlzIGFjdGl2ZSBub3cuCisgICAgICAgICAgICAgICAgICAgIG1fYWN0aXZlTWF0Y2hJ
bmRleCA9IG1hdGNoQ291bnQgLSAxOworICAgICAgICAgICAgICAgICAgICAvLyBUbyBzdG9wIGxv
b2tpbmcgZm9yIHRoZSBhY3RpdmUgdGlja21hcmssIHdlIHNldCB0aGlzIGZsYWcuCisgICAgICAg
ICAgICAgICAgICAgIG1fbG9jYXRpbmdBY3RpdmVSZWN0ID0gZmFsc2U7CisKKyAgICAgICAgICAg
ICAgICAgICAgLy8gTm90aWZ5IGJyb3dzZXIgb2YgbmV3IGxvY2F0aW9uIGZvciB0aGUgc2VsZWN0
ZWQgcmVjdGFuZ2xlLgorICAgICAgICAgICAgICAgICAgICByZXN1bHRCb3VuZHMubW92ZSgtZnJh
bWVWaWV3KCktPnNjcm9sbE9mZnNldCgpLndpZHRoKCksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC1mcmFtZVZpZXcoKS0+c2Nyb2xsT2Zmc2V0KCkuaGVpZ2h0KCkpOwor
ICAgICAgICAgICAgICAgICAgICByZXBvcnRGaW5kSW5QYWdlU2VsZWN0aW9uKAorICAgICAgICAg
ICAgICAgICAgICAgICAgZnJhbWUoKS0+dmlldygpLT5jb252ZXJ0VG9Db250YWluaW5nV2luZG93
KHJlc3VsdEJvdW5kcyksCisgICAgICAgICAgICAgICAgICAgICAgICBtX2FjdGl2ZU1hdGNoSW5k
ZXggKyAxLAorICAgICAgICAgICAgICAgICAgICAgICAgaWRlbnRpZmllcik7CisgICAgICAgICAg
ICAgICAgfQogCi0gICAgICAgICAgICAvLyBJZiB0aGUgRmluZCBmdW5jdGlvbiBmb3VuZCBhIG1h
dGNoIGl0IHdpbGwgaGF2ZSBzdG9yZWQgd2hlcmUgdGhlCi0gICAgICAgICAgICAvLyBtYXRjaCB3
YXMgZm91bmQgaW4gbV9hY3RpdmVTZWxlY3Rpb25SZWN0IG9uIHRoZSBjdXJyZW50IGZyYW1lLiBJ
ZiB3ZQotICAgICAgICAgICAgLy8gZmluZCB0aGlzIHJlY3QgZHVyaW5nIHNjb3BpbmcgaXQgbWVh
bnMgd2UgaGF2ZSBmb3VuZCB0aGUgYWN0aXZlCi0gICAgICAgICAgICAvLyB0aWNrbWFyay4KLSAg
ICAgICAgICAgIGJvb2wgZm91bmRBY3RpdmVNYXRjaCA9IGZhbHNlOwotICAgICAgICAgICAgaWYg
KG1fbG9jYXRpbmdBY3RpdmVSZWN0ICYmIChhY3RpdmVTZWxlY3Rpb25SZWN0ID09IHJlc3VsdEJv
dW5kcykpIHsKLSAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIGZvdW5kIHRoZSBhY3RpdmUgdGlj
a21hcmsgZnJhbWUuCi0gICAgICAgICAgICAgICAgbWFpbkZyYW1lSW1wbC0+bV9hY3RpdmVNYXRj
aEZyYW1lID0gdGhpczsKLSAgICAgICAgICAgICAgICBmb3VuZEFjdGl2ZU1hdGNoID0gdHJ1ZTsK
LSAgICAgICAgICAgICAgICAvLyBXZSBhbHNvIGtub3cgd2hpY2ggdGlja21hcmsgaXMgYWN0aXZl
IG5vdy4KLSAgICAgICAgICAgICAgICBtX2FjdGl2ZU1hdGNoSW5kZXggPSBtYXRjaENvdW50IC0g
MTsKLSAgICAgICAgICAgICAgICAvLyBUbyBzdG9wIGxvb2tpbmcgZm9yIHRoZSBhY3RpdmUgdGlj
a21hcmssIHdlIHNldCB0aGlzIGZsYWcuCi0gICAgICAgICAgICAgICAgbV9sb2NhdGluZ0FjdGl2
ZVJlY3QgPSBmYWxzZTsKLQotICAgICAgICAgICAgICAgIC8vIE5vdGlmeSBicm93c2VyIG9mIG5l
dyBsb2NhdGlvbiBmb3IgdGhlIHNlbGVjdGVkIHJlY3RhbmdsZS4KLSAgICAgICAgICAgICAgICBy
ZXN1bHRCb3VuZHMubW92ZSgtZnJhbWVWaWV3KCktPnNjcm9sbE9mZnNldCgpLndpZHRoKCksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLWZyYW1lVmlldygpLT5zY3JvbGxPZmZz
ZXQoKS5oZWlnaHQoKSk7Ci0gICAgICAgICAgICAgICAgcmVwb3J0RmluZEluUGFnZVNlbGVjdGlv
bigKLSAgICAgICAgICAgICAgICAgICAgZnJhbWUoKS0+dmlldygpLT5jb252ZXJ0VG9Db250YWlu
aW5nV2luZG93KHJlc3VsdEJvdW5kcyksCi0gICAgICAgICAgICAgICAgICAgIG1fYWN0aXZlTWF0
Y2hJbmRleCArIDEsCi0gICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXIpOworICAgICAgICAg
ICAgICAgIGFkZE1hcmtlcihyZXN1bHRSYW5nZS5nZXQoKSwgZm91bmRBY3RpdmVNYXRjaCk7CiAg
ICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGFkZE1hcmtlcihyZXN1bHRSYW5nZS5nZXQoKSwg
Zm91bmRBY3RpdmVNYXRjaCk7CisgICAgICAgICAgICBtX3Jlc3VtZVNjb3BpbmdGcm9tUmFuZ2Ug
PSByZXN1bHRSYW5nZTsKICAgICAgICAgfQogCi0gICAgICAgIG1fcmVzdW1lU2NvcGluZ0Zyb21S
YW5nZSA9IHJlc3VsdFJhbmdlOwogICAgICAgICB0aW1lZE91dCA9IChjdXJyZW50VGltZSgpIC0g
c3RhcnRUaW1lKSA+PSBtYXhTY29waW5nRHVyYXRpb247CiAgICAgfSB3aGlsZSAoIXRpbWVkT3V0
KTsKIApAQCAtMTUyMCw3ICsxNTczLDggQEAgdm9pZCBXZWJGcmFtZUltcGw6OnNjb3BlU3RyaW5n
TWF0Y2hlcyhpbgogICAgIG1fbGFzdFNlYXJjaFN0cmluZyA9IHNlYXJjaFRleHQ7CiAKICAgICBp
ZiAobWF0Y2hDb3VudCA+IDApIHsKLSAgICAgICAgZnJhbWUoKS0+c2V0TWFya2VkVGV4dE1hdGNo
ZXNBcmVIaWdobGlnaHRlZCh0cnVlKTsKKyAgICAgICAgaWYgKCFwbHVnaW5Db250YWluZXIpCisg
ICAgICAgICAgICBmcmFtZSgpLT5zZXRNYXJrZWRUZXh0TWF0Y2hlc0FyZUhpZ2hsaWdodGVkKHRy
dWUpOwogCiAgICAgICAgIG1fbGFzdE1hdGNoQ291bnQgKz0gbWF0Y2hDb3VudDsKIApAQCAtMTU1
NCw4ICsxNjA4LDEwIEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpzY29wZVN0cmluZ01hdGNoZXMoaW4K
ICAgICBpZiAoIW1haW5GcmFtZUltcGwtPm1fZnJhbWVzU2NvcGluZ0NvdW50KQogICAgICAgICBt
YWluRnJhbWVJbXBsLT5pbmNyZWFzZU1hdGNoQ291bnQoMCwgaWRlbnRpZmllcik7CiAKLSAgICAv
LyBUaGlzIGZyYW1lIGlzIGRvbmUsIHNvIHNob3cgYW55IHNjcm9sbGJhciB0aWNrbWFya3Mgd2Ug
aGF2ZW4ndCBkcmF3biB5ZXQuCi0gICAgaW52YWxpZGF0ZUFyZWEoSW52YWxpZGF0ZVNjcm9sbGJh
cik7CisgICAgaWYgKCFwbHVnaW5Db250YWluZXIpIHsKKyAgICAgICAgLy8gVGhpcyBmcmFtZSBp
cyBkb25lLCBzbyBzaG93IGFueSBzY3JvbGxiYXIgdGlja21hcmtzIHdlIGhhdmVuJ3QgZHJhd24g
eWV0LgorICAgICAgICBpbnZhbGlkYXRlQXJlYShJbnZhbGlkYXRlU2Nyb2xsYmFyKTsKKyAgICB9
CiB9CiAKIHZvaWQgV2ViRnJhbWVJbXBsOjpjYW5jZWxQZW5kaW5nU2NvcGluZ0VmZm9ydCgpCklu
ZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAJ
KHJldmlzaW9uIDU2MzIyKQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWlu
ZXJJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM5LDYgKzIzOSwyOCBAQCB2b2lkIFdlYlBs
dWdpbkNvbnRhaW5lckltcGw6OnByaW50RW5kKCkKICAgICByZXR1cm4gbV93ZWJQbHVnaW4tPnBy
aW50RW5kKCk7CiB9CiAKK2Jvb2wgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6c3VwcG9ydHNGaW5k
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV93ZWJQbHVnaW4tPnN1cHBvcnRzRmluZCgpOworfQor
Citib29sIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OmZpbmQoY29uc3QgV2ViU3RyaW5nJiBzZWFy
Y2hUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZm9yd2FyZCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGNhc2VTZW5zaXRpdmUpCit7
CisgICAgcmV0dXJuIG1fd2ViUGx1Z2luLT5maW5kKHNlYXJjaFRleHQsIGZvcndhcmQsIGNhc2VT
ZW5zaXRpdmUpOworfQorCit2b2lkIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OmdvVG9GaW5kUmVz
dWx0KGJvb2wgZm9yd2FyZCkKK3sKKyAgICBtX3dlYlBsdWdpbi0+Z29Ub0ZpbmRSZXN1bHQoZm9y
d2FyZCk7Cit9CisKK3ZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6c3RvcEZpbmQoKQorewor
ICAgIG1fd2ViUGx1Z2luLT5zdG9wRmluZCgpOworfQorCiB2b2lkIFdlYlBsdWdpbkNvbnRhaW5l
ckltcGw6OmludmFsaWRhdGUoKQogewogICAgIFdpZGdldDo6aW52YWxpZGF0ZSgpOwpJbmRleDog
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgJKHJldmlzaW9u
IDU2MzIyKQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTk5LDYgKzk5LDE4IEBAIHB1YmxpYzoKICAgICAvLyBFbmRzIHRo
ZSBwcmludCBvcGVyYXRpb24uCiAgICAgdm9pZCBwcmludEVuZCgpOwogCisgICAgLy8gSW50ZXJm
YWNlIGZvciBmaW5kaW5nIHRleHQgaW4gdGhlIHBsdWdpbi4KKyAgICAvLyBSZXR1cm5zIHRydWUg
aWZmIHRoZSBwbHVnaW4gc3VwcG9ydHMgZmluZGluZy4KKyAgICBib29sIHN1cHBvcnRzRmluZCgp
IGNvbnN0OworICAgIC8vIFN0YXJ0cyBvciBjb250aW51ZXMgYSBwcmV2aW91c2x5IHN0YXJ0ZWQg
c2VhcmNoIGZvciB0aGUgZ2l2ZW4gdGV4dC4gIElmIHRoaXMKKyAgICAvLyBmdW5jdGlvbiBmaW5k
cyBvbmUgbWF0Y2gsIGl0IHJldHVybnMgdHJ1ZSBhbmQgcmVtZW1iZXJzIHRoZSBjdXJyZW50IG1h
dGNoLgorICAgIC8vIE5leHQgdGltZSBpdCdzIGNhbGxlZCBpdCdsbCByZXN1bWUgdGhlIHNlYXJj
aCBmcm9tIHRoZSBwcmV2aW91c2x5IGZvdW5kIGl0ZW0uCisgICAgYm9vbCBmaW5kKGNvbnN0IFdl
YlN0cmluZyYgc2VhcmNoVGV4dCwgYm9vbCBmb3J3YXJkLCBib29sIGNhc2VTZW5zaXRpdmUpOwor
ICAgIC8vIE5hdmlnYXRlIGZvcndhcmQvYmFja3dhcmQgdGhyb3VnaCB0aGUgc2VhcmNoIHJlc3Vs
dHMgZm91bmQgYnkgZmluZCgpLgorICAgIHZvaWQgZ29Ub0ZpbmRSZXN1bHQoYm9vbCBmb3J3YXJk
KTsKKyAgICAvLyBFbmRzIGEgc2VhcmNoIG9wZXJhdGlvbi4KKyAgICB2b2lkIHN0b3BGaW5kKCk7
CisKICAgICAvLyBSZXNvdXJjZSBsb2FkIGV2ZW50cyBmb3IgdGhlIHBsdWdpbidzIHNvdXJjZSBk
YXRhOgogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIgKmRhdGEsIGlu
dCBkYXRhTGVuZ3RoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51384</attachid>
            <date>2010-03-22 19:01:31 -0700</date>
            <delta_ts>2010-03-24 13:27:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36434-20100322190130.patch</filename>
            <type>text/plain</type>
            <size>4647</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTYzNzMpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDMtMjIgIEpvaG4g
QWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dV2ViS2l0IHNpZGUgb2YgYWRkaW5n
IHNlYXJjaCBzdXBwb3J0IHRvIFBlcHBlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM2NDM0CisKKyAgICAgICAgKiBwdWJsaWMvV2ViRG9jdW1lbnQu
aDoKKyAgICAgICAgKiBwdWJsaWMvV2ViUGx1Z2luQ29udGFpbmVyLmg6CisgICAgICAgICogc3Jj
L1dlYkRvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRG9jdW1lbnQ6OmlzUGx1Z2lu
RG9jdW1lbnQpOgorICAgICAgICAqIHNyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lckltcGw6OnBsdWdpbik6CisKIDIwMTAtMDMt
MjIgIERhcmluIEZpc2hlciAgPGRhcmluQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBOYXRlIENoYXBpbi4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRG9jdW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRvY3VtZW50LmgJ
KHJldmlzaW9uIDU2MzIyKQorKysgV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEb2N1bWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw3IEBAIGNsYXNzIFdlYkVsZW1lbnQ7CiBjbGFz
cyBXZWJGcmFtZTsKIGNsYXNzIFdlYk5vZGVDb2xsZWN0aW9uOwogY2xhc3MgV2ViTm9kZUxpc3Q7
CitjbGFzcyBXZWJQbHVnaW5Db250YWluZXI7CiBjbGFzcyBXZWJTdHJpbmc7CiBjbGFzcyBXZWJV
Ukw7CiAKQEAgLTYyLDYgKzYzLDcgQEAgcHVibGljOgogICAgIC8vIFJldHVybnMgdGhlIGZyYW1l
IHRoZSBkb2N1bWVudCBiZWxvbmdzIHRvIG9yIDAgaWYgdGhlIGRvY3VtZW50IGlzIGZyYW1lbGVz
cy4KICAgICBXRUJLSVRfQVBJIFdlYkZyYW1lKiBmcmFtZSgpIGNvbnN0OwogICAgIFdFQktJVF9B
UEkgYm9vbCBpc0hUTUxEb2N1bWVudCgpIGNvbnN0OworICAgIFdFQktJVF9BUEkgYm9vbCBpc1Bs
dWdpbkRvY3VtZW50KFdlYlBsdWdpbkNvbnRhaW5lcioqKTsKICAgICBXRUJLSVRfQVBJIFdlYlVS
TCBiYXNlVVJMKCkgY29uc3Q7CiAgICAgV0VCS0lUX0FQSSBXZWJVUkwgZmlyc3RQYXJ0eUZvckNv
b2tpZXMoKSBjb25zdDsKICAgICBXRUJLSVRfQVBJIFdlYkVsZW1lbnQgZG9jdW1lbnRFbGVtZW50
KCkgY29uc3Q7CkBAIC03MCw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICBXRUJLSVRfQVBJIFdlYlN0
cmluZyB0aXRsZSgpIGNvbnN0OwogICAgIFdFQktJVF9BUEkgV2ViTm9kZUNvbGxlY3Rpb24gYWxs
KCk7CiAgICAgV0VCS0lUX0FQSSBXZWJVUkwgY29tcGxldGVVUkwoY29uc3QgV2ViU3RyaW5nJikg
Y29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBXZWJFbGVtZW50IGdldEVsZW1lbnRCeUlkKGNvbnN0IFdl
YlN0cmluZyYgaWQpIGNvbnN0OworICAgIFdFQktJVF9BUEkgV2ViRWxlbWVudCBnZXRFbGVtZW50
QnlJZChjb25zdCBXZWJTdHJpbmcmKSBjb25zdDsKICAgICBXRUJLSVRfQVBJIFdlYk5vZGVMaXN0
IGdldEVsZW1lbnRzQnlUYWdOYW1lKGNvbnN0IFdlYlN0cmluZyYpOwogICAgIFdFQktJVF9BUEkg
V2ViU3RyaW5nIGFwcGxpY2F0aW9uSUQoKSBjb25zdDsKICAgICBXRUJLSVRfQVBJIFdlYk5vZGUg
Zm9jdXNlZE5vZGUoKSBjb25zdDsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1
Z2luQ29udGFpbmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQ
bHVnaW5Db250YWluZXIuaAkocmV2aXNpb24gNTYzMjIpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlBsdWdpbkNvbnRhaW5lci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBA
IHN0cnVjdCBOUE9iamVjdDsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFdlYlBsdWdp
bjsKIGNsYXNzIFdlYlN0cmluZzsKIGNsYXNzIFdlYlVSTDsKIGNsYXNzIFdlYlVSTFJlcXVlc3Q7
CkBAIC00Miw2ICs0Myw3IEBAIHN0cnVjdCBXZWJSZWN0OwogCiBjbGFzcyBXZWJQbHVnaW5Db250
YWluZXIgewogcHVibGljOgorICAgIHZpcnR1YWwgV2ViUGx1Z2luKiBwbHVnaW4oKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGludmFs
aWRhdGVSZWN0KGNvbnN0IFdlYlJlY3QmKSA9IDA7CiAKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
RG9jdW1lbnQuY3BwCShyZXZpc2lvbiA1NjMyMikKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
RG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSwxMSArMzksMTQgQEAKICNpbmNsdWRl
ICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxIZWFkRWxlbWVudC5oIgogI2luY2x1ZGUg
Ik5vZGVMaXN0LmgiCisjaW5jbHVkZSAiUGx1Z2luRG9jdW1lbnQuaCIKIAogI2luY2x1ZGUgIldl
YkVsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJGcmFtZUltcGwuaCIKICNpbmNsdWRlICJXZWJOb2Rl
Q29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIldlYk5vZGVMaXN0LmgiCisjaW5jbHVkZSAiV2ViUGx1
Z2luQ29udGFpbmVyLmgiCisjaW5jbHVkZSAiV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oIgogI2lu
Y2x1ZGUgIldlYlVSTC5oIgogCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KQEAgLTYyLDYg
KzY1LDE3IEBAIGJvb2wgV2ViRG9jdW1lbnQ6OmlzSFRNTERvY3VtZW50KCkgY29uc3QKICAgICBy
ZXR1cm4gY29uc3RVbndyYXA8RG9jdW1lbnQ+KCktPmlzSFRNTERvY3VtZW50KCk7CiB9CiAKK2Jv
b2wgV2ViRG9jdW1lbnQ6OmlzUGx1Z2luRG9jdW1lbnQoV2ViUGx1Z2luQ29udGFpbmVyKiogcGx1
Z2luKQoreworICAgICpwbHVnaW4gPSAwOworICAgIERvY3VtZW50KiBkb2MgPSB1bndyYXA8RG9j
dW1lbnQ+KCk7CisgICAgaWYgKCFkb2MtPmlzUGx1Z2luRG9jdW1lbnQoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgKnBsdWdpbiA9IHN0YXRpY19jYXN0PFdlYlBsdWdpbkNvbnRhaW5l
ckltcGwqPihzdGF0aWNfY2FzdDxQbHVnaW5Eb2N1bWVudCo+KGRvYyktPnBsdWdpbldpZGdldCgp
KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogV2ViVVJMIFdlYkRvY3VtZW50OjpiYXNlVVJMKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gY29uc3RVbndyYXA8RG9jdW1lbnQ+KCktPmJhc2VVUkwoKTsK
SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCShy
ZXZpc2lvbiA1NjMyMikKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVy
SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1Myw2IEBAIGNsYXNzIFdoZWVsRXZlbnQ7
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBXZWJQbHVnaW47CiBjbGFzcyBXZWJQbHVn
aW5Mb2FkT2JzZXJ2ZXI7CiAKIGNsYXNzIFdlYlBsdWdpbkNvbnRhaW5lckltcGwgOiBwdWJsaWMg
V2ViQ29yZTo6V2lkZ2V0LCBwdWJsaWMgV2ViUGx1Z2luQ29udGFpbmVyIHsKQEAgLTc3LDYgKzc2
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB3aWRnZXRQb3NpdGlvbnNVcGRhdGVkKCk7
CiAKICAgICAvLyBXZWJQbHVnaW5Db250YWluZXIgbWV0aG9kcworICAgIFdlYlBsdWdpbiogcGx1
Z2luKCkgeyByZXR1cm4gbV93ZWJQbHVnaW47IH0KICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0
ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUmVjdChjb25zdCBXZWJSZWN0Jik7CiAg
ICAgdmlydHVhbCB2b2lkIHJlcG9ydEdlb21ldHJ5KCk7CkBAIC0xMDcsOSArMTA3LDYgQEAgcHVi
bGljOgogCiAgICAgTlBPYmplY3QqIHNjcmlwdGFibGVPYmplY3QoKTsKIAotICAgIC8vIFRoaXMg
Y2Fubm90IGJlIG51bGwuCi0gICAgV2ViUGx1Z2luKiBwbHVnaW4oKSB7IHJldHVybiBtX3dlYlBs
dWdpbjsgfQotCiAgICAgdm9pZCB3aWxsRGVzdHJveVBsdWdpbkxvYWRPYnNlcnZlcihXZWJQbHVn
aW5Mb2FkT2JzZXJ2ZXIqKTsKIAogcHJpdmF0ZToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51537</attachid>
            <date>2010-03-24 13:27:12 -0700</date>
            <delta_ts>2010-03-24 13:31:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36434-20100324132709.patch</filename>
            <type>text/plain</type>
            <size>10433</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTY0NTIpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTAtMDMtMjQgIEpvaG4g
QWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dV2ViS2l0IHNpZGUgb2YgYWRkaW5n
IHNlYXJjaCBzdXBwb3J0IHRvIFBlcHBlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM2NDM0CisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAg
ICAqIHB1YmxpYy9XZWJEb2N1bWVudC5oOgorICAgICAgICAqIHB1YmxpYy9XZWJOb2RlLmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk5vZGU6OnRvKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm9kZTo6
dG9Db25zdCk6CisgICAgICAgICogcHVibGljL1dlYlBsdWdpbkRvY3VtZW50Lmg6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5Eb2N1bWVudDo6V2ViUGx1Z2luRG9jdW1lbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5Eb2N1bWVudDo6b3BlcmF0b3I9KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGx1Z2luRG9jdW1lbnQ6OmFzc2lnbik6CisgICAgICAgICogc3JjL1dlYkRv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRG9jdW1lbnQ6OmlzUGx1Z2luRG9jdW1l
bnQpOgorICAgICAgICAqIHNyYy9XZWJQbHVnaW5Eb2N1bWVudC5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQbHVnaW5Eb2N1bWVudDo6cGx1Z2luKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGx1Z2luRG9jdW1lbnQ6OldlYlBsdWdpbkRvY3VtZW50KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGx1Z2luRG9jdW1lbnQ6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdp
bkRvY3VtZW50OjpvcGVyYXRvciBQYXNzUmVmUHRyPFBsdWdpbkRvY3VtZW50Pik6CisKIDIwMTAt
MDMtMjQgIEpheSBDYW1wYW4gIDxqY2FtcGFuQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gRmlzaGVyLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAJKHJldmlzaW9uIDU2NDQ5KQor
KysgV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAJKHdvcmtpbmcgY29weSkKQEAgLTE1Niw2ICsx
NTYsNyBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUGFzc3dvcmRGb3JtRGF0YS5oJywK
ICAgICAgICAgICAgICAgICAncHVibGljL1dlYlBsdWdpbi5oJywKICAgICAgICAgICAgICAgICAn
cHVibGljL1dlYlBsdWdpbkNvbnRhaW5lci5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL1dl
YlBsdWdpbkRvY3VtZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUGx1Z2luTGlz
dEJ1aWxkZXIuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJQb2ludC5oJywKICAgICAg
ICAgICAgICAgICAncHVibGljL1dlYlBvcHVwTWVudS5oJywKQEAgLTM0Miw2ICszNDMsNyBAQAog
ICAgICAgICAgICAgICAgICdzcmMvV2ViUGFzc3dvcmRGb3JtVXRpbHMuaCcsCiAgICAgICAgICAg
ICAgICAgJ3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgnLAogICAgICAgICAgICAgICAgICdz
cmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMvV2Vi
UGx1Z2luRG9jdW1lbnQuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlBsdWdpbkxpc3RC
dWlsZGVySW1wbC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViUGx1Z2luTGlzdEJ1aWxk
ZXJJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViUGx1Z2luTG9hZE9ic2VydmVyLmNw
cCcsCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRvY3VtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEb2N1bWVudC5oCShyZXZpc2lvbiA1NjQ0
OSkKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRG9jdW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtNjIsNiArNjIsNyBAQCBwdWJsaWM6CiAgICAgLy8gUmV0dXJucyB0aGUgZnJhbWUgdGhl
IGRvY3VtZW50IGJlbG9uZ3MgdG8gb3IgMCBpZiB0aGUgZG9jdW1lbnQgaXMgZnJhbWVsZXNzLgog
ICAgIFdFQktJVF9BUEkgV2ViRnJhbWUqIGZyYW1lKCkgY29uc3Q7CiAgICAgV0VCS0lUX0FQSSBi
b29sIGlzSFRNTERvY3VtZW50KCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSBib29sIGlzUGx1Z2lu
RG9jdW1lbnQoKSBjb25zdDsKICAgICBXRUJLSVRfQVBJIFdlYlVSTCBiYXNlVVJMKCkgY29uc3Q7
CiAgICAgV0VCS0lUX0FQSSBXZWJVUkwgZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSBjb25zdDsKICAg
ICBXRUJLSVRfQVBJIFdlYkVsZW1lbnQgZG9jdW1lbnRFbGVtZW50KCkgY29uc3Q7CkBAIC03MCw3
ICs3MSw3IEBAIHB1YmxpYzoKICAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyB0aXRsZSgpIGNvbnN0
OwogICAgIFdFQktJVF9BUEkgV2ViTm9kZUNvbGxlY3Rpb24gYWxsKCk7CiAgICAgV0VCS0lUX0FQ
SSBXZWJVUkwgY29tcGxldGVVUkwoY29uc3QgV2ViU3RyaW5nJikgY29uc3Q7Ci0gICAgV0VCS0lU
X0FQSSBXZWJFbGVtZW50IGdldEVsZW1lbnRCeUlkKGNvbnN0IFdlYlN0cmluZyYgaWQpIGNvbnN0
OworICAgIFdFQktJVF9BUEkgV2ViRWxlbWVudCBnZXRFbGVtZW50QnlJZChjb25zdCBXZWJTdHJp
bmcmKSBjb25zdDsKICAgICBXRUJLSVRfQVBJIFdlYk5vZGVMaXN0IGdldEVsZW1lbnRzQnlUYWdO
YW1lKGNvbnN0IFdlYlN0cmluZyYpOwogICAgIFdFQktJVF9BUEkgV2ViU3RyaW5nIGFwcGxpY2F0
aW9uSUQoKSBjb25zdDsKICAgICBXRUJLSVRfQVBJIFdlYk5vZGUgZm9jdXNlZE5vZGUoKSBjb25z
dDsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTm9kZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTm9kZS5oCShyZXZpc2lvbiA1NjQ0OSkKKysrIFdl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsNiAr
MTAwLDcgQEAgcHVibGljOgogICAgIFdFQktJVF9BUEkgdm9pZCByZW1vdmVFdmVudExpc3RlbmVy
KGNvbnN0IFdlYlN0cmluZyYgZXZlbnRUeXBlLCBXZWJFdmVudExpc3RlbmVyKiBsaXN0ZW5lciwg
Ym9vbCB1c2VDYXB0dXJlKTsKICAgICBXRUJLSVRfQVBJIHZvaWQgc2ltdWxhdGVDbGljaygpOwog
CisgICAgLy8gREVQUkVDQVRFRCEgdXNlIHRvKCkgaW5zdGVhZAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IFQgdG9FbGVtZW50KCkKICAgICB7CiAgICAgICAgIFQgcmVzOwpAQCAtMTA3LDYgKzEw
OCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHJlczsKICAgICB9CiAKKyAgICAvLyBERVBS
RUNBVEVEISB1c2UgdG9Db25zdEVsZW1lbnQoKSBpbnN0ZWFkCiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVD4gY29uc3QgVCB0b0NvbnN0RWxlbWVudCgpIGNvbnN0CiAgICAgewogICAgICAgICBUIHJl
czsKQEAgLTExNCw2ICsxMTYsMjAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gcmVzOwogICAg
IH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFQgdG8oKQorICAgIHsKKyAgICAgICAgVCBy
ZXM7CisgICAgICAgIHJlcy5XZWJOb2RlOjphc3NpZ24oKnRoaXMpOworICAgICAgICByZXR1cm4g
cmVzOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0IFQgdG9Db25zdCgp
IGNvbnN0CisgICAgeworICAgICAgICBUIHJlczsKKyAgICAgICAgcmVzLldlYk5vZGU6OmFzc2ln
bigqdGhpcyk7CisgICAgICAgIHJldHVybiByZXM7CisgICAgfQorCiAjaWYgV0VCS0lUX0lNUExF
TUVOVEFUSU9OCiAgICAgV2ViTm9kZShjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6Tm9k
ZT4mKTsKICAgICBXZWJOb2RlJiBvcGVyYXRvcj0oY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNv
cmU6Ok5vZGU+Jik7CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbkRvY3Vt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVnaW5Eb2N1
bWVudC5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVnaW5E
b2N1bWVudC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJQbHVnaW5E
b2N1bWVudF9oCisjZGVmaW5lIFdlYlBsdWdpbkRvY3VtZW50X2gKKworI2luY2x1ZGUgIldlYkRv
Y3VtZW50LmgiCisKKyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KK25hbWVzcGFjZSBXZWJDb3Jl
IHsgY2xhc3MgUGx1Z2luRG9jdW1lbnQ7IH0KKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0IHsK
K2NsYXNzIFdlYlBsdWdpbjsKKworLy8gV3JhcHMgYSBXZWJEb2N1bWVudCBmb3IgZnVsbCBwYWdl
IHBsdWdpbnMuCitjbGFzcyBXZWJQbHVnaW5Eb2N1bWVudCA6IHB1YmxpYyBXZWJEb2N1bWVudCB7
CitwdWJsaWM6CisgICAgV2ViUGx1Z2luRG9jdW1lbnQoKSB7IH0KKyAgICBXZWJQbHVnaW5Eb2N1
bWVudChjb25zdCBXZWJQbHVnaW5Eb2N1bWVudCYgZSkgOiBXZWJEb2N1bWVudChlKSB7IH0KKwor
ICAgIFdlYlBsdWdpbkRvY3VtZW50JiBvcGVyYXRvcj0oY29uc3QgV2ViUGx1Z2luRG9jdW1lbnQm
IGUpCisgICAgeworICAgICAgICBXZWJOb2RlOjphc3NpZ24oZSk7CisgICAgICAgIHJldHVybiAq
dGhpczsKKyAgICB9CisgICAgdm9pZCBhc3NpZ24oY29uc3QgV2ViUGx1Z2luRG9jdW1lbnQmIGUp
IHsgV2ViTm9kZTo6YXNzaWduKGUpOyB9CisKKyAgICBXRUJLSVRfQVBJIFdlYlBsdWdpbiogcGx1
Z2luKCk7CisKKyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KKyAgICBXZWJQbHVnaW5Eb2N1bWVu
dChjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6UGx1Z2luRG9jdW1lbnQ+Jik7CisgICAg
V2ViUGx1Z2luRG9jdW1lbnQmIG9wZXJhdG9yPShjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29y
ZTo6UGx1Z2luRG9jdW1lbnQ+Jik7CisgICAgb3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNv
cmU6OlBsdWdpbkRvY3VtZW50PigpIGNvbnN0OworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRvY3VtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRvY3VtZW50LmNwcAko
cmV2aXNpb24gNTY0NDkpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRvY3VtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIsMTEgQEAgYm9vbCBXZWJEb2N1bWVudDo6aXNIVE1M
RG9jdW1lbnQoKSBjb25zdAogICAgIHJldHVybiBjb25zdFVud3JhcDxEb2N1bWVudD4oKS0+aXNI
VE1MRG9jdW1lbnQoKTsKIH0KIAorYm9vbCBXZWJEb2N1bWVudDo6aXNQbHVnaW5Eb2N1bWVudCgp
IGNvbnN0Cit7ICAKKyAgICByZXR1cm4gY29uc3RVbndyYXA8RG9jdW1lbnQ+KCktPmlzUGx1Z2lu
RG9jdW1lbnQoKTsKK30KKwogV2ViVVJMIFdlYkRvY3VtZW50OjpiYXNlVVJMKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gY29uc3RVbndyYXA8RG9jdW1lbnQ+KCktPmJhc2VVUkwoKTsKSW5kZXg6IFdl
YktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAwKQorKysg
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAq
IG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUGx1Z2luRG9j
dW1lbnQuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiUGx1Z2luRG9jdW1l
bnQuaCIKKworI2luY2x1ZGUgIldlYlBsdWdpbkNvbnRhaW5lckltcGwuaCIKKworI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworCitXZWJQbHVnaW4qIFdlYlBsdWdpbkRvY3VtZW50OjpwbHVnaW4oKQor
eworICAgIFBsdWdpbkRvY3VtZW50KiBkb2MgPSB1bndyYXA8UGx1Z2luRG9jdW1lbnQ+KCk7Cisg
ICAgV2ViUGx1Z2luQ29udGFpbmVySW1wbCogY29udGFpbmVyID0gc3RhdGljX2Nhc3Q8V2ViUGx1
Z2luQ29udGFpbmVySW1wbCo+KHN0YXRpY19jYXN0PFBsdWdpbkRvY3VtZW50Kj4oZG9jKS0+cGx1
Z2luV2lkZ2V0KCkpOworICAgIHJldHVybiBjb250YWluZXItPnBsdWdpbigpOworfQorCisKK1dl
YlBsdWdpbkRvY3VtZW50OjpXZWJQbHVnaW5Eb2N1bWVudChjb25zdCBQYXNzUmVmUHRyPFBsdWdp
bkRvY3VtZW50PiYgZWxlbSkKKyAgICA6IFdlYkRvY3VtZW50KGVsZW0pCit7Cit9CisKK1dlYlBs
dWdpbkRvY3VtZW50JiBXZWJQbHVnaW5Eb2N1bWVudDo6b3BlcmF0b3I9KGNvbnN0IFBhc3NSZWZQ
dHI8UGx1Z2luRG9jdW1lbnQ+JiBlbGVtKQoreworICAgIG1fcHJpdmF0ZSA9IGVsZW07CisgICAg
cmV0dXJuICp0aGlzOworfQorCitXZWJQbHVnaW5Eb2N1bWVudDo6b3BlcmF0b3IgUGFzc1JlZlB0
cjxQbHVnaW5Eb2N1bWVudD4oKSBjb25zdAoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxQbHVn
aW5Eb2N1bWVudCo+KG1fcHJpdmF0ZS5nZXQoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51538</attachid>
            <date>2010-03-24 13:31:56 -0700</date>
            <delta_ts>2010-03-24 13:58:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36434-20100324133153.patch</filename>
            <type>text/plain</type>
            <size>10482</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTY0NTIpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTAtMDMtMjQgIEpvaG4g
QWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dV2ViS2l0IHNpZGUgb2YgYWRkaW5n
IHNlYXJjaCBzdXBwb3J0IHRvIFBlcHBlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM2NDM0CisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAg
ICAqIHB1YmxpYy9XZWJEb2N1bWVudC5oOgorICAgICAgICAqIHB1YmxpYy9XZWJOb2RlLmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk5vZGU6OnRvKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm9kZTo6
dG9Db25zdCk6CisgICAgICAgICogcHVibGljL1dlYlBsdWdpbkRvY3VtZW50Lmg6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5Eb2N1bWVudDo6V2ViUGx1Z2luRG9jdW1lbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5Eb2N1bWVudDo6b3BlcmF0b3I9KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGx1Z2luRG9jdW1lbnQ6OmFzc2lnbik6CisgICAgICAgICogc3JjL1dlYkRv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRG9jdW1lbnQ6OmlzUGx1Z2luRG9jdW1l
bnQpOgorICAgICAgICAqIHNyYy9XZWJQbHVnaW5Eb2N1bWVudC5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQbHVnaW5Eb2N1bWVudDo6cGx1Z2luKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGx1Z2luRG9jdW1lbnQ6OldlYlBsdWdpbkRvY3VtZW50KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGx1Z2luRG9jdW1lbnQ6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdp
bkRvY3VtZW50OjpvcGVyYXRvciBQYXNzUmVmUHRyPFBsdWdpbkRvY3VtZW50Pik6CisKIDIwMTAt
MDMtMjQgIEpheSBDYW1wYW4gIDxqY2FtcGFuQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gRmlzaGVyLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAJKHJldmlzaW9uIDU2NDQ5KQor
KysgV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAJKHdvcmtpbmcgY29weSkKQEAgLTE1Niw2ICsx
NTYsNyBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUGFzc3dvcmRGb3JtRGF0YS5oJywK
ICAgICAgICAgICAgICAgICAncHVibGljL1dlYlBsdWdpbi5oJywKICAgICAgICAgICAgICAgICAn
cHVibGljL1dlYlBsdWdpbkNvbnRhaW5lci5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL1dl
YlBsdWdpbkRvY3VtZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUGx1Z2luTGlz
dEJ1aWxkZXIuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJQb2ludC5oJywKICAgICAg
ICAgICAgICAgICAncHVibGljL1dlYlBvcHVwTWVudS5oJywKQEAgLTM0Miw2ICszNDMsNyBAQAog
ICAgICAgICAgICAgICAgICdzcmMvV2ViUGFzc3dvcmRGb3JtVXRpbHMuaCcsCiAgICAgICAgICAg
ICAgICAgJ3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgnLAogICAgICAgICAgICAgICAgICdz
cmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMvV2Vi
UGx1Z2luRG9jdW1lbnQuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlBsdWdpbkxpc3RC
dWlsZGVySW1wbC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViUGx1Z2luTGlzdEJ1aWxk
ZXJJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViUGx1Z2luTG9hZE9ic2VydmVyLmNw
cCcsCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRvY3VtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEb2N1bWVudC5oCShyZXZpc2lvbiA1NjQ0
OSkKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRG9jdW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtNjIsNiArNjIsNyBAQCBwdWJsaWM6CiAgICAgLy8gUmV0dXJucyB0aGUgZnJhbWUgdGhl
IGRvY3VtZW50IGJlbG9uZ3MgdG8gb3IgMCBpZiB0aGUgZG9jdW1lbnQgaXMgZnJhbWVsZXNzLgog
ICAgIFdFQktJVF9BUEkgV2ViRnJhbWUqIGZyYW1lKCkgY29uc3Q7CiAgICAgV0VCS0lUX0FQSSBi
b29sIGlzSFRNTERvY3VtZW50KCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSBib29sIGlzUGx1Z2lu
RG9jdW1lbnQoKSBjb25zdDsKICAgICBXRUJLSVRfQVBJIFdlYlVSTCBiYXNlVVJMKCkgY29uc3Q7
CiAgICAgV0VCS0lUX0FQSSBXZWJVUkwgZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSBjb25zdDsKICAg
ICBXRUJLSVRfQVBJIFdlYkVsZW1lbnQgZG9jdW1lbnRFbGVtZW50KCkgY29uc3Q7CkBAIC03MCw3
ICs3MSw3IEBAIHB1YmxpYzoKICAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyB0aXRsZSgpIGNvbnN0
OwogICAgIFdFQktJVF9BUEkgV2ViTm9kZUNvbGxlY3Rpb24gYWxsKCk7CiAgICAgV0VCS0lUX0FQ
SSBXZWJVUkwgY29tcGxldGVVUkwoY29uc3QgV2ViU3RyaW5nJikgY29uc3Q7Ci0gICAgV0VCS0lU
X0FQSSBXZWJFbGVtZW50IGdldEVsZW1lbnRCeUlkKGNvbnN0IFdlYlN0cmluZyYgaWQpIGNvbnN0
OworICAgIFdFQktJVF9BUEkgV2ViRWxlbWVudCBnZXRFbGVtZW50QnlJZChjb25zdCBXZWJTdHJp
bmcmKSBjb25zdDsKICAgICBXRUJLSVRfQVBJIFdlYk5vZGVMaXN0IGdldEVsZW1lbnRzQnlUYWdO
YW1lKGNvbnN0IFdlYlN0cmluZyYpOwogICAgIFdFQktJVF9BUEkgV2ViU3RyaW5nIGFwcGxpY2F0
aW9uSUQoKSBjb25zdDsKICAgICBXRUJLSVRfQVBJIFdlYk5vZGUgZm9jdXNlZE5vZGUoKSBjb25z
dDsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTm9kZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTm9kZS5oCShyZXZpc2lvbiA1NjQ0OSkKKysrIFdl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsNiAr
MTAwLDcgQEAgcHVibGljOgogICAgIFdFQktJVF9BUEkgdm9pZCByZW1vdmVFdmVudExpc3RlbmVy
KGNvbnN0IFdlYlN0cmluZyYgZXZlbnRUeXBlLCBXZWJFdmVudExpc3RlbmVyKiBsaXN0ZW5lciwg
Ym9vbCB1c2VDYXB0dXJlKTsKICAgICBXRUJLSVRfQVBJIHZvaWQgc2ltdWxhdGVDbGljaygpOwog
CisgICAgLy8gREVQUkVDQVRFRCEgdXNlIHRvKCkgaW5zdGVhZAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IFQgdG9FbGVtZW50KCkKICAgICB7CiAgICAgICAgIFQgcmVzOwpAQCAtMTA3LDYgKzEw
OCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHJlczsKICAgICB9CiAKKyAgICAvLyBERVBS
RUNBVEVEISB1c2UgdG9Db25zdEVsZW1lbnQoKSBpbnN0ZWFkCiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVD4gY29uc3QgVCB0b0NvbnN0RWxlbWVudCgpIGNvbnN0CiAgICAgewogICAgICAgICBUIHJl
czsKQEAgLTExNCw2ICsxMTYsMjAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gcmVzOwogICAg
IH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFQgdG8oKQorICAgIHsKKyAgICAgICAgVCBy
ZXM7CisgICAgICAgIHJlcy5XZWJOb2RlOjphc3NpZ24oKnRoaXMpOworICAgICAgICByZXR1cm4g
cmVzOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0IFQgdG9Db25zdCgp
IGNvbnN0CisgICAgeworICAgICAgICBUIHJlczsKKyAgICAgICAgcmVzLldlYk5vZGU6OmFzc2ln
bigqdGhpcyk7CisgICAgICAgIHJldHVybiByZXM7CisgICAgfQorCiAjaWYgV0VCS0lUX0lNUExF
TUVOVEFUSU9OCiAgICAgV2ViTm9kZShjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6Tm9k
ZT4mKTsKICAgICBXZWJOb2RlJiBvcGVyYXRvcj0oY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNv
cmU6Ok5vZGU+Jik7CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbkRvY3Vt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVnaW5Eb2N1
bWVudC5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVnaW5E
b2N1bWVudC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJQbHVnaW5E
b2N1bWVudF9oCisjZGVmaW5lIFdlYlBsdWdpbkRvY3VtZW50X2gKKworI2luY2x1ZGUgIldlYkRv
Y3VtZW50LmgiCisKKyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KK25hbWVzcGFjZSBXZWJDb3Jl
IHsgY2xhc3MgUGx1Z2luRG9jdW1lbnQ7IH0KKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0IHsK
K2NsYXNzIFdlYlBsdWdpbjsKKworLy8gV3JhcHMgYSBXZWJEb2N1bWVudCBmb3IgZnVsbCBwYWdl
IHBsdWdpbnMuCitjbGFzcyBXZWJQbHVnaW5Eb2N1bWVudCA6IHB1YmxpYyBXZWJEb2N1bWVudCB7
CitwdWJsaWM6CisgICAgV2ViUGx1Z2luRG9jdW1lbnQoKSB7IH0KKyAgICBXZWJQbHVnaW5Eb2N1
bWVudChjb25zdCBXZWJQbHVnaW5Eb2N1bWVudCYgZSkgOiBXZWJEb2N1bWVudChlKSB7IH0KKwor
ICAgIFdlYlBsdWdpbkRvY3VtZW50JiBvcGVyYXRvcj0oY29uc3QgV2ViUGx1Z2luRG9jdW1lbnQm
IGUpCisgICAgeworICAgICAgICBXZWJOb2RlOjphc3NpZ24oZSk7CisgICAgICAgIHJldHVybiAq
dGhpczsKKyAgICB9CisgICAgdm9pZCBhc3NpZ24oY29uc3QgV2ViUGx1Z2luRG9jdW1lbnQmIGUp
IHsgV2ViTm9kZTo6YXNzaWduKGUpOyB9CisKKyAgICBXRUJLSVRfQVBJIFdlYlBsdWdpbiogcGx1
Z2luKCk7CisKKyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KKyAgICBXZWJQbHVnaW5Eb2N1bWVu
dChjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6UGx1Z2luRG9jdW1lbnQ+Jik7CisgICAg
V2ViUGx1Z2luRG9jdW1lbnQmIG9wZXJhdG9yPShjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29y
ZTo6UGx1Z2luRG9jdW1lbnQ+Jik7CisgICAgb3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNv
cmU6OlBsdWdpbkRvY3VtZW50PigpIGNvbnN0OworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRvY3VtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRvY3VtZW50LmNwcAko
cmV2aXNpb24gNTY0NDkpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRvY3VtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIsMTEgQEAgYm9vbCBXZWJEb2N1bWVudDo6aXNIVE1M
RG9jdW1lbnQoKSBjb25zdAogICAgIHJldHVybiBjb25zdFVud3JhcDxEb2N1bWVudD4oKS0+aXNI
VE1MRG9jdW1lbnQoKTsKIH0KIAorYm9vbCBXZWJEb2N1bWVudDo6aXNQbHVnaW5Eb2N1bWVudCgp
IGNvbnN0Cit7ICAKKyAgICByZXR1cm4gY29uc3RVbndyYXA8RG9jdW1lbnQ+KCktPmlzUGx1Z2lu
RG9jdW1lbnQoKTsKK30KKwogV2ViVVJMIFdlYkRvY3VtZW50OjpiYXNlVVJMKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gY29uc3RVbndyYXA8RG9jdW1lbnQ+KCktPmJhc2VVUkwoKTsKSW5kZXg6IFdl
YktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAwKQorKysg
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAq
IG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUGx1Z2luRG9j
dW1lbnQuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiUGx1Z2luRG9jdW1l
bnQuaCIKKworI2luY2x1ZGUgIldlYlBsdWdpbkNvbnRhaW5lckltcGwuaCIKKworI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworCitXZWJQbHVnaW4qIFdlYlBsdWdpbkRvY3VtZW50OjpwbHVnaW4oKQor
eworICAgIGlmICghaXNQbHVnaW5Eb2N1bWVudCgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICBQ
bHVnaW5Eb2N1bWVudCogZG9jID0gdW53cmFwPFBsdWdpbkRvY3VtZW50PigpOworICAgIFdlYlBs
dWdpbkNvbnRhaW5lckltcGwqIGNvbnRhaW5lciA9IHN0YXRpY19jYXN0PFdlYlBsdWdpbkNvbnRh
aW5lckltcGwqPihzdGF0aWNfY2FzdDxQbHVnaW5Eb2N1bWVudCo+KGRvYyktPnBsdWdpbldpZGdl
dCgpKTsKKyAgICByZXR1cm4gY29udGFpbmVyLT5wbHVnaW4oKTsKK30KKworCitXZWJQbHVnaW5E
b2N1bWVudDo6V2ViUGx1Z2luRG9jdW1lbnQoY29uc3QgUGFzc1JlZlB0cjxQbHVnaW5Eb2N1bWVu
dD4mIGVsZW0pCisgICAgOiBXZWJEb2N1bWVudChlbGVtKQoreworfQorCitXZWJQbHVnaW5Eb2N1
bWVudCYgV2ViUGx1Z2luRG9jdW1lbnQ6Om9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRyPFBsdWdp
bkRvY3VtZW50PiYgZWxlbSkKK3sKKyAgICBtX3ByaXZhdGUgPSBlbGVtOworICAgIHJldHVybiAq
dGhpczsKK30KKworV2ViUGx1Z2luRG9jdW1lbnQ6Om9wZXJhdG9yIFBhc3NSZWZQdHI8UGx1Z2lu
RG9jdW1lbnQ+KCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UGx1Z2luRG9jdW1l
bnQqPihtX3ByaXZhdGUuZ2V0KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>
<flag name="review"
          id="34807"
          type_id="1"
          status="+"
          setter="fishd"
    />
    <flag name="commit-queue"
          id="34809"
          type_id="3"
          status="-"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>