<?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>70055</bug_id>
          
          <creation_ts>2011-10-13 14:29:13 -0700</creation_ts>
          <short_desc>[WK2] WebFrameLoaderClient::shouldFallback() should use a port-specific implementation</short_desc>
          <delta_ts>2011-10-21 13:51:29 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jesus Sanchez-Palencia">jesus</reporter>
          <assigned_to name="Jesus Sanchez-Palencia">jesus</assigned_to>
          <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>leandro</cc>
    
    <cc>luiz</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>483494</commentid>
    <comment_count>0</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2011-10-13 14:29:13 -0700</bug_when>
    <thetext>In WebKit 1 each port had its own implementation of FrameLoaderClient::shouldFallback since there was a port specific implementation of FrameLoaderClient itself. For instance, Qt and EFL use cancelledError and interruptedForPolicyChangeError to decide if they should fallback or not, while Mac only uses cancelledError and PlugInWillHandleLoad. GTK uses all of them.

However, in WebKit 2 all ports are currently sharing a single WebFrameLoaderClient implementation and, therefore, the same shouldFallback implementation. As I&apos;m not aware of the fallback decisions for all ports, I believe this function should have a port specific implementation and it could sit on Source/WebKit2/WebProcess/WebCoreSupport/WebErrors.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483512</commentid>
    <comment_count>1</comment_count>
      <attachid>110909</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2011-10-13 14:44:26 -0700</bug_when>
    <thetext>Created attachment 110909
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483629</commentid>
    <comment_count>2</comment_count>
      <attachid>110909</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2011-10-13 16:36:59 -0700</bug_when>
    <thetext>Comment on attachment 110909
Patch

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

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:-985
&gt; -    DEFINE_STATIC_LOCAL(const ResourceError, cancelledError, (this-&gt;cancelledError(ResourceRequest())));
&gt; -    DEFINE_STATIC_LOCAL(const ResourceError, pluginWillHandleLoadError, (this-&gt;pluginWillHandleLoadError(ResourceResponse())));

r- because you ignored static and const in all the implementations of shouldFallBack that you provided.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/mac/WebErrorsMac.mm:93
&gt; +    ResourceError errorCancelled = cancelledError(ResourceRequest());
&gt; +    ResourceError errorPluginWillHandleLoad = pluginWillHandleLoadError(ResourceResponse());

Ditto.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/qt/WebErrorsQt.cpp:91
&gt; +    ResourceError errorCancelled = cancelledError(ResourceRequest());
&gt; +    ResourceError errorPluginWillHandleLoad = pluginWillHandleLoadError(ResourceResponse());
&gt; +    ResourceError errorInterruptedForPolicyChange = interruptedForPolicyChangeError(ResourceRequest());

Ditto.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/win/WebErrorsWin.cpp:84
&gt; +    ResourceError errorCancelled = cancelledError(ResourceRequest());
&gt; +    ResourceError errorPluginWillHandleLoad = pluginWillHandleLoadError(ResourceResponse());

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483969</commentid>
    <comment_count>3</comment_count>
      <attachid>111011</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2011-10-14 07:25:53 -0700</bug_when>
    <thetext>Created attachment 111011
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483971</commentid>
    <comment_count>4</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2011-10-14 07:36:15 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; r- because you ignored static and const in all the implementations of shouldFallBack that you provided.

Thanks for the review, Luis. I&apos;ve uploaded a new patch here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484119</commentid>
    <comment_count>5</comment_count>
      <attachid>111011</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2011-10-14 11:37:19 -0700</bug_when>
    <thetext>Comment on attachment 111011
Patch

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

&gt; Source/WebKit2/WebProcess/WebCoreSupport/qt/WebErrorsQt.cpp:91
&gt; +    static const ResourceError errorCancelled = cancelledError(ResourceRequest());
&gt; +    static const ResourceError errorPluginWillHandleLoad = pluginWillHandleLoadError(ResourceResponse());
&gt; +    static const ResourceError errorInterruptedForPolicyChange = interruptedForPolicyChangeError(ResourceRequest());

Static local variables like these have indeterminated order of construction and destruction. They may cause really hard to find bugs.
These variables should probably leak (you should be using pointers).

Do you have strong reasons for not using the DEFINE_STATIC_LOCAL macro?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484135</commentid>
    <comment_count>6</comment_count>
      <attachid>111011</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-10-14 11:49:03 -0700</bug_when>
    <thetext>Comment on attachment 111011
Patch

Attachment 111011 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10054607</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484162</commentid>
    <comment_count>7</comment_count>
      <attachid>111011</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-10-14 12:16:32 -0700</bug_when>
    <thetext>Comment on attachment 111011
Patch

Attachment 111011 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10068412</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484352</commentid>
    <comment_count>8</comment_count>
      <attachid>111093</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2011-10-14 15:19:36 -0700</bug_when>
    <thetext>Created attachment 111093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485282</commentid>
    <comment_count>9</comment_count>
      <attachid>111093</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2011-10-17 10:56:45 -0700</bug_when>
    <thetext>Comment on attachment 111093
Patch

This patch causes behavior changes in EFL and GTK ports. The guys that are responsible for those ports should be notified.

Looking at ResourceErrorBase.h, I think that ResourceError::isCancellation is not trivially equivalent to error.errorCode() == cancelledError.errorCode(). It may cause unwanted behavior changes in Mac and Win.

I would prefer to make sure that there will be behavior changes only in Qt port. You could file bugs to other ports if you think that they need changes as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485289</commentid>
    <comment_count>10</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2011-10-17 11:10:29 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 111093 [details])
&gt; This patch causes behavior changes in EFL and GTK ports. The guys that are responsible for those ports should be notified.

My idea was to keep the behavior they had on WebKit1 because I believe the behavior change was caused by WebFrameLoaderClient implementation itself and they weren&apos;t even aware of it. Of course I can be wrong and I&apos;m already contacting people from both ports in order to gather their opinion.

&gt; 
&gt; Looking at ResourceErrorBase.h, I think that ResourceError::isCancellation is not trivially equivalent to error.errorCode() == cancelledError.errorCode(). It may cause unwanted behavior changes in Mac and Win.

You are right, there is no way to make sure people are handling this as we are in Qt, so I will modify the patch to use isCancellation() or the errorCode() accordingly to each port&apos;s previous implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485314</commentid>
    <comment_count>11</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2011-10-17 11:28:23 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; (From update of attachment 111093 [details] [details])
&gt; &gt; This patch causes behavior changes in EFL and GTK ports. The guys that are responsible for those ports should be notified.
&gt; 
&gt; My idea was to keep the behavior they had on WebKit1 because I believe the behavior change was caused by WebFrameLoaderClient implementation itself and they weren&apos;t even aware of it. Of course I can be wrong and I&apos;m already contacting people from both ports in order to gather their opinion.
&gt; 

Just let me know if they are aware of the changes and if they are ok with them.

&gt; &gt; 
&gt; &gt; Looking at ResourceErrorBase.h, I think that ResourceError::isCancellation is not trivially equivalent to error.errorCode() == cancelledError.errorCode(). It may cause unwanted behavior changes in Mac and Win.
&gt; 
&gt; You are right, there is no way to make sure people are handling this as we are in Qt, so I will modify the patch to use isCancellation() or the errorCode() accordingly to each port&apos;s previous implementation.

Nice.

Otherwise it looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485319</commentid>
    <comment_count>12</comment_count>
      <attachid>111093</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-10-17 11:40:17 -0700</bug_when>
    <thetext>Comment on attachment 111093
Patch

I consider the code duplication to be unnecessary. For GTK+ I believe the current cross-platform shouldFallback is being enough. We might review our needs when we review all our APIs later this year. For the moment I would say an #ifdef inside shouldFallback adding/removing the checks as necessary for the ports that need it is the best way to go. If it turns out that most ports need customization that they can&apos;t share with others, than I would see this change as reasonable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485327</commentid>
    <comment_count>13</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-10-17 11:47:26 -0700</bug_when>
    <thetext>CC&apos;ing the Samsung guys who probably know better about EFL&apos;s port of WebKit2. At first glance, we&apos;re fine with keeping the implementation unified, even if that changes behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485357</commentid>
    <comment_count>14</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2011-10-17 12:09:10 -0700</bug_when>
    <thetext>(In reply to comment #12) and (In reply to comment #13):

Ok, guys, thanks for all your feedback. I was talking to Luiz on irc and following the comments we decided to add just a #ifdef for Qt for the time being. This way we don&apos;t change anything for any port but ours and if it ever gets to a point where we have reached an &quot;ifdef mayhem&quot; there, then we can move to something more specific like the proposed patch.

Just for the sake of curiosity, Luiz also agrees that a FrameLoaderClient impl per port on WebKit2 might not be an option.

I will upload a patch later with the changes for Qt. Thanks again for the feedback!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487975</commentid>
    <comment_count>15</comment_count>
      <attachid>111866</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2011-10-20 16:20:22 -0700</bug_when>
    <thetext>Created attachment 111866
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488629</commentid>
    <comment_count>16</comment_count>
      <attachid>111866</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-21 13:51:21 -0700</bug_when>
    <thetext>Comment on attachment 111866
Patch

Clearing flags on attachment: 111866

Committed r98138: &lt;http://trac.webkit.org/changeset/98138&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488630</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-21 13:51:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110909</attachid>
            <date>2011-10-13 14:44:26 -0700</date>
            <delta_ts>2011-10-14 07:25:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70055-20111013184406.patch</filename>
            <type>text/plain</type>
            <size>10223</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc0MDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjOThiY2VhOWI2MWI3NmE5
NGNiODdlOWJjZmM0NDA3OGE4ZTljNzllLi5hZTMzNGNjNDljYmRlM2MwN2Q3MzQ4ZGNjNTY5NmNh
NGYyOWEzOGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzIgQEAKIDIwMTEtMTAtMTMgIEplc3Vz
IFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgogCisgICAg
ICAgIFtXSzJdIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRGYWxsYmFjaygpIHNob3VsZCB1
c2UgYSBwb3J0LXNwZWNpZmljIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDA1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRGYWxs
QmFjayB3aWxsIG5vdyB1c2UgYSBwb3J0LXNwZWNpZmljIGltcGxlbWVudGF0aW9uCisgICAgICAg
IHRocm91Z2ggYSBzaG91bGRGYWxsQmFjayBhZGRlZCB0byBXZWJFcnJvcnMuaC4gQW4gaW1wbGVt
ZW50YXRpb24gZm9yIGVhY2ggcG9ydAorICAgICAgICB3YXMgYWRkZWQgYmFzZWQgb24gdGhlIGRl
Y2lzaW9ucyB0aGV5IG1hZGUgb24gdGhlaXIgV2ViS2l0MSdzIEZyYW1lTG9hZGVyQ2xpZW50Cisg
ICAgICAgIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJFcnJvcnMuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJD
bGllbnQ6OnNob3VsZEZhbGxCYWNrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L2VmbC9XZWJFcnJvcnNFZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpzaG91bGRGYWxsQmFj
ayk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRXJyb3JzR3Rr
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6c2hvdWxkRmFsbEJhY2spOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVycm9yc01hYy5tbToKKyAgICAgICAgKFdlYktp
dDo6c2hvdWxkRmFsbEJhY2spOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
cXQvV2ViRXJyb3JzUXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpjYW5jZWxsZWRFcnJvcik6Cisg
ICAgICAgIChXZWJLaXQ6OnNob3VsZEZhbGxCYWNrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L3dpbi9XZWJFcnJvcnNXaW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpzaG91
bGRGYWxsQmFjayk6CisKKzIwMTEtMTAtMTMgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1
cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCiAgICAgICAgIFtRdF1bV0syXSBXZWJFcnJvcnNR
dC5jcHAgZHVwbGljYXRlcyBjb2RlIGZyb20gV0tFcnJvci5oIGFuZCBXZWJFcnJvci5oCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDA1MwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVycm9y
cy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFcnJvcnMu
aAppbmRleCBiNTM4NjYyNThhYWY1MzZkNDRiYmI3NjBhMWY2YjM3NDkwOGExMjJiLi4xMGQ0OWQx
NGFiZDE0YThmMTJiZGExMDZiMGEyYWZkMmM3YjA3MjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVycm9ycy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRXJyb3JzLmgKQEAgLTQxLDcgKzQx
LDcgQEAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVy
cm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmUKIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgY2Fu
bm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwog
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBwbHVnaW5XaWxs
SGFuZGxlTG9hZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKLQorYm9v
bCBzaG91bGRGYWxsQmFjayhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFdlYkVycm9yc19oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwCmluZGV4IGZkOGI2YjNiYmJmNWUxZmI0YjU2YmZmYTFmZmQwYjk4NGRm
OTQ4M2QuLjVlYmU2ZTgxNGJhNTU4YWMwNzVhZTQzOGZkZTIwODg1NDMwNTM0MzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC05ODEsMTYgKzk4MSw3IEBAIFJlc291cmNl
RXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXNwCiAKIGJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZEZhbGxC
YWNrKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgUmVzb3VyY2VFcnJvciwgY2FuY2VsbGVkRXJyb3IsICh0aGlzLT5jYW5jZWxsZWRF
cnJvcihSZXNvdXJjZVJlcXVlc3QoKSkpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IFJlc291cmNlRXJyb3IsIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IsICh0aGlzLT5wbHVnaW5X
aWxsSGFuZGxlTG9hZEVycm9yKFJlc291cmNlUmVzcG9uc2UoKSkpKTsKLQotICAgIGlmIChlcnJv
ci5lcnJvckNvZGUoKSA9PSBjYW5jZWxsZWRFcnJvci5lcnJvckNvZGUoKSAmJiBlcnJvci5kb21h
aW4oKSA9PSBjYW5jZWxsZWRFcnJvci5kb21haW4oKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgaWYgKGVycm9yLmVycm9yQ29kZSgpID09IHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3Iu
ZXJyb3JDb2RlKCkgJiYgZXJyb3IuZG9tYWluKCkgPT0gcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJv
ci5kb21haW4oKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIHRydWU7Cisg
ICAgcmV0dXJuIFdlYktpdDo6c2hvdWxkRmFsbEJhY2soZXJyb3IpOwogfQogCiBib29sIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L2VmbC9XZWJFcnJvcnNFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9lZmwvV2ViRXJyb3JzRWZsLmNwcAppbmRleCBiYmUxYmY4NmVjYzM3OTljNjBj
OWQzODBiZWE5ODJlN2Y4NWU1YTg3Li5mY2MxY2RjMTdlZWM2ZTBmODcyOGM5N2IxZDhlNTk2ODVj
OGRmNWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L2VmbC9XZWJFcnJvcnNFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvZWZsL1dlYkVycm9yc0VmbC5jcHAKQEAgLTc2LDQgKzc2LDE4IEBAIFJl
c291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSkKICAgICByZXR1cm4gUmVzb3VyY2VFcnJvcigpOwogfQogCitib29sIHNo
b3VsZEZhbGxCYWNrKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQoreworICAgIFJlc291cmNl
RXJyb3IgZXJyb3JDYW5jZWxsZWQgPSBjYW5jZWxsZWRFcnJvcihSZXNvdXJjZVJlcXVlc3QoKSk7
CisgICAgUmVzb3VyY2VFcnJvciBlcnJvckludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlID0gaW50
ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihSZXNvdXJjZVJlcXVlc3QoKSk7CisKKyAgICBp
ZiAoZXJyb3IuaXNDYW5jZWxsYXRpb24oKSAmJiBlcnJvci5kb21haW4oKSA9PSBlcnJvckNhbmNl
bGxlZC5kb21haW4oKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKGVycm9yLmVy
cm9yQ29kZSgpID09IGVycm9ySW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2UuZXJyb3JDb2RlKCkg
JiYgZXJyb3IuZG9tYWluKCkgPT0gZXJyb3JJbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZS5kb21h
aW4oKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRXJyb3JzR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkVycm9yc0d0ay5jcHAKaW5kZXggODM3NWQw
NjdhZWIxMmQ4OTJhZWZhNjhlNjZlYTYzM2M5ODgyNjNjYy4uMTgyN2Q4NmYyODY3ZTVmYzEyMTFh
NTI2ZTk4MzA5ZWIwODVjMzQ1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRXJyb3JzR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFcnJvcnNHdGsuY3BwCkBAIC03Miw0
ICs3MiwyMiBAQCBSZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiAgICAgcmV0dXJuIFdlYkNvcmU6OnBsdWdpbldp
bGxIYW5kbGVMb2FkRXJyb3IocmVzcG9uc2UpOwogfQogCitib29sIHNob3VsZEZhbGxCYWNrKGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQoreworICAgIFJlc291cmNlRXJyb3IgZXJyb3JDYW5j
ZWxsZWQgPSBjYW5jZWxsZWRFcnJvcihSZXNvdXJjZVJlcXVlc3QoKSk7CisgICAgUmVzb3VyY2VF
cnJvciBlcnJvclBsdWdpbldpbGxIYW5kbGVMb2FkID0gcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJv
cihSZXNvdXJjZVJlc3BvbnNlKCkpOworICAgIFJlc291cmNlRXJyb3IgZXJyb3JJbnRlcnJ1cHRl
ZEZvclBvbGljeUNoYW5nZSA9IGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoUmVzb3Vy
Y2VSZXF1ZXN0KCkpOworCisgICAgaWYgKGVycm9yLmlzQ2FuY2VsbGF0aW9uKCkgJiYgZXJyb3Iu
ZG9tYWluKCkgPT0gZXJyb3JDYW5jZWxsZWQuZG9tYWluKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGlmIChlcnJvci5lcnJvckNvZGUoKSA9PSBlcnJvclBsdWdpbldpbGxIYW5kbGVM
b2FkLmVycm9yQ29kZSgpICYmIGVycm9yLmRvbWFpbigpID09IGVycm9yUGx1Z2luV2lsbEhhbmRs
ZUxvYWQuZG9tYWluKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChlcnJvci5l
cnJvckNvZGUoKSA9PSBlcnJvckludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlLmVycm9yQ29kZSgp
ICYmIGVycm9yLmRvbWFpbigpID09IGVycm9ySW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2UuZG9t
YWluKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVycm9yc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVycm9yc01hYy5tbQppbmRleCA2ZGVhNmEw
NjMwMDJiZjAxMWI2YTE3YTg5MzQxMmQ2NDJhNzNhM2JiLi41NDMzNDc0YjI0NjQ0NTRjMjgyZDIw
Mzk0MWFiOTA0YTEwYTRiNDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L21hYy9XZWJFcnJvcnNNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRXJyb3JzTWFjLm1tCkBAIC04Nyw0ICs4
NywxOCBAQCBSZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiAgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoV2ViRXJy
b3I6OndlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZVBsdWdJbldpbGxIYW5kbGVMb2Fk
LCByZXNwb25zZS51cmwoKSwgV0VCX1VJX1NUUklORygiUGx1Zy1pbiBoYW5kbGVkIGxvYWQiLCAi
V2ViS2l0RXJyb3JQbHVnSW5XaWxsSGFuZGxlTG9hZCBkZXNjcmlwdGlvbiIpKTsKIH0KIAorYm9v
bCBzaG91bGRGYWxsQmFjayhjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3sKKyAgICBSZXNv
dXJjZUVycm9yIGVycm9yQ2FuY2VsbGVkID0gY2FuY2VsbGVkRXJyb3IoUmVzb3VyY2VSZXF1ZXN0
KCkpOworICAgIFJlc291cmNlRXJyb3IgZXJyb3JQbHVnaW5XaWxsSGFuZGxlTG9hZCA9IHBsdWdp
bldpbGxIYW5kbGVMb2FkRXJyb3IoUmVzb3VyY2VSZXNwb25zZSgpKTsKKworICAgIGlmIChlcnJv
ci5pc0NhbmNlbGxhdGlvbigpICYmIGVycm9yLmRvbWFpbigpID09IGVycm9yQ2FuY2VsbGVkLmRv
bWFpbigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoZXJyb3IuZXJyb3JDb2Rl
KCkgPT0gZXJyb3JQbHVnaW5XaWxsSGFuZGxlTG9hZC5lcnJvckNvZGUoKSAmJiBlcnJvci5kb21h
aW4oKSA9PSBlcnJvclBsdWdpbldpbGxIYW5kbGVMb2FkLmRvbWFpbigpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0
L1dlYkVycm9yc1F0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvcXQvV2ViRXJyb3JzUXQuY3BwCmluZGV4IDg2ODRmMWM4MzQ0ZDcxNTI4ZDFiNmY1MjEwZTI2
Njg0MTc2MTRiYmUuLjhlZDZjMzNhMDc0ZTRjZmYzZjk5M2ZmNDAxMGUxMmMyMGVkMWY4MmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2Vi
RXJyb3JzUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvcXQvV2ViRXJyb3JzUXQuY3BwCkBAIC00NSw3ICs0NSw3IEBAIFJlc291cmNlRXJyb3IgY2Fu
Y2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogICAgIFJlc291cmNl
RXJyb3IgZXJyb3IgPSBSZXNvdXJjZUVycm9yKCJRdE5ldHdvcmsiLCBRTmV0d29ya1JlcGx5OjpP
cGVyYXRpb25DYW5jZWxlZEVycm9yLCByZXF1ZXN0LnVybCgpLnN0cmluZygpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYkZyYW1lIiwgIlJlcXVlc3QgY2FuY2VsbGVkIiwgMCwgUUNvcmVBcHBsaWNhdGlvbjo6
VW5pY29kZVVURjgpKTsKICAgICBlcnJvci5zZXRJc0NhbmNlbGxhdGlvbih0cnVlKTsKLSAgICBy
ZXR1cm4gZXJyb3I7ICAgIAorICAgIHJldHVybiBlcnJvcjsKIH0KIAogUmVzb3VyY2VFcnJvciBi
bG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQpAQCAtODQsNCArODQs
MjIgQEAgUmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogICAgICAgICAgICAgICAgICAgICAgICAgIFFDb3JlQXBw
bGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYkZyYW1lIiwgIkxvYWRpbmcgaXMgaGFuZGxlZCBieSB0
aGUgbWVkaWEgZW5naW5lIiwgMCwgUUNvcmVBcHBsaWNhdGlvbjo6VW5pY29kZVVURjgpKTsKIH0K
IAorYm9vbCBzaG91bGRGYWxsQmFjayhjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3sKKyAg
ICBSZXNvdXJjZUVycm9yIGVycm9yQ2FuY2VsbGVkID0gY2FuY2VsbGVkRXJyb3IoUmVzb3VyY2VS
ZXF1ZXN0KCkpOworICAgIFJlc291cmNlRXJyb3IgZXJyb3JQbHVnaW5XaWxsSGFuZGxlTG9hZCA9
IHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoUmVzb3VyY2VSZXNwb25zZSgpKTsKKyAgICBSZXNv
dXJjZUVycm9yIGVycm9ySW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2UgPSBpbnRlcnJ1cHRlZEZv
clBvbGljeUNoYW5nZUVycm9yKFJlc291cmNlUmVxdWVzdCgpKTsKKworICAgIGlmIChlcnJvci5p
c0NhbmNlbGxhdGlvbigpICYmIGVycm9yLmRvbWFpbigpID09IGVycm9yQ2FuY2VsbGVkLmRvbWFp
bigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoZXJyb3IuZXJyb3JDb2RlKCkg
PT0gZXJyb3JQbHVnaW5XaWxsSGFuZGxlTG9hZC5lcnJvckNvZGUoKSAmJiBlcnJvci5kb21haW4o
KSA9PSBlcnJvclBsdWdpbldpbGxIYW5kbGVMb2FkLmRvbWFpbigpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBpZiAoZXJyb3IuZXJyb3JDb2RlKCkgPT0gZXJyb3JJbnRlcnJ1cHRlZEZv
clBvbGljeUNoYW5nZS5lcnJvckNvZGUoKSAmJiBlcnJvci5kb21haW4oKSA9PSBlcnJvckludGVy
cnVwdGVkRm9yUG9saWN5Q2hhbmdlLmRvbWFpbigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dpbi9XZWJFcnJvcnNX
aW4uY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93aW4vV2Vi
RXJyb3JzV2luLmNwcAppbmRleCA2Njg2MDQzMzk0ZjRmZTMzMjg2NzdmODExZDE0MzQyYTM1NTgx
ODRiLi5mN2Q2NzEyYzY3M2I3YzRkNTczMzlhODYxOGRlMGI1ZDA2MjBhM2VhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dpbi9XZWJFcnJvcnNX
aW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd2lu
L1dlYkVycm9yc1dpbi5jcHAKQEAgLTc4LDQgKzc4LDE4IEBAIFJlc291cmNlRXJyb3IgcGx1Z2lu
V2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKICAg
ICByZXR1cm4gUmVzb3VyY2VFcnJvcihXZWJFcnJvcjo6d2ViS2l0RXJyb3JEb21haW4oKSwga1dL
RXJyb3JDb2RlUGx1Z0luV2lsbEhhbmRsZUxvYWQsIHJlc3BvbnNlLnVybCgpLnN0cmluZygpLCBT
dHJpbmcoKSk7CiB9CiAKK2Jvb2wgc2hvdWxkRmFsbEJhY2soY29uc3QgUmVzb3VyY2VFcnJvciYg
ZXJyb3IpCit7CisgICAgUmVzb3VyY2VFcnJvciBlcnJvckNhbmNlbGxlZCA9IGNhbmNlbGxlZEVy
cm9yKFJlc291cmNlUmVxdWVzdCgpKTsKKyAgICBSZXNvdXJjZUVycm9yIGVycm9yUGx1Z2luV2ls
bEhhbmRsZUxvYWQgPSBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKFJlc291cmNlUmVzcG9uc2Uo
KSk7CisKKyAgICBpZiAoZXJyb3IuaXNDYW5jZWxsYXRpb24oKSAmJiBlcnJvci5kb21haW4oKSA9
PSBlcnJvckNhbmNlbGxlZC5kb21haW4oKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
aWYgKGVycm9yLmVycm9yQ29kZSgpID09IGVycm9yUGx1Z2luV2lsbEhhbmRsZUxvYWQuZXJyb3JD
b2RlKCkgJiYgZXJyb3IuZG9tYWluKCkgPT0gZXJyb3JQbHVnaW5XaWxsSGFuZGxlTG9hZC5kb21h
aW4oKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111011</attachid>
            <date>2011-10-14 07:25:53 -0700</date>
            <delta_ts>2011-10-14 15:19:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70055-20111014112534.patch</filename>
            <type>text/plain</type>
            <size>10379</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc0MDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjOThiY2VhOWI2MWI3NmE5
NGNiODdlOWJjZmM0NDA3OGE4ZTljNzllLi5hZTMzNGNjNDljYmRlM2MwN2Q3MzQ4ZGNjNTY5NmNh
NGYyOWEzOGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzIgQEAKIDIwMTEtMTAtMTMgIEplc3Vz
IFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgogCisgICAg
ICAgIFtXSzJdIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRGYWxsYmFjaygpIHNob3VsZCB1
c2UgYSBwb3J0LXNwZWNpZmljIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDA1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRGYWxs
QmFjayB3aWxsIG5vdyB1c2UgYSBwb3J0LXNwZWNpZmljIGltcGxlbWVudGF0aW9uCisgICAgICAg
IHRocm91Z2ggYSBzaG91bGRGYWxsQmFjayBhZGRlZCB0byBXZWJFcnJvcnMuaC4gQW4gaW1wbGVt
ZW50YXRpb24gZm9yIGVhY2ggcG9ydAorICAgICAgICB3YXMgYWRkZWQgYmFzZWQgb24gdGhlIGRl
Y2lzaW9ucyB0aGV5IG1hZGUgb24gdGhlaXIgV2ViS2l0MSdzIEZyYW1lTG9hZGVyQ2xpZW50Cisg
ICAgICAgIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJFcnJvcnMuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJD
bGllbnQ6OnNob3VsZEZhbGxCYWNrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L2VmbC9XZWJFcnJvcnNFZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpzaG91bGRGYWxsQmFj
ayk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRXJyb3JzR3Rr
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6c2hvdWxkRmFsbEJhY2spOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVycm9yc01hYy5tbToKKyAgICAgICAgKFdlYktp
dDo6c2hvdWxkRmFsbEJhY2spOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
cXQvV2ViRXJyb3JzUXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpjYW5jZWxsZWRFcnJvcik6Cisg
ICAgICAgIChXZWJLaXQ6OnNob3VsZEZhbGxCYWNrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L3dpbi9XZWJFcnJvcnNXaW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpzaG91
bGRGYWxsQmFjayk6CisKKzIwMTEtMTAtMTMgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1
cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCiAgICAgICAgIFtRdF1bV0syXSBXZWJFcnJvcnNR
dC5jcHAgZHVwbGljYXRlcyBjb2RlIGZyb20gV0tFcnJvci5oIGFuZCBXZWJFcnJvci5oCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDA1MwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVycm9y
cy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFcnJvcnMu
aAppbmRleCBiNTM4NjYyNThhYWY1MzZkNDRiYmI3NjBhMWY2YjM3NDkwOGExMjJiLi4xMGQ0OWQx
NGFiZDE0YThmMTJiZGExMDZiMGEyYWZkMmM3YjA3MjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVycm9ycy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRXJyb3JzLmgKQEAgLTQxLDcgKzQx
LDcgQEAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVy
cm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmUKIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgY2Fu
bm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwog
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBwbHVnaW5XaWxs
SGFuZGxlTG9hZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKLQorYm9v
bCBzaG91bGRGYWxsQmFjayhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFdlYkVycm9yc19oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwCmluZGV4IGZkOGI2YjNiYmJmNWUxZmI0YjU2YmZmYTFmZmQwYjk4NGRm
OTQ4M2QuLjVlYmU2ZTgxNGJhNTU4YWMwNzVhZTQzOGZkZTIwODg1NDMwNTM0MzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC05ODEsMTYgKzk4MSw3IEBAIFJlc291cmNl
RXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXNwCiAKIGJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZEZhbGxC
YWNrKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgUmVzb3VyY2VFcnJvciwgY2FuY2VsbGVkRXJyb3IsICh0aGlzLT5jYW5jZWxsZWRF
cnJvcihSZXNvdXJjZVJlcXVlc3QoKSkpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IFJlc291cmNlRXJyb3IsIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IsICh0aGlzLT5wbHVnaW5X
aWxsSGFuZGxlTG9hZEVycm9yKFJlc291cmNlUmVzcG9uc2UoKSkpKTsKLQotICAgIGlmIChlcnJv
ci5lcnJvckNvZGUoKSA9PSBjYW5jZWxsZWRFcnJvci5lcnJvckNvZGUoKSAmJiBlcnJvci5kb21h
aW4oKSA9PSBjYW5jZWxsZWRFcnJvci5kb21haW4oKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgaWYgKGVycm9yLmVycm9yQ29kZSgpID09IHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3Iu
ZXJyb3JDb2RlKCkgJiYgZXJyb3IuZG9tYWluKCkgPT0gcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJv
ci5kb21haW4oKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIHRydWU7Cisg
ICAgcmV0dXJuIFdlYktpdDo6c2hvdWxkRmFsbEJhY2soZXJyb3IpOwogfQogCiBib29sIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L2VmbC9XZWJFcnJvcnNFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9lZmwvV2ViRXJyb3JzRWZsLmNwcAppbmRleCBiYmUxYmY4NmVjYzM3OTljNjBj
OWQzODBiZWE5ODJlN2Y4NWU1YTg3Li5iMmRlZDk2YzdmNTNjOTkwODI0ZDAzMTYzOTlkYWQxYjVl
YzJlOTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L2VmbC9XZWJFcnJvcnNFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvZWZsL1dlYkVycm9yc0VmbC5jcHAKQEAgLTc2LDQgKzc2LDE4IEBAIFJl
c291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSkKICAgICByZXR1cm4gUmVzb3VyY2VFcnJvcigpOwogfQogCitib29sIHNo
b3VsZEZhbGxCYWNrKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQoreworICAgIHN0YXRpYyBj
b25zdCBSZXNvdXJjZUVycm9yIGVycm9yQ2FuY2VsbGVkID0gY2FuY2VsbGVkRXJyb3IoUmVzb3Vy
Y2VSZXF1ZXN0KCkpOworICAgIHN0YXRpYyBjb25zdCBSZXNvdXJjZUVycm9yIGVycm9ySW50ZXJy
dXB0ZWRGb3JQb2xpY3lDaGFuZ2UgPSBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKFJl
c291cmNlUmVxdWVzdCgpKTsKKworICAgIGlmIChlcnJvci5pc0NhbmNlbGxhdGlvbigpICYmIGVy
cm9yLmRvbWFpbigpID09IGVycm9yQ2FuY2VsbGVkLmRvbWFpbigpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBpZiAoZXJyb3IuZXJyb3JDb2RlKCkgPT0gZXJyb3JJbnRlcnJ1cHRlZEZv
clBvbGljeUNoYW5nZS5lcnJvckNvZGUoKSAmJiBlcnJvci5kb21haW4oKSA9PSBlcnJvckludGVy
cnVwdGVkRm9yUG9saWN5Q2hhbmdlLmRvbWFpbigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFcnJvcnNH
dGsuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2Vi
RXJyb3JzR3RrLmNwcAppbmRleCA4Mzc1ZDA2N2FlYjEyZDg5MmFlZmE2OGU2NmVhNjMzYzk4ODI2
M2NjLi44ZTM3MmQ0OWUzZjg4ZDc3MzVhMDBiZjdmMTA1OTRmMTE3ZDE3M2QzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFcnJvcnNH
dGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3Rr
L1dlYkVycm9yc0d0ay5jcHAKQEAgLTcyLDQgKzcyLDIyIEBAIFJlc291cmNlRXJyb3IgcGx1Z2lu
V2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKICAg
ICByZXR1cm4gV2ViQ29yZTo6cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihyZXNwb25zZSk7CiB9
CiAKK2Jvb2wgc2hvdWxkRmFsbEJhY2soY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7Cisg
ICAgc3RhdGljIGNvbnN0IFJlc291cmNlRXJyb3IgZXJyb3JDYW5jZWxsZWQgPSBjYW5jZWxsZWRF
cnJvcihSZXNvdXJjZVJlcXVlc3QoKSk7CisgICAgc3RhdGljIGNvbnN0IFJlc291cmNlRXJyb3Ig
ZXJyb3JQbHVnaW5XaWxsSGFuZGxlTG9hZCA9IHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoUmVz
b3VyY2VSZXNwb25zZSgpKTsKKyAgICBzdGF0aWMgY29uc3QgUmVzb3VyY2VFcnJvciBlcnJvcklu
dGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlID0gaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJv
cihSZXNvdXJjZVJlcXVlc3QoKSk7CisKKyAgICBpZiAoZXJyb3IuaXNDYW5jZWxsYXRpb24oKSAm
JiBlcnJvci5kb21haW4oKSA9PSBlcnJvckNhbmNlbGxlZC5kb21haW4oKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgaWYgKGVycm9yLmVycm9yQ29kZSgpID09IGVycm9yUGx1Z2luV2ls
bEhhbmRsZUxvYWQuZXJyb3JDb2RlKCkgJiYgZXJyb3IuZG9tYWluKCkgPT0gZXJyb3JQbHVnaW5X
aWxsSGFuZGxlTG9hZC5kb21haW4oKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYg
KGVycm9yLmVycm9yQ29kZSgpID09IGVycm9ySW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2UuZXJy
b3JDb2RlKCkgJiYgZXJyb3IuZG9tYWluKCkgPT0gZXJyb3JJbnRlcnJ1cHRlZEZvclBvbGljeUNo
YW5nZS5kb21haW4oKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRXJyb3JzTWFjLm1tIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRXJyb3JzTWFjLm1tCmluZGV4
IDZkZWE2YTA2MzAwMmJmMDExYjZhMTdhODkzNDEyZDY0MmE3M2EzYmIuLjZkMzY5NzUxYzM2NzQy
MGUyZmYxOTNiMGVlMDgzNTQwZjYyMDNmMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVycm9yc01hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJFcnJvcnNNYWMubW0KQEAg
LTg3LDQgKzg3LDE4IEBAIFJlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKICAgICByZXR1cm4gUmVzb3VyY2VFcnJv
cihXZWJFcnJvcjo6d2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlUGx1Z0luV2lsbEhh
bmRsZUxvYWQsIHJlc3BvbnNlLnVybCgpLCBXRUJfVUlfU1RSSU5HKCJQbHVnLWluIGhhbmRsZWQg
bG9hZCIsICJXZWJLaXRFcnJvclBsdWdJbldpbGxIYW5kbGVMb2FkIGRlc2NyaXB0aW9uIikpOwog
fQogCitib29sIHNob3VsZEZhbGxCYWNrKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQorewor
ICAgIHN0YXRpYyBjb25zdCBSZXNvdXJjZUVycm9yIGVycm9yQ2FuY2VsbGVkID0gY2FuY2VsbGVk
RXJyb3IoUmVzb3VyY2VSZXF1ZXN0KCkpOworICAgIHN0YXRpYyBjb25zdCBSZXNvdXJjZUVycm9y
IGVycm9yUGx1Z2luV2lsbEhhbmRsZUxvYWQgPSBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKFJl
c291cmNlUmVzcG9uc2UoKSk7CisKKyAgICBpZiAoZXJyb3IuaXNDYW5jZWxsYXRpb24oKSAmJiBl
cnJvci5kb21haW4oKSA9PSBlcnJvckNhbmNlbGxlZC5kb21haW4oKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgaWYgKGVycm9yLmVycm9yQ29kZSgpID09IGVycm9yUGx1Z2luV2lsbEhh
bmRsZUxvYWQuZXJyb3JDb2RlKCkgJiYgZXJyb3IuZG9tYWluKCkgPT0gZXJyb3JQbHVnaW5XaWxs
SGFuZGxlTG9hZC5kb21haW4oKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJu
IHRydWU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9XZWJFcnJvcnNRdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dlYkVycm9yc1F0LmNwcApp
bmRleCA4Njg0ZjFjODM0NGQ3MTUyOGQxYjZmNTIxMGUyNjY4NDE3NjE0YmJlLi5mNzk5NjFkOWM3
N2M1MTk0ZGNiNjUzZTEyZjFjNTdiNTNlNTk1OGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dlYkVycm9yc1F0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dlYkVycm9yc1F0LmNwcApA
QCAtNDUsNyArNDUsNyBAQCBSZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAgICBSZXNvdXJjZUVycm9yIGVycm9yID0gUmVzb3VyY2VF
cnJvcigiUXROZXR3b3JrIiwgUU5ldHdvcmtSZXBseTo6T3BlcmF0aW9uQ2FuY2VsZWRFcnJvciwg
cmVxdWVzdC51cmwoKS5zdHJpbmcoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJGcmFtZSIsICJSZXF1ZXN0
IGNhbmNlbGxlZCIsIDAsIFFDb3JlQXBwbGljYXRpb246OlVuaWNvZGVVVEY4KSk7CiAgICAgZXJy
b3Iuc2V0SXNDYW5jZWxsYXRpb24odHJ1ZSk7Ci0gICAgcmV0dXJuIGVycm9yOyAgICAKKyAgICBy
ZXR1cm4gZXJyb3I7CiB9CiAKIFJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCkKQEAgLTg0LDQgKzg0LDIyIEBAIFJlc291cmNlRXJyb3IgcGx1
Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJGcmFtZSIsICJMb2FkaW5nIGlzIGhhbmRsZWQgYnkgdGhlIG1lZGlhIGVuZ2luZSIsIDAsIFFD
b3JlQXBwbGljYXRpb246OlVuaWNvZGVVVEY4KSk7CiB9CiAKK2Jvb2wgc2hvdWxkRmFsbEJhY2so
Y29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgc3RhdGljIGNvbnN0IFJlc291cmNl
RXJyb3IgZXJyb3JDYW5jZWxsZWQgPSBjYW5jZWxsZWRFcnJvcihSZXNvdXJjZVJlcXVlc3QoKSk7
CisgICAgc3RhdGljIGNvbnN0IFJlc291cmNlRXJyb3IgZXJyb3JQbHVnaW5XaWxsSGFuZGxlTG9h
ZCA9IHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoUmVzb3VyY2VSZXNwb25zZSgpKTsKKyAgICBz
dGF0aWMgY29uc3QgUmVzb3VyY2VFcnJvciBlcnJvckludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdl
ID0gaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihSZXNvdXJjZVJlcXVlc3QoKSk7CisK
KyAgICBpZiAoZXJyb3IuaXNDYW5jZWxsYXRpb24oKSAmJiBlcnJvci5kb21haW4oKSA9PSBlcnJv
ckNhbmNlbGxlZC5kb21haW4oKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKGVy
cm9yLmVycm9yQ29kZSgpID09IGVycm9yUGx1Z2luV2lsbEhhbmRsZUxvYWQuZXJyb3JDb2RlKCkg
JiYgZXJyb3IuZG9tYWluKCkgPT0gZXJyb3JQbHVnaW5XaWxsSGFuZGxlTG9hZC5kb21haW4oKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKGVycm9yLmVycm9yQ29kZSgpID09IGVy
cm9ySW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2UuZXJyb3JDb2RlKCkgJiYgZXJyb3IuZG9tYWlu
KCkgPT0gZXJyb3JJbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZS5kb21haW4oKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC93aW4vV2ViRXJyb3JzV2luLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvd2luL1dlYkVycm9yc1dpbi5jcHAKaW5kZXggNjY4NjA0MzM5NGY0ZmUzMzI4Njc3
ZjgxMWQxNDM0MmEzNTU4MTg0Yi4uYzJkZGRjZDIxMTBlZTk0OThhZGJkZGZmNGE4YzQ2MTY2NGVi
YjI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC93aW4vV2ViRXJyb3JzV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L3dpbi9XZWJFcnJvcnNXaW4uY3BwCkBAIC03OCw0ICs3OCwxOCBAQCBSZXNv
dXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UpCiAgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoV2ViRXJyb3I6OndlYktpdEVy
cm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZVBsdWdJbldpbGxIYW5kbGVMb2FkLCByZXNwb25zZS51
cmwoKS5zdHJpbmcoKSwgU3RyaW5nKCkpOwogfQogCitib29sIHNob3VsZEZhbGxCYWNrKGNvbnN0
IFJlc291cmNlRXJyb3ImIGVycm9yKQoreworICAgIHN0YXRpYyBjb25zdCBSZXNvdXJjZUVycm9y
IGVycm9yQ2FuY2VsbGVkID0gY2FuY2VsbGVkRXJyb3IoUmVzb3VyY2VSZXF1ZXN0KCkpOworICAg
IHN0YXRpYyBjb25zdCBSZXNvdXJjZUVycm9yIGVycm9yUGx1Z2luV2lsbEhhbmRsZUxvYWQgPSBw
bHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKFJlc291cmNlUmVzcG9uc2UoKSk7CisKKyAgICBpZiAo
ZXJyb3IuaXNDYW5jZWxsYXRpb24oKSAmJiBlcnJvci5kb21haW4oKSA9PSBlcnJvckNhbmNlbGxl
ZC5kb21haW4oKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKGVycm9yLmVycm9y
Q29kZSgpID09IGVycm9yUGx1Z2luV2lsbEhhbmRsZUxvYWQuZXJyb3JDb2RlKCkgJiYgZXJyb3Iu
ZG9tYWluKCkgPT0gZXJyb3JQbHVnaW5XaWxsSGFuZGxlTG9hZC5kb21haW4oKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111093</attachid>
            <date>2011-10-14 15:19:36 -0700</date>
            <delta_ts>2011-10-20 16:20:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70055-20111014191917.patch</filename>
            <type>text/plain</type>
            <size>10579</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTczNjMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3YmMzYzQwODU1MmU1YzE3
MzBlZGUzN2JkM2YwYmYyMDIwZjA0NDFlLi45ODAzYTZmZWNiZTcxMGZmYzU4OGJjODJlMjg1ZTg2
YWRlYTNhZjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTEtMTAtMTMgIEplc3Vz
IFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAg
ICAgIFtXSzJdIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRGYWxsYmFjaygpIHNob3VsZCB1
c2UgYSBwb3J0LXNwZWNpZmljIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDA1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRGYWxs
QmFjayB3aWxsIG5vdyB1c2UgYSBwb3J0LXNwZWNpZmljIGltcGxlbWVudGF0aW9uCisgICAgICAg
IHRocm91Z2ggYSBzaG91bGRGYWxsQmFjayBhZGRlZCB0byBXZWJFcnJvcnMuaC4gQW4gaW1wbGVt
ZW50YXRpb24gZm9yIGVhY2ggcG9ydAorICAgICAgICB3YXMgYWRkZWQgYmFzZWQgb24gdGhlIGRl
Y2lzaW9ucyB0aGV5IG1hZGUgb24gdGhlaXIgV2ViS2l0MSdzIEZyYW1lTG9hZGVyQ2xpZW50Cisg
ICAgICAgIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJFcnJvcnMuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJD
bGllbnQ6OnNob3VsZEZhbGxCYWNrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L2VmbC9XZWJFcnJvcnNFZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpzaG91bGRGYWxsQmFj
ayk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRXJyb3JzR3Rr
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6c2hvdWxkRmFsbEJhY2spOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVycm9yc01hYy5tbToKKyAgICAgICAgKFdlYktp
dDo6c2hvdWxkRmFsbEJhY2spOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
cXQvV2ViRXJyb3JzUXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpjYW5jZWxsZWRFcnJvcik6Cisg
ICAgICAgIChXZWJLaXQ6OnNob3VsZEZhbGxCYWNrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L3dpbi9XZWJFcnJvcnNXaW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpzaG91
bGRGYWxsQmFjayk6CisKIDIwMTEtMTAtMTIgIEpvc2VwaCBQZWNvcmFybyAgPGpvZXBlY2tAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBQYXNzIFBhcnNlZCBBY2NlcHQgQXR0cmlidXRlIE1JTUUgVHlw
ZXMgdG8gV2ViS2l0IENsaWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRXJyb3JzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkVycm9ycy5oCmluZGV4IGI1Mzg2NjI1OGFhZjUzNmQ0NGJiYjc2
MGExZjZiMzc0OTA4YTEyMmIuLjEwZDQ5ZDE0YWJkMTRhOGYxMmJkYTEwNmIwYTJhZmQyYzdiMDcy
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRXJyb3JzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJFcnJvcnMuaApAQCAtNDEsNyArNDEsNyBAQCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGlu
dGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZQog
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CiBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGZpbGVEb2Vz
Tm90RXhpc3RFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CiBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYpOwotCitib29sIHNob3VsZEZhbGxCYWNrKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlRXJyb3ImKTsKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gV2Vi
RXJyb3JzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggZmQ4YjZiM2Ji
YmY1ZTFmYjRiNTZiZmZhMWZmZDBiOTg0ZGY5NDgzZC4uNWViZTZlODE0YmE1NThhYzA3NWFlNDM4
ZmRlMjA4ODU0MzA1MzQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAg
LTk4MSwxNiArOTgxLDcgQEAgUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6cGx1
Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3AKIAogYm9vbCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6c2hvdWxkRmFsbEJhY2soY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3Ip
CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBSZXNvdXJjZUVycm9yLCBjYW5jZWxs
ZWRFcnJvciwgKHRoaXMtPmNhbmNlbGxlZEVycm9yKFJlc291cmNlUmVxdWVzdCgpKSkpOwotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgUmVzb3VyY2VFcnJvciwgcGx1Z2luV2lsbEhhbmRs
ZUxvYWRFcnJvciwgKHRoaXMtPnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoUmVzb3VyY2VSZXNw
b25zZSgpKSkpOwotCi0gICAgaWYgKGVycm9yLmVycm9yQ29kZSgpID09IGNhbmNlbGxlZEVycm9y
LmVycm9yQ29kZSgpICYmIGVycm9yLmRvbWFpbigpID09IGNhbmNlbGxlZEVycm9yLmRvbWFpbigp
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoZXJyb3IuZXJyb3JDb2RlKCkgPT0g
cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvci5lcnJvckNvZGUoKSAmJiBlcnJvci5kb21haW4oKSA9
PSBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yLmRvbWFpbigpKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gV2ViS2l0OjpzaG91bGRGYWxsQmFj
ayhlcnJvcik7CiB9CiAKIGJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbkhhbmRsZVJlcXVl
c3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dlYkVycm9yc0VmbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJFcnJvcnNFZmwuY3Bw
CmluZGV4IGJiZTFiZjg2ZWNjMzc5OWM2MGM5ZDM4MGJlYTk4MmU3Zjg1ZTVhODcuLmIzY2M5NDdi
ZTE5MDY3ZmU5YzRlYjRkYzk5ZjkxYmM0Zjk0MTg1NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dlYkVycm9yc0VmbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2ViRXJyb3JzRWZs
LmNwcApAQCAtNzYsNCArNzYsMTggQEAgUmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9h
ZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogICAgIHJldHVybiBSZXNv
dXJjZUVycm9yKCk7CiB9CiAKK2Jvb2wgc2hvdWxkRmFsbEJhY2soY29uc3QgUmVzb3VyY2VFcnJv
ciYgZXJyb3IpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBSZXNvdXJjZUVycm9y
LCBlcnJvckNhbmNlbGxlZCwgKFdlYktpdDo6Y2FuY2VsbGVkRXJyb3IoUmVzb3VyY2VSZXF1ZXN0
KCkpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBSZXNvdXJjZUVycm9yLCBlcnJv
ckludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlLCAoV2ViS2l0OjppbnRlcnJ1cHRlZEZvclBvbGlj
eUNoYW5nZUVycm9yKFJlc291cmNlUmVxdWVzdCgpKSkpOworCisgICAgaWYgKGVycm9yLmlzQ2Fu
Y2VsbGF0aW9uKCkgJiYgZXJyb3IuZG9tYWluKCkgPT0gZXJyb3JDYW5jZWxsZWQuZG9tYWluKCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChlcnJvci5lcnJvckNvZGUoKSA9PSBl
cnJvckludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlLmVycm9yQ29kZSgpICYmIGVycm9yLmRvbWFp
bigpID09IGVycm9ySW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2UuZG9tYWluKCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvZ3RrL1dlYkVycm9yc0d0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L2d0ay9XZWJFcnJvcnNHdGsuY3BwCmluZGV4IDgzNzVkMDY3YWViMTJkODkyYWVm
YTY4ZTY2ZWE2MzNjOTg4MjYzY2MuLmQyOWQ4ODU2ZDM0N2IxZTk5M2I0NTA5NDA0YzZlMzk2MzI4
ZjQ2MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvZ3RrL1dlYkVycm9yc0d0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9ndGsvV2ViRXJyb3JzR3RrLmNwcApAQCAtNzIsNCArNzIsMjIgQEAgUmVz
b3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlKQogICAgIHJldHVybiBXZWJDb3JlOjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVy
cm9yKHJlc3BvbnNlKTsKIH0KIAorYm9vbCBzaG91bGRGYWxsQmFjayhjb25zdCBSZXNvdXJjZUVy
cm9yJiBlcnJvcikKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFJlc291cmNlRXJy
b3IsIGVycm9yQ2FuY2VsbGVkLCAoV2ViS2l0OjpjYW5jZWxsZWRFcnJvcihSZXNvdXJjZVJlcXVl
c3QoKSkpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFJlc291cmNlRXJyb3IsIGVy
cm9yUGx1Z2luV2lsbEhhbmRsZUxvYWQsIChXZWJLaXQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJy
b3IoUmVzb3VyY2VSZXNwb25zZSgpKSkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
UmVzb3VyY2VFcnJvciwgZXJyb3JJbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZSwgKFdlYktpdDo6
aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihSZXNvdXJjZVJlcXVlc3QoKSkpKTsKKwor
ICAgIGlmIChlcnJvci5pc0NhbmNlbGxhdGlvbigpICYmIGVycm9yLmRvbWFpbigpID09IGVycm9y
Q2FuY2VsbGVkLmRvbWFpbigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoZXJy
b3IuZXJyb3JDb2RlKCkgPT0gZXJyb3JQbHVnaW5XaWxsSGFuZGxlTG9hZC5lcnJvckNvZGUoKSAm
JiBlcnJvci5kb21haW4oKSA9PSBlcnJvclBsdWdpbldpbGxIYW5kbGVMb2FkLmRvbWFpbigpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoZXJyb3IuZXJyb3JDb2RlKCkgPT0gZXJy
b3JJbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZS5lcnJvckNvZGUoKSAmJiBlcnJvci5kb21haW4o
KSA9PSBlcnJvckludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlLmRvbWFpbigpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L21hYy9XZWJFcnJvcnNNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L21hYy9XZWJFcnJvcnNNYWMubW0KaW5kZXggNmRlYTZhMDYzMDAyYmYwMTFiNmExN2E4
OTM0MTJkNjQyYTczYTNiYi4uMGIxNzBiYmY1OTFkNTY5NTEyZmRmNjUzYjA2N2IwN2IxNzVmZDE1
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9t
YWMvV2ViRXJyb3JzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkVycm9yc01hYy5tbQpAQCAtODcsNCArODcsMTggQEAgUmVzb3VyY2VF
cnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQogICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFdlYkVycm9yOjp3ZWJLaXRFcnJvckRv
bWFpbigpLCBrV0tFcnJvckNvZGVQbHVnSW5XaWxsSGFuZGxlTG9hZCwgcmVzcG9uc2UudXJsKCks
IFdFQl9VSV9TVFJJTkcoIlBsdWctaW4gaGFuZGxlZCBsb2FkIiwgIldlYktpdEVycm9yUGx1Z0lu
V2lsbEhhbmRsZUxvYWQgZGVzY3JpcHRpb24iKSk7CiB9CiAKK2Jvb2wgc2hvdWxkRmFsbEJhY2so
Y29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBSZXNvdXJjZUVycm9yLCBlcnJvckNhbmNlbGxlZCwgKFdlYktpdDo6Y2FuY2VsbGVkRXJy
b3IoUmVzb3VyY2VSZXF1ZXN0KCkpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBS
ZXNvdXJjZUVycm9yLCBlcnJvclBsdWdpbldpbGxIYW5kbGVMb2FkLCAoV2ViS2l0OjpwbHVnaW5X
aWxsSGFuZGxlTG9hZEVycm9yKFJlc291cmNlUmVzcG9uc2UoKSkpKTsKKworICAgIGlmIChlcnJv
ci5pc0NhbmNlbGxhdGlvbigpICYmIGVycm9yLmRvbWFpbigpID09IGVycm9yQ2FuY2VsbGVkLmRv
bWFpbigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoZXJyb3IuZXJyb3JDb2Rl
KCkgPT0gZXJyb3JQbHVnaW5XaWxsSGFuZGxlTG9hZC5lcnJvckNvZGUoKSAmJiBlcnJvci5kb21h
aW4oKSA9PSBlcnJvclBsdWdpbldpbGxIYW5kbGVMb2FkLmRvbWFpbigpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0
L1dlYkVycm9yc1F0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvcXQvV2ViRXJyb3JzUXQuY3BwCmluZGV4IGJjZDFmYTVlZmFhMGQ2OGExNDNiMDZmYWEyODRl
ZWYzYzk5NjhlZGMuLjViODEyMjU3OTA3YzU1MmMxZmZjNzNkZTc5YjNkNzM2MDI3MTRjNWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2Vi
RXJyb3JzUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvcXQvV2ViRXJyb3JzUXQuY3BwCkBAIC01NSw3ICs1NSw3IEBAIFJlc291cmNlRXJyb3IgY2Fu
Y2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogICAgIFJlc291cmNl
RXJyb3IgZXJyb3IgPSBSZXNvdXJjZUVycm9yKCJRdE5ldHdvcmsiLCBRTmV0d29ya1JlcGx5OjpP
cGVyYXRpb25DYW5jZWxlZEVycm9yLCByZXF1ZXN0LnVybCgpLnN0cmluZygpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYkZyYW1lIiwgIlJlcXVlc3QgY2FuY2VsbGVkIiwgMCwgUUNvcmVBcHBsaWNhdGlvbjo6
VW5pY29kZVVURjgpKTsKICAgICBlcnJvci5zZXRJc0NhbmNlbGxhdGlvbih0cnVlKTsKLSAgICBy
ZXR1cm4gZXJyb3I7ICAgIAorICAgIHJldHVybiBlcnJvcjsKIH0KIAogUmVzb3VyY2VFcnJvciBi
bG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQpAQCAtOTQsNCArOTQs
MjIgQEAgUmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogICAgICAgICAgICAgICAgICAgICAgICAgIFFDb3JlQXBw
bGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYkZyYW1lIiwgIkxvYWRpbmcgaXMgaGFuZGxlZCBieSB0
aGUgbWVkaWEgZW5naW5lIiwgMCwgUUNvcmVBcHBsaWNhdGlvbjo6VW5pY29kZVVURjgpKTsKIH0K
IAorYm9vbCBzaG91bGRGYWxsQmFjayhjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3sKKyAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFJlc291cmNlRXJyb3IsIGVycm9yQ2FuY2VsbGVk
LCAoV2ViS2l0OjpjYW5jZWxsZWRFcnJvcihSZXNvdXJjZVJlcXVlc3QoKSkpKTsKKyAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IFJlc291cmNlRXJyb3IsIGVycm9yUGx1Z2luV2lsbEhhbmRs
ZUxvYWQsIChXZWJLaXQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoUmVzb3VyY2VSZXNwb25z
ZSgpKSkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgUmVzb3VyY2VFcnJvciwgZXJy
b3JJbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZSwgKFdlYktpdDo6aW50ZXJydXB0ZWRGb3JQb2xp
Y3lDaGFuZ2VFcnJvcihSZXNvdXJjZVJlcXVlc3QoKSkpKTsKKworICAgIGlmIChlcnJvci5pc0Nh
bmNlbGxhdGlvbigpICYmIGVycm9yLmRvbWFpbigpID09IGVycm9yQ2FuY2VsbGVkLmRvbWFpbigp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoZXJyb3IuZXJyb3JDb2RlKCkgPT0g
ZXJyb3JQbHVnaW5XaWxsSGFuZGxlTG9hZC5lcnJvckNvZGUoKSAmJiBlcnJvci5kb21haW4oKSA9
PSBlcnJvclBsdWdpbldpbGxIYW5kbGVMb2FkLmRvbWFpbigpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBpZiAoZXJyb3IuZXJyb3JDb2RlKCkgPT0gZXJyb3JJbnRlcnJ1cHRlZEZvclBv
bGljeUNoYW5nZS5lcnJvckNvZGUoKSAmJiBlcnJvci5kb21haW4oKSA9PSBlcnJvckludGVycnVw
dGVkRm9yUG9saWN5Q2hhbmdlLmRvbWFpbigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dpbi9XZWJFcnJvcnNXaW4u
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93aW4vV2ViRXJy
b3JzV2luLmNwcAppbmRleCA2Njg2MDQzMzk0ZjRmZTMzMjg2NzdmODExZDE0MzQyYTM1NTgxODRi
Li40NmVkYjQwMjc0MGMyNDhmNTM1NTcyY2Y5MDk2ZjJmNGQ3YjQ0NTA1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dpbi9XZWJFcnJvcnNXaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd2luL1dl
YkVycm9yc1dpbi5jcHAKQEAgLTc4LDQgKzc4LDE4IEBAIFJlc291cmNlRXJyb3IgcGx1Z2luV2ls
bEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKICAgICBy
ZXR1cm4gUmVzb3VyY2VFcnJvcihXZWJFcnJvcjo6d2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJy
b3JDb2RlUGx1Z0luV2lsbEhhbmRsZUxvYWQsIHJlc3BvbnNlLnVybCgpLnN0cmluZygpLCBTdHJp
bmcoKSk7CiB9CiAKK2Jvb2wgc2hvdWxkRmFsbEJhY2soY29uc3QgUmVzb3VyY2VFcnJvciYgZXJy
b3IpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBSZXNvdXJjZUVycm9yLCBlcnJv
ckNhbmNlbGxlZCwgKFdlYktpdDo6Y2FuY2VsbGVkRXJyb3IoUmVzb3VyY2VSZXF1ZXN0KCkpKSk7
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBSZXNvdXJjZUVycm9yLCBlcnJvclBsdWdp
bldpbGxIYW5kbGVMb2FkLCAoV2ViS2l0OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKFJlc291
cmNlUmVzcG9uc2UoKSkpKTsKKworICAgIGlmIChlcnJvci5pc0NhbmNlbGxhdGlvbigpICYmIGVy
cm9yLmRvbWFpbigpID09IGVycm9yQ2FuY2VsbGVkLmRvbWFpbigpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBpZiAoZXJyb3IuZXJyb3JDb2RlKCkgPT0gZXJyb3JQbHVnaW5XaWxsSGFu
ZGxlTG9hZC5lcnJvckNvZGUoKSAmJiBlcnJvci5kb21haW4oKSA9PSBlcnJvclBsdWdpbldpbGxI
YW5kbGVMb2FkLmRvbWFpbigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111866</attachid>
            <date>2011-10-20 16:20:22 -0700</date>
            <delta_ts>2011-10-21 13:51:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70055-20111020202006.patch</filename>
            <type>text/plain</type>
            <size>2145</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTgwMzMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3NzBhYTllNDExYzFkODcz
MmY5ZGY4MGE5ZTU1MWI1NWI1N2RjZmVlLi4wNjRhN2ZhOTU1MDU4MDZkMzY1NmYxMmViMDBmYjJj
MjYzYmVlMDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAKIDIwMTEtMTAtMjAgIEplc3Vz
IFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgogCisgICAg
ICAgIFtXSzJdIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRGYWxsYmFjaygpIHNob3VsZCB1
c2UgYSBwb3J0LXNwZWNpZmljIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDA1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIFF0V2ViS2l0IDEsIG91ciBGcmFtZUxvYWRlckNs
aWVudDo6c2hvdWxkRmFsbGJhY2sgd2FzIGNoZWNraW5nIGZvciBJbnRlcnJ1cHRlZEZvclBvbGlj
eUNoYW5nZQorICAgICAgICBlcnJvci4gSW4gV2ViS2l0Miwgd2UgYXJlIHJlbHlpbmcgb24gdGhl
IGNvbW1vbiBpbXBsZW1lbnRhdGlvbiBmb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZEZh
bGxiYWNrCisgICAgICAgIHdoaWNoIGRvZXNuJ3QgY2hlY2sgZm9yIHRoZSBzYW1lIGVycm9yLiBI
ZXJlIHdlIGFkZCB0aGlzIGNoZWNrIG9ubHkgZm9yIFF0LgorCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRGYWxsQmFjayk6CisKKzIwMTEtMTAtMjAg
IEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgor
CiAgICAgICAgIFtRdF1bV0syXSBxd2ViZXJyb3IqIHNob3VsZCBmb2xsb3cgdGhlIG5ldyBmaWxl
IGFuZCBjbGFzcyBuYW1pbmcgcnVsZXMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTcwNTUwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
aW5kZXggMWIyNWFkYTM0NjVmMzZiYjFhYTFkYWYxNjgzYzMzZmY5ODViMTY0NS4uMDVlMThhZTZi
ZDc3MzJmYjI3ODg4YmViMDAyNzIwNzAwZThjOGVhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAKQEAgLTk5MCw2ICs5OTAsMTMgQEAgYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6c2hvdWxkRmFsbEJhY2soY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAgICAgaWYgKGVy
cm9yLmVycm9yQ29kZSgpID09IHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IuZXJyb3JDb2RlKCkg
JiYgZXJyb3IuZG9tYWluKCkgPT0gcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvci5kb21haW4oKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisjaWYgUExBVEZPUk0oUVQpCisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBSZXNvdXJjZUVycm9yLCBlcnJvckludGVycnVwdGVkRm9yUG9saWN5
Q2hhbmdlLCAodGhpcy0+aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihSZXNvdXJjZVJl
cXVlc3QoKSkpKTsKKworICAgIGlmIChlcnJvci5lcnJvckNvZGUoKSA9PSBlcnJvckludGVycnVw
dGVkRm9yUG9saWN5Q2hhbmdlLmVycm9yQ29kZSgpICYmIGVycm9yLmRvbWFpbigpID09IGVycm9y
SW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2UuZG9tYWluKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyNlbmRpZgorCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>