<?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>97929</bug_id>
          
          <creation_ts>2012-09-28 12:22:34 -0700</creation_ts>
          <short_desc>WebKit Doesn&apos;t Recognize Content-Language HTTP Header</short_desc>
          <delta_ts>2012-10-19 07:38:15 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.w3.org/International/tests/html-css/generate?format=h5&amp;test=language-declarations-003</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>10874</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian White">bcwhite</reporter>
          <assigned_to name="Brian White">bcwhite</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>bashi</cc>
    
    <cc>dglazkov</cc>
    
    <cc>efidler</cc>
    
    <cc>falken</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>730877</commentid>
    <comment_count>0</comment_count>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-09-28 12:22:34 -0700</bug_when>
    <thetext>If a &quot;Content-Language&quot; header is included in the HTTP response, the value is not recorded in the Document.  Only http-equiv values from the meta tags are recognized.

Also, this information is not exported through WebDocument for outsiders to read.

Patch forthcoming...

-- Brian</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730939</commentid>
    <comment_count>1</comment_count>
      <attachid>166305</attachid>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-09-28 13:26:26 -0700</bug_when>
    <thetext>Created attachment 166305
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730942</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-28 13:29:21 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730944</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-28 13:29:40 -0700</bug_when>
    <thetext>Attachment 166305 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/loader/DocumentWriter.cpp:124:  One line control clauses should not use braces.  [whitespace/braces] [4]
Source/WebCore/ChangeLog:9:  Line contains tab character.  [whitespace/tab] [5]
Source/WebCore/ChangeLog:10:  Line contains tab character.  [whitespace/tab] [5]
Source/WebCore/ChangeLog:11:  Line contains tab character.  [whitespace/tab] [5]
Source/WebCore/ChangeLog:12:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 5 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730960</commentid>
    <comment_count>4</comment_count>
      <attachid>166307</attachid>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-09-28 13:41:00 -0700</bug_when>
    <thetext>Created attachment 166307
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730963</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-28 13:44:22 -0700</bug_when>
    <thetext>Attachment 166307 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/loader/DocumentWriter.cpp:124:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730970</commentid>
    <comment_count>6</comment_count>
      <attachid>166307</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-09-28 13:46:09 -0700</bug_when>
    <thetext>Comment on attachment 166307
Patch

Teaching DocumentWriter about ResourceResponse seems undesirable to me, as it currently doesn&apos;t have any real concept of how the data is delivered, just that there are bits that need to go into a Document. Perhaps we could just send this data directly from DocumentLoader to Document, similarly to the setBaseURLOveride() call in DocumentLoader::commitData()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730974</commentid>
    <comment_count>7</comment_count>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-09-28 13:50:46 -0700</bug_when>
    <thetext>There&apos;s one &quot;style violation&quot; but I&apos;d like to keep it as it indicates that this is where more such extractions can be done in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730984</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-28 14:13:45 -0700</bug_when>
    <thetext>&gt; There&apos;s one &quot;style violation&quot; but I&apos;d like to keep it as it indicates that this is where more such extractions can be done in the future.

If people need to add more statements to the body of the if statement, they&apos;re smart enough to add the braces themselves.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730985</commentid>
    <comment_count>9</comment_count>
      <attachid>166307</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-28 14:14:44 -0700</bug_when>
    <thetext>Comment on attachment 166307
Patch

This is not the correct way to plumb this information into Document.  There are a bunch of other examples of Document learning information from HTTP header fields.  They might provide useful templates for this sort of change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731066</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-09-28 17:01:25 -0700</bug_when>
    <thetext>Please consider separating cross-platform and Chromium changes into two patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731074</commentid>
    <comment_count>11</comment_count>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-09-28 17:22:45 -0700</bug_when>
    <thetext>Nate, I wasn&apos;t looking at it as &quot;how it was delivered&quot; but rather &quot;what was delivered&quot;.  Header contents are (sort of) the &quot;beginning&quot; of a web page and so it seemed reasonable to pass it to &quot;begin&quot; in order to include that information.

I suppose that the DocumentWriter may be able to extract the embedded Document pointer (since they&apos;re both part of WebCore) from the WebDocument reference it has and inject the ContentLanguage value directly.  Would you prefer that?

-- Brian</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731078</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-28 17:26:04 -0700</bug_when>
    <thetext>DocumentWriter should not be involved in this operation.  Please see Comment #9 for advice about how to implement this patch.  This is not the first HTTP header that Documents are interested in learning about.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731146</commentid>
    <comment_count>13</comment_count>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-09-28 20:20:06 -0700</bug_when>
    <thetext>Adam, if you would provide a direct pointer to where it is being done, I would appreciate it.  I looked for quite some time but could not find such examples.

Thanks.

-- Brian</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731215</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-29 08:53:06 -0700</bug_when>
    <thetext>&gt; Adam, if you would provide a direct pointer to where it is being done, I would appreciate it.  I looked for quite some time but could not find such examples.

I grepped Source/WebCore for &quot;httpHeaderField&quot; and I found a bunch of calls in FrameLoader::didBeginDocument.  That&apos;s what I&apos;d try first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731965</commentid>
    <comment_count>15</comment_count>
      <attachid>166538</attachid>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-01 14:06:12 -0700</bug_when>
    <thetext>Created attachment 166538
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731967</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-01 14:08:14 -0700</bug_when>
    <thetext>Attachment 166538 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/ChangeLog:9:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731973</commentid>
    <comment_count>17</comment_count>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-01 14:15:07 -0700</bug_when>
    <thetext>Thanks for the pointer, Adam.  I think this is more what you&apos;re looking for.

Oops...  Forgot to add a test...  Will do that tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732026</commentid>
    <comment_count>18</comment_count>
      <attachid>166538</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-01 14:58:33 -0700</bug_when>
    <thetext>Comment on attachment 166538
Patch

Yeah, that looks much better.  You&apos;ve still got a style issue (a tab snuck unto your ChangeLog entry).  Also, we&apos;ll need a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732652</commentid>
    <comment_count>19</comment_count>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-02 08:00:11 -0700</bug_when>
    <thetext>I&apos;m looking at how to write a test for this...  I don&apos;t see any existing tests for this area of the code.  Am I just missing it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733005</commentid>
    <comment_count>20</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-02 13:19:08 -0700</bug_when>
    <thetext>The easiest way to make a test is to take any existing test for Content-Language in META tag, copy it to http/tests/misc, and convert that to a PHP file that prints this HTTP header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733008</commentid>
    <comment_count>21</comment_count>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-02 13:22:29 -0700</bug_when>
    <thetext>Ah, an end-to-end test rather than a unit-test on that specific block of code.  Okay, I&apos;ll try that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733016</commentid>
    <comment_count>22</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-02 13:32:27 -0700</bug_when>
    <thetext>Once you get this running, please add a number of tests that check parsing correctness (e.g. what if there are multiple values? What if there are disallowed characters?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733635</commentid>
    <comment_count>23</comment_count>
      <attachid>166881</attachid>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-03 06:31:10 -0700</bug_when>
    <thetext>Created attachment 166881
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733638</commentid>
    <comment_count>24</comment_count>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-03 06:34:12 -0700</bug_when>
    <thetext>Alexey, this is injecting the value just as the http-equiv meta tag would do.  Tests for that seem easier and faster as it doesn&apos;t need php or an http server to execute.

I haven&apos;t yet found how .WebkitLocale gets set so don&apos;t know if there&apos;s any validation at all.

Meanwhile...  Is this test okay?

-- Brian</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733793</commentid>
    <comment_count>25</comment_count>
      <attachid>166881</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-03 09:48:53 -0700</bug_when>
    <thetext>Comment on attachment 166881
Patch

Does this test fail without this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733808</commentid>
    <comment_count>26</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-03 10:08:11 -0700</bug_when>
    <thetext>&gt; Alexey, this is injecting the value just as the http-equiv meta tag would do.  Tests for that seem easier and faster as it doesn&apos;t need php or an http server to execute.

I do not understand what you are saying. The test included in the latest patch is a PHP script.

Also, please do add tests for invalid and multiple values, as suggested previously.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733917</commentid>
    <comment_count>27</comment_count>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-03 12:19:59 -0700</bug_when>
    <thetext>Alexey, I&apos;m saying that the tests you&apos;re requesting (invalid and multiple values) apply equally to an &quot;http-equiv&quot; for &quot;content-language&quot; as both that and this header copy the value to the same place in the Document data structure.

However, I can write tests for http-equiv=content-language under fast/css entirely as HTML without need for PHP and a webserver to process it.  That will make the tests faster and still yield the same amount of testing.

Of course, I&apos;m not yet even sure if there _is_ any parsing to test.  Still looking...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733943</commentid>
    <comment_count>28</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-03 12:42:53 -0700</bug_when>
    <thetext>&gt; Alexey, I&apos;m saying that the tests you&apos;re requesting (invalid and multiple values) apply equally to an &quot;http-equiv&quot; for &quot;content-language&quot; as both that and this header copy the value to the same place in the Document data structure.

I don&apos;t know why this should be the case. These are governed by entirely separate specifications. Code paths for handling these are also not necessarily the same in browsers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733958</commentid>
    <comment_count>29</comment_count>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-03 13:01:59 -0700</bug_when>
    <thetext>Adam, yes, the test fails without the patch.  The value returned is &quot;auto&quot; if no HTTP header or http-equiv meta tag is present.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733960</commentid>
    <comment_count>30</comment_count>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-03 13:05:30 -0700</bug_when>
    <thetext>Alexey, I don&apos;t follow.  &quot;http-equiv&quot; is a way of simulated the presence of a proper HTTP header.  Why would the code paths (or tests) be different?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733985</commentid>
    <comment_count>31</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-03 13:26:41 -0700</bug_when>
    <thetext>&gt; &quot;http-equiv&quot; is a way of simulated the presence of a proper HTTP header.

This is the original idea, but in reality, there is no formal connection between http-equiv and HTTP headers syntax. Specifically, rules for parsing HTTP headers are defined in RFC 2616, while HTML has its own rules for Content-Language: &lt;http://www.whatwg.org/specs/web-apps/current-work/#attr-meta-http-equiv-content-language&gt;. 

Oh, we also need a test for what happens when there are both an http-equiv and an HTTP header field, and they disagree. HTML spec currently says that http-equiv wins.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733987</commentid>
    <comment_count>32</comment_count>
      <attachid>166881</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-03 13:27:06 -0700</bug_when>
    <thetext>Comment on attachment 166881
Patch

r- to get this out of review queue. We clearly need better test coverage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734001</commentid>
    <comment_count>33</comment_count>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-03 13:44:10 -0700</bug_when>
    <thetext>Alexey, good point about the header/equiv.  The http-equiv wins (I knew that) but I&apos;ll create a test for that as well.

As I read the docs at that link, it sounds like processing of the actual header should only set the document()-&gt;contentLanguage() if the value contains only one &quot;intended language&quot;.  Do you read that as well?  Or would you prefer that I just drop this so that there is zero overlap between the HTTP header and http-equiv for Content-Language?

-- Brian</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735636</commentid>
    <comment_count>34</comment_count>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-05 08:03:20 -0700</bug_when>
    <thetext>Alexey, what do you see as the correct way to go forward with this?

Only set the document()-&gt;contentLanguage() if the value contains only one &quot;intended language&quot; or just drop this so that there is zero overlap between the HTTP header and http-equiv for Content-Language?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736099</commentid>
    <comment_count>35</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-05 16:52:50 -0700</bug_when>
    <thetext>This primarily depends on what you need this for. As far as heuristics for glyph selection and charset guessing are concerned, using just the first language is fine.

Also, I don&apos;t know usage patterns on actual web sites.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737481</commentid>
    <comment_count>36</comment_count>
    <who name="Matt Falkenhagen">falken</who>
    <bug_when>2012-10-09 00:28:16 -0700</bug_when>
    <thetext>Currently the http-equiv for Content Language code in WebKit just uses the verbatim content string to set the &quot;pragma-set default language&quot;. So even a comma-separated list like &quot;a, b&quot; is taken as the language &quot;a, b&quot;.  I had some plans to improve this parsing but haven&apos;t changed anything yet, see bug 77724.

See also bug 76701, comment 30 for some explanation as to why the spec is the way it is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737484</commentid>
    <comment_count>37</comment_count>
    <who name="Matt Falkenhagen">falken</who>
    <bug_when>2012-10-09 00:29:37 -0700</bug_when>
    <thetext>*** Bug 76892 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737781</commentid>
    <comment_count>38</comment_count>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-09 08:02:32 -0700</bug_when>
    <thetext>_My_ interest in this is Chrome&apos;s auto-translation feature.  It can try to guess the language but it&apos;s (presumably) more accurate to use what is explicitly declared.

For that purpose, both HTTP header and an http-equiv tag, despite their somewhat different definitions, accomplish the same thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737785</commentid>
    <comment_count>39</comment_count>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-09 08:04:31 -0700</bug_when>
    <thetext>This patch does fix https://bugs.webkit.org/show_bug.cgi?id=76892.  The w3.org test then passes &quot;green&quot;.

http://www.w3.org/International/tests/html-css/generate?format=h5&amp;test=language-declarations-003</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737982</commentid>
    <comment_count>40</comment_count>
      <attachid>167799</attachid>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-09 11:31:59 -0700</bug_when>
    <thetext>Created attachment 167799
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737987</commentid>
    <comment_count>41</comment_count>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-09 11:34:22 -0700</bug_when>
    <thetext>Latest patch extracts only the first language from the header to substitute for an http-equiv tag.  Added comments with details and more tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738003</commentid>
    <comment_count>42</comment_count>
      <attachid>167799</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-09 11:41:14 -0700</bug_when>
    <thetext>Comment on attachment 167799
Patch

Attachment 167799 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14228714</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738005</commentid>
    <comment_count>43</comment_count>
      <attachid>167799</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-09 11:42:15 -0700</bug_when>
    <thetext>Comment on attachment 167799
Patch

Attachment 167799 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14209996</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738012</commentid>
    <comment_count>44</comment_count>
      <attachid>167799</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-09 11:47:50 -0700</bug_when>
    <thetext>Comment on attachment 167799
Patch

Attachment 167799 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14217838</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738029</commentid>
    <comment_count>45</comment_count>
      <attachid>167809</attachid>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-09 12:03:17 -0700</bug_when>
    <thetext>Created attachment 167809
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738290</commentid>
    <comment_count>46</comment_count>
      <attachid>167809</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-09 16:04:00 -0700</bug_when>
    <thetext>Comment on attachment 167809
Patch

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

Thank you for updating the patch. I think that it&apos;s quite close now. I have a number of nitpicks below, so another iteration would be beneficial.

&gt; Source/WebCore/loader/FrameLoader.cpp:678
&gt; +            // HTTP-header and http-equiv meta tag do not have exactly the same
&gt; +            // meaning. The former is the &quot;intended audience&quot; and the latter
&gt; +            // is the language of the document and must contain only a single
&gt; +            // entry. If we detect the former with multiple entries separated
&gt; +            // by commas, we take only the first one. Alternatively we could
&gt; +            // ignore an HTTP Content-Language header with multiple entries.
&gt; +            // http://tools.ietf.org/html/rfc2616#page-118
&gt; +            // http://www.whatwg.org/specs/web-apps/current-work/#attr-meta-http-equiv-content-language

I would drop this whole comment. It is fairly obvious what&apos;s being done here, and if details were really important, one could always do an svn blame and find this bug.

&gt; Source/WebCore/loader/FrameLoader.cpp:679
&gt; +            size_t comma = headerContentLanguage.find(&apos;,&apos;);

The variable holds comma position, not the comma itself, so it should be named accordingly.

&gt; Source/WebCore/loader/FrameLoader.cpp:683
&gt; +            m_frame-&gt;document()-&gt;setContentLanguage(headerContentLanguage);

So we&apos;ll be setting content language to empty string if header field value were &quot;,foo&quot;. This seems incorrect, please fix and add a regression test.

&gt; LayoutTests/http/tests/misc/extract-http-content-language-expected.txt:4
&gt; +zh-CN
&gt; +ar

It&apos;s not great that these tests don&apos;t have explicit pass/fail output. If one opens the test in browser, how would they know if the test passed?

&gt; LayoutTests/http/tests/misc/extract-http-content-language-multiple.php:2
&gt; +  header(&quot;Content-Language:  fr, fi &quot;);

Could you try something a little more complicated, like maybe &quot;fr \t , fi &quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738414</commentid>
    <comment_count>47</comment_count>
      <attachid>167809</attachid>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-09 18:32:14 -0700</bug_when>
    <thetext>Comment on attachment 167809
Patch

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

&gt;&gt; Source/WebCore/loader/FrameLoader.cpp:679
&gt;&gt; +            size_t comma = headerContentLanguage.find(&apos;,&apos;);
&gt; 
&gt; The variable holds comma position, not the comma itself, so it should be named accordingly.

I had it named &quot;comma_index&quot; but got a style violation.  Would &quot;commaindex&quot; be okay?

&gt;&gt; Source/WebCore/loader/FrameLoader.cpp:683
&gt;&gt; +            m_frame-&gt;document()-&gt;setContentLanguage(headerContentLanguage);
&gt; 
&gt; So we&apos;ll be setting content language to empty string if header field value were &quot;,foo&quot;. This seems incorrect, please fix and add a regression test.

My thinking was that if the header was malformed then it&apos;s better not to put any additional effort into trying to guess what was intended because it&apos;s just as likely to guess wrong.

&gt;&gt; LayoutTests/http/tests/misc/extract-http-content-language-expected.txt:4
&gt;&gt; +ar
&gt; 
&gt; It&apos;s not great that these tests don&apos;t have explicit pass/fail output. If one opens the test in browser, how would they know if the test passed?

And then just have &quot;pass&quot; in the -expected.txt file?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738442</commentid>
    <comment_count>48</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-09 19:20:47 -0700</bug_when>
    <thetext>&gt; I had it named &quot;comma_index&quot; but got a style violation.  Would &quot;commaindex&quot; be okay?

commaIndex or commaPosition would be fine.

&gt; &gt; So we&apos;ll be setting content language to empty string if header field value were &quot;,foo&quot;. This seems incorrect, please fix and add a regression test.
&gt; 
&gt; My thinking was that if the header was malformed then it&apos;s better not to put any additional effort into trying to guess what was intended because it&apos;s just as likely to guess wrong.

A Web browser typically deals with malformed input, and it&apos;s important to deal with it gracefully. This is less about guessing than about maintaining internal invariants - and expecting that a content language member variable holds either a non-empty string or a null string is reasonable.

&gt; And then just have &quot;pass&quot; in the -expected.txt file?

That would work failure case, it&apos;s desirable to have more information about what went wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738443</commentid>
    <comment_count>49</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-09 19:21:01 -0700</bug_when>
    <thetext>That would work. In failure case, it&apos;s desirable to have more information about what went wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738984</commentid>
    <comment_count>50</comment_count>
      <attachid>168006</attachid>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-10 08:43:03 -0700</bug_when>
    <thetext>Created attachment 168006
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738985</commentid>
    <comment_count>51</comment_count>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-10 08:44:18 -0700</bug_when>
    <thetext>It turns out that some processing has already been done on the header value so &quot;,foo&quot; will be just &quot;foo&quot; by the time it gets to this function.  It&apos;s probably not possible to get an empty string (the header gets removed completely) but I&apos;ve put the test in anyways so that it won&apos;t set an empty value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739102</commentid>
    <comment_count>52</comment_count>
      <attachid>168006</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-10 10:44:51 -0700</bug_when>
    <thetext>Comment on attachment 168006
Patch

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

&gt; Source/WebCore/loader/FrameLoader.cpp:673
&gt; +            if (commaIndex != notFound)

I don&apos;t think that this check is necessary - truncate will do nothing if the index is outside bounds.

&gt; LayoutTests/http/tests/misc/extract-http-content-language-malformed.php:20
&gt; +  if (language == expect)
&gt; +    element.innerText = &apos;Pass.  Got &quot;&apos; + expect + &apos;&quot; &apos; + msg + &apos;.&apos;;
&gt; +  else
&gt; +    element.innerText = &apos;Fail!  Expected &quot;&apos; + expect + &apos;&quot; &apos; + msg + &apos;; got &quot;&apos; + language + &apos;&quot;.&apos;;

This would be much better if existing testing support was used (shouldBe coming from js-test-pre.js).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739197</commentid>
    <comment_count>53</comment_count>
      <attachid>168050</attachid>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-10 12:08:03 -0700</bug_when>
    <thetext>Created attachment 168050
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739214</commentid>
    <comment_count>54</comment_count>
      <attachid>168050</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-10 12:29:32 -0700</bug_when>
    <thetext>Comment on attachment 168050
Patch

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

Thank you for switching to js-test-pre.js.

&gt; LayoutTests/http/tests/misc/extract-http-content-language.php:17
&gt; +  if (window.testRunner)
&gt; +    testRunner.dumpAsText();

These can be removed now - js-test-pre.js does it automatically.

&gt; LayoutTests/http/tests/misc/extract-http-content-language.php:22
&gt; +  debug(&apos;==&gt; All done...&apos;);

This is not needed either - there is a TEST COMPLETE message.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739252</commentid>
    <comment_count>55</comment_count>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-10 13:24:15 -0700</bug_when>
    <thetext>&gt;&gt; LayoutTests/http/tests/misc/extract-http-content-language.php:22
&gt;&gt; +  debug(&apos;==&gt; All done...&apos;);
&gt;
&gt;This is not needed either - there is a TEST COMPLETE message.

Yes, but there is a &quot;PASS successfullyParsed is true&quot; message (output from the &quot;js-test-post.js&quot; script) which appears to be part of the previous test if there is no separator message.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739581</commentid>
    <comment_count>56</comment_count>
      <attachid>168050</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-10 21:07:57 -0700</bug_when>
    <thetext>Comment on attachment 168050
Patch

Attachment 168050 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14254413

New failing tests:
http/tests/misc/extract-http-content-language-malformed.php</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741148</commentid>
    <comment_count>57</comment_count>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-12 13:31:56 -0700</bug_when>
    <thetext>So...  Is it acceptable to leave the redundant debug(&quot;all done&quot;) call in order to separate the extraneous &quot;PASS successfullyParsed is true&quot; message from the actual tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741176</commentid>
    <comment_count>58</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-12 13:54:26 -0700</bug_when>
    <thetext>You still have r+, so yes, it&apos;s acceptable. I don&apos;t think there&apos;s value in that, but it&apos;s not important.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741192</commentid>
    <comment_count>59</comment_count>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-12 14:09:14 -0700</bug_when>
    <thetext>Okay.  I&apos;ve got a new CL that remove the unnecessary calls to testRunner.dumpAsText() and then I think we&apos;re all good!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741193</commentid>
    <comment_count>60</comment_count>
      <attachid>168478</attachid>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-12 14:11:24 -0700</bug_when>
    <thetext>Created attachment 168478
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741241</commentid>
    <comment_count>61</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-12 14:57:23 -0700</bug_when>
    <thetext>Did you find out why extract-http-content-language-malformed.php failed on mac-ews?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741285</commentid>
    <comment_count>62</comment_count>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-12 15:55:06 -0700</bug_when>
    <thetext>No, I haven&apos;t.  When I looked at the link provided, there&apos;s no mention of that test.  It lists 9 tests that failed but none of them are &quot;extract-http-content-language-malformed.php&quot;.

I wanted to see if it failed again with this updated patch to see if it was just a flaky test.  If not, perhaps the &quot;mac&quot; version is not cleaning the header value as other builds do; perhaps it&apos;s not stripping the initial comma which would mean a different result in the test code.

If it persists, I&apos;ll have to get someone here with a Mac to try my patch and see what&apos;s going on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741296</commentid>
    <comment_count>63</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-12 16:09:56 -0700</bug_when>
    <thetext>&gt; If not, perhaps the &quot;mac&quot; version is not cleaning the header value as other builds do

I think that only chromium and mac run tests, other EWS bots just build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741382</commentid>
    <comment_count>64</comment_count>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-12 19:10:04 -0700</bug_when>
    <thetext>Interesting.  I didn&apos;t know that.

I&apos;m building on Windows and running the new tests locally there with no problems.  But the guy next to me has a Mac so I&apos;ll just ask him to build and try it.  I&apos;ll also verify it on my Linux machine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741426</commentid>
    <comment_count>65</comment_count>
      <attachid>168478</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-12 23:18:49 -0700</bug_when>
    <thetext>Comment on attachment 168478
Patch

Attachment 168478 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14298167

New failing tests:
http/tests/misc/extract-http-content-language-malformed.php</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742321</commentid>
    <comment_count>66</comment_count>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-15 12:51:18 -0700</bug_when>
    <thetext>Ah, so the issue is that the &quot;mac&quot; test is a Safari test and apparently Safari sanitizes the HTTP headers differently than Chrome.  Specifically, Chrome turns a value of &quot;,foo&quot; into just &quot;foo&quot; while  Safari either removes the header completely or (more likely) leaves it as-is.  The end result is a language of &quot;foo&quot; known to Chrome but &quot;auto&quot; known to Safari.

Should I update the test to detect the browser type and look for different results for the two?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742408</commentid>
    <comment_count>67</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-15 14:09:59 -0700</bug_when>
    <thetext>No, there shouldn&apos;t be browser sniffing in the test. Expected results should match what&apos;s correct behavior in our best judgement, and there should be platform specific results from platforms that get it wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743086</commentid>
    <comment_count>68</comment_count>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-16 05:36:27 -0700</bug_when>
    <thetext>I was thinking the same.  Given that there&apos;s no absolute defined behavior in the case of malformed input, I&apos;ll just modify the test to accept both logical outcomes: it makes a reasonable guess or refuses to make any guess at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743291</commentid>
    <comment_count>69</comment_count>
      <attachid>168973</attachid>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-16 10:47:50 -0700</bug_when>
    <thetext>Created attachment 168973
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743447</commentid>
    <comment_count>70</comment_count>
      <attachid>168973</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-16 12:58:34 -0700</bug_when>
    <thetext>Comment on attachment 168973
Patch

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

&gt; Source/WebCore/loader/FrameLoader.cpp:673
&gt; +            headerContentLanguage.truncate(commaIndex); // notFound == -1 == don&apos;t truncate

This comment is somewhat misleading - notFound is static_cast&lt;size_t&gt;(-1), not -1. I&apos;d either omit the comment, or say something like &quot;won&apos;t truncate if comma was not found&quot;.

&gt; Source/WebCore/loader/FrameLoader.cpp:674
&gt; +            headerContentLanguage = headerContentLanguage.stripWhiteSpace(isHTMLSpace);

Haven&apos;t noticed this before. Why HTML space? We&apos;re not dealing with HTML here.

&gt; LayoutTests/http/tests/misc/extract-http-content-language.php:7
&gt; +&lt;script src=&quot;../../js-test-resources/js-test-pre.js&quot;&gt;&lt;/script&gt;

A trivial nit - no need for relative path in HTTP tests. I think that &quot;/js-test-resources/js-test-pre.js&quot; would work just as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743453</commentid>
    <comment_count>71</comment_count>
      <attachid>168973</attachid>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-16 13:05:07 -0700</bug_when>
    <thetext>Comment on attachment 168973
Patch

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

&gt;&gt; Source/WebCore/loader/FrameLoader.cpp:674
&gt;&gt; +            headerContentLanguage = headerContentLanguage.stripWhiteSpace(isHTMLSpace);
&gt; 
&gt; Haven&apos;t noticed this before. Why HTML space? We&apos;re not dealing with HTML here.

The default match does not include \t as whitespace.  HTMLspace does, as well as \r and \n which don&apos;t really apply here since header processing would have taken those.

&gt;&gt; LayoutTests/http/tests/misc/extract-http-content-language.php:7
&gt;&gt; +&lt;script src=&quot;../../js-test-resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
&gt; 
&gt; A trivial nit - no need for relative path in HTTP tests. I think that &quot;/js-test-resources/js-test-pre.js&quot; would work just as well.

All the other tests in this directory use the ../.. prefix; I just copied them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745439</commentid>
    <comment_count>72</comment_count>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-18 11:47:11 -0700</bug_when>
    <thetext>So...  Is this good, then?  All tests pass and I&apos;ve given reasoning for the minor comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745464</commentid>
    <comment_count>73</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-18 12:21:36 -0700</bug_when>
    <thetext>Yes, the patch has an r+. I think that my comments still stand, but addressing them is not necessary to have this landed.

If you need someone to approve this for commit queue, please set the cq? flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745485</commentid>
    <comment_count>74</comment_count>
      <attachid>168973</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-18 12:54:06 -0700</bug_when>
    <thetext>Comment on attachment 168973
Patch

Clearing flags on attachment: 168973

Committed r131794: &lt;http://trac.webkit.org/changeset/131794&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745486</commentid>
    <comment_count>75</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-18 12:54:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745518</commentid>
    <comment_count>76</comment_count>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-18 13:41:54 -0700</bug_when>
    <thetext>I want to thank everyone, especially Alexey for helping me with this, my first ever real WebKit change.  It has been one of the most frustrating, aggravating, discouraging, and painful experiences of my life.  :-)

I also learned a lot.  Thanks for your patience!

-- Brian</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745672</commentid>
    <comment_count>77</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-18 15:53:30 -0700</bug_when>
    <thetext>We aim to please?  Hopefully the next one will go smoother.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745744</commentid>
    <comment_count>78</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2012-10-18 16:51:23 -0700</bug_when>
    <thetext>Why did this change set a bunch of files as executable?!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745777</commentid>
    <comment_count>79</comment_count>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-18 17:31:03 -0700</bug_when>
    <thetext>It did?!?  I didn&apos;t notice that in the diff.  Damn.

There was a conflict between CgyWin and Xemacs that was causing edited files to receive permissions of 000 which was then converted to 755 whenever something was accessing the file.  I thought I had corrected that before the last patch was submitted for review.

I can submit a fix tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745784</commentid>
    <comment_count>80</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-18 17:42:11 -0700</bug_when>
    <thetext>&gt; Why did this change set a bunch of files as executable?!

I overlooked HTMLParserIdioms.h in the patch, but are there any others?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746293</commentid>
    <comment_count>81</comment_count>
    <who name="Brian White">bcwhite</who>
    <bug_when>2012-10-19 07:38:15 -0700</bug_when>
    <thetext>Looks like someone else has already corrected this.  Sorry &apos;bout that.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166305</attachid>
            <date>2012-09-28 13:26:26 -0700</date>
            <delta_ts>2012-09-28 13:40:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97929-20120928162542.patch</filename>
            <type>text/plain</type>
            <size>6276</size>
            <attacher name="Brian White">bcwhite</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjI5YjJlMmNhMTk0ODhk
YmMxNzgxNzczMzY0OGVhNTBhNDYyZTIxNi4uN2Q1ZmE0OTEwN2VjNTNkMmQ2ODg5OTYyMDE2ZjYw
MTFlYWM3NDIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA5LTI4ICBCcmlh
biBXaGl0ZSAgPGJjd2hpdGVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYktpdCBEb2Vzbid0
IFJlY29nbml6ZSBDb250ZW50LUxhbmd1YWdlIEhUVFAgSGVhZGVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzkyOQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENocm9taXVtIGhhcyBwYWdlLXRyYW5zbGF0
ZSBidXQgaGFkIG5vIHdheSB0byBnZXQgdGhlIGluZm9ybWF0aW9uCisJdGhhdCB3YXMgZW1iZWRk
ZWQgaW4gdGhlIEhUVFAgcmVzcG9uc2UgaGVhZGVyLiAgVGhlICJEb2N1bWVudCIgY2xhc3MKKwlh
bHJlYWR5IGhhZCBhIGZpZWxkIGZvciBob2xkaW5nIHRoYXQgc28gdGhpcyBjaGFuZ2UganVzdCBp
bXBvcnRzCisJdGhlIGhlYWRlciBpbmZvcm1hdGlvbiBpbnRvIHRoYXQgZmllbGQgYW5kIHRoZW4g
ZXhwb3J0cyBpdCBmb3IKKwlvdXRzaWRlIHVzZS4KKworICAgICAgICAqIGxvYWRlci9Eb2N1bWVu
dExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6Y29tbWl0RGF0
YSk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50V3JpdGVyOjpiZWdpbik6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50V3Jp
dGVyLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERvY3VtZW50V3JpdGVyKToKKwog
MjAxMi0wOS0yNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW5hbWUgUGFnZTo6ZnJhbWVDb3VudCgpIHRvIHN1YmZyYW1lQ291bnQoKSwgYW5kIHJl
bGF0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggN2ZhMDRhMmUwYjI2ZDM1NmYxMmVi
M2EzYjE3YWNhYzQ3NTg2NWI3MC4uNDQ0ZGJjZTEyOGJkNWY2ODY2Y2JiODlmZTI0MDVhN2NjNDNk
NDBkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0w
OS0yOCAgQnJpYW4gV2hpdGUgIDxiY3doaXRlQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWJL
aXQgRG9lc24ndCBSZWNvZ25pemUgQ29udGVudC1MYW5ndWFnZSBIVFRQIEhlYWRlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc5MjkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHRoZSBkaXNjb3Zl
ZCAiY29udGVudCBsYW5ndWFnZSIgYWNjZXNzaWJsZSB0byBvdXRzaWRlcnMgKGxpa2UgQ2hyb21p
dW0pLgorCisgICAgICAgICogcHVibGljL1dlYkRvY3VtZW50Lmg6CisgICAgICAgIChXZWJEb2N1
bWVudCk6CisgICAgICAgICogc3JjL1dlYkRvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViRG9jdW1lbnQ6OmNvbnRlbnRMYW5ndWFnZSk6CisgICAgICAgIChXZWJLaXQpOgorCiAyMDEy
LTA5LTI2ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTI5NjczLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggNGNjODM2MTRmZGNhZjViOTU1MDFiYjI2ODZmM2Vi
ZTNhNDQ3YmI4OC4uNTU4NjhjYzQ5YzQxMjQ4NThhOThkNWQzMmMzYjIzZTk4ZDYyNTE2OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC0zMjgsNyArMzI4LDcg
QEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Y29tbWl0RGF0YShjb25zdCBjaGFyKiBieXRlcywgc2l6
ZV90IGxlbmd0aCkKIHsKICAgICBpZiAoIW1fZ290Rmlyc3RCeXRlKSB7CiAgICAgICAgIG1fZ290
Rmlyc3RCeXRlID0gdHJ1ZTsKLSAgICAgICAgbV93cml0ZXIuYmVnaW4oZG9jdW1lbnRVUkwoKSwg
ZmFsc2UpOworICAgICAgICBtX3dyaXRlci5iZWdpbihkb2N1bWVudFVSTCgpLCBmYWxzZSwgMCwg
Jm1fcmVzcG9uc2UpOwogICAgICAgICBtX3dyaXRlci5zZXREb2N1bWVudFdhc0xvYWRlZEFzUGFy
dE9mTmF2aWdhdGlvbigpOwogICAgICAgICAKICNpZiBFTkFCTEUoTUhUTUwpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcAppbmRleCAxYTE2ZWVjNTZiNTljMzljMDM0ODFi
OGVlYzdjMjIzMDRmZjQ2OWQ5Li40YTlhZmZhMmM2M2Q5OTA2YzQ3MTgxYzYyZjgxZDVlYzM3ZmQ5
ZDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAKQEAgLTEwNyw3
ICsxMDcsNyBAQCBQYXNzUmVmUHRyPERvY3VtZW50PiBEb2N1bWVudFdyaXRlcjo6Y3JlYXRlRG9j
dW1lbnQoY29uc3QgS1VSTCYgdXJsKQogICAgIHJldHVybiBET01JbXBsZW1lbnRhdGlvbjo6Y3Jl
YXRlRG9jdW1lbnQobV9taW1lVHlwZSwgbV9mcmFtZSwgdXJsLCBtX2ZyYW1lLT5pblZpZXdTb3Vy
Y2VNb2RlKCkpOwogfQogCi12b2lkIERvY3VtZW50V3JpdGVyOjpiZWdpbihjb25zdCBLVVJMJiB1
cmxSZWZlcmVuY2UsIGJvb2wgZGlzcGF0Y2gsIERvY3VtZW50KiBvd25lckRvY3VtZW50KQordm9p
ZCBEb2N1bWVudFdyaXRlcjo6YmVnaW4oY29uc3QgS1VSTCYgdXJsUmVmZXJlbmNlLCBib29sIGRp
c3BhdGNoLCBEb2N1bWVudCogb3duZXJEb2N1bWVudCwgUmVzb3VyY2VSZXNwb25zZSogcmVzcG9u
c2UpCiB7CiAgICAgLy8gV2UgZ3JhYiBhIGxvY2FsIGNvcHkgb2YgdGhlIFVSTCBiZWNhdXNlIGl0
J3MgZWFzeSBmb3IgY2FsbGVycyB0byBzdXBwbHkKICAgICAvLyBhIFVSTCB0aGF0IHdpbGwgYmUg
ZGVhbGxvY2F0ZWQgZHVyaW5nIHRoZSBleGVjdXRpb24gb2YgdGhpcyBmdW5jdGlvbi4KQEAgLTEx
Nyw2ICsxMTcsMTEgQEAgdm9pZCBEb2N1bWVudFdyaXRlcjo6YmVnaW4oY29uc3QgS1VSTCYgdXJs
UmVmZXJlbmNlLCBib29sIGRpc3BhdGNoLCBEb2N1bWVudCogb3cKICAgICAvLyBDcmVhdGUgYSBu
ZXcgZG9jdW1lbnQgYmVmb3JlIGNsZWFyaW5nIHRoZSBmcmFtZSwgYmVjYXVzZSBpdCBtYXkgbmVl
ZCB0bwogICAgIC8vIGluaGVyaXQgYW4gYWxpYXNlZCBzZWN1cml0eSBjb250ZXh0LgogICAgIFJl
ZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQgPSBjcmVhdGVEb2N1bWVudCh1cmwpOworCisgICAgLy8g
TG9hZCBhbnkgaW1wb3J0YW50IGluZm9ybWF0aW9uIGZyb20gdGhlIHJlc3BvbnNlIGhlYWRlci4K
KyAgICBpZiAocmVzcG9uc2UpIHsKKyAgICAgICAgZG9jdW1lbnQtPnNldENvbnRlbnRMYW5ndWFn
ZShyZXNwb25zZS0+aHR0cEhlYWRlckZpZWxkKCJDb250ZW50LUxhbmd1YWdlIikpOworICAgIH0K
ICAgICAKICAgICAvLyBJZiB0aGUgbmV3IGRvY3VtZW50IGlzIGZvciBhIFBsdWdpbiBidXQgd2Un
cmUgc3VwcG9zZWQgdG8gYmUgc2FuZGJveGVkIGZyb20gUGx1Z2lucywKICAgICAvLyB0aGVuIHJl
cGxhY2UgdGhlIGRvY3VtZW50IHdpdGggb25lIHdob3NlIHBhcnNlciB3aWxsIGlnbm9yZSB0aGUg
aW5jb21pbmcgZGF0YSAoYnVnIDM5MzIzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50V3JpdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0
ZXIuaAppbmRleCAzZDkwYjlkODczZmUwNGI3OWQxODY4OTFhNzgxYzdmN2M2MzY4YTY5Li41NWNk
NWJhOGMwMGE2YTczYmNkY2QxNDA2MDU1MmM2NmY5NGVmODJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRXcml0ZXIuaApAQCAtMzcsNiArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIERvY3VtZW50UGFyc2VyOwogY2xhc3MgRnJhbWU7Citj
bGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBjbGFzcyBUZXh0
UmVzb3VyY2VEZWNvZGVyOwogCkBAIC01MCw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJl
cGxhY2VEb2N1bWVudChjb25zdCBTdHJpbmcmLCBEb2N1bWVudCogb3duZXJEb2N1bWVudCk7CiAK
ICAgICB2b2lkIGJlZ2luKCk7Ci0gICAgdm9pZCBiZWdpbihjb25zdCBLVVJMJiwgYm9vbCBkaXNw
YXRjaFdpbmRvd09iamVjdEF2YWlsYWJsZSA9IHRydWUsIERvY3VtZW50KiBvd25lckRvY3VtZW50
ID0gMCk7CisgICAgdm9pZCBiZWdpbihjb25zdCBLVVJMJiwgYm9vbCBkaXNwYXRjaFdpbmRvd09i
amVjdEF2YWlsYWJsZSA9IHRydWUsIERvY3VtZW50KiBvd25lckRvY3VtZW50ID0gMCwgUmVzb3Vy
Y2VSZXNwb25zZSogPSAwKTsKICAgICB2b2lkIGFkZERhdGEoY29uc3QgY2hhciogYnl0ZXMsIHNp
emVfdCBsZW5ndGgpOwogICAgIHZvaWQgZW5kKCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEb2N1bWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViRG9jdW1lbnQuaAppbmRleCBlMGM0NDQyNTBhOWUwMzlmMGE2Y2E3ODE2
MTRlMGI5YmFjNWQwZDUyLi43ZTg4NWFjYzQ3NDMzNjFiNzQwNmMwNjQ2YzljZGMxM2FkYTM5MzE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEb2N1bWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRvY3VtZW50LmgKQEAgLTc5
LDYgKzc5LDcgQEAgcHVibGljOgogICAgIFdFQktJVF9FWFBPUlQgV2ViU2VjdXJpdHlPcmlnaW4g
c2VjdXJpdHlPcmlnaW4oKSBjb25zdDsKIAogICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIGVu
Y29kaW5nKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgY29udGVudExhbmd1
YWdlKCkgY29uc3Q7CiAKICAgICAvLyBUaGUgdXJsIG9mIHRoZSBPcGVuU2VhcmNoIERlc3JpcHRp
b24gRG9jdW1lbnQgKGlmIGFueSkuCiAgICAgV0VCS0lUX0VYUE9SVCBXZWJVUkwgb3BlblNlYXJj
aERlc2NyaXB0aW9uVVJMKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJE
b2N1bWVudC5jcHAKaW5kZXggMzQ4NjYxM2JlY2RmY2RiMmUwNGJiYTU5YjYyNmE1NDdmZTM2MjFj
YS4uZWExMjg3ZmUyYTFiNTUwYjAxMDI4ZDViMGExZTZhMmJlYzViODJhYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRvY3VtZW50LmNwcApAQCAtODEsNiArODEsMTEgQEAgV2Vi
U3RyaW5nIFdlYkRvY3VtZW50OjplbmNvZGluZygpIGNvbnN0CiAgICAgcmV0dXJuIGNvbnN0VW53
cmFwPERvY3VtZW50PigpLT5lbmNvZGluZygpOwogfQogCitXZWJTdHJpbmcgV2ViRG9jdW1lbnQ6
OmNvbnRlbnRMYW5ndWFnZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNvbnN0VW53cmFwPERvY3Vt
ZW50PigpLT5jb250ZW50TGFuZ3VhZ2UoKTsKK30KKwogV2ViVVJMIFdlYkRvY3VtZW50OjpvcGVu
U2VhcmNoRGVzY3JpcHRpb25VUkwoKSBjb25zdAogewogICAgIHJldHVybiBjb25zdF9jYXN0PERv
Y3VtZW50Kj4oY29uc3RVbndyYXA8RG9jdW1lbnQ+KCkpLT5vcGVuU2VhcmNoRGVzY3JpcHRpb25V
UkwoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166307</attachid>
            <date>2012-09-28 13:41:00 -0700</date>
            <delta_ts>2012-10-01 14:06:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97929-20120928164017.patch</filename>
            <type>text/plain</type>
            <size>6329</size>
            <attacher name="Brian White">bcwhite</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBt
b2RlIDEwMDc1NQppbmRleCA2MjliMmUyY2ExOTQ4OGRiYzE3ODE3NzMzNjQ4ZWE1MGE0NjJlMjE2
Li5jODhhOTg0MDVhNjY0Yjc3ZGU3Y2NlYjU1MTE3ZTUzMmVjYzk4MTUwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNCBAQAorMjAxMi0wOS0yOCAgQnJpYW4gV2hpdGUgIDxiY3doaXRlQGNocm9taXVtLm9yZz4K
KworICAgICAgICBXZWJLaXQgRG9lc24ndCBSZWNvZ25pemUgQ29udGVudC1MYW5ndWFnZSBIVFRQ
IEhlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTc5MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBD
aHJvbWl1bSBoYXMgcGFnZS10cmFuc2xhdGUgYnV0IGhhZCBubyB3YXkgdG8gZ2V0IHRoZSBpbmZv
cm1hdGlvbgorICAgICAgICB0aGF0IHdhcyBlbWJlZGRlZCBpbiB0aGUgSFRUUCByZXNwb25zZSBo
ZWFkZXIuICBUaGUgIkRvY3VtZW50IiBjbGFzcworICAgICAgICBhbHJlYWR5IGhhZCBhIGZpZWxk
IGZvciBob2xkaW5nIHRoYXQgc28gdGhpcyBjaGFuZ2UganVzdCBpbXBvcnRzCisgICAgICAgIHRo
ZSBoZWFkZXIgaW5mb3JtYXRpb24gaW50byB0aGF0IGZpZWxkIGFuZCB0aGVuIGV4cG9ydHMgaXQg
Zm9yCisgICAgICAgIG91dHNpZGUgdXNlLgorCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpjb21taXREYXRhKToK
KyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnRXcml0ZXI6OmJlZ2luKToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRXcml0ZXIu
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRG9jdW1lbnRXcml0ZXIpOgorCiAyMDEy
LTA5LTI2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IFJlbmFtZSBQYWdlOjpmcmFtZUNvdW50KCkgdG8gc3ViZnJhbWVDb3VudCgpLCBhbmQgcmVsYXRl
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA3ZmEwNGEyZTBiMjZkMzU2ZjEyZWIzYTNi
MTdhY2FjNDc1ODY1YjcwLi40NDRkYmNlMTI4YmQ1ZjY4NjZjYmI4OWZlMjQwNWE3Y2M0M2Q0MGQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA5LTI4
ICBCcmlhbiBXaGl0ZSAgPGJjd2hpdGVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYktpdCBE
b2Vzbid0IFJlY29nbml6ZSBDb250ZW50LUxhbmd1YWdlIEhUVFAgSGVhZGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzkyOQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgdGhlIGRpc2NvdmVkICJj
b250ZW50IGxhbmd1YWdlIiBhY2Nlc3NpYmxlIHRvIG91dHNpZGVycyAobGlrZSBDaHJvbWl1bSku
CisKKyAgICAgICAgKiBwdWJsaWMvV2ViRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkRvY3VtZW50
KToKKyAgICAgICAgKiBzcmMvV2ViRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJE
b2N1bWVudDo6Y29udGVudExhbmd1YWdlKToKKyAgICAgICAgKFdlYktpdCk6CisKIDIwMTItMDkt
MjYgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjk2NzMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50TG9hZGVyLmNwcAppbmRleCA0Y2M4MzYxNGZkY2FmNWI5NTUwMWJiMjY4NmYzZWJlM2E0
NDdiYjg4Li41NTg2OGNjNDljNDEyNDg1OGE5OGQ1ZDMyYzNiMjNlOThkNjI1MTY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTMyOCw3ICszMjgsNyBAQCB2
b2lkIERvY3VtZW50TG9hZGVyOjpjb21taXREYXRhKGNvbnN0IGNoYXIqIGJ5dGVzLCBzaXplX3Qg
bGVuZ3RoKQogewogICAgIGlmICghbV9nb3RGaXJzdEJ5dGUpIHsKICAgICAgICAgbV9nb3RGaXJz
dEJ5dGUgPSB0cnVlOwotICAgICAgICBtX3dyaXRlci5iZWdpbihkb2N1bWVudFVSTCgpLCBmYWxz
ZSk7CisgICAgICAgIG1fd3JpdGVyLmJlZ2luKGRvY3VtZW50VVJMKCksIGZhbHNlLCAwLCAmbV9y
ZXNwb25zZSk7CiAgICAgICAgIG1fd3JpdGVyLnNldERvY3VtZW50V2FzTG9hZGVkQXNQYXJ0T2ZO
YXZpZ2F0aW9uKCk7CiAgICAgICAgIAogI2lmIEVOQUJMRShNSFRNTCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCmluZGV4IDFhMTZlZWM1NmI1OWMzOWMwMzQ4MWI4ZWVj
N2MyMjMwNGZmNDY5ZDkuLjRhOWFmZmEyYzYzZDk5MDZjNDcxODFjNjJmODFkNWVjMzdmZDlkMTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcApAQCAtMTA3LDcgKzEw
Nyw3IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IERvY3VtZW50V3JpdGVyOjpjcmVhdGVEb2N1bWVu
dChjb25zdCBLVVJMJiB1cmwpCiAgICAgcmV0dXJuIERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVE
b2N1bWVudChtX21pbWVUeXBlLCBtX2ZyYW1lLCB1cmwsIG1fZnJhbWUtPmluVmlld1NvdXJjZU1v
ZGUoKSk7CiB9CiAKLXZvaWQgRG9jdW1lbnRXcml0ZXI6OmJlZ2luKGNvbnN0IEtVUkwmIHVybFJl
ZmVyZW5jZSwgYm9vbCBkaXNwYXRjaCwgRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQpCit2b2lkIERv
Y3VtZW50V3JpdGVyOjpiZWdpbihjb25zdCBLVVJMJiB1cmxSZWZlcmVuY2UsIGJvb2wgZGlzcGF0
Y2gsIERvY3VtZW50KiBvd25lckRvY3VtZW50LCBSZXNvdXJjZVJlc3BvbnNlKiByZXNwb25zZSkK
IHsKICAgICAvLyBXZSBncmFiIGEgbG9jYWwgY29weSBvZiB0aGUgVVJMIGJlY2F1c2UgaXQncyBl
YXN5IGZvciBjYWxsZXJzIHRvIHN1cHBseQogICAgIC8vIGEgVVJMIHRoYXQgd2lsbCBiZSBkZWFs
bG9jYXRlZCBkdXJpbmcgdGhlIGV4ZWN1dGlvbiBvZiB0aGlzIGZ1bmN0aW9uLgpAQCAtMTE3LDYg
KzExNywxMSBAQCB2b2lkIERvY3VtZW50V3JpdGVyOjpiZWdpbihjb25zdCBLVVJMJiB1cmxSZWZl
cmVuY2UsIGJvb2wgZGlzcGF0Y2gsIERvY3VtZW50KiBvdwogICAgIC8vIENyZWF0ZSBhIG5ldyBk
b2N1bWVudCBiZWZvcmUgY2xlYXJpbmcgdGhlIGZyYW1lLCBiZWNhdXNlIGl0IG1heSBuZWVkIHRv
CiAgICAgLy8gaW5oZXJpdCBhbiBhbGlhc2VkIHNlY3VyaXR5IGNvbnRleHQuCiAgICAgUmVmUHRy
PERvY3VtZW50PiBkb2N1bWVudCA9IGNyZWF0ZURvY3VtZW50KHVybCk7CisKKyAgICAvLyBMb2Fk
IGFueSBpbXBvcnRhbnQgaW5mb3JtYXRpb24gZnJvbSB0aGUgcmVzcG9uc2UgaGVhZGVyLgorICAg
IGlmIChyZXNwb25zZSkgeworICAgICAgICBkb2N1bWVudC0+c2V0Q29udGVudExhbmd1YWdlKHJl
c3BvbnNlLT5odHRwSGVhZGVyRmllbGQoIkNvbnRlbnQtTGFuZ3VhZ2UiKSk7CisgICAgfQogICAg
IAogICAgIC8vIElmIHRoZSBuZXcgZG9jdW1lbnQgaXMgZm9yIGEgUGx1Z2luIGJ1dCB3ZSdyZSBz
dXBwb3NlZCB0byBiZSBzYW5kYm94ZWQgZnJvbSBQbHVnaW5zLAogICAgIC8vIHRoZW4gcmVwbGFj
ZSB0aGUgZG9jdW1lbnQgd2l0aCBvbmUgd2hvc2UgcGFyc2VyIHdpbGwgaWdub3JlIHRoZSBpbmNv
bWluZyBkYXRhIChidWcgMzkzMjMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRXcml0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5o
CmluZGV4IDNkOTBiOWQ4NzNmZTA0Yjc5ZDE4Njg5MWE3ODFjN2Y3YzYzNjhhNjkuLjU1Y2Q1YmE4
YzAwYTZhNzNiY2RjZDE0MDYwNTUyYzY2Zjk0ZWY4MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudFdyaXRlci5oCkBAIC0zNyw2ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIERvY3VtZW50OwogY2xhc3MgRG9jdW1lbnRQYXJzZXI7CiBjbGFzcyBGcmFtZTsKK2NsYXNz
IFJlc291cmNlUmVzcG9uc2U7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIGNsYXNzIFRleHRSZXNv
dXJjZURlY29kZXI7CiAKQEAgLTUwLDcgKzUxLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVwbGFj
ZURvY3VtZW50KGNvbnN0IFN0cmluZyYsIERvY3VtZW50KiBvd25lckRvY3VtZW50KTsKIAogICAg
IHZvaWQgYmVnaW4oKTsKLSAgICB2b2lkIGJlZ2luKGNvbnN0IEtVUkwmLCBib29sIGRpc3BhdGNo
V2luZG93T2JqZWN0QXZhaWxhYmxlID0gdHJ1ZSwgRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQgPSAw
KTsKKyAgICB2b2lkIGJlZ2luKGNvbnN0IEtVUkwmLCBib29sIGRpc3BhdGNoV2luZG93T2JqZWN0
QXZhaWxhYmxlID0gdHJ1ZSwgRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQgPSAwLCBSZXNvdXJjZVJl
c3BvbnNlKiA9IDApOwogICAgIHZvaWQgYWRkRGF0YShjb25zdCBjaGFyKiBieXRlcywgc2l6ZV90
IGxlbmd0aCk7CiAgICAgdm9pZCBlbmQoKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYkRvY3VtZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJEb2N1bWVudC5oCmluZGV4IGUwYzQ0NDI1MGE5ZTAzOWYwYTZjYTc4MTYxNGUw
YjliYWM1ZDBkNTIuLjdlODg1YWNjNDc0MzM2MWI3NDA2YzA2NDZjOWNkYzEzYWRhMzkzMTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRvY3VtZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRG9jdW1lbnQuaApAQCAtNzksNiAr
NzksNyBAQCBwdWJsaWM6CiAgICAgV0VCS0lUX0VYUE9SVCBXZWJTZWN1cml0eU9yaWdpbiBzZWN1
cml0eU9yaWdpbigpIGNvbnN0OwogCiAgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgZW5jb2Rp
bmcoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyBjb250ZW50TGFuZ3VhZ2Uo
KSBjb25zdDsKIAogICAgIC8vIFRoZSB1cmwgb2YgdGhlIE9wZW5TZWFyY2ggRGVzcmlwdGlvbiBE
b2N1bWVudCAoaWYgYW55KS4KICAgICBXRUJLSVRfRVhQT1JUIFdlYlVSTCBvcGVuU2VhcmNoRGVz
Y3JpcHRpb25VUkwoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkRvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRvY3Vt
ZW50LmNwcAppbmRleCAzNDg2NjEzYmVjZGZjZGIyZTA0YmJhNTliNjI2YTU0N2ZlMzYyMWNhLi5l
YTEyODdmZTJhMWI1NTBiMDEwMjhkNWIwYTFlNmEyYmVjNWI4MmFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRG9jdW1lbnQuY3BwCkBAIC04MSw2ICs4MSwxMSBAQCBXZWJTdHJp
bmcgV2ViRG9jdW1lbnQ6OmVuY29kaW5nKCkgY29uc3QKICAgICByZXR1cm4gY29uc3RVbndyYXA8
RG9jdW1lbnQ+KCktPmVuY29kaW5nKCk7CiB9CiAKK1dlYlN0cmluZyBXZWJEb2N1bWVudDo6Y29u
dGVudExhbmd1YWdlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY29uc3RVbndyYXA8RG9jdW1lbnQ+
KCktPmNvbnRlbnRMYW5ndWFnZSgpOworfQorCiBXZWJVUkwgV2ViRG9jdW1lbnQ6Om9wZW5TZWFy
Y2hEZXNjcmlwdGlvblVSTCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8RG9jdW1l
bnQqPihjb25zdFVud3JhcDxEb2N1bWVudD4oKSktPm9wZW5TZWFyY2hEZXNjcmlwdGlvblVSTCgp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166538</attachid>
            <date>2012-10-01 14:06:12 -0700</date>
            <delta_ts>2012-10-03 06:31:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97929-20121001170525.patch</filename>
            <type>text/plain</type>
            <size>1792</size>
            <attacher name="Brian White">bcwhite</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWE4ZWI5NTJhMjllNWQ1
NjMwOWUyYmM0MGIxYWYyMzJlNjJhMmE5Mi4uZDEyNTc0NjZlZjc1MDM3NDZmODBiZDhlYmViNzg2
NmU5NDllNDc4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTEwLTAxICBCcmlh
biBXaGl0ZSAgPGJjd2hpdGVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYktpdCBEb2Vzbid0
IFJlY29nbml6ZSBDb250ZW50LUxhbmd1YWdlIEhUVFAgSGVhZGVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzkyOQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBIVFRQICJDb250ZW50LUxhbmd1YWdl
IiBoZWFkZXIgbWF5IGJlIHByZXNlbnQgYW5kIGluY2x1ZGUgdGhlCisJbGFuZ3VhZ2Ugb2YgdGhl
IHBhZ2UgY29udGVudHMgKGFzIG9wcG9zZWQgdG8gYW4gZW1iZWRkZWQgbWV0YSB0YWcpLgorCisg
ICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyOjpkaWRCZWdpbkRvY3VtZW50KToKKwogMjAxMi0xMC0wMSAgQW5kcmVpIEJ1Y3VyICA8
YWJ1Y3VyQGFkb2JlLmNvbT4KIAogICAgICAgICBbQ1NTIFJlZ2lvbnNdIFJlbW92ZSB0aGUgZGVw
cmVjYXRlZCBBUEkgRG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5TmFtZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKaW5kZXggZGIzOWIyMWYyZGRmMzBkY2FhMzA2ZjMxMmQ1YTVmYmZk
YTZlZWNlNi4uNGVhZjM2NTEzZDA1ZTZmNjc3MmU5YmE3MThhNGU3YzhiMWY4YjZlYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC02NjUsNiArNjY1LDEwIEBAIHZvaWQg
RnJhbWVMb2FkZXI6OmRpZEJlZ2luRG9jdW1lbnQoYm9vbCBkaXNwYXRjaCkKICAgICAgICAgU3Ry
aW5nIHJlcG9ydE9ubHlDb250ZW50U2VjdXJpdHlQb2xpY3kgPSBtX2RvY3VtZW50TG9hZGVyLT5y
ZXNwb25zZSgpLmh0dHBIZWFkZXJGaWVsZCgiWC1XZWJLaXQtQ1NQLVJlcG9ydC1Pbmx5Iik7CiAg
ICAgICAgIGlmICghcmVwb3J0T25seUNvbnRlbnRTZWN1cml0eVBvbGljeS5pc0VtcHR5KCkpCiAg
ICAgICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+
ZGlkUmVjZWl2ZUhlYWRlcihyZXBvcnRPbmx5Q29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50
U2VjdXJpdHlQb2xpY3k6OlJlcG9ydE9ubHkpOworCisgICAgICAgIFN0cmluZyBoZWFkZXJDb250
ZW50TGFuZ3VhZ2UgPSBtX2RvY3VtZW50TG9hZGVyLT5yZXNwb25zZSgpLmh0dHBIZWFkZXJGaWVs
ZCgiQ29udGVudC1MYW5ndWFnZSIpOworICAgICAgICBpZiAoIWhlYWRlckNvbnRlbnRMYW5ndWFn
ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5zZXRDb250ZW50
TGFuZ3VhZ2UoaGVhZGVyQ29udGVudExhbmd1YWdlKTsKICAgICB9CiAKICAgICBoaXN0b3J5KCkt
PnJlc3RvcmVEb2N1bWVudFN0YXRlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166881</attachid>
            <date>2012-10-03 06:31:10 -0700</date>
            <delta_ts>2012-10-09 11:31:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97929-20121003092923.patch</filename>
            <type>text/plain</type>
            <size>3264</size>
            <attacher name="Brian White">bcwhite</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBt
b2RlIDEwMDc1NQppbmRleCA1YThlYjk1MmEyOWU1ZDU2MzA5ZTJiYzQwYjFhZjIzMmU2MmEyYTky
Li5iYTk2MjNjNTM2Nzc1NWI5ZjlhZWEzOTNhNjM5MzI5YmIxYzFkZmRkCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAxMi0xMC0wMSAgQnJpYW4gV2hpdGUgIDxiY3doaXRlQGNocm9taXVtLm9yZz4K
KworICAgICAgICBXZWJLaXQgRG9lc24ndCBSZWNvZ25pemUgQ29udGVudC1MYW5ndWFnZSBIVFRQ
IEhlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTc5MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGUgSFRUUCAiQ29udGVudC1MYW5ndWFnZSIgaGVhZGVyIG1heSBiZSBwcmVzZW50IGFuZCBpbmNs
dWRlIHRoZQorICAgICAgICBsYW5ndWFnZSBvZiB0aGUgcGFnZSBjb250ZW50cyAoYXMgb3Bwb3Nl
ZCB0byBhbiBlbWJlZGRlZCBtZXRhIHRhZykuCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmRpZEJlZ2luRG9jdW1lbnQp
OgorCiAyMDEyLTEwLTAxICBBbmRyZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgogCiAgICAg
ICAgIFtDU1MgUmVnaW9uc10gUmVtb3ZlIHRoZSBkZXByZWNhdGVkIEFQSSBEb2N1bWVudC53ZWJr
aXRHZXRGbG93QnlOYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBk
YjM5YjIxZjJkZGYzMGRjYWEzMDZmMzEyZDVhNWZiZmRhNmVlY2U2Li40ZWFmMzY1MTNkMDVlNmY2
NzcyZTliYTcxOGE0ZTdjOGIxZjhiNmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAKQEAgLTY2NSw2ICs2NjUsMTAgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZGlkQmVnaW5Eb2N1
bWVudChib29sIGRpc3BhdGNoKQogICAgICAgICBTdHJpbmcgcmVwb3J0T25seUNvbnRlbnRTZWN1
cml0eVBvbGljeSA9IG1fZG9jdW1lbnRMb2FkZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxk
KCJYLVdlYktpdC1DU1AtUmVwb3J0LU9ubHkiKTsKICAgICAgICAgaWYgKCFyZXBvcnRPbmx5Q29u
dGVudFNlY3VyaXR5UG9saWN5LmlzRW1wdHkoKSkKICAgICAgICAgICAgIG1fZnJhbWUtPmRvY3Vt
ZW50KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5kaWRSZWNlaXZlSGVhZGVyKHJlcG9ydE9u
bHlDb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6UmVwb3J0T25s
eSk7CisKKyAgICAgICAgU3RyaW5nIGhlYWRlckNvbnRlbnRMYW5ndWFnZSA9IG1fZG9jdW1lbnRM
b2FkZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJDb250ZW50LUxhbmd1YWdlIik7Cisg
ICAgICAgIGlmICghaGVhZGVyQ29udGVudExhbmd1YWdlLmlzRW1wdHkoKSkKKyAgICAgICAgICAg
IG1fZnJhbWUtPmRvY3VtZW50KCktPnNldENvbnRlbnRMYW5ndWFnZShoZWFkZXJDb250ZW50TGFu
Z3VhZ2UpOwogICAgIH0KIAogICAgIGhpc3RvcnkoKS0+cmVzdG9yZURvY3VtZW50U3RhdGUoKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9leHRyYWN0LWh0dHAtY29u
dGVudC1sYW5ndWFnZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mv
ZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRm
Zjc2NGY0NzlkNzQ3Zjg0NzZhNzVjZDVjYzU0YjgzYWVkMzhmZmQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3Vh
Z2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGVzdCBmb3IgYnVnIDk3OTI5OiBFeHRy
YWN0IEhUVFAgQ29udGVudC1MYW5ndWFnZSBoZWFkZXIuCisKK3poLUNOCithcgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1
YWdlLnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9leHRyYWN0LWh0dHAtY29udGVu
dC1sYW5ndWFnZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzUyOTE1MDFlYWEyZmM5NDRmMzc1OGE3MmVlM2Fk
ODQ4ZjIxYjgyZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlz
Yy9leHRyYWN0LWh0dHAtY29udGVudC1sYW5ndWFnZS5waHAKQEAgLTAsMCArMSwyNCBAQAorPD9w
aHAKKyAgaGVhZGVyKCJDb250ZW50LUxhbmd1YWdlOiB6aC1DTiIpOworPz4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPGhlYWQ+
PC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc5MjkiPmJ1ZyA5NzkyOTwvYT46CitFeHRyYWN0IEhUVFAg
Q29udGVudC1MYW5ndWFnZSBoZWFkZXIuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8
ZGl2IGlkPSJ4Ij5mb288L2Rpdj4KKzxkaXYgaWQ9InkiIGxhbmc9ImFyIj5iYXI8L2Rpdj4KKzxz
Y3JpcHQ+CitmdW5jdGlvbiByZWNvcmRMYW5ndWFnZU9mTm9kZShpZCkgeworICB2YXIgZWxlbWVu
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKKyAgZWxlbWVudC5pbm5lclRleHQgPSB3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS53ZWJraXRMb2NhbGU7Cit9CityZWNvcmRM
YW5ndWFnZU9mTm9kZSgieCIpOworcmVjb3JkTGFuZ3VhZ2VPZk5vZGUoInkiKTsKK2lmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167799</attachid>
            <date>2012-10-09 11:31:59 -0700</date>
            <delta_ts>2012-10-09 12:03:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97929-20121009143100.patch</filename>
            <type>text/plain</type>
            <size>7186</size>
            <attacher name="Brian White">bcwhite</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBt
b2RlIDEwMDc1NQppbmRleCA3NzFjMGFiZDg3ODYzNzFiNTJhZWFhYjM5ZWY4NmRiMjY1ZGJiNDMw
Li44OWRmMDY2MTAxNDZhNTczZDgyZGQ5YmI0YzVlYjFmZDdkNTNmYmI4Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAxMi0xMC0wOSAgQnJpYW4gV2hpdGUgIDxiY3doaXRlQGNocm9taXVtLm9yZz4K
KworICAgICAgICBXZWJLaXQgRG9lc24ndCBSZWNvZ25pemUgQ29udGVudC1MYW5ndWFnZSBIVFRQ
IEhlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTc5MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGUgSFRUUCAiQ29udGVudC1MYW5ndWFnZSIgaGVhZGVyIG1heSBiZSBwcmVzZW50IGFuZCBpbmNs
dWRlIHRoZQorICAgICAgICBsYW5ndWFnZSBvZiB0aGUgcGFnZSBjb250ZW50cyAoYXMgb3Bwb3Nl
ZCB0byBhbiBlbWJlZGRlZCBtZXRhIHRhZykuCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmRpZEJlZ2luRG9jdW1lbnQp
OgorCiAyMDEyLTEwLTAzICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgog
CiAgICAgICAgIEJ1aWxkIGZpeCBmb3IgV2luQ0UgYWZ0ZXIgcjEzMDE2MC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5k
ZXggZGIzOWIyMWYyZGRmMzBkY2FhMzA2ZjMxMmQ1YTVmYmZkYTZlZWNlNi4uOGUxYzE4MjcxYjVk
MTRlYzg2MmYxNWU0ZTg3Mzc0MjZhMWY2Zjc1MwotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAKQEAgLTY2NSw2ICs2NjUsMjMgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZGlkQmVnaW5Eb2N1bWVu
dChib29sIGRpc3BhdGNoKQogICAgICAgICBTdHJpbmcgcmVwb3J0T25seUNvbnRlbnRTZWN1cml0
eVBvbGljeSA9IG1fZG9jdW1lbnRMb2FkZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJY
LVdlYktpdC1DU1AtUmVwb3J0LU9ubHkiKTsKICAgICAgICAgaWYgKCFyZXBvcnRPbmx5Q29udGVu
dFNlY3VyaXR5UG9saWN5LmlzRW1wdHkoKSkKICAgICAgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50
KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5kaWRSZWNlaXZlSGVhZGVyKHJlcG9ydE9ubHlD
b250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6UmVwb3J0T25seSk7
CisKKyAgICAgICAgU3RyaW5nIGhlYWRlckNvbnRlbnRMYW5ndWFnZSA9IG1fZG9jdW1lbnRMb2Fk
ZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJDb250ZW50LUxhbmd1YWdlIik7CisgICAg
ICAgIGlmICghaGVhZGVyQ29udGVudExhbmd1YWdlLmlzRW1wdHkoKSkgeworICAgICAgICAgICAg
Ly8gSFRUUC1oZWFkZXIgYW5kIGh0dHAtZXF1aXYgbWV0YSB0YWcgZG8gbm90IGhhdmUgZXhhY3Rs
eSB0aGUgc2FtZQorICAgICAgICAgICAgLy8gbWVhbmluZy4gVGhlIGZvcm1lciBpcyB0aGUgImlu
dGVuZGVkIGF1ZGllbmNlIiBhbmQgdGhlIGxhdHRlcgorICAgICAgICAgICAgLy8gaXMgdGhlIGxh
bmd1YWdlIG9mIHRoZSBkb2N1bWVudCBhbmQgbXVzdCBjb250YWluIG9ubHkgYSBzaW5nbGUKKyAg
ICAgICAgICAgIC8vIGVudHJ5LiBJZiB3ZSBkZXRlY3QgdGhlIGZvcm1lciB3aXRoIG11bHRpcGxl
IGVudHJpZXMgc2VwYXJhdGVkCisgICAgICAgICAgICAvLyBieSBjb21tYXMsIHdlIHRha2Ugb25s
eSB0aGUgZmlyc3Qgb25lLiBBbHRlcm5hdGl2ZWx5IHdlIGNvdWxkCisgICAgICAgICAgICAvLyBp
Z25vcmUgYW4gSFRUUCBDb250ZW50LUxhbmd1YWdlIGhlYWRlciB3aXRoIG11bHRpcGxlIGVudHJp
ZXMuCisgICAgICAgICAgICAvLyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMyNjE2I3Bh
Z2UtMTE4CisgICAgICAgICAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFw
cHMvY3VycmVudC13b3JrLyNhdHRyLW1ldGEtaHR0cC1lcXVpdi1jb250ZW50LWxhbmd1YWdlCisg
ICAgICAgICAgICBzaXplX3QgY29tbWEgPSBoZWFkZXJDb250ZW50TGFuZ3VhZ2UuZmluZCgnLCcp
OworICAgICAgICAgICAgaWYgKGNvbW1hID49IDApCisgICAgICAgICAgICAgICAgaGVhZGVyQ29u
dGVudExhbmd1YWdlLnRydW5jYXRlKGNvbW1hKTsKKyAgICAgICAgICAgIGhlYWRlckNvbnRlbnRM
YW5ndWFnZS5zdHJpcFdoaXRlU3BhY2UoKTsKKyAgICAgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50
KCktPnNldENvbnRlbnRMYW5ndWFnZShoZWFkZXJDb250ZW50TGFuZ3VhZ2UpOworICAgICAgICB9
CiAgICAgfQogCiAgICAgaGlzdG9yeSgpLT5yZXN0b3JlRG9jdW1lbnRTdGF0ZSgpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxh
bmd1YWdlLWFnYWluc3QtZXF1aXYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1YWdlLWFnYWluc3QtZXF1aXYtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjE3ZjhhZGIzNTMyMWI4YzUwZmM4MmJkZjdkZDFhZjc3NmNlOTJj
MTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFj
dC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2UtYWdhaW5zdC1lcXVpdi1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw0IEBACitUZXN0IGZvciBidWcgOTc5Mjk6IEV4dHJhY3QgSFRUUCBDb250ZW50LUxhbmd1
YWdlIGhlYWRlci4KKworZW4tR0IKK2FyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2UtYWdhaW5zdC1lcXVpdi5waHAg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3Vh
Z2UtYWdhaW5zdC1lcXVpdi5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGRiYTNlZWM5NGRmNWYxYTZlMDg4NWY5
MjZhNThiY2FmNDIwMTJkNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWlzYy9leHRyYWN0LWh0dHAtY29udGVudC1sYW5ndWFnZS1hZ2FpbnN0LWVxdWl2LnBocApA
QCAtMCwwICsxLDI2IEBACis8P3BocAorICBoZWFkZXIoIkNvbnRlbnQtTGFuZ3VhZ2U6IHpoLUNO
Iik7Cis/PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCI+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtbGFuZ3VhZ2Ui
IGNvbnRlbnQ9ImVuLUdCIj4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGVzdCBmb3IgPGEgaHJlZj0i
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3OTI5Ij5idWcgOTc5Mjk8
L2E+OgorRXh0cmFjdCBIVFRQIENvbnRlbnQtTGFuZ3VhZ2UgaGVhZGVyLjwvcD4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPGRpdiBpZD0ieCI+Zm9vPC9kaXY+Cis8ZGl2IGlkPSJ5IiBsYW5n
PSJhciI+YmFyPC9kaXY+Cis8c2NyaXB0PgorZnVuY3Rpb24gcmVjb3JkTGFuZ3VhZ2VPZk5vZGUo
aWQpIHsKKyAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgIGVs
ZW1lbnQuaW5uZXJUZXh0ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkud2Via2l0
TG9jYWxlOworfQorcmVjb3JkTGFuZ3VhZ2VPZk5vZGUoIngiKTsKK3JlY29yZExhbmd1YWdlT2ZO
b2RlKCJ5Iik7CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2UtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxh
bmd1YWdlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZmY3NjRmNDc5ZDc0N2Y4NDc2YTc1Y2Q1
Y2M1NGI4M2FlZDM4ZmZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1YWdlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDQgQEAKK1Rlc3QgZm9yIGJ1ZyA5NzkyOTogRXh0cmFjdCBIVFRQIENvbnRlbnQtTGFuZ3Vh
Z2UgaGVhZGVyLgorCit6aC1DTgorYXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWlzYy9leHRyYWN0LWh0dHAtY29udGVudC1sYW5ndWFnZS1tdWx0aXBsZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFu
Z3VhZ2UtbXVsdGlwbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiNTJlOTk1OGI0M2QxZmQz
NDJjMGFlNmJkZjE5NmYyNWM2MWY4ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2UtbXVsdGlwbGUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGVzdCBmb3IgYnVnIDk3OTI5OiBFeHRyYWN0IEhU
VFAgQ29udGVudC1MYW5ndWFnZSBoZWFkZXIuCisKK2ZyCithcgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1YWdlLW11bHRp
cGxlLnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9leHRyYWN0LWh0dHAtY29udGVu
dC1sYW5ndWFnZS1tdWx0aXBsZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzBiOTA5OGQzMDJhNjc3Y2M1ODlk
NmM2NGQyNzBmZTllZTkyZGU0NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWlzYy9leHRyYWN0LWh0dHAtY29udGVudC1sYW5ndWFnZS1tdWx0aXBsZS5waHAKQEAg
LTAsMCArMSwyNCBAQAorPD9waHAKKyAgaGVhZGVyKCJDb250ZW50LUxhbmd1YWdlOiAgZnIsIGZp
ICIpOworPz4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwiPgorPGhlYWQ+PC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0IGZvciA8YSBocmVm
PSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc5MjkiPmJ1ZyA5Nzky
OTwvYT46CitFeHRyYWN0IEhUVFAgQ29udGVudC1MYW5ndWFnZSBoZWFkZXIuPC9wPgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8ZGl2IGlkPSJ4Ij5mb288L2Rpdj4KKzxkaXYgaWQ9InkiIGxh
bmc9ImFyIj5iYXI8L2Rpdj4KKzxzY3JpcHQ+CitmdW5jdGlvbiByZWNvcmRMYW5ndWFnZU9mTm9k
ZShpZCkgeworICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKKyAg
ZWxlbWVudC5pbm5lclRleHQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS53ZWJr
aXRMb2NhbGU7Cit9CityZWNvcmRMYW5ndWFnZU9mTm9kZSgieCIpOworcmVjb3JkTGFuZ3VhZ2VP
Zk5vZGUoInkiKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWlzYy9leHRyYWN0LWh0dHAtY29udGVudC1sYW5ndWFnZS5waHAgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2Uu
cGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM1MjkxNTAxZWFhMmZjOTQ0ZjM3NThhNzJlZTNhZDg0OGYyMWI4MmUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1o
dHRwLWNvbnRlbnQtbGFuZ3VhZ2UucGhwCkBAIC0wLDAgKzEsMjQgQEAKKzw/cGhwCisgIGhlYWRl
cigiQ29udGVudC1MYW5ndWFnZTogemgtQ04iKTsKKz8+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPjwvaGVhZD4KKzxi
b2R5PgorPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk3OTI5Ij5idWcgOTc5Mjk8L2E+OgorRXh0cmFjdCBIVFRQIENvbnRlbnQtTGFu
Z3VhZ2UgaGVhZGVyLjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGRpdiBpZD0ieCI+
Zm9vPC9kaXY+Cis8ZGl2IGlkPSJ5IiBsYW5nPSJhciI+YmFyPC9kaXY+Cis8c2NyaXB0PgorZnVu
Y3Rpb24gcmVjb3JkTGFuZ3VhZ2VPZk5vZGUoaWQpIHsKKyAgdmFyIGVsZW1lbnQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChpZCk7CisgIGVsZW1lbnQuaW5uZXJUZXh0ID0gd2luZG93LmdldENv
bXB1dGVkU3R5bGUoZWxlbWVudCkud2Via2l0TG9jYWxlOworfQorcmVjb3JkTGFuZ3VhZ2VPZk5v
ZGUoIngiKTsKK3JlY29yZExhbmd1YWdlT2ZOb2RlKCJ5Iik7CitpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167809</attachid>
            <date>2012-10-09 12:03:17 -0700</date>
            <delta_ts>2012-10-10 08:42:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97929-20121009150217.patch</filename>
            <type>text/plain</type>
            <size>7193</size>
            <attacher name="Brian White">bcwhite</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBt
b2RlIDEwMDc1NQppbmRleCA3NzFjMGFiZDg3ODYzNzFiNTJhZWFhYjM5ZWY4NmRiMjY1ZGJiNDMw
Li44OWRmMDY2MTAxNDZhNTczZDgyZGQ5YmI0YzVlYjFmZDdkNTNmYmI4Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAxMi0xMC0wOSAgQnJpYW4gV2hpdGUgIDxiY3doaXRlQGNocm9taXVtLm9yZz4K
KworICAgICAgICBXZWJLaXQgRG9lc24ndCBSZWNvZ25pemUgQ29udGVudC1MYW5ndWFnZSBIVFRQ
IEhlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTc5MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGUgSFRUUCAiQ29udGVudC1MYW5ndWFnZSIgaGVhZGVyIG1heSBiZSBwcmVzZW50IGFuZCBpbmNs
dWRlIHRoZQorICAgICAgICBsYW5ndWFnZSBvZiB0aGUgcGFnZSBjb250ZW50cyAoYXMgb3Bwb3Nl
ZCB0byBhbiBlbWJlZGRlZCBtZXRhIHRhZykuCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmRpZEJlZ2luRG9jdW1lbnQp
OgorCiAyMDEyLTEwLTAzICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgog
CiAgICAgICAgIEJ1aWxkIGZpeCBmb3IgV2luQ0UgYWZ0ZXIgcjEzMDE2MC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5k
ZXggZGIzOWIyMWYyZGRmMzBkY2FhMzA2ZjMxMmQ1YTVmYmZkYTZlZWNlNi4uNWMxYzNmNzgyYTgw
Yjk1ZmRlODAzNTg0ZjcyZGI1NWRjNjU0OTNjNAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAKQEAgLTY2NSw2ICs2NjUsMjMgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZGlkQmVnaW5Eb2N1bWVu
dChib29sIGRpc3BhdGNoKQogICAgICAgICBTdHJpbmcgcmVwb3J0T25seUNvbnRlbnRTZWN1cml0
eVBvbGljeSA9IG1fZG9jdW1lbnRMb2FkZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJY
LVdlYktpdC1DU1AtUmVwb3J0LU9ubHkiKTsKICAgICAgICAgaWYgKCFyZXBvcnRPbmx5Q29udGVu
dFNlY3VyaXR5UG9saWN5LmlzRW1wdHkoKSkKICAgICAgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50
KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5kaWRSZWNlaXZlSGVhZGVyKHJlcG9ydE9ubHlD
b250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6UmVwb3J0T25seSk7
CisKKyAgICAgICAgU3RyaW5nIGhlYWRlckNvbnRlbnRMYW5ndWFnZSA9IG1fZG9jdW1lbnRMb2Fk
ZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJDb250ZW50LUxhbmd1YWdlIik7CisgICAg
ICAgIGlmICghaGVhZGVyQ29udGVudExhbmd1YWdlLmlzRW1wdHkoKSkgeworICAgICAgICAgICAg
Ly8gSFRUUC1oZWFkZXIgYW5kIGh0dHAtZXF1aXYgbWV0YSB0YWcgZG8gbm90IGhhdmUgZXhhY3Rs
eSB0aGUgc2FtZQorICAgICAgICAgICAgLy8gbWVhbmluZy4gVGhlIGZvcm1lciBpcyB0aGUgImlu
dGVuZGVkIGF1ZGllbmNlIiBhbmQgdGhlIGxhdHRlcgorICAgICAgICAgICAgLy8gaXMgdGhlIGxh
bmd1YWdlIG9mIHRoZSBkb2N1bWVudCBhbmQgbXVzdCBjb250YWluIG9ubHkgYSBzaW5nbGUKKyAg
ICAgICAgICAgIC8vIGVudHJ5LiBJZiB3ZSBkZXRlY3QgdGhlIGZvcm1lciB3aXRoIG11bHRpcGxl
IGVudHJpZXMgc2VwYXJhdGVkCisgICAgICAgICAgICAvLyBieSBjb21tYXMsIHdlIHRha2Ugb25s
eSB0aGUgZmlyc3Qgb25lLiBBbHRlcm5hdGl2ZWx5IHdlIGNvdWxkCisgICAgICAgICAgICAvLyBp
Z25vcmUgYW4gSFRUUCBDb250ZW50LUxhbmd1YWdlIGhlYWRlciB3aXRoIG11bHRpcGxlIGVudHJp
ZXMuCisgICAgICAgICAgICAvLyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMyNjE2I3Bh
Z2UtMTE4CisgICAgICAgICAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFw
cHMvY3VycmVudC13b3JrLyNhdHRyLW1ldGEtaHR0cC1lcXVpdi1jb250ZW50LWxhbmd1YWdlCisg
ICAgICAgICAgICBzaXplX3QgY29tbWEgPSBoZWFkZXJDb250ZW50TGFuZ3VhZ2UuZmluZCgnLCcp
OworICAgICAgICAgICAgaWYgKGNvbW1hICE9IG5vdEZvdW5kKQorICAgICAgICAgICAgICAgIGhl
YWRlckNvbnRlbnRMYW5ndWFnZS50cnVuY2F0ZShjb21tYSk7CisgICAgICAgICAgICBoZWFkZXJD
b250ZW50TGFuZ3VhZ2Uuc3RyaXBXaGl0ZVNwYWNlKCk7CisgICAgICAgICAgICBtX2ZyYW1lLT5k
b2N1bWVudCgpLT5zZXRDb250ZW50TGFuZ3VhZ2UoaGVhZGVyQ29udGVudExhbmd1YWdlKTsKKyAg
ICAgICAgfQogICAgIH0KIAogICAgIGhpc3RvcnkoKS0+cmVzdG9yZURvY3VtZW50U3RhdGUoKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9leHRyYWN0LWh0dHAtY29u
dGVudC1sYW5ndWFnZS1hZ2FpbnN0LWVxdWl2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWlzYy9leHRyYWN0LWh0dHAtY29udGVudC1sYW5ndWFnZS1hZ2FpbnN0LWVxdWl2
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xN2Y4YWRiMzUzMjFiOGM1MGZjODJiZGY3ZGQxYWY3
NzZjZTkyYzE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNj
L2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1YWdlLWFnYWluc3QtZXF1aXYtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNCBAQAorVGVzdCBmb3IgYnVnIDk3OTI5OiBFeHRyYWN0IEhUVFAgQ29udGVu
dC1MYW5ndWFnZSBoZWFkZXIuCisKK2VuLUdCCithcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1YWdlLWFnYWluc3QtZXF1
aXYucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50
LWxhbmd1YWdlLWFnYWluc3QtZXF1aXYucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkYmEzZWVjOTRkZjVmMWE2
ZTA4ODVmOTI2YTU4YmNhZjQyMDEyZDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2UtYWdhaW5zdC1lcXVp
di5waHAKQEAgLTAsMCArMSwyNiBAQAorPD9waHAKKyAgaGVhZGVyKCJDb250ZW50LUxhbmd1YWdl
OiB6aC1DTiIpOworPz4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwiPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LWxh
bmd1YWdlIiBjb250ZW50PSJlbi1HQiI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3QgZm9yIDxh
IGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzkyOSI+YnVn
IDk3OTI5PC9hPjoKK0V4dHJhY3QgSFRUUCBDb250ZW50LUxhbmd1YWdlIGhlYWRlci48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxkaXYgaWQ9IngiPmZvbzwvZGl2PgorPGRpdiBpZD0i
eSIgbGFuZz0iYXIiPmJhcjwvZGl2PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHJlY29yZExhbmd1YWdl
T2ZOb2RlKGlkKSB7CisgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQp
OworICBlbGVtZW50LmlubmVyVGV4dCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQp
LndlYmtpdExvY2FsZTsKK30KK3JlY29yZExhbmd1YWdlT2ZOb2RlKCJ4Iik7CityZWNvcmRMYW5n
dWFnZU9mTm9kZSgieSIpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1YWdlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9leHRyYWN0LWh0dHAtY29u
dGVudC1sYW5ndWFnZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGZmNzY0ZjQ3OWQ3NDdmODQ3
NmE3NWNkNWNjNTRiODNhZWQzOGZmZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWlzYy9leHRyYWN0LWh0dHAtY29udGVudC1sYW5ndWFnZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw0IEBACitUZXN0IGZvciBidWcgOTc5Mjk6IEV4dHJhY3QgSFRUUCBDb250ZW50
LUxhbmd1YWdlIGhlYWRlci4KKworemgtQ04KK2FyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2UtbXVsdGlwbGUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250
ZW50LWxhbmd1YWdlLW11bHRpcGxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YjUyZTk5NThi
NDNkMWZkMzQyYzBhZTZiZGYxOTZmMjVjNjFmOGY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1YWdlLW11bHRp
cGxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rlc3QgZm9yIGJ1ZyA5NzkyOTogRXh0
cmFjdCBIVFRQIENvbnRlbnQtTGFuZ3VhZ2UgaGVhZGVyLgorCitmcgorYXIKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9leHRyYWN0LWh0dHAtY29udGVudC1sYW5ndWFn
ZS1tdWx0aXBsZS5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRw
LWNvbnRlbnQtbGFuZ3VhZ2UtbXVsdGlwbGUucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwYjkwOThkMzAyYTY3
N2NjNTg5ZDZjNjRkMjcwZmU5ZWU5MmRlNDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2UtbXVsdGlwbGUu
cGhwCkBAIC0wLDAgKzEsMjQgQEAKKzw/cGhwCisgIGhlYWRlcigiQ29udGVudC1MYW5ndWFnZTog
IGZyLCBmaSAiKTsKKz8+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPjwvaGVhZD4KKzxib2R5PgorPHA+VGVzdCBmb3Ig
PGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3OTI5Ij5i
dWcgOTc5Mjk8L2E+OgorRXh0cmFjdCBIVFRQIENvbnRlbnQtTGFuZ3VhZ2UgaGVhZGVyLjwvcD4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGRpdiBpZD0ieCI+Zm9vPC9kaXY+Cis8ZGl2IGlk
PSJ5IiBsYW5nPSJhciI+YmFyPC9kaXY+Cis8c2NyaXB0PgorZnVuY3Rpb24gcmVjb3JkTGFuZ3Vh
Z2VPZk5vZGUoaWQpIHsKKyAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChp
ZCk7CisgIGVsZW1lbnQuaW5uZXJUZXh0ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVu
dCkud2Via2l0TG9jYWxlOworfQorcmVjb3JkTGFuZ3VhZ2VPZk5vZGUoIngiKTsKK3JlY29yZExh
bmd1YWdlT2ZOb2RlKCJ5Iik7CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2Uu
cGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxh
bmd1YWdlLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNTI5MTUwMWVhYTJmYzk0NGYzNzU4YTcyZWUzYWQ4NDhm
MjFiODJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4
dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1YWdlLnBocApAQCAtMCwwICsxLDI0IEBACis8P3BocAor
ICBoZWFkZXIoIkNvbnRlbnQtTGFuZ3VhZ2U6IHpoLUNOIik7Cis/PgorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD48L2hl
YWQ+Cis8Ym9keT4KKzxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NzkyOSI+YnVnIDk3OTI5PC9hPjoKK0V4dHJhY3QgSFRUUCBDb250
ZW50LUxhbmd1YWdlIGhlYWRlci48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxkaXYg
aWQ9IngiPmZvbzwvZGl2PgorPGRpdiBpZD0ieSIgbGFuZz0iYXIiPmJhcjwvZGl2PgorPHNjcmlw
dD4KK2Z1bmN0aW9uIHJlY29yZExhbmd1YWdlT2ZOb2RlKGlkKSB7CisgIHZhciBlbGVtZW50ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOworICBlbGVtZW50LmlubmVyVGV4dCA9IHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLndlYmtpdExvY2FsZTsKK30KK3JlY29yZExhbmd1
YWdlT2ZOb2RlKCJ4Iik7CityZWNvcmRMYW5ndWFnZU9mTm9kZSgieSIpOworaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168006</attachid>
            <date>2012-10-10 08:43:03 -0700</date>
            <delta_ts>2012-10-10 12:07:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97929-20121010114202.patch</filename>
            <type>text/plain</type>
            <size>10251</size>
            <attacher name="Brian White">bcwhite</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBt
b2RlIDEwMDc1NQppbmRleCA3NzFjMGFiZDg3ODYzNzFiNTJhZWFhYjM5ZWY4NmRiMjY1ZGJiNDMw
Li43NDgzNDU0M2Q5OWY2MjEwYTIyM2ZmZDRiY2M5ZjllZjhiODc2MzU4Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAxMi0xMC0xMCAgQnJpYW4gV2hpdGUgIDxiY3doaXRlQGNocm9taXVtLm9yZz4K
KworICAgICAgICBXZWJLaXQgRG9lc24ndCBSZWNvZ25pemUgQ29udGVudC1MYW5ndWFnZSBIVFRQ
IEhlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTc5MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGUgSFRUUCAiQ29udGVudC1MYW5ndWFnZSIgaGVhZGVyIG1heSBiZSBwcmVzZW50IGFuZCBpbmNs
dWRlIHRoZQorICAgICAgICBsYW5ndWFnZSBvZiB0aGUgcGFnZSBjb250ZW50cyAoYXMgb3Bwb3Nl
ZCB0byBhbiBlbWJlZGRlZCBtZXRhIHRhZykuCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmRpZEJlZ2luRG9jdW1lbnQp
OgorCiAyMDEyLTEwLTAzICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgog
CiAgICAgICAgIEJ1aWxkIGZpeCBmb3IgV2luQ0UgYWZ0ZXIgcjEzMDE2MC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlvbXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlvbXMuaApvbGQgbW9kZSAxMDA2NDQKbmV3
IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApvbGQgbW9kZSAx
MDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IGRiMzliMjFmMmRkZjMwZGNhYTMwNmYzMTJkNWE1
ZmJmZGE2ZWVjZTYuLmI0NTExMDRmNjNlMjNlNTkzZWVjZjRhMDc1NWRlZGFmM2M4N2Y4NzcKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC03MCw2ICs3MCw3IEBACiAjaW5jbHVkZSAi
SFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRN
TE9iamVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVk
ZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgogI2luY2x1ZGUgIklu
c3BlY3RvckNvbnRyb2xsZXIuaCIKQEAgLTY2NSw2ICs2NjYsMTYgQEAgdm9pZCBGcmFtZUxvYWRl
cjo6ZGlkQmVnaW5Eb2N1bWVudChib29sIGRpc3BhdGNoKQogICAgICAgICBTdHJpbmcgcmVwb3J0
T25seUNvbnRlbnRTZWN1cml0eVBvbGljeSA9IG1fZG9jdW1lbnRMb2FkZXItPnJlc3BvbnNlKCku
aHR0cEhlYWRlckZpZWxkKCJYLVdlYktpdC1DU1AtUmVwb3J0LU9ubHkiKTsKICAgICAgICAgaWYg
KCFyZXBvcnRPbmx5Q29udGVudFNlY3VyaXR5UG9saWN5LmlzRW1wdHkoKSkKICAgICAgICAgICAg
IG1fZnJhbWUtPmRvY3VtZW50KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5kaWRSZWNlaXZl
SGVhZGVyKHJlcG9ydE9ubHlDb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBv
bGljeTo6UmVwb3J0T25seSk7CisKKyAgICAgICAgU3RyaW5nIGhlYWRlckNvbnRlbnRMYW5ndWFn
ZSA9IG1fZG9jdW1lbnRMb2FkZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJDb250ZW50
LUxhbmd1YWdlIik7CisgICAgICAgIGlmICghaGVhZGVyQ29udGVudExhbmd1YWdlLmlzRW1wdHko
KSkgeworICAgICAgICAgICAgc2l6ZV90IGNvbW1hSW5kZXggPSBoZWFkZXJDb250ZW50TGFuZ3Vh
Z2UuZmluZCgnLCcpOworICAgICAgICAgICAgaWYgKGNvbW1hSW5kZXggIT0gbm90Rm91bmQpCisg
ICAgICAgICAgICAgICAgaGVhZGVyQ29udGVudExhbmd1YWdlLnRydW5jYXRlKGNvbW1hSW5kZXgp
OworICAgICAgICAgICAgaGVhZGVyQ29udGVudExhbmd1YWdlID0gaGVhZGVyQ29udGVudExhbmd1
YWdlLnN0cmlwV2hpdGVTcGFjZShpc0hUTUxTcGFjZSk7CisgICAgICAgICAgICBpZiAoIWhlYWRl
ckNvbnRlbnRMYW5ndWFnZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgbV9mcmFtZS0+ZG9j
dW1lbnQoKS0+c2V0Q29udGVudExhbmd1YWdlKGhlYWRlckNvbnRlbnRMYW5ndWFnZSk7CisgICAg
ICAgIH0KICAgICB9CiAKICAgICBoaXN0b3J5KCktPnJlc3RvcmVEb2N1bWVudFN0YXRlKCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRl
bnQtbGFuZ3VhZ2UtYWdhaW5zdC1lcXVpdi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2UtYWdhaW5zdC1lcXVpdi1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTQ3OWVmYTQxN2IwNWMyOGVkZjJhYmQxYzQ0MGMxZmMx
YTEwMTY5YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9l
eHRyYWN0LWh0dHAtY29udGVudC1sYW5ndWFnZS1hZ2FpbnN0LWVxdWl2LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDQgQEAKK1Rlc3QgZm9yIGJ1ZyA5NzkyOTogRXh0cmFjdCBIVFRQIENvbnRlbnQt
TGFuZ3VhZ2UgaGVhZGVyLgorCitQYXNzLiBHb3QgImVuLUdCIiBleHRyYWN0ZWQgZnJvbSBtZXRh
ICJodHRwLWVxdWl2IiBhbmQgb3ZlcnJpZGluZyBIVFRQICJDb250ZW50LUxhbmd1YWdlIi4KK1Bh
c3MuIEdvdCAiYXIiIGV4dHJhY3RlZCBmcm9tIGRpdiAibGFuZyIgdGFnLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1YWdl
LWFnYWluc3QtZXF1aXYucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4dHJhY3Qt
aHR0cC1jb250ZW50LWxhbmd1YWdlLWFnYWluc3QtZXF1aXYucGhwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmYTk4
NWFkY2JmMzRmNDIwOGRiNjQwYmVhYTFlMTg3MGZlNWQ2MjkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2Ut
YWdhaW5zdC1lcXVpdi5waHAKQEAgLTAsMCArMSwzMCBAQAorPD9waHAKKyAgaGVhZGVyKCJDb250
ZW50LUxhbmd1YWdlOiB6aC1DTiIpOworPz4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgeG1sbnM9
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2
PSJjb250ZW50LWxhbmd1YWdlIiBjb250ZW50PSJlbi1HQiI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NzkyOSI+YnVnIDk3OTI5PC9hPjoKK0V4dHJhY3QgSFRUUCBDb250ZW50LUxhbmd1YWdlIGhl
YWRlci48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxkaXYgaWQ9IngiPmZvbzwvZGl2
PgorPGRpdiBpZD0ieSIgbGFuZz0iYXIiPmJhcjwvZGl2PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHJl
Y29yZExhbmd1YWdlT2ZOb2RlKGlkLCBleHBlY3QsIG1zZykgeworICB2YXIgZWxlbWVudCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKKyAgdmFyIGxhbmd1YWdlID0gd2luZG93LmdldENv
bXB1dGVkU3R5bGUoZWxlbWVudCkud2Via2l0TG9jYWxlOworICBpZiAobGFuZ3VhZ2UgPT0gZXhw
ZWN0KQorICAgIGVsZW1lbnQuaW5uZXJUZXh0ID0gJ1Bhc3MuICBHb3QgIicgKyBleHBlY3QgKyAn
IiAnICsgbXNnICsgJy4nOworICBlbHNlCisgICAgZWxlbWVudC5pbm5lclRleHQgPSAnRmFpbCEg
IEV4cGVjdGVkICInICsgZXhwZWN0ICsgJyIgJyArIG1zZyArICc7IGdvdCAiJyArIGxhbmd1YWdl
ICsgJyIuJzsKK30KK3JlY29yZExhbmd1YWdlT2ZOb2RlKCd4JywgJ2VuLUdCJywgJ2V4dHJhY3Rl
ZCBmcm9tIG1ldGEgImh0dHAtZXF1aXYiIGFuZCBvdmVycmlkaW5nIEhUVFAgIkNvbnRlbnQtTGFu
Z3VhZ2UiJyk7CityZWNvcmRMYW5ndWFnZU9mTm9kZSgneScsICdhcicsICdleHRyYWN0ZWQgZnJv
bSBkaXYgImxhbmciIHRhZycpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1YWdl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9leHRyYWN0LWh0dHAt
Y29udGVudC1sYW5ndWFnZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmIwMjg2ZTc3Y2FkYzhl
N2ZkOWZhMTVlYzRlMzdjNmZmOGExMWY5MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWlzYy9leHRyYWN0LWh0dHAtY29udGVudC1sYW5ndWFnZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw0IEBACitUZXN0IGZvciBidWcgOTc5Mjk6IEV4dHJhY3QgSFRUUCBDb250
ZW50LUxhbmd1YWdlIGhlYWRlci4KKworUGFzcy4gR290ICJ6aC1DTiIgZXh0cmFjdGVkIGZyb20g
SFRUUCAiQ29udGVudC1MZW5ndGgiIGhlYWRlci4KK1Bhc3MuIEdvdCAiYXIiIGV4dHJhY3RlZCBm
cm9tIGRpdiAibGFuZyIgdGFnLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
aXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1YWdlLW1hbGZvcm1lZC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3Vh
Z2UtbWFsZm9ybWVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wN2U4OTY1ZGUxMmFhNzQ0ZDU0
NTI2MjQwMjhhYmE5ZWNlNWM4ODFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1YWdlLW1hbGZvcm1lZC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUZXN0IGZvciBidWcgOTc5Mjk6IEV4dHJhY3QgSFRU
UCBDb250ZW50LUxhbmd1YWdlIGhlYWRlci4KKworUGFzcy4gR290ICJlcyIgZXh0cmFjdGVkIGZy
b20gbWFsZm9ybWVkIEhUVFAgIkNvbnRlbnQtTGVuZ3RoIiBoZWFkZXIuCitQYXNzLiBHb3QgImFy
IiBleHRyYWN0ZWQgZnJvbSBkaXYgImxhbmciIHRhZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWlzYy9leHRyYWN0LWh0dHAtY29udGVudC1sYW5ndWFnZS1tYWxmb3JtZWQu
cGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxh
bmd1YWdlLW1hbGZvcm1lZC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGY2OTJiZmU1MWI5NjlkNTQ2YzA4OWU2
NmM5MWI1NzZmYThhYWFmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWlzYy9leHRyYWN0LWh0dHAtY29udGVudC1sYW5ndWFnZS1tYWxmb3JtZWQucGhwCkBAIC0w
LDAgKzEsMjggQEAKKzw/cGhwCisgIGhlYWRlcigiQ29udGVudC1MYW5ndWFnZTogLGVzIik7Cis/
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCI+Cis8aGVhZD48L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzkyOSI+YnVnIDk3OTI5PC9hPjoK
K0V4dHJhY3QgSFRUUCBDb250ZW50LUxhbmd1YWdlIGhlYWRlci48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxkaXYgaWQ9IngiPmZvbzwvZGl2PgorPGRpdiBpZD0ieSIgbGFuZz0iYXIi
PmJhcjwvZGl2PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHJlY29yZExhbmd1YWdlT2ZOb2RlKGlkLCBl
eHBlY3QsIG1zZykgeworICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlk
KTsKKyAgdmFyIGxhbmd1YWdlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkud2Vi
a2l0TG9jYWxlOworICBpZiAobGFuZ3VhZ2UgPT0gZXhwZWN0KQorICAgIGVsZW1lbnQuaW5uZXJU
ZXh0ID0gJ1Bhc3MuICBHb3QgIicgKyBleHBlY3QgKyAnIiAnICsgbXNnICsgJy4nOworICBlbHNl
CisgICAgZWxlbWVudC5pbm5lclRleHQgPSAnRmFpbCEgIEV4cGVjdGVkICInICsgZXhwZWN0ICsg
JyIgJyArIG1zZyArICc7IGdvdCAiJyArIGxhbmd1YWdlICsgJyIuJzsKK30KK3JlY29yZExhbmd1
YWdlT2ZOb2RlKCd4JywgJ2VzJywgJ2V4dHJhY3RlZCBmcm9tIG1hbGZvcm1lZCBIVFRQICJDb250
ZW50LUxlbmd0aCIgaGVhZGVyJyk7IC8vIGVtcHR5IHdvdWxkIGFsc28gYmUgb2theQorcmVjb3Jk
TGFuZ3VhZ2VPZk5vZGUoJ3knLCAnYXInLCAnZXh0cmFjdGVkIGZyb20gZGl2ICJsYW5nIiB0YWcn
KTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWlzYy9leHRyYWN0LWh0dHAtY29udGVudC1sYW5ndWFnZS1tdWx0aXBsZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQt
bGFuZ3VhZ2UtbXVsdGlwbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlOTNkYjIxYTYyMWQ0
YTI0Y2U4ZGRlMTU1ZjQxOTgwNWIwY2E2NjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2UtbXVsdGlwbGUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGVzdCBmb3IgYnVnIDk3OTI5OiBFeHRyYWN0
IEhUVFAgQ29udGVudC1MYW5ndWFnZSBoZWFkZXIuCisKK1Bhc3MuIEdvdCAiZnIiIGV4dHJhY3Rl
ZCBzaW5nbHkgZnJvbSBIVFRQICJDb250ZW50LUxlbmd0aCIgaGVhZGVyLgorUGFzcy4gR290ICJh
ciIgZXh0cmFjdGVkIGZyb20gZGl2ICJsYW5nIiB0YWcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2UtbXVsdGlwbGUu
cGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxh
bmd1YWdlLW11bHRpcGxlLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjI0YzllZGZjMTEyMjg1N2RiOGVmMGU1
NWRhZTg4MmIwNDIzNWQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1YWdlLW11bHRpcGxlLnBocApAQCAtMCww
ICsxLDI4IEBACis8P3BocAorICBoZWFkZXIoIkNvbnRlbnQtTGFuZ3VhZ2U6ICBmciBcdCAsIGZp
ICIpOworPz4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwiPgorPGhlYWQ+PC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0IGZvciA8YSBocmVm
PSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc5MjkiPmJ1ZyA5Nzky
OTwvYT46CitFeHRyYWN0IEhUVFAgQ29udGVudC1MYW5ndWFnZSBoZWFkZXIuPC9wPgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8ZGl2IGlkPSJ4Ij5mb288L2Rpdj4KKzxkaXYgaWQ9InkiIGxh
bmc9ImFyIj5iYXI8L2Rpdj4KKzxzY3JpcHQ+CitmdW5jdGlvbiByZWNvcmRMYW5ndWFnZU9mTm9k
ZShpZCwgZXhwZWN0LCBtc2cpIHsKKyAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChpZCk7CisgIHZhciBsYW5ndWFnZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1l
bnQpLndlYmtpdExvY2FsZTsKKyAgaWYgKGxhbmd1YWdlID09IGV4cGVjdCkKKyAgICBlbGVtZW50
LmlubmVyVGV4dCA9ICdQYXNzLiAgR290ICInICsgZXhwZWN0ICsgJyIgJyArIG1zZyArICcuJzsK
KyAgZWxzZQorICAgIGVsZW1lbnQuaW5uZXJUZXh0ID0gJ0ZhaWwhICBFeHBlY3RlZCAiJyArIGV4
cGVjdCArICciICcgKyBtc2cgKyAnOyBnb3QgIicgKyBsYW5ndWFnZSArICciLic7Cit9CityZWNv
cmRMYW5ndWFnZU9mTm9kZSgneCcsICdmcicsICdleHRyYWN0ZWQgc2luZ2x5IGZyb20gSFRUUCAi
Q29udGVudC1MZW5ndGgiIGhlYWRlcicpOworcmVjb3JkTGFuZ3VhZ2VPZk5vZGUoJ3knLCAnYXIn
LCAnZXh0cmFjdGVkIGZyb20gZGl2ICJsYW5nIiB0YWcnKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9leHRyYWN0LWh0dHAt
Y29udGVudC1sYW5ndWFnZS5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFj
dC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2UucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4YzIwNmYxNDg3OGVmNmU0
YzQ4MGVhZWRiYWU5NTMyOGNiZmU3ODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2UucGhwCkBAIC0wLDAg
KzEsMjggQEAKKzw/cGhwCisgIGhlYWRlcigiQ29udGVudC1MYW5ndWFnZTogemgtQ04iKTsKKz8+
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3ho
dG1sIj4KKzxoZWFkPjwvaGVhZD4KKzxib2R5PgorPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3OTI5Ij5idWcgOTc5Mjk8L2E+Ogor
RXh0cmFjdCBIVFRQIENvbnRlbnQtTGFuZ3VhZ2UgaGVhZGVyLjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPGRpdiBpZD0ieCI+Zm9vPC9kaXY+Cis8ZGl2IGlkPSJ5IiBsYW5nPSJhciI+
YmFyPC9kaXY+Cis8c2NyaXB0PgorZnVuY3Rpb24gcmVjb3JkTGFuZ3VhZ2VPZk5vZGUoaWQsIGV4
cGVjdCwgbXNnKSB7CisgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQp
OworICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS53ZWJr
aXRMb2NhbGU7CisgIGlmIChsYW5ndWFnZSA9PSBleHBlY3QpCisgICAgZWxlbWVudC5pbm5lclRl
eHQgPSAnUGFzcy4gIEdvdCAiJyArIGV4cGVjdCArICciICcgKyBtc2cgKyAnLic7CisgIGVsc2UK
KyAgICBlbGVtZW50LmlubmVyVGV4dCA9ICdGYWlsISAgRXhwZWN0ZWQgIicgKyBleHBlY3QgKyAn
IiAnICsgbXNnICsgJzsgZ290ICInICsgbGFuZ3VhZ2UgKyAnIi4nOworfQorcmVjb3JkTGFuZ3Vh
Z2VPZk5vZGUoJ3gnLCAnemgtQ04nLCAnZXh0cmFjdGVkIGZyb20gSFRUUCAiQ29udGVudC1MZW5n
dGgiIGhlYWRlcicpOworcmVjb3JkTGFuZ3VhZ2VPZk5vZGUoJ3knLCAnYXInLCAnZXh0cmFjdGVk
IGZyb20gZGl2ICJsYW5nIiB0YWcnKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168050</attachid>
            <date>2012-10-10 12:08:03 -0700</date>
            <delta_ts>2012-10-12 14:11:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97929-20121010150701.patch</filename>
            <type>text/plain</type>
            <size>10892</size>
            <attacher name="Brian White">bcwhite</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBt
b2RlIDEwMDc1NQppbmRleCA3NzFjMGFiZDg3ODYzNzFiNTJhZWFhYjM5ZWY4NmRiMjY1ZGJiNDMw
Li43NDgzNDU0M2Q5OWY2MjEwYTIyM2ZmZDRiY2M5ZjllZjhiODc2MzU4Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAxMi0xMC0xMCAgQnJpYW4gV2hpdGUgIDxiY3doaXRlQGNocm9taXVtLm9yZz4K
KworICAgICAgICBXZWJLaXQgRG9lc24ndCBSZWNvZ25pemUgQ29udGVudC1MYW5ndWFnZSBIVFRQ
IEhlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTc5MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGUgSFRUUCAiQ29udGVudC1MYW5ndWFnZSIgaGVhZGVyIG1heSBiZSBwcmVzZW50IGFuZCBpbmNs
dWRlIHRoZQorICAgICAgICBsYW5ndWFnZSBvZiB0aGUgcGFnZSBjb250ZW50cyAoYXMgb3Bwb3Nl
ZCB0byBhbiBlbWJlZGRlZCBtZXRhIHRhZykuCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmRpZEJlZ2luRG9jdW1lbnQp
OgorCiAyMDEyLTEwLTAzICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgog
CiAgICAgICAgIEJ1aWxkIGZpeCBmb3IgV2luQ0UgYWZ0ZXIgcjEzMDE2MC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlvbXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlvbXMuaApvbGQgbW9kZSAxMDA2NDQKbmV3
IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApvbGQgbW9kZSAx
MDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IGRiMzliMjFmMmRkZjMwZGNhYTMwNmYzMTJkNWE1
ZmJmZGE2ZWVjZTYuLjNmOGVlMjE2MDVjY2NjZjJlMjYzNzU5ZjdiZThkNjM5YzM5Y2VjMjAKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC03MCw2ICs3MCw3IEBACiAjaW5jbHVkZSAi
SFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRN
TE9iamVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVk
ZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgogI2luY2x1ZGUgIklu
c3BlY3RvckNvbnRyb2xsZXIuaCIKQEAgLTY2NSw2ICs2NjYsMTUgQEAgdm9pZCBGcmFtZUxvYWRl
cjo6ZGlkQmVnaW5Eb2N1bWVudChib29sIGRpc3BhdGNoKQogICAgICAgICBTdHJpbmcgcmVwb3J0
T25seUNvbnRlbnRTZWN1cml0eVBvbGljeSA9IG1fZG9jdW1lbnRMb2FkZXItPnJlc3BvbnNlKCku
aHR0cEhlYWRlckZpZWxkKCJYLVdlYktpdC1DU1AtUmVwb3J0LU9ubHkiKTsKICAgICAgICAgaWYg
KCFyZXBvcnRPbmx5Q29udGVudFNlY3VyaXR5UG9saWN5LmlzRW1wdHkoKSkKICAgICAgICAgICAg
IG1fZnJhbWUtPmRvY3VtZW50KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5kaWRSZWNlaXZl
SGVhZGVyKHJlcG9ydE9ubHlDb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBv
bGljeTo6UmVwb3J0T25seSk7CisKKyAgICAgICAgU3RyaW5nIGhlYWRlckNvbnRlbnRMYW5ndWFn
ZSA9IG1fZG9jdW1lbnRMb2FkZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJDb250ZW50
LUxhbmd1YWdlIik7CisgICAgICAgIGlmICghaGVhZGVyQ29udGVudExhbmd1YWdlLmlzRW1wdHko
KSkgeworICAgICAgICAgICAgc2l6ZV90IGNvbW1hSW5kZXggPSBoZWFkZXJDb250ZW50TGFuZ3Vh
Z2UuZmluZCgnLCcpOworICAgICAgICAgICAgaGVhZGVyQ29udGVudExhbmd1YWdlLnRydW5jYXRl
KGNvbW1hSW5kZXgpOyAvLyBub3RGb3VuZCA9PSAtMSA9PSBkb24ndCB0cnVuY2F0ZQorICAgICAg
ICAgICAgaGVhZGVyQ29udGVudExhbmd1YWdlID0gaGVhZGVyQ29udGVudExhbmd1YWdlLnN0cmlw
V2hpdGVTcGFjZShpc0hUTUxTcGFjZSk7CisgICAgICAgICAgICBpZiAoIWhlYWRlckNvbnRlbnRM
YW5ndWFnZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+
c2V0Q29udGVudExhbmd1YWdlKGhlYWRlckNvbnRlbnRMYW5ndWFnZSk7CisgICAgICAgIH0KICAg
ICB9CiAKICAgICBoaXN0b3J5KCktPnJlc3RvcmVEb2N1bWVudFN0YXRlKCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3Vh
Z2UtYWdhaW5zdC1lcXVpdi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21p
c2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2UtYWdhaW5zdC1lcXVpdi1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGE1OTE1ZDI2Y2ZhODEzYjZjZDJhMGQxYzNhNzBkNzRmYzVjMjEyYQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9leHRyYWN0LWh0
dHAtY29udGVudC1sYW5ndWFnZS1hZ2FpbnN0LWVxdWl2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDExIEBACitUZXN0IGZvciBidWcgOTc5Mjk6IEV4dHJhY3QgSFRUUCBDb250ZW50LUxhbmd1YWdl
IGhlYWRlci4KKworPT0+IFZhbHVlIGV4dHJhY3RlZCBmcm9tIG1ldGEgImh0dHAtZXF1aXYiIGFu
ZCBvdmVycmlkaW5nIEhUVFAgIkNvbnRlbnQtTGFuZ3VhZ2UiLi4uCitQQVNTIHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4IikpLndlYmtpdExvY2FsZSBp
cyAiZW4tR0IiCis9PT4gVmFsdWUgc2V0IGJ5IGRpdiAibGFuZyIgdGFnLi4uCitQQVNTIHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ5IikpLndlYmtpdExv
Y2FsZSBpcyAiYXIiCis9PT4gQWxsIGRvbmUuLi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2UtYWdhaW5zdC1lcXVpdi5waHAg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3Vh
Z2UtYWdhaW5zdC1lcXVpdi5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGZlZjA1ZTBiMDIyN2Q2Y2ZhYjg1NGE5
MDJjNzA5ODM5MjhhYmQzMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWlzYy9leHRyYWN0LWh0dHAtY29udGVudC1sYW5ndWFnZS1hZ2FpbnN0LWVxdWl2LnBocApA
QCAtMCwwICsxLDI3IEBACis8P3BocAorICBoZWFkZXIoIkNvbnRlbnQtTGFuZ3VhZ2U6IHpoLUNO
Iik7Cis/PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCI+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtbGFuZ3VhZ2Ui
IGNvbnRlbnQ9ImVuLUdCIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3QgZm9yIDxh
IGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzkyOSI+YnVn
IDk3OTI5PC9hPjoKK0V4dHJhY3QgSFRUUCBDb250ZW50LUxhbmd1YWdlIGhlYWRlci48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxkaXYgaWQ9IngiPjwvZGl2PgorPGRpdiBpZD0ieSIg
bGFuZz0iYXIiPjwvZGl2PgorPHNjcmlwdD4KKyAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICBkZWJ1ZygnPT0+IFZhbHVlIGV4dHJhY3RlZCBm
cm9tIG1ldGEgImh0dHAtZXF1aXYiIGFuZCBvdmVycmlkaW5nIEhUVFAgIkNvbnRlbnQtTGFuZ3Vh
Z2UiLi4uJyk7CisgIHNob3VsZEJlKCd3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgieCIpKS53ZWJraXRMb2NhbGUnLCAnImVuLUdCIicpCisgIGRlYnVnKCc9
PT4gVmFsdWUgc2V0IGJ5IGRpdiAibGFuZyIgdGFnLi4uJyk7CisgIHNob3VsZEJlKCd3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieSIpKS53ZWJraXRMb2Nh
bGUnLCAnImFyIicpCisgIGRlYnVnKCc9PT4gQWxsIGRvbmUuLi4nKTsKKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1YWdlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xZjE2NzhlMWIwYjVlZWRlNDQwYjUxYmU5ZTUyM2U2NGRlMTAz
OTFhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4dHJh
Y3QtaHR0cC1jb250ZW50LWxhbmd1YWdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitU
ZXN0IGZvciBidWcgOTc5Mjk6IEV4dHJhY3QgSFRUUCBDb250ZW50LUxhbmd1YWdlIGhlYWRlci4K
KworPT0+IFZhbHVlIGV4dHJhY3RlZCBmcm9tIEhUVFAgIkNvbnRlbnQtTGFuZ3VhZ2UiIGhlYWRl
ci4uLgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgieCIpKS53ZWJraXRMb2NhbGUgaXMgInpoLUNOIgorPT0+IFZhbHVlIHNldCBieSBkaXYgImxh
bmciIHRhZy4uLgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgieSIpKS53ZWJraXRMb2NhbGUgaXMgImFyIgorPT0+IEFsbCBkb25lLi4uCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1
YWdlLW1hbGZvcm1lZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mv
ZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2UtbWFsZm9ybWVkLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41ZDVhY2UyZDliNzRhMGRiMTVjYjc4MzNmNmViZmNiMWNkM2I1YTM1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250
ZW50LWxhbmd1YWdlLW1hbGZvcm1lZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVz
dCBmb3IgYnVnIDk3OTI5OiBFeHRyYWN0IEhUVFAgQ29udGVudC1MYW5ndWFnZSBoZWFkZXIuCisK
Kz09PiBWYWx1ZSBleHRyYWN0ZWQgZnJvbSBtYWxmb3JtZWQgSFRUUCAiQ29udGVudC1MYW5ndWFn
ZSIgaGVhZGVyLi4uCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ4IikpLndlYmtpdExvY2FsZSBpcyAiZXMiCis9PT4gVmFsdWUgc2V0IGJ5IGRp
diAibGFuZyIgdGFnLi4uCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ5IikpLndlYmtpdExvY2FsZSBpcyAiYXIiCis9PT4gQWxsIGRvbmUuLi4K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQt
bGFuZ3VhZ2UtbWFsZm9ybWVkLnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9leHRy
YWN0LWh0dHAtY29udGVudC1sYW5ndWFnZS1tYWxmb3JtZWQucGhwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0MTEz
OThjYmJjNzU4ZWVmNTUzNjhlM2MyZDg5OGQwNWRhODJjNDkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2Ut
bWFsZm9ybWVkLnBocApAQCAtMCwwICsxLDI2IEBACis8P3BocAorICBoZWFkZXIoIkNvbnRlbnQt
TGFuZ3VhZ2U6ICxlcyIpOworPz4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMt
dGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTc5MjkiPmJ1ZyA5NzkyOTwvYT46CitFeHRyYWN0IEhUVFAgQ29udGVudC1MYW5ndWFn
ZSBoZWFkZXIuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8ZGl2IGlkPSJ4Ij48L2Rp
dj4KKzxkaXYgaWQ9InkiIGxhbmc9ImFyIj48L2Rpdj4KKzxzY3JpcHQ+CisgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgZGVidWcoJz09PiBW
YWx1ZSBleHRyYWN0ZWQgZnJvbSBtYWxmb3JtZWQgSFRUUCAiQ29udGVudC1MYW5ndWFnZSIgaGVh
ZGVyLi4uJyk7CisgIHNob3VsZEJlKCd3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgieCIpKS53ZWJraXRMb2NhbGUnLCAnImVzIicpIC8vIGVtcHR5IHdvdWxk
IGFsc28gYmUgb2theQorICBkZWJ1ZygnPT0+IFZhbHVlIHNldCBieSBkaXYgImxhbmciIHRhZy4u
LicpOworICBzaG91bGRCZSgnd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInkiKSkud2Via2l0TG9jYWxlJywgJyJhciInKQorICBkZWJ1ZygnPT0+IEFsbCBk
b25lLi4uJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1
YWdlLW11bHRpcGxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9l
eHRyYWN0LWh0dHAtY29udGVudC1sYW5ndWFnZS1tdWx0aXBsZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZGNkYmVlZDE0ZjY5OTA5OGU3MTljMjY1OWJlZDhiOGMyMDExZDU1YgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9leHRyYWN0LWh0dHAtY29udGVu
dC1sYW5ndWFnZS1tdWx0aXBsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdCBm
b3IgYnVnIDk3OTI5OiBFeHRyYWN0IEhUVFAgQ29udGVudC1MYW5ndWFnZSBoZWFkZXIuCisKKz09
PiBWYWx1ZSBleHRyYWN0ZWQgc2luZ2x5IGZyb20gSFRUUCAiQ29udGVudC1MYW5ndWFnZSIgaGVh
ZGVyLi4uCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ4IikpLndlYmtpdExvY2FsZSBpcyAiZnIiCis9PT4gVmFsdWUgc2V0IGJ5IGRpdiAibGFu
ZyIgdGFnLi4uCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ5IikpLndlYmtpdExvY2FsZSBpcyAiYXIiCis9PT4gQWxsIGRvbmUuLi4KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3Vh
Z2UtbXVsdGlwbGUucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0
cC1jb250ZW50LWxhbmd1YWdlLW11bHRpcGxlLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMDVkNGY1Mjk1MTdm
MjVjM2RlNDQxMDFkYTU3Njk0ZTA4MzcxZTQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1YWdlLW11bHRpcGxl
LnBocApAQCAtMCwwICsxLDI2IEBACis8P3BocAorICBoZWFkZXIoIkNvbnRlbnQtTGFuZ3VhZ2U6
ICBmciBcdCAsIGZpICIpOworPz4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMt
dGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTc5MjkiPmJ1ZyA5NzkyOTwvYT46CitFeHRyYWN0IEhUVFAgQ29udGVudC1MYW5ndWFn
ZSBoZWFkZXIuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8ZGl2IGlkPSJ4Ij48L2Rp
dj4KKzxkaXYgaWQ9InkiIGxhbmc9ImFyIj48L2Rpdj4KKzxzY3JpcHQ+CisgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgZGVidWcoJz09PiBW
YWx1ZSBleHRyYWN0ZWQgc2luZ2x5IGZyb20gSFRUUCAiQ29udGVudC1MYW5ndWFnZSIgaGVhZGVy
Li4uJyk7CisgIHNob3VsZEJlKCd3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgieCIpKS53ZWJraXRMb2NhbGUnLCAnImZyIicpCisgIGRlYnVnKCc9PT4gVmFs
dWUgc2V0IGJ5IGRpdiAibGFuZyIgdGFnLi4uJyk7CisgIHNob3VsZEJlKCd3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieSIpKS53ZWJraXRMb2NhbGUnLCAn
ImFyIicpCisgIGRlYnVnKCc9PT4gQWxsIGRvbmUuLi4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mv
ZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2UucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1YWdlLnBocApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNzI2
ZjJkMTc0YWUzMWJjMjRlMGIxYzkxMTRhZjAzYjliNGZmOWRjCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1YWdl
LnBocApAQCAtMCwwICsxLDI2IEBACis8P3BocAorICBoZWFkZXIoIkNvbnRlbnQtTGFuZ3VhZ2U6
IHpoLUNOIik7Cis/PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy10ZXN0LXJl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRl
c3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
NzkyOSI+YnVnIDk3OTI5PC9hPjoKK0V4dHJhY3QgSFRUUCBDb250ZW50LUxhbmd1YWdlIGhlYWRl
ci48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxkaXYgaWQ9IngiPjwvZGl2PgorPGRp
diBpZD0ieSIgbGFuZz0iYXIiPjwvZGl2PgorPHNjcmlwdD4KKyAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICBkZWJ1ZygnPT0+IFZhbHVlIGV4
dHJhY3RlZCBmcm9tIEhUVFAgIkNvbnRlbnQtTGFuZ3VhZ2UiIGhlYWRlci4uLicpOworICBzaG91
bGRCZSgnd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIngi
KSkud2Via2l0TG9jYWxlJywgJyJ6aC1DTiInKQorICBkZWJ1ZygnPT0+IFZhbHVlIHNldCBieSBk
aXYgImxhbmciIHRhZy4uLicpOworICBzaG91bGRCZSgnd2luZG93LmdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInkiKSkud2Via2l0TG9jYWxlJywgJyJhciInKQorICBk
ZWJ1ZygnPT0+IEFsbCBkb25lLi4uJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9q
cy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168478</attachid>
            <date>2012-10-12 14:11:24 -0700</date>
            <delta_ts>2012-10-16 10:47:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97929-20121012171019.patch</filename>
            <type>text/plain</type>
            <size>10668</size>
            <attacher name="Brian White">bcwhite</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBt
b2RlIDEwMDc1NQppbmRleCA3NzFjMGFiZDg3ODYzNzFiNTJhZWFhYjM5ZWY4NmRiMjY1ZGJiNDMw
Li5jMjQ5YjUzMjlhZTRjMTRjNDEyN2ViYzdlZDcxYjU2MTVmMDhiNTU4Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAxMi0xMC0xMiAgQnJpYW4gV2hpdGUgIDxiY3doaXRlQGNocm9taXVtLm9yZz4K
KworICAgICAgICBXZWJLaXQgRG9lc24ndCBSZWNvZ25pemUgQ29udGVudC1MYW5ndWFnZSBIVFRQ
IEhlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTc5MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGUgSFRUUCAiQ29udGVudC1MYW5ndWFnZSIgaGVhZGVyIG1heSBiZSBwcmVzZW50IGFuZCBpbmNs
dWRlIHRoZQorICAgICAgICBsYW5ndWFnZSBvZiB0aGUgcGFnZSBjb250ZW50cyAoYXMgb3Bwb3Nl
ZCB0byBhbiBlbWJlZGRlZCBtZXRhIHRhZykuCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmRpZEJlZ2luRG9jdW1lbnQp
OgorCiAyMDEyLTEwLTAzICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgog
CiAgICAgICAgIEJ1aWxkIGZpeCBmb3IgV2luQ0UgYWZ0ZXIgcjEzMDE2MC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlvbXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlvbXMuaApvbGQgbW9kZSAxMDA2NDQKbmV3
IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApvbGQgbW9kZSAx
MDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IGRiMzliMjFmMmRkZjMwZGNhYTMwNmYzMTJkNWE1
ZmJmZGE2ZWVjZTYuLjNmOGVlMjE2MDVjY2NjZjJlMjYzNzU5ZjdiZThkNjM5YzM5Y2VjMjAKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC03MCw2ICs3MCw3IEBACiAjaW5jbHVkZSAi
SFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRN
TE9iamVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVk
ZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgogI2luY2x1ZGUgIklu
c3BlY3RvckNvbnRyb2xsZXIuaCIKQEAgLTY2NSw2ICs2NjYsMTUgQEAgdm9pZCBGcmFtZUxvYWRl
cjo6ZGlkQmVnaW5Eb2N1bWVudChib29sIGRpc3BhdGNoKQogICAgICAgICBTdHJpbmcgcmVwb3J0
T25seUNvbnRlbnRTZWN1cml0eVBvbGljeSA9IG1fZG9jdW1lbnRMb2FkZXItPnJlc3BvbnNlKCku
aHR0cEhlYWRlckZpZWxkKCJYLVdlYktpdC1DU1AtUmVwb3J0LU9ubHkiKTsKICAgICAgICAgaWYg
KCFyZXBvcnRPbmx5Q29udGVudFNlY3VyaXR5UG9saWN5LmlzRW1wdHkoKSkKICAgICAgICAgICAg
IG1fZnJhbWUtPmRvY3VtZW50KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5kaWRSZWNlaXZl
SGVhZGVyKHJlcG9ydE9ubHlDb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBv
bGljeTo6UmVwb3J0T25seSk7CisKKyAgICAgICAgU3RyaW5nIGhlYWRlckNvbnRlbnRMYW5ndWFn
ZSA9IG1fZG9jdW1lbnRMb2FkZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJDb250ZW50
LUxhbmd1YWdlIik7CisgICAgICAgIGlmICghaGVhZGVyQ29udGVudExhbmd1YWdlLmlzRW1wdHko
KSkgeworICAgICAgICAgICAgc2l6ZV90IGNvbW1hSW5kZXggPSBoZWFkZXJDb250ZW50TGFuZ3Vh
Z2UuZmluZCgnLCcpOworICAgICAgICAgICAgaGVhZGVyQ29udGVudExhbmd1YWdlLnRydW5jYXRl
KGNvbW1hSW5kZXgpOyAvLyBub3RGb3VuZCA9PSAtMSA9PSBkb24ndCB0cnVuY2F0ZQorICAgICAg
ICAgICAgaGVhZGVyQ29udGVudExhbmd1YWdlID0gaGVhZGVyQ29udGVudExhbmd1YWdlLnN0cmlw
V2hpdGVTcGFjZShpc0hUTUxTcGFjZSk7CisgICAgICAgICAgICBpZiAoIWhlYWRlckNvbnRlbnRM
YW5ndWFnZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+
c2V0Q29udGVudExhbmd1YWdlKGhlYWRlckNvbnRlbnRMYW5ndWFnZSk7CisgICAgICAgIH0KICAg
ICB9CiAKICAgICBoaXN0b3J5KCktPnJlc3RvcmVEb2N1bWVudFN0YXRlKCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3Vh
Z2UtYWdhaW5zdC1lcXVpdi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21p
c2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2UtYWdhaW5zdC1lcXVpdi1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGE1OTE1ZDI2Y2ZhODEzYjZjZDJhMGQxYzNhNzBkNzRmYzVjMjEyYQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9leHRyYWN0LWh0
dHAtY29udGVudC1sYW5ndWFnZS1hZ2FpbnN0LWVxdWl2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDExIEBACitUZXN0IGZvciBidWcgOTc5Mjk6IEV4dHJhY3QgSFRUUCBDb250ZW50LUxhbmd1YWdl
IGhlYWRlci4KKworPT0+IFZhbHVlIGV4dHJhY3RlZCBmcm9tIG1ldGEgImh0dHAtZXF1aXYiIGFu
ZCBvdmVycmlkaW5nIEhUVFAgIkNvbnRlbnQtTGFuZ3VhZ2UiLi4uCitQQVNTIHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4IikpLndlYmtpdExvY2FsZSBp
cyAiZW4tR0IiCis9PT4gVmFsdWUgc2V0IGJ5IGRpdiAibGFuZyIgdGFnLi4uCitQQVNTIHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ5IikpLndlYmtpdExv
Y2FsZSBpcyAiYXIiCis9PT4gQWxsIGRvbmUuLi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2UtYWdhaW5zdC1lcXVpdi5waHAg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3Vh
Z2UtYWdhaW5zdC1lcXVpdi5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWVlMDU2Njg3NzJlODA5ZWE0MzE5MTYx
NTlmZjFkZWZjM2U2Nzg4NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWlzYy9leHRyYWN0LWh0dHAtY29udGVudC1sYW5ndWFnZS1hZ2FpbnN0LWVxdWl2LnBocApA
QCAtMCwwICsxLDI1IEBACis8P3BocAorICBoZWFkZXIoIkNvbnRlbnQtTGFuZ3VhZ2U6IHpoLUNO
Iik7Cis/PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCI+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtbGFuZ3VhZ2Ui
IGNvbnRlbnQ9ImVuLUdCIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3QgZm9yIDxh
IGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzkyOSI+YnVn
IDk3OTI5PC9hPjoKK0V4dHJhY3QgSFRUUCBDb250ZW50LUxhbmd1YWdlIGhlYWRlci48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxkaXYgaWQ9IngiPjwvZGl2PgorPGRpdiBpZD0ieSIg
bGFuZz0iYXIiPjwvZGl2PgorPHNjcmlwdD4KKyAgZGVidWcoJz09PiBWYWx1ZSBleHRyYWN0ZWQg
ZnJvbSBtZXRhICJodHRwLWVxdWl2IiBhbmQgb3ZlcnJpZGluZyBIVFRQICJDb250ZW50LUxhbmd1
YWdlIi4uLicpOworICBzaG91bGRCZSgnd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoIngiKSkud2Via2l0TG9jYWxlJywgJyJlbi1HQiInKQorICBkZWJ1Zygn
PT0+IFZhbHVlIHNldCBieSBkaXYgImxhbmciIHRhZy4uLicpOworICBzaG91bGRCZSgnd2luZG93
LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInkiKSkud2Via2l0TG9j
YWxlJywgJyJhciInKQorICBkZWJ1ZygnPT0+IEFsbCBkb25lLi4uJyk7Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1YWdlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9leHRyYWN0LWh0dHAtY29udGVudC1sYW5ndWFnZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMWYxNjc4ZTFiMGI1ZWVkZTQ0MGI1MWJlOWU1MjNlNjRkZTEw
MzkxYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9leHRy
YWN0LWh0dHAtY29udGVudC1sYW5ndWFnZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAor
VGVzdCBmb3IgYnVnIDk3OTI5OiBFeHRyYWN0IEhUVFAgQ29udGVudC1MYW5ndWFnZSBoZWFkZXIu
CisKKz09PiBWYWx1ZSBleHRyYWN0ZWQgZnJvbSBIVFRQICJDb250ZW50LUxhbmd1YWdlIiBoZWFk
ZXIuLi4KK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoIngiKSkud2Via2l0TG9jYWxlIGlzICJ6aC1DTiIKKz09PiBWYWx1ZSBzZXQgYnkgZGl2ICJs
YW5nIiB0YWcuLi4KK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInkiKSkud2Via2l0TG9jYWxlIGlzICJhciIKKz09PiBBbGwgZG9uZS4uLgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9leHRyYWN0LWh0dHAtY29udGVudC1sYW5n
dWFnZS1tYWxmb3JtZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNj
L2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1YWdlLW1hbGZvcm1lZC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNWQ1YWNlMmQ5Yjc0YTBkYjE1Y2I3ODMzZjZlYmZjYjFjZDNiNWEzNQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9leHRyYWN0LWh0dHAtY29u
dGVudC1sYW5ndWFnZS1tYWxmb3JtZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rl
c3QgZm9yIGJ1ZyA5NzkyOTogRXh0cmFjdCBIVFRQIENvbnRlbnQtTGFuZ3VhZ2UgaGVhZGVyLgor
Cis9PT4gVmFsdWUgZXh0cmFjdGVkIGZyb20gbWFsZm9ybWVkIEhUVFAgIkNvbnRlbnQtTGFuZ3Vh
Z2UiIGhlYWRlci4uLgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgieCIpKS53ZWJraXRMb2NhbGUgaXMgImVzIgorPT0+IFZhbHVlIHNldCBieSBk
aXYgImxhbmciIHRhZy4uLgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgieSIpKS53ZWJraXRMb2NhbGUgaXMgImFyIgorPT0+IEFsbCBkb25lLi4u
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50
LWxhbmd1YWdlLW1hbGZvcm1lZC5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZXh0
cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2UtbWFsZm9ybWVkLnBocApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNGQy
NzI1NmU0MmFlMGEwYmY5MWMwOWQ4MDUzNWY0MWQwODE4NzhjCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1YWdl
LW1hbGZvcm1lZC5waHAKQEAgLTAsMCArMSwyNCBAQAorPD9waHAKKyAgaGVhZGVyKCJDb250ZW50
LUxhbmd1YWdlOiAsZXMiKTsKKz8+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIHhtbG5zPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk3OTI5Ij5idWcgOTc5Mjk8L2E+OgorRXh0cmFjdCBIVFRQIENvbnRlbnQtTGFuZ3Vh
Z2UgaGVhZGVyLjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGRpdiBpZD0ieCI+PC9k
aXY+Cis8ZGl2IGlkPSJ5IiBsYW5nPSJhciI+PC9kaXY+Cis8c2NyaXB0PgorICBkZWJ1ZygnPT0+
IFZhbHVlIGV4dHJhY3RlZCBmcm9tIG1hbGZvcm1lZCBIVFRQICJDb250ZW50LUxhbmd1YWdlIiBo
ZWFkZXIuLi4nKTsKKyAgc2hvdWxkQmUoJ3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ4IikpLndlYmtpdExvY2FsZScsICciZXMiJykgLy8gZW1wdHkgd291
bGQgYWxzbyBiZSBva2F5CisgIGRlYnVnKCc9PT4gVmFsdWUgc2V0IGJ5IGRpdiAibGFuZyIgdGFn
Li4uJyk7CisgIHNob3VsZEJlKCd3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgieSIpKS53ZWJraXRMb2NhbGUnLCAnImFyIicpCisgIGRlYnVnKCc9PT4gQWxs
IGRvbmUuLi4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFu
Z3VhZ2UtbXVsdGlwbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNj
L2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1YWdlLW11bHRpcGxlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kY2RiZWVkMTRmNjk5MDk4ZTcxOWMyNjU5YmVkOGI4YzIwMTFkNTViCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250
ZW50LWxhbmd1YWdlLW11bHRpcGxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0
IGZvciBidWcgOTc5Mjk6IEV4dHJhY3QgSFRUUCBDb250ZW50LUxhbmd1YWdlIGhlYWRlci4KKwor
PT0+IFZhbHVlIGV4dHJhY3RlZCBzaW5nbHkgZnJvbSBIVFRQICJDb250ZW50LUxhbmd1YWdlIiBo
ZWFkZXIuLi4KK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoIngiKSkud2Via2l0TG9jYWxlIGlzICJmciIKKz09PiBWYWx1ZSBzZXQgYnkgZGl2ICJs
YW5nIiB0YWcuLi4KK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInkiKSkud2Via2l0TG9jYWxlIGlzICJhciIKKz09PiBBbGwgZG9uZS4uLgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9leHRyYWN0LWh0dHAtY29udGVudC1sYW5n
dWFnZS1tdWx0aXBsZS5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1o
dHRwLWNvbnRlbnQtbGFuZ3VhZ2UtbXVsdGlwbGUucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2MDVjM2E0NWJk
NDBhNTZiZjg0MWFmMjkxMjYyOGRkYzM0NTljOTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2UtbXVsdGlw
bGUucGhwCkBAIC0wLDAgKzEsMjQgQEAKKzw/cGhwCisgIGhlYWRlcigiQ29udGVudC1MYW5ndWFn
ZTogIGZyIFx0ICwgZmkgIik7Cis/PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCB4bWxucz0iaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9q
cy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05NzkyOSI+YnVnIDk3OTI5PC9hPjoKK0V4dHJhY3QgSFRUUCBDb250ZW50LUxhbmd1
YWdlIGhlYWRlci48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxkaXYgaWQ9IngiPjwv
ZGl2PgorPGRpdiBpZD0ieSIgbGFuZz0iYXIiPjwvZGl2PgorPHNjcmlwdD4KKyAgZGVidWcoJz09
PiBWYWx1ZSBleHRyYWN0ZWQgc2luZ2x5IGZyb20gSFRUUCAiQ29udGVudC1MYW5ndWFnZSIgaGVh
ZGVyLi4uJyk7CisgIHNob3VsZEJlKCd3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgieCIpKS53ZWJraXRMb2NhbGUnLCAnImZyIicpCisgIGRlYnVnKCc9PT4g
VmFsdWUgc2V0IGJ5IGRpdiAibGFuZyIgdGFnLi4uJyk7CisgIHNob3VsZEJlKCd3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieSIpKS53ZWJraXRMb2NhbGUn
LCAnImFyIicpCisgIGRlYnVnKCc9PT4gQWxsIGRvbmUuLi4nKTsKKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21p
c2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2UucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1YWdlLnBocApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
YTExN2YyYzdiNWIzYjE4OGE0N2M2NWRjZjBkYjI2ZTRhNGExYzZiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1
YWdlLnBocApAQCAtMCwwICsxLDI0IEBACis8P3BocAorICBoZWFkZXIoIkNvbnRlbnQtTGFuZ3Vh
Z2U6IHpoLUNOIik7Cis/PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NzkyOSI+YnVnIDk3OTI5PC9hPjoKK0V4dHJhY3QgSFRUUCBDb250ZW50LUxhbmd1YWdlIGhl
YWRlci48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxkaXYgaWQ9IngiPjwvZGl2Pgor
PGRpdiBpZD0ieSIgbGFuZz0iYXIiPjwvZGl2PgorPHNjcmlwdD4KKyAgZGVidWcoJz09PiBWYWx1
ZSBleHRyYWN0ZWQgZnJvbSBIVFRQICJDb250ZW50LUxhbmd1YWdlIiBoZWFkZXIuLi4nKTsKKyAg
c2hvdWxkQmUoJ3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ4IikpLndlYmtpdExvY2FsZScsICciemgtQ04iJykKKyAgZGVidWcoJz09PiBWYWx1ZSBzZXQg
YnkgZGl2ICJsYW5nIiB0YWcuLi4nKTsKKyAgc2hvdWxkQmUoJ3dpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ5IikpLndlYmtpdExvY2FsZScsICciYXIiJykK
KyAgZGVidWcoJz09PiBBbGwgZG9uZS4uLicpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168973</attachid>
            <date>2012-10-16 10:47:50 -0700</date>
            <delta_ts>2012-10-18 12:54:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97929-20121016134638.patch</filename>
            <type>text/plain</type>
            <size>10968</size>
            <attacher name="Brian White">bcwhite</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBt
b2RlIDEwMDc1NQppbmRleCA3NzFjMGFiZDg3ODYzNzFiNTJhZWFhYjM5ZWY4NmRiMjY1ZGJiNDMw
Li5kMzczM2NkNmMyNjI1NjcyN2NhYWYxYjI2ZWVlMzU1NDU4YzA4NGE3Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAxMi0xMC0xNiAgQnJpYW4gV2hpdGUgIDxiY3doaXRlQGNocm9taXVtLm9yZz4K
KworICAgICAgICBXZWJLaXQgRG9lc24ndCBSZWNvZ25pemUgQ29udGVudC1MYW5ndWFnZSBIVFRQ
IEhlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTc5MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGUgSFRUUCAiQ29udGVudC1MYW5ndWFnZSIgaGVhZGVyIG1heSBiZSBwcmVzZW50IGFuZCBpbmNs
dWRlIHRoZQorICAgICAgICBsYW5ndWFnZSBvZiB0aGUgcGFnZSBjb250ZW50cyAoYXMgb3Bwb3Nl
ZCB0byBhbiBlbWJlZGRlZCBtZXRhIHRhZykuCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmRpZEJlZ2luRG9jdW1lbnQp
OgorCiAyMDEyLTEwLTAzICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgog
CiAgICAgICAgIEJ1aWxkIGZpeCBmb3IgV2luQ0UgYWZ0ZXIgcjEzMDE2MC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlvbXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlvbXMuaApvbGQgbW9kZSAxMDA2NDQKbmV3
IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApvbGQgbW9kZSAx
MDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IGRiMzliMjFmMmRkZjMwZGNhYTMwNmYzMTJkNWE1
ZmJmZGE2ZWVjZTYuLjNmOGVlMjE2MDVjY2NjZjJlMjYzNzU5ZjdiZThkNjM5YzM5Y2VjMjAKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC03MCw2ICs3MCw3IEBACiAjaW5jbHVkZSAi
SFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRN
TE9iamVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVk
ZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgogI2luY2x1ZGUgIklu
c3BlY3RvckNvbnRyb2xsZXIuaCIKQEAgLTY2NSw2ICs2NjYsMTUgQEAgdm9pZCBGcmFtZUxvYWRl
cjo6ZGlkQmVnaW5Eb2N1bWVudChib29sIGRpc3BhdGNoKQogICAgICAgICBTdHJpbmcgcmVwb3J0
T25seUNvbnRlbnRTZWN1cml0eVBvbGljeSA9IG1fZG9jdW1lbnRMb2FkZXItPnJlc3BvbnNlKCku
aHR0cEhlYWRlckZpZWxkKCJYLVdlYktpdC1DU1AtUmVwb3J0LU9ubHkiKTsKICAgICAgICAgaWYg
KCFyZXBvcnRPbmx5Q29udGVudFNlY3VyaXR5UG9saWN5LmlzRW1wdHkoKSkKICAgICAgICAgICAg
IG1fZnJhbWUtPmRvY3VtZW50KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5kaWRSZWNlaXZl
SGVhZGVyKHJlcG9ydE9ubHlDb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBv
bGljeTo6UmVwb3J0T25seSk7CisKKyAgICAgICAgU3RyaW5nIGhlYWRlckNvbnRlbnRMYW5ndWFn
ZSA9IG1fZG9jdW1lbnRMb2FkZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKCJDb250ZW50
LUxhbmd1YWdlIik7CisgICAgICAgIGlmICghaGVhZGVyQ29udGVudExhbmd1YWdlLmlzRW1wdHko
KSkgeworICAgICAgICAgICAgc2l6ZV90IGNvbW1hSW5kZXggPSBoZWFkZXJDb250ZW50TGFuZ3Vh
Z2UuZmluZCgnLCcpOworICAgICAgICAgICAgaGVhZGVyQ29udGVudExhbmd1YWdlLnRydW5jYXRl
KGNvbW1hSW5kZXgpOyAvLyBub3RGb3VuZCA9PSAtMSA9PSBkb24ndCB0cnVuY2F0ZQorICAgICAg
ICAgICAgaGVhZGVyQ29udGVudExhbmd1YWdlID0gaGVhZGVyQ29udGVudExhbmd1YWdlLnN0cmlw
V2hpdGVTcGFjZShpc0hUTUxTcGFjZSk7CisgICAgICAgICAgICBpZiAoIWhlYWRlckNvbnRlbnRM
YW5ndWFnZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+
c2V0Q29udGVudExhbmd1YWdlKGhlYWRlckNvbnRlbnRMYW5ndWFnZSk7CisgICAgICAgIH0KICAg
ICB9CiAKICAgICBoaXN0b3J5KCktPnJlc3RvcmVEb2N1bWVudFN0YXRlKCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3Vh
Z2UtYWdhaW5zdC1lcXVpdi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21p
c2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2UtYWdhaW5zdC1lcXVpdi1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGE1OTE1ZDI2Y2ZhODEzYjZjZDJhMGQxYzNhNzBkNzRmYzVjMjEyYQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9leHRyYWN0LWh0
dHAtY29udGVudC1sYW5ndWFnZS1hZ2FpbnN0LWVxdWl2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDExIEBACitUZXN0IGZvciBidWcgOTc5Mjk6IEV4dHJhY3QgSFRUUCBDb250ZW50LUxhbmd1YWdl
IGhlYWRlci4KKworPT0+IFZhbHVlIGV4dHJhY3RlZCBmcm9tIG1ldGEgImh0dHAtZXF1aXYiIGFu
ZCBvdmVycmlkaW5nIEhUVFAgIkNvbnRlbnQtTGFuZ3VhZ2UiLi4uCitQQVNTIHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4IikpLndlYmtpdExvY2FsZSBp
cyAiZW4tR0IiCis9PT4gVmFsdWUgc2V0IGJ5IGRpdiAibGFuZyIgdGFnLi4uCitQQVNTIHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ5IikpLndlYmtpdExv
Y2FsZSBpcyAiYXIiCis9PT4gQWxsIGRvbmUuLi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2UtYWdhaW5zdC1lcXVpdi5waHAg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3Vh
Z2UtYWdhaW5zdC1lcXVpdi5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWVlMDU2Njg3NzJlODA5ZWE0MzE5MTYx
NTlmZjFkZWZjM2U2Nzg4NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWlzYy9leHRyYWN0LWh0dHAtY29udGVudC1sYW5ndWFnZS1hZ2FpbnN0LWVxdWl2LnBocApA
QCAtMCwwICsxLDI1IEBACis8P3BocAorICBoZWFkZXIoIkNvbnRlbnQtTGFuZ3VhZ2U6IHpoLUNO
Iik7Cis/PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCI+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtbGFuZ3VhZ2Ui
IGNvbnRlbnQ9ImVuLUdCIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3QgZm9yIDxh
IGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzkyOSI+YnVn
IDk3OTI5PC9hPjoKK0V4dHJhY3QgSFRUUCBDb250ZW50LUxhbmd1YWdlIGhlYWRlci48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxkaXYgaWQ9IngiPjwvZGl2PgorPGRpdiBpZD0ieSIg
bGFuZz0iYXIiPjwvZGl2PgorPHNjcmlwdD4KKyAgZGVidWcoJz09PiBWYWx1ZSBleHRyYWN0ZWQg
ZnJvbSBtZXRhICJodHRwLWVxdWl2IiBhbmQgb3ZlcnJpZGluZyBIVFRQICJDb250ZW50LUxhbmd1
YWdlIi4uLicpOworICBzaG91bGRCZSgnd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoIngiKSkud2Via2l0TG9jYWxlJywgJyJlbi1HQiInKQorICBkZWJ1Zygn
PT0+IFZhbHVlIHNldCBieSBkaXYgImxhbmciIHRhZy4uLicpOworICBzaG91bGRCZSgnd2luZG93
LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInkiKSkud2Via2l0TG9j
YWxlJywgJyJhciInKQorICBkZWJ1ZygnPT0+IEFsbCBkb25lLi4uJyk7Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1YWdlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9leHRyYWN0LWh0dHAtY29udGVudC1sYW5ndWFnZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMWYxNjc4ZTFiMGI1ZWVkZTQ0MGI1MWJlOWU1MjNlNjRkZTEw
MzkxYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9leHRy
YWN0LWh0dHAtY29udGVudC1sYW5ndWFnZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAor
VGVzdCBmb3IgYnVnIDk3OTI5OiBFeHRyYWN0IEhUVFAgQ29udGVudC1MYW5ndWFnZSBoZWFkZXIu
CisKKz09PiBWYWx1ZSBleHRyYWN0ZWQgZnJvbSBIVFRQICJDb250ZW50LUxhbmd1YWdlIiBoZWFk
ZXIuLi4KK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoIngiKSkud2Via2l0TG9jYWxlIGlzICJ6aC1DTiIKKz09PiBWYWx1ZSBzZXQgYnkgZGl2ICJs
YW5nIiB0YWcuLi4KK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInkiKSkud2Via2l0TG9jYWxlIGlzICJhciIKKz09PiBBbGwgZG9uZS4uLgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9leHRyYWN0LWh0dHAtY29udGVudC1sYW5n
dWFnZS1tYWxmb3JtZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNj
L2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1YWdlLW1hbGZvcm1lZC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZmVjMzA4YjI5ZWFkMDdmNjBlZmY0OGQxNTYwNWM0NjhjMGQ0ZDdkZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9leHRyYWN0LWh0dHAtY29u
dGVudC1sYW5ndWFnZS1tYWxmb3JtZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rl
c3QgZm9yIGJ1ZyA5NzkyOTogRXh0cmFjdCBIVFRQIENvbnRlbnQtTGFuZ3VhZ2UgaGVhZGVyLgor
Cis9PT4gVmFsdWUgZXh0cmFjdGVkIGZyb20gbWFsZm9ybWVkIEhUVFAgIkNvbnRlbnQtTGFuZ3Vh
Z2UiIGhlYWRlci4uLgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgieCIpKS53ZWJraXRMb2NhbGUgPT0gImVzIiB8fCB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieCIpKS53ZWJraXRMb2NhbGUgPT0gImF1
dG8iIGlzIHRydWUKKz09PiBWYWx1ZSBzZXQgYnkgZGl2ICJsYW5nIiB0YWcuLi4KK1BBU1Mgd2lu
ZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInkiKSkud2Via2l0
TG9jYWxlIGlzICJhciIKKz09PiBBbGwgZG9uZS4uLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWlzYy9leHRyYWN0LWh0dHAtY29udGVudC1sYW5ndWFnZS1tYWxmb3JtZWQucGhwIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1YWdl
LW1hbGZvcm1lZC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWU1NzA1NDRhZWFmNGFhN2MyZTAzZmFmOTUwY2I5
MzQ0MjcyN2E2OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlz
Yy9leHRyYWN0LWh0dHAtY29udGVudC1sYW5ndWFnZS1tYWxmb3JtZWQucGhwCkBAIC0wLDAgKzEs
MjYgQEAKKzw/cGhwCisgIGhlYWRlcigiQ29udGVudC1MYW5ndWFnZTogLGVzIik7Cis/PgorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzkyOSI+YnVnIDk3OTI5PC9h
PjoKK0V4dHJhY3QgSFRUUCBDb250ZW50LUxhbmd1YWdlIGhlYWRlci48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxkaXYgaWQ9IngiPjwvZGl2PgorPGRpdiBpZD0ieSIgbGFuZz0iYXIi
PjwvZGl2PgorPHNjcmlwdD4KKyAgZGVidWcoJz09PiBWYWx1ZSBleHRyYWN0ZWQgZnJvbSBtYWxm
b3JtZWQgSFRUUCAiQ29udGVudC1MYW5ndWFnZSIgaGVhZGVyLi4uJyk7CisgIC8vIEEgbWFsZm9y
bWVkIGhlYWRlciBtYXkgYmUgZml4ZWQgYnkgdGhlIGJyb3dzZXIgKCJlcyIpIG9yIGxlZnQgYmFk
IGFuZCBzbyByZW1haW4gdW5zZXQgKCJhdXRvIikuCisgIC8vIENocm9tZSBkb2VzIHRoZSBmb3Jt
ZXI7IFNhZmFyaSBkb2VzIHRoZSBsYXR0ZXIuCisgIHNob3VsZEJlVHJ1ZSgnd2luZG93LmdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIngiKSkud2Via2l0TG9jYWxlID09
ICJlcyIgfHwgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
IngiKSkud2Via2l0TG9jYWxlID09ICJhdXRvIicpCisgIGRlYnVnKCc9PT4gVmFsdWUgc2V0IGJ5
IGRpdiAibGFuZyIgdGFnLi4uJyk7CisgIHNob3VsZEJlKCd3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieSIpKS53ZWJraXRMb2NhbGUnLCAnImFyIicpCisg
IGRlYnVnKCc9PT4gQWxsIGRvbmUuLi4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1o
dHRwLWNvbnRlbnQtbGFuZ3VhZ2UtbXVsdGlwbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1YWdlLW11bHRpcGxlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kY2RiZWVkMTRmNjk5MDk4ZTcxOWMyNjU5YmVkOGI4YzIw
MTFkNTViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4
dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1YWdlLW11bHRpcGxlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDExIEBACitUZXN0IGZvciBidWcgOTc5Mjk6IEV4dHJhY3QgSFRUUCBDb250ZW50LUxhbmd1
YWdlIGhlYWRlci4KKworPT0+IFZhbHVlIGV4dHJhY3RlZCBzaW5nbHkgZnJvbSBIVFRQICJDb250
ZW50LUxhbmd1YWdlIiBoZWFkZXIuLi4KK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIngiKSkud2Via2l0TG9jYWxlIGlzICJmciIKKz09PiBWYWx1
ZSBzZXQgYnkgZGl2ICJsYW5nIiB0YWcuLi4KK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInkiKSkud2Via2l0TG9jYWxlIGlzICJhciIKKz09PiBB
bGwgZG9uZS4uLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9leHRyYWN0LWh0
dHAtY29udGVudC1sYW5ndWFnZS1tdWx0aXBsZS5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2UtbXVsdGlwbGUucGhwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjM2MDVjM2E0NWJkNDBhNTZiZjg0MWFmMjkxMjYyOGRkYzM0NTljOTUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQt
bGFuZ3VhZ2UtbXVsdGlwbGUucGhwCkBAIC0wLDAgKzEsMjQgQEAKKzw/cGhwCisgIGhlYWRlcigi
Q29udGVudC1MYW5ndWFnZTogIGZyIFx0ICwgZmkgIik7Cis/PgorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzkyOSI+YnVnIDk3OTI5PC9hPjoKK0V4dHJhY3QgSFRU
UCBDb250ZW50LUxhbmd1YWdlIGhlYWRlci48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxkaXYgaWQ9IngiPjwvZGl2PgorPGRpdiBpZD0ieSIgbGFuZz0iYXIiPjwvZGl2PgorPHNjcmlw
dD4KKyAgZGVidWcoJz09PiBWYWx1ZSBleHRyYWN0ZWQgc2luZ2x5IGZyb20gSFRUUCAiQ29udGVu
dC1MYW5ndWFnZSIgaGVhZGVyLi4uJyk7CisgIHNob3VsZEJlKCd3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieCIpKS53ZWJraXRMb2NhbGUnLCAnImZyIicp
CisgIGRlYnVnKCc9PT4gVmFsdWUgc2V0IGJ5IGRpdiAibGFuZyIgdGFnLi4uJyk7CisgIHNob3Vs
ZEJlKCd3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieSIp
KS53ZWJraXRMb2NhbGUnLCAnImFyIicpCisgIGRlYnVnKCc9PT4gQWxsIGRvbmUuLi4nKTsKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21pc2MvZXh0cmFjdC1odHRwLWNvbnRlbnQtbGFuZ3VhZ2UucGhwIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0cC1jb250ZW50LWxhbmd1YWdlLnBo
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yYTExN2YyYzdiNWIzYjE4OGE0N2M2NWRjZjBkYjI2ZTRhNGExYzZiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2V4dHJhY3QtaHR0
cC1jb250ZW50LWxhbmd1YWdlLnBocApAQCAtMCwwICsxLDI0IEBACis8P3BocAorICBoZWFkZXIo
IkNvbnRlbnQtTGFuZ3VhZ2U6IHpoLUNOIik7Cis/PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NzkyOSI+YnVnIDk3OTI5PC9hPjoKK0V4dHJhY3QgSFRUUCBDb250
ZW50LUxhbmd1YWdlIGhlYWRlci48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxkaXYg
aWQ9IngiPjwvZGl2PgorPGRpdiBpZD0ieSIgbGFuZz0iYXIiPjwvZGl2PgorPHNjcmlwdD4KKyAg
ZGVidWcoJz09PiBWYWx1ZSBleHRyYWN0ZWQgZnJvbSBIVFRQICJDb250ZW50LUxhbmd1YWdlIiBo
ZWFkZXIuLi4nKTsKKyAgc2hvdWxkQmUoJ3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ4IikpLndlYmtpdExvY2FsZScsICciemgtQ04iJykKKyAgZGVidWco
Jz09PiBWYWx1ZSBzZXQgYnkgZGl2ICJsYW5nIiB0YWcuLi4nKTsKKyAgc2hvdWxkQmUoJ3dpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ5IikpLndlYmtpdExv
Y2FsZScsICciYXIiJykKKyAgZGVidWcoJz09PiBBbGwgZG9uZS4uLicpOworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>