<?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>59774</bug_id>
          
          <creation_ts>2011-04-28 20:46:24 -0700</creation_ts>
          <short_desc>Add template parameter to ApplyPropertyColor to improve clarity by removing constructor parameter side effects.</short_desc>
          <delta_ts>2011-05-03 20:36: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>Other</rep_platform>
          <op_sys>OS X 10.5</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>
          <dependson>59623</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Luke Macpherson">macpherson</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>395073</commentid>
    <comment_count>0</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-04-28 20:46:24 -0700</bug_when>
    <thetext>Add template parameter to ApplyPropertyColor to improve clarity by removing constructor parameter side effects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395075</commentid>
    <comment_count>1</comment_count>
      <attachid>91629</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-04-28 20:48:28 -0700</bug_when>
    <thetext>Created attachment 91629
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395166</commentid>
    <comment_count>2</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2011-04-29 01:18:04 -0700</bug_when>
    <thetext>It would be better to use enum instead of a boolean as the parameter. ApplyPropertyColor&lt;true&gt; is pretty magical. I assume the same enum would be useful for other non-color properties too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395264</commentid>
    <comment_count>3</comment_count>
      <attachid>91629</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-04-29 07:55:35 -0700</bug_when>
    <thetext>Comment on attachment 91629
Patch

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

I like it, but a few nits:

&gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:132
&gt; +template &lt;bool inheritColorFromParent = false&gt;

Can a template parameter be an enum, like enum InheritColor { InheritColorFromParent, WhateverTheOtherValue };

&gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:343
&gt; +    setPropertyValue(CSSPropertyColor, new ApplyPropertyColor&lt;true&gt;(&amp;RenderStyle::color, &amp;RenderStyle::setColor, 0, RenderStyle::initialColor));

This way, you could write this as new ApplyPropertyColor&lt;IneritColorFromParent&gt; -- much more readable.

&gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:404
&gt; +    setPropertyValue(CSSPropertyBackgroundColor, new ApplyPropertyColor&lt;&gt;(&amp;RenderStyle::backgroundColor, &amp;RenderStyle::setBackgroundColor, 0));

And without the default value, this could look prettier too, explicitly explaining what&apos;s happening.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396179</commentid>
    <comment_count>4</comment_count>
      <attachid>91869</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-05-01 18:45:35 -0700</bug_when>
    <thetext>Created attachment 91869
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396182</commentid>
    <comment_count>5</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-05-01 18:53:15 -0700</bug_when>
    <thetext>Incorporated suggestions from Antti and Dimitri.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396918</commentid>
    <comment_count>6</comment_count>
      <attachid>91869</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-02 19:37:04 -0700</bug_when>
    <thetext>Comment on attachment 91869
Patch

Rejecting attachment 91869 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-4&apos;, &apos;apply-...&quot; exit_code: 2

Last 500 characters of output:
iffs from patch file(s).
patching file Source/WebCore/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/WebCore/css/CSSStyleApplyProperty.cpp
Hunk #3 succeeded at 386 (offset 45 lines).
Hunk #4 succeeded at 447 (offset 45 lines).
Hunk #5 FAILED at 465.
1 out of 5 hunks FAILED -- saving rejects to file Source/WebCore/css/CSSStyleApplyProperty.cpp.rej

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Dimitri Glazkov&apos;, u&apos;--...&quot; exit_code: 1

Full output: http://queues.webkit.org/results/8531848</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396958</commentid>
    <comment_count>7</comment_count>
      <attachid>92045</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-05-02 22:12:09 -0700</bug_when>
    <thetext>Created attachment 92045
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396959</commentid>
    <comment_count>8</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-05-02 22:14:18 -0700</bug_when>
    <thetext>Last patch is just a merge to resolve conflicts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397667</commentid>
    <comment_count>9</comment_count>
      <attachid>92045</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-03 20:35:10 -0700</bug_when>
    <thetext>Comment on attachment 92045
Patch

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

I have some rather nebulous random nits/questions:

&gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:173
&gt;              (selector-&gt;style()-&gt;*m_setter)(selector-&gt;getColorFromPrimitiveValue(primitiveValue));

I&apos;m not a big fan of the direct use of function pointers.  But if this is the only use of m_setter, than maybe this is best. If we&apos;re using it more than once we should consider wrapping it in a helper to call m_setter for us.

&gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:450
&gt; +    setPropertyValue(CSSPropertyBackgroundColor, new ApplyPropertyColor&lt;NoInheritFromParent&gt;(&amp;RenderStyle::backgroundColor, &amp;RenderStyle::setBackgroundColor, 0));

I think we should consider giving the template a default value to inherit or not inherit, whichever is more common.

We should consider moving to the ::create() style as well at some point.

Are these OwnPtr&apos;s?  If so, we&apos;ll need to adopt() them to comply with strict own ptr rules.

We seem to have a bunch of repeated information between these lines.  Perhaps we can find a way to reduce the copy/paste so as to highlight the differences more?

&gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:468
&gt; +    setPropertyValue(CSSPropertyOutlineColor, new ApplyPropertyColor&lt;InheritFromParent&gt;(&amp;RenderStyle::outlineColor, &amp;RenderStyle::setOutlineColor, &amp;RenderStyle::color));

I should probably know this by now, but I assume we have a single table for all of these?  Should we be concerned about the extra heap allocations moving this out of static data?  I suspect that given how huge the previous macro-based solution was, this is probably still a memory size win.

&gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:474
&gt; +    setPropertyValue(CSSPropertyWebkitColumnRuleColor, new ApplyPropertyColor&lt;NoInheritFromParent&gt;(&amp;RenderStyle::columnRuleColor, &amp;RenderStyle::setColumnRuleColor, &amp;RenderStyle::color));

Maybe we should consider moving the creation of these onto RenderStyle so we could get rid of the RenderStyle:: copy/paste.

I&apos;m trying to envison what the ideal code line would look like.  We&apos;re trying to map from a CSSPropertyName to a set of functions to apply it to the RenderStyle, right?  Obviously there is a little bit of logic as well, but that&apos;s encapsulated in the Apply* type.

Do these ever have more than 4 bits of data?  Should we do this using structs of some form?
{CSSPropertyWebkitColumnRuleColor, ApplyPropertyColor, columnRuleColor, setColumnRuleColor, color}

I&apos;m not sure I&apos;m a big enough fan of macros to suggest we macro some of this.  I&apos;m not sure that would help.

Should we autogenerate this from some DSL?

This is probably all thinking too far ahead.

I think we seem to have general agreement that a function-pointer based solution is better than the previous huge switch statement with macros.

The question is what that solution looks like in the end.  One of my goals would be to make it as easily hackable/readable as possible in the final product.

Obviously you&apos;re not at the final product yet.  We have a lot of room to iterate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397668</commentid>
    <comment_count>10</comment_count>
      <attachid>92045</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-03 20:36:16 -0700</bug_when>
    <thetext>Comment on attachment 92045
Patch

Clearing flags on attachment: 92045

Committed r85711: &lt;http://trac.webkit.org/changeset/85711&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397669</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-03 20:36:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91629</attachid>
            <date>2011-04-28 20:48:28 -0700</date>
            <delta_ts>2011-05-01 18:45:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59774-20110429134825.patch</filename>
            <type>text/plain</type>
            <size>7588</size>
            <attacher name="Luke Macpherson">macpherson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg1Mjk3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDQtMjggIEx1a2UgTWFj
cGhlcnNvbiAgIDxtYWNwaGVyc29uQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVtcGxhdGUgcGFyYW1ldGVyIHRvIEFw
cGx5UHJvcGVydHlDb2xvciB0byBpbXByb3ZlIGNsYXJpdHkgYnkgcmVtb3ZpbmcgY29uc3RydWN0
b3IgcGFyYW1ldGVyIHNpZGUgZWZmZWN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTU5Nzc0CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEp
CisKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGx5UHJvcGVydHlDb2xvcjo6YXBwbHlWYWx1ZSk6CisgICAgICAgIEFkZGVkIHRl
bXBsYXRlIHBhcmFtZXRlciAiaW5oZXJpdENvbG9yRnJvbVBhcmVudCA9IGZhbHNlIi4KKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1N0eWxlQXBwbHlQcm9wZXJ0eTo6Q1NTU3R5bGVBcHBseVByb3BlcnR5
KToKKyAgICAgICAgVXNlIHRlbXBsYXRlIHBhcmFtZXRlciB3aGVyZSBhcHByb3ByaWF0ZS4KKwog
MjAxMS0wNC0yOCAgWWFlbCBBaGFyb24gIDx5YWVsLmFoYXJvbkBub2tpYS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQmV0aCBEYWtpbi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NT
dHlsZUFwcGx5UHJvcGVydHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZUFwcGx5UHJvcGVydHkuY3BwCShyZXZpc2lvbiA4NTI5MSkKKysrIFNvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTdHlsZUFwcGx5UHJvcGVydHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjks
NiArMTI5LDcgQEAgcHJvdGVjdGVkOgogICAgIH0KIH07CiAKK3RlbXBsYXRlIDxib29sIGluaGVy
aXRDb2xvckZyb21QYXJlbnQgPSBmYWxzZT4KIGNsYXNzIEFwcGx5UHJvcGVydHlDb2xvciA6IHB1
YmxpYyBBcHBseVByb3BlcnR5QmFzZSB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBjb25zdCBDb2xv
ciYgKFJlbmRlclN0eWxlOjoqR2V0dGVyRnVuY3Rpb24pKCkgY29uc3Q7CkBAIC0xNjUsNyArMTY2
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBDU1NQcmltaXRp
dmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+
KHZhbHVlKTsKLSAgICAgICAgaWYgKG1faW5pdGlhbCAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRl
bnQoKSA9PSBDU1NWYWx1ZUN1cnJlbnRjb2xvcikKKyAgICAgICAgaWYgKGluaGVyaXRDb2xvckZy
b21QYXJlbnQgJiYgcHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVDdXJyZW50
Y29sb3IpCiAgICAgICAgICAgICBhcHBseUluaGVyaXRWYWx1ZShzZWxlY3Rvcik7CiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIChzZWxlY3Rvci0+c3R5bGUoKS0+Km1fc2V0dGVyKShzZWxlY3Rv
ci0+Z2V0Q29sb3JGcm9tUHJpbWl0aXZlVmFsdWUocHJpbWl0aXZlVmFsdWUpKTsKQEAgLTMzOSw3
ICszNDAsNyBAQCBDU1NTdHlsZUFwcGx5UHJvcGVydHk6OkNTU1N0eWxlQXBwbHlQcm9wCiAgICAg
Zm9yIChpbnQgaSA9IDA7IGkgPCBudW1DU1NQcm9wZXJ0aWVzOyArK2kpCiAgICAgICAgbV9wcm9w
ZXJ0eU1hcFtpXSA9IDA7CiAKLSAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5Q29sb3Is
IG5ldyBBcHBseVByb3BlcnR5Q29sb3IoJlJlbmRlclN0eWxlOjpjb2xvciwgJlJlbmRlclN0eWxl
OjpzZXRDb2xvciwgMCwgUmVuZGVyU3R5bGU6OmluaXRpYWxDb2xvcikpOworICAgIHNldFByb3Bl
cnR5VmFsdWUoQ1NTUHJvcGVydHlDb2xvciwgbmV3IEFwcGx5UHJvcGVydHlDb2xvcjx0cnVlPigm
UmVuZGVyU3R5bGU6OmNvbG9yLCAmUmVuZGVyU3R5bGU6OnNldENvbG9yLCAwLCBSZW5kZXJTdHls
ZTo6aW5pdGlhbENvbG9yKSk7CiAgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eURpcmVj
dGlvbiwgbmV3IEFwcGx5UHJvcGVydHlEaXJlY3Rpb24oJlJlbmRlclN0eWxlOjpkaXJlY3Rpb24s
ICZSZW5kZXJTdHlsZTo6c2V0RGlyZWN0aW9uLCBSZW5kZXJTdHlsZTo6aW5pdGlhbERpcmVjdGlv
bikpOwogCiAgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUJhY2tncm91bmRBdHRhY2ht
ZW50LCBuZXcgQXBwbHlQcm9wZXJ0eUZpbGxMYXllcjxFRmlsbEF0dGFjaG1lbnQ+KENTU1Byb3Bl
cnR5QmFja2dyb3VuZEF0dGFjaG1lbnQsIEJhY2tncm91bmRGaWxsTGF5ZXIsICZSZW5kZXJTdHls
ZTo6YWNjZXNzQmFja2dyb3VuZExheWVycywgJlJlbmRlclN0eWxlOjpiYWNrZ3JvdW5kTGF5ZXJz
LApAQCAtNDAwLDExICs0MDEsMTEgQEAgQ1NTU3R5bGVBcHBseVByb3BlcnR5OjpDU1NTdHlsZUFw
cGx5UHJvcAogICAgICAgICAgICAgICAgICAgICAmRmlsbExheWVyOjppc1JlcGVhdFlTZXQsICZG
aWxsTGF5ZXI6OnJlcGVhdFksICZGaWxsTGF5ZXI6OnNldFJlcGVhdFksICZGaWxsTGF5ZXI6OmNs
ZWFyUmVwZWF0WSwgJkZpbGxMYXllcjo6aW5pdGlhbEZpbGxSZXBlYXRZLCAmQ1NTU3R5bGVTZWxl
Y3Rvcjo6bWFwRmlsbFJlcGVhdFkpKTsKICAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5
V2Via2l0TWFza1JlcGVhdCwgbmV3IEFwcGx5UHJvcGVydHlFeHBhbmRpbmdTdXBwcmVzc1ZhbHVl
KHByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kUmVwZWF0WCksIHByb3BlcnR5VmFs
dWUoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kUmVwZWF0WSkpKTsKIAotICAgIHNldFByb3BlcnR5VmFs
dWUoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IsIG5ldyBBcHBseVByb3BlcnR5Q29sb3IoJlJl
bmRlclN0eWxlOjpiYWNrZ3JvdW5kQ29sb3IsICZSZW5kZXJTdHlsZTo6c2V0QmFja2dyb3VuZENv
bG9yLCAwKSk7Ci0gICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbUNv
bG9yLCBuZXcgQXBwbHlQcm9wZXJ0eUNvbG9yKCZSZW5kZXJTdHlsZTo6Ym9yZGVyQm90dG9tQ29s
b3IsICZSZW5kZXJTdHlsZTo6c2V0Qm9yZGVyQm90dG9tQ29sb3IsICZSZW5kZXJTdHlsZTo6Y29s
b3IpKTsKLSAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5Qm9yZGVyTGVmdENvbG9yLCBu
ZXcgQXBwbHlQcm9wZXJ0eUNvbG9yKCZSZW5kZXJTdHlsZTo6Ym9yZGVyTGVmdENvbG9yLCAmUmVu
ZGVyU3R5bGU6OnNldEJvcmRlckxlZnRDb2xvciwgJlJlbmRlclN0eWxlOjpjb2xvcikpOwotICAg
IHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlCb3JkZXJSaWdodENvbG9yLCBuZXcgQXBwbHlQ
cm9wZXJ0eUNvbG9yKCZSZW5kZXJTdHlsZTo6Ym9yZGVyUmlnaHRDb2xvciwgJlJlbmRlclN0eWxl
OjpzZXRCb3JkZXJSaWdodENvbG9yLCAmUmVuZGVyU3R5bGU6OmNvbG9yKSk7Ci0gICAgc2V0UHJv
cGVydHlWYWx1ZShDU1NQcm9wZXJ0eUJvcmRlclRvcENvbG9yLCBuZXcgQXBwbHlQcm9wZXJ0eUNv
bG9yKCZSZW5kZXJTdHlsZTo6Ym9yZGVyVG9wQ29sb3IsICZSZW5kZXJTdHlsZTo6c2V0Qm9yZGVy
VG9wQ29sb3IsICZSZW5kZXJTdHlsZTo6Y29sb3IpKTsKKyAgICBzZXRQcm9wZXJ0eVZhbHVlKENT
U1Byb3BlcnR5QmFja2dyb3VuZENvbG9yLCBuZXcgQXBwbHlQcm9wZXJ0eUNvbG9yPD4oJlJlbmRl
clN0eWxlOjpiYWNrZ3JvdW5kQ29sb3IsICZSZW5kZXJTdHlsZTo6c2V0QmFja2dyb3VuZENvbG9y
LCAwKSk7CisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbUNvbG9y
LCBuZXcgQXBwbHlQcm9wZXJ0eUNvbG9yPD4oJlJlbmRlclN0eWxlOjpib3JkZXJCb3R0b21Db2xv
ciwgJlJlbmRlclN0eWxlOjpzZXRCb3JkZXJCb3R0b21Db2xvciwgJlJlbmRlclN0eWxlOjpjb2xv
cikpOworICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlCb3JkZXJMZWZ0Q29sb3IsIG5l
dyBBcHBseVByb3BlcnR5Q29sb3I8PigmUmVuZGVyU3R5bGU6OmJvcmRlckxlZnRDb2xvciwgJlJl
bmRlclN0eWxlOjpzZXRCb3JkZXJMZWZ0Q29sb3IsICZSZW5kZXJTdHlsZTo6Y29sb3IpKTsKKyAg
ICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5Qm9yZGVyUmlnaHRDb2xvciwgbmV3IEFwcGx5
UHJvcGVydHlDb2xvcjw+KCZSZW5kZXJTdHlsZTo6Ym9yZGVyUmlnaHRDb2xvciwgJlJlbmRlclN0
eWxlOjpzZXRCb3JkZXJSaWdodENvbG9yLCAmUmVuZGVyU3R5bGU6OmNvbG9yKSk7CisgICAgc2V0
UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUJvcmRlclRvcENvbG9yLCBuZXcgQXBwbHlQcm9wZXJ0
eUNvbG9yPD4oJlJlbmRlclN0eWxlOjpib3JkZXJUb3BDb2xvciwgJlJlbmRlclN0eWxlOjpzZXRC
b3JkZXJUb3BDb2xvciwgJlJlbmRlclN0eWxlOjpjb2xvcikpOwogCiAgICAgc2V0UHJvcGVydHlW
YWx1ZShDU1NQcm9wZXJ0eUJvcmRlclRvcFN0eWxlLCBuZXcgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8
RUJvcmRlclN0eWxlPigmUmVuZGVyU3R5bGU6OmJvcmRlclRvcFN0eWxlLCAmUmVuZGVyU3R5bGU6
OnNldEJvcmRlclRvcFN0eWxlLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxCb3JkZXJTdHlsZSkpOwog
ICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlCb3JkZXJSaWdodFN0eWxlLCBuZXcgQXBw
bHlQcm9wZXJ0eURlZmF1bHQ8RUJvcmRlclN0eWxlPigmUmVuZGVyU3R5bGU6OmJvcmRlclJpZ2h0
U3R5bGUsICZSZW5kZXJTdHlsZTo6c2V0Qm9yZGVyUmlnaHRTdHlsZSwgJlJlbmRlclN0eWxlOjpp
bml0aWFsQm9yZGVyU3R5bGUpKTsKQEAgLTQxOCwxNiArNDE5LDE2IEBAIENTU1N0eWxlQXBwbHlQ
cm9wZXJ0eTo6Q1NTU3R5bGVBcHBseVByb3AKICAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3Bl
cnR5T3V0bGluZVdpZHRoLCBuZXcgQXBwbHlQcm9wZXJ0eVdpZHRoKCZSZW5kZXJTdHlsZTo6b3V0
bGluZVdpZHRoLCAmUmVuZGVyU3R5bGU6OnNldE91dGxpbmVXaWR0aCwgJlJlbmRlclN0eWxlOjpp
bml0aWFsQm9yZGVyV2lkdGgpKTsKICAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5V2Vi
a2l0Q29sdW1uUnVsZVdpZHRoLCBuZXcgQXBwbHlQcm9wZXJ0eVdpZHRoKCZSZW5kZXJTdHlsZTo6
Y29sdW1uUnVsZVdpZHRoLCAmUmVuZGVyU3R5bGU6OnNldENvbHVtblJ1bGVXaWR0aCwgJlJlbmRl
clN0eWxlOjppbml0aWFsQm9yZGVyV2lkdGgpKTsKIAotICAgIHNldFByb3BlcnR5VmFsdWUoQ1NT
UHJvcGVydHlPdXRsaW5lQ29sb3IsIG5ldyBBcHBseVByb3BlcnR5Q29sb3IoJlJlbmRlclN0eWxl
OjpvdXRsaW5lQ29sb3IsICZSZW5kZXJTdHlsZTo6c2V0T3V0bGluZUNvbG9yLCAmUmVuZGVyU3R5
bGU6OmNvbG9yKSk7CisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eU91dGxpbmVDb2xv
ciwgbmV3IEFwcGx5UHJvcGVydHlDb2xvcjw+KCZSZW5kZXJTdHlsZTo6b3V0bGluZUNvbG9yLCAm
UmVuZGVyU3R5bGU6OnNldE91dGxpbmVDb2xvciwgJlJlbmRlclN0eWxlOjpjb2xvcikpOwogCiAg
ICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eU92ZXJmbG93WCwgbmV3IEFwcGx5UHJvcGVy
dHlEZWZhdWx0PEVPdmVyZmxvdz4oJlJlbmRlclN0eWxlOjpvdmVyZmxvd1gsICZSZW5kZXJTdHls
ZTo6c2V0T3ZlcmZsb3dYLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxPdmVyZmxvd1gpKTsKICAgICBz
ZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5T3ZlcmZsb3dZLCBuZXcgQXBwbHlQcm9wZXJ0eURl
ZmF1bHQ8RU92ZXJmbG93PigmUmVuZGVyU3R5bGU6Om92ZXJmbG93WSwgJlJlbmRlclN0eWxlOjpz
ZXRPdmVyZmxvd1ksICZSZW5kZXJTdHlsZTo6aW5pdGlhbE92ZXJmbG93WSkpOwogICAgIHNldFBy
b3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlPdmVyZmxvdywgbmV3IEFwcGx5UHJvcGVydHlFeHBhbmRp
bmcocHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eU92ZXJmbG93WCksIHByb3BlcnR5VmFsdWUoQ1NT
UHJvcGVydHlPdmVyZmxvd1kpKSk7CiAKLSAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5
V2Via2l0Q29sdW1uUnVsZUNvbG9yLCBuZXcgQXBwbHlQcm9wZXJ0eUNvbG9yKCZSZW5kZXJTdHls
ZTo6Y29sdW1uUnVsZUNvbG9yLCAmUmVuZGVyU3R5bGU6OnNldENvbHVtblJ1bGVDb2xvciwgJlJl
bmRlclN0eWxlOjpjb2xvcikpOwotICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlXZWJr
aXRUZXh0RW1waGFzaXNDb2xvciwgbmV3IEFwcGx5UHJvcGVydHlDb2xvcigmUmVuZGVyU3R5bGU6
OnRleHRFbXBoYXNpc0NvbG9yLCAmUmVuZGVyU3R5bGU6OnNldFRleHRFbXBoYXNpc0NvbG9yLCAm
UmVuZGVyU3R5bGU6OmNvbG9yKSk7Ci0gICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eVdl
YmtpdFRleHRGaWxsQ29sb3IsIG5ldyBBcHBseVByb3BlcnR5Q29sb3IoJlJlbmRlclN0eWxlOjp0
ZXh0RmlsbENvbG9yLCAmUmVuZGVyU3R5bGU6OnNldFRleHRGaWxsQ29sb3IsICZSZW5kZXJTdHls
ZTo6Y29sb3IpKTsKLSAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5V2Via2l0VGV4dFN0
cm9rZUNvbG9yLCBuZXcgQXBwbHlQcm9wZXJ0eUNvbG9yKCZSZW5kZXJTdHlsZTo6dGV4dFN0cm9r
ZUNvbG9yLCAmUmVuZGVyU3R5bGU6OnNldFRleHRTdHJva2VDb2xvciwgJlJlbmRlclN0eWxlOjpj
b2xvcikpOworICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlXZWJraXRDb2x1bW5SdWxl
Q29sb3IsIG5ldyBBcHBseVByb3BlcnR5Q29sb3I8PigmUmVuZGVyU3R5bGU6OmNvbHVtblJ1bGVD
b2xvciwgJlJlbmRlclN0eWxlOjpzZXRDb2x1bW5SdWxlQ29sb3IsICZSZW5kZXJTdHlsZTo6Y29s
b3IpKTsKKyAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5V2Via2l0VGV4dEVtcGhhc2lz
Q29sb3IsIG5ldyBBcHBseVByb3BlcnR5Q29sb3I8PigmUmVuZGVyU3R5bGU6OnRleHRFbXBoYXNp
c0NvbG9yLCAmUmVuZGVyU3R5bGU6OnNldFRleHRFbXBoYXNpc0NvbG9yLCAmUmVuZGVyU3R5bGU6
OmNvbG9yKSk7CisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eVdlYmtpdFRleHRGaWxs
Q29sb3IsIG5ldyBBcHBseVByb3BlcnR5Q29sb3I8PigmUmVuZGVyU3R5bGU6OnRleHRGaWxsQ29s
b3IsICZSZW5kZXJTdHlsZTo6c2V0VGV4dEZpbGxDb2xvciwgJlJlbmRlclN0eWxlOjpjb2xvcikp
OworICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlXZWJraXRUZXh0U3Ryb2tlQ29sb3Is
IG5ldyBBcHBseVByb3BlcnR5Q29sb3I8PigmUmVuZGVyU3R5bGU6OnRleHRTdHJva2VDb2xvciwg
JlJlbmRlclN0eWxlOjpzZXRUZXh0U3Ryb2tlQ29sb3IsICZSZW5kZXJTdHlsZTo6Y29sb3IpKTsK
IH0KIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91869</attachid>
            <date>2011-05-01 18:45:35 -0700</date>
            <delta_ts>2011-05-02 22:11:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59774-20110502114533.patch</filename>
            <type>text/plain</type>
            <size>7882</size>
            <attacher name="Luke Macpherson">macpherson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg1NDQ2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDUtMDEgIEx1a2UgTWFj
cGhlcnNvbiAgIDxtYWNwaGVyc29uQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVtcGxhdGUgcGFyYW1ldGVyIHRvIEFw
cGx5UHJvcGVydHlDb2xvciB0byBpbXByb3ZlIGNsYXJpdHkgYnkgcmVtb3ZpbmcgY29uc3RydWN0
b3IgcGFyYW1ldGVyIHNpZGUgZWZmZWN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTU5Nzc0CisKKyAgICAgICAgTm8gbmV3IHRlc3RzIHJlcXVpcmVk
IGFzIG9uIG5ldyBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogY3NzL0NTU1N0eWxlQXBwbHlQ
cm9wZXJ0eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5Q29sb3I6OmFwcGx5
VmFsdWUpOgorICAgICAgICBBZGRlZCB0ZW1wbGF0ZSBwYXJhbWV0ZXIgImluaGVyaXRDb2xvckZy
b21QYXJlbnQgPSBmYWxzZSIuCisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZUFwcGx5UHJvcGVy
dHk6OkNTU1N0eWxlQXBwbHlQcm9wZXJ0eSk6CisgICAgICAgIFVzZSB0ZW1wbGF0ZSBwYXJhbWV0
ZXIgd2hlcmUgYXBwcm9wcmlhdGUuCisKIDIwMTEtMDUtMDEgIFNhbSBXZWluaWcgIDxzYW1Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcAkocmV2aXNpb24g
ODU0NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTI5LDYgKzEyOSw4IEBAIHByb3RlY3RlZDoKICAgICB9CiB9Owog
CitlbnVtIENvbG9ySW5oZXJpdCB7Tm9Jbmhlcml0RnJvbVBhcmVudCA9IDAsIEluaGVyaXRGcm9t
UGFyZW50ID0gMX07Cit0ZW1wbGF0ZSA8Q29sb3JJbmhlcml0IGluaGVyaXRDb2xvckZyb21QYXJl
bnQ+CiBjbGFzcyBBcHBseVByb3BlcnR5Q29sb3IgOiBwdWJsaWMgQXBwbHlQcm9wZXJ0eUJhc2Ug
ewogcHVibGljOgogICAgIHR5cGVkZWYgY29uc3QgQ29sb3ImIChSZW5kZXJTdHlsZTo6KkdldHRl
ckZ1bmN0aW9uKSgpIGNvbnN0OwpAQCAtMTY1LDcgKzE2Nyw3IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICByZXR1cm47CiAKICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVl
ID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7Ci0gICAgICAgIGlmICht
X2luaXRpYWwgJiYgcHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVDdXJyZW50
Y29sb3IpCisgICAgICAgIGlmIChpbmhlcml0Q29sb3JGcm9tUGFyZW50ICYmIHByaW1pdGl2ZVZh
bHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlQ3VycmVudGNvbG9yKQogICAgICAgICAgICAgYXBw
bHlJbmhlcml0VmFsdWUoc2VsZWN0b3IpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICAoc2Vs
ZWN0b3ItPnN0eWxlKCktPiptX3NldHRlcikoc2VsZWN0b3ItPmdldENvbG9yRnJvbVByaW1pdGl2
ZVZhbHVlKHByaW1pdGl2ZVZhbHVlKSk7CkBAIC0zMzksNyArMzQxLDcgQEAgQ1NTU3R5bGVBcHBs
eVByb3BlcnR5OjpDU1NTdHlsZUFwcGx5UHJvcAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVt
Q1NTUHJvcGVydGllczsgKytpKQogICAgICAgIG1fcHJvcGVydHlNYXBbaV0gPSAwOwogCi0gICAg
c2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUNvbG9yLCBuZXcgQXBwbHlQcm9wZXJ0eUNvbG9y
KCZSZW5kZXJTdHlsZTo6Y29sb3IsICZSZW5kZXJTdHlsZTo6c2V0Q29sb3IsIDAsIFJlbmRlclN0
eWxlOjppbml0aWFsQ29sb3IpKTsKKyAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5Q29s
b3IsIG5ldyBBcHBseVByb3BlcnR5Q29sb3I8SW5oZXJpdEZyb21QYXJlbnQ+KCZSZW5kZXJTdHls
ZTo6Y29sb3IsICZSZW5kZXJTdHlsZTo6c2V0Q29sb3IsIDAsIFJlbmRlclN0eWxlOjppbml0aWFs
Q29sb3IpKTsKICAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5RGlyZWN0aW9uLCBuZXcg
QXBwbHlQcm9wZXJ0eURpcmVjdGlvbigmUmVuZGVyU3R5bGU6OmRpcmVjdGlvbiwgJlJlbmRlclN0
eWxlOjpzZXREaXJlY3Rpb24sIFJlbmRlclN0eWxlOjppbml0aWFsRGlyZWN0aW9uKSk7CiAKICAg
ICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5QmFja2dyb3VuZEF0dGFjaG1lbnQsIG5ldyBB
cHBseVByb3BlcnR5RmlsbExheWVyPEVGaWxsQXR0YWNobWVudD4oQ1NTUHJvcGVydHlCYWNrZ3Jv
dW5kQXR0YWNobWVudCwgQmFja2dyb3VuZEZpbGxMYXllciwgJlJlbmRlclN0eWxlOjphY2Nlc3NC
YWNrZ3JvdW5kTGF5ZXJzLCAmUmVuZGVyU3R5bGU6OmJhY2tncm91bmRMYXllcnMsCkBAIC00MDAs
MTEgKzQwMiwxMSBAQCBDU1NTdHlsZUFwcGx5UHJvcGVydHk6OkNTU1N0eWxlQXBwbHlQcm9wCiAg
ICAgICAgICAgICAgICAgICAgICZGaWxsTGF5ZXI6OmlzUmVwZWF0WVNldCwgJkZpbGxMYXllcjo6
cmVwZWF0WSwgJkZpbGxMYXllcjo6c2V0UmVwZWF0WSwgJkZpbGxMYXllcjo6Y2xlYXJSZXBlYXRZ
LCAmRmlsbExheWVyOjppbml0aWFsRmlsbFJlcGVhdFksICZDU1NTdHlsZVNlbGVjdG9yOjptYXBG
aWxsUmVwZWF0WSkpOwogICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlXZWJraXRNYXNr
UmVwZWF0LCBuZXcgQXBwbHlQcm9wZXJ0eUV4cGFuZGluZ1N1cHByZXNzVmFsdWUocHJvcGVydHlW
YWx1ZShDU1NQcm9wZXJ0eUJhY2tncm91bmRSZXBlYXRYKSwgcHJvcGVydHlWYWx1ZShDU1NQcm9w
ZXJ0eUJhY2tncm91bmRSZXBlYXRZKSkpOwogCi0gICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9w
ZXJ0eUJhY2tncm91bmRDb2xvciwgbmV3IEFwcGx5UHJvcGVydHlDb2xvcigmUmVuZGVyU3R5bGU6
OmJhY2tncm91bmRDb2xvciwgJlJlbmRlclN0eWxlOjpzZXRCYWNrZ3JvdW5kQ29sb3IsIDApKTsK
LSAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tQ29sb3IsIG5ldyBB
cHBseVByb3BlcnR5Q29sb3IoJlJlbmRlclN0eWxlOjpib3JkZXJCb3R0b21Db2xvciwgJlJlbmRl
clN0eWxlOjpzZXRCb3JkZXJCb3R0b21Db2xvciwgJlJlbmRlclN0eWxlOjpjb2xvcikpOwotICAg
IHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlCb3JkZXJMZWZ0Q29sb3IsIG5ldyBBcHBseVBy
b3BlcnR5Q29sb3IoJlJlbmRlclN0eWxlOjpib3JkZXJMZWZ0Q29sb3IsICZSZW5kZXJTdHlsZTo6
c2V0Qm9yZGVyTGVmdENvbG9yLCAmUmVuZGVyU3R5bGU6OmNvbG9yKSk7Ci0gICAgc2V0UHJvcGVy
dHlWYWx1ZShDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0Q29sb3IsIG5ldyBBcHBseVByb3BlcnR5Q29s
b3IoJlJlbmRlclN0eWxlOjpib3JkZXJSaWdodENvbG9yLCAmUmVuZGVyU3R5bGU6OnNldEJvcmRl
clJpZ2h0Q29sb3IsICZSZW5kZXJTdHlsZTo6Y29sb3IpKTsKLSAgICBzZXRQcm9wZXJ0eVZhbHVl
KENTU1Byb3BlcnR5Qm9yZGVyVG9wQ29sb3IsIG5ldyBBcHBseVByb3BlcnR5Q29sb3IoJlJlbmRl
clN0eWxlOjpib3JkZXJUb3BDb2xvciwgJlJlbmRlclN0eWxlOjpzZXRCb3JkZXJUb3BDb2xvciwg
JlJlbmRlclN0eWxlOjpjb2xvcikpOworICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlC
YWNrZ3JvdW5kQ29sb3IsIG5ldyBBcHBseVByb3BlcnR5Q29sb3I8Tm9Jbmhlcml0RnJvbVBhcmVu
dD4oJlJlbmRlclN0eWxlOjpiYWNrZ3JvdW5kQ29sb3IsICZSZW5kZXJTdHlsZTo6c2V0QmFja2dy
b3VuZENvbG9yLCAwKSk7CisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUJvcmRlckJv
dHRvbUNvbG9yLCBuZXcgQXBwbHlQcm9wZXJ0eUNvbG9yPE5vSW5oZXJpdEZyb21QYXJlbnQ+KCZS
ZW5kZXJTdHlsZTo6Ym9yZGVyQm90dG9tQ29sb3IsICZSZW5kZXJTdHlsZTo6c2V0Qm9yZGVyQm90
dG9tQ29sb3IsICZSZW5kZXJTdHlsZTo6Y29sb3IpKTsKKyAgICBzZXRQcm9wZXJ0eVZhbHVlKENT
U1Byb3BlcnR5Qm9yZGVyTGVmdENvbG9yLCBuZXcgQXBwbHlQcm9wZXJ0eUNvbG9yPE5vSW5oZXJp
dEZyb21QYXJlbnQ+KCZSZW5kZXJTdHlsZTo6Ym9yZGVyTGVmdENvbG9yLCAmUmVuZGVyU3R5bGU6
OnNldEJvcmRlckxlZnRDb2xvciwgJlJlbmRlclN0eWxlOjpjb2xvcikpOworICAgIHNldFByb3Bl
cnR5VmFsdWUoQ1NTUHJvcGVydHlCb3JkZXJSaWdodENvbG9yLCBuZXcgQXBwbHlQcm9wZXJ0eUNv
bG9yPE5vSW5oZXJpdEZyb21QYXJlbnQ+KCZSZW5kZXJTdHlsZTo6Ym9yZGVyUmlnaHRDb2xvciwg
JlJlbmRlclN0eWxlOjpzZXRCb3JkZXJSaWdodENvbG9yLCAmUmVuZGVyU3R5bGU6OmNvbG9yKSk7
CisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUJvcmRlclRvcENvbG9yLCBuZXcgQXBw
bHlQcm9wZXJ0eUNvbG9yPE5vSW5oZXJpdEZyb21QYXJlbnQ+KCZSZW5kZXJTdHlsZTo6Ym9yZGVy
VG9wQ29sb3IsICZSZW5kZXJTdHlsZTo6c2V0Qm9yZGVyVG9wQ29sb3IsICZSZW5kZXJTdHlsZTo6
Y29sb3IpKTsKIAogICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlCb3JkZXJUb3BTdHls
ZSwgbmV3IEFwcGx5UHJvcGVydHlEZWZhdWx0PEVCb3JkZXJTdHlsZT4oJlJlbmRlclN0eWxlOjpi
b3JkZXJUb3BTdHlsZSwgJlJlbmRlclN0eWxlOjpzZXRCb3JkZXJUb3BTdHlsZSwgJlJlbmRlclN0
eWxlOjppbml0aWFsQm9yZGVyU3R5bGUpKTsKICAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3Bl
cnR5Qm9yZGVyUmlnaHRTdHlsZSwgbmV3IEFwcGx5UHJvcGVydHlEZWZhdWx0PEVCb3JkZXJTdHls
ZT4oJlJlbmRlclN0eWxlOjpib3JkZXJSaWdodFN0eWxlLCAmUmVuZGVyU3R5bGU6OnNldEJvcmRl
clJpZ2h0U3R5bGUsICZSZW5kZXJTdHlsZTo6aW5pdGlhbEJvcmRlclN0eWxlKSk7CkBAIC00MTgs
MTYgKzQyMCwxNiBAQCBDU1NTdHlsZUFwcGx5UHJvcGVydHk6OkNTU1N0eWxlQXBwbHlQcm9wCiAg
ICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eU91dGxpbmVXaWR0aCwgbmV3IEFwcGx5UHJv
cGVydHlXaWR0aCgmUmVuZGVyU3R5bGU6Om91dGxpbmVXaWR0aCwgJlJlbmRlclN0eWxlOjpzZXRP
dXRsaW5lV2lkdGgsICZSZW5kZXJTdHlsZTo6aW5pdGlhbEJvcmRlcldpZHRoKSk7CiAgICAgc2V0
UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eVdlYmtpdENvbHVtblJ1bGVXaWR0aCwgbmV3IEFwcGx5
UHJvcGVydHlXaWR0aCgmUmVuZGVyU3R5bGU6OmNvbHVtblJ1bGVXaWR0aCwgJlJlbmRlclN0eWxl
OjpzZXRDb2x1bW5SdWxlV2lkdGgsICZSZW5kZXJTdHlsZTo6aW5pdGlhbEJvcmRlcldpZHRoKSk7
CiAKLSAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5T3V0bGluZUNvbG9yLCBuZXcgQXBw
bHlQcm9wZXJ0eUNvbG9yKCZSZW5kZXJTdHlsZTo6b3V0bGluZUNvbG9yLCAmUmVuZGVyU3R5bGU6
OnNldE91dGxpbmVDb2xvciwgJlJlbmRlclN0eWxlOjpjb2xvcikpOworICAgIHNldFByb3BlcnR5
VmFsdWUoQ1NTUHJvcGVydHlPdXRsaW5lQ29sb3IsIG5ldyBBcHBseVByb3BlcnR5Q29sb3I8Tm9J
bmhlcml0RnJvbVBhcmVudD4oJlJlbmRlclN0eWxlOjpvdXRsaW5lQ29sb3IsICZSZW5kZXJTdHls
ZTo6c2V0T3V0bGluZUNvbG9yLCAmUmVuZGVyU3R5bGU6OmNvbG9yKSk7CiAKICAgICBzZXRQcm9w
ZXJ0eVZhbHVlKENTU1Byb3BlcnR5T3ZlcmZsb3dYLCBuZXcgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8
RU92ZXJmbG93PigmUmVuZGVyU3R5bGU6Om92ZXJmbG93WCwgJlJlbmRlclN0eWxlOjpzZXRPdmVy
Zmxvd1gsICZSZW5kZXJTdHlsZTo6aW5pdGlhbE92ZXJmbG93WCkpOwogICAgIHNldFByb3BlcnR5
VmFsdWUoQ1NTUHJvcGVydHlPdmVyZmxvd1ksIG5ldyBBcHBseVByb3BlcnR5RGVmYXVsdDxFT3Zl
cmZsb3c+KCZSZW5kZXJTdHlsZTo6b3ZlcmZsb3dZLCAmUmVuZGVyU3R5bGU6OnNldE92ZXJmbG93
WSwgJlJlbmRlclN0eWxlOjppbml0aWFsT3ZlcmZsb3dZKSk7CiAgICAgc2V0UHJvcGVydHlWYWx1
ZShDU1NQcm9wZXJ0eU92ZXJmbG93LCBuZXcgQXBwbHlQcm9wZXJ0eUV4cGFuZGluZyhwcm9wZXJ0
eVZhbHVlKENTU1Byb3BlcnR5T3ZlcmZsb3dYKSwgcHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eU92
ZXJmbG93WSkpKTsKIAotICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlXZWJraXRDb2x1
bW5SdWxlQ29sb3IsIG5ldyBBcHBseVByb3BlcnR5Q29sb3IoJlJlbmRlclN0eWxlOjpjb2x1bW5S
dWxlQ29sb3IsICZSZW5kZXJTdHlsZTo6c2V0Q29sdW1uUnVsZUNvbG9yLCAmUmVuZGVyU3R5bGU6
OmNvbG9yKSk7Ci0gICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eVdlYmtpdFRleHRFbXBo
YXNpc0NvbG9yLCBuZXcgQXBwbHlQcm9wZXJ0eUNvbG9yKCZSZW5kZXJTdHlsZTo6dGV4dEVtcGhh
c2lzQ29sb3IsICZSZW5kZXJTdHlsZTo6c2V0VGV4dEVtcGhhc2lzQ29sb3IsICZSZW5kZXJTdHls
ZTo6Y29sb3IpKTsKLSAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5V2Via2l0VGV4dEZp
bGxDb2xvciwgbmV3IEFwcGx5UHJvcGVydHlDb2xvcigmUmVuZGVyU3R5bGU6OnRleHRGaWxsQ29s
b3IsICZSZW5kZXJTdHlsZTo6c2V0VGV4dEZpbGxDb2xvciwgJlJlbmRlclN0eWxlOjpjb2xvcikp
OwotICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlXZWJraXRUZXh0U3Ryb2tlQ29sb3Is
IG5ldyBBcHBseVByb3BlcnR5Q29sb3IoJlJlbmRlclN0eWxlOjp0ZXh0U3Ryb2tlQ29sb3IsICZS
ZW5kZXJTdHlsZTo6c2V0VGV4dFN0cm9rZUNvbG9yLCAmUmVuZGVyU3R5bGU6OmNvbG9yKSk7Cisg
ICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eVdlYmtpdENvbHVtblJ1bGVDb2xvciwgbmV3
IEFwcGx5UHJvcGVydHlDb2xvcjxOb0luaGVyaXRGcm9tUGFyZW50PigmUmVuZGVyU3R5bGU6OmNv
bHVtblJ1bGVDb2xvciwgJlJlbmRlclN0eWxlOjpzZXRDb2x1bW5SdWxlQ29sb3IsICZSZW5kZXJT
dHlsZTo6Y29sb3IpKTsKKyAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5V2Via2l0VGV4
dEVtcGhhc2lzQ29sb3IsIG5ldyBBcHBseVByb3BlcnR5Q29sb3I8Tm9Jbmhlcml0RnJvbVBhcmVu
dD4oJlJlbmRlclN0eWxlOjp0ZXh0RW1waGFzaXNDb2xvciwgJlJlbmRlclN0eWxlOjpzZXRUZXh0
RW1waGFzaXNDb2xvciwgJlJlbmRlclN0eWxlOjpjb2xvcikpOworICAgIHNldFByb3BlcnR5VmFs
dWUoQ1NTUHJvcGVydHlXZWJraXRUZXh0RmlsbENvbG9yLCBuZXcgQXBwbHlQcm9wZXJ0eUNvbG9y
PE5vSW5oZXJpdEZyb21QYXJlbnQ+KCZSZW5kZXJTdHlsZTo6dGV4dEZpbGxDb2xvciwgJlJlbmRl
clN0eWxlOjpzZXRUZXh0RmlsbENvbG9yLCAmUmVuZGVyU3R5bGU6OmNvbG9yKSk7CisgICAgc2V0
UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eVdlYmtpdFRleHRTdHJva2VDb2xvciwgbmV3IEFwcGx5
UHJvcGVydHlDb2xvcjxOb0luaGVyaXRGcm9tUGFyZW50PigmUmVuZGVyU3R5bGU6OnRleHRTdHJv
a2VDb2xvciwgJlJlbmRlclN0eWxlOjpzZXRUZXh0U3Ryb2tlQ29sb3IsICZSZW5kZXJTdHlsZTo6
Y29sb3IpKTsKIH0KIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92045</attachid>
            <date>2011-05-02 22:12:09 -0700</date>
            <delta_ts>2011-05-03 20:36:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59774-20110503151206.patch</filename>
            <type>text/plain</type>
            <size>8175</size>
            <attacher name="Luke Macpherson">macpherson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg1NTc4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDUtMDIgIEx1a2UgTWFj
cGhlcnNvbiAgIDxtYWNwaGVyc29uQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBEaW1pdHJpIEdsYXprb3YuCisKKyAgICAgICAgQWRkIHRlbXBsYXRlIHBhcmFtZXRlciB0byBB
cHBseVByb3BlcnR5Q29sb3IgdG8gaW1wcm92ZSBjbGFyaXR5IGJ5IHJlbW92aW5nIGNvbnN0cnVj
dG9yIHBhcmFtZXRlciBzaWRlIGVmZmVjdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01OTc3NAorCisgICAgICAgIE5vIG5ldyB0ZXN0cyByZXF1aXJl
ZCBhcyBvbiBuZXcgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIGNzcy9DU1NTdHlsZUFwcGx5
UHJvcGVydHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUNvbG9yOjphcHBs
eVZhbHVlKToKKyAgICAgICAgQWRkZWQgdGVtcGxhdGUgcGFyYW1ldGVyICJpbmhlcml0Q29sb3JG
cm9tUGFyZW50ID0gZmFsc2UiLgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVBcHBseVByb3Bl
cnR5OjpDU1NTdHlsZUFwcGx5UHJvcGVydHkpOgorICAgICAgICBVc2UgdGVtcGxhdGUgcGFyYW1l
dGVyIHdoZXJlIGFwcHJvcHJpYXRlLgorCiAyMDExLTA1LTAyICBCZW4gV2VsbHMgIDxiZW53ZWxs
c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpJbmRl
eDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlQXBwbHlQcm9wZXJ0eS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlQXBwbHlQcm9wZXJ0eS5jcHAJKHJldmlz
aW9uIDg1NTc4KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlQXBwbHlQcm9wZXJ0eS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEyOSw2ICsxMjksOCBAQCBwcm90ZWN0ZWQ6CiAgICAgfQog
fTsKIAorZW51bSBDb2xvckluaGVyaXQge05vSW5oZXJpdEZyb21QYXJlbnQgPSAwLCBJbmhlcml0
RnJvbVBhcmVudH07Cit0ZW1wbGF0ZSA8Q29sb3JJbmhlcml0IGluaGVyaXRDb2xvckZyb21QYXJl
bnQ+CiBjbGFzcyBBcHBseVByb3BlcnR5Q29sb3IgOiBwdWJsaWMgQXBwbHlQcm9wZXJ0eUJhc2Ug
ewogcHVibGljOgogICAgIHR5cGVkZWYgY29uc3QgQ29sb3ImIChSZW5kZXJTdHlsZTo6KkdldHRl
ckZ1bmN0aW9uKSgpIGNvbnN0OwpAQCAtMTY1LDcgKzE2Nyw3IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICByZXR1cm47CiAKICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVl
ID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7Ci0gICAgICAgIGlmICht
X2luaXRpYWwgJiYgcHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVDdXJyZW50
Y29sb3IpCisgICAgICAgIGlmIChpbmhlcml0Q29sb3JGcm9tUGFyZW50ICYmIHByaW1pdGl2ZVZh
bHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlQ3VycmVudGNvbG9yKQogICAgICAgICAgICAgYXBw
bHlJbmhlcml0VmFsdWUoc2VsZWN0b3IpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICAoc2Vs
ZWN0b3ItPnN0eWxlKCktPiptX3NldHRlcikoc2VsZWN0b3ItPmdldENvbG9yRnJvbVByaW1pdGl2
ZVZhbHVlKHByaW1pdGl2ZVZhbHVlKSk7CkBAIC0zODQsNyArMzg2LDcgQEAgQ1NTU3R5bGVBcHBs
eVByb3BlcnR5OjpDU1NTdHlsZUFwcGx5UHJvcAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVt
Q1NTUHJvcGVydGllczsgKytpKQogICAgICAgIG1fcHJvcGVydHlNYXBbaV0gPSAwOwogCi0gICAg
c2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUNvbG9yLCBuZXcgQXBwbHlQcm9wZXJ0eUNvbG9y
KCZSZW5kZXJTdHlsZTo6Y29sb3IsICZSZW5kZXJTdHlsZTo6c2V0Q29sb3IsIDAsIFJlbmRlclN0
eWxlOjppbml0aWFsQ29sb3IpKTsKKyAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5Q29s
b3IsIG5ldyBBcHBseVByb3BlcnR5Q29sb3I8SW5oZXJpdEZyb21QYXJlbnQ+KCZSZW5kZXJTdHls
ZTo6Y29sb3IsICZSZW5kZXJTdHlsZTo6c2V0Q29sb3IsIDAsIFJlbmRlclN0eWxlOjppbml0aWFs
Q29sb3IpKTsKICAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5RGlyZWN0aW9uLCBuZXcg
QXBwbHlQcm9wZXJ0eURpcmVjdGlvbigmUmVuZGVyU3R5bGU6OmRpcmVjdGlvbiwgJlJlbmRlclN0
eWxlOjpzZXREaXJlY3Rpb24sIFJlbmRlclN0eWxlOjppbml0aWFsRGlyZWN0aW9uKSk7CiAKICAg
ICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5QmFja2dyb3VuZEF0dGFjaG1lbnQsIG5ldyBB
cHBseVByb3BlcnR5RmlsbExheWVyPEVGaWxsQXR0YWNobWVudD4oQ1NTUHJvcGVydHlCYWNrZ3Jv
dW5kQXR0YWNobWVudCwgQmFja2dyb3VuZEZpbGxMYXllciwgJlJlbmRlclN0eWxlOjphY2Nlc3NC
YWNrZ3JvdW5kTGF5ZXJzLCAmUmVuZGVyU3R5bGU6OmJhY2tncm91bmRMYXllcnMsCkBAIC00NDUs
MTEgKzQ0NywxMSBAQCBDU1NTdHlsZUFwcGx5UHJvcGVydHk6OkNTU1N0eWxlQXBwbHlQcm9wCiAg
ICAgICAgICAgICAgICAgICAgICZGaWxsTGF5ZXI6OmlzUmVwZWF0WVNldCwgJkZpbGxMYXllcjo6
cmVwZWF0WSwgJkZpbGxMYXllcjo6c2V0UmVwZWF0WSwgJkZpbGxMYXllcjo6Y2xlYXJSZXBlYXRZ
LCAmRmlsbExheWVyOjppbml0aWFsRmlsbFJlcGVhdFksICZDU1NTdHlsZVNlbGVjdG9yOjptYXBG
aWxsUmVwZWF0WSkpOwogICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlXZWJraXRNYXNr
UmVwZWF0LCBuZXcgQXBwbHlQcm9wZXJ0eUV4cGFuZGluZ1N1cHByZXNzVmFsdWUocHJvcGVydHlW
YWx1ZShDU1NQcm9wZXJ0eUJhY2tncm91bmRSZXBlYXRYKSwgcHJvcGVydHlWYWx1ZShDU1NQcm9w
ZXJ0eUJhY2tncm91bmRSZXBlYXRZKSkpOwogCi0gICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9w
ZXJ0eUJhY2tncm91bmRDb2xvciwgbmV3IEFwcGx5UHJvcGVydHlDb2xvcigmUmVuZGVyU3R5bGU6
OmJhY2tncm91bmRDb2xvciwgJlJlbmRlclN0eWxlOjpzZXRCYWNrZ3JvdW5kQ29sb3IsIDApKTsK
LSAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tQ29sb3IsIG5ldyBB
cHBseVByb3BlcnR5Q29sb3IoJlJlbmRlclN0eWxlOjpib3JkZXJCb3R0b21Db2xvciwgJlJlbmRl
clN0eWxlOjpzZXRCb3JkZXJCb3R0b21Db2xvciwgJlJlbmRlclN0eWxlOjpjb2xvcikpOwotICAg
IHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlCb3JkZXJMZWZ0Q29sb3IsIG5ldyBBcHBseVBy
b3BlcnR5Q29sb3IoJlJlbmRlclN0eWxlOjpib3JkZXJMZWZ0Q29sb3IsICZSZW5kZXJTdHlsZTo6
c2V0Qm9yZGVyTGVmdENvbG9yLCAmUmVuZGVyU3R5bGU6OmNvbG9yKSk7Ci0gICAgc2V0UHJvcGVy
dHlWYWx1ZShDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0Q29sb3IsIG5ldyBBcHBseVByb3BlcnR5Q29s
b3IoJlJlbmRlclN0eWxlOjpib3JkZXJSaWdodENvbG9yLCAmUmVuZGVyU3R5bGU6OnNldEJvcmRl
clJpZ2h0Q29sb3IsICZSZW5kZXJTdHlsZTo6Y29sb3IpKTsKLSAgICBzZXRQcm9wZXJ0eVZhbHVl
KENTU1Byb3BlcnR5Qm9yZGVyVG9wQ29sb3IsIG5ldyBBcHBseVByb3BlcnR5Q29sb3IoJlJlbmRl
clN0eWxlOjpib3JkZXJUb3BDb2xvciwgJlJlbmRlclN0eWxlOjpzZXRCb3JkZXJUb3BDb2xvciwg
JlJlbmRlclN0eWxlOjpjb2xvcikpOworICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlC
YWNrZ3JvdW5kQ29sb3IsIG5ldyBBcHBseVByb3BlcnR5Q29sb3I8Tm9Jbmhlcml0RnJvbVBhcmVu
dD4oJlJlbmRlclN0eWxlOjpiYWNrZ3JvdW5kQ29sb3IsICZSZW5kZXJTdHlsZTo6c2V0QmFja2dy
b3VuZENvbG9yLCAwKSk7CisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUJvcmRlckJv
dHRvbUNvbG9yLCBuZXcgQXBwbHlQcm9wZXJ0eUNvbG9yPE5vSW5oZXJpdEZyb21QYXJlbnQ+KCZS
ZW5kZXJTdHlsZTo6Ym9yZGVyQm90dG9tQ29sb3IsICZSZW5kZXJTdHlsZTo6c2V0Qm9yZGVyQm90
dG9tQ29sb3IsICZSZW5kZXJTdHlsZTo6Y29sb3IpKTsKKyAgICBzZXRQcm9wZXJ0eVZhbHVlKENT
U1Byb3BlcnR5Qm9yZGVyTGVmdENvbG9yLCBuZXcgQXBwbHlQcm9wZXJ0eUNvbG9yPE5vSW5oZXJp
dEZyb21QYXJlbnQ+KCZSZW5kZXJTdHlsZTo6Ym9yZGVyTGVmdENvbG9yLCAmUmVuZGVyU3R5bGU6
OnNldEJvcmRlckxlZnRDb2xvciwgJlJlbmRlclN0eWxlOjpjb2xvcikpOworICAgIHNldFByb3Bl
cnR5VmFsdWUoQ1NTUHJvcGVydHlCb3JkZXJSaWdodENvbG9yLCBuZXcgQXBwbHlQcm9wZXJ0eUNv
bG9yPE5vSW5oZXJpdEZyb21QYXJlbnQ+KCZSZW5kZXJTdHlsZTo6Ym9yZGVyUmlnaHRDb2xvciwg
JlJlbmRlclN0eWxlOjpzZXRCb3JkZXJSaWdodENvbG9yLCAmUmVuZGVyU3R5bGU6OmNvbG9yKSk7
CisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUJvcmRlclRvcENvbG9yLCBuZXcgQXBw
bHlQcm9wZXJ0eUNvbG9yPE5vSW5oZXJpdEZyb21QYXJlbnQ+KCZSZW5kZXJTdHlsZTo6Ym9yZGVy
VG9wQ29sb3IsICZSZW5kZXJTdHlsZTo6c2V0Qm9yZGVyVG9wQ29sb3IsICZSZW5kZXJTdHlsZTo6
Y29sb3IpKTsKIAogICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlCb3JkZXJUb3BTdHls
ZSwgbmV3IEFwcGx5UHJvcGVydHlEZWZhdWx0PEVCb3JkZXJTdHlsZT4oJlJlbmRlclN0eWxlOjpi
b3JkZXJUb3BTdHlsZSwgJlJlbmRlclN0eWxlOjpzZXRCb3JkZXJUb3BTdHlsZSwgJlJlbmRlclN0
eWxlOjppbml0aWFsQm9yZGVyU3R5bGUpKTsKICAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3Bl
cnR5Qm9yZGVyUmlnaHRTdHlsZSwgbmV3IEFwcGx5UHJvcGVydHlEZWZhdWx0PEVCb3JkZXJTdHls
ZT4oJlJlbmRlclN0eWxlOjpib3JkZXJSaWdodFN0eWxlLCAmUmVuZGVyU3R5bGU6OnNldEJvcmRl
clJpZ2h0U3R5bGUsICZSZW5kZXJTdHlsZTo6aW5pdGlhbEJvcmRlclN0eWxlKSk7CkBAIC00NjMs
MTYgKzQ2NSwxNiBAQCBDU1NTdHlsZUFwcGx5UHJvcGVydHk6OkNTU1N0eWxlQXBwbHlQcm9wCiAg
ICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eU91dGxpbmVXaWR0aCwgbmV3IEFwcGx5UHJv
cGVydHlXaWR0aCgmUmVuZGVyU3R5bGU6Om91dGxpbmVXaWR0aCwgJlJlbmRlclN0eWxlOjpzZXRP
dXRsaW5lV2lkdGgsICZSZW5kZXJTdHlsZTo6aW5pdGlhbEJvcmRlcldpZHRoKSk7CiAgICAgc2V0
UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eVdlYmtpdENvbHVtblJ1bGVXaWR0aCwgbmV3IEFwcGx5
UHJvcGVydHlXaWR0aCgmUmVuZGVyU3R5bGU6OmNvbHVtblJ1bGVXaWR0aCwgJlJlbmRlclN0eWxl
OjpzZXRDb2x1bW5SdWxlV2lkdGgsICZSZW5kZXJTdHlsZTo6aW5pdGlhbEJvcmRlcldpZHRoKSk7
CiAKLSAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5T3V0bGluZUNvbG9yLCBuZXcgQXBw
bHlQcm9wZXJ0eUNvbG9yKCZSZW5kZXJTdHlsZTo6b3V0bGluZUNvbG9yLCAmUmVuZGVyU3R5bGU6
OnNldE91dGxpbmVDb2xvciwgJlJlbmRlclN0eWxlOjpjb2xvcikpOworICAgIHNldFByb3BlcnR5
VmFsdWUoQ1NTUHJvcGVydHlPdXRsaW5lQ29sb3IsIG5ldyBBcHBseVByb3BlcnR5Q29sb3I8SW5o
ZXJpdEZyb21QYXJlbnQ+KCZSZW5kZXJTdHlsZTo6b3V0bGluZUNvbG9yLCAmUmVuZGVyU3R5bGU6
OnNldE91dGxpbmVDb2xvciwgJlJlbmRlclN0eWxlOjpjb2xvcikpOwogCiAgICAgc2V0UHJvcGVy
dHlWYWx1ZShDU1NQcm9wZXJ0eU92ZXJmbG93WCwgbmV3IEFwcGx5UHJvcGVydHlEZWZhdWx0PEVP
dmVyZmxvdz4oJlJlbmRlclN0eWxlOjpvdmVyZmxvd1gsICZSZW5kZXJTdHlsZTo6c2V0T3ZlcmZs
b3dYLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxPdmVyZmxvd1gpKTsKICAgICBzZXRQcm9wZXJ0eVZh
bHVlKENTU1Byb3BlcnR5T3ZlcmZsb3dZLCBuZXcgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8RU92ZXJm
bG93PigmUmVuZGVyU3R5bGU6Om92ZXJmbG93WSwgJlJlbmRlclN0eWxlOjpzZXRPdmVyZmxvd1ks
ICZSZW5kZXJTdHlsZTo6aW5pdGlhbE92ZXJmbG93WSkpOwogICAgIHNldFByb3BlcnR5VmFsdWUo
Q1NTUHJvcGVydHlPdmVyZmxvdywgbmV3IEFwcGx5UHJvcGVydHlFeHBhbmRpbmcocHJvcGVydHlW
YWx1ZShDU1NQcm9wZXJ0eU92ZXJmbG93WCksIHByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlPdmVy
Zmxvd1kpKSk7CiAKLSAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5V2Via2l0Q29sdW1u
UnVsZUNvbG9yLCBuZXcgQXBwbHlQcm9wZXJ0eUNvbG9yKCZSZW5kZXJTdHlsZTo6Y29sdW1uUnVs
ZUNvbG9yLCAmUmVuZGVyU3R5bGU6OnNldENvbHVtblJ1bGVDb2xvciwgJlJlbmRlclN0eWxlOjpj
b2xvcikpOwotICAgIHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlXZWJraXRUZXh0RW1waGFz
aXNDb2xvciwgbmV3IEFwcGx5UHJvcGVydHlDb2xvcigmUmVuZGVyU3R5bGU6OnRleHRFbXBoYXNp
c0NvbG9yLCAmUmVuZGVyU3R5bGU6OnNldFRleHRFbXBoYXNpc0NvbG9yLCAmUmVuZGVyU3R5bGU6
OmNvbG9yKSk7Ci0gICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eVdlYmtpdFRleHRGaWxs
Q29sb3IsIG5ldyBBcHBseVByb3BlcnR5Q29sb3IoJlJlbmRlclN0eWxlOjp0ZXh0RmlsbENvbG9y
LCAmUmVuZGVyU3R5bGU6OnNldFRleHRGaWxsQ29sb3IsICZSZW5kZXJTdHlsZTo6Y29sb3IpKTsK
LSAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5V2Via2l0VGV4dFN0cm9rZUNvbG9yLCBu
ZXcgQXBwbHlQcm9wZXJ0eUNvbG9yKCZSZW5kZXJTdHlsZTo6dGV4dFN0cm9rZUNvbG9yLCAmUmVu
ZGVyU3R5bGU6OnNldFRleHRTdHJva2VDb2xvciwgJlJlbmRlclN0eWxlOjpjb2xvcikpOworICAg
IHNldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlXZWJraXRDb2x1bW5SdWxlQ29sb3IsIG5ldyBB
cHBseVByb3BlcnR5Q29sb3I8Tm9Jbmhlcml0RnJvbVBhcmVudD4oJlJlbmRlclN0eWxlOjpjb2x1
bW5SdWxlQ29sb3IsICZSZW5kZXJTdHlsZTo6c2V0Q29sdW1uUnVsZUNvbG9yLCAmUmVuZGVyU3R5
bGU6OmNvbG9yKSk7CisgICAgc2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eVdlYmtpdFRleHRF
bXBoYXNpc0NvbG9yLCBuZXcgQXBwbHlQcm9wZXJ0eUNvbG9yPE5vSW5oZXJpdEZyb21QYXJlbnQ+
KCZSZW5kZXJTdHlsZTo6dGV4dEVtcGhhc2lzQ29sb3IsICZSZW5kZXJTdHlsZTo6c2V0VGV4dEVt
cGhhc2lzQ29sb3IsICZSZW5kZXJTdHlsZTo6Y29sb3IpKTsKKyAgICBzZXRQcm9wZXJ0eVZhbHVl
KENTU1Byb3BlcnR5V2Via2l0VGV4dEZpbGxDb2xvciwgbmV3IEFwcGx5UHJvcGVydHlDb2xvcjxO
b0luaGVyaXRGcm9tUGFyZW50PigmUmVuZGVyU3R5bGU6OnRleHRGaWxsQ29sb3IsICZSZW5kZXJT
dHlsZTo6c2V0VGV4dEZpbGxDb2xvciwgJlJlbmRlclN0eWxlOjpjb2xvcikpOworICAgIHNldFBy
b3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlXZWJraXRUZXh0U3Ryb2tlQ29sb3IsIG5ldyBBcHBseVBy
b3BlcnR5Q29sb3I8Tm9Jbmhlcml0RnJvbVBhcmVudD4oJlJlbmRlclN0eWxlOjp0ZXh0U3Ryb2tl
Q29sb3IsICZSZW5kZXJTdHlsZTo6c2V0VGV4dFN0cm9rZUNvbG9yLCAmUmVuZGVyU3R5bGU6OmNv
bG9yKSk7CiAKICAgICBzZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5VG9wLCBuZXcgQXBwbHlQ
cm9wZXJ0eUxlbmd0aDxBdXRvRW5hYmxlZD4oJlJlbmRlclN0eWxlOjp0b3AsICZSZW5kZXJTdHls
ZTo6c2V0VG9wLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxPZmZzZXQpKTsKICAgICBzZXRQcm9wZXJ0
eVZhbHVlKENTU1Byb3BlcnR5UmlnaHQsIG5ldyBBcHBseVByb3BlcnR5TGVuZ3RoPEF1dG9FbmFi
bGVkPigmUmVuZGVyU3R5bGU6OnJpZ2h0LCAmUmVuZGVyU3R5bGU6OnNldFJpZ2h0LCAmUmVuZGVy
U3R5bGU6OmluaXRpYWxPZmZzZXQpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>