<?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>74800</bug_id>
          
          <creation_ts>2011-12-17 19:27:39 -0800</creation_ts>
          <short_desc>Perform case insensitive matching on MIME types in XHR</short_desc>
          <delta_ts>2011-12-20 13:07:11 -0800</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>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="Jarred Nicholls">jarred</reporter>
          <assigned_to name="Jarred Nicholls">jarred</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>523387</commentid>
    <comment_count>0</comment_count>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-12-17 19:27:39 -0800</bug_when>
    <thetext>Cache lowercased responseMIMEType and responseIsXML in XHR</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523391</commentid>
    <comment_count>1</comment_count>
      <attachid>119747</attachid>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-12-17 19:33:13 -0800</bug_when>
    <thetext>Created attachment 119747
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523395</commentid>
    <comment_count>2</comment_count>
      <attachid>119748</attachid>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-12-17 19:55:28 -0800</bug_when>
    <thetext>Created attachment 119748
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523397</commentid>
    <comment_count>3</comment_count>
      <attachid>119749</attachid>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-12-17 20:36:43 -0800</bug_when>
    <thetext>Created attachment 119749
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523636</commentid>
    <comment_count>4</comment_count>
      <attachid>119749</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-12-18 18:58:46 -0800</bug_when>
    <thetext>Comment on attachment 119749
Patch

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

&gt; Source/WebCore/xml/XMLHttpRequest.h:203
&gt; +    String m_responseMIMEType;

Why keep this around at all? I think that all that matters is: isHTML, isXML, and other. There is no reason to keep the actual MIME type. Am I missing something?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523638</commentid>
    <comment_count>5</comment_count>
      <attachid>119749</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-12-18 19:00:22 -0800</bug_when>
    <thetext>Comment on attachment 119749
Patch

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

&gt;&gt; Source/WebCore/xml/XMLHttpRequest.h:203
&gt;&gt; +    String m_responseMIMEType;
&gt; 
&gt; Why keep this around at all? I think that all that matters is: isHTML, isXML, and other. There is no reason to keep the actual MIME type. Am I missing something?

Why make the object bigger? Is this a measurable speed optimization? Is this for code clarity? This seems a bit like code churn for no real benefit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523652</commentid>
    <comment_count>6</comment_count>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-12-18 19:18:05 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebCore/xml/XMLHttpRequest.h:203
&gt; &gt; +    String m_responseMIMEType;
&gt; 
&gt; Why keep this around at all? I think that all that matters is: isHTML, isXML, and other. There is no reason to keep the actual MIME type. Am I missing something?

There&apos;s no reason to keep it, today.  I&apos;m good with a couple of bits or an enum.

&gt; Why make the object bigger? Is this a measurable speed optimization? Is this for code clarity? This seems a bit like code churn for no real benefit.

There&apos;s no good reason for keeping it, other than it might be useful later.  I&apos;d prefer to do the MIME checks one time up front regardless.

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523655</commentid>
    <comment_count>7</comment_count>
      <attachid>119749</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-12-18 19:22:26 -0800</bug_when>
    <thetext>Comment on attachment 119749
Patch

The code we have today works fine. It uses the response we are already holding. Computing and storing additional state to speed things up later only seems worth doing if the speed difference is measurable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523656</commentid>
    <comment_count>8</comment_count>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-12-18 19:28:33 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 119749 [details])
&gt; The code we have today works fine. It uses the response we are already holding. Computing and storing additional state to speed things up later only seems worth doing if the speed difference is measurable.

This has nothing to do with performance.  We are currently doing case sensitive matching on MIME types without lowercasing the MIME type first.  If the MIME type is &quot;text/XML&quot; or someone calls overrideMimeType(&apos;text/XML&apos;) then the match will fail.  The caching was a nicety to avoid lowercasing multiple times, but the bug is actually about doing matching on a lowercased MIME string.

We can forget about caching altogether, but the lowercasing needs to happen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523664</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-12-18 19:44:11 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; We can forget about caching altogether, but the lowercasing needs to happen.

Makes sense.

As a side note, I would say that “case insensitive comparison of MIME types” needs to happen. Normally we would not convert to lowercase to do that.

Code like x == &quot;text/html&quot; can be changed to equalIgnoringCase(x, &quot;text/html&quot;).

But when I researched DOMImplementation::isXMLMIMEType I was surprised to find out it works in a case sensitive manner. It seems to me that functions like DOMImplementation::createDocument, DOMImplementation::isTextMIMEType, and DOMImplementation::isXMLMIMEType should be ignoring case and I am not sure why they are not. XMLMIMETypeRegExp even seems to go out of its way to be case sensitive.

If you are concentrating on XMLHttpRequest, I understand if you want to add a call to make the MIME type be lowercase, but overall for the project, that is the wrong direction. I can’t see why we’d even want to check MIME types in a case sensitive way and I think that DOMImplementation code that does so is suspect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523665</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-12-18 19:44:22 -0800</bug_when>
    <thetext>even want -&gt; ever want</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523666</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-12-18 19:45:28 -0800</bug_when>
    <thetext>Since the patch is fixing a bug, not just refactoring for better performance or clarity, we need to land a test case with it, one that would show the old incorrect behavior and also shows the new correct behavior. We have machinery for doing MIME type tests in the http subdirectory of the LayoutTest automated test machinery, and people with experience with that can help you make a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523670</commentid>
    <comment_count>12</comment_count>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-12-18 19:53:37 -0800</bug_when>
    <thetext>&gt; But when I researched DOMImplementation::isXMLMIMEType I was surprised to find out it works in a case sensitive manner. It seems to me that functions like DOMImplementation::createDocument, DOMImplementation::isTextMIMEType, and DOMImplementation::isXMLMIMEType should be ignoring case and I am not sure why they are not. XMLMIMETypeRegExp even seems to go out of its way to be case sensitive.

This is why I decided to lowercase in XHR.responseMIMEType, to handle both the DOMImplementation::isXMLMIMEType call, as well as a MIME type provided by the user via overrideMimeType, in one spot.

&gt; 
&gt; If you are concentrating on XMLHttpRequest, I understand if you want to add a call to make the MIME type be lowercase, but overall for the project, that is the wrong direction. I can’t see why we’d even want to check MIME types in a case sensitive way and I think that DOMImplementation code that does so is suspect.

I agree, and I&apos;m willing to iron out those issues in DOMImplementation et al in a separate bug.

&gt; Since the patch is fixing a bug, not just refactoring for better performance or clarity, we need to land a test case with it, one that would show the old incorrect behavior and also shows the new correct behavior. We have machinery for doing MIME type tests in the http subdirectory of the LayoutTest automated test machinery, and people with experience with that can help you make a test.

True, in addition to a fast test for overrideMimeType().

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523910</commentid>
    <comment_count>13</comment_count>
      <attachid>119862</attachid>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-12-19 07:42:32 -0800</bug_when>
    <thetext>Created attachment 119862
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524075</commentid>
    <comment_count>14</comment_count>
      <attachid>119862</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-12-19 11:47:18 -0800</bug_when>
    <thetext>Comment on attachment 119862
Patch

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

Patch is OK, but I’d like to see one that takes a different approach.

&gt; Source/WebCore/xml/XMLHttpRequest.cpp:227
&gt; -        bool isHTML = equalIgnoringCase(responseMIMEType(), &quot;text/html&quot;);
&gt; +        bool isHTML = responseMIMEType() == &quot;text/html&quot;;

Lets not change this. I don’t want to move to the approach where we lowercase the MIME type.

Instead, we should use equalIgnoringCase in XMLHttpRequest::didReceiveData and work around the isXMLMIMEType issue.

&gt; Source/WebCore/xml/XMLHttpRequest.cpp:932
&gt; +        mimeType.makeLower();

I see this as a workaround for a bug in DOMImplementation::isXMLMIMEType so:

1) The lowercasing should be done inside XMLHttpRequest::responseIsXML.
2) A comment should mention that it&apos;s a workaround for that bug.
3) We should remove the lowercasing when we fix DOMImplementation::isXMLMIMEType.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524086</commentid>
    <comment_count>15</comment_count>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-12-19 11:54:59 -0800</bug_when>
    <thetext>&gt; I see this as a workaround for a bug in DOMImplementation::isXMLMIMEType so:
&gt; 
&gt; 1) The lowercasing should be done inside XMLHttpRequest::responseIsXML.
&gt; 2) A comment should mention that it&apos;s a workaround for that bug.
&gt; 3) We should remove the lowercasing when we fix DOMImplementation::isXMLMIMEType.

You got it, thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524117</commentid>
    <comment_count>16</comment_count>
      <attachid>119903</attachid>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-12-19 12:32:26 -0800</bug_when>
    <thetext>Created attachment 119903
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524775</commentid>
    <comment_count>17</comment_count>
      <attachid>119903</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-20 13:07:05 -0800</bug_when>
    <thetext>Comment on attachment 119903
Patch

Clearing flags on attachment: 119903

Committed r103344: &lt;http://trac.webkit.org/changeset/103344&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524776</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-20 13:07:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119747</attachid>
            <date>2011-12-17 19:33:13 -0800</date>
            <delta_ts>2011-12-17 19:55:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74800-20111217223311.patch</filename>
            <type>text/plain</type>
            <size>4607</size>
            <attacher name="Jarred Nicholls">jarred</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzMTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODg3OGUwNjFmOTQ1YjI2
OWU4MWY4MmJlOWRiYjU3N2QwMDk0NzMzYS4uMmM3ODc2OWMwNjJhZjMyMjEyNGYzNWZlNjQyN2Ex
OGVhMjJhMmI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDExLTEyLTE3ICBKYXJy
ZWQgTmljaG9sbHMgIDxqYXJyZWRAc2VuY2hhLmNvbT4KKworICAgICAgICBDYWNoZSBsb3dlcmNh
c2VkIHJlc3BvbnNlTUlNRVR5cGUgYW5kIHJlc3BvbnNlSXNYTUwgaW4gWEhSCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDgwMAorCisgICAgICAgIC0g
Q2FjaGUgdGhlIGxvd2VyY2FzZWQgcmVzdWx0IG9mIHJlc3BvbnNlTUlNRVR5cGUoKSBmb3IgZmFz
dGVyIGxvb2t1cCAmIGNhc2UgaW5zZW5zaXRpdmUgc3RyaW5nIGNvbXBhcmlzb25zLgorICAgICAg
ICAtIENhY2hlIHRoZSByZXN1bHQgb2YgcmVzcG9uc2VJc1hNTCgpIHRvIHByZXZlbnQgcmVkdW5k
YW50IHN0cmluZyBjb21wYXJpc29ucyBhbmQgUmVnRXggbWF0Y2hpbmcuCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBleGlzdGlu
ZyB0ZXN0cyBzdWZmaWNpZW50LgorCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZVhNTCk6CisgICAgICAg
IChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VNSU1FVHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VJc1hNTCk6CisgICAgICAgIChXZWJDb3Jl
OjpYTUxIdHRwUmVxdWVzdDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6
OlhNTEh0dHBSZXF1ZXN0OjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgICogeG1sL1hNTEh0dHBS
ZXF1ZXN0Lmg6CisKIDIwMTEtMTItMTcgIEtlbmljaGkgSXNoaWJhc2hpICA8YmFzaGlAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFRleHQgZGlzcGFwcGVhciB3aGVuIFNWRyBmb250IGhhcyBubyBs
YXRpbiBjaGFyYWN0ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IDQ4
YzcxM2NkMTljZmVhODUxNjNiOTc0NGU3YTcyNzk2NjQyNDgwNjYuLjI0NWQxZTgxMDA1NTFkZjk2
NDFmZDllNmRmOWZlN2MzOWU3ZjhmNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
LmNwcApAQCAtMjI0LDExICsyMjQsMTEgQEAgRG9jdW1lbnQqIFhNTEh0dHBSZXF1ZXN0OjpyZXNw
b25zZVhNTChFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBpZiAo
IW1fY3JlYXRlZERvY3VtZW50KSB7Ci0gICAgICAgIGJvb2wgaXNIVE1MID0gZXF1YWxJZ25vcmlu
Z0Nhc2UocmVzcG9uc2VNSU1FVHlwZSgpLCAidGV4dC9odG1sIik7CisgICAgICAgIGJvb2wgaXNI
VE1MID0gbV9yZXNwb25zZU1JTUVUeXBlID09ICJ0ZXh0L2h0bWwiOwogCiAgICAgICAgIC8vIFRo
ZSBXM0Mgc3BlYyByZXF1aXJlcyB0aGUgZmluYWwgTUlNRSB0eXBlIHRvIGJlIHNvbWUgdmFsaWQg
WE1MIHR5cGUsIG9yIHRleHQvaHRtbC4KICAgICAgICAgLy8gSWYgaXQgaXMgdGV4dC9odG1sLCB0
aGVuIHRoZSByZXNwb25zZVR5cGUgb2YgImRvY3VtZW50IiBtdXN0IGhhdmUgYmVlbiBzdXBwbGll
ZCBleHBsaWNpdGx5LgotICAgICAgICBpZiAoKG1fcmVzcG9uc2UuaXNIVFRQKCkgJiYgIXJlc3Bv
bnNlSXNYTUwoKSAmJiAhaXNIVE1MKQorICAgICAgICBpZiAoKG1fcmVzcG9uc2UuaXNIVFRQKCkg
JiYgIW1fcmVzcG9uc2VJc1hNTCAmJiAhaXNIVE1MKQogICAgICAgICAgICAgfHwgKGlzSFRNTCAm
JiBtX3Jlc3BvbnNlVHlwZUNvZGUgPT0gUmVzcG9uc2VUeXBlRGVmYXVsdCkKICAgICAgICAgICAg
IHx8IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNXb3JrZXJDb250ZXh0KCkpIHsKICAgICAg
ICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudCA9IDA7CkBAIC05MjgsMTMgKzkyOCwxNSBAQCBTdHJp
bmcgWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlTUlNRVR5cGUoKSBjb25zdAogICAgIH0KICAgICBp
ZiAobWltZVR5cGUuaXNFbXB0eSgpKQogICAgICAgICBtaW1lVHlwZSA9ICJ0ZXh0L3htbCI7Cisg
ICAgZWxzZQorICAgICAgICBtaW1lVHlwZS5tYWtlTG93ZXIoKTsKIAogICAgIHJldHVybiBtaW1l
VHlwZTsKIH0KIAogYm9vbCBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VJc1hNTCgpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIERPTUltcGxlbWVudGF0aW9uOjppc1hNTE1JTUVUeXBlKHJlc3BvbnNlTUlN
RVR5cGUoKSk7CisgICAgcmV0dXJuIERPTUltcGxlbWVudGF0aW9uOjppc1hNTE1JTUVUeXBlKG1f
cmVzcG9uc2VNSU1FVHlwZSk7CiB9CiAKIGludCBYTUxIdHRwUmVxdWVzdDo6c3RhdHVzKEV4Y2Vw
dGlvbkNvZGUmIGVjKSBjb25zdApAQCAtMTAzOSw2ICsxMDQxLDggQEAgdm9pZCBYTUxIdHRwUmVx
dWVzdDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3Qg
UmVzb3VyY2UKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVYSFJSZXNw
b25zZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGlkZW50aWZpZXIpOwogCiAgICAgbV9yZXNw
b25zZSA9IHJlc3BvbnNlOworICAgIG1fcmVzcG9uc2VNSU1FVHlwZSA9IHJlc3BvbnNlTUlNRVR5
cGUoKTsKKyAgICBtX3Jlc3BvbnNlSXNYTUwgPSByZXNwb25zZUlzWE1MKCk7CiAgICAgbV9yZXNw
b25zZUVuY29kaW5nID0gZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKG1fbWltZVR5cGVPdmVy
cmlkZSk7CiAgICAgaWYgKG1fcmVzcG9uc2VFbmNvZGluZy5pc0VtcHR5KCkpCiAgICAgICAgIG1f
cmVzcG9uc2VFbmNvZGluZyA9IHJlc3BvbnNlLnRleHRFbmNvZGluZ05hbWUoKTsKQEAgLTEwNTgs
MTEgKzEwNjIsMTEgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlkUmVjZWl2ZURhdGEoY29uc3Qg
Y2hhciogZGF0YSwgaW50IGxlbikKICAgICAgICAgaWYgKCFtX3Jlc3BvbnNlRW5jb2RpbmcuaXNF
bXB0eSgpKQogICAgICAgICAgICAgbV9kZWNvZGVyID0gVGV4dFJlc291cmNlRGVjb2Rlcjo6Y3Jl
YXRlKCJ0ZXh0L3BsYWluIiwgbV9yZXNwb25zZUVuY29kaW5nKTsKICAgICAgICAgLy8gYWxsb3cg
VGV4dFJlc291cmNlRGVjb2RlciB0byBsb29rIGluc2lkZSB0aGUgbV9yZXNwb25zZSBpZiBpdCdz
IFhNTCBvciBIVE1MCi0gICAgICAgIGVsc2UgaWYgKHJlc3BvbnNlSXNYTUwoKSkgeworICAgICAg
ICBlbHNlIGlmIChtX3Jlc3BvbnNlSXNYTUwpIHsKICAgICAgICAgICAgIG1fZGVjb2RlciA9IFRl
eHRSZXNvdXJjZURlY29kZXI6OmNyZWF0ZSgiYXBwbGljYXRpb24veG1sIik7CiAgICAgICAgICAg
ICAvLyBEb24ndCBzdG9wIG9uIGVuY29kaW5nIGVycm9ycywgdW5saWtlIGl0IGlzIGRvbmUgZm9y
IG90aGVyIGtpbmRzIG9mIFhNTCByZXNvdXJjZXMuIFRoaXMgbWF0Y2hlcyB0aGUgYmVoYXZpb3Ig
b2YgcHJldmlvdXMgV2ViS2l0IHZlcnNpb25zLCBGaXJlZm94IGFuZCBPcGVyYS4KICAgICAgICAg
ICAgIG1fZGVjb2Rlci0+dXNlTGVuaWVudFhNTERlY29kaW5nKCk7Ci0gICAgICAgIH0gZWxzZSBp
ZiAocmVzcG9uc2VNSU1FVHlwZSgpID09ICJ0ZXh0L2h0bWwiKQorICAgICAgICB9IGVsc2UgaWYg
KG1fcmVzcG9uc2VNSU1FVHlwZSA9PSAidGV4dC9odG1sIikKICAgICAgICAgICAgIG1fZGVjb2Rl
ciA9IFRleHRSZXNvdXJjZURlY29kZXI6OmNyZWF0ZSgidGV4dC9odG1sIiwgIlVURi04Iik7CiAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fZGVjb2RlciA9IFRleHRSZXNvdXJjZURlY29kZXI6
OmNyZWF0ZSgidGV4dC9wbGFpbiIsICJVVEYtOCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUveG1sL1hNTEh0dHBSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3QuaAppbmRleCBiY2JhMDk4NDM2MWE5NTRhYjQ1NDNkYTZiYjhmNzAzYjg1NDAxM2YyLi45MThh
ZjUzYjhmMWVmOGY0YzgzYmMxNzhiMDdjZGEzMTMyMWU5YWMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1M
SHR0cFJlcXVlc3QuaApAQCAtMjAxLDYgKzIwMSw4IEBAIHByaXZhdGU6CiAKICAgICBSZXNvdXJj
ZVJlc3BvbnNlIG1fcmVzcG9uc2U7CiAgICAgU3RyaW5nIG1fcmVzcG9uc2VFbmNvZGluZzsKKyAg
ICBTdHJpbmcgbV9yZXNwb25zZU1JTUVUeXBlOworICAgIGJvb2wgbV9yZXNwb25zZUlzWE1MOwog
CiAgICAgUmVmUHRyPFRleHRSZXNvdXJjZURlY29kZXI+IG1fZGVjb2RlcjsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119748</attachid>
            <date>2011-12-17 19:55:28 -0800</date>
            <delta_ts>2011-12-17 20:36:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74800-20111217225527.patch</filename>
            <type>text/plain</type>
            <size>4877</size>
            <attacher name="Jarred Nicholls">jarred</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzMTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODg3OGUwNjFmOTQ1YjI2
OWU4MWY4MmJlOWRiYjU3N2QwMDk0NzMzYS4uYWNjNjA0ZjgyZTk3MDkwYTM0N2IzMDRlZDhmZGM2
OGJkYzc0YzFhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDExLTEyLTE3ICBKYXJy
ZWQgTmljaG9sbHMgIDxqYXJyZWRAc2VuY2hhLmNvbT4KKworICAgICAgICBDYWNoZSBsb3dlcmNh
c2VkIHJlc3BvbnNlTUlNRVR5cGUgYW5kIHJlc3BvbnNlSXNYTUwgaW4gWEhSCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDgwMAorCisgICAgICAgIC0g
Q2FjaGUgdGhlIGxvd2VyY2FzZWQgcmVzdWx0IG9mIHJlc3BvbnNlTUlNRVR5cGUoKSBmb3IgZmFz
dGVyIGxvb2t1cCAmIGNhc2UgaW5zZW5zaXRpdmUgc3RyaW5nIGNvbXBhcmlzb25zLgorICAgICAg
ICAtIENhY2hlIHdoYXQgd2FzIHRoZSByZXN1bHQgb2YgcmVzcG9uc2VJc1hNTCgpIHRvIHByZXZl
bnQgcmVkdW5kYW50IHN0cmluZyBjb21wYXJpc29ucyBhbmQgUmVnRXggbWF0Y2hpbmcuCisgICAg
ICAgIC0gUmVtb3ZlIHJlc3BvbnNlSXNYTUwoKSBhcyBpdCBoYXMgbm8gcmV1c2FibGUgcHVycG9z
ZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBu
ZXcgdGVzdHMsIGV4aXN0aW5nIHRlc3RzIHN1ZmZpY2llbnQuCisKKyAgICAgICAgKiB4bWwvWE1M
SHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnJlc3Bv
bnNlWE1MKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZU1JTUVU
eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZUlzWE1MKToK
KyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAg
ICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuaDoKKwogMjAxMS0xMi0xNyAgS2VuaWNoaSBJc2hpYmFz
aGkgIDxiYXNoaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVGV4dCBkaXNwYXBwZWFyIHdoZW4g
U1ZHIGZvbnQgaGFzIG5vIGxhdGluIGNoYXJhY3RlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdC5jcHAKaW5kZXggNDhjNzEzY2QxOWNmZWE4NTE2M2I5NzQ0ZTdhNzI3OTY2NDI0ODA2Ni4u
MTMxNTBiYzJkMmNmN2YzOWZjMWE4YzQzYjdmNGNhNzkwOTYwZGU1ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0yMjQsMTEgKzIyNCwxMSBAQCBEb2N1bWVudCogWE1M
SHR0cFJlcXVlc3Q6OnJlc3BvbnNlWE1MKEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICByZXR1
cm4gMDsKIAogICAgIGlmICghbV9jcmVhdGVkRG9jdW1lbnQpIHsKLSAgICAgICAgYm9vbCBpc0hU
TUwgPSBlcXVhbElnbm9yaW5nQ2FzZShyZXNwb25zZU1JTUVUeXBlKCksICJ0ZXh0L2h0bWwiKTsK
KyAgICAgICAgYm9vbCBpc0hUTUwgPSBtX3Jlc3BvbnNlTUlNRVR5cGUgPT0gInRleHQvaHRtbCI7
CiAKICAgICAgICAgLy8gVGhlIFczQyBzcGVjIHJlcXVpcmVzIHRoZSBmaW5hbCBNSU1FIHR5cGUg
dG8gYmUgc29tZSB2YWxpZCBYTUwgdHlwZSwgb3IgdGV4dC9odG1sLgogICAgICAgICAvLyBJZiBp
dCBpcyB0ZXh0L2h0bWwsIHRoZW4gdGhlIHJlc3BvbnNlVHlwZSBvZiAiZG9jdW1lbnQiIG11c3Qg
aGF2ZSBiZWVuIHN1cHBsaWVkIGV4cGxpY2l0bHkuCi0gICAgICAgIGlmICgobV9yZXNwb25zZS5p
c0hUVFAoKSAmJiAhcmVzcG9uc2VJc1hNTCgpICYmICFpc0hUTUwpCisgICAgICAgIGlmICgobV9y
ZXNwb25zZS5pc0hUVFAoKSAmJiAhbV9yZXNwb25zZUlzWE1MICYmICFpc0hUTUwpCiAgICAgICAg
ICAgICB8fCAoaXNIVE1MICYmIG1fcmVzcG9uc2VUeXBlQ29kZSA9PSBSZXNwb25zZVR5cGVEZWZh
dWx0KQogICAgICAgICAgICAgfHwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1dvcmtlckNv
bnRleHQoKSkgewogICAgICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50ID0gMDsKQEAgLTkyOCwx
NSArOTI4LDEyIEBAIFN0cmluZyBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VNSU1FVHlwZSgpIGNv
bnN0CiAgICAgfQogICAgIGlmIChtaW1lVHlwZS5pc0VtcHR5KCkpCiAgICAgICAgIG1pbWVUeXBl
ID0gInRleHQveG1sIjsKKyAgICBlbHNlCisgICAgICAgIG1pbWVUeXBlLm1ha2VMb3dlcigpOwog
CiAgICAgcmV0dXJuIG1pbWVUeXBlOwogfQogCi1ib29sIFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25z
ZUlzWE1MKCkgY29uc3QKLXsKLSAgICByZXR1cm4gRE9NSW1wbGVtZW50YXRpb246OmlzWE1MTUlN
RVR5cGUocmVzcG9uc2VNSU1FVHlwZSgpKTsKLX0KLQogaW50IFhNTEh0dHBSZXF1ZXN0OjpzdGF0
dXMoRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7CiAgICAgaWYgKG1fcmVzcG9uc2UuaHR0cFN0
YXR1c0NvZGUoKSkKQEAgLTEwMzksNiArMTAzNiw4IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmRp
ZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNl
CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlWEhSUmVzcG9uc2Uoc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLCBpZGVudGlmaWVyKTsKIAogICAgIG1fcmVzcG9uc2UgPSBy
ZXNwb25zZTsKKyAgICBtX3Jlc3BvbnNlTUlNRVR5cGUgPSByZXNwb25zZU1JTUVUeXBlKCk7Cisg
ICAgbV9yZXNwb25zZUlzWE1MID0gRE9NSW1wbGVtZW50YXRpb246OmlzWE1MTUlNRVR5cGUobV9y
ZXNwb25zZU1JTUVUeXBlKTsKICAgICBtX3Jlc3BvbnNlRW5jb2RpbmcgPSBleHRyYWN0Q2hhcnNl
dEZyb21NZWRpYVR5cGUobV9taW1lVHlwZU92ZXJyaWRlKTsKICAgICBpZiAobV9yZXNwb25zZUVu
Y29kaW5nLmlzRW1wdHkoKSkKICAgICAgICAgbV9yZXNwb25zZUVuY29kaW5nID0gcmVzcG9uc2Uu
dGV4dEVuY29kaW5nTmFtZSgpOwpAQCAtMTA1OCwxMSArMTA1NywxMSBAQCB2b2lkIFhNTEh0dHBS
ZXF1ZXN0OjpkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuKQogICAgICAg
ICBpZiAoIW1fcmVzcG9uc2VFbmNvZGluZy5pc0VtcHR5KCkpCiAgICAgICAgICAgICBtX2RlY29k
ZXIgPSBUZXh0UmVzb3VyY2VEZWNvZGVyOjpjcmVhdGUoInRleHQvcGxhaW4iLCBtX3Jlc3BvbnNl
RW5jb2RpbmcpOwogICAgICAgICAvLyBhbGxvdyBUZXh0UmVzb3VyY2VEZWNvZGVyIHRvIGxvb2sg
aW5zaWRlIHRoZSBtX3Jlc3BvbnNlIGlmIGl0J3MgWE1MIG9yIEhUTUwKLSAgICAgICAgZWxzZSBp
ZiAocmVzcG9uc2VJc1hNTCgpKSB7CisgICAgICAgIGVsc2UgaWYgKG1fcmVzcG9uc2VJc1hNTCkg
ewogICAgICAgICAgICAgbV9kZWNvZGVyID0gVGV4dFJlc291cmNlRGVjb2Rlcjo6Y3JlYXRlKCJh
cHBsaWNhdGlvbi94bWwiKTsKICAgICAgICAgICAgIC8vIERvbid0IHN0b3Agb24gZW5jb2Rpbmcg
ZXJyb3JzLCB1bmxpa2UgaXQgaXMgZG9uZSBmb3Igb3RoZXIga2luZHMgb2YgWE1MIHJlc291cmNl
cy4gVGhpcyBtYXRjaGVzIHRoZSBiZWhhdmlvciBvZiBwcmV2aW91cyBXZWJLaXQgdmVyc2lvbnMs
IEZpcmVmb3ggYW5kIE9wZXJhLgogICAgICAgICAgICAgbV9kZWNvZGVyLT51c2VMZW5pZW50WE1M
RGVjb2RpbmcoKTsKLSAgICAgICAgfSBlbHNlIGlmIChyZXNwb25zZU1JTUVUeXBlKCkgPT0gInRl
eHQvaHRtbCIpCisgICAgICAgIH0gZWxzZSBpZiAobV9yZXNwb25zZU1JTUVUeXBlID09ICJ0ZXh0
L2h0bWwiKQogICAgICAgICAgICAgbV9kZWNvZGVyID0gVGV4dFJlc291cmNlRGVjb2Rlcjo6Y3Jl
YXRlKCJ0ZXh0L2h0bWwiLCAiVVRGLTgiKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9k
ZWNvZGVyID0gVGV4dFJlc291cmNlRGVjb2Rlcjo6Y3JlYXRlKCJ0ZXh0L3BsYWluIiwgIlVURi04
Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCmluZGV4IGJjYmEwOTg0MzYxYTk1NGFi
NDU0M2RhNmJiOGY3MDNiODU0MDEzZjIuLmJkNjg4NWUzMDhhZmEyM2Q3NjEyYjRlMTA5OTZjMWFl
YzkwYjEyNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCkBAIC0xNjIsNyArMTYy
LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbFJlZGlyZWN0Q2hlY2soKTsK
IAogICAgIFN0cmluZyByZXNwb25zZU1JTUVUeXBlKCkgY29uc3Q7Ci0gICAgYm9vbCByZXNwb25z
ZUlzWE1MKCkgY29uc3Q7CiAKICAgICBib29sIGluaXRTZW5kKEV4Y2VwdGlvbkNvZGUmKTsKIApA
QCAtMjAxLDYgKzIwMCw4IEBAIHByaXZhdGU6CiAKICAgICBSZXNvdXJjZVJlc3BvbnNlIG1fcmVz
cG9uc2U7CiAgICAgU3RyaW5nIG1fcmVzcG9uc2VFbmNvZGluZzsKKyAgICBTdHJpbmcgbV9yZXNw
b25zZU1JTUVUeXBlOworICAgIGJvb2wgbV9yZXNwb25zZUlzWE1MOwogCiAgICAgUmVmUHRyPFRl
eHRSZXNvdXJjZURlY29kZXI+IG1fZGVjb2RlcjsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119749</attachid>
            <date>2011-12-17 20:36:43 -0800</date>
            <delta_ts>2011-12-19 07:42:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74800-20111217233641.patch</filename>
            <type>text/plain</type>
            <size>5453</size>
            <attacher name="Jarred Nicholls">jarred</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzMTY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2ExNDMxMjk0N2RjNjlm
ZjBiMzMxMjE0NzZmZTRiZmUyYTg1NTBlNi4uMzc5MTViYzQ3OWQ5YWUxMzY5MzM1ZTg3NGQ2YmZh
OTZmYjVlM2Q3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDExLTEyLTE3ICBKYXJy
ZWQgTmljaG9sbHMgIDxqYXJyZWRAc2VuY2hhLmNvbT4KKworICAgICAgICBDYWNoZSBsb3dlcmNh
c2VkIHJlc3BvbnNlTUlNRVR5cGUgYW5kIHJlc3BvbnNlSXNYTUwgaW4gWEhSCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDgwMAorCisgICAgICAgIC0g
Q2FjaGUgdGhlIGxvd2VyY2FzZWQgcmVzdWx0IG9mIGV4dHJhY3RNSU1FVHlwZUZyb21SZXNwb25z
ZSgpIGZvciBmYXN0ZXIgbG9va3VwICYgY2FzZSBpbnNlbnNpdGl2ZSBzdHJpbmcgY29tcGFyaXNv
bnMuCisgICAgICAgIC0gQ2FjaGUgd2hhdCB3YXMgdGhlIHJlc3VsdCBvZiByZXNwb25zZUlzWE1M
KCkgdG8gcHJldmVudCByZWR1bmRhbnQgc3RyaW5nIGNvbXBhcmlzb25zIGFuZCBSZWdFeCBtYXRj
aGluZy4KKyAgICAgICAgLSBSZW1vdmUgcmVzcG9uc2VJc1hNTCgpIGFzIGl0IGhhcyBubyByZXVz
YWJsZSBwdXJwb3NlLgorICAgICAgICAtIFJlbmFtZSByZXNwb25zZU1JTUVUeXBlKCkgdG8gZXh0
cmFjdE1JTUVUeXBlRnJvbVJlc3BvbnNlKCkgZm9yIGNsYXJpdHkuCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBleGlzdGluZyB0
ZXN0cyBzdWZmaWNpZW50LgorCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZVhNTCk6CisgICAgICAgIChX
ZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VNSU1FVHlwZSk6CisgICAgICAgIChXZWJD
b3JlOjpYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VJc1hNTCk6CisgICAgICAgIChXZWJDb3JlOjpY
TUxIdHRwUmVxdWVzdDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlhN
TEh0dHBSZXF1ZXN0OjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1
ZXN0Lmg6CisKIDIwMTEtMTItMTcgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgog
CiAgICAgICAgIENhY2hlIGFuZCByZXVzZSB0aGUgSFRNTEFsbENvbGxlY3Rpb24gcmV0dXJuZWQg
YnkgZG9jdW1lbnQuYWxsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBS
ZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXgg
NDhjNzEzY2QxOWNmZWE4NTE2M2I5NzQ0ZTdhNzI3OTY2NDI0ODA2Ni4uYjZkOWJkMmJhMmM2MmVl
YzM0MjljYzE4NTJhODQyMDgzN2VjNDk3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3QuY3BwCkBAIC0yMjQsMTEgKzIyNCwxMSBAQCBEb2N1bWVudCogWE1MSHR0cFJlcXVlc3Q6OnJl
c3BvbnNlWE1MKEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGlm
ICghbV9jcmVhdGVkRG9jdW1lbnQpIHsKLSAgICAgICAgYm9vbCBpc0hUTUwgPSBlcXVhbElnbm9y
aW5nQ2FzZShyZXNwb25zZU1JTUVUeXBlKCksICJ0ZXh0L2h0bWwiKTsKKyAgICAgICAgYm9vbCBp
c0hUTUwgPSBtX3Jlc3BvbnNlTUlNRVR5cGUgPT0gInRleHQvaHRtbCI7CiAKICAgICAgICAgLy8g
VGhlIFczQyBzcGVjIHJlcXVpcmVzIHRoZSBmaW5hbCBNSU1FIHR5cGUgdG8gYmUgc29tZSB2YWxp
ZCBYTUwgdHlwZSwgb3IgdGV4dC9odG1sLgogICAgICAgICAvLyBJZiBpdCBpcyB0ZXh0L2h0bWws
IHRoZW4gdGhlIHJlc3BvbnNlVHlwZSBvZiAiZG9jdW1lbnQiIG11c3QgaGF2ZSBiZWVuIHN1cHBs
aWVkIGV4cGxpY2l0bHkuCi0gICAgICAgIGlmICgobV9yZXNwb25zZS5pc0hUVFAoKSAmJiAhcmVz
cG9uc2VJc1hNTCgpICYmICFpc0hUTUwpCisgICAgICAgIGlmICgobV9yZXNwb25zZS5pc0hUVFAo
KSAmJiAhbV9yZXNwb25zZUlzWE1MICYmICFpc0hUTUwpCiAgICAgICAgICAgICB8fCAoaXNIVE1M
ICYmIG1fcmVzcG9uc2VUeXBlQ29kZSA9PSBSZXNwb25zZVR5cGVEZWZhdWx0KQogICAgICAgICAg
ICAgfHwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1dvcmtlckNvbnRleHQoKSkgewogICAg
ICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50ID0gMDsKQEAgLTkxNyw3ICs5MTcsNyBAQCBTdHJp
bmcgWE1MSHR0cFJlcXVlc3Q6OmdldFJlc3BvbnNlSGVhZGVyKGNvbnN0IEF0b21pY1N0cmluZyYg
bmFtZSwgRXhjZXB0aW9uQ29kZQogICAgIHJldHVybiBtX3Jlc3BvbnNlLmh0dHBIZWFkZXJGaWVs
ZChuYW1lKTsKIH0KIAotU3RyaW5nIFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZU1JTUVUeXBlKCkg
Y29uc3QKK1N0cmluZyBYTUxIdHRwUmVxdWVzdDo6ZXh0cmFjdE1JTUVUeXBlRnJvbVJlc3BvbnNl
KCkgY29uc3QKIHsKICAgICBTdHJpbmcgbWltZVR5cGUgPSBleHRyYWN0TUlNRVR5cGVGcm9tTWVk
aWFUeXBlKG1fbWltZVR5cGVPdmVycmlkZSk7CiAgICAgaWYgKG1pbWVUeXBlLmlzRW1wdHkoKSkg
ewpAQCAtOTI4LDE1ICs5MjgsMTIgQEAgU3RyaW5nIFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZU1J
TUVUeXBlKCkgY29uc3QKICAgICB9CiAgICAgaWYgKG1pbWVUeXBlLmlzRW1wdHkoKSkKICAgICAg
ICAgbWltZVR5cGUgPSAidGV4dC94bWwiOworICAgIGVsc2UKKyAgICAgICAgbWltZVR5cGUubWFr
ZUxvd2VyKCk7CiAKICAgICByZXR1cm4gbWltZVR5cGU7CiB9CiAKLWJvb2wgWE1MSHR0cFJlcXVl
c3Q6OnJlc3BvbnNlSXNYTUwoKSBjb25zdAotewotICAgIHJldHVybiBET01JbXBsZW1lbnRhdGlv
bjo6aXNYTUxNSU1FVHlwZShyZXNwb25zZU1JTUVUeXBlKCkpOwotfQotCiBpbnQgWE1MSHR0cFJl
cXVlc3Q6OnN0YXR1cyhFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKIHsKICAgICBpZiAobV9yZXNw
b25zZS5odHRwU3RhdHVzQ29kZSgpKQpAQCAtMTAzOSw2ICsxMDM2LDggQEAgdm9pZCBYTUxIdHRw
UmVxdWVzdDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29u
c3QgUmVzb3VyY2UKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVYSFJS
ZXNwb25zZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGlkZW50aWZpZXIpOwogCiAgICAgbV9y
ZXNwb25zZSA9IHJlc3BvbnNlOworICAgIG1fcmVzcG9uc2VNSU1FVHlwZSA9IGV4dHJhY3RNSU1F
VHlwZUZyb21SZXNwb25zZSgpOworICAgIG1fcmVzcG9uc2VJc1hNTCA9IERPTUltcGxlbWVudGF0
aW9uOjppc1hNTE1JTUVUeXBlKG1fcmVzcG9uc2VNSU1FVHlwZSk7CiAgICAgbV9yZXNwb25zZUVu
Y29kaW5nID0gZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKG1fbWltZVR5cGVPdmVycmlkZSk7
CiAgICAgaWYgKG1fcmVzcG9uc2VFbmNvZGluZy5pc0VtcHR5KCkpCiAgICAgICAgIG1fcmVzcG9u
c2VFbmNvZGluZyA9IHJlc3BvbnNlLnRleHRFbmNvZGluZ05hbWUoKTsKQEAgLTEwNTgsMTEgKzEw
NTcsMTEgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciog
ZGF0YSwgaW50IGxlbikKICAgICAgICAgaWYgKCFtX3Jlc3BvbnNlRW5jb2RpbmcuaXNFbXB0eSgp
KQogICAgICAgICAgICAgbV9kZWNvZGVyID0gVGV4dFJlc291cmNlRGVjb2Rlcjo6Y3JlYXRlKCJ0
ZXh0L3BsYWluIiwgbV9yZXNwb25zZUVuY29kaW5nKTsKICAgICAgICAgLy8gYWxsb3cgVGV4dFJl
c291cmNlRGVjb2RlciB0byBsb29rIGluc2lkZSB0aGUgbV9yZXNwb25zZSBpZiBpdCdzIFhNTCBv
ciBIVE1MCi0gICAgICAgIGVsc2UgaWYgKHJlc3BvbnNlSXNYTUwoKSkgeworICAgICAgICBlbHNl
IGlmIChtX3Jlc3BvbnNlSXNYTUwpIHsKICAgICAgICAgICAgIG1fZGVjb2RlciA9IFRleHRSZXNv
dXJjZURlY29kZXI6OmNyZWF0ZSgiYXBwbGljYXRpb24veG1sIik7CiAgICAgICAgICAgICAvLyBE
b24ndCBzdG9wIG9uIGVuY29kaW5nIGVycm9ycywgdW5saWtlIGl0IGlzIGRvbmUgZm9yIG90aGVy
IGtpbmRzIG9mIFhNTCByZXNvdXJjZXMuIFRoaXMgbWF0Y2hlcyB0aGUgYmVoYXZpb3Igb2YgcHJl
dmlvdXMgV2ViS2l0IHZlcnNpb25zLCBGaXJlZm94IGFuZCBPcGVyYS4KICAgICAgICAgICAgIG1f
ZGVjb2Rlci0+dXNlTGVuaWVudFhNTERlY29kaW5nKCk7Ci0gICAgICAgIH0gZWxzZSBpZiAocmVz
cG9uc2VNSU1FVHlwZSgpID09ICJ0ZXh0L2h0bWwiKQorICAgICAgICB9IGVsc2UgaWYgKG1fcmVz
cG9uc2VNSU1FVHlwZSA9PSAidGV4dC9odG1sIikKICAgICAgICAgICAgIG1fZGVjb2RlciA9IFRl
eHRSZXNvdXJjZURlY29kZXI6OmNyZWF0ZSgidGV4dC9odG1sIiwgIlVURi04Iik7CiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIG1fZGVjb2RlciA9IFRleHRSZXNvdXJjZURlY29kZXI6OmNyZWF0
ZSgidGV4dC9wbGFpbiIsICJVVEYtOCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaApp
bmRleCBiY2JhMDk4NDM2MWE5NTRhYjQ1NDNkYTZiYjhmNzAzYjg1NDAxM2YyLi4wY2IyZTA0ZjBi
Nzk0MGQ5YjFiZmRjZDNiYTNjZGFjMzhlM2FiN2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuaApAQCAtMTYxLDggKzE2MSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRp
ZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsUmVk
aXJlY3RDaGVjaygpOwogCi0gICAgU3RyaW5nIHJlc3BvbnNlTUlNRVR5cGUoKSBjb25zdDsKLSAg
ICBib29sIHJlc3BvbnNlSXNYTUwoKSBjb25zdDsKKyAgICBTdHJpbmcgZXh0cmFjdE1JTUVUeXBl
RnJvbVJlc3BvbnNlKCkgY29uc3Q7CiAKICAgICBib29sIGluaXRTZW5kKEV4Y2VwdGlvbkNvZGUm
KTsKIApAQCAtMjAxLDYgKzIwMCw4IEBAIHByaXZhdGU6CiAKICAgICBSZXNvdXJjZVJlc3BvbnNl
IG1fcmVzcG9uc2U7CiAgICAgU3RyaW5nIG1fcmVzcG9uc2VFbmNvZGluZzsKKyAgICBTdHJpbmcg
bV9yZXNwb25zZU1JTUVUeXBlOworICAgIGJvb2wgbV9yZXNwb25zZUlzWE1MOwogCiAgICAgUmVm
UHRyPFRleHRSZXNvdXJjZURlY29kZXI+IG1fZGVjb2RlcjsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119862</attachid>
            <date>2011-12-19 07:42:32 -0800</date>
            <delta_ts>2011-12-19 12:32:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74800-20111219104230.patch</filename>
            <type>text/plain</type>
            <size>7377</size>
            <attacher name="Jarred Nicholls">jarred</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzMjMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDA2MjQ1YzQ2MzRjMDIz
OGQ1Y2MxNjk5N2RjMTFhNTY5NjNlZWVmMi4uNTg1ZWFlNGMzOGY0MDJhZDc2ODUzYjQwY2JkNjBj
YjQ0M2ViMzQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDExLTEyLTE5ICBKYXJy
ZWQgTmljaG9sbHMgIDxqYXJyZWRAc2VuY2hhLmNvbT4KKworICAgICAgICBQZXJmb3JtIGNhc2Ug
aW5zZW5zaXRpdmUgbWF0Y2hpbmcgb24gTUlNRSB0eXBlcyBpbiBYSFIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODAwCisKKyAgICAgICAgRm9yY2Ug
dGhlIHJlc3VsdCBvZiByZXNwb25zZU1JTUVUeXBlIHRvIGJlIGxvd2VyY2FzZWQgc28gb3VyIE1J
TUUgc3RyaW5nIGNvbXBhcmlzb25zIGFyZQorICAgICAgICBlc3NlbnRpYWxseSBjYXNlIGluc2Vu
c2l0aXZlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3RzOiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LW1pbWV0eXBl
LW1peGVkLWNhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC94bWxodHRwcmVxdWVzdC1vdmVycmlkZW1pbWV0eXBlLW1peGVkLWNhc2UuaHRtbAorCisgICAg
ICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBS
ZXF1ZXN0OjpyZXNwb25zZVhNTCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6
cmVzcG9uc2VNSU1FVHlwZSk6CisKIDIwMTEtMTItMTkgIFBhdmVsIEZlbGRtYW4gIDxwYXZlbC5m
ZWxkbWFuQGdtYWlsLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBvbmx5IHRoZSBmaXJz
dCBAcnVsZSBpcyBoaWdobGlnaHRlZCBpbiBDU1MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3QuY3BwCmluZGV4IDQ4YzcxM2NkMTljZmVhODUxNjNiOTc0NGU3YTcyNzk2NjQyNDgwNjYuLjQx
NzRiMGFmNmI3OTU0OTA2MmYwMzNjYTIwOGQwOTJhOTY2MDA5NzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtMjI0LDcgKzIyNCw3IEBAIERvY3VtZW50KiBYTUxIdHRw
UmVxdWVzdDo6cmVzcG9uc2VYTUwoRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIHJldHVybiAw
OwogCiAgICAgaWYgKCFtX2NyZWF0ZWREb2N1bWVudCkgewotICAgICAgICBib29sIGlzSFRNTCA9
IGVxdWFsSWdub3JpbmdDYXNlKHJlc3BvbnNlTUlNRVR5cGUoKSwgInRleHQvaHRtbCIpOworICAg
ICAgICBib29sIGlzSFRNTCA9IHJlc3BvbnNlTUlNRVR5cGUoKSA9PSAidGV4dC9odG1sIjsKIAog
ICAgICAgICAvLyBUaGUgVzNDIHNwZWMgcmVxdWlyZXMgdGhlIGZpbmFsIE1JTUUgdHlwZSB0byBi
ZSBzb21lIHZhbGlkIFhNTCB0eXBlLCBvciB0ZXh0L2h0bWwuCiAgICAgICAgIC8vIElmIGl0IGlz
IHRleHQvaHRtbCwgdGhlbiB0aGUgcmVzcG9uc2VUeXBlIG9mICJkb2N1bWVudCIgbXVzdCBoYXZl
IGJlZW4gc3VwcGxpZWQgZXhwbGljaXRseS4KQEAgLTkyOCw2ICs5MjgsOCBAQCBTdHJpbmcgWE1M
SHR0cFJlcXVlc3Q6OnJlc3BvbnNlTUlNRVR5cGUoKSBjb25zdAogICAgIH0KICAgICBpZiAobWlt
ZVR5cGUuaXNFbXB0eSgpKQogICAgICAgICBtaW1lVHlwZSA9ICJ0ZXh0L3htbCI7CisgICAgZWxz
ZQorICAgICAgICBtaW1lVHlwZS5tYWtlTG93ZXIoKTsKIAogICAgIHJldHVybiBtaW1lVHlwZTsK
IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBjNDk3YjkzMGI3NWYwYzYyOWQzM2M2ODU3MTFkNWVjMjhiZDAyNTkzLi4xZTBl
Y2Q1YjkzNTQzOTMzNmRhNmEzMTEyMTMxZGE1MGZkMjVjYmQ2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTEtMTItMTkgIEphcnJlZCBOaWNob2xscyAgPGphcnJlZEBzZW5jaGEuY29tPgorCisg
ICAgICAgIFBlcmZvcm0gY2FzZSBpbnNlbnNpdGl2ZSBtYXRjaGluZyBvbiBNSU1FIHR5cGVzIGlu
IFhIUgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4
MDAKKworICAgICAgICBOZXcgdGVzdHMgdGhhdCB2ZXJpZnkgbWl4ZWQgY2FzZSBNSU1FIHR5cGVz
IGFyZSBwcm9wZXJseSBoYW5kbGVkIGluIFhIUiBmb3IKKyAgICAgICAgLSB1c2VyIHByb3ZpZGVk
IHR5cGVzIHZpYSBvdmVycmlkZU1pbWVUeXBlKCkKKyAgICAgICAgLSBzZXJ2ZXItc2VudCBDb250
ZW50LVR5cGUgaGVhZGVycworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMveG1saHR0cHJl
cXVlc3QtbWltZXR5cGUtbWl4ZWQtY2FzZS5waHA6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtbWltZXR5cGUtbWl4ZWQtY2FzZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1
ZXN0LW92ZXJyaWRlbWltZXR5cGUtbWl4ZWQtY2FzZS5odG1sOiBBZGRlZC4KKwogMjAxMS0xMi0x
OSAgTWlraGFpbCBOYWdhbm92ICA8bW5hZ2Fub3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtD
aHJvbWl1bV0gUmVtb3Zpbmcgc3VwcHJlc3Npb25zIGZyb206CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1t
aW1ldHlwZS1taXhlZC1jYXNlLnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvcmVzb3VyY2VzL3htbGh0dHByZXF1ZXN0LW1pbWV0eXBlLW1peGVkLWNhc2UucGhwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjgyYzgzZWIwOThjZDIzOTk1MTcxMzEzNjhhN2I2ZDYwNDIxOTYzZjIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291
cmNlcy94bWxodHRwcmVxdWVzdC1taW1ldHlwZS1taXhlZC1jYXNlLnBocApAQCAtMCwwICsxLDQg
QEAKKzw/cGhwCitoZWFkZXIoJ0NvbnRlbnQtVHlwZTogQXBwbGljYXRpb24vWGh0bWwrWG1sJyk7
CityZWFkZmlsZSgnbG9hZC1pY29uLnhodG1sJyk7Cis/PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
eG1saHR0cHJlcXVlc3QtbWltZXR5cGUtbWl4ZWQtY2FzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1taW1ldHlwZS1taXhlZC1jYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDQ4YjMzMjRjZWE5OWYxNWZiMzc0OGYzNjJmYmRjNzJkMmNkZWU0
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QveG1saHR0cHJlcXVlc3QtbWltZXR5cGUtbWl4ZWQtY2FzZS5odG1sCkBAIC0wLDAgKzEsNDMg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD48L2hlYWQ+Cis8Ym9keT4KKyAgICA8
aDM+VGhpcyB0ZXN0cyB0aGF0IFhNTEh0dHBSZXF1ZXN0IG92ZXJyaWRlTWltZVR5cGUoKSBwcm9w
ZXJseSBoYW5kbGVzIG1peGVkIGNhc2UgTUlNRSBzdHJpbmdzLjwvaDM+CisgICAgPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+CisKKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBsb2cobWVzc2FnZSkgeworICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2JyJykpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoKCkgeworICAgICAg
ICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKworICAgICAgICB2
YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCksCisgICAgICAgICAgICB1cmwgPSAncmVzb3Vy
Y2VzL3htbGh0dHByZXF1ZXN0LW1pbWV0eXBlLW1peGVkLWNhc2UucGhwJzsKKyAgICAgICAgeGhy
Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHhoci5yZXNwb25zZVhNTCkg
eworICAgICAgICAgICAgICAgIGxvZygnUEFTUzogeGhyLnJlc3BvbnNlWE1MIHJlY29nbml6ZWQg
dGhlIG1peGVkIGNhc2UgTUlNRSB0eXBlIGFuZCByZXR1cm5lZCBhbiBYTUwgZG9jdW1lbnQnKTsK
KyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9nKCdGQUlMOiB4aHIucmVz
cG9uc2VYTUwgZmFpbGVkIHRvIHJlY29nbml6ZSB0aGUgbWl4ZWQgY2FzZSBNSU1FIHR5cGUgYW5k
IHJldHVybmVkIG51bGwnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZpbmlzaCgpOwor
ICAgICAgICB9OworICAgICAgICB4aHIub25lcnJvciA9IGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgbG9nKCdGQUlMOiBUaGUgWEhSIHJlcXVlc3QgdG8gYW4gZXhpc3RpbmcgcmVzb3VyY2UgZmFp
bGVkOiAiJyArIHVybCArICciJyk7CisgICAgICAgICAgICBmaW5pc2goKTsKKyAgICAgICAgfTsK
KyAgICAgICAgeGhyLm9wZW4oJ0dFVCcsIHVybCk7CisgICAgICAgIHhoci5yZXNwb25zZVR5cGUg
PSAnZG9jdW1lbnQnOworICAgICAgICB4aHIuc2VuZChudWxsKTsKKyAgICA8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qtb3ZlcnJpZGVtaW1ldHlwZS1taXhlZC1jYXNlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LW92
ZXJyaWRlbWltZXR5cGUtbWl4ZWQtY2FzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjNjVkODA5YTI0YWIw
Mjc5Mjk5MjBmMjNkNTZhYTkzODlhZDQyMjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LW92ZXJyaWRlbWltZXR5
cGUtbWl4ZWQtY2FzZS5odG1sCkBAIC0wLDAgKzEsNDQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD48L2hlYWQ+Cis8Ym9keT4KKyAgICA8aDM+VGhpcyB0ZXN0cyB0aGF0IFhNTEh0
dHBSZXF1ZXN0IG92ZXJyaWRlTWltZVR5cGUoKSBwcm9wZXJseSBoYW5kbGVzIG1peGVkIGNhc2Ug
TUlNRSBzdHJpbmdzLjwvaDM+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKyAgICA8
c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIH0KKworICAgICAg
ICBmdW5jdGlvbiBsb2cobWVzc2FnZSkgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNz
YWdlKSk7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2JyJykpOworICAgICAgICB9CisKKyAg
ICAgICAgZnVuY3Rpb24gZmluaXNoKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3Rp
ZnlEb25lKCk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1
ZXN0KCksCisgICAgICAgICAgICB1cmwgPSAncmVzb3VyY2VzL2xvYWQtaWNvbi54aHRtbCc7Cisg
ICAgICAgIHhoci5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh4aHIucmVz
cG9uc2VYTUwpIHsKKyAgICAgICAgICAgICAgICBsb2coJ1BBU1M6IHhoci5yZXNwb25zZVhNTCBy
ZWNvZ25pemVkIHRoZSBtaXhlZCBjYXNlIE1JTUUgdHlwZSBhbmQgcmV0dXJuZWQgYW4gWE1MIGRv
Y3VtZW50Jyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZygnRkFJ
TDogeGhyLnJlc3BvbnNlWE1MIGZhaWxlZCB0byByZWNvZ25pemUgdGhlIG1peGVkIGNhc2UgTUlN
RSB0eXBlIGFuZCByZXR1cm5lZCBudWxsJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBm
aW5pc2goKTsKKyAgICAgICAgfTsKKyAgICAgICAgeGhyLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIGxvZygnRkFJTDogVGhlIFhIUiByZXF1ZXN0IHRvIGFuIGV4aXN0aW5nIHJl
c291cmNlIGZhaWxlZDogIicgKyB1cmwgKyAnIicpOworICAgICAgICAgICAgZmluaXNoKCk7Cisg
ICAgICAgIH07CisgICAgICAgIHhoci5vcGVuKCdHRVQnLCB1cmwpOworICAgICAgICB4aHIub3Zl
cnJpZGVNaW1lVHlwZSgnQXBwbGljYXRpb24vWGh0bWwrWG1sJyk7CisgICAgICAgIHhoci5yZXNw
b25zZVR5cGUgPSAnZG9jdW1lbnQnOworICAgICAgICB4aHIuc2VuZChudWxsKTsKKyAgICA8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119903</attachid>
            <date>2011-12-19 12:32:26 -0800</date>
            <delta_ts>2011-12-20 13:07:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74800-20111219153224.patch</filename>
            <type>text/plain</type>
            <size>8337</size>
            <attacher name="Jarred Nicholls">jarred</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzMjUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzVjNWI1NzM1MThmYzMz
NGJmYzM3NDMxYThkN2FlN2Q1MTcwY2FlOC4uMmM5NDIyYTRhMjA3MThhYmEyNjYwMDNlOGE0Njky
OWYxNTVhYmJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDExLTEyLTE5ICBKYXJy
ZWQgTmljaG9sbHMgIDxqYXJyZWRAc2VuY2hhLmNvbT4KKworICAgICAgICBQZXJmb3JtIGNhc2Ug
aW5zZW5zaXRpdmUgbWF0Y2hpbmcgb24gTUlNRSB0eXBlcyBpbiBYSFIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODAwCisKKyAgICAgICAgUGVyZm9y
bSBjYXNlIGluc2Vuc2l0aXZlIG1hdGNoaW5nIG9uIHJlc3BvbnNlTUlNRVR5cGUoKSBpbiBkaWRS
ZWNlaXZlRGF0YSgpLgorICAgICAgICBXb3JrYXJvdW5kIGNhc2Ugc2Vuc2l0aXZlIG1hdGNoaW5n
IGJ5IERPTUltcGxlbWVudGF0aW9uOjppc1hNTE1JTUVUeXBlKCkgaW4gcmVzcG9uc2VJc1hNTCgp
LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Rz
OiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LW1pbWV0eXBlLW1peGVk
LWNhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxo
dHRwcmVxdWVzdC1vdmVycmlkZW1pbWV0eXBlLW1peGVkLWNhc2UuaHRtbAorCisgICAgICAgICog
eG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0
OjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6cmVz
cG9uc2VJc1hNTCk6CisKIDIwMTEtMTItMTkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgTWVkaWFDb250cm9sbGVyOiBjYW5ub3Qgc2NydWIgd2hpbGUgcGxheWlu
Zy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IDQ4YzcxM2NkMTljZmVh
ODUxNjNiOTc0NGU3YTcyNzk2NjQyNDgwNjYuLjVlZmUwNTQ5MmQ1OTY0OGRkMTk0ZjRkOTRkYzBl
ZmU0YWFkOTMwZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVz
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtOTM0
LDcgKzkzNCw5IEBAIFN0cmluZyBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VNSU1FVHlwZSgpIGNv
bnN0CiAKIGJvb2wgWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlSXNYTUwoKSBjb25zdAogewotICAg
IHJldHVybiBET01JbXBsZW1lbnRhdGlvbjo6aXNYTUxNSU1FVHlwZShyZXNwb25zZU1JTUVUeXBl
KCkpOworICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhlIGxvd2VyKCkgY2FsbCB3aGVuIERPTUltcGxl
bWVudGF0aW9uLmlzWE1MTUlNRVR5cGUoKSBpcyBtb2RpZmllZAorICAgIC8vICAgICAgICB0byBk
byBjYXNlIGluc2Vuc2l0aXZlIE1JTUUgdHlwZSBtYXRjaGluZy4KKyAgICByZXR1cm4gRE9NSW1w
bGVtZW50YXRpb246OmlzWE1MTUlNRVR5cGUocmVzcG9uc2VNSU1FVHlwZSgpLmxvd2VyKCkpOwog
fQogCiBpbnQgWE1MSHR0cFJlcXVlc3Q6OnN0YXR1cyhFeGNlcHRpb25Db2RlJiBlYykgY29uc3QK
QEAgLTEwNjIsNyArMTA2NCw3IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmRpZFJlY2VpdmVEYXRh
KGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW4pCiAgICAgICAgICAgICBtX2RlY29kZXIgPSBUZXh0
UmVzb3VyY2VEZWNvZGVyOjpjcmVhdGUoImFwcGxpY2F0aW9uL3htbCIpOwogICAgICAgICAgICAg
Ly8gRG9uJ3Qgc3RvcCBvbiBlbmNvZGluZyBlcnJvcnMsIHVubGlrZSBpdCBpcyBkb25lIGZvciBv
dGhlciBraW5kcyBvZiBYTUwgcmVzb3VyY2VzLiBUaGlzIG1hdGNoZXMgdGhlIGJlaGF2aW9yIG9m
IHByZXZpb3VzIFdlYktpdCB2ZXJzaW9ucywgRmlyZWZveCBhbmQgT3BlcmEuCiAgICAgICAgICAg
ICBtX2RlY29kZXItPnVzZUxlbmllbnRYTUxEZWNvZGluZygpOwotICAgICAgICB9IGVsc2UgaWYg
KHJlc3BvbnNlTUlNRVR5cGUoKSA9PSAidGV4dC9odG1sIikKKyAgICAgICAgfSBlbHNlIGlmIChl
cXVhbElnbm9yaW5nQ2FzZShyZXNwb25zZU1JTUVUeXBlKCksICJ0ZXh0L2h0bWwiKSkKICAgICAg
ICAgICAgIG1fZGVjb2RlciA9IFRleHRSZXNvdXJjZURlY29kZXI6OmNyZWF0ZSgidGV4dC9odG1s
IiwgIlVURi04Iik7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fZGVjb2RlciA9IFRleHRS
ZXNvdXJjZURlY29kZXI6OmNyZWF0ZSgidGV4dC9wbGFpbiIsICJVVEYtOCIpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ2
ODVlZmM1MzAzNGEwN2NkNjk3MTUyZTgwNTg1MGFjZGNhYTE4ZTQuLjZkNGU3NmU1YjkwOGVkNTFj
MDU1MDE2NGYyMzNlNjNjMDc0NWY1MDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMS0xMi0x
OSAgSmFycmVkIE5pY2hvbGxzICA8amFycmVkQHNlbmNoYS5jb20+CisKKyAgICAgICAgUGVyZm9y
bSBjYXNlIGluc2Vuc2l0aXZlIG1hdGNoaW5nIG9uIE1JTUUgdHlwZXMgaW4gWEhSCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDgwMAorCisgICAgICAg
IE5ldyB0ZXN0cyB0aGF0IHZlcmlmeSBtaXhlZCBjYXNlIE1JTUUgdHlwZXMgYXJlIHByb3Blcmx5
IGhhbmRsZWQgaW4gWEhSIGZvcgorICAgICAgICAtIHVzZXIgcHJvdmlkZWQgdHlwZXMgdmlhIG92
ZXJyaWRlTWltZVR5cGUoKQorICAgICAgICAtIHNlcnZlci1zZW50IENvbnRlbnQtVHlwZSBoZWFk
ZXJzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1taW1ldHlw
ZS1taXhlZC1jYXNlLnBocDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC94bWxodHRwcmVxdWVzdC1taW1ldHlwZS1taXhlZC1jYXNlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtbWltZXR5cGUt
bWl4ZWQtY2FzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qtb3ZlcnJpZGVtaW1ldHlwZS1taXhlZC1jYXNlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJl
cXVlc3Qtb3ZlcnJpZGVtaW1ldHlwZS1taXhlZC1jYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisK
IDIwMTEtMTItMTkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAg
TWVkaWFDb250cm9sbGVyOiBjYW5ub3Qgc2NydWIgd2hpbGUgcGxheWluZy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3htbGh0dHBy
ZXF1ZXN0LW1pbWV0eXBlLW1peGVkLWNhc2UucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMveG1saHR0cHJlcXVlc3QtbWltZXR5cGUtbWl4ZWQtY2Fz
ZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODJjODNlYjA5OGNkMjM5OTUxNzEzMTM2OGE3YjZkNjA0MjE5NjNm
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvcmVzb3VyY2VzL3htbGh0dHByZXF1ZXN0LW1pbWV0eXBlLW1peGVkLWNhc2UucGhwCkBAIC0w
LDAgKzEsNCBAQAorPD9waHAKK2hlYWRlcignQ29udGVudC1UeXBlOiBBcHBsaWNhdGlvbi9YaHRt
bCtYbWwnKTsKK3JlYWRmaWxlKCdsb2FkLWljb24ueGh0bWwnKTsKKz8+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC94bWxodHRwcmVxdWVzdC1taW1ldHlwZS1taXhlZC1jYXNlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtbWlt
ZXR5cGUtbWl4ZWQtY2FzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjU1OWU4ZWJjMmU4MGM5
MzZjMjIyYzdiZTA5YjBlMDllYmI4ZmYyYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtbWltZXR5cGUtbWl4ZWQt
Y2FzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGhpcyB0ZXN0cyB0aGF0IFhNTEh0
dHBSZXF1ZXN0IHByb3Blcmx5IGhhbmRsZXMgbWl4ZWQgY2FzZSBNSU1FIHN0cmluZ3MuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHhoci5yZXNwb25zZVhNTCBpcyBub24t
bnVsbC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0
dHByZXF1ZXN0LW1pbWV0eXBlLW1peGVkLWNhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtbWltZXR5cGUtbWl4ZWQtY2FzZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmNhNDg0YzQzZDE1NWJkZDI5Njk5NDZjMTk5NDYzNDYxNDllYTE3YTkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3ht
bGh0dHByZXF1ZXN0LW1pbWV0eXBlLW1peGVkLWNhc2UuaHRtbApAQCAtMCwwICsxLDI5IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAg
ICAgZGVzY3JpcHRpb24oJ1RoaXMgdGVzdHMgdGhhdCBYTUxIdHRwUmVxdWVzdCBwcm9wZXJseSBo
YW5kbGVzIG1peGVkIGNhc2UgTUlNRSBzdHJpbmdzLicpOworICAgICAgICB3aW5kb3cuanNUZXN0
SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgp
LAorICAgICAgICAgICAgdXJsID0gJ3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1taW1ldHlwZS1t
aXhlZC1jYXNlLnBocCc7CisgICAgICAgIHhoci5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgIHNob3VsZEJlTm9uTnVsbCgneGhyLnJlc3BvbnNlWE1MJyk7CisgICAgICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfTsKKyAgICAgICAgeGhyLm9uZXJyb3IgPSBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoJ1RoZSBYSFIgcmVxdWVzdCB0byBhbiBleGlz
dGluZyByZXNvdXJjZSBmYWlsZWQ6ICInICsgdXJsICsgJyInKTsKKyAgICAgICAgICAgIGZpbmlz
aEpTVGVzdCgpOworICAgICAgICB9OworICAgICAgICB4aHIub3BlbignR0VUJywgdXJsKTsKKyAg
ICAgICAgeGhyLnJlc3BvbnNlVHlwZSA9ICdkb2N1bWVudCc7CisgICAgICAgIHhoci5zZW5kKG51
bGwpOworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9
ImRlc2NyaXB0aW9uIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QveG1saHR0cHJlcXVlc3Qtb3ZlcnJpZGVtaW1ldHlwZS1taXhlZC1jYXNlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVl
c3Qtb3ZlcnJpZGVtaW1ldHlwZS1taXhlZC1jYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
ZTYzY2E1ZWVlMTQ0OWU0NmQ5YzU0MGQ2ZTZhMDBiYzQ2NDUzYjU5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1v
dmVycmlkZW1pbWV0eXBlLW1peGVkLWNhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAK
K1RoaXMgdGVzdHMgdGhhdCBYTUxIdHRwUmVxdWVzdCBvdmVycmlkZU1pbWVUeXBlKCkgcHJvcGVy
bHkgaGFuZGxlcyBtaXhlZCBjYXNlIE1JTUUgc3RyaW5ncy4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgeGhyLnJlc3BvbnNlWE1MIGlzIG5vbi1udWxsLgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qtb3ZlcnJp
ZGVtaW1ldHlwZS1taXhlZC1jYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LW92ZXJyaWRlbWltZXR5cGUtbWl4ZWQtY2FzZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjJkZjUwZjU1ZjhlZTI2YWY2MjNmY2QzMjA2YjA4NjJiZGQ1Yjk0MDcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3ht
bGh0dHByZXF1ZXN0LW92ZXJyaWRlbWltZXR5cGUtbWl4ZWQtY2FzZS5odG1sCkBAIC0wLDAgKzEs
MzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
PgorICAgICAgICBkZXNjcmlwdGlvbignVGhpcyB0ZXN0cyB0aGF0IFhNTEh0dHBSZXF1ZXN0IG92
ZXJyaWRlTWltZVR5cGUoKSBwcm9wZXJseSBoYW5kbGVzIG1peGVkIGNhc2UgTUlNRSBzdHJpbmdz
LicpOworICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgdmFy
IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpLAorICAgICAgICAgICAgdXJsID0gJ3Jlc291cmNl
cy9sb2FkLWljb24ueGh0bWwnOworICAgICAgICB4aHIub25sb2FkID0gZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoJ3hoci5yZXNwb25zZVhNTCcpOworICAgICAgICAg
ICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH07CisgICAgICAgIHhoci5vbmVycm9yID0gZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCdUaGUgWEhSIHJlcXVlc3QgdG8gYW4g
ZXhpc3RpbmcgcmVzb3VyY2UgZmFpbGVkOiAiJyArIHVybCArICciJyk7CisgICAgICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfTsKKyAgICAgICAgeGhyLm9wZW4oJ0dFVCcsIHVybCk7
CisgICAgICAgIHhoci5vdmVycmlkZU1pbWVUeXBlKCdBcHBsaWNhdGlvbi9YaHRtbCtYbWwnKTsK
KyAgICAgICAgeGhyLnJlc3BvbnNlVHlwZSA9ICdkb2N1bWVudCc7CisgICAgICAgIHhoci5zZW5k
KG51bGwpOworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYg
aWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>