<?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>37215</bug_id>
          
          <creation_ts>2010-04-07 09:06:17 -0700</creation_ts>
          <short_desc>Web Inspector: be more explicit about resource loading errors</short_desc>
          <delta_ts>2010-04-28 04:49:24 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>37614</dependson>
    
    <dependson>38214</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrey Kosyakov">caseq</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>bweinstein</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>ossy</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>209660</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-04-07 09:06:17 -0700</bug_when>
    <thetext>Currently, if a resource fails to load, we only show this in resource&apos;s headers tab. Since a failure to load a resource is likely to lead to a noticeable change in page behavior, I suggest we be more explicit about this, e.g. log an error message to console. This will lead to an error bubble being displayed against resource&apos;s icon in the resource list, and provide a hint to developers even in case resource tracking is not enabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209667</commentid>
    <comment_count>1</comment_count>
    <who name="Patrick Mueller">pmuellr</who>
    <bug_when>2010-04-07 09:18:52 -0700</bug_when>
    <thetext>I agree we should provide some additional diagnostic information regarding resources that don&apos;t load - I just experienced this myself regarding a resource not be loaded from an app-cache-enabled page, for instance.

However, I dislike spamming the console.  Error bubble in the resource list is fine.  Perhaps a line in the Timeline (category &quot;Loading&quot;) with diagnostic info.  

Where would be put the diagnostic info in the Resources panel?  Create a new &quot;tab&quot; (peer of Headers/Content) with the information?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209714</commentid>
    <comment_count>2</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-04-07 10:38:02 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; I agree we should provide some additional diagnostic information regarding
&gt; resources that don&apos;t load - I just experienced this myself regarding a resource
&gt; not be loaded from an app-cache-enabled page, for instance.
&gt; 
&gt; However, I dislike spamming the console.  Error bubble in the resource list is
&gt; fine.  Perhaps a line in the Timeline (category &quot;Loading&quot;) with diagnostic
&gt; info.

My point is that a failure to load resource is supposed to be rare, but rather significant event, so in my view reporting it shouldn&apos;t be considered as spamming by most. Besides, currently we&apos;re very likely to produce &quot;content type mismatch&quot; warning in console when receiving error response from server (typically text/html) in response to many resource types (images, scripts, stylesheets) -- so my patch would just replace it with more comprehensible message. Also, I think it makes sense to produce it even in case resource tracking is disabled, to give users opening inspector a quick hint on why something on a page might have failed. Do you have a use case in mind that where a resource loading failure is &quot;normal&quot; and would cause lots of messages to be logged?

&gt; 
&gt; Where would be put the diagnostic info in the Resources panel?  Create a new
&gt; &quot;tab&quot; (peer of Headers/Content) with the information?

In the current version of my patch, the errors cause a red bubble to appear next to a resource icon -- I think this is pretty sufficient to give a quick overview of failed resources. If the consensus is that we don&apos;t want this logged to console, I propose we still leave these bubbles (just implement it slightly differently). I wouldn&apos;t like to introduce any additional tabs for that, as it would be counter-intuitive -- one would need to know to navigate there (we already display failed status on a resource&apos;s headers tab).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209723</commentid>
    <comment_count>3</comment_count>
      <attachid>52752</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-04-07 10:43:48 -0700</bug_when>
    <thetext>Created attachment 52752
Log error message to inspector console if a resource fails to load. Disable checking of mime-type consistency for failed resource.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209727</commentid>
    <comment_count>4</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-04-07 10:47:51 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #1)
&gt; &gt; I agree we should provide some additional diagnostic information regarding
&gt; &gt; resources that don&apos;t load - I just experienced this myself regarding a resource
&gt; &gt; not be loaded from an app-cache-enabled page, for instance.
&gt; &gt; 
&gt; &gt; However, I dislike spamming the console.  Error bubble in the resource list is
&gt; &gt; fine.  Perhaps a line in the Timeline (category &quot;Loading&quot;) with diagnostic
&gt; &gt; info.
&gt; 
&gt; My point is that a failure to load resource is supposed to be rare, but rather
&gt; significant event, so in my view reporting it shouldn&apos;t be considered as
&gt; spamming by most. Besides, currently we&apos;re very likely to produce &quot;content type
&gt; mismatch&quot; warning in console when receiving error response from server
&gt; (typically text/html) in response to many resource types (images, scripts,
&gt; stylesheets) -- so my patch would just replace it with more comprehensible
&gt; message. Also, I think it makes sense to produce it even in case resource
&gt; tracking is disabled, to give users opening inspector a quick hint on why
&gt; something on a page might have failed. Do you have a use case in mind that
&gt; where a resource loading failure is &quot;normal&quot; and would cause lots of messages
&gt; to be logged?

I think the console message is fine and should definatly replace the existing incorrect warning.

&gt; &gt; Where would be put the diagnostic info in the Resources panel?  Create a new
&gt; &gt; &quot;tab&quot; (peer of Headers/Content) with the information?
&gt; 
&gt; In the current version of my patch, the errors cause a red bubble to appear
&gt; next to a resource icon -- I think this is pretty sufficient to give a quick
&gt; overview of failed resources. If the consensus is that we don&apos;t want this
&gt; logged to console, I propose we still leave these bubbles (just implement it
&gt; slightly differently). I wouldn&apos;t like to introduce any additional tabs for
&gt; that, as it would be counter-intuitive -- one would need to know to navigate
&gt; there (we already display failed status on a resource&apos;s headers tab).

Are you using the existing error count on the right of the resource in the sidebar?

I agree and additional tab is overkill here. There is already the HTTP status code for showing failure in the Headers tab.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209739</commentid>
    <comment_count>5</comment_count>
      <attachid>52752</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-04-07 11:07:56 -0700</bug_when>
    <thetext>Comment on attachment 52752
Log error message to inspector console if a resource fails to load. Disable checking of mime-type consistency for failed resource. 


&gt; +    String message = &quot;Failed to load resource &quot; + url;
&gt; +    if (status)
&gt; +        message += String::format(&quot;, status: %d&quot;, status);
&gt; +
&gt; +    addMessageToConsole(OtherMessageSource, LogMessageType, ErrorMessageLevel, message, 0, url);

I think it might be best to do this in the front-end, then the message can be localized. But that isn&apos;t as important.

The message could be clearer, something like:

     Failed to load resource. The server responded with a status of %u.

Consider using format for both variations of the message instead of appending strings. I don&apos;t think you need to include the URL in the message since the URL is automatically included as meta data and shown as a link with the message.

&gt; +    void reportResourceError(const String&amp; url, int status = 0);

Status should be unsigned.

&gt; +        // If status is an error, content is likely to be of an inconsistent type,
&gt; +        // as it&apos;s going to be an error message. We do not want to emit a warning
&gt; +        // for this, though, as this will already be reported as resource loading
&gt; +        // failure.

It is unfornanate to have a widow in comments like this. It is less annoying to have longer lines than to have widows, IMHO.

&gt; -        resource.warnings = 0;
&gt; -        resource.errors = 0;

Why is this needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209773</commentid>
    <comment_count>6</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-04-07 12:12:40 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 52752 [details])
&gt; 
&gt; &gt; +    String message = &quot;Failed to load resource &quot; + url;
&gt; &gt; +    if (status)
&gt; &gt; +        message += String::format(&quot;, status: %d&quot;, status);
&gt; &gt; +
&gt; &gt; +    addMessageToConsole(OtherMessageSource, LogMessageType, ErrorMessageLevel, message, 0, url);
&gt; 
&gt; I think it might be best to do this in the front-end, then the message can be
&gt; localized. But that isn&apos;t as important.
&gt; 

I did consider making it in front-end to enable localization, but it would be an effort of a different scale -- we need either:
- introduce another call to front-end, along with some buffering for these events in InspectorController in case front-end is not yet attached;
- introduce special console message type to piggy-back existing console message transmission &amp; buffering (a bit of a hack, perhaps).

I wasn&apos;t sure whether the added mess would be justified by increased functionality, so I&apos;d rather leave it to reviewers discretion ;)

&gt; The message could be clearer, something like:
&gt; 
&gt;      Failed to load resource. The server responded with a status of %u.
&gt;
&gt; Consider using format for both variations of the message instead of appending
&gt; strings. I don&apos;t think you need to include the URL in the message since the URL
&gt; is automatically included as meta data and shown as a link with the message.

Agree, fixed.

&gt; &gt; +    void reportResourceError(const String&amp; url, int status = 0);
&gt; 
&gt; Status should be unsigned.

I made it int as it happened to be int in ResourceResposeBase. Just being paranoid about the unlikely case someone decides to (ab)use negative statuses (e.g. for network-level errors?)

&gt; &gt; +        // failure.
&gt; 
&gt; It is unfornanate to have a widow in comments like this. It is less annoying to
&gt; have longer lines than to have widows, IMHO.

Fixed.

&gt; &gt; -        resource.warnings = 0;
&gt; &gt; -        resource.errors = 0;
&gt; 
&gt; Why is this needed?

For XHRs, we happen to change resource type quite late (after didReceiveResponse), and this used to reset errors/warnings counters. We only call recreateViewForResourceIfNeeded in the only place, in Resource&apos;s setter for category, so I thought resetting errors/warnings counters there is not appropriate there and removing it wouldn&apos;t harm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209778</commentid>
    <comment_count>7</comment_count>
      <attachid>52769</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-04-07 12:23:57 -0700</bug_when>
    <thetext>Created attachment 52769
Log error message to inspector console if a resource fails to load. Disable checking of mime-type consistency for failed resource (fixed messages)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209792</commentid>
    <comment_count>8</comment_count>
      <attachid>52769</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-04-07 12:57:57 -0700</bug_when>
    <thetext>Comment on attachment 52769
Log error message to inspector console if a resource fails to load. Disable checking of mime-type consistency for failed resource (fixed messages)


&gt; +    // Safari doesn&apos;t report resource URL, so do our best by retrieving it from our
&gt; +    // resource record (obviously, works only with resource tracking enabled).

It isn&apos;t Safari at this level. It would be CFNetwork. I am surprised the URL isn&apos;t there, since we do show errors in Safari&apos;s activity monitor just fine and it uses a similar code path as the Inspector&apos;s didFailLoading.

Otherwise r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209984</commentid>
    <comment_count>9</comment_count>
    <who name="Patrick Mueller">pmuellr</who>
    <bug_when>2010-04-07 21:22:15 -0700</bug_when>
    <thetext>re: comment 2: &quot;Do you have a use case in mind that where a resource loading failure is &quot;normal&quot; and would cause lots of messages to be logged?&quot;

I didn&apos;t mean to imply I thought resource loading was &quot;normal&quot;, more that I&apos;ve heard other complaints about excess messages being printed to the console; for example XHR completion messages.  Used to be, that was the only way to provide information to the user; today there are a variety of other panels.  I tend to think of the console now as just a REPL, but it&apos;s serving dual purpose as both a logging device and a REPL.

re: comment 4: &quot;There is already the HTTP status code for showing failure in the Headers tab.&quot;

Which isn&apos;t appropriate if the resource never got an HTTP response.  Examples: XHR requests that result in xhr.status == 0 (when you can&apos;t connect to the server, and probably other cases); resource loads in an app-cache environment where the resource isn&apos;t listed in the manifest (no request is ever made of the resource, but it shows up in the resource list - as it should).

In both of these cases, there is additional information that we can provide, in theory, about why the resource wasn&apos;t loaded.  Let&apos;s say we can actually determine the reason why an xhr.status == 0 occurred, say ECONNREFUSED when trying to access the resource - where would we provide that information?  The app-cache example would require a sentence or two explaining the problem (&quot;a resource was requested which should have been listed in the manifest, but wasn&apos;t, so the resource not loaded&quot;). 

I think this sort of information could go in the headers tab, although I suppose if there&apos;s no content, it could go in the content tab as well.  Or both.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210215</commentid>
    <comment_count>10</comment_count>
      <attachid>52870</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-04-08 08:31:34 -0700</bug_when>
    <thetext>Created attachment 52870
Log error message to inspector console if a resource fails to load. Disable checking of mime-type consistency for failed resource (added localized error details)

Thanks for the hint, I guess I gave up a little bit to early yesterday -- it transpired to be a fairly trivial bug in WebCore platform code for mac (see http://webkit.org/b/37274). Fixed this, along with localized HTTP statuses as a bonus. Unfortunately, I can&apos;t use String::format() now, as it happened not to support UTF-8 (sic!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210219</commentid>
    <comment_count>11</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-04-08 08:41:40 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; re: comment 2: &quot;Do you have a use case in mind that where a resource loading
&gt; failure is &quot;normal&quot; and would cause lots of messages to be logged?&quot;
&gt; 
&gt; I didn&apos;t mean to imply I thought resource loading was &quot;normal&quot;, more that I&apos;ve
&gt; heard other complaints about excess messages being printed to the console; for
&gt; example XHR completion messages.  

I disable logging XHR messages to console a few days ago, so there&apos;s going to be way less noise now. The key difference to logging resource failures is that these are of much greater importance and usually mean something went wrong -- much as JS errors that we also log there.

&gt; re: comment 4: &quot;There is already the HTTP status code for showing failure in
&gt; the Headers tab.&quot;
&gt; 
&gt; Which isn&apos;t appropriate if the resource never got an HTTP response.  Examples:
&gt; XHR requests that result in xhr.status == 0 (when you can&apos;t connect to the
&gt; server, and probably other cases); resource loads in an app-cache environment
&gt; where the resource isn&apos;t listed in the manifest (no request is ever made of the
&gt; resource, but it shows up in the resource list - as it should).

That&apos;s not the case where we used to log those messages -- they were logged only when we got an erroneous HTTP response.

&gt; In both of these cases, there is additional information that we can provide, in
&gt; theory, about why the resource wasn&apos;t loaded.  Let&apos;s say we can actually
&gt; determine the reason why an xhr.status == 0 occurred, say ECONNREFUSED when
&gt; trying to access the resource - where would we provide that information?  The

I like the idea to provide details on network-level failures on resource tab -- I&apos;ll have a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210686</commentid>
    <comment_count>12</comment_count>
      <attachid>52870</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-04-09 05:03:44 -0700</bug_when>
    <thetext>Comment on attachment 52870
Log error message to inspector console if a resource fails to load. Disable checking of mime-type consistency for failed resource (added localized error details)

Following code workds all over the place in WebCore, why is your case so special?

String::format(&quot;Failed to load resource: the server responded with a status of %u (%s)&quot;, response.httpStatusCode(), response.httpStatusText().utf8().data());</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210696</commentid>
    <comment_count>13</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-04-09 06:07:18 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 52870 [details])
&gt; Following code workds all over the place in WebCore, why is your case so
&gt; special?
&gt; 
&gt; String::format(&quot;Failed to load resource: the server responded with a status of
&gt; %u (%s)&quot;, response.httpStatusCode(), response.httpStatusText().utf8().data());

I can&apos;t help finding &quot;code works all over the place in WebCore&quot; to be a bit of overstatement. The way I implemented initially was exactly as you suggested, and here&apos;s what happens: String::format() uses StringImpl::create() to create a String, which treats input as ASCII characters and just performs byte-to-word expansion over it, mangling UTF-8. I filed http://webkit.org/b/37327 on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210779</commentid>
    <comment_count>14</comment_count>
      <attachid>52962</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-04-09 09:55:25 -0700</bug_when>
    <thetext>Created attachment 52962
Log error message to inspector console if a resource fails to load. Disable checking of mime-type consistency for failed resource (added tests)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212586</commentid>
    <comment_count>15</comment_count>
      <attachid>52962</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-14 14:49:12 -0700</bug_when>
    <thetext>Comment on attachment 52962
Log error message to inspector console if a resource fails to load. Disable checking of mime-type consistency for failed resource (added tests)

Clearing flags on attachment: 52962

Committed r57609: &lt;http://trac.webkit.org/changeset/57609&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212587</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-14 14:49:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212604</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-14 15:07:55 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/57609 might have broken Qt Linux Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212606</commentid>
    <comment_count>18</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-14 15:12:40 -0700</bug_when>
    <thetext>Is Qt&apos;s inspector implementation wrong?
http://build.webkit.org/results/Qt%20Linux%20Release/r57609%20(10105)/inspector/console-resource-errors-pretty-diff.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212607</commentid>
    <comment_count>19</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-14 15:13:45 -0700</bug_when>
    <thetext>Looks like this broke on SL too:
http://build.webkit.org/results/SnowLeopard%20Intel%20Release%20(Tests)/r57609%20(8298)/inspector/console-resource-errors-pretty-diff.html

Do these all need platform specific results, or should we roll this out?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212614</commentid>
    <comment_count>20</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-04-14 15:23:07 -0700</bug_when>
    <thetext>I don&apos;t think it is a good idea that inspector/console-resource-errors.html
test make XMLHttpRequest, because here http server is stopped. I think it should be moved under http/tests/...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212641</commentid>
    <comment_count>21</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-14 16:16:28 -0700</bug_when>
    <thetext>Was rolled out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212649</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-14 16:23:36 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/57610 might have broken Leopard Intel Debug (Tests)
The following changes are on the blame list:
http://trac.webkit.org/changeset/57610
http://trac.webkit.org/changeset/57611</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213332</commentid>
    <comment_count>23</comment_count>
      <attachid>53546</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-04-16 11:48:02 -0700</bug_when>
    <thetext>Created attachment 53546
patch

Sorry for broken tests -- this is due to error messages for file:// resources being very platform-specific. I moved the test to http now, this makes error messages consistent for all platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217811</commentid>
    <comment_count>24</comment_count>
      <attachid>53546</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-27 11:47:54 -0700</bug_when>
    <thetext>Comment on attachment 53546
patch

Clearing flags on attachment: 53546

Committed r58318: &lt;http://trac.webkit.org/changeset/58318&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217812</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-27 11:48:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217873</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-27 13:02:58 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/58318 might have broken Tiger Intel Release
The following changes are on the blame list:
http://trac.webkit.org/changeset/58318
http://trac.webkit.org/changeset/58319</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217886</commentid>
    <comment_count>27</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-27 13:28:00 -0700</bug_when>
    <thetext>This broke Tiger:
http://build.webkit.org/results/Tiger%20Intel%20Release/r58319%20(11315)/http/tests/inspector/console-resource-errors-diffs.txt
--- /Volumes/Data/WebKit-BuildSlave/tiger-intel-release/build/layout-test-results/http/tests/inspector/console-resource-errors-expected.txt	2010-04-27 12:32:32.000000000 -0700
+++ /Volumes/Data/WebKit-BuildSlave/tiger-intel-release/build/layout-test-results/http/tests/inspector/console-resource-errors-actual.txt	2010-04-27 12:32:32.000000000 -0700
@@ -1,7 +1,7 @@
  Tests that errors to load a resource cause error messages to be logged to console.
 
-missing.cssFailed to load resource: the server responded with a status of 404 (Not Found) console-message console-other-source console-error-level
-non-existent-iframe.htmlFailed to load resource: the server responded with a status of 404 (Not Found) console-message console-other-source console-error-level
-non-existent-script.jsFailed to load resource: the server responded with a status of 404 (Not Found) console-message console-other-source console-error-level
-non-existent-xhrFailed to load resource: the server responded with a status of 404 (Not Found) console-message console-other-source console-error-level
+missing.cssFailed to load resource: the server responded with a status of 404 (OK) console-message console-other-source console-error-level
+non-existent-iframe.htmlFailed to load resource: the server responded with a status of 404 (OK) console-message console-other-source console-error-level
+non-existent-script.jsFailed to load resource: the server responded with a status of 404 (OK) console-message console-other-source console-error-level
+non-existent-xhrFailed to load resource: the server responded with a status of 404 (OK) console-message console-other-source console-error-level</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217890</commentid>
    <comment_count>28</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-27 13:30:46 -0700</bug_when>
    <thetext>Created rollout bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217979</commentid>
    <comment_count>29</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-27 15:05:31 -0700</bug_when>
    <thetext>Reverted r58318 for reason:

Broke test on Tiger.  Might just need updated results, unclear.

Committed r58342: &lt;http://trac.webkit.org/changeset/58342&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218298</commentid>
    <comment_count>30</comment_count>
      <attachid>54543</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-04-28 02:58:37 -0700</bug_when>
    <thetext>Created attachment 54543
patch; added test expectation overrides for mac-tiger

See https://bugs.webkit.org/show_bug.cgi?id=37274 and https://bugs.webkit.org/show_bug.cgi?id=24572 on why we need expectations override for Tiger.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218332</commentid>
    <comment_count>31</comment_count>
      <attachid>54543</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-28 04:49:15 -0700</bug_when>
    <thetext>Comment on attachment 54543
patch; added test expectation overrides for mac-tiger

Clearing flags on attachment: 54543

Committed r58403: &lt;http://trac.webkit.org/changeset/58403&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218333</commentid>
    <comment_count>32</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-28 04:49:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52752</attachid>
            <date>2010-04-07 10:43:48 -0700</date>
            <delta_ts>2010-04-07 12:23:57 -0700</delta_ts>
            <desc>Log error message to inspector console if a resource fails to load. Disable checking of mime-type consistency for failed resource. </desc>
            <filename>resource-errors.patch</filename>
            <type>text/plain</type>
            <size>5531</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzIxNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTAtMDQtMDcgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBMb2cgZXJyb3IgbWVzc2FnZSB0byBpbnNwZWN0b3IgY29uc29sZSBpZiBhIHJlc291cmNlIGZh
aWxzIHRvIGxvYWQuCisgICAgICAgIERpc2FibGUgY2hlY2tpbmcgb2YgbWltZS10eXBlIGNvbnNp
c3RlbmN5IGZvciBmYWlsZWQgcmVzb3VyY2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zNzIxNQorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6
ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xs
ZXI6OmRpZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xs
ZXI6OnJlcG9ydFJlc291cmNlRXJyb3IpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmg6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5cGUuX21pbWVUeXBlSXNDb25z
aXN0ZW50V2l0aFR5cGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2Vz
UGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBl
LnJlY3JlYXRlVmlld0ZvclJlc291cmNlSWZOZWVkZWQpOgorCiAyMDEwLTA0LTA3ICBFbnJpY2Eg
Q2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2ZSBI
eWF0dC4KSW5kZXg6IFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCShy
ZXZpc2lvbiA1NzIxNCkKKysrIFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OTksMTUgKzg5OSwxNSBAQCB2b2lkIEluc3BlY3RvckNv
bnRyb2xsZXI6OndpbGxTZW5kUmVxdWVzCiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlk
UmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UpCiB7Ci0gICAgUmVmUHRyPEluc3BlY3RvclJlc291cmNlPiByZXNv
dXJjZSA9IGdldFRyYWNrZWRSZXNvdXJjZShpZGVudGlmaWVyKTsKLSAgICBpZiAoIXJlc291cmNl
KQotICAgICAgICByZXR1cm47CisgICAgaWYgKFJlZlB0cjxJbnNwZWN0b3JSZXNvdXJjZT4gcmVz
b3VyY2UgPSBnZXRUcmFja2VkUmVzb3VyY2UoaWRlbnRpZmllcikpIHsKKyAgICAgICAgcmVzb3Vy
Y2UtPnVwZGF0ZVJlc3BvbnNlKHJlc3BvbnNlKTsKKyAgICAgICAgcmVzb3VyY2UtPm1hcmtSZXNw
b25zZVJlY2VpdmVkVGltZSgpOwogCi0gICAgcmVzb3VyY2UtPnVwZGF0ZVJlc3BvbnNlKHJlc3Bv
bnNlKTsKLSAgICByZXNvdXJjZS0+bWFya1Jlc3BvbnNlUmVjZWl2ZWRUaW1lKCk7Ci0KLSAgICBp
ZiAocmVzb3VyY2UgIT0gbV9tYWluUmVzb3VyY2UgJiYgbV9mcm9udGVuZCkKLSAgICAgICAgcmVz
b3VyY2UtPnVwZGF0ZVNjcmlwdE9iamVjdChtX2Zyb250ZW5kLmdldCgpKTsKKyAgICAgICAgaWYg
KHJlc291cmNlICE9IG1fbWFpblJlc291cmNlICYmIG1fZnJvbnRlbmQpCisgICAgICAgICAgICBy
ZXNvdXJjZS0+dXBkYXRlU2NyaXB0T2JqZWN0KG1fZnJvbnRlbmQuZ2V0KCkpOworICAgIH0KKyAg
ICBpZiAocmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA+PSA0MDApCisgICAgICAgIHJlcG9ydFJl
c291cmNlRXJyb3IocmVzcG9uc2UudXJsKCkuc3RyaW5nKCksIHJlc3BvbnNlLmh0dHBTdGF0dXND
b2RlKCkpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZFJlY2VpdmVDb250ZW50
TGVuZ3RoKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGxlbmd0aFJlY2VpdmVkKQpAQCAt
OTM4LDExICs5MzgsMTIgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRGaW5pc2hMb2Fk
aQogICAgICAgICByZXNvdXJjZS0+dXBkYXRlU2NyaXB0T2JqZWN0KG1fZnJvbnRlbmQuZ2V0KCkp
OwogfQogCi12b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZEZhaWxMb2FkaW5nKHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VFcnJvciYgLyplcnJvciovKQordm9pZCBJ
bnNwZWN0b3JDb250cm9sbGVyOjpkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewogICAgIGlmIChtX3RpbWVsaW5lQWdl
bnQpCiAgICAgICAgIG1fdGltZWxpbmVBZ2VudC0+ZGlkRmluaXNoTG9hZGluZ1Jlc291cmNlKGlk
ZW50aWZpZXIsIHRydWUpOwogCisgICAgcmVwb3J0UmVzb3VyY2VFcnJvcihlcnJvci5mYWlsaW5n
VVJMKCkpOwogICAgIFJlZlB0cjxJbnNwZWN0b3JSZXNvdXJjZT4gcmVzb3VyY2UgPSBnZXRUcmFj
a2VkUmVzb3VyY2UoaWRlbnRpZmllcik7CiAgICAgaWYgKCFyZXNvdXJjZSkKICAgICAgICAgcmV0
dXJuOwpAQCAtOTU1LDYgKzk1NiwxNSBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZEZh
aWxMb2FkaW5nCiAgICAgICAgIHJlc291cmNlLT51cGRhdGVTY3JpcHRPYmplY3QobV9mcm9udGVu
ZC5nZXQoKSk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6cmVwb3J0UmVzb3VyY2VF
cnJvcihjb25zdCBTdHJpbmcmIHVybCwgaW50IHN0YXR1cyAvKiA9IDAgKi8pCit7CisgICAgU3Ry
aW5nIG1lc3NhZ2UgPSAiRmFpbGVkIHRvIGxvYWQgcmVzb3VyY2UgIiArIHVybDsKKyAgICBpZiAo
c3RhdHVzKQorICAgICAgICBtZXNzYWdlICs9IFN0cmluZzo6Zm9ybWF0KCIsIHN0YXR1czogJWQi
LCBzdGF0dXMpOworCisgICAgYWRkTWVzc2FnZVRvQ29uc29sZShPdGhlck1lc3NhZ2VTb3VyY2Us
IExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMCwgdXJsKTsKK30K
Kwogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpyZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJl
cXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTY3JpcHRTdHJpbmcmIHNvdXJj
ZVN0cmluZykKIHsKICAgICBpZiAoIWVuYWJsZWQoKSB8fCAhbV9yZXNvdXJjZVRyYWNraW5nRW5h
YmxlZCkKSW5kZXg6IFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgJKHJldmlz
aW9uIDU3MjE0KQorKysgV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMTMsNiArMzEzLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlk
RXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZChsb25nIGNhbGxJZCwgY29uc3QgU3RyaW5nJiBqc29u
UmVzdWx0KTsKIAorICAgIHZvaWQgcmVwb3J0UmVzb3VyY2VFcnJvcihjb25zdCBTdHJpbmcmIHVy
bCwgaW50IHN0YXR1cyA9IDApOworCiAgICAgUGFnZSogbV9pbnNwZWN0ZWRQYWdlOwogICAgIElu
c3BlY3RvckNsaWVudCogbV9jbGllbnQ7CiAgICAgT3duUHRyPEluc3BlY3RvckZyb250ZW5kQ2xp
ZW50PiBtX2luc3BlY3RvckZyb250ZW5kQ2xpZW50OwpJbmRleDogV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1Jlc291cmNlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9SZXNvdXJjZS5qcwkocmV2aXNpb24gNTcyMTQpCisrKyBXZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUmVzb3VyY2UuanMJKHdvcmtpbmcgY29weSkKQEAgLTUzNiw2ICs1MzYsMTMg
QEAgV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlwZSA9IHsKIAogICAgIF9taW1lVHlwZUlz
Q29uc2lzdGVudFdpdGhUeXBlOiBmdW5jdGlvbigpCiAgICAgeworICAgICAgICAvLyBJZiBzdGF0
dXMgaXMgYW4gZXJyb3IsIGNvbnRlbnQgaXMgbGlrZWx5IHRvIGJlIG9mIGFuIGluY29uc2lzdGVu
dCB0eXBlLAorICAgICAgICAvLyBhcyBpdCdzIGdvaW5nIHRvIGJlIGFuIGVycm9yIG1lc3NhZ2Uu
IFdlIGRvIG5vdCB3YW50IHRvIGVtaXQgYSB3YXJuaW5nCisgICAgICAgIC8vIGZvciB0aGlzLCB0
aG91Z2gsIGFzIHRoaXMgd2lsbCBhbHJlYWR5IGJlIHJlcG9ydGVkIGFzIHJlc291cmNlIGxvYWRp
bmcKKyAgICAgICAgLy8gZmFpbHVyZS4KKyAgICAgICAgaWYgKHRoaXMuc3RhdHVzQ29kZSA+PSA0
MDApCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKwogICAgICAgICBpZiAodHlwZW9mIHRoaXMu
dHlwZSA9PT0gInVuZGVmaW5lZCIKICAgICAgICAgIHx8IHRoaXMudHlwZSA9PT0gV2ViSW5zcGVj
dG9yLlJlc291cmNlLlR5cGUuT3RoZXIKICAgICAgICAgIHx8IHRoaXMudHlwZSA9PT0gV2ViSW5z
cGVjdG9yLlJlc291cmNlLlR5cGUuWEhSKQpJbmRleDogV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1Jlc291cmNlc1BhbmVsLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwkocmV2aXNpb24gNTcyMTQpCisrKyBXZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMJKHdvcmtpbmcgY29weSkKQEAgLTQ0
Myw5ICs0NDMsNiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gCiAg
ICAgICAgIGlmIChuZXdWaWV3Ll9fcHJvdG9fXyA9PT0gcmVzb3VyY2UuX3Jlc291cmNlc1ZpZXcu
X19wcm90b19fKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHJlc291cmNlLndhcm5p
bmdzID0gMDsKLSAgICAgICAgcmVzb3VyY2UuZXJyb3JzID0gMDsKLQogICAgICAgICBpZiAoIXRo
aXMuY3VycmVudFF1ZXJ5ICYmIHJlc291cmNlLl9pdGVtc1RyZWVFbGVtZW50KQogICAgICAgICAg
ICAgcmVzb3VyY2UuX2l0ZW1zVHJlZUVsZW1lbnQudXBkYXRlRXJyb3JzQW5kV2FybmluZ3MoKTsK
IAo=
</data>
<flag name="review"
          id="36318"
          type_id="1"
          status="-"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52769</attachid>
            <date>2010-04-07 12:23:57 -0700</date>
            <delta_ts>2010-04-08 08:31:34 -0700</delta_ts>
            <desc>Log error message to inspector console if a resource fails to load. Disable checking of mime-type consistency for failed resource (fixed messages)</desc>
            <filename>resource-errors.patch</filename>
            <type>text/plain</type>
            <size>5885</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzIxNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTAtMDQtMDcgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBMb2cgZXJyb3IgbWVzc2FnZSB0byBpbnNwZWN0b3IgY29uc29sZSBpZiBhIHJlc291cmNlIGZh
aWxzIHRvIGxvYWQuCisgICAgICAgIERpc2FibGUgY2hlY2tpbmcgb2YgbWltZS10eXBlIGNvbnNp
c3RlbmN5IGZvciBmYWlsZWQgcmVzb3VyY2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzcyMTUKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6
OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9s
bGVyOjpkaWRGYWlsTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9s
bGVyOjpyZXBvcnRSZXNvdXJjZUVycm9yKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
Q29udHJvbGxlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlLl9taW1lVHlwZUlzQ29u
c2lzdGVudFdpdGhUeXBlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNl
c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlw
ZS5yZWNyZWF0ZVZpZXdGb3JSZXNvdXJjZUlmTmVlZGVkKToKKwogMjAxMC0wNC0wNyAgRW5yaWNh
IENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmUg
SHlhdHQuCkluZGV4OiBXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAko
cmV2aXNpb24gNTcyMTQpCisrKyBXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODk5LDE1ICs4OTksMTUgQEAgdm9pZCBJbnNwZWN0b3JD
b250cm9sbGVyOjp3aWxsU2VuZFJlcXVlcwogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRp
ZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlKQogewotICAgIFJlZlB0cjxJbnNwZWN0b3JSZXNvdXJjZT4gcmVz
b3VyY2UgPSBnZXRUcmFja2VkUmVzb3VyY2UoaWRlbnRpZmllcik7Ci0gICAgaWYgKCFyZXNvdXJj
ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgcmVzb3VyY2UtPnVwZGF0ZVJlc3BvbnNlKHJlc3Bv
bnNlKTsKLSAgICByZXNvdXJjZS0+bWFya1Jlc3BvbnNlUmVjZWl2ZWRUaW1lKCk7CisgICAgaWYg
KFJlZlB0cjxJbnNwZWN0b3JSZXNvdXJjZT4gcmVzb3VyY2UgPSBnZXRUcmFja2VkUmVzb3VyY2Uo
aWRlbnRpZmllcikpIHsKKyAgICAgICAgcmVzb3VyY2UtPnVwZGF0ZVJlc3BvbnNlKHJlc3BvbnNl
KTsKKyAgICAgICAgcmVzb3VyY2UtPm1hcmtSZXNwb25zZVJlY2VpdmVkVGltZSgpOwogCi0gICAg
aWYgKHJlc291cmNlICE9IG1fbWFpblJlc291cmNlICYmIG1fZnJvbnRlbmQpCi0gICAgICAgIHJl
c291cmNlLT51cGRhdGVTY3JpcHRPYmplY3QobV9mcm9udGVuZC5nZXQoKSk7CisgICAgICAgIGlm
IChyZXNvdXJjZSAhPSBtX21haW5SZXNvdXJjZSAmJiBtX2Zyb250ZW5kKQorICAgICAgICAgICAg
cmVzb3VyY2UtPnVwZGF0ZVNjcmlwdE9iamVjdChtX2Zyb250ZW5kLmdldCgpKTsKKyAgICB9Cisg
ICAgaWYgKHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPj0gNDAwKQorICAgICAgICByZXBvcnRS
ZXNvdXJjZUVycm9yKHJlc3BvbnNlLnVybCgpLnN0cmluZygpLCByZXNwb25zZS5odHRwU3RhdHVz
Q29kZSgpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRSZWNlaXZlQ29udGVu
dExlbmd0aCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBsZW5ndGhSZWNlaXZlZCkKQEAg
LTkzOCwxMiArOTM4LDIwIEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkRmluaXNoTG9h
ZGkKICAgICAgICAgcmVzb3VyY2UtPnVwZGF0ZVNjcmlwdE9iamVjdChtX2Zyb250ZW5kLmdldCgp
KTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRGYWlsTG9hZGluZyh1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIC8qZXJyb3IqLykKK3ZvaWQg
SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkRmFpbExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKICAgICBpZiAobV90aW1lbGluZUFn
ZW50KQogICAgICAgICBtX3RpbWVsaW5lQWdlbnQtPmRpZEZpbmlzaExvYWRpbmdSZXNvdXJjZShp
ZGVudGlmaWVyLCB0cnVlKTsKIAogICAgIFJlZlB0cjxJbnNwZWN0b3JSZXNvdXJjZT4gcmVzb3Vy
Y2UgPSBnZXRUcmFja2VkUmVzb3VyY2UoaWRlbnRpZmllcik7CisKKyAgICAvLyBTYWZhcmkgZG9l
c24ndCByZXBvcnQgcmVzb3VyY2UgVVJMLCBzbyBkbyBvdXIgYmVzdCBieSByZXRyaWV2aW5nIGl0
IGZyb20gb3VyCisgICAgLy8gcmVzb3VyY2UgcmVjb3JkIChvYnZpb3VzbHksIHdvcmtzIG9ubHkg
d2l0aCByZXNvdXJjZSB0cmFja2luZyBlbmFibGVkKS4KKyAgICBTdHJpbmcgdXJsID0gZXJyb3Iu
ZmFpbGluZ1VSTCgpOworICAgIGlmICh1cmwuaXNFbXB0eSgpICYmIHJlc291cmNlKQorICAgICAg
ICB1cmwgPSByZXNvdXJjZS0+cmVxdWVzdFVSTCgpLnN0cmluZygpOworICAgIHJlcG9ydFJlc291
cmNlRXJyb3IodXJsKTsKKwogICAgIGlmICghcmVzb3VyY2UpCiAgICAgICAgIHJldHVybjsKIApA
QCAtOTU1LDYgKzk2MywxNCBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZEZhaWxMb2Fk
aW5nCiAgICAgICAgIHJlc291cmNlLT51cGRhdGVTY3JpcHRPYmplY3QobV9mcm9udGVuZC5nZXQo
KSk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6cmVwb3J0UmVzb3VyY2VFcnJvcihj
b25zdCBTdHJpbmcmIHVybCwgdW5zaWduZWQgc3RhdHVzIC8qID0gMCAqLykKK3sKKyAgICBTdHJp
bmcgbWVzc2FnZSA9IHN0YXR1cyA/IFN0cmluZzo6Zm9ybWF0KCJGYWlsZWQgdG8gbG9hZCByZXNv
dXJjZS4gVGhlIHNlcnZlciByZXNwb25kZWQgd2l0aCBhIHN0YXR1cyBvZiAldSIsIHN0YXR1cykK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICJGYWlsZWQgdG8gbG9hZCByZXNvdXJjZSwg
Y29ubmVjdGlvbiB0byBzZXJ2ZXIgZmFpbGVkIjsKKworICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUo
T3RoZXJNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1l
c3NhZ2UsIDAsIHVybCk7Cit9CisKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6cmVzb3VyY2VS
ZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3Qg
U2NyaXB0U3RyaW5nJiBzb3VyY2VTdHJpbmcpCiB7CiAgICAgaWYgKCFlbmFibGVkKCkgfHwgIW1f
cmVzb3VyY2VUcmFja2luZ0VuYWJsZWQpCkluZGV4OiBXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q29udHJvbGxlci5oCShyZXZpc2lvbiA1NzIxNCkKKysrIFdlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzEzLDYgKzMxMyw4IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIGRpZEV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQobG9uZyBjYWxsSWQs
IGNvbnN0IFN0cmluZyYganNvblJlc3VsdCk7CiAKKyAgICB2b2lkIHJlcG9ydFJlc291cmNlRXJy
b3IoY29uc3QgU3RyaW5nJiB1cmwsIHVuc2lnbmVkIHN0YXR1cyA9IDApOworCiAgICAgUGFnZSog
bV9pbnNwZWN0ZWRQYWdlOwogICAgIEluc3BlY3RvckNsaWVudCogbV9jbGllbnQ7CiAgICAgT3du
UHRyPEluc3BlY3RvckZyb250ZW5kQ2xpZW50PiBtX2luc3BlY3RvckZyb250ZW5kQ2xpZW50OwpJ
bmRleDogV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qcwkocmV2aXNpb24gNTcy
MTQpCisrKyBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTUzNiw2ICs1MzYsMTIgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlw
ZSA9IHsKIAogICAgIF9taW1lVHlwZUlzQ29uc2lzdGVudFdpdGhUeXBlOiBmdW5jdGlvbigpCiAg
ICAgeworICAgICAgICAvLyBJZiBzdGF0dXMgaXMgYW4gZXJyb3IsIGNvbnRlbnQgaXMgbGlrZWx5
IHRvIGJlIG9mIGFuIGluY29uc2lzdGVudCB0eXBlLAorICAgICAgICAvLyBhcyBpdCdzIGdvaW5n
IHRvIGJlIGFuIGVycm9yIG1lc3NhZ2UuIFdlIGRvIG5vdCB3YW50IHRvIGVtaXQgYSB3YXJuaW5n
CisgICAgICAgIC8vIGZvciB0aGlzLCB0aG91Z2gsIGFzIHRoaXMgd2lsbCBhbHJlYWR5IGJlIHJl
cG9ydGVkIGFzIHJlc291cmNlIGxvYWRpbmcgZmFpbHVyZS4KKyAgICAgICAgaWYgKHRoaXMuc3Rh
dHVzQ29kZSA+PSA0MDApCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKwogICAgICAgICBpZiAo
dHlwZW9mIHRoaXMudHlwZSA9PT0gInVuZGVmaW5lZCIKICAgICAgICAgIHx8IHRoaXMudHlwZSA9
PT0gV2ViSW5zcGVjdG9yLlJlc291cmNlLlR5cGUuT3RoZXIKICAgICAgICAgIHx8IHRoaXMudHlw
ZSA9PT0gV2ViSW5zcGVjdG9yLlJlc291cmNlLlR5cGUuWEhSKQpJbmRleDogV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwkocmV2aXNpb24gNTcyMTQpCisr
KyBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTQ0Myw5ICs0NDMsNiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJv
dG90eXBlID0gCiAgICAgICAgIGlmIChuZXdWaWV3Ll9fcHJvdG9fXyA9PT0gcmVzb3VyY2UuX3Jl
c291cmNlc1ZpZXcuX19wcm90b19fKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHJl
c291cmNlLndhcm5pbmdzID0gMDsKLSAgICAgICAgcmVzb3VyY2UuZXJyb3JzID0gMDsKLQogICAg
ICAgICBpZiAoIXRoaXMuY3VycmVudFF1ZXJ5ICYmIHJlc291cmNlLl9pdGVtc1RyZWVFbGVtZW50
KQogICAgICAgICAgICAgcmVzb3VyY2UuX2l0ZW1zVHJlZUVsZW1lbnQudXBkYXRlRXJyb3JzQW5k
V2FybmluZ3MoKTsKIAo=
</data>
<flag name="review"
          id="36346"
          type_id="1"
          status="-"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52870</attachid>
            <date>2010-04-08 08:31:34 -0700</date>
            <delta_ts>2010-04-09 09:55:25 -0700</delta_ts>
            <desc>Log error message to inspector console if a resource fails to load. Disable checking of mime-type consistency for failed resource (added localized error details)</desc>
            <filename>resource-errors.patch</filename>
            <type>text/plain</type>
            <size>4679</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzI3OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMDQtMDggIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBOZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24gYW5kIGJ1ZyBVUkwgKE9PUFMhKQorCisgICAgICAg
IE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlk
UmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6
OmRpZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNl
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlwZS5fbWltZVR5cGVJ
c0NvbnNpc3RlbnRXaXRoVHlwZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNv
dXJjZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90
b3R5cGUucmVjcmVhdGVWaWV3Rm9yUmVzb3VyY2VJZk5lZWRlZCk6CisKIDIwMTAtMDQtMDEgIEFu
dG9uaW8gR29tZXMgIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEYXZpZCBIeWF0dC4KSW5kZXg6IFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCShyZXZpc2lvbiA1NzIxNCkKKysrIFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OTksMTUgKzg5OSwxOSBAQCB2b2lkIElu
c3BlY3RvckNvbnRyb2xsZXI6OndpbGxTZW5kUmVxdWVzCiAKIHZvaWQgSW5zcGVjdG9yQ29udHJv
bGxlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7Ci0gICAgUmVmUHRyPEluc3BlY3RvclJlc291
cmNlPiByZXNvdXJjZSA9IGdldFRyYWNrZWRSZXNvdXJjZShpZGVudGlmaWVyKTsKLSAgICBpZiAo
IXJlc291cmNlKQotICAgICAgICByZXR1cm47Ci0KLSAgICByZXNvdXJjZS0+dXBkYXRlUmVzcG9u
c2UocmVzcG9uc2UpOwotICAgIHJlc291cmNlLT5tYXJrUmVzcG9uc2VSZWNlaXZlZFRpbWUoKTsK
KyAgICBpZiAoUmVmUHRyPEluc3BlY3RvclJlc291cmNlPiByZXNvdXJjZSA9IGdldFRyYWNrZWRS
ZXNvdXJjZShpZGVudGlmaWVyKSkgeworICAgICAgICByZXNvdXJjZS0+dXBkYXRlUmVzcG9uc2Uo
cmVzcG9uc2UpOworICAgICAgICByZXNvdXJjZS0+bWFya1Jlc3BvbnNlUmVjZWl2ZWRUaW1lKCk7
CisKKyAgICAgICAgaWYgKHJlc291cmNlICE9IG1fbWFpblJlc291cmNlICYmIG1fZnJvbnRlbmQp
CisgICAgICAgICAgICByZXNvdXJjZS0+dXBkYXRlU2NyaXB0T2JqZWN0KG1fZnJvbnRlbmQuZ2V0
KCkpOworICAgIH0KKyAgICBpZiAocmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA+PSA0MDApIHsK
KyAgICAgICAgLy8gVGhlIHVnbHkgY29kZSBiZWxvdyBpcyBkdWUgdG8gdGhhdCBTdHJpbmc6OmZv
cm1hdCgpIGlzIG5vdCB1dGY4LXNhZmUgYXQgdGhlIG1vbWVudC4KKyAgICAgICAgU3RyaW5nIG1l
c3NhZ2UgPSBTdHJpbmc6OmZvcm1hdCgiRmFpbGVkIHRvIGxvYWQgcmVzb3VyY2U6IHRoZSBzZXJ2
ZXIgcmVzcG9uZGVkIHdpdGggYSBzdGF0dXMgb2YgJXUgKCIsIHJlc3BvbnNlLmh0dHBTdGF0dXND
b2RlKCkpICsgcmVzcG9uc2UuaHR0cFN0YXR1c1RleHQoKSArICIpIjsKIAotICAgIGlmIChyZXNv
dXJjZSAhPSBtX21haW5SZXNvdXJjZSAmJiBtX2Zyb250ZW5kKQotICAgICAgICByZXNvdXJjZS0+
dXBkYXRlU2NyaXB0T2JqZWN0KG1fZnJvbnRlbmQuZ2V0KCkpOworICAgICAgICBhZGRNZXNzYWdl
VG9Db25zb2xlKE90aGVyTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2Fn
ZUxldmVsLCBtZXNzYWdlLCAwLCByZXNwb25zZS51cmwoKS5zdHJpbmcoKSk7CisgICAgfQogfQog
CiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGxlbmd0aFJlY2VpdmVkKQpAQCAtOTM4LDExICs5NDIs
MTYgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRGaW5pc2hMb2FkaQogICAgICAgICBy
ZXNvdXJjZS0+dXBkYXRlU2NyaXB0T2JqZWN0KG1fZnJvbnRlbmQuZ2V0KCkpOwogfQogCi12b2lk
IEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZEZhaWxMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgY29uc3QgUmVzb3VyY2VFcnJvciYgLyplcnJvciovKQordm9pZCBJbnNwZWN0b3JDb250
cm9sbGVyOjpkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJl
c291cmNlRXJyb3ImIGVycm9yKQogewogICAgIGlmIChtX3RpbWVsaW5lQWdlbnQpCiAgICAgICAg
IG1fdGltZWxpbmVBZ2VudC0+ZGlkRmluaXNoTG9hZGluZ1Jlc291cmNlKGlkZW50aWZpZXIsIHRy
dWUpOwogCisgICAgU3RyaW5nIG1lc3NhZ2UgPSAiRmFpbGVkIHRvIGxvYWQgcmVzb3VyY2UiOwor
ICAgIGlmICghZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS5pc0VtcHR5KCkpCisgICAgICAg
IG1lc3NhZ2UgKz0gIjogIiArIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCk7CisgICAgYWRk
TWVzc2FnZVRvQ29uc29sZShPdGhlck1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJv
ck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMCwgZXJyb3IuZmFpbGluZ1VSTCgpKTsKKwogICAgIFJl
ZlB0cjxJbnNwZWN0b3JSZXNvdXJjZT4gcmVzb3VyY2UgPSBnZXRUcmFja2VkUmVzb3VyY2UoaWRl
bnRpZmllcik7CiAgICAgaWYgKCFyZXNvdXJjZSkKICAgICAgICAgcmV0dXJuOwpJbmRleDogV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qcwkocmV2aXNpb24gNTcyMTQpCisrKyBX
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMJKHdvcmtpbmcgY29weSkKQEAg
LTUzNiw2ICs1MzYsMTIgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlwZSA9IHsKIAog
ICAgIF9taW1lVHlwZUlzQ29uc2lzdGVudFdpdGhUeXBlOiBmdW5jdGlvbigpCiAgICAgeworICAg
ICAgICAvLyBJZiBzdGF0dXMgaXMgYW4gZXJyb3IsIGNvbnRlbnQgaXMgbGlrZWx5IHRvIGJlIG9m
IGFuIGluY29uc2lzdGVudCB0eXBlLAorICAgICAgICAvLyBhcyBpdCdzIGdvaW5nIHRvIGJlIGFu
IGVycm9yIG1lc3NhZ2UuIFdlIGRvIG5vdCB3YW50IHRvIGVtaXQgYSB3YXJuaW5nCisgICAgICAg
IC8vIGZvciB0aGlzLCB0aG91Z2gsIGFzIHRoaXMgd2lsbCBhbHJlYWR5IGJlIHJlcG9ydGVkIGFz
IHJlc291cmNlIGxvYWRpbmcgZmFpbHVyZS4KKyAgICAgICAgaWYgKHRoaXMuc3RhdHVzQ29kZSA+
PSA0MDApCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKwogICAgICAgICBpZiAodHlwZW9mIHRo
aXMudHlwZSA9PT0gInVuZGVmaW5lZCIKICAgICAgICAgIHx8IHRoaXMudHlwZSA9PT0gV2ViSW5z
cGVjdG9yLlJlc291cmNlLlR5cGUuT3RoZXIKICAgICAgICAgIHx8IHRoaXMudHlwZSA9PT0gV2Vi
SW5zcGVjdG9yLlJlc291cmNlLlR5cGUuWEhSKQpJbmRleDogV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwkocmV2aXNpb24gNTcyMTQpCisrKyBXZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMJKHdvcmtpbmcgY29weSkKQEAg
LTQ0Myw5ICs0NDMsNiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0g
CiAgICAgICAgIGlmIChuZXdWaWV3Ll9fcHJvdG9fXyA9PT0gcmVzb3VyY2UuX3Jlc291cmNlc1Zp
ZXcuX19wcm90b19fKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHJlc291cmNlLndh
cm5pbmdzID0gMDsKLSAgICAgICAgcmVzb3VyY2UuZXJyb3JzID0gMDsKLQogICAgICAgICBpZiAo
IXRoaXMuY3VycmVudFF1ZXJ5ICYmIHJlc291cmNlLl9pdGVtc1RyZWVFbGVtZW50KQogICAgICAg
ICAgICAgcmVzb3VyY2UuX2l0ZW1zVHJlZUVsZW1lbnQudXBkYXRlRXJyb3JzQW5kV2FybmluZ3Mo
KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52962</attachid>
            <date>2010-04-09 09:55:25 -0700</date>
            <delta_ts>2010-04-16 11:48:02 -0700</delta_ts>
            <desc>Log error message to inspector console if a resource fails to load. Disable checking of mime-type consistency for failed resource (added tests)</desc>
            <filename>resource-errors.patch</filename>
            <type>text/plain</type>
            <size>7226</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzM0MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTAtMDQtMDkgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9t
aXVtLnJ1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IExvZyBlcnJvciBtZXNzYWdlIHRvIGluc3BlY3RvciBjb25zb2xlIGlmIGEgcmVzb3VyY2UgZmFp
bHMgdG8gbG9hZC4KKyAgICAgICAgRGlzYWJsZSBjaGVja2luZyBvZiBtaW1lLXR5cGUgY29uc2lz
dGVuY3kgZm9yIGZhaWxlZCByZXNvdXJjZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zNzIxNQorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9jb25z
b2xlLXJlc291cmNlLWVycm9ycy5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpk
aWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxl
cjo6ZGlkRmFpbExvYWRpbmcpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3Vy
Y2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlLl9taW1lVHlw
ZUlzQ29uc2lzdGVudFdpdGhUeXBlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jl
c291cmNlc1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnBy
b3RvdHlwZS5yZWNyZWF0ZVZpZXdGb3JSZXNvdXJjZUlmTmVlZGVkKToKKwogMjAxMC0wNC0wOCAg
QWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbiBBZGxlci4KSW5kZXg6IFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCShyZXZpc2lvbiA1NzMzOSkKKysrIFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OTIsMTUgKzg5MiwxOSBAQCB2b2lkIElu
c3BlY3RvckNvbnRyb2xsZXI6OndpbGxTZW5kUmVxdWVzCiAKIHZvaWQgSW5zcGVjdG9yQ29udHJv
bGxlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7Ci0gICAgUmVmUHRyPEluc3BlY3RvclJlc291
cmNlPiByZXNvdXJjZSA9IGdldFRyYWNrZWRSZXNvdXJjZShpZGVudGlmaWVyKTsKLSAgICBpZiAo
IXJlc291cmNlKQotICAgICAgICByZXR1cm47Ci0KLSAgICByZXNvdXJjZS0+dXBkYXRlUmVzcG9u
c2UocmVzcG9uc2UpOwotICAgIHJlc291cmNlLT5tYXJrUmVzcG9uc2VSZWNlaXZlZFRpbWUoKTsK
KyAgICBpZiAoUmVmUHRyPEluc3BlY3RvclJlc291cmNlPiByZXNvdXJjZSA9IGdldFRyYWNrZWRS
ZXNvdXJjZShpZGVudGlmaWVyKSkgeworICAgICAgICByZXNvdXJjZS0+dXBkYXRlUmVzcG9uc2Uo
cmVzcG9uc2UpOworICAgICAgICByZXNvdXJjZS0+bWFya1Jlc3BvbnNlUmVjZWl2ZWRUaW1lKCk7
CisKKyAgICAgICAgaWYgKHJlc291cmNlICE9IG1fbWFpblJlc291cmNlICYmIG1fZnJvbnRlbmQp
CisgICAgICAgICAgICByZXNvdXJjZS0+dXBkYXRlU2NyaXB0T2JqZWN0KG1fZnJvbnRlbmQuZ2V0
KCkpOworICAgIH0KKyAgICBpZiAocmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA+PSA0MDApIHsK
KyAgICAgICAgLy8gVGhlIHVnbHkgY29kZSBiZWxvdyBpcyBkdWUgdG8gdGhhdCBTdHJpbmc6OmZv
cm1hdCgpIGlzIG5vdCB1dGY4LXNhZmUgYXQgdGhlIG1vbWVudC4KKyAgICAgICAgU3RyaW5nIG1l
c3NhZ2UgPSBTdHJpbmc6OmZvcm1hdCgiRmFpbGVkIHRvIGxvYWQgcmVzb3VyY2U6IHRoZSBzZXJ2
ZXIgcmVzcG9uZGVkIHdpdGggYSBzdGF0dXMgb2YgJXUgKCIsIHJlc3BvbnNlLmh0dHBTdGF0dXND
b2RlKCkpICsgcmVzcG9uc2UuaHR0cFN0YXR1c1RleHQoKSArICIpIjsKIAotICAgIGlmIChyZXNv
dXJjZSAhPSBtX21haW5SZXNvdXJjZSAmJiBtX2Zyb250ZW5kKQotICAgICAgICByZXNvdXJjZS0+
dXBkYXRlU2NyaXB0T2JqZWN0KG1fZnJvbnRlbmQuZ2V0KCkpOworICAgICAgICBhZGRNZXNzYWdl
VG9Db25zb2xlKE90aGVyTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2Fn
ZUxldmVsLCBtZXNzYWdlLCAwLCByZXNwb25zZS51cmwoKS5zdHJpbmcoKSk7CisgICAgfQogfQog
CiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGxlbmd0aFJlY2VpdmVkKQpAQCAtOTMxLDExICs5MzUs
MTYgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRGaW5pc2hMb2FkaQogICAgICAgICBy
ZXNvdXJjZS0+dXBkYXRlU2NyaXB0T2JqZWN0KG1fZnJvbnRlbmQuZ2V0KCkpOwogfQogCi12b2lk
IEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZEZhaWxMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgY29uc3QgUmVzb3VyY2VFcnJvciYgLyplcnJvciovKQordm9pZCBJbnNwZWN0b3JDb250
cm9sbGVyOjpkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJl
c291cmNlRXJyb3ImIGVycm9yKQogewogICAgIGlmIChtX3RpbWVsaW5lQWdlbnQpCiAgICAgICAg
IG1fdGltZWxpbmVBZ2VudC0+ZGlkRmluaXNoTG9hZGluZ1Jlc291cmNlKGlkZW50aWZpZXIsIHRy
dWUpOwogCisgICAgU3RyaW5nIG1lc3NhZ2UgPSAiRmFpbGVkIHRvIGxvYWQgcmVzb3VyY2UiOwor
ICAgIGlmICghZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS5pc0VtcHR5KCkpCisgICAgICAg
IG1lc3NhZ2UgKz0gIjogIiArIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCk7CisgICAgYWRk
TWVzc2FnZVRvQ29uc29sZShPdGhlck1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJv
ck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMCwgZXJyb3IuZmFpbGluZ1VSTCgpKTsKKwogICAgIFJl
ZlB0cjxJbnNwZWN0b3JSZXNvdXJjZT4gcmVzb3VyY2UgPSBnZXRUcmFja2VkUmVzb3VyY2UoaWRl
bnRpZmllcik7CiAgICAgaWYgKCFyZXNvdXJjZSkKICAgICAgICAgcmV0dXJuOwpJbmRleDogV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qcwkocmV2aXNpb24gNTczMzkpCisrKyBX
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMJKHdvcmtpbmcgY29weSkKQEAg
LTUzNiw2ICs1MzYsMTIgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlwZSA9IHsKIAog
ICAgIF9taW1lVHlwZUlzQ29uc2lzdGVudFdpdGhUeXBlOiBmdW5jdGlvbigpCiAgICAgeworICAg
ICAgICAvLyBJZiBzdGF0dXMgaXMgYW4gZXJyb3IsIGNvbnRlbnQgaXMgbGlrZWx5IHRvIGJlIG9m
IGFuIGluY29uc2lzdGVudCB0eXBlLAorICAgICAgICAvLyBhcyBpdCdzIGdvaW5nIHRvIGJlIGFu
IGVycm9yIG1lc3NhZ2UuIFdlIGRvIG5vdCB3YW50IHRvIGVtaXQgYSB3YXJuaW5nCisgICAgICAg
IC8vIGZvciB0aGlzLCB0aG91Z2gsIGFzIHRoaXMgd2lsbCBhbHJlYWR5IGJlIHJlcG9ydGVkIGFz
IHJlc291cmNlIGxvYWRpbmcgZmFpbHVyZS4KKyAgICAgICAgaWYgKHRoaXMuc3RhdHVzQ29kZSA+
PSA0MDApCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKwogICAgICAgICBpZiAodHlwZW9mIHRo
aXMudHlwZSA9PT0gInVuZGVmaW5lZCIKICAgICAgICAgIHx8IHRoaXMudHlwZSA9PT0gV2ViSW5z
cGVjdG9yLlJlc291cmNlLlR5cGUuT3RoZXIKICAgICAgICAgIHx8IHRoaXMudHlwZSA9PT0gV2Vi
SW5zcGVjdG9yLlJlc291cmNlLlR5cGUuWEhSKQpJbmRleDogV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwkocmV2aXNpb24gNTczMzkpCisrKyBXZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMJKHdvcmtpbmcgY29weSkKQEAg
LTQ0Myw5ICs0NDMsNiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0g
CiAgICAgICAgIGlmIChuZXdWaWV3Ll9fcHJvdG9fXyA9PT0gcmVzb3VyY2UuX3Jlc291cmNlc1Zp
ZXcuX19wcm90b19fKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHJlc291cmNlLndh
cm5pbmdzID0gMDsKLSAgICAgICAgcmVzb3VyY2UuZXJyb3JzID0gMDsKLQogICAgICAgICBpZiAo
IXRoaXMuY3VycmVudFF1ZXJ5ICYmIHJlc291cmNlLl9pdGVtc1RyZWVFbGVtZW50KQogICAgICAg
ICAgICAgcmVzb3VyY2UuX2l0ZW1zVHJlZUVsZW1lbnQudXBkYXRlRXJyb3JzQW5kV2FybmluZ3Mo
KTsKIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTczNDEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0wNC0wOSAgQW5kcmV5IEtvc3lh
a292ICA8Y2FzZXFAY2hyb21pdW0ucnU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTG9nIGVycm9yIG1lc3NhZ2UgdG8gaW5zcGVjdG9yIGNvbnNvbGUg
aWYgYSByZXNvdXJjZSBmYWlscyB0byBsb2FkLgorICAgICAgICBEaXNhYmxlIGNoZWNraW5nIG9m
IG1pbWUtdHlwZSBjb25zaXN0ZW5jeSBmb3IgZmFpbGVkIHJlc291cmNlcy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MjE1CisKKyAgICAgICAgKiBp
bnNwZWN0b3IvY29uc29sZS1yZXNvdXJjZS1lcnJvcnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS1yZXNvdXJjZS1lcnJvcnMuaHRtbDogQWRkZWQuCisK
IDIwMTAtMDQtMDggIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBMYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS1yZXNvdXJjZS1lcnJvcnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlLXJlc291cmNlLWVycm9ycy1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS1yZXNvdXJjZS1lcnJv
cnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYgQEAKKyBUZXN0cyB0aGF0
IGVycm9ycyB0byBsb2FkIGEgcmVzb3VyY2UgY2F1c2UgZXJyb3IgbWVzc2FnZXMgdG8gYmUgbG9n
Z2VkIHRvIGNvbnNvbGUuCisKK21pc3NpbmcuY3NzRmFpbGVkIHRvIGxvYWQgcmVzb3VyY2U6IGZp
bGUgZG9lc27igJl0IGV4aXN0IGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLW90aGVyLXNvdXJjZSBj
b25zb2xlLWVycm9yLWxldmVsCitub24tZXhpc3RlbnQtc2NyaXB0LmpzRmFpbGVkIHRvIGxvYWQg
cmVzb3VyY2U6IGZpbGUgZG9lc27igJl0IGV4aXN0IGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLW90
aGVyLXNvdXJjZSBjb25zb2xlLWVycm9yLWxldmVsCitub24tZXNpdGVudC1pZnJhbWUuaHRtbEZh
aWxlZCB0byBsb2FkIHJlc291cmNlOiBmaWxlIGRvZXNu4oCZdCBleGlzdCBjb25zb2xlLW1lc3Nh
Z2UgY29uc29sZS1vdGhlci1zb3VyY2UgY29uc29sZS1lcnJvci1sZXZlbAorCkluZGV4OiBMYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS1yZXNvdXJjZS1lcnJvcnMuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS1yZXNvdXJjZS1lcnJvcnMuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlLXJlc291cmNlLWVy
cm9ycy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI5IEBACis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJjb25zb2xlLXRlc3RzLmpzIj48L3NjcmlwdD4KKworPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0ibWlzc2luZy5jc3MiPgor
Cis8c2NyaXB0PgorZnVuY3Rpb24gZG9pdCgpCit7CisgICAgdmFyIHhociA9IG5ldyBYTUxIdHRw
UmVxdWVzdCgpOworICAgIHhoci5vcGVuKCJHRVQiLCJub24tZXhpc3RlbnQteGhyIiwgZmFsc2Up
OworICAgIHhoci5zZW5kKG51bGwpOworICAgIGR1bXBDb25zb2xlTWVzc2FnZXNXaXRoQ2xhc3Nl
cygpOworfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJvbmxvYWQoKSI+
Cis8cD4KKzxzY3JpcHQgc3JjPSJub24tZXhpc3RlbnQtc2NyaXB0LmpzIj48L3NjcmlwdD4KKzxp
ZnJhbWUgc3JjPSJub24tZXNpdGVudC1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+CisKK1Rlc3RzIHRo
YXQgZXJyb3JzIHRvIGxvYWQgYSByZXNvdXJjZSBjYXVzZSBlcnJvciBtZXNzYWdlcyB0byBiZSBs
b2dnZWQgdG8gY29uc29sZS4KKzwvcD4KKworPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53546</attachid>
            <date>2010-04-16 11:48:02 -0700</date>
            <delta_ts>2010-04-28 02:58:37 -0700</delta_ts>
            <desc>patch</desc>
            <filename>resource-errors.patch</filename>
            <type>text/plain</type>
            <size>17033</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzcyOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTAtMDQtMTYgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBMb2cgZXJyb3IgbWVzc2FnZSB0byBpbnNwZWN0b3IgY29uc29sZSBpZiBhIHJlc291cmNlIGZh
aWxzIHRvIGxvYWQuCisgICAgICAgIERpc2FibGUgY2hlY2tpbmcgb2YgbWltZS10eXBlIGNvbnNp
c3RlbmN5IGZvciBmYWlsZWQgcmVzb3VyY2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzcyMTUKKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL2lu
c3BlY3Rvci9jb25zb2xlLXJlc291cmNlLWVycm9ycy5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JD
b250cm9sbGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQ29udHJvbGxlcjo6ZGlkRmFpbExvYWRpbmcpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvUmVzb3VyY2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90
eXBlLl9taW1lVHlwZUlzQ29uc2lzdGVudFdpdGhUeXBlKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291
cmNlc1BhbmVsLnByb3RvdHlwZS5yZWNyZWF0ZVZpZXdGb3JSZXNvdXJjZUlmTmVlZGVkKToKKwog
MjAxMC0wNC0xNiAgSmlhbiBMaSAgPGppYW5saUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRG1pdHJ5IFRpdG92LgpJbmRleDogV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDU3NzI5KQorKysgV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5MiwxNSArODkyLDE5IEBA
IHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbFNlbmRSZXF1ZXMKIAogdm9pZCBJbnNwZWN0
b3JDb250cm9sbGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKLSAgICBSZWZQdHI8SW5zcGVj
dG9yUmVzb3VyY2U+IHJlc291cmNlID0gZ2V0VHJhY2tlZFJlc291cmNlKGlkZW50aWZpZXIpOwot
ICAgIGlmICghcmVzb3VyY2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIHJlc291cmNlLT51cGRh
dGVSZXNwb25zZShyZXNwb25zZSk7Ci0gICAgcmVzb3VyY2UtPm1hcmtSZXNwb25zZVJlY2VpdmVk
VGltZSgpOworICAgIGlmIChSZWZQdHI8SW5zcGVjdG9yUmVzb3VyY2U+IHJlc291cmNlID0gZ2V0
VHJhY2tlZFJlc291cmNlKGlkZW50aWZpZXIpKSB7CisgICAgICAgIHJlc291cmNlLT51cGRhdGVS
ZXNwb25zZShyZXNwb25zZSk7CisgICAgICAgIHJlc291cmNlLT5tYXJrUmVzcG9uc2VSZWNlaXZl
ZFRpbWUoKTsKKworICAgICAgICBpZiAocmVzb3VyY2UgIT0gbV9tYWluUmVzb3VyY2UgJiYgbV9m
cm9udGVuZCkKKyAgICAgICAgICAgIHJlc291cmNlLT51cGRhdGVTY3JpcHRPYmplY3QobV9mcm9u
dGVuZC5nZXQoKSk7CisgICAgfQorICAgIGlmIChyZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpID49
IDQwMCkgeworICAgICAgICAvLyBUaGUgdWdseSBjb2RlIGJlbG93IGlzIGR1ZSB0byB0aGF0IFN0
cmluZzo6Zm9ybWF0KCkgaXMgbm90IHV0Zjgtc2FmZSBhdCB0aGUgbW9tZW50LgorICAgICAgICBT
dHJpbmcgbWVzc2FnZSA9IFN0cmluZzo6Zm9ybWF0KCJGYWlsZWQgdG8gbG9hZCByZXNvdXJjZTog
dGhlIHNlcnZlciByZXNwb25kZWQgd2l0aCBhIHN0YXR1cyBvZiAldSAoIiwgcmVzcG9uc2UuaHR0
cFN0YXR1c0NvZGUoKSkgKyByZXNwb25zZS5odHRwU3RhdHVzVGV4dCgpICsgIikiOwogCi0gICAg
aWYgKHJlc291cmNlICE9IG1fbWFpblJlc291cmNlICYmIG1fZnJvbnRlbmQpCi0gICAgICAgIHJl
c291cmNlLT51cGRhdGVTY3JpcHRPYmplY3QobV9mcm9udGVuZC5nZXQoKSk7CisgICAgICAgIGFk
ZE1lc3NhZ2VUb0NvbnNvbGUoT3RoZXJNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJy
b3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDAsIHJlc3BvbnNlLnVybCgpLnN0cmluZygpKTsKKyAg
ICB9CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5n
dGgodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpCkBAIC05MzEs
MTEgKzkzNSwxNiBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZEZpbmlzaExvYWRpCiAg
ICAgICAgIHJlc291cmNlLT51cGRhdGVTY3JpcHRPYmplY3QobV9mcm9udGVuZC5nZXQoKSk7CiB9
CiAKLXZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkRmFpbExvYWRpbmcodW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiAvKmVycm9yKi8pCit2b2lkIEluc3Bl
Y3RvckNvbnRyb2xsZXI6OmRpZEZhaWxMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
Y29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7CiAgICAgaWYgKG1fdGltZWxpbmVBZ2VudCkK
ICAgICAgICAgbV90aW1lbGluZUFnZW50LT5kaWRGaW5pc2hMb2FkaW5nUmVzb3VyY2UoaWRlbnRp
ZmllciwgdHJ1ZSk7CiAKKyAgICBTdHJpbmcgbWVzc2FnZSA9ICJGYWlsZWQgdG8gbG9hZCByZXNv
dXJjZSI7CisgICAgaWYgKCFlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLmlzRW1wdHkoKSkK
KyAgICAgICAgbWVzc2FnZSArPSAiOiAiICsgZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKTsK
KyAgICBhZGRNZXNzYWdlVG9Db25zb2xlKE90aGVyTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5
cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCAwLCBlcnJvci5mYWlsaW5nVVJMKCkpOwor
CiAgICAgUmVmUHRyPEluc3BlY3RvclJlc291cmNlPiByZXNvdXJjZSA9IGdldFRyYWNrZWRSZXNv
dXJjZShpZGVudGlmaWVyKTsKICAgICBpZiAoIXJlc291cmNlKQogICAgICAgICByZXR1cm47Cklu
ZGV4OiBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzCShyZXZpc2lvbiA1Nzcy
OSkKKysrIFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qcwkod29ya2luZyBj
b3B5KQpAQCAtNTM2LDYgKzUzNiwxMiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBl
ID0gewogCiAgICAgX21pbWVUeXBlSXNDb25zaXN0ZW50V2l0aFR5cGU6IGZ1bmN0aW9uKCkKICAg
ICB7CisgICAgICAgIC8vIElmIHN0YXR1cyBpcyBhbiBlcnJvciwgY29udGVudCBpcyBsaWtlbHkg
dG8gYmUgb2YgYW4gaW5jb25zaXN0ZW50IHR5cGUsCisgICAgICAgIC8vIGFzIGl0J3MgZ29pbmcg
dG8gYmUgYW4gZXJyb3IgbWVzc2FnZS4gV2UgZG8gbm90IHdhbnQgdG8gZW1pdCBhIHdhcm5pbmcK
KyAgICAgICAgLy8gZm9yIHRoaXMsIHRob3VnaCwgYXMgdGhpcyB3aWxsIGFscmVhZHkgYmUgcmVw
b3J0ZWQgYXMgcmVzb3VyY2UgbG9hZGluZyBmYWlsdXJlLgorICAgICAgICBpZiAodGhpcy5zdGF0
dXNDb2RlID49IDQwMCkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCiAgICAgICAgIGlmICh0
eXBlb2YgdGhpcy50eXBlID09PSAidW5kZWZpbmVkIgogICAgICAgICAgfHwgdGhpcy50eXBlID09
PSBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuVHlwZS5PdGhlcgogICAgICAgICAgfHwgdGhpcy50eXBl
ID09PSBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuVHlwZS5YSFIpCkluZGV4OiBXZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCShyZXZpc2lvbiA1NzcyOSkKKysr
IFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwkod29ya2luZyBj
b3B5KQpAQCAtNDQzLDkgKzQ0Myw2IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90
b3R5cGUgPSAKICAgICAgICAgaWYgKG5ld1ZpZXcuX19wcm90b19fID09PSByZXNvdXJjZS5fcmVz
b3VyY2VzVmlldy5fX3Byb3RvX18pCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgcmVz
b3VyY2Uud2FybmluZ3MgPSAwOwotICAgICAgICByZXNvdXJjZS5lcnJvcnMgPSAwOwotCiAgICAg
ICAgIGlmICghdGhpcy5jdXJyZW50UXVlcnkgJiYgcmVzb3VyY2UuX2l0ZW1zVHJlZUVsZW1lbnQp
CiAgICAgICAgICAgICByZXNvdXJjZS5faXRlbXNUcmVlRWxlbWVudC51cGRhdGVFcnJvcnNBbmRX
YXJuaW5ncygpOwogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1NzcyOSkKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDEwLTA0LTE2ICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTG9nIGVycm9yIG1lc3NhZ2UgdG8gaW5zcGVjdG9y
IGNvbnNvbGUgaWYgYSByZXNvdXJjZSBmYWlscyB0byBsb2FkLgorICAgICAgICBNb3ZlZCBjb25z
b2xlLXRlc3RzLmpzIHRvIGh0dHAgdGVzdHMuIEFkZGVkIHN1cHBvcnQgZm9yIHNvcnRpbmcKKyAg
ICAgICAgY29uc29sZSBtZXNzYWdlcywgaW4gY2FzZSBvcmRlciBtYXkgdmFyeS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MjE1CisKKyAgICAgICAg
KiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXJlc291cmNlLWVycm9ycy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtcmVzb3Vy
Y2UtZXJyb3JzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUtdGVzdHMuanM6IEFkZGVkLgorICAgICAgICAoZHVtcENvbnNvbGVNZXNzYWdlcy5jYWxs
YmFjayk6CisgICAgICAgIChkdW1wQ29uc29sZU1lc3NhZ2VzKToKKyAgICAgICAgKGR1bXBDb25z
b2xlTWVzc2FnZXNXaXRoQ2xhc3Nlcy5jYWxsYmFjayk6CisgICAgICAgIChkdW1wQ29uc29sZU1l
c3NhZ2VzV2l0aENsYXNzZXMpOgorICAgICAgICAoZnJvbnRlbmRfZHVtcENvbnNvbGVNZXNzYWdl
cyk6CisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUtY2xlYXIuaHRtbDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvY29uc29sZS1kaXIuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS1k
aXJ4bWwuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS1mb3JtYXQtY29sbGVjdGlv
bnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlLWZvcm1hdC1jb2xs
ZWN0aW9ucy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlLWZvcm1hdC5odG1sOgor
ICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlLWxvZy1iZWZvcmUtaW5zcGVjdG9yLW9wZW4uaHRt
bDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS10ZXN0cy5odG1sOgorICAgICAgICAqIGlu
c3BlY3Rvci9jb25zb2xlLXRlc3RzLmpzOiBSZW1vdmVkLgorCiAyMDEwLTA0LTE2ICBBZGFtIFJv
YmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBTS2lwIHhzcy1ERU5JRUQtbWltZS10
eXBlLWV4ZWN1dGUtYXMtaHRtbC5odG1sIHRvIHNlZSBpZiBpdCBtYWtlcyB0aGUKSW5kZXg6IExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtcmVzb3VyY2UtZXJyb3JzLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9jb25zb2xlLXJlc291cmNlLWVycm9ycy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXJlc291cmNlLWVycm9ycy1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNyBAQAorIFRlc3RzIHRoYXQgZXJy
b3JzIHRvIGxvYWQgYSByZXNvdXJjZSBjYXVzZSBlcnJvciBtZXNzYWdlcyB0byBiZSBsb2dnZWQg
dG8gY29uc29sZS4KKworbWlzc2luZy5jc3NGYWlsZWQgdG8gbG9hZCByZXNvdXJjZTogdGhlIHNl
cnZlciByZXNwb25kZWQgd2l0aCBhIHN0YXR1cyBvZiA0MDQgKE5vdCBGb3VuZCkgY29uc29sZS1t
ZXNzYWdlIGNvbnNvbGUtb3RoZXItc291cmNlIGNvbnNvbGUtZXJyb3ItbGV2ZWwKK25vbi1leGlz
dGVudC1pZnJhbWUuaHRtbEZhaWxlZCB0byBsb2FkIHJlc291cmNlOiB0aGUgc2VydmVyIHJlc3Bv
bmRlZCB3aXRoIGEgc3RhdHVzIG9mIDQwNCAoTm90IEZvdW5kKSBjb25zb2xlLW1lc3NhZ2UgY29u
c29sZS1vdGhlci1zb3VyY2UgY29uc29sZS1lcnJvci1sZXZlbAorbm9uLWV4aXN0ZW50LXNjcmlw
dC5qc0ZhaWxlZCB0byBsb2FkIHJlc291cmNlOiB0aGUgc2VydmVyIHJlc3BvbmRlZCB3aXRoIGEg
c3RhdHVzIG9mIDQwNCAoTm90IEZvdW5kKSBjb25zb2xlLW1lc3NhZ2UgY29uc29sZS1vdGhlci1z
b3VyY2UgY29uc29sZS1lcnJvci1sZXZlbAorbm9uLWV4aXN0ZW50LXhockZhaWxlZCB0byBsb2Fk
IHJlc291cmNlOiB0aGUgc2VydmVyIHJlc3BvbmRlZCB3aXRoIGEgc3RhdHVzIG9mIDQwNCAoTm90
IEZvdW5kKSBjb25zb2xlLW1lc3NhZ2UgY29uc29sZS1vdGhlci1zb3VyY2UgY29uc29sZS1lcnJv
ci1sZXZlbAorCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xl
LXJlc291cmNlLWVycm9ycy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUtcmVzb3VyY2UtZXJyb3JzLmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXJlc291cmNlLWVycm9y
cy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMwIEBACis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9ImNvbnNvbGUtdGVzdHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Imluc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKworPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0
ZXh0L2NzcyIgaHJlZj0ibWlzc2luZy5jc3MiPgorCis8c2NyaXB0PgorZnVuY3Rpb24gZG9pdCgp
Cit7CisgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHhoci5vcGVuKCJH
RVQiLCJub24tZXhpc3RlbnQteGhyIiwgZmFsc2UpOworICAgIHhoci5zZW5kKG51bGwpOworCisg
ICAgZHVtcENvbnNvbGVNZXNzYWdlc1dpdGhDbGFzc2VzKHRydWUpOworfQorCis8L3NjcmlwdD4K
KzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJvbmxvYWQoKSI+Cis8cD4KKzxzY3JpcHQgc3JjPSJu
b24tZXhpc3RlbnQtc2NyaXB0LmpzIj48L3NjcmlwdD4KKzxpZnJhbWUgc3JjPSJub24tZXhpc3Rl
bnQtaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorCitUZXN0cyB0aGF0IGVycm9ycyB0byBsb2FkIGEg
cmVzb3VyY2UgY2F1c2UgZXJyb3IgbWVzc2FnZXMgdG8gYmUgbG9nZ2VkIHRvIGNvbnNvbGUuCis8
L3A+CisKKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUtdGVzdHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0cy5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdHMuanMJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNDEgQEAKKy8vIEluc3BlY3RlZCBQYWdlIGZ1bmN0aW9ucy4KKworZnVuY3Rpb24g
ZHVtcENvbnNvbGVNZXNzYWdlcyhub05vdGlmeURvbmUpIHsKKyAgICBmdW5jdGlvbiBjYWxsYmFj
ayhyZXN1bHQpCisgICAgeworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3VsdC5sZW5n
dGg7ICsraSkKKyAgICAgICAgICAgIG91dHB1dChyZXN1bHRbaV0udGV4dCk7CisgICAgICAgIGlm
ICghbm9Ob3RpZnlEb25lKQorICAgICAgICAgICAgbm90aWZ5RG9uZSgpOworICAgIH0KKyAgICBl
dmFsdWF0ZUluV2ViSW5zcGVjdG9yKCJmcm9udGVuZF9kdW1wQ29uc29sZU1lc3NhZ2VzIiwgY2Fs
bGJhY2spOworfQorCitmdW5jdGlvbiBkdW1wQ29uc29sZU1lc3NhZ2VzV2l0aENsYXNzZXMoc29y
dE1lc3NhZ2VzKSB7CisgICAgZnVuY3Rpb24gY2FsbGJhY2socmVzdWx0KQorICAgIHsKKyAgICAg
ICAgdmFyIG1lc3NhZ2VzID0gW107CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdWx0
Lmxlbmd0aDsgKytpKQorICAgICAgICAgICAgbWVzc2FnZXMucHVzaChyZXN1bHRbaV0udGV4dCAr
ICIgIiArIHJlc3VsdFtpXS5jbGF6eik7CisgICAgICAgIGlmIChzb3J0TWVzc2FnZXMpCisgICAg
ICAgICAgICBtZXNzYWdlcy5zb3J0KCk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWVz
c2FnZXMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICBvdXRwdXQobWVzc2FnZXNbaV0pOworICAg
ICAgICBub3RpZnlEb25lKCk7CisgICAgfQorICAgIGV2YWx1YXRlSW5XZWJJbnNwZWN0b3IoImZy
b250ZW5kX2R1bXBDb25zb2xlTWVzc2FnZXMiLCBjYWxsYmFjayk7Cit9CisKKworLy8gRnJvbnRl
bmQgZnVuY3Rpb25zLgorCitmdW5jdGlvbiBmcm9udGVuZF9kdW1wQ29uc29sZU1lc3NhZ2VzKCkK
K3sKKyAgICB2YXIgcmVzdWx0ID0gW107CisgICAgdmFyIG1lc3NhZ2VzID0gV2ViSW5zcGVjdG9y
LmNvbnNvbGUubWVzc2FnZXM7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZXNzYWdlcy5sZW5n
dGg7ICsraSkgeworICAgICAgICB2YXIgZWxlbWVudCA9IG1lc3NhZ2VzW2ldLnRvTWVzc2FnZUVs
ZW1lbnQoKTsKKyAgICAgICAgcmVzdWx0LnB1c2goeyB0ZXh0OiBlbGVtZW50LnRleHRDb250ZW50
LnJlcGxhY2UoL1x1MjAwYi9nLCAiIiksIGNsYXp6OiBlbGVtZW50LmdldEF0dHJpYnV0ZSgiY2xh
c3MiKX0pOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQpJbmRleDogTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NvbnNvbGUtY2xlYXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY29uc29sZS1jbGVhci5odG1sCShyZXZpc2lvbiA1NzcyOSkKKysrIExheW91dFRl
c3RzL2luc3BlY3Rvci9jb25zb2xlLWNsZWFyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyAr
MSw3IEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJjb25zb2xlLXRl
c3RzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9j
b25zb2xlLXRlc3RzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAKIGZ1bmN0aW9uIGRvaXQoKQpJ
bmRleDogTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtZGlyLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtZGlyLmh0bWwJKHJldmlzaW9uIDU3NzI5
KQorKysgTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtZGlyLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNyArMSw3IEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJjb25zb2xlLXRlc3RzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9jb25zb2xlLXRlc3RzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAKIGZ1bmN0
aW9uIGRvaXQoKQpJbmRleDogTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtZGlyeG1sLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtZGlyeG1sLmh0
bWwJKHJldmlzaW9uIDU3NzI5KQorKysgTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtZGly
eG1sLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiA8aHRtbD4KIDxoZWFkPgog
PHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJjb25zb2xlLXRlc3RzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3RzLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQ+CiAKIGZ1bmN0aW9uIGRvaXQoKQpJbmRleDogTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NvbnNvbGUtZm9ybWF0LWNvbGxlY3Rpb25zLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS1mb3JtYXQtY29sbGVjdGlvbnMtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiA1NzcyOSkKKysrIExheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xl
LWZvcm1hdC1jb2xsZWN0aW9ucy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTgsOSAr
OCw5IEBAIENPTlNPTEUgTUVTU0FHRTogbGluZSA0MTogMSwyLAogVGVzdHMgdGhhdCBjb25zb2xl
IG5pY2VseSBmb3JtYXRzIEhUTUwgQ29sbGVjdGlvbnMgYW5kIE5vZGVMaXN0cy4KIAogY29uc29s
ZS1mb3JtYXQtY29sbGVjdGlvbnMuaHRtbDoxNVs8c2VsZWN0IGlkPSJzZWwiIG5hbWU9InNlbCI+
4oCmPC9zZWxlY3Q+XQotY29uc29sZS1mb3JtYXQtY29sbGVjdGlvbnMuaHRtbDoxOVs8c2NyaXB0
IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0
PiwgPHNjcmlwdCBzcmM9ImNvbnNvbGUtdGVzdHMuanMiPjwvc2NyaXB0PiwgPHNjcmlwdD7igKY8
L3NjcmlwdD5dCitjb25zb2xlLWZvcm1hdC1jb2xsZWN0aW9ucy5odG1sOjE5WzxzY3JpcHQgc3Jj
PSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+LCA8
c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0cy5qcyI+PC9z
Y3JpcHQ+LCA8c2NyaXB0PuKApjwvc2NyaXB0Pl0KIGNvbnNvbGUtZm9ybWF0LWNvbGxlY3Rpb25z
Lmh0bWw6MjNbPG9wdGlvbiB2YWx1ZT0iMSI+b25lPC9vcHRpb24+LCA8b3B0aW9uIHZhbHVlPSIy
Ij50d288L29wdGlvbj5dCi1jb25zb2xlLWZvcm1hdC1jb2xsZWN0aW9ucy5odG1sOjI3WzxodG1s
PuKApjwvaHRtbD4sIDxoZWFkPuKApjwvaGVhZD4sIDxzY3JpcHQgc3JjPSIuLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+LCA8c2NyaXB0IHNyYz0iY29u
c29sZS10ZXN0cy5qcyI+PC9zY3JpcHQ+LCA8c2NyaXB0PuKApjwvc2NyaXB0PiwgPGJvZHkgb25s
b2FkPSJvbmxvYWQoKSI+4oCmPC9ib2R5PiwgPHA+IFRlc3RzIHRoYXQgY29uc29sZSBuaWNlbHkg
Zm9ybWF0cyBIVE1MIENvbGxlY3Rpb25zIGFuZCBOb2RlTGlzdHMuIDwvcD4sIDxkaXYgc3R5bGU9
ImRpc3BsYXk6bm9uZSI+4oCmPC9kaXY+LCA8Zm9ybSBpZD0iZiI+4oCmPC9mb3JtPiwgPHNlbGVj
dCBpZD0ic2VsIiBuYW1lPSJzZWwiPuKApjwvc2VsZWN0PiwgPG9wdGlvbiB2YWx1ZT0iMSI+b25l
PC9vcHRpb24+LCA8b3B0aW9uIHZhbHVlPSIyIj50d288L29wdGlvbj4sIDxpbnB1dCB0eXBlPSJy
YWRpbyIgbmFtZT0ieCIgdmFsdWU9IngxIj4sIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0ieCIg
dmFsdWU9IngyIj4sIDxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+XQorY29uc29sZS1mb3JtYXQtY29s
bGVjdGlvbnMuaHRtbDoyN1s8aHRtbD7igKY8L2h0bWw+LCA8aGVhZD7igKY8L2hlYWQ+LCA8c2Ny
aXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2Ny
aXB0PiwgPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdHMu
anMiPjwvc2NyaXB0PiwgPHNjcmlwdD7igKY8L3NjcmlwdD4sIDxib2R5IG9ubG9hZD0ib25sb2Fk
KCkiPuKApjwvYm9keT4sIDxwPiBUZXN0cyB0aGF0IGNvbnNvbGUgbmljZWx5IGZvcm1hdHMgSFRN
TCBDb2xsZWN0aW9ucyBhbmQgTm9kZUxpc3RzLiA8L3A+LCA8ZGl2IHN0eWxlPSJkaXNwbGF5Om5v
bmUiPuKApjwvZGl2PiwgPGZvcm0gaWQ9ImYiPuKApjwvZm9ybT4sIDxzZWxlY3QgaWQ9InNlbCIg
bmFtZT0ic2VsIj7igKY8L3NlbGVjdD4sIDxvcHRpb24gdmFsdWU9IjEiPm9uZTwvb3B0aW9uPiwg
PG9wdGlvbiB2YWx1ZT0iMiI+dHdvPC9vcHRpb24+LCA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9
IngiIHZhbHVlPSJ4MSI+LCA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9IngiIHZhbHVlPSJ4MiI+
LCA8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2Pl0KIGNvbnNvbGUtZm9ybWF0LWNvbGxlY3Rpb25zLmh0
bWw6MzFbPHNlbGVjdCBpZD0ic2VsIiBuYW1lPSJzZWwiPuKApjwvc2VsZWN0PiwgPGlucHV0IHR5
cGU9InJhZGlvIiBuYW1lPSJ4IiB2YWx1ZT0ieDEiPiwgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1l
PSJ4IiB2YWx1ZT0ieDIiPl0KIGNvbnNvbGUtZm9ybWF0LWNvbGxlY3Rpb25zLmh0bWw6MzVbPGlu
cHV0IHR5cGU9InJhZGlvIiBuYW1lPSJ4IiB2YWx1ZT0ieDEiPiwgPGlucHV0IHR5cGU9InJhZGlv
IiBuYW1lPSJ4IiB2YWx1ZT0ieDIiPl0KIGNvbnNvbGUtZm9ybWF0LWNvbGxlY3Rpb25zLmh0bWw6
NDFbMSwgQXJyYXldCkluZGV4OiBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS1mb3JtYXQt
Y29sbGVjdGlvbnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29u
c29sZS1mb3JtYXQtY29sbGVjdGlvbnMuaHRtbAkocmV2aXNpb24gNTc3MjkpCisrKyBMYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1mb3JtYXQtY29sbGVjdGlvbnMuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMSw3ICsxLDcgQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9ImNvbnNvbGUtdGVzdHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdHMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIAogZnVu
Y3Rpb24gZG9pdCgpCkluZGV4OiBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS1mb3JtYXQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS1mb3JtYXQu
aHRtbAkocmV2aXNpb24gNTc3MjkpCisrKyBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS1m
b3JtYXQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIDxodG1sPgogPGhlYWQ+
CiA8c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImNvbnNvbGUtdGVzdHMuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdHMuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdD4KIAogLy8gR2xvYmFsIFZhbHVlcwpJbmRleDogTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUtbG9nLWJlZm9yZS1pbnNwZWN0b3Itb3Blbi5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlLWxvZy1iZWZvcmUtaW5zcGVjdG9yLW9w
ZW4uaHRtbAkocmV2aXNpb24gNTc3MjkpCisrKyBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS1sb2ctYmVmb3JlLWluc3BlY3Rvci1vcGVuLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyAr
MSw3IEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJjb25zb2xlLXRl
c3RzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9j
b25zb2xlLXRlc3RzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAKIGNvbnNvbGUubG9nKCdsb2cn
KTsKSW5kZXg6IExheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3RzLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdHMuaHRtbAkocmV2aXNp
b24gNTc3MjkpCisrKyBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0cy5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3Jj
PSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iY29uc29sZS10ZXN0cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0cy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
PgogCiBmdW5jdGlvbiBkb2l0KCkKSW5kZXg6IExheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xl
LXRlc3RzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRl
c3RzLmpzCShyZXZpc2lvbiA1NzcyOSkKKysrIExheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xl
LXRlc3RzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM2ICswLDAgQEAKLS8vIEluc3BlY3RlZCBQ
YWdlIGZ1bmN0aW9ucy4KLQotZnVuY3Rpb24gZHVtcENvbnNvbGVNZXNzYWdlcyhub05vdGlmeURv
bmUpIHsKLSAgICBmdW5jdGlvbiBjYWxsYmFjayhyZXN1bHQpCi0gICAgewotICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHJlc3VsdC5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIG91dHB1dChy
ZXN1bHRbaV0udGV4dCk7Ci0gICAgICAgIGlmICghbm9Ob3RpZnlEb25lKQotICAgICAgICAgICAg
bm90aWZ5RG9uZSgpOwotICAgIH0KLSAgICBldmFsdWF0ZUluV2ViSW5zcGVjdG9yKCJmcm9udGVu
ZF9kdW1wQ29uc29sZU1lc3NhZ2VzIiwgY2FsbGJhY2spOwotfQotCi1mdW5jdGlvbiBkdW1wQ29u
c29sZU1lc3NhZ2VzV2l0aENsYXNzZXMoKSB7Ci0gICAgZnVuY3Rpb24gY2FsbGJhY2socmVzdWx0
KQotICAgIHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoOyArK2kp
Ci0gICAgICAgICAgICBvdXRwdXQocmVzdWx0W2ldLnRleHQgKyAiICIgKyByZXN1bHRbaV0uY2xh
enopOwotICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgfQotICAgIGV2YWx1YXRlSW5XZWJJbnNw
ZWN0b3IoImZyb250ZW5kX2R1bXBDb25zb2xlTWVzc2FnZXMiLCBjYWxsYmFjayk7Ci19Ci0KLQot
Ly8gRnJvbnRlbmQgZnVuY3Rpb25zLgotCi1mdW5jdGlvbiBmcm9udGVuZF9kdW1wQ29uc29sZU1l
c3NhZ2VzKCkKLXsKLSAgICB2YXIgcmVzdWx0ID0gW107Ci0gICAgdmFyIG1lc3NhZ2VzID0gV2Vi
SW5zcGVjdG9yLmNvbnNvbGUubWVzc2FnZXM7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZXNz
YWdlcy5sZW5ndGg7ICsraSkgewotICAgICAgICB2YXIgZWxlbWVudCA9IG1lc3NhZ2VzW2ldLnRv
TWVzc2FnZUVsZW1lbnQoKTsKLSAgICAgICAgcmVzdWx0LnB1c2goeyB0ZXh0OiBlbGVtZW50LnRl
eHRDb250ZW50LnJlcGxhY2UoL1x1MjAwYi9nLCAiIiksIGNsYXp6OiBlbGVtZW50LmdldEF0dHJp
YnV0ZSgiY2xhc3MiKX0pOwotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OwotfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54543</attachid>
            <date>2010-04-28 02:58:37 -0700</date>
            <delta_ts>2010-04-28 04:49:14 -0700</delta_ts>
            <desc>patch; added test expectation overrides for mac-tiger</desc>
            <filename>resource-errors</filename>
            <type>text/plain</type>
            <size>20702</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODM5NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTAtMDQtMjggIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBMb2cgZXJyb3IgbWVzc2FnZSB0byBpbnNwZWN0b3IgY29uc29sZSBpZiBhIHJlc291cmNlIGZh
aWxzIHRvIGxvYWQuCisgICAgICAgIERpc2FibGUgY2hlY2tpbmcgb2YgbWltZS10eXBlIGNvbnNp
c3RlbmN5IGZvciBmYWlsZWQgcmVzb3VyY2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzcyMTUKKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL2lu
c3BlY3Rvci9jb25zb2xlLXJlc291cmNlLWVycm9ycy5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JD
b250cm9sbGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQ29udHJvbGxlcjo6ZGlkRmFpbExvYWRpbmcpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvUmVzb3VyY2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90
eXBlLl9taW1lVHlwZUlzQ29uc2lzdGVudFdpdGhUeXBlKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291
cmNlc1BhbmVsLnByb3RvdHlwZS5yZWNyZWF0ZVZpZXdGb3JSZXNvdXJjZUlmTmVlZGVkKToKKwog
MjAxMC0wNC0yOCAgSnVzdGluIE1jUGhlcnNvbiA8anVzdGluLm1jcGhlcnNvbkBub2tpYS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4uCkluZGV4OiBXZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAkocmV2aXNpb24gNTgzODkpCisrKyBXZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
ODk0LDE1ICs4OTQsMTkgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjp3aWxsU2VuZFJlcXVl
cwogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewot
ICAgIFJlZlB0cjxJbnNwZWN0b3JSZXNvdXJjZT4gcmVzb3VyY2UgPSBnZXRUcmFja2VkUmVzb3Vy
Y2UoaWRlbnRpZmllcik7Ci0gICAgaWYgKCFyZXNvdXJjZSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgcmVzb3VyY2UtPnVwZGF0ZVJlc3BvbnNlKHJlc3BvbnNlKTsKLSAgICByZXNvdXJjZS0+bWFy
a1Jlc3BvbnNlUmVjZWl2ZWRUaW1lKCk7CisgICAgaWYgKFJlZlB0cjxJbnNwZWN0b3JSZXNvdXJj
ZT4gcmVzb3VyY2UgPSBnZXRUcmFja2VkUmVzb3VyY2UoaWRlbnRpZmllcikpIHsKKyAgICAgICAg
cmVzb3VyY2UtPnVwZGF0ZVJlc3BvbnNlKHJlc3BvbnNlKTsKKyAgICAgICAgcmVzb3VyY2UtPm1h
cmtSZXNwb25zZVJlY2VpdmVkVGltZSgpOworCisgICAgICAgIGlmIChyZXNvdXJjZSAhPSBtX21h
aW5SZXNvdXJjZSAmJiBtX2Zyb250ZW5kKQorICAgICAgICAgICAgcmVzb3VyY2UtPnVwZGF0ZVNj
cmlwdE9iamVjdChtX2Zyb250ZW5kLmdldCgpKTsKKyAgICB9CisgICAgaWYgKHJlc3BvbnNlLmh0
dHBTdGF0dXNDb2RlKCkgPj0gNDAwKSB7CisgICAgICAgIC8vIFRoZSB1Z2x5IGNvZGUgYmVsb3cg
aXMgZHVlIHRvIHRoYXQgU3RyaW5nOjpmb3JtYXQoKSBpcyBub3QgdXRmOC1zYWZlIGF0IHRoZSBt
b21lbnQuCisgICAgICAgIFN0cmluZyBtZXNzYWdlID0gU3RyaW5nOjpmb3JtYXQoIkZhaWxlZCB0
byBsb2FkIHJlc291cmNlOiB0aGUgc2VydmVyIHJlc3BvbmRlZCB3aXRoIGEgc3RhdHVzIG9mICV1
ICgiLCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpKSArIHJlc3BvbnNlLmh0dHBTdGF0dXNUZXh0
KCkgKyAiKSI7CiAKLSAgICBpZiAocmVzb3VyY2UgIT0gbV9tYWluUmVzb3VyY2UgJiYgbV9mcm9u
dGVuZCkKLSAgICAgICAgcmVzb3VyY2UtPnVwZGF0ZVNjcmlwdE9iamVjdChtX2Zyb250ZW5kLmdl
dCgpKTsKKyAgICAgICAgYWRkTWVzc2FnZVRvQ29uc29sZShPdGhlck1lc3NhZ2VTb3VyY2UsIExv
Z01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMCwgcmVzcG9uc2UudXJs
KCkuc3RyaW5nKCkpOworICAgIH0KIH0KIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRS
ZWNlaXZlQ29udGVudExlbmd0aCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBsZW5ndGhS
ZWNlaXZlZCkKQEAgLTkzMywxMSArOTM3LDE2IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6
ZGlkRmluaXNoTG9hZGkKICAgICAgICAgcmVzb3VyY2UtPnVwZGF0ZVNjcmlwdE9iamVjdChtX2Zy
b250ZW5kLmdldCgpKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRGYWlsTG9h
ZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIC8qZXJy
b3IqLykKK3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkRmFpbExvYWRpbmcodW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKICAgICBpZiAo
bV90aW1lbGluZUFnZW50KQogICAgICAgICBtX3RpbWVsaW5lQWdlbnQtPmRpZEZpbmlzaExvYWRp
bmdSZXNvdXJjZShpZGVudGlmaWVyLCB0cnVlKTsKIAorICAgIFN0cmluZyBtZXNzYWdlID0gIkZh
aWxlZCB0byBsb2FkIHJlc291cmNlIjsKKyAgICBpZiAoIWVycm9yLmxvY2FsaXplZERlc2NyaXB0
aW9uKCkuaXNFbXB0eSgpKQorICAgICAgICBtZXNzYWdlICs9ICI6ICIgKyBlcnJvci5sb2NhbGl6
ZWREZXNjcmlwdGlvbigpOworICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUoT3RoZXJNZXNzYWdlU291
cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDAsIGVycm9y
LmZhaWxpbmdVUkwoKSk7CisKICAgICBSZWZQdHI8SW5zcGVjdG9yUmVzb3VyY2U+IHJlc291cmNl
ID0gZ2V0VHJhY2tlZFJlc291cmNlKGlkZW50aWZpZXIpOwogICAgIGlmICghcmVzb3VyY2UpCiAg
ICAgICAgIHJldHVybjsKSW5kZXg6IFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2Uu
anMJKHJldmlzaW9uIDU4Mzg5KQorKysgV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291
cmNlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC01MzYsNiArNTM2LDEyIEBAIFdlYkluc3BlY3Rvci5S
ZXNvdXJjZS5wcm90b3R5cGUgPSB7CiAKICAgICBfbWltZVR5cGVJc0NvbnNpc3RlbnRXaXRoVHlw
ZTogZnVuY3Rpb24oKQogICAgIHsKKyAgICAgICAgLy8gSWYgc3RhdHVzIGlzIGFuIGVycm9yLCBj
b250ZW50IGlzIGxpa2VseSB0byBiZSBvZiBhbiBpbmNvbnNpc3RlbnQgdHlwZSwKKyAgICAgICAg
Ly8gYXMgaXQncyBnb2luZyB0byBiZSBhbiBlcnJvciBtZXNzYWdlLiBXZSBkbyBub3Qgd2FudCB0
byBlbWl0IGEgd2FybmluZworICAgICAgICAvLyBmb3IgdGhpcywgdGhvdWdoLCBhcyB0aGlzIHdp
bGwgYWxyZWFkeSBiZSByZXBvcnRlZCBhcyByZXNvdXJjZSBsb2FkaW5nIGZhaWx1cmUuCisgICAg
ICAgIGlmICh0aGlzLnN0YXR1c0NvZGUgPj0gNDAwKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisKICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnR5cGUgPT09ICJ1bmRlZmluZWQiCiAgICAgICAg
ICB8fCB0aGlzLnR5cGUgPT09IFdlYkluc3BlY3Rvci5SZXNvdXJjZS5UeXBlLk90aGVyCiAgICAg
ICAgICB8fCB0aGlzLnR5cGUgPT09IFdlYkluc3BlY3Rvci5SZXNvdXJjZS5UeXBlLlhIUikKSW5k
ZXg6IFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMJKHJl
dmlzaW9uIDU4Mzg5KQorKysgV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1Bh
bmVsLmpzCSh3b3JraW5nIGNvcHkpCkBAIC00NDMsOSArNDQzLDYgQEAgV2ViSW5zcGVjdG9yLlJl
c291cmNlc1BhbmVsLnByb3RvdHlwZSA9IAogICAgICAgICBpZiAobmV3Vmlldy5fX3Byb3RvX18g
PT09IHJlc291cmNlLl9yZXNvdXJjZXNWaWV3Ll9fcHJvdG9fXykKICAgICAgICAgICAgIHJldHVy
bjsKIAotICAgICAgICByZXNvdXJjZS53YXJuaW5ncyA9IDA7Ci0gICAgICAgIHJlc291cmNlLmVy
cm9ycyA9IDA7Ci0KICAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRRdWVyeSAmJiByZXNvdXJjZS5f
aXRlbXNUcmVlRWxlbWVudCkKICAgICAgICAgICAgIHJlc291cmNlLl9pdGVtc1RyZWVFbGVtZW50
LnVwZGF0ZUVycm9yc0FuZFdhcm5pbmdzKCk7CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDU4Mzk0KQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzIgQEAK
KzIwMTAtMDQtMjggIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMb2cgZXJyb3IgbWVz
c2FnZSB0byBpbnNwZWN0b3IgY29uc29sZSBpZiBhIHJlc291cmNlIGZhaWxzIHRvIGxvYWQuCisg
ICAgICAgIE1vdmVkIGNvbnNvbGUtdGVzdHMuanMgdG8gaHR0cCB0ZXN0cy4gQWRkZWQgc3VwcG9y
dCBmb3Igc29ydGluZworICAgICAgICBjb25zb2xlIG1lc3NhZ2VzLCBpbiBjYXNlIG9yZGVyIG1h
eSB2YXJ5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzcyMTUKKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtcmVzb3VyY2Ut
ZXJyb3JzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0
b3IvY29uc29sZS1yZXNvdXJjZS1lcnJvcnMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0cy5qczogQWRkZWQuCisgICAgICAgIChkdW1wQ29u
c29sZU1lc3NhZ2VzLmNhbGxiYWNrKToKKyAgICAgICAgKGR1bXBDb25zb2xlTWVzc2FnZXMpOgor
ICAgICAgICAoZHVtcENvbnNvbGVNZXNzYWdlc1dpdGhDbGFzc2VzLmNhbGxiYWNrKToKKyAgICAg
ICAgKGR1bXBDb25zb2xlTWVzc2FnZXNXaXRoQ2xhc3Nlcyk6CisgICAgICAgIChmcm9udGVuZF9k
dW1wQ29uc29sZU1lc3NhZ2VzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS1jbGVhci5o
dG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlLWRpci5odG1sOgorICAgICAgICAqIGlu
c3BlY3Rvci9jb25zb2xlLWRpcnhtbC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xl
LWZvcm1hdC1jb2xsZWN0aW9ucy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2Nv
bnNvbGUtZm9ybWF0LWNvbGxlY3Rpb25zLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NvbnNv
bGUtZm9ybWF0Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUtbG9nLWJlZm9yZS1p
bnNwZWN0b3Itb3Blbi5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlLXRlc3RzLmh0
bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUtdGVzdHMuanM6IFJlbW92ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vbWFjLXRpZ2VyL2h0dHAvdGVzdHMvaW5zcGVjdG9yOiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMtdGlnZXIvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1y
ZXNvdXJjZS1lcnJvcnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMC0wNC0yOCAgRGFuaWVs
IEJhdGVzICA8ZGJhdGVzQHJpbS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmViYXNlIGV4
cGVjdGVkIHJlc3VsdCBvZiBmYWlsaW5nIHRlc3QuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9jb25zb2xlLXJlc291cmNlLWVycm9ycy1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1yZXNvdXJj
ZS1lcnJvcnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1yZXNvdXJjZS1lcnJvcnMtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDcgQEAKKyBUZXN0cyB0aGF0IGVycm9ycyB0byBsb2FkIGEgcmVz
b3VyY2UgY2F1c2UgZXJyb3IgbWVzc2FnZXMgdG8gYmUgbG9nZ2VkIHRvIGNvbnNvbGUuCisKK21p
c3NpbmcuY3NzRmFpbGVkIHRvIGxvYWQgcmVzb3VyY2U6IHRoZSBzZXJ2ZXIgcmVzcG9uZGVkIHdp
dGggYSBzdGF0dXMgb2YgNDA0IChOb3QgRm91bmQpIGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLW90
aGVyLXNvdXJjZSBjb25zb2xlLWVycm9yLWxldmVsCitub24tZXhpc3RlbnQtaWZyYW1lLmh0bWxG
YWlsZWQgdG8gbG9hZCByZXNvdXJjZTogdGhlIHNlcnZlciByZXNwb25kZWQgd2l0aCBhIHN0YXR1
cyBvZiA0MDQgKE5vdCBGb3VuZCkgY29uc29sZS1tZXNzYWdlIGNvbnNvbGUtb3RoZXItc291cmNl
IGNvbnNvbGUtZXJyb3ItbGV2ZWwKK25vbi1leGlzdGVudC1zY3JpcHQuanNGYWlsZWQgdG8gbG9h
ZCByZXNvdXJjZTogdGhlIHNlcnZlciByZXNwb25kZWQgd2l0aCBhIHN0YXR1cyBvZiA0MDQgKE5v
dCBGb3VuZCkgY29uc29sZS1tZXNzYWdlIGNvbnNvbGUtb3RoZXItc291cmNlIGNvbnNvbGUtZXJy
b3ItbGV2ZWwKK25vbi1leGlzdGVudC14aHJGYWlsZWQgdG8gbG9hZCByZXNvdXJjZTogdGhlIHNl
cnZlciByZXNwb25kZWQgd2l0aCBhIHN0YXR1cyBvZiA0MDQgKE5vdCBGb3VuZCkgY29uc29sZS1t
ZXNzYWdlIGNvbnNvbGUtb3RoZXItc291cmNlIGNvbnNvbGUtZXJyb3ItbGV2ZWwKKwpJbmRleDog
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1yZXNvdXJjZS1lcnJvcnMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25z
b2xlLXJlc291cmNlLWVycm9ycy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1yZXNvdXJjZS1lcnJvcnMuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwzMCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJjb25zb2xl
LXRlc3RzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJpbnNwZWN0b3ItdGVzdC5qcyI+PC9z
Y3JpcHQ+CisKKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Im1p
c3NpbmcuY3NzIj4KKworPHNjcmlwdD4KK2Z1bmN0aW9uIGRvaXQoKQoreworICAgIHZhciB4aHIg
PSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICB4aHIub3BlbigiR0VUIiwibm9uLWV4aXN0ZW50
LXhociIsIGZhbHNlKTsKKyAgICB4aHIuc2VuZChudWxsKTsKKworICAgIGR1bXBDb25zb2xlTWVz
c2FnZXNXaXRoQ2xhc3Nlcyh0cnVlKTsKK30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5
IG9ubG9hZD0ib25sb2FkKCkiPgorPHA+Cis8c2NyaXB0IHNyYz0ibm9uLWV4aXN0ZW50LXNjcmlw
dC5qcyI+PC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0ibm9uLWV4aXN0ZW50LWlmcmFtZS5odG1sIj48
L2lmcmFtZT4KKworVGVzdHMgdGhhdCBlcnJvcnMgdG8gbG9hZCBhIHJlc291cmNlIGNhdXNlIGVy
cm9yIG1lc3NhZ2VzIHRvIGJlIGxvZ2dlZCB0byBjb25zb2xlLgorPC9wPgorCis8L2JvZHk+Cis8
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRl
c3RzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUtdGVzdHMuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9jb25zb2xlLXRlc3RzLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyMyBAQAor
Ly8gSW5zcGVjdGVkIFBhZ2UgZnVuY3Rpb25zLgorCitmdW5jdGlvbiBkdW1wQ29uc29sZU1lc3Nh
Z2VzKG5vTm90aWZ5RG9uZSkgeworICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHJlc3VsdCkKKyAgICB7
CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgKytpKQorICAgICAg
ICAgICAgb3V0cHV0KHJlc3VsdFtpXS50ZXh0KTsKKyAgICAgICAgaWYgKCFub05vdGlmeURvbmUp
CisgICAgICAgICAgICBub3RpZnlEb25lKCk7CisgICAgfQorICAgIGV2YWx1YXRlSW5XZWJJbnNw
ZWN0b3IoImZyb250ZW5kX2R1bXBDb25zb2xlTWVzc2FnZXMiLCBjYWxsYmFjayk7Cit9CisKK2Z1
bmN0aW9uIGR1bXBDb25zb2xlTWVzc2FnZXNXaXRoQ2xhc3Nlcyhzb3J0TWVzc2FnZXMpIHsKKyAg
ICBmdW5jdGlvbiBjYWxsYmFjayhyZXN1bHQpCisgICAgeworICAgICAgICB2YXIgbWVzc2FnZXMg
PSBbXTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoOyArK2kpCisg
ICAgICAgICAgICBtZXNzYWdlcy5wdXNoKHJlc3VsdFtpXS50ZXh0ICsgIiAiICsgcmVzdWx0W2ld
LmNsYXp6KTsKKyAgICAgICAgaWYgKHNvcnRNZXNzYWdlcykKKyAgICAgICAgICAgIG1lc3NhZ2Vz
LnNvcnQoKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZXNzYWdlcy5sZW5ndGg7ICsr
aSkKKyAgICAgICAgICAgIG91dHB1dChtZXNzYWdlc1tpXSk7CisgICAgICAgIG5vdGlmeURvbmUo
KTsKKyAgICB9CisgICAgZXZhbHVhdGVJbldlYkluc3BlY3RvcigiZnJvbnRlbmRfZHVtcENvbnNv
bGVNZXNzYWdlcyIsIGNhbGxiYWNrKTsKK30KKworCisvLyBGcm9udGVuZCBmdW5jdGlvbnMuCisK
K2Z1bmN0aW9uIGZyb250ZW5kX2R1bXBDb25zb2xlTWVzc2FnZXMoKQoreworICAgIHZhciByZXN1
bHQgPSBbXTsKKyAgICB2YXIgbWVzc2FnZXMgPSBXZWJJbnNwZWN0b3IuY29uc29sZS5tZXNzYWdl
czsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1lc3NhZ2VzLmxlbmd0aDsgKytpKSB7CisgICAg
ICAgIHZhciBlbGVtZW50ID0gbWVzc2FnZXNbaV0udG9NZXNzYWdlRWxlbWVudCgpOworICAgICAg
ICByZXN1bHQucHVzaCh7IHRleHQ6IGVsZW1lbnQudGV4dENvbnRlbnQucmVwbGFjZSgvXHUyMDBi
L2csICIiKSwgY2xheno6IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfSk7CisgICAgfQor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisvLyBJbnNwZWN0ZWQgUGFnZSBmdW5jdGlvbnMuCisKK2Z1
bmN0aW9uIGR1bXBDb25zb2xlTWVzc2FnZXMobm9Ob3RpZnlEb25lKSB7CisgICAgZnVuY3Rpb24g
Y2FsbGJhY2socmVzdWx0KQorICAgIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXN1
bHQubGVuZ3RoOyArK2kpCisgICAgICAgICAgICBvdXRwdXQocmVzdWx0W2ldLnRleHQpOworICAg
ICAgICBpZiAoIW5vTm90aWZ5RG9uZSkKKyAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKKyAgICB9
CisgICAgZXZhbHVhdGVJbldlYkluc3BlY3RvcigiZnJvbnRlbmRfZHVtcENvbnNvbGVNZXNzYWdl
cyIsIGNhbGxiYWNrKTsKK30KKworZnVuY3Rpb24gZHVtcENvbnNvbGVNZXNzYWdlc1dpdGhDbGFz
c2VzKHNvcnRNZXNzYWdlcykgeworICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHJlc3VsdCkKKyAgICB7
CisgICAgICAgIHZhciBtZXNzYWdlcyA9IFtdOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHJlc3VsdC5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIG1lc3NhZ2VzLnB1c2gocmVzdWx0W2ld
LnRleHQgKyAiICIgKyByZXN1bHRbaV0uY2xhenopOworICAgICAgICBpZiAoc29ydE1lc3NhZ2Vz
KQorICAgICAgICAgICAgbWVzc2FnZXMuc29ydCgpOworICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IG1lc3NhZ2VzLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgb3V0cHV0KG1lc3NhZ2VzW2ld
KTsKKyAgICAgICAgbm90aWZ5RG9uZSgpOworICAgIH0KKyAgICBldmFsdWF0ZUluV2ViSW5zcGVj
dG9yKCJmcm9udGVuZF9kdW1wQ29uc29sZU1lc3NhZ2VzIiwgY2FsbGJhY2spOworfQorCisKKy8v
IEZyb250ZW5kIGZ1bmN0aW9ucy4KKworZnVuY3Rpb24gZnJvbnRlbmRfZHVtcENvbnNvbGVNZXNz
YWdlcygpCit7CisgICAgdmFyIHJlc3VsdCA9IFtdOworICAgIHZhciBtZXNzYWdlcyA9IFdlYklu
c3BlY3Rvci5jb25zb2xlLm1lc3NhZ2VzOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWVzc2Fn
ZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBtZXNzYWdlc1tpXS50b01l
c3NhZ2VFbGVtZW50KCk7CisgICAgICAgIHJlc3VsdC5wdXNoKHsgdGV4dDogZWxlbWVudC50ZXh0
Q29udGVudC5yZXBsYWNlKC9cdTIwMGIvZywgIiIpLCBjbGF6ejogZWxlbWVudC5nZXRBdHRyaWJ1
dGUoImNsYXNzIil9KTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKy8vIEluc3BlY3Rl
ZCBQYWdlIGZ1bmN0aW9ucy4KKworZnVuY3Rpb24gZHVtcENvbnNvbGVNZXNzYWdlcyhub05vdGlm
eURvbmUpIHsKKyAgICBmdW5jdGlvbiBjYWxsYmFjayhyZXN1bHQpCisgICAgeworICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHJlc3VsdC5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIG91dHB1
dChyZXN1bHRbaV0udGV4dCk7CisgICAgICAgIGlmICghbm9Ob3RpZnlEb25lKQorICAgICAgICAg
ICAgbm90aWZ5RG9uZSgpOworICAgIH0KKyAgICBldmFsdWF0ZUluV2ViSW5zcGVjdG9yKCJmcm9u
dGVuZF9kdW1wQ29uc29sZU1lc3NhZ2VzIiwgY2FsbGJhY2spOworfQorCitmdW5jdGlvbiBkdW1w
Q29uc29sZU1lc3NhZ2VzV2l0aENsYXNzZXMoc29ydE1lc3NhZ2VzKSB7CisgICAgZnVuY3Rpb24g
Y2FsbGJhY2socmVzdWx0KQorICAgIHsKKyAgICAgICAgdmFyIG1lc3NhZ2VzID0gW107CisgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgKytpKQorICAgICAgICAgICAg
bWVzc2FnZXMucHVzaChyZXN1bHRbaV0udGV4dCArICIgIiArIHJlc3VsdFtpXS5jbGF6eik7Cisg
ICAgICAgIGlmIChzb3J0TWVzc2FnZXMpCisgICAgICAgICAgICBtZXNzYWdlcy5zb3J0KCk7Cisg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWVzc2FnZXMubGVuZ3RoOyArK2kpCisgICAgICAg
ICAgICBvdXRwdXQobWVzc2FnZXNbaV0pOworICAgICAgICBub3RpZnlEb25lKCk7CisgICAgfQor
ICAgIGV2YWx1YXRlSW5XZWJJbnNwZWN0b3IoImZyb250ZW5kX2R1bXBDb25zb2xlTWVzc2FnZXMi
LCBjYWxsYmFjayk7Cit9CisKKworLy8gRnJvbnRlbmQgZnVuY3Rpb25zLgorCitmdW5jdGlvbiBm
cm9udGVuZF9kdW1wQ29uc29sZU1lc3NhZ2VzKCkKK3sKKyAgICB2YXIgcmVzdWx0ID0gW107Cisg
ICAgdmFyIG1lc3NhZ2VzID0gV2ViSW5zcGVjdG9yLmNvbnNvbGUubWVzc2FnZXM7CisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBtZXNzYWdlcy5sZW5ndGg7ICsraSkgeworICAgICAgICB2YXIgZWxl
bWVudCA9IG1lc3NhZ2VzW2ldLnRvTWVzc2FnZUVsZW1lbnQoKTsKKyAgICAgICAgcmVzdWx0LnB1
c2goeyB0ZXh0OiBlbGVtZW50LnRleHRDb250ZW50LnJlcGxhY2UoL1x1MjAwYi9nLCAiIiksIGNs
YXp6OiBlbGVtZW50LmdldEF0dHJpYnV0ZSgiY2xhc3MiKX0pOworICAgIH0KKyAgICByZXR1cm4g
cmVzdWx0OworfQpJbmRleDogTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2xlYXIuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jbGVhci5odG1s
CShyZXZpc2lvbiA1ODM4OSkKKysrIExheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNsZWFy
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiA8aHRtbD4KIDxoZWFkPgogPHNj
cmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJjb25zb2xlLXRlc3RzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3RzLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQ+CiAKIGZ1bmN0aW9uIGRvaXQoKQpJbmRleDogTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUtZGlyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUtZGlyLmh0bWwJKHJldmlzaW9uIDU4Mzg5KQorKysgTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUtZGlyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiA8aHRtbD4K
IDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJjb25zb2xlLXRlc3RzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3RzLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQ+CiAKIGZ1bmN0aW9uIGRvaXQoKQpJbmRleDogTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUtZGlyeG1sLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUtZGlyeG1sLmh0bWwJKHJldmlzaW9uIDU4Mzg5KQorKysgTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtZGlyeG1sLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEsNyArMSw3IEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJjb25z
b2xlLXRlc3RzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9jb25zb2xlLXRlc3RzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAKIGZ1bmN0aW9uIGRv
aXQoKQpJbmRleDogTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtZm9ybWF0LWNvbGxlY3Rp
b25zLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29u
c29sZS1mb3JtYXQtY29sbGVjdGlvbnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA1ODM4OSkKKysr
IExheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlLWZvcm1hdC1jb2xsZWN0aW9ucy1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTgsOSArOCw5IEBAIENPTlNPTEUgTUVTU0FHRTogbGlu
ZSA0MTogMSwyLAogVGVzdHMgdGhhdCBjb25zb2xlIG5pY2VseSBmb3JtYXRzIEhUTUwgQ29sbGVj
dGlvbnMgYW5kIE5vZGVMaXN0cy4KIAogY29uc29sZS1mb3JtYXQtY29sbGVjdGlvbnMuaHRtbDox
NVs8c2VsZWN0IGlkPSJzZWwiIG5hbWU9InNlbCI+4oCmPC9zZWxlY3Q+XQotY29uc29sZS1mb3Jt
YXQtY29sbGVjdGlvbnMuaHRtbDoxOVs8c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PiwgPHNjcmlwdCBzcmM9ImNvbnNvbGUtdGVz
dHMuanMiPjwvc2NyaXB0PiwgPHNjcmlwdD7igKY8L3NjcmlwdD5dCitjb25zb2xlLWZvcm1hdC1j
b2xsZWN0aW9ucy5odG1sOjE5WzxzY3JpcHQgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9p
bnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+LCA8c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9p
bnNwZWN0b3IvY29uc29sZS10ZXN0cy5qcyI+PC9zY3JpcHQ+LCA8c2NyaXB0PuKApjwvc2NyaXB0
Pl0KIGNvbnNvbGUtZm9ybWF0LWNvbGxlY3Rpb25zLmh0bWw6MjNbPG9wdGlvbiB2YWx1ZT0iMSI+
b25lPC9vcHRpb24+LCA8b3B0aW9uIHZhbHVlPSIyIj50d288L29wdGlvbj5dCi1jb25zb2xlLWZv
cm1hdC1jb2xsZWN0aW9ucy5odG1sOjI3WzxodG1sPuKApjwvaHRtbD4sIDxoZWFkPuKApjwvaGVh
ZD4sIDxzY3JpcHQgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5q
cyI+PC9zY3JpcHQ+LCA8c2NyaXB0IHNyYz0iY29uc29sZS10ZXN0cy5qcyI+PC9zY3JpcHQ+LCA8
c2NyaXB0PuKApjwvc2NyaXB0PiwgPGJvZHkgb25sb2FkPSJvbmxvYWQoKSI+4oCmPC9ib2R5Piwg
PHA+IFRlc3RzIHRoYXQgY29uc29sZSBuaWNlbHkgZm9ybWF0cyBIVE1MIENvbGxlY3Rpb25zIGFu
ZCBOb2RlTGlzdHMuIDwvcD4sIDxkaXYgc3R5bGU9ImRpc3BsYXk6bm9uZSI+4oCmPC9kaXY+LCA8
Zm9ybSBpZD0iZiI+4oCmPC9mb3JtPiwgPHNlbGVjdCBpZD0ic2VsIiBuYW1lPSJzZWwiPuKApjwv
c2VsZWN0PiwgPG9wdGlvbiB2YWx1ZT0iMSI+b25lPC9vcHRpb24+LCA8b3B0aW9uIHZhbHVlPSIy
Ij50d288L29wdGlvbj4sIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0ieCIgdmFsdWU9IngxIj4s
IDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0ieCIgdmFsdWU9IngyIj4sIDxkaXYgaWQ9Im91dHB1
dCI+PC9kaXY+XQorY29uc29sZS1mb3JtYXQtY29sbGVjdGlvbnMuaHRtbDoyN1s8aHRtbD7igKY8
L2h0bWw+LCA8aGVhZD7igKY8L2hlYWQ+LCA8c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PiwgPHNjcmlwdCBzcmM9Ii4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdHMuanMiPjwvc2NyaXB0PiwgPHNjcmlwdD7igKY8
L3NjcmlwdD4sIDxib2R5IG9ubG9hZD0ib25sb2FkKCkiPuKApjwvYm9keT4sIDxwPiBUZXN0cyB0
aGF0IGNvbnNvbGUgbmljZWx5IGZvcm1hdHMgSFRNTCBDb2xsZWN0aW9ucyBhbmQgTm9kZUxpc3Rz
LiA8L3A+LCA8ZGl2IHN0eWxlPSJkaXNwbGF5Om5vbmUiPuKApjwvZGl2PiwgPGZvcm0gaWQ9ImYi
PuKApjwvZm9ybT4sIDxzZWxlY3QgaWQ9InNlbCIgbmFtZT0ic2VsIj7igKY8L3NlbGVjdD4sIDxv
cHRpb24gdmFsdWU9IjEiPm9uZTwvb3B0aW9uPiwgPG9wdGlvbiB2YWx1ZT0iMiI+dHdvPC9vcHRp
b24+LCA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9IngiIHZhbHVlPSJ4MSI+LCA8aW5wdXQgdHlw
ZT0icmFkaW8iIG5hbWU9IngiIHZhbHVlPSJ4MiI+LCA8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2Pl0K
IGNvbnNvbGUtZm9ybWF0LWNvbGxlY3Rpb25zLmh0bWw6MzFbPHNlbGVjdCBpZD0ic2VsIiBuYW1l
PSJzZWwiPuKApjwvc2VsZWN0PiwgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJ4IiB2YWx1ZT0i
eDEiPiwgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJ4IiB2YWx1ZT0ieDIiPl0KIGNvbnNvbGUt
Zm9ybWF0LWNvbGxlY3Rpb25zLmh0bWw6MzVbPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJ4IiB2
YWx1ZT0ieDEiPiwgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJ4IiB2YWx1ZT0ieDIiPl0KIGNv
bnNvbGUtZm9ybWF0LWNvbGxlY3Rpb25zLmh0bWw6NDFbMSwgQXJyYXldCkluZGV4OiBMYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1mb3JtYXQtY29sbGVjdGlvbnMuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS1mb3JtYXQtY29sbGVjdGlvbnMuaHRt
bAkocmV2aXNpb24gNTgzODkpCisrKyBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS1mb3Jt
YXQtY29sbGVjdGlvbnMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIDxodG1s
PgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImNvbnNvbGUtdGVzdHMuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdHMu
anMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIAogZnVuY3Rpb24gZG9pdCgpCkluZGV4OiBMYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1mb3JtYXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1mb3JtYXQuaHRtbAkocmV2aXNpb24gNTgzODkpCisrKyBM
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS1mb3JtYXQuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSw3ICsxLDcgQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImNv
bnNvbGUtdGVzdHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUtdGVzdHMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIAogLy8gR2xvYmFs
IFZhbHVlcwpJbmRleDogTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtbG9nLWJlZm9yZS1p
bnNwZWN0b3Itb3Blbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2luc3BlY3Rvci9j
b25zb2xlLWxvZy1iZWZvcmUtaW5zcGVjdG9yLW9wZW4uaHRtbAkocmV2aXNpb24gNTgzODkpCisr
KyBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS1sb2ctYmVmb3JlLWluc3BlY3Rvci1vcGVu
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiA8aHRtbD4KIDxoZWFkPgogPHNj
cmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJjb25zb2xlLXRlc3RzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3RzLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQ+CiAKIGNvbnNvbGUubG9nKCdsb2cnKTsKSW5kZXg6IExheW91dFRlc3RzL2luc3Bl
Y3Rvci9jb25zb2xlLXRlc3RzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NvbnNvbGUtdGVzdHMuaHRtbAkocmV2aXNpb24gNTgzODkpCisrKyBMYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY29uc29sZS10ZXN0cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBA
QAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9p
bnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iY29uc29sZS10ZXN0cy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS10ZXN0cy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogCiBmdW5jdGlvbiBkb2l0KCkKSW5kZXg6
IExheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3RzLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3RzLmpzCShyZXZpc2lvbiA1ODM4OSkKKysr
IExheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3RzLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDM2ICswLDAgQEAKLS8vIEluc3BlY3RlZCBQYWdlIGZ1bmN0aW9ucy4KLQotZnVuY3Rpb24g
ZHVtcENvbnNvbGVNZXNzYWdlcyhub05vdGlmeURvbmUpIHsKLSAgICBmdW5jdGlvbiBjYWxsYmFj
ayhyZXN1bHQpCi0gICAgewotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3VsdC5sZW5n
dGg7ICsraSkKLSAgICAgICAgICAgIG91dHB1dChyZXN1bHRbaV0udGV4dCk7Ci0gICAgICAgIGlm
ICghbm9Ob3RpZnlEb25lKQotICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgIH0KLSAgICBl
dmFsdWF0ZUluV2ViSW5zcGVjdG9yKCJmcm9udGVuZF9kdW1wQ29uc29sZU1lc3NhZ2VzIiwgY2Fs
bGJhY2spOwotfQotCi1mdW5jdGlvbiBkdW1wQ29uc29sZU1lc3NhZ2VzV2l0aENsYXNzZXMoKSB7
Ci0gICAgZnVuY3Rpb24gY2FsbGJhY2socmVzdWx0KQotICAgIHsKLSAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICBvdXRwdXQocmVzdWx0
W2ldLnRleHQgKyAiICIgKyByZXN1bHRbaV0uY2xhenopOwotICAgICAgICBub3RpZnlEb25lKCk7
Ci0gICAgfQotICAgIGV2YWx1YXRlSW5XZWJJbnNwZWN0b3IoImZyb250ZW5kX2R1bXBDb25zb2xl
TWVzc2FnZXMiLCBjYWxsYmFjayk7Ci19Ci0KLQotLy8gRnJvbnRlbmQgZnVuY3Rpb25zLgotCi1m
dW5jdGlvbiBmcm9udGVuZF9kdW1wQ29uc29sZU1lc3NhZ2VzKCkKLXsKLSAgICB2YXIgcmVzdWx0
ID0gW107Ci0gICAgdmFyIG1lc3NhZ2VzID0gV2ViSW5zcGVjdG9yLmNvbnNvbGUubWVzc2FnZXM7
Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZXNzYWdlcy5sZW5ndGg7ICsraSkgewotICAgICAg
ICB2YXIgZWxlbWVudCA9IG1lc3NhZ2VzW2ldLnRvTWVzc2FnZUVsZW1lbnQoKTsKLSAgICAgICAg
cmVzdWx0LnB1c2goeyB0ZXh0OiBlbGVtZW50LnRleHRDb250ZW50LnJlcGxhY2UoL1x1MjAwYi9n
LCAiIiksIGNsYXp6OiBlbGVtZW50LmdldEF0dHJpYnV0ZSgiY2xhc3MiKX0pOwotICAgIH0KLSAg
ICByZXR1cm4gcmVzdWx0OwotfQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXRpZ2Vy
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtcmVzb3VyY2UtZXJyb3JzLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtdGlnZXIvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvY29uc29sZS1yZXNvdXJjZS1lcnJvcnMtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXRpZ2VyL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2NvbnNvbGUtcmVzb3VyY2UtZXJyb3JzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw3IEBACisgVGVzdHMgdGhhdCBlcnJvcnMgdG8gbG9hZCBhIHJlc291cmNlIGNhdXNl
IGVycm9yIG1lc3NhZ2VzIHRvIGJlIGxvZ2dlZCB0byBjb25zb2xlLgorCittaXNzaW5nLmNzc0Zh
aWxlZCB0byBsb2FkIHJlc291cmNlOiB0aGUgc2VydmVyIHJlc3BvbmRlZCB3aXRoIGEgc3RhdHVz
IG9mIDQwNCAoT0spIGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLW90aGVyLXNvdXJjZSBjb25zb2xl
LWVycm9yLWxldmVsCitub24tZXhpc3RlbnQtaWZyYW1lLmh0bWxGYWlsZWQgdG8gbG9hZCByZXNv
dXJjZTogdGhlIHNlcnZlciByZXNwb25kZWQgd2l0aCBhIHN0YXR1cyBvZiA0MDQgKE9LKSBjb25z
b2xlLW1lc3NhZ2UgY29uc29sZS1vdGhlci1zb3VyY2UgY29uc29sZS1lcnJvci1sZXZlbAorbm9u
LWV4aXN0ZW50LXNjcmlwdC5qc0ZhaWxlZCB0byBsb2FkIHJlc291cmNlOiB0aGUgc2VydmVyIHJl
c3BvbmRlZCB3aXRoIGEgc3RhdHVzIG9mIDQwNCAoT0spIGNvbnNvbGUtbWVzc2FnZSBjb25zb2xl
LW90aGVyLXNvdXJjZSBjb25zb2xlLWVycm9yLWxldmVsCitub24tZXhpc3RlbnQteGhyRmFpbGVk
IHRvIGxvYWQgcmVzb3VyY2U6IHRoZSBzZXJ2ZXIgcmVzcG9uZGVkIHdpdGggYSBzdGF0dXMgb2Yg
NDA0IChPSykgY29uc29sZS1tZXNzYWdlIGNvbnNvbGUtb3RoZXItc291cmNlIGNvbnNvbGUtZXJy
b3ItbGV2ZWwKKwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>