<?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>89625</bug_id>
          
          <creation_ts>2012-06-20 18:09:50 -0700</creation_ts>
          <short_desc>IndexedDB: Avoid infinite loop if we try to encode -1 for leveldb</short_desc>
          <delta_ts>2012-06-22 18:17:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Grogan">dgrogan</reporter>
          <assigned_to name="David Grogan">dgrogan</assigned_to>
          <cc>alecflett</cc>
    
    <cc>jsbell</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>654084</commentid>
    <comment_count>0</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-06-20 18:09:50 -0700</bug_when>
    <thetext>IndexedDB: Avoid infinite loop if we try to encode -1 for leveldb</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654093</commentid>
    <comment_count>1</comment_count>
      <attachid>148698</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-06-20 18:18:26 -0700</bug_when>
    <thetext>Created attachment 148698
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654095</commentid>
    <comment_count>2</comment_count>
      <attachid>148698</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-06-20 18:20:02 -0700</bug_when>
    <thetext>Comment on attachment 148698
Patch

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

&gt; Source/WebKit/chromium/tests/IDBLevelDBCodingTest.cpp:142
&gt; +#ifdef NDEBUG

Do any bots run webkit_unit_tests in release mode?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654117</commentid>
    <comment_count>3</comment_count>
      <attachid>148702</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-06-20 18:40:32 -0700</bug_when>
    <thetext>Created attachment 148702
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654121</commentid>
    <comment_count>4</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-06-20 18:42:05 -0700</bug_when>
    <thetext>If this passes the ews bots could one of you take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654578</commentid>
    <comment_count>5</comment_count>
      <attachid>148702</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-06-21 09:02:54 -0700</bug_when>
    <thetext>Comment on attachment 148702
Patch

LGTM - that&apos;s neat, I had never seen that use of static_cast, but I found this explanation here:
http://stackoverflow.com/questions/1751346/interpret-signed-as-unsigned

(it&apos;s too bad you have to #ifdef NDEBUG the tests though - I can&apos;t think of an easy way around it though?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654595</commentid>
    <comment_count>6</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-06-21 09:31:51 -0700</bug_when>
    <thetext>The NDEBUG tests make me uneasy. IMHO either the API should support negative values or it shouldn&apos;t, and tests should match. 

Is it not possible to change the method signatures to unsigned and get one of the compilers (preferably clang on Linux...) to report an error if you call it with a signed value?

Alternately, the method could be changed to take unsigned and we ASSERT(static_cast&lt;int64_t&gt;(n) &gt;= 0) - then we&apos;re catching bad callers (that the compiler SHOULD have complained about, *grumble*) but at least we&apos;re not lying in the method signature. The test would still need to be NDEBUG, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654926</commentid>
    <comment_count>7</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-06-21 15:16:25 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; The NDEBUG tests make me uneasy. IMHO either the API should support negative values or it shouldn&apos;t, and tests should match.
&gt;
&gt; Is it not possible to change the method signatures to unsigned and get one of the compilers (preferably clang on Linux...) to report an error if you call it with a signed value?

I think this happens already, if the parameter type is changed to uint64_t and you call it with a variable of type int64_t, clang gives a compiler error.

&gt; 
&gt; Alternately, the method could be changed to take unsigned and we ASSERT(static_cast&lt;int64_t&gt;(n) &gt;= 0) - then we&apos;re catching bad callers (that the compiler SHOULD have complained about, *grumble*) but at least we&apos;re not lying in the method signature. The test would still need to be NDEBUG, though.

I don&apos;t understand the difference between this and the idea in the previous paragraph.

In any case, this was my original approach. I have a half-done patch that changes the function to specify a uint64_t parameter and includes ASSERT(n &lt;= INT64_MAX).  That approach required changing the type of a million variables in IDBLevelDBBackingStore and IDBLevelDBCoding from int64_t to uint64_t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655766</commentid>
    <comment_count>8</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-06-22 14:26:20 -0700</bug_when>
    <thetext>Is this patch ok as is?  Any requests before I ask Tony to review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655788</commentid>
    <comment_count>9</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-06-22 14:43:04 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Is this patch ok as is?  Any requests before I ask Tony to review?

Yes, sorry.

For the record, we discussed offline and tested. The current C++ compilers we tested (gcc, clang) don&apos;t issue a warning if a signed value (e.g. an int64_t) is passed to a function that takes unsigned (e.g. uint64_t). This means that changing the function signature doesn&apos;t buy us anything in terms of safety - we&apos;d still want an assert.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655797</commentid>
    <comment_count>10</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-06-22 14:47:16 -0700</bug_when>
    <thetext>Tony, could you review this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655821</commentid>
    <comment_count>11</comment_count>
      <attachid>148702</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-06-22 15:13:21 -0700</bug_when>
    <thetext>Comment on attachment 148702
Patch

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

&gt; Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.cpp:199
&gt; +    ASSERT(nParam &gt;= 0);

The ASSERT suggests that non-positive values are not valid input into the function.  If that&apos;s the case, why do we need the defensive coding (the static_cast)?  If there are legitimate ways to call this function with negative numbers, then we should remove the ASSERT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655826</commentid>
    <comment_count>12</comment_count>
      <attachid>148702</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-06-22 15:18:21 -0700</bug_when>
    <thetext>Comment on attachment 148702
Patch

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

&gt;&gt; Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.cpp:199
&gt;&gt; +    ASSERT(nParam &gt;= 0);
&gt; 
&gt; The ASSERT suggests that non-positive values are not valid input into the function.  If that&apos;s the case, why do we need the defensive coding (the static_cast)?  If there are legitimate ways to call this function with negative numbers, then we should remove the ASSERT.

A call to this function with a negative value indicates a logic error somewhere in the IDB code. Are you saying that means that the static_cast can (and should?) be removed?
uint64_t n = nParam;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655830</commentid>
    <comment_count>13</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-06-22 15:23:07 -0700</bug_when>
    <thetext>Some more background:

A call to this function with a negative value indicates a logic error somewhere in the IDB code and would be caught with an ASSERT, in debug mode.

But we&apos;ve had an undetected logic error that caused -1 to be passed to that function in a release build. An infinite loop followed. The cast to uint64_t just guards against our logic errors causing the thread to enter an infinite loop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655840</commentid>
    <comment_count>14</comment_count>
      <attachid>148702</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-06-22 15:30:03 -0700</bug_when>
    <thetext>Comment on attachment 148702
Patch

I think this is OK, but I worry that you&apos;re effectively ignoring the logic error in release builds and it could cascade into other logic errors.  Ideally, you would abort or throw an exception or something, but that might not be possible at this point in the code.

Another possibility is to use CRASH() to kill the process in release builds. That has the downside that the user might lose data, but at least we would get a stack trace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655900</commentid>
    <comment_count>15</comment_count>
      <attachid>149132</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-06-22 16:23:10 -0700</bug_when>
    <thetext>Created attachment 149132
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655936</commentid>
    <comment_count>16</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-06-22 16:56:58 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 148702 [details])
&gt; I think this is OK, but I worry that you&apos;re effectively ignoring the logic error in release builds and it could cascade into other logic errors.

Valid concern. As a mitigating factor, in the one scenario we saw this it was part of a cascade from a different error that was obscured by the infinite loop.  So the hope is that that pattern will continue, that this change will make finding errors easier, not harder.

&gt; Ideally, you would abort or throw an exception or something, but that might not be possible at this point in the code.

Good point, I found one place that we could detect this and surface the error easily and added it to the patch.

&gt; Another possibility is to use CRASH() to kill the process in release builds. That has the downside that the user might lose data, but at least we would get a stack trace.

I considered this.  Comparing the scenario of a bad user experience with CRASH() + benefit of getting a stack trace vs scenario of unknown user experience (might even be totally fine) + potentially more difficult debugging, my gut said go with the latter.  Who knows though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655941</commentid>
    <comment_count>17</comment_count>
      <attachid>149132</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-22 17:08:32 -0700</bug_when>
    <thetext>Comment on attachment 149132
Patch for landing

Rejecting attachment 149132 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1

Last 500 characters of output:
  return self.open(self.click(*args, **kwds))
  File &quot;/mnt/git/webkit-commit-queue/Tools/Scripts/webkitpy/thirdparty/autoinstalled/mechanize/_mechanize.py&quot;, line 203, in open
    return self._mech_open(url, data, timeout=timeout)
  File &quot;/mnt/git/webkit-commit-queue/Tools/Scripts/webkitpy/thirdparty/autoinstalled/mechanize/_mechanize.py&quot;, line 255, in _mech_open
    raise response
webkitpy.thirdparty.autoinstalled.mechanize._response.httperror_seek_wrapper: HTTP Error 500: Internal Server Error

Full output: http://queues.webkit.org/results/13032561</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655952</commentid>
    <comment_count>18</comment_count>
      <attachid>149146</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-06-22 17:27:02 -0700</bug_when>
    <thetext>Created attachment 149146
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655973</commentid>
    <comment_count>19</comment_count>
      <attachid>149146</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-22 18:16:53 -0700</bug_when>
    <thetext>Comment on attachment 149146
Patch for landing

Clearing flags on attachment: 149146

Committed r121082: &lt;http://trac.webkit.org/changeset/121082&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655974</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-22 18:17:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148698</attachid>
            <date>2012-06-20 18:18:26 -0700</date>
            <delta_ts>2012-06-20 18:40:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89625-20120620181825.patch</filename>
            <type>text/plain</type>
            <size>3701</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwODczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODg0YTRlOWE3YzdmNmUw
OWNlZmU3YTE3YjA0ZWU0NWQ2ZjIxYmU4Ny4uYTFlYjcyNTU4ODY3ZWJjOGZhNmRlOWFiMDg0ZGFl
ZDI3MWIyM2FiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA2LTIwICBEYXZp
ZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEF2
b2lkIGluZmluaXRlIGxvb3AgaWYgd2UgdHJ5IHRvIGVuY29kZSAtMSBmb3IgbGV2ZWxkYgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk2MjUKKworICAg
ICAgICBJdCBnZXRzIHdvcnNlLCBtZW1vcnkgaXMgYWxsb2NhdGVkIGluc2lkZSB0aGUgbG9vcCBz
byB0aGUgcHJvY2VzcyBpcworICAgICAgICBldmVudHVhbGx5IGtpbGxlZCBieSB0aGUgT1MuCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVz
dHMgdG8gU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJMZXZlbERCQ29kaW5nVGVzdC5j
cHAKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2RpbmcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SURCTGV2ZWxEQkNvZGluZzo6ZW5jb2RlSW50KToKKyAgICAgICAg
KFdlYkNvcmU6OklEQkxldmVsREJDb2Rpbmc6OmVuY29kZVZhckludCk6CisKIDIwMTItMDYtMjAg
IFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTGV0IFhDb2RlIGhh
dmUgaXRzIG93biB3YXkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDY4MzQ2YWU3NWVh
ZmQzOGJhNzU1ZjkxZWJkNmJkYWZhMDQ2NTk5YmQuLmI4NDJmMTg0ZGJkZjQxODQ5NmFjMGQ5Zjlj
M2M1ZjQxMGY3MmQxNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTItMDYtMjAgIERhdmlkIEdyb2dhbiAgPGRncm9nYW5AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIEluZGV4ZWREQjogQXZvaWQgaW5maW5pdGUgbG9vcCBpZiB3ZSB0cnkgdG8gZW5jb2Rl
IC0xIGZvciBsZXZlbGRiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04OTYyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogdGVzdHMvSURCTGV2ZWxEQkNvZGluZ1Rlc3QuY3BwOgorICAgICAgICAoSURCTGV2
ZWxEQkNvZGluZzo6VEVTVCk6CisKIDIwMTItMDYtMTkgIEphbWVzIFJvYmluc29uICA8amFtZXNy
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFNlcGFyYXRlIExheWVyUmVuZGVy
ZXIgaW5pdGlhbGl6YXRpb24gZnJvbSB1cGRhdGVMYXllcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2RpbmcuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkNvZGluZy5jcHAKaW5kZXggNDdjOWY3
ZDNkMWY0ZjFkNmEyMjExOGY2NDE5ODFkMzU3NWVlNWRhNy4uZDcyNzY3Y2JhZmJkYjhhNjAzYmQ0
MTFjZWY1ZDQxMjNjMGQwMTJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCTGV2ZWxEQkNvZGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCTGV2ZWxEQkNvZGluZy5jcHAKQEAgLTE5NCw5ICsxOTQsMTAgQEAgYm9v
bCBkZWNvZGVCb29sKGNvbnN0IGNoYXIqIGJlZ2luLCBjb25zdCBjaGFyKiBlbmQpCiAgICAgcmV0
dXJuICpiZWdpbjsKIH0KIAotVmVjdG9yPGNoYXI+IGVuY29kZUludChpbnQ2NF90IG4pCitWZWN0
b3I8Y2hhcj4gZW5jb2RlSW50KGludDY0X3QgblBhcmFtKQogewotICAgIEFTU0VSVChuID49IDAp
OworICAgIEFTU0VSVChuUGFyYW0gPj0gMCk7CisgICAgdWludDY0X3QgbiA9IG5QYXJhbTsKICAg
ICBWZWN0b3I8Y2hhcj4gcmV0OyAvLyBGSVhNRTogU2l6ZSB0aGlzIGF0IGNyZWF0aW9uLgogCiAg
ICAgZG8gewpAQCAtMjM2LDggKzIzNywxMCBAQCBzdGF0aWMgaW50IGNvbXBhcmVJbnRzKGludDY0
X3QgYSwgaW50NjRfdCBiKQogICAgIHJldHVybiAwOwogfQogCi1WZWN0b3I8Y2hhcj4gZW5jb2Rl
VmFySW50KGludDY0X3QgbikKK1ZlY3RvcjxjaGFyPiBlbmNvZGVWYXJJbnQoaW50NjRfdCBuUGFy
YW0pCiB7CisgICAgQVNTRVJUKG5QYXJhbSA+PSAwKTsKKyAgICB1aW50NjRfdCBuID0gblBhcmFt
OwogICAgIFZlY3RvcjxjaGFyPiByZXQ7IC8vIEZJWE1FOiBTaXplIHRoaXMgYXQgY3JlYXRpb24u
CiAKICAgICBkbyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lE
QkxldmVsREJDb2RpbmdUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURC
TGV2ZWxEQkNvZGluZ1Rlc3QuY3BwCmluZGV4IDk5MzRlNWM3OWNhNTJkNDNkNTAxNGU4YzU2Zjk1
M2RlYTdkOGJhNGYuLjM4MjVlZmM0OTY4MDFlMGIzOWJkNTA0OTE5ZTQ4ODEyZTMyYWJmMzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCTGV2ZWxEQkNvZGluZ1Rl
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCTGV2ZWxEQkNvZGlu
Z1Rlc3QuY3BwCkBAIC0xMzksNiArMTM5LDkgQEAgVEVTVChJREJMZXZlbERCQ29kaW5nVGVzdCwg
RW5jb2RlSW50KQogICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDxzaXplX3Q+KDEpLCBlbmNvZGVJ
bnQoMjU1KS5zaXplKCkpOwogICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDxzaXplX3Q+KDIpLCBl
bmNvZGVJbnQoMjU2KS5zaXplKCkpOwogICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDxzaXplX3Q+
KDQpLCBlbmNvZGVJbnQoMHhmZmZmZmZmZikuc2l6ZSgpKTsKKyNpZmRlZiBOREVCVUcKKyAgICBF
WFBFQ1RfRVEoc3RhdGljX2Nhc3Q8c2l6ZV90Pig4KSwgZW5jb2RlSW50KC0xKS5zaXplKCkpOwor
I2VuZGlmCiB9CiAKIFRFU1QoSURCTGV2ZWxEQkNvZGluZ1Rlc3QsIERlY29kZUJvb2wpCkBAIC0x
ODEsNiArMTg0LDkgQEAgVEVTVChJREJMZXZlbERCQ29kaW5nVGVzdCwgRW5jb2RlVmFySW50KQog
ICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDxzaXplX3Q+KDIpLCBlbmNvZGVWYXJJbnQoMjU1KS5z
aXplKCkpOwogICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDxzaXplX3Q+KDIpLCBlbmNvZGVWYXJJ
bnQoMjU2KS5zaXplKCkpOwogICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDxzaXplX3Q+KDUpLCBl
bmNvZGVWYXJJbnQoMHhmZmZmZmZmZikuc2l6ZSgpKTsKKyNpZmRlZiBOREVCVUcKKyAgICBFWFBF
Q1RfRVEoc3RhdGljX2Nhc3Q8c2l6ZV90Pig4KSwgZW5jb2RlSW50KC0xMDApLnNpemUoKSk7Cisj
ZW5kaWYKIH0KIAogVEVTVChJREJMZXZlbERCQ29kaW5nVGVzdCwgRGVjb2RlVmFySW50KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148702</attachid>
            <date>2012-06-20 18:40:32 -0700</date>
            <delta_ts>2012-06-22 16:22:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89625-20120620184032.patch</filename>
            <type>text/plain</type>
            <size>4390</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwODczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODg0YTRlOWE3YzdmNmUw
OWNlZmU3YTE3YjA0ZWU0NWQ2ZjIxYmU4Ny4uYTFlYjcyNTU4ODY3ZWJjOGZhNmRlOWFiMDg0ZGFl
ZDI3MWIyM2FiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA2LTIwICBEYXZp
ZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEF2
b2lkIGluZmluaXRlIGxvb3AgaWYgd2UgdHJ5IHRvIGVuY29kZSAtMSBmb3IgbGV2ZWxkYgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk2MjUKKworICAg
ICAgICBJdCBnZXRzIHdvcnNlLCBtZW1vcnkgaXMgYWxsb2NhdGVkIGluc2lkZSB0aGUgbG9vcCBz
byB0aGUgcHJvY2VzcyBpcworICAgICAgICBldmVudHVhbGx5IGtpbGxlZCBieSB0aGUgT1MuCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVz
dHMgdG8gU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJMZXZlbERCQ29kaW5nVGVzdC5j
cHAKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2RpbmcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SURCTGV2ZWxEQkNvZGluZzo6ZW5jb2RlSW50KToKKyAgICAgICAg
KFdlYkNvcmU6OklEQkxldmVsREJDb2Rpbmc6OmVuY29kZVZhckludCk6CisKIDIwMTItMDYtMjAg
IFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTGV0IFhDb2RlIGhh
dmUgaXRzIG93biB3YXkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDY4MzQ2YWU3NWVh
ZmQzOGJhNzU1ZjkxZWJkNmJkYWZhMDQ2NTk5YmQuLmI4NDJmMTg0ZGJkZjQxODQ5NmFjMGQ5Zjlj
M2M1ZjQxMGY3MmQxNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTItMDYtMjAgIERhdmlkIEdyb2dhbiAgPGRncm9nYW5AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIEluZGV4ZWREQjogQXZvaWQgaW5maW5pdGUgbG9vcCBpZiB3ZSB0cnkgdG8gZW5jb2Rl
IC0xIGZvciBsZXZlbGRiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04OTYyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogdGVzdHMvSURCTGV2ZWxEQkNvZGluZ1Rlc3QuY3BwOgorICAgICAgICAoSURCTGV2
ZWxEQkNvZGluZzo6VEVTVCk6CisKIDIwMTItMDYtMTkgIEphbWVzIFJvYmluc29uICA8amFtZXNy
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFNlcGFyYXRlIExheWVyUmVuZGVy
ZXIgaW5pdGlhbGl6YXRpb24gZnJvbSB1cGRhdGVMYXllcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2RpbmcuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkNvZGluZy5jcHAKaW5kZXggNDdjOWY3
ZDNkMWY0ZjFkNmEyMjExOGY2NDE5ODFkMzU3NWVlNWRhNy4uMjhkMmUwODU3NDRhY2FlMmRiNmNk
ZDYwZWVmOGZkYTk4YjQ3NDAyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCTGV2ZWxEQkNvZGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCTGV2ZWxEQkNvZGluZy5jcHAKQEAgLTE5NCw5ICsxOTQsMTAgQEAgYm9v
bCBkZWNvZGVCb29sKGNvbnN0IGNoYXIqIGJlZ2luLCBjb25zdCBjaGFyKiBlbmQpCiAgICAgcmV0
dXJuICpiZWdpbjsKIH0KIAotVmVjdG9yPGNoYXI+IGVuY29kZUludChpbnQ2NF90IG4pCitWZWN0
b3I8Y2hhcj4gZW5jb2RlSW50KGludDY0X3QgblBhcmFtKQogewotICAgIEFTU0VSVChuID49IDAp
OworICAgIEFTU0VSVChuUGFyYW0gPj0gMCk7CisgICAgdWludDY0X3QgbiA9IHN0YXRpY19jYXN0
PHVpbnQ2NF90PihuUGFyYW0pOwogICAgIFZlY3RvcjxjaGFyPiByZXQ7IC8vIEZJWE1FOiBTaXpl
IHRoaXMgYXQgY3JlYXRpb24uCiAKICAgICBkbyB7CkBAIC0yMzYsOCArMjM3LDEwIEBAIHN0YXRp
YyBpbnQgY29tcGFyZUludHMoaW50NjRfdCBhLCBpbnQ2NF90IGIpCiAgICAgcmV0dXJuIDA7CiB9
CiAKLVZlY3RvcjxjaGFyPiBlbmNvZGVWYXJJbnQoaW50NjRfdCBuKQorVmVjdG9yPGNoYXI+IGVu
Y29kZVZhckludChpbnQ2NF90IG5QYXJhbSkKIHsKKyAgICBBU1NFUlQoblBhcmFtID49IDApOwor
ICAgIHVpbnQ2NF90IG4gPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oblBhcmFtKTsKICAgICBWZWN0
b3I8Y2hhcj4gcmV0OyAvLyBGSVhNRTogU2l6ZSB0aGlzIGF0IGNyZWF0aW9uLgogCiAgICAgZG8g
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJMZXZlbERCQ29k
aW5nVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkxldmVsREJDb2Rp
bmdUZXN0LmNwcAppbmRleCA5OTM0ZTVjNzljYTUyZDQzZDUwMTRlOGM1NmY5NTNkZWE3ZDhiYTRm
Li5hMzRiNDM2YmRhYWI2MTI5MTMwMWM4MzdlYzM1ZmViZDg2MjAzZmYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkxldmVsREJDb2RpbmdUZXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkxldmVsREJDb2RpbmdUZXN0LmNwcApA
QCAtMTM5LDYgKzEzOSw5IEBAIFRFU1QoSURCTGV2ZWxEQkNvZGluZ1Rlc3QsIEVuY29kZUludCkK
ICAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8c2l6ZV90PigxKSwgZW5jb2RlSW50KDI1NSkuc2l6
ZSgpKTsKICAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8c2l6ZV90PigyKSwgZW5jb2RlSW50KDI1
Nikuc2l6ZSgpKTsKICAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8c2l6ZV90Pig0KSwgZW5jb2Rl
SW50KDB4ZmZmZmZmZmYpLnNpemUoKSk7CisjaWZkZWYgTkRFQlVHCisgICAgRVhQRUNUX0VRKHN0
YXRpY19jYXN0PHNpemVfdD4oOCksIGVuY29kZUludCgtMSkuc2l6ZSgpKTsKKyNlbmRpZgogfQog
CiBURVNUKElEQkxldmVsREJDb2RpbmdUZXN0LCBEZWNvZGVCb29sKQpAQCAtMTY2LDYgKzE2OSw5
IEBAIFRFU1QoSURCTGV2ZWxEQkNvZGluZ1Rlc3QsIERlY29kZUludCkKICAgICB0ZXN0Q2FzZXMu
YXBwZW5kKDY1NTUzNik7CiAgICAgdGVzdENhc2VzLmFwcGVuZCg3NzExMTkyNDMxNzU1NjY1Nzky
bGwpOwogICAgIHRlc3RDYXNlcy5hcHBlbmQoMHg3ZmZmZmZmZmZmZmZmZmZmbGwpOworI2lmZGVm
IE5ERUJVRworICAgIHRlc3RDYXNlcy5hcHBlbmQoLTMpOworI2VuZGlmCiAKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHRlc3RDYXNlcy5zaXplKCk7ICsraSkgewogICAgICAgICBpbnQ2NF90
IG4gPSB0ZXN0Q2FzZXNbaV07CkBAIC0xODEsNiArMTg3LDkgQEAgVEVTVChJREJMZXZlbERCQ29k
aW5nVGVzdCwgRW5jb2RlVmFySW50KQogICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDxzaXplX3Q+
KDIpLCBlbmNvZGVWYXJJbnQoMjU1KS5zaXplKCkpOwogICAgIEVYUEVDVF9FUShzdGF0aWNfY2Fz
dDxzaXplX3Q+KDIpLCBlbmNvZGVWYXJJbnQoMjU2KS5zaXplKCkpOwogICAgIEVYUEVDVF9FUShz
dGF0aWNfY2FzdDxzaXplX3Q+KDUpLCBlbmNvZGVWYXJJbnQoMHhmZmZmZmZmZikuc2l6ZSgpKTsK
KyNpZmRlZiBOREVCVUcKKyAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8c2l6ZV90Pig4KSwgZW5j
b2RlSW50KC0xMDApLnNpemUoKSk7CisjZW5kaWYKIH0KIAogVEVTVChJREJMZXZlbERCQ29kaW5n
VGVzdCwgRGVjb2RlVmFySW50KQpAQCAtMTk0LDYgKzIwMyw5IEBAIFRFU1QoSURCTGV2ZWxEQkNv
ZGluZ1Rlc3QsIERlY29kZVZhckludCkKICAgICB0ZXN0Q2FzZXMuYXBwZW5kKDY1NTUzNik7CiAg
ICAgdGVzdENhc2VzLmFwcGVuZCg3NzExMTkyNDMxNzU1NjY1NzkybGwpOwogICAgIHRlc3RDYXNl
cy5hcHBlbmQoMHg3ZmZmZmZmZmZmZmZmZmZmbGwpOworI2lmZGVmIE5ERUJVRworICAgIHRlc3RD
YXNlcy5hcHBlbmQoLTMpOworI2VuZGlmCiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRl
c3RDYXNlcy5zaXplKCk7ICsraSkgewogICAgICAgICBpbnQ2NF90IG4gPSB0ZXN0Q2FzZXNbaV07
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149132</attachid>
            <date>2012-06-22 16:23:10 -0700</date>
            <delta_ts>2012-06-22 17:26:58 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-89625-20120622162310.patch</filename>
            <type>text/plain</type>
            <size>5140</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDAyNGY0YWI4NTNmMGU2
NmI4YzdhNGUzMDk5MGVkNDRjZDlhNTkxOS4uMjEwYzFjMmRmNDNkYzRmNmQ5OGE1ZDU3MGI5MzBm
MjNiM2YwMjk1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA2LTIwICBEYXZp
ZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEF2
b2lkIGluZmluaXRlIGxvb3AgaWYgd2UgdHJ5IHRvIGVuY29kZSAtMSBmb3IgbGV2ZWxkYgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk2MjUKKworICAg
ICAgICBJdCBnZXRzIHdvcnNlLCBtZW1vcnkgaXMgYWxsb2NhdGVkIGluc2lkZSB0aGUgbG9vcCBz
byB0aGUgcHJvY2VzcyBpcworICAgICAgICBldmVudHVhbGx5IGtpbGxlZCBieSB0aGUgT1MuCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KKworICAgICAgICBBZGRlZCB0ZXN0cyB0
byBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkxldmVsREJDb2RpbmdUZXN0LmNwcAor
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkNvZGluZy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJMZXZlbERCQ29kaW5nOjplbmNvZGVJbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCTGV2ZWxEQkNvZGluZzo6ZW5jb2RlVmFySW50KToKKwogMjAxMi0wNi0yMiAgU2hh
d24gU2luZ2ggIDxzaGF3bnNpbmdoQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1d
IERvIG5vdCBhY2N1bXVsYXRlIG9jY2x1c2lvbiBmcm9tIDNkIGxheWVycyBvbiB0aGUgbWFpbiB0
aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMGQwNWJiYzBiMzMyODEyZTllOWY1
NGRjNjJhYzBiM2Q0NTg4Yzg0MC4uNWE5MzU1M2ZhZDhmYzZkNDExOTBiNjA4YWY5ZGQ4M2M5Njlm
ZWMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0w
Ni0yMCAgRGF2aWQgR3JvZ2FuICA8ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5k
ZXhlZERCOiBBdm9pZCBpbmZpbml0ZSBsb29wIGlmIHdlIHRyeSB0byBlbmNvZGUgLTEgZm9yIGxl
dmVsZGIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5
NjI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KKworICAgICAgICAqIHRlc3Rz
L0lEQkxldmVsREJDb2RpbmdUZXN0LmNwcDoKKyAgICAgICAgKElEQkxldmVsREJDb2Rpbmc6OlRF
U1QpOgorCiAyMDEyLTA2LTIyICBTaGF3biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFtjaHJvbWl1bV0gRG8gbm90IGFjY3VtdWxhdGUgb2NjbHVzaW9uIGZyb20g
M2QgbGF5ZXJzIG9uIHRoZSBtYWluIHRocmVhZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNwcAppbmRleCA4
ZGNiNDYwNWMwYWM3YzMwMzIxNDJlZjQ0MmMyMTI2MzQzODU5YjU3Li5jNDRhNGM5ZGU1ODVjMjNh
YWVhYTBkYzQyNDM3ZDlhNWQ5MzY1MjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNwcApAQCAtNzcs
NiArNzcsOSBAQCBzdGF0aWMgYm9vbCBnZXRJbnQoREJPclRyYW5zYWN0aW9uKiBkYiwgY29uc3Qg
VmVjdG9yPGNoYXI+JiBrZXksIGludDY0X3QmIGZvdW5kSQogdGVtcGxhdGUgPHR5cGVuYW1lIERC
T3JUcmFuc2FjdGlvbj4KIHN0YXRpYyBib29sIHB1dEludChEQk9yVHJhbnNhY3Rpb24qIGRiLCBj
b25zdCBWZWN0b3I8Y2hhcj4mIGtleSwgaW50NjRfdCB2YWx1ZSkKIHsKKyAgICBBU1NFUlQodmFs
dWUgPj0gMCk7CisgICAgaWYgKHZhbHVlIDwgMCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IHJldHVybiBkYi0+cHV0KGtleSwgZW5jb2RlSW50KHZhbHVlKSk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2RpbmcuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkNvZGluZy5jcHAKaW5k
ZXggYmYxOTVhZGNhNGI3ZGJhOTVkYmQ3Nzg2OWJlODgxNjAxNmYwZWMzMi4uMTgzNjM3NzIxZjBi
MTI3M2ZmMDFmODdhMDIzMzZiMGY3MTJiYWZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkNvZGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkNvZGluZy5jcHAKQEAgLTE5NCw5ICsxOTQs
MTAgQEAgYm9vbCBkZWNvZGVCb29sKGNvbnN0IGNoYXIqIGJlZ2luLCBjb25zdCBjaGFyKiBlbmQp
CiAgICAgcmV0dXJuICpiZWdpbjsKIH0KIAotVmVjdG9yPGNoYXI+IGVuY29kZUludChpbnQ2NF90
IG4pCitWZWN0b3I8Y2hhcj4gZW5jb2RlSW50KGludDY0X3QgblBhcmFtKQogewotICAgIEFTU0VS
VChuID49IDApOworICAgIEFTU0VSVChuUGFyYW0gPj0gMCk7CisgICAgdWludDY0X3QgbiA9IHN0
YXRpY19jYXN0PHVpbnQ2NF90PihuUGFyYW0pOwogICAgIFZlY3RvcjxjaGFyPiByZXQ7IC8vIEZJ
WE1FOiBTaXplIHRoaXMgYXQgY3JlYXRpb24uCiAKICAgICBkbyB7CkBAIC0yMzYsOCArMjM3LDEw
IEBAIHN0YXRpYyBpbnQgY29tcGFyZUludHMoaW50NjRfdCBhLCBpbnQ2NF90IGIpCiAgICAgcmV0
dXJuIDA7CiB9CiAKLVZlY3RvcjxjaGFyPiBlbmNvZGVWYXJJbnQoaW50NjRfdCBuKQorVmVjdG9y
PGNoYXI+IGVuY29kZVZhckludChpbnQ2NF90IG5QYXJhbSkKIHsKKyAgICBBU1NFUlQoblBhcmFt
ID49IDApOworICAgIHVpbnQ2NF90IG4gPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oblBhcmFtKTsK
ICAgICBWZWN0b3I8Y2hhcj4gcmV0OyAvLyBGSVhNRTogU2l6ZSB0aGlzIGF0IGNyZWF0aW9uLgog
CiAgICAgZG8gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJM
ZXZlbERCQ29kaW5nVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkxl
dmVsREJDb2RpbmdUZXN0LmNwcAppbmRleCA5OTM0ZTVjNzljYTUyZDQzZDUwMTRlOGM1NmY5NTNk
ZWE3ZDhiYTRmLi5hMzRiNDM2YmRhYWI2MTI5MTMwMWM4MzdlYzM1ZmViZDg2MjAzZmYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkxldmVsREJDb2RpbmdUZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkxldmVsREJDb2RpbmdU
ZXN0LmNwcApAQCAtMTM5LDYgKzEzOSw5IEBAIFRFU1QoSURCTGV2ZWxEQkNvZGluZ1Rlc3QsIEVu
Y29kZUludCkKICAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8c2l6ZV90PigxKSwgZW5jb2RlSW50
KDI1NSkuc2l6ZSgpKTsKICAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8c2l6ZV90PigyKSwgZW5j
b2RlSW50KDI1Nikuc2l6ZSgpKTsKICAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8c2l6ZV90Pig0
KSwgZW5jb2RlSW50KDB4ZmZmZmZmZmYpLnNpemUoKSk7CisjaWZkZWYgTkRFQlVHCisgICAgRVhQ
RUNUX0VRKHN0YXRpY19jYXN0PHNpemVfdD4oOCksIGVuY29kZUludCgtMSkuc2l6ZSgpKTsKKyNl
bmRpZgogfQogCiBURVNUKElEQkxldmVsREJDb2RpbmdUZXN0LCBEZWNvZGVCb29sKQpAQCAtMTY2
LDYgKzE2OSw5IEBAIFRFU1QoSURCTGV2ZWxEQkNvZGluZ1Rlc3QsIERlY29kZUludCkKICAgICB0
ZXN0Q2FzZXMuYXBwZW5kKDY1NTUzNik7CiAgICAgdGVzdENhc2VzLmFwcGVuZCg3NzExMTkyNDMx
NzU1NjY1NzkybGwpOwogICAgIHRlc3RDYXNlcy5hcHBlbmQoMHg3ZmZmZmZmZmZmZmZmZmZmbGwp
OworI2lmZGVmIE5ERUJVRworICAgIHRlc3RDYXNlcy5hcHBlbmQoLTMpOworI2VuZGlmCiAKICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRlc3RDYXNlcy5zaXplKCk7ICsraSkgewogICAgICAg
ICBpbnQ2NF90IG4gPSB0ZXN0Q2FzZXNbaV07CkBAIC0xODEsNiArMTg3LDkgQEAgVEVTVChJREJM
ZXZlbERCQ29kaW5nVGVzdCwgRW5jb2RlVmFySW50KQogICAgIEVYUEVDVF9FUShzdGF0aWNfY2Fz
dDxzaXplX3Q+KDIpLCBlbmNvZGVWYXJJbnQoMjU1KS5zaXplKCkpOwogICAgIEVYUEVDVF9FUShz
dGF0aWNfY2FzdDxzaXplX3Q+KDIpLCBlbmNvZGVWYXJJbnQoMjU2KS5zaXplKCkpOwogICAgIEVY
UEVDVF9FUShzdGF0aWNfY2FzdDxzaXplX3Q+KDUpLCBlbmNvZGVWYXJJbnQoMHhmZmZmZmZmZiku
c2l6ZSgpKTsKKyNpZmRlZiBOREVCVUcKKyAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8c2l6ZV90
Pig4KSwgZW5jb2RlSW50KC0xMDApLnNpemUoKSk7CisjZW5kaWYKIH0KIAogVEVTVChJREJMZXZl
bERCQ29kaW5nVGVzdCwgRGVjb2RlVmFySW50KQpAQCAtMTk0LDYgKzIwMyw5IEBAIFRFU1QoSURC
TGV2ZWxEQkNvZGluZ1Rlc3QsIERlY29kZVZhckludCkKICAgICB0ZXN0Q2FzZXMuYXBwZW5kKDY1
NTUzNik7CiAgICAgdGVzdENhc2VzLmFwcGVuZCg3NzExMTkyNDMxNzU1NjY1NzkybGwpOwogICAg
IHRlc3RDYXNlcy5hcHBlbmQoMHg3ZmZmZmZmZmZmZmZmZmZmbGwpOworI2lmZGVmIE5ERUJVRwor
ICAgIHRlc3RDYXNlcy5hcHBlbmQoLTMpOworI2VuZGlmCiAKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHRlc3RDYXNlcy5zaXplKCk7ICsraSkgewogICAgICAgICBpbnQ2NF90IG4gPSB0ZXN0
Q2FzZXNbaV07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149146</attachid>
            <date>2012-06-22 17:27:02 -0700</date>
            <delta_ts>2012-06-22 18:16:52 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-89625-20120622172702.patch</filename>
            <type>text/plain</type>
            <size>5202</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWJmOGI4NTdjZDU2YjVh
YmJkNTdhM2M5NmEyNTk5MDM2N2I0YzdlZC4uYzU0MTJhMWFkMjg5YTBkNTUyNzcxNGExOTc2YTE1
NTUzOTgxNTc3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA2LTIwICBEYXZp
ZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEF2
b2lkIGluZmluaXRlIGxvb3AgaWYgd2UgdHJ5IHRvIGVuY29kZSAtMSBmb3IgbGV2ZWxkYgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk2MjUKKworICAg
ICAgICBJdCBnZXRzIHdvcnNlLCBtZW1vcnkgaXMgYWxsb2NhdGVkIGluc2lkZSB0aGUgbG9vcCBz
byB0aGUgcHJvY2VzcyBpcworICAgICAgICBldmVudHVhbGx5IGtpbGxlZCBieSB0aGUgT1MuCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KKworICAgICAgICBBZGRlZCB0ZXN0cyB0
byBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkxldmVsREJDb2RpbmdUZXN0LmNwcAor
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkNvZGluZy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJMZXZlbERCQ29kaW5nOjplbmNvZGVJbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCTGV2ZWxEQkNvZGluZzo6ZW5jb2RlVmFySW50KToKKwogMjAxMi0wNi0yMiAgSmFt
ZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0g
TGF5ZXJSZW5kZXJlckNocm9taXVtIGlzIG5vdCBnZXR0aW5nIHZpc2liaWxpdHkgbWVzc2FnZXMg
aW4gc2luZ2xlIHRocmVhZGVkIGNvbXBvc2l0aW5nIG1vZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IDAwNTUyYjMwZDMwZWZiYWZhOWNmZGJmYzRmOWRhMzY3MDUxMzg2MmYuLmRmY2Yx
ZTk4YWVhNWM1OTA2NGExMWQyZmZjODQ1ODg4NTJiNDFhOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDYtMjAgIERhdmlkIEdyb2dhbiAgPGRncm9n
YW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEluZGV4ZWREQjogQXZvaWQgaW5maW5pdGUgbG9v
cCBpZiB3ZSB0cnkgdG8gZW5jb2RlIC0xIGZvciBsZXZlbGRiCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTYyNQorCisgICAgICAgIFJldmlld2VkIGJ5
IFRvbnkgQ2hhbmcuCisKKyAgICAgICAgKiB0ZXN0cy9JREJMZXZlbERCQ29kaW5nVGVzdC5jcHA6
CisgICAgICAgIChJREJMZXZlbERCQ29kaW5nOjpURVNUKToKKwogMjAxMi0wNi0yMiAgSmFtZXMg
Um9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gTGF5
ZXJSZW5kZXJlckNocm9taXVtIGlzIG5vdCBnZXR0aW5nIHZpc2liaWxpdHkgbWVzc2FnZXMgaW4g
c2luZ2xlIHRocmVhZGVkIGNvbXBvc2l0aW5nIG1vZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJCYWNraW5nU3RvcmUuY3BwCmlu
ZGV4IDhkY2I0NjA1YzBhYzdjMzAzMjE0MmVmNDQyYzIxMjYzNDM4NTliNTcuLmM0NGE0YzlkZTU4
NWMyM2FhZWFhMGRjNDI0MzdkOWE1ZDkzNjUyNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJCYWNraW5nU3RvcmUuY3BwCkBA
IC03Nyw2ICs3Nyw5IEBAIHN0YXRpYyBib29sIGdldEludChEQk9yVHJhbnNhY3Rpb24qIGRiLCBj
b25zdCBWZWN0b3I8Y2hhcj4mIGtleSwgaW50NjRfdCYgZm91bmRJCiB0ZW1wbGF0ZSA8dHlwZW5h
bWUgREJPclRyYW5zYWN0aW9uPgogc3RhdGljIGJvb2wgcHV0SW50KERCT3JUcmFuc2FjdGlvbiog
ZGIsIGNvbnN0IFZlY3RvcjxjaGFyPiYga2V5LCBpbnQ2NF90IHZhbHVlKQogeworICAgIEFTU0VS
VCh2YWx1ZSA+PSAwKTsKKyAgICBpZiAodmFsdWUgPCAwKQorICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgcmV0dXJuIGRiLT5wdXQoa2V5LCBlbmNvZGVJbnQodmFsdWUpKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkNvZGluZy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQ29kaW5nLmNw
cAppbmRleCBiZjE5NWFkY2E0YjdkYmE5NWRiZDc3ODY5YmU4ODE2MDE2ZjBlYzMyLi4xODM2Mzc3
MjFmMGIxMjczZmYwMWY4N2EwMjMzNmIwZjcxMmJhZmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQ29kaW5nLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQ29kaW5nLmNwcApAQCAtMTk0LDkg
KzE5NCwxMCBAQCBib29sIGRlY29kZUJvb2woY29uc3QgY2hhciogYmVnaW4sIGNvbnN0IGNoYXIq
IGVuZCkKICAgICByZXR1cm4gKmJlZ2luOwogfQogCi1WZWN0b3I8Y2hhcj4gZW5jb2RlSW50KGlu
dDY0X3QgbikKK1ZlY3RvcjxjaGFyPiBlbmNvZGVJbnQoaW50NjRfdCBuUGFyYW0pCiB7Ci0gICAg
QVNTRVJUKG4gPj0gMCk7CisgICAgQVNTRVJUKG5QYXJhbSA+PSAwKTsKKyAgICB1aW50NjRfdCBu
ID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG5QYXJhbSk7CiAgICAgVmVjdG9yPGNoYXI+IHJldDsg
Ly8gRklYTUU6IFNpemUgdGhpcyBhdCBjcmVhdGlvbi4KIAogICAgIGRvIHsKQEAgLTIzNiw4ICsy
MzcsMTAgQEAgc3RhdGljIGludCBjb21wYXJlSW50cyhpbnQ2NF90IGEsIGludDY0X3QgYikKICAg
ICByZXR1cm4gMDsKIH0KIAotVmVjdG9yPGNoYXI+IGVuY29kZVZhckludChpbnQ2NF90IG4pCitW
ZWN0b3I8Y2hhcj4gZW5jb2RlVmFySW50KGludDY0X3QgblBhcmFtKQogeworICAgIEFTU0VSVChu
UGFyYW0gPj0gMCk7CisgICAgdWludDY0X3QgbiA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihuUGFy
YW0pOwogICAgIFZlY3RvcjxjaGFyPiByZXQ7IC8vIEZJWE1FOiBTaXplIHRoaXMgYXQgY3JlYXRp
b24uCiAKICAgICBkbyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0lEQkxldmVsREJDb2RpbmdUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
SURCTGV2ZWxEQkNvZGluZ1Rlc3QuY3BwCmluZGV4IDk5MzRlNWM3OWNhNTJkNDNkNTAxNGU4YzU2
Zjk1M2RlYTdkOGJhNGYuLmEzNGI0MzZiZGFhYjYxMjkxMzAxYzgzN2VjMzVmZWJkODYyMDNmZjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCTGV2ZWxEQkNvZGlu
Z1Rlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCTGV2ZWxEQkNv
ZGluZ1Rlc3QuY3BwCkBAIC0xMzksNiArMTM5LDkgQEAgVEVTVChJREJMZXZlbERCQ29kaW5nVGVz
dCwgRW5jb2RlSW50KQogICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDxzaXplX3Q+KDEpLCBlbmNv
ZGVJbnQoMjU1KS5zaXplKCkpOwogICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDxzaXplX3Q+KDIp
LCBlbmNvZGVJbnQoMjU2KS5zaXplKCkpOwogICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDxzaXpl
X3Q+KDQpLCBlbmNvZGVJbnQoMHhmZmZmZmZmZikuc2l6ZSgpKTsKKyNpZmRlZiBOREVCVUcKKyAg
ICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8c2l6ZV90Pig4KSwgZW5jb2RlSW50KC0xKS5zaXplKCkp
OworI2VuZGlmCiB9CiAKIFRFU1QoSURCTGV2ZWxEQkNvZGluZ1Rlc3QsIERlY29kZUJvb2wpCkBA
IC0xNjYsNiArMTY5LDkgQEAgVEVTVChJREJMZXZlbERCQ29kaW5nVGVzdCwgRGVjb2RlSW50KQog
ICAgIHRlc3RDYXNlcy5hcHBlbmQoNjU1NTM2KTsKICAgICB0ZXN0Q2FzZXMuYXBwZW5kKDc3MTEx
OTI0MzE3NTU2NjU3OTJsbCk7CiAgICAgdGVzdENhc2VzLmFwcGVuZCgweDdmZmZmZmZmZmZmZmZm
ZmZsbCk7CisjaWZkZWYgTkRFQlVHCisgICAgdGVzdENhc2VzLmFwcGVuZCgtMyk7CisjZW5kaWYK
IAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdGVzdENhc2VzLnNpemUoKTsgKytpKSB7CiAg
ICAgICAgIGludDY0X3QgbiA9IHRlc3RDYXNlc1tpXTsKQEAgLTE4MSw2ICsxODcsOSBAQCBURVNU
KElEQkxldmVsREJDb2RpbmdUZXN0LCBFbmNvZGVWYXJJbnQpCiAgICAgRVhQRUNUX0VRKHN0YXRp
Y19jYXN0PHNpemVfdD4oMiksIGVuY29kZVZhckludCgyNTUpLnNpemUoKSk7CiAgICAgRVhQRUNU
X0VRKHN0YXRpY19jYXN0PHNpemVfdD4oMiksIGVuY29kZVZhckludCgyNTYpLnNpemUoKSk7CiAg
ICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PHNpemVfdD4oNSksIGVuY29kZVZhckludCgweGZmZmZm
ZmZmKS5zaXplKCkpOworI2lmZGVmIE5ERUJVRworICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDxz
aXplX3Q+KDgpLCBlbmNvZGVJbnQoLTEwMCkuc2l6ZSgpKTsKKyNlbmRpZgogfQogCiBURVNUKElE
QkxldmVsREJDb2RpbmdUZXN0LCBEZWNvZGVWYXJJbnQpCkBAIC0xOTQsNiArMjAzLDkgQEAgVEVT
VChJREJMZXZlbERCQ29kaW5nVGVzdCwgRGVjb2RlVmFySW50KQogICAgIHRlc3RDYXNlcy5hcHBl
bmQoNjU1NTM2KTsKICAgICB0ZXN0Q2FzZXMuYXBwZW5kKDc3MTExOTI0MzE3NTU2NjU3OTJsbCk7
CiAgICAgdGVzdENhc2VzLmFwcGVuZCgweDdmZmZmZmZmZmZmZmZmZmZsbCk7CisjaWZkZWYgTkRF
QlVHCisgICAgdGVzdENhc2VzLmFwcGVuZCgtMyk7CisjZW5kaWYKIAogICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgdGVzdENhc2VzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIGludDY0X3QgbiA9
IHRlc3RDYXNlc1tpXTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>