<?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>53513</bug_id>
          
          <creation_ts>2011-02-01 11:36:37 -0800</creation_ts>
          <short_desc>LayoutTests/animations/play-state.html has wrong behavior with accelerated compositing</short_desc>
          <delta_ts>2011-02-10 20:25:24 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Marrin">cmarrin</reporter>
          <assigned_to name="Chris Marrin">cmarrin</assigned_to>
          <cc>buildbot</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>kbr</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>343382</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2011-02-01 11:36:37 -0800</bug_when>
    <thetext>The top blue box is animated using -webkit-transform. It should stop after 2 sec and then continue from where it left off. But it continues to animation and then after 1 more second it hops back to where the red box is and continues its animation. The test passes because when we see the animation is stopped we simply return the current software value so we miss the fact that the animation is still running.

This is most likely a regression caused by recent restructuring of the accelerated animation code. We are probably failing to remove the hardware animation when a pause comes in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345925</commentid>
    <comment_count>1</comment_count>
      <attachid>81322</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2011-02-04 16:52:22 -0800</bug_when>
    <thetext>Created attachment 81322
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346677</commentid>
    <comment_count>2</comment_count>
      <attachid>81322</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-02-07 10:50:25 -0800</bug_when>
    <thetext>Comment on attachment 81322
Patch

The copy ctor should take a const&amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346692</commentid>
    <comment_count>3</comment_count>
      <attachid>81500</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2011-02-07 11:25:56 -0800</bug_when>
    <thetext>Created attachment 81500
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346718</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-07 12:33:59 -0800</bug_when>
    <thetext>This feels kinda strange to use Foo::create(*foo.get()).  I wonder if an explicit -&gt;copy() call would be claeaner since there you can do Foo::create(*this) which I think is more common to see.

Not sure.  I&apos;m trying to think of places where we have objects was pass around as pointer and yet have copy constructors.  I can&apos;t think of any.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346720</commentid>
    <comment_count>5</comment_count>
      <attachid>81500</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-02-07 12:38:36 -0800</bug_when>
    <thetext>Comment on attachment 81500
Patch

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

&gt; Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:1510
&gt; +    RefPtr&lt;PlatformCAAnimation&gt; newAnim = PlatformCAAnimation::create(*(curAnim.get()));

nit: *curAnim should do the same thing as *(curAnim.get()) for all of the WTF smart pointer types thanks to the operator* overload on them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346932</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2011-02-07 16:23:56 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 81500 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=81500&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:1510
&gt; &gt; +    RefPtr&lt;PlatformCAAnimation&gt; newAnim = PlatformCAAnimation::create(*(curAnim.get()));
&gt; 
&gt; nit: *curAnim should do the same thing as *(curAnim.get()) for all of the WTF smart pointer types thanks to the operator* overload on them.

Good point. Actually this whole thing seems wrong. I put in my changelog that I was messing with the &quot;copy constructor&quot;. Simon called me on it, saying that I was using the wrong signature for copy constructors, so I naively fixed that. The problem is that this isn&apos;t really a copy constructor at all. You can&apos;t call the constructor at all in fact. You have to go through the create method which doesn&apos;t have any implicit copy semantics as far as C++ is concerned.

So I think I should go back to the old call signature. Maybe i should call this method &quot;copy()&quot; rather than &quot;create()&quot; although that would break with convention a bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346937</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-07 16:34:27 -0800</bug_when>
    <thetext>You could just have a -&gt;copy() method on the instance which returns a new instance, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346978</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2011-02-07 17:37:31 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; You could just have a -&gt;copy() method on the instance which returns a new instance, no?

Sure, I&apos;ve never seen that pattern. Typically these functions are called create() with the same signature as the ctor. But I&apos;ll call it copy to avoid the local confusion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347036</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-02-07 20:18:10 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Sure, I&apos;ve never seen that pattern. Typically these functions are called create() with the same signature as the ctor. But I&apos;ll call it copy to avoid the local confusion.

I looked around for examples, and found them in these files:

CSSStyleDeclaration.h
CSSValueList.h
EditingStyle.h
FormData.h
HistoryItem.h
SVGPathByteStream.h
SVGRenderStyle.h
SVGRenderStyleDefs.h
SharedBuffer.h
StorageAreaImpl.h
StorageMap.h
StorageNamespace.h
StyleBackgroundData.h
StyleBoxData.h
StyleFlexibleBoxData.h
StyleInheritedData.h
StyleMarqueeData.h
StyleMultiColData.h
StyleRareInheritedData.h
StyleRareNonInheritedData.h
StyleSurroundData.h
StyleTransformData.h
StyleVisualData.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347504</commentid>
    <comment_count>10</comment_count>
      <attachid>81659</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2011-02-08 10:45:51 -0800</bug_when>
    <thetext>Created attachment 81659
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347518</commentid>
    <comment_count>11</comment_count>
      <attachid>81659</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-02-08 10:54:35 -0800</bug_when>
    <thetext>Comment on attachment 81659
Patch

copy() should be a const method on the original, that returns a copy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347912</commentid>
    <comment_count>12</comment_count>
      <attachid>81736</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2011-02-08 19:53:57 -0800</bug_when>
    <thetext>Created attachment 81736
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347918</commentid>
    <comment_count>13</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-08 20:17:48 -0800</bug_when>
    <thetext>Attachment 81736 did not build on win:
Build output: http://queues.webkit.org/results/7791258</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347933</commentid>
    <comment_count>14</comment_count>
      <attachid>81736</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-02-08 20:55:46 -0800</bug_when>
    <thetext>Comment on attachment 81736
Patch

r=me assuming you fix the Windows build failure:
PlatformCAAnimationWin.cpp(190) : error C3861: &apos;setNonZeroBeginTimeFlag&apos;: identifier not found</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348178</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2011-02-09 06:09:53 -0800</bug_when>
    <thetext>Committed r78051: &lt;http://trac.webkit.org/changeset/78051&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349590</commentid>
    <comment_count>16</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-02-10 20:25:24 -0800</bug_when>
    <thetext>*** Bug 54261 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81322</attachid>
            <date>2011-02-04 16:52:22 -0800</date>
            <delta_ts>2011-02-07 11:25:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53513-20110204165221.patch</filename>
            <type>text/plain</type>
            <size>4244</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3NjkzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDItMDQgIENocmlzIE1h
cnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIExheW91dFRlc3RzL2FuaW1hdGlvbnMvcGxheS1zdGF0ZS5odG1s
IGhhcyB3cm9uZyBiZWhhdmlvciB3aXRoIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzUxMworCisgICAgICAg
IFRoZSBQbGF0Zm9ybUNBQW5pbWF0aW9uIG9uIE1hYyBoYWQgYSBjb3B5IGNvbnN0cnVjdG9yIHdo
aWNoIHdhcyBjcmVhdGluZyBhCisgICAgICAgIG5ldyBQbGF0Zm9ybUNBQW5pbWF0aW9uIGFuIGlu
aXRpYWxpemluZyB0aGF0IGluc3RlYWQgb2YgdGhlIHRoaXMgb2JqZWN0LiBJIAorICAgICAgICBj
aGFuZ2VkIGl0IHRvIGRvIHRoZSB1c3VhbCBjb3B5IGZyb20gdGhlIHBhc3NlZCBvYmplY3QuIEkg
Y2hlY2tlZCB0aGUgCisgICAgICAgIFdpbmRvd3MgaW1wbGVtZW50YXRpb24gYW5kIGl0IGlzIGlt
cGxlbWVudGVkIGNvcnJlY3RseSBhbHJlYWR5LiBUaGUKKyAgICAgICAgYmVoYXZpb3Igd2FzIHRo
YXQgYW4gYWNjZWxlcmF0ZWQgYW5pbWF0aW9uIHdvdWxkIG5vdCBzdG9wIHdoZW4KKyAgICAgICAg
cGxheS1zdGF0ZTpwYXVzZWQgd2FzIHNldC4KKworICAgICAgICBUaGlzIHByb2JsZW0gd2FzIG5v
dCBjYXVnaHQgYnkgRFJULCBldmVuIHRoZXJlIGlzIGEgc3BlY2lmaWMgdGVzdCBmb3IgaXQuCisg
ICAgICAgIFRoYXQgdGVzdCBqdXN0IHZlcmlmaWVzIHRoYXQgdGhlIGhpZ2hlciBsZXZlbCBsb2dp
YyBpcyB3b3JraW5nIAorICAgICAgICBwcm9wZXJseSwgd2hpY2ggaXQgaXMuIFRoZXJlJ3Mgbm8g
cHJhY3RpY2FsIHdheSB0byBmaW5kIG91dCBpZiB0aGUKKyAgICAgICAgbGF5ZXIgaXMgY3VycmVu
dGx5IGFuaW1hdGluZy4gVGhlcmUgaXMgbm8gbG9naWMgd2hpY2ggcHJvYmVzIHRoYXQKKyAgICAg
ICAgZGVlcGx5IGludG8gdGhlIGxheWVyIG1lY2hhbmljcy4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLm1tOgorICAgICAgICAoUGxh
dGZvcm1DQUFuaW1hdGlvbjo6UGxhdGZvcm1DQUFuaW1hdGlvbik6CisKIDIwMTEtMDItMDQgIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBDYXJsc29uLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFj
L1BsYXRmb3JtQ0FBbmltYXRpb25NYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMubW0JKHJldmlz
aW9uIDc3NTY4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1Bs
YXRmb3JtQ0FBbmltYXRpb25NYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTE4OSwzMyArMTg5LDM3
IEBAIFBsYXRmb3JtQ0FBbmltYXRpb246OlBsYXRmb3JtQ0FBbmltYXRpb24KIAogUGxhdGZvcm1D
QUFuaW1hdGlvbjo6UGxhdGZvcm1DQUFuaW1hdGlvbihjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9u
KiBhbmltYXRpb24pCiB7Ci0gICAgUGxhdGZvcm1DQUFuaW1hdGlvbiogbmV3QW5pbWF0aW9uID0g
bmV3IFBsYXRmb3JtQ0FBbmltYXRpb24oYW5pbWF0aW9uLT5hbmltYXRpb25UeXBlKCksIGFuaW1h
dGlvbi0+a2V5UGF0aCgpKTsKLQotICAgIG5ld0FuaW1hdGlvbi0+c2V0QmVnaW5UaW1lKGFuaW1h
dGlvbi0+YmVnaW5UaW1lKCkpOwotICAgIG5ld0FuaW1hdGlvbi0+c2V0RHVyYXRpb24oYW5pbWF0
aW9uLT5kdXJhdGlvbigpKTsKLSAgICBuZXdBbmltYXRpb24tPnNldFNwZWVkKGFuaW1hdGlvbi0+
c3BlZWQoKSk7Ci0gICAgbmV3QW5pbWF0aW9uLT5zZXRUaW1lT2Zmc2V0KGFuaW1hdGlvbi0+dGlt
ZU9mZnNldCgpKTsKLSAgICBuZXdBbmltYXRpb24tPnNldFJlcGVhdENvdW50KGFuaW1hdGlvbi0+
cmVwZWF0Q291bnQoKSk7Ci0gICAgbmV3QW5pbWF0aW9uLT5zZXRBdXRvcmV2ZXJzZXMoYW5pbWF0
aW9uLT5hdXRvcmV2ZXJzZXMoKSk7Ci0gICAgbmV3QW5pbWF0aW9uLT5zZXRGaWxsTW9kZShhbmlt
YXRpb24tPmZpbGxNb2RlKCkpOwotICAgIG5ld0FuaW1hdGlvbi0+c2V0UmVtb3ZlZE9uQ29tcGxl
dGlvbihhbmltYXRpb24tPmlzUmVtb3ZlZE9uQ29tcGxldGlvbigpKTsKLSAgICBuZXdBbmltYXRp
b24tPnNldEFkZGl0aXZlKGFuaW1hdGlvbi0+aXNBZGRpdGl2ZSgpKTsKLSAgICBuZXdBbmltYXRp
b24tPmNvcHlUaW1pbmdGdW5jdGlvbkZyb20oYW5pbWF0aW9uKTsKKyAgICBtX3R5cGUgPSBhbmlt
YXRpb24tPmFuaW1hdGlvblR5cGUoKTsKKyAgICBpZiAobV90eXBlID09IEJhc2ljKQorICAgICAg
ICBtX2FuaW1hdGlvbi5hZG9wdE5TKFtbQ0FCYXNpY0FuaW1hdGlvbiBhbmltYXRpb25XaXRoS2V5
UGF0aDphbmltYXRpb24tPmtleVBhdGgoKV0gcmV0YWluXSk7CisgICAgZWxzZQorICAgICAgICBt
X2FuaW1hdGlvbi5hZG9wdE5TKFtbQ0FLZXlmcmFtZUFuaW1hdGlvbiBhbmltYXRpb25XaXRoS2V5
UGF0aDphbmltYXRpb24tPmtleVBhdGgoKV0gcmV0YWluXSk7CisgICAgCisgICAgc2V0QmVnaW5U
aW1lKGFuaW1hdGlvbi0+YmVnaW5UaW1lKCkpOworICAgIHNldER1cmF0aW9uKGFuaW1hdGlvbi0+
ZHVyYXRpb24oKSk7CisgICAgc2V0U3BlZWQoYW5pbWF0aW9uLT5zcGVlZCgpKTsKKyAgICBzZXRU
aW1lT2Zmc2V0KGFuaW1hdGlvbi0+dGltZU9mZnNldCgpKTsKKyAgICBzZXRSZXBlYXRDb3VudChh
bmltYXRpb24tPnJlcGVhdENvdW50KCkpOworICAgIHNldEF1dG9yZXZlcnNlcyhhbmltYXRpb24t
PmF1dG9yZXZlcnNlcygpKTsKKyAgICBzZXRGaWxsTW9kZShhbmltYXRpb24tPmZpbGxNb2RlKCkp
OworICAgIHNldFJlbW92ZWRPbkNvbXBsZXRpb24oYW5pbWF0aW9uLT5pc1JlbW92ZWRPbkNvbXBs
ZXRpb24oKSk7CisgICAgc2V0QWRkaXRpdmUoYW5pbWF0aW9uLT5pc0FkZGl0aXZlKCkpOworICAg
IGNvcHlUaW1pbmdGdW5jdGlvbkZyb20oYW5pbWF0aW9uKTsKIAogI2lmIEhBVkVfTU9ERVJOX1FV
QVJUWkNPUkUKLSAgICBuZXdBbmltYXRpb24tPnNldFZhbHVlRnVuY3Rpb24oYW5pbWF0aW9uLT52
YWx1ZUZ1bmN0aW9uKCkpOworICAgIHNldFZhbHVlRnVuY3Rpb24oYW5pbWF0aW9uLT52YWx1ZUZ1
bmN0aW9uKCkpOwogI2VuZGlmCiAKLSAgICBzZXROb25aZXJvQmVnaW5UaW1lRmxhZyhuZXdBbmlt
YXRpb24sIGhhc05vblplcm9CZWdpblRpbWVGbGFnKGFuaW1hdGlvbikpOworICAgIHNldE5vblpl
cm9CZWdpblRpbWVGbGFnKHRoaXMsIGhhc05vblplcm9CZWdpblRpbWVGbGFnKGFuaW1hdGlvbikp
OwogICAgIAogICAgIC8vIENvcHkgdGhlIHNwZWNpZmljIEJhc2ljIG9yIEtleWZyYW1lIHZhbHVl
cwogICAgIGlmIChhbmltYXRpb24tPmFuaW1hdGlvblR5cGUoKSA9PSBLZXlmcmFtZSkgewotICAg
ICAgICBuZXdBbmltYXRpb24tPmNvcHlWYWx1ZXNGcm9tKGFuaW1hdGlvbik7Ci0gICAgICAgIG5l
d0FuaW1hdGlvbi0+Y29weUtleVRpbWVzRnJvbShhbmltYXRpb24pOwotICAgICAgICBuZXdBbmlt
YXRpb24tPmNvcHlUaW1pbmdGdW5jdGlvbnNGcm9tKGFuaW1hdGlvbik7CisgICAgICAgIGNvcHlW
YWx1ZXNGcm9tKGFuaW1hdGlvbik7CisgICAgICAgIGNvcHlLZXlUaW1lc0Zyb20oYW5pbWF0aW9u
KTsKKyAgICAgICAgY29weVRpbWluZ0Z1bmN0aW9uc0Zyb20oYW5pbWF0aW9uKTsKICAgICB9IGVs
c2UgewotICAgICAgICBuZXdBbmltYXRpb24tPmNvcHlGcm9tVmFsdWVGcm9tKGFuaW1hdGlvbik7
Ci0gICAgICAgIG5ld0FuaW1hdGlvbi0+Y29weVRvVmFsdWVGcm9tKGFuaW1hdGlvbik7CisgICAg
ICAgIGNvcHlGcm9tVmFsdWVGcm9tKGFuaW1hdGlvbik7CisgICAgICAgIGNvcHlUb1ZhbHVlRnJv
bShhbmltYXRpb24pOwogICAgIH0KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81500</attachid>
            <date>2011-02-07 11:25:56 -0800</date>
            <delta_ts>2011-02-08 10:45:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53513-20110207112555.patch</filename>
            <type>text/plain</type>
            <size>10463</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3ODMzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTEtMDItMDcgIENocmlzIE1h
cnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIExheW91dFRlc3RzL2FuaW1hdGlvbnMvcGxheS1zdGF0ZS5odG1s
IGhhcyB3cm9uZyBiZWhhdmlvciB3aXRoIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzUxMworCisgICAgICAg
IFRoZSBQbGF0Zm9ybUNBQW5pbWF0aW9uIG9uIE1hYyBoYWQgYSBjb3B5IGNvbnN0cnVjdG9yIHdo
aWNoIHdhcyBjcmVhdGluZyBhCisgICAgICAgIG5ldyBQbGF0Zm9ybUNBQW5pbWF0aW9uIGFuIGlu
aXRpYWxpemluZyB0aGF0IGluc3RlYWQgb2YgdGhlIHRoaXMgb2JqZWN0LiBJIAorICAgICAgICBj
aGFuZ2VkIGl0IHRvIGRvIHRoZSB1c3VhbCBjb3B5IGZyb20gdGhlIHBhc3NlZCBvYmplY3QuIEkg
Y2hlY2tlZCB0aGUgCisgICAgICAgIFdpbmRvd3MgaW1wbGVtZW50YXRpb24gYW5kIGl0IGlzIGlt
cGxlbWVudGVkIGNvcnJlY3RseSBhbHJlYWR5LiBUaGUKKyAgICAgICAgYmVoYXZpb3Igd2FzIHRo
YXQgYW4gYWNjZWxlcmF0ZWQgYW5pbWF0aW9uIHdvdWxkIG5vdCBzdG9wIHdoZW4KKyAgICAgICAg
cGxheS1zdGF0ZTpwYXVzZWQgd2FzIHNldC4KKworICAgICAgICBUaGlzIHByb2JsZW0gd2FzIG5v
dCBjYXVnaHQgYnkgRFJULCBldmVuIHRoZXJlIGlzIGEgc3BlY2lmaWMgdGVzdCBmb3IgaXQuCisg
ICAgICAgIFRoYXQgdGVzdCBqdXN0IHZlcmlmaWVzIHRoYXQgdGhlIGhpZ2hlciBsZXZlbCBsb2dp
YyBpcyB3b3JraW5nIAorICAgICAgICBwcm9wZXJseSwgd2hpY2ggaXQgaXMuIFRoZXJlJ3Mgbm8g
cHJhY3RpY2FsIHdheSB0byBmaW5kIG91dCBpZiB0aGUKKyAgICAgICAgbGF5ZXIgaXMgY3VycmVu
dGx5IGFuaW1hdGluZy4gVGhlcmUgaXMgbm8gbG9naWMgd2hpY2ggcHJvYmVzIHRoYXQKKyAgICAg
ICAgZGVlcGx5IGludG8gdGhlIGxheWVyIG1lY2hhbmljcy4KKyAgICAgICAgCisgICAgICAgIEFs
c28gY2hhbmdlZCB0aGUgc2lnbmF0dXJlIHRvIHRoZSBjb3B5IGNvbnN0cnVjdG9yIHNvIGl0IGJl
aGF2ZXMgbGlrZQorICAgICAgICBhIHJlYWwgQysrIGNvcHkgY29uc3RydXRvci4gVGhlIHJlcXVp
cmVkIGEgY2hhbmdlIG9uIHRoZSBXaW4gaW1wbCBhcyB3ZWxsLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJDQTo6cGF1c2VDQUFuaW1hdGlvbk9uTGF5ZXIpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FBbmltYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5tbToKKyAgICAgICAgKFBs
YXRmb3JtQ0FBbmltYXRpb246OmNyZWF0ZSk6CisgICAgICAgIChQbGF0Zm9ybUNBQW5pbWF0aW9u
OjpQbGF0Zm9ybUNBQW5pbWF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS93
aW4vUGxhdGZvcm1DQUFuaW1hdGlvbldpbi5jcHA6CisgICAgICAgIChQbGF0Zm9ybUNBQW5pbWF0
aW9uOjpjcmVhdGUpOgorICAgICAgICAoUGxhdGZvcm1DQUFuaW1hdGlvbjo6UGxhdGZvcm1DQUFu
aW1hdGlvbik6CisKIDIwMTEtMDItMDcgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFR1cm4gVVRGLTggZGVjb2RlciBvZmYgZm9yIG5vdyBzbyB3ZSBjYW4gbG9vayBp
bnRvIGZhaWxpbmcgdGVzdHMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAkocmV2aXNpb24gNzc1NjgpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNTA3LDcgKzE1MDcsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJD
QTo6cGF1c2VDQUFuaW1hdGlvbk9uCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIEFuaW1hdGlv
bnMgb24gdGhlIGxheWVyIGFyZSBpbW11dGFibGUsIHNvIHdlIGhhdmUgdG8gY2xvbmUgYW5kIG1v
ZGlmeS4KLSAgICBSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gbmV3QW5pbSA9IFBsYXRmb3Jt
Q0FBbmltYXRpb246OmNyZWF0ZShjdXJBbmltLmdldCgpKTsKKyAgICBSZWZQdHI8UGxhdGZvcm1D
QUFuaW1hdGlvbj4gbmV3QW5pbSA9IFBsYXRmb3JtQ0FBbmltYXRpb246OmNyZWF0ZSgqKGN1ckFu
aW0uZ2V0KCkpKTsKIAogICAgIG5ld0FuaW0tPnNldFNwZWVkKDApOwogICAgIG5ld0FuaW0tPnNl
dFRpbWVPZmZzZXQodGltZU9mZnNldCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5pbWF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUFuaW1hdGlvbi5oCShyZXZpc2lv
biA3NzU2OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3Jt
Q0FBbmltYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNjMsOCArNjMsOCBAQCBwdWJsaWM6CiAg
ICAgZW51bSBWYWx1ZUZ1bmN0aW9uVHlwZSB7IE5vVmFsdWVGdW5jdGlvbiwgUm90YXRlWCwgUm90
YXRlWSwgUm90YXRlWiwgU2NhbGVYLCBTY2FsZVksIFNjYWxlWiwgU2NhbGUsIFRyYW5zbGF0ZVgs
IFRyYW5zbGF0ZVksIFRyYW5zbGF0ZVosIFRyYW5zbGF0ZSB9OwogCiAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gY3JlYXRlKEFuaW1hdGlvblR5cGUsIGNvbnN0IFN0
cmluZyYga2V5UGF0aCk7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlv
bj4gY3JlYXRlKFBsYXRmb3JtQW5pbWF0aW9uUmVmIGFuaW1hdGlvbik7Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gY3JlYXRlKGNvbnN0IFBsYXRmb3JtQ0FBbmlt
YXRpb24qIGFuaW1hdGlvbik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1h
dGlvbj4gY3JlYXRlKFBsYXRmb3JtQW5pbWF0aW9uUmVmKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBjcmVhdGUoY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiYp
OwogCiAgICAgflBsYXRmb3JtQ0FBbmltYXRpb24oKTsKICAgICAKQEAgLTEzNiw4ICsxMzYsOCBA
QCBwdWJsaWM6CiAgICAgCiBwcm90ZWN0ZWQ6CiAgICAgUGxhdGZvcm1DQUFuaW1hdGlvbihBbmlt
YXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGtleVBhdGgpOwotICAgIFBsYXRmb3JtQ0FBbmltYXRp
b24oUGxhdGZvcm1BbmltYXRpb25SZWYgYW5pbWF0aW9uKTsKLSAgICBQbGF0Zm9ybUNBQW5pbWF0
aW9uKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIGFuaW1hdGlvbik7CisgICAgUGxhdGZvcm1D
QUFuaW1hdGlvbihQbGF0Zm9ybUFuaW1hdGlvblJlZik7CisgICAgUGxhdGZvcm1DQUFuaW1hdGlv
bihjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uJik7CiAgICAgCiBwcml2YXRlOgogICAgIEFuaW1h
dGlvblR5cGUgbV90eXBlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMubW0J
KHJldmlzaW9uIDc3NTY4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
bWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTE1OSw3ICsx
NTksNyBAQCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IFBsYXRmb3JtCiAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBQbGF0Zm9ybUNBQW5pbWF0aW9uKGFuaW1hdGlvbikpOwogfQogCi1Q
YXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IFBsYXRmb3JtQ0FBbmltYXRpb246OmNyZWF0
ZShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiBhbmltYXRpb24pCitQYXNzUmVmUHRyPFBsYXRm
b3JtQ0FBbmltYXRpb24+IFBsYXRmb3JtQ0FBbmltYXRpb246OmNyZWF0ZShjb25zdCBQbGF0Zm9y
bUNBQW5pbWF0aW9uJiBhbmltYXRpb24pCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQbGF0
Zm9ybUNBQW5pbWF0aW9uKGFuaW1hdGlvbikpOwogfQpAQCAtMTg3LDM1ICsxODcsNDAgQEAgUGxh
dGZvcm1DQUFuaW1hdGlvbjo6UGxhdGZvcm1DQUFuaW1hdGlvbgogICAgIG1fYW5pbWF0aW9uID0g
c3RhdGljX2Nhc3Q8Q0FQcm9wZXJ0eUFuaW1hdGlvbio+KGFuaW1hdGlvbik7CiB9CiAKLVBsYXRm
b3JtQ0FBbmltYXRpb246OlBsYXRmb3JtQ0FBbmltYXRpb24oY29uc3QgUGxhdGZvcm1DQUFuaW1h
dGlvbiogYW5pbWF0aW9uKQorUGxhdGZvcm1DQUFuaW1hdGlvbjo6UGxhdGZvcm1DQUFuaW1hdGlv
bihjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uJiBhbmltYXRpb24pCisgICAgOiBSZWZDb3VudGVk
PFBsYXRmb3JtQ0FBbmltYXRpb24+KCkKIHsKLSAgICBQbGF0Zm9ybUNBQW5pbWF0aW9uKiBuZXdB
bmltYXRpb24gPSBuZXcgUGxhdGZvcm1DQUFuaW1hdGlvbihhbmltYXRpb24tPmFuaW1hdGlvblR5
cGUoKSwgYW5pbWF0aW9uLT5rZXlQYXRoKCkpOwotCi0gICAgbmV3QW5pbWF0aW9uLT5zZXRCZWdp
blRpbWUoYW5pbWF0aW9uLT5iZWdpblRpbWUoKSk7Ci0gICAgbmV3QW5pbWF0aW9uLT5zZXREdXJh
dGlvbihhbmltYXRpb24tPmR1cmF0aW9uKCkpOwotICAgIG5ld0FuaW1hdGlvbi0+c2V0U3BlZWQo
YW5pbWF0aW9uLT5zcGVlZCgpKTsKLSAgICBuZXdBbmltYXRpb24tPnNldFRpbWVPZmZzZXQoYW5p
bWF0aW9uLT50aW1lT2Zmc2V0KCkpOwotICAgIG5ld0FuaW1hdGlvbi0+c2V0UmVwZWF0Q291bnQo
YW5pbWF0aW9uLT5yZXBlYXRDb3VudCgpKTsKLSAgICBuZXdBbmltYXRpb24tPnNldEF1dG9yZXZl
cnNlcyhhbmltYXRpb24tPmF1dG9yZXZlcnNlcygpKTsKLSAgICBuZXdBbmltYXRpb24tPnNldEZp
bGxNb2RlKGFuaW1hdGlvbi0+ZmlsbE1vZGUoKSk7Ci0gICAgbmV3QW5pbWF0aW9uLT5zZXRSZW1v
dmVkT25Db21wbGV0aW9uKGFuaW1hdGlvbi0+aXNSZW1vdmVkT25Db21wbGV0aW9uKCkpOwotICAg
IG5ld0FuaW1hdGlvbi0+c2V0QWRkaXRpdmUoYW5pbWF0aW9uLT5pc0FkZGl0aXZlKCkpOwotICAg
IG5ld0FuaW1hdGlvbi0+Y29weVRpbWluZ0Z1bmN0aW9uRnJvbShhbmltYXRpb24pOworICAgIG1f
dHlwZSA9IGFuaW1hdGlvbi5hbmltYXRpb25UeXBlKCk7CisgICAgaWYgKG1fdHlwZSA9PSBCYXNp
YykKKyAgICAgICAgbV9hbmltYXRpb24uYWRvcHROUyhbW0NBQmFzaWNBbmltYXRpb24gYW5pbWF0
aW9uV2l0aEtleVBhdGg6YW5pbWF0aW9uLmtleVBhdGgoKV0gcmV0YWluXSk7CisgICAgZWxzZQor
ICAgICAgICBtX2FuaW1hdGlvbi5hZG9wdE5TKFtbQ0FLZXlmcmFtZUFuaW1hdGlvbiBhbmltYXRp
b25XaXRoS2V5UGF0aDphbmltYXRpb24ua2V5UGF0aCgpXSByZXRhaW5dKTsKKyAgICAKKyAgICBz
ZXRCZWdpblRpbWUoYW5pbWF0aW9uLmJlZ2luVGltZSgpKTsKKyAgICBzZXREdXJhdGlvbihhbmlt
YXRpb24uZHVyYXRpb24oKSk7CisgICAgc2V0U3BlZWQoYW5pbWF0aW9uLnNwZWVkKCkpOworICAg
IHNldFRpbWVPZmZzZXQoYW5pbWF0aW9uLnRpbWVPZmZzZXQoKSk7CisgICAgc2V0UmVwZWF0Q291
bnQoYW5pbWF0aW9uLnJlcGVhdENvdW50KCkpOworICAgIHNldEF1dG9yZXZlcnNlcyhhbmltYXRp
b24uYXV0b3JldmVyc2VzKCkpOworICAgIHNldEZpbGxNb2RlKGFuaW1hdGlvbi5maWxsTW9kZSgp
KTsKKyAgICBzZXRSZW1vdmVkT25Db21wbGV0aW9uKGFuaW1hdGlvbi5pc1JlbW92ZWRPbkNvbXBs
ZXRpb24oKSk7CisgICAgc2V0QWRkaXRpdmUoYW5pbWF0aW9uLmlzQWRkaXRpdmUoKSk7CisgICAg
Y29weVRpbWluZ0Z1bmN0aW9uRnJvbSgmYW5pbWF0aW9uKTsKIAogI2lmIEhBVkVfTU9ERVJOX1FV
QVJUWkNPUkUKLSAgICBuZXdBbmltYXRpb24tPnNldFZhbHVlRnVuY3Rpb24oYW5pbWF0aW9uLT52
YWx1ZUZ1bmN0aW9uKCkpOworICAgIHNldFZhbHVlRnVuY3Rpb24oYW5pbWF0aW9uLnZhbHVlRnVu
Y3Rpb24oKSk7CiAjZW5kaWYKIAotICAgIHNldE5vblplcm9CZWdpblRpbWVGbGFnKG5ld0FuaW1h
dGlvbiwgaGFzTm9uWmVyb0JlZ2luVGltZUZsYWcoYW5pbWF0aW9uKSk7CisgICAgc2V0Tm9uWmVy
b0JlZ2luVGltZUZsYWcodGhpcywgaGFzTm9uWmVyb0JlZ2luVGltZUZsYWcoJmFuaW1hdGlvbikp
OwogICAgIAogICAgIC8vIENvcHkgdGhlIHNwZWNpZmljIEJhc2ljIG9yIEtleWZyYW1lIHZhbHVl
cwotICAgIGlmIChhbmltYXRpb24tPmFuaW1hdGlvblR5cGUoKSA9PSBLZXlmcmFtZSkgewotICAg
ICAgICBuZXdBbmltYXRpb24tPmNvcHlWYWx1ZXNGcm9tKGFuaW1hdGlvbik7Ci0gICAgICAgIG5l
d0FuaW1hdGlvbi0+Y29weUtleVRpbWVzRnJvbShhbmltYXRpb24pOwotICAgICAgICBuZXdBbmlt
YXRpb24tPmNvcHlUaW1pbmdGdW5jdGlvbnNGcm9tKGFuaW1hdGlvbik7CisgICAgaWYgKGFuaW1h
dGlvbi5hbmltYXRpb25UeXBlKCkgPT0gS2V5ZnJhbWUpIHsKKyAgICAgICAgY29weVZhbHVlc0Zy
b20oJmFuaW1hdGlvbik7CisgICAgICAgIGNvcHlLZXlUaW1lc0Zyb20oJmFuaW1hdGlvbik7Cisg
ICAgICAgIGNvcHlUaW1pbmdGdW5jdGlvbnNGcm9tKCZhbmltYXRpb24pOwogICAgIH0gZWxzZSB7
Ci0gICAgICAgIG5ld0FuaW1hdGlvbi0+Y29weUZyb21WYWx1ZUZyb20oYW5pbWF0aW9uKTsKLSAg
ICAgICAgbmV3QW5pbWF0aW9uLT5jb3B5VG9WYWx1ZUZyb20oYW5pbWF0aW9uKTsKKyAgICAgICAg
Y29weUZyb21WYWx1ZUZyb20oJmFuaW1hdGlvbik7CisgICAgICAgIGNvcHlUb1ZhbHVlRnJvbSgm
YW5pbWF0aW9uKTsKICAgICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBQW5pbWF0aW9uV2luLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUFuaW1hdGlv
bldpbi5jcHAJKHJldmlzaW9uIDc3NTY4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FBbmltYXRpb25XaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNDUsNyArMTQ1LDcgQEAgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9y
bQogICAgIHJldHVybiBhZG9wdFJlZihuZXcgUGxhdGZvcm1DQUFuaW1hdGlvbihhbmltYXRpb24p
KTsKIH0KIAotUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBQW5pbWF0
aW9uOjpjcmVhdGUoY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogYW5pbWF0aW9uKQorUGFzc1Jl
ZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjcmVhdGUoY29u
c3QgUGxhdGZvcm1DQUFuaW1hdGlvbiYgYW5pbWF0aW9uKQogewogICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgUGxhdGZvcm1DQUFuaW1hdGlvbihhbmltYXRpb24pKTsKIH0KQEAgLTE3NiwzMiArMTc2
LDMyIEBAIFBsYXRmb3JtQ0FBbmltYXRpb246OlBsYXRmb3JtQ0FBbmltYXRpb24KICAgICBtX2Fu
aW1hdGlvbiA9IGFuaW1hdGlvbjsKIH0KIAotUGxhdGZvcm1DQUFuaW1hdGlvbjo6UGxhdGZvcm1D
QUFuaW1hdGlvbihjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiBhbmltYXRpb24pCitQbGF0Zm9y
bUNBQW5pbWF0aW9uOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRp
b24mIGFuaW1hdGlvbikKIHsKLSAgICBtX2FuaW1hdGlvbi5hZG9wdENGKENBQ0ZBbmltYXRpb25D
cmVhdGUoKGFuaW1hdGlvbi0+YW5pbWF0aW9uVHlwZSgpID09IEJhc2ljKSA/IGtDQUNGQmFzaWNB
bmltYXRpb24gOiBrQ0FDRktleWZyYW1lQW5pbWF0aW9uKSk7Ci0gICAgUmV0YWluUHRyPENGU3Ry
aW5nUmVmPiBrZXlQYXRoKEFkb3B0Q0YsIGFuaW1hdGlvbi0+a2V5UGF0aCgpLmNyZWF0ZUNGU3Ry
aW5nKCkpOworICAgIG1fYW5pbWF0aW9uLmFkb3B0Q0YoQ0FDRkFuaW1hdGlvbkNyZWF0ZSgoYW5p
bWF0aW9uLmFuaW1hdGlvblR5cGUoKSA9PSBCYXNpYykgPyBrQ0FDRkJhc2ljQW5pbWF0aW9uIDog
a0NBQ0ZLZXlmcmFtZUFuaW1hdGlvbikpOworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4ga2V5
UGF0aChBZG9wdENGLCBhbmltYXRpb24ua2V5UGF0aCgpLmNyZWF0ZUNGU3RyaW5nKCkpOwogICAg
IENBQ0ZBbmltYXRpb25TZXRLZXlQYXRoKG1fYW5pbWF0aW9uLmdldCgpLCBrZXlQYXRoLmdldCgp
KTsKIAotICAgIHNldEJlZ2luVGltZShhbmltYXRpb24tPmJlZ2luVGltZSgpKTsKLSAgICBzZXRE
dXJhdGlvbihhbmltYXRpb24tPmR1cmF0aW9uKCkpOwotICAgIHNldFNwZWVkKGFuaW1hdGlvbi0+
c3BlZWQoKSk7Ci0gICAgc2V0VGltZU9mZnNldChhbmltYXRpb24tPnRpbWVPZmZzZXQoKSk7Ci0g
ICAgc2V0UmVwZWF0Q291bnQoYW5pbWF0aW9uLT5yZXBlYXRDb3VudCgpKTsKLSAgICBzZXRBdXRv
cmV2ZXJzZXMoYW5pbWF0aW9uLT5hdXRvcmV2ZXJzZXMoKSk7Ci0gICAgc2V0RmlsbE1vZGUoYW5p
bWF0aW9uLT5maWxsTW9kZSgpKTsKLSAgICBzZXRSZW1vdmVkT25Db21wbGV0aW9uKGFuaW1hdGlv
bi0+aXNSZW1vdmVkT25Db21wbGV0aW9uKCkpOwotICAgIHNldEFkZGl0aXZlKGFuaW1hdGlvbi0+
aXNBZGRpdGl2ZSgpKTsKLSAgICBjb3B5VGltaW5nRnVuY3Rpb25Gcm9tKGFuaW1hdGlvbik7Ci0g
ICAgc2V0VmFsdWVGdW5jdGlvbihhbmltYXRpb24tPnZhbHVlRnVuY3Rpb24oKSk7CisgICAgc2V0
QmVnaW5UaW1lKGFuaW1hdGlvbi5iZWdpblRpbWUoKSk7CisgICAgc2V0RHVyYXRpb24oYW5pbWF0
aW9uLmR1cmF0aW9uKCkpOworICAgIHNldFNwZWVkKGFuaW1hdGlvbi5zcGVlZCgpKTsKKyAgICBz
ZXRUaW1lT2Zmc2V0KGFuaW1hdGlvbi50aW1lT2Zmc2V0KCkpOworICAgIHNldFJlcGVhdENvdW50
KGFuaW1hdGlvbi5yZXBlYXRDb3VudCgpKTsKKyAgICBzZXRBdXRvcmV2ZXJzZXMoYW5pbWF0aW9u
LmF1dG9yZXZlcnNlcygpKTsKKyAgICBzZXRGaWxsTW9kZShhbmltYXRpb24uZmlsbE1vZGUoKSk7
CisgICAgc2V0UmVtb3ZlZE9uQ29tcGxldGlvbihhbmltYXRpb24uaXNSZW1vdmVkT25Db21wbGV0
aW9uKCkpOworICAgIHNldEFkZGl0aXZlKGFuaW1hdGlvbi5pc0FkZGl0aXZlKCkpOworICAgIGNv
cHlUaW1pbmdGdW5jdGlvbkZyb20oJmFuaW1hdGlvbik7CisgICAgc2V0VmFsdWVGdW5jdGlvbihh
bmltYXRpb24udmFsdWVGdW5jdGlvbigpKTsKIAogICAgIC8vIENvcHkgdGhlIHNwZWNpZmljIEJh
c2ljIG9yIEtleWZyYW1lIHZhbHVlcwotICAgIGlmIChhbmltYXRpb24tPmFuaW1hdGlvblR5cGUo
KSA9PSBLZXlmcmFtZSkgewotICAgICAgICBjb3B5VmFsdWVzRnJvbShhbmltYXRpb24pOwotICAg
ICAgICBjb3B5S2V5VGltZXNGcm9tKGFuaW1hdGlvbik7Ci0gICAgICAgIGNvcHlUaW1pbmdGdW5j
dGlvbnNGcm9tKGFuaW1hdGlvbik7CisgICAgaWYgKGFuaW1hdGlvbi5hbmltYXRpb25UeXBlKCkg
PT0gS2V5ZnJhbWUpIHsKKyAgICAgICAgY29weVZhbHVlc0Zyb20oJmFuaW1hdGlvbik7CisgICAg
ICAgIGNvcHlLZXlUaW1lc0Zyb20oJmFuaW1hdGlvbik7CisgICAgICAgIGNvcHlUaW1pbmdGdW5j
dGlvbnNGcm9tKCZhbmltYXRpb24pOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGNvcHlGcm9tVmFs
dWVGcm9tKGFuaW1hdGlvbik7Ci0gICAgICAgIGNvcHlUb1ZhbHVlRnJvbShhbmltYXRpb24pOwor
ICAgICAgICBjb3B5RnJvbVZhbHVlRnJvbSgmYW5pbWF0aW9uKTsKKyAgICAgICAgY29weVRvVmFs
dWVGcm9tKCZhbmltYXRpb24pOwogICAgIH0KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81659</attachid>
            <date>2011-02-08 10:45:51 -0800</date>
            <delta_ts>2011-02-08 19:53:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53513-20110208104550.patch</filename>
            <type>text/plain</type>
            <size>7644</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3ODMzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMDItMDcgIENocmlzIE1h
cnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIExheW91dFRlc3RzL2FuaW1hdGlvbnMvcGxheS1zdGF0ZS5odG1s
IGhhcyB3cm9uZyBiZWhhdmlvciB3aXRoIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzUxMworCisgICAgICAg
IFRoZSBQbGF0Zm9ybUNBQW5pbWF0aW9uIG9uIE1hYyBoYWQgYSBjb3B5IGNvbnN0cnVjdG9yIHdo
aWNoIHdhcyBjcmVhdGluZyBhCisgICAgICAgIG5ldyBQbGF0Zm9ybUNBQW5pbWF0aW9uIGFuIGlu
aXRpYWxpemluZyB0aGF0IGluc3RlYWQgb2YgdGhlIHRoaXMgb2JqZWN0LiBJIAorICAgICAgICBj
aGFuZ2VkIGl0IHRvIGRvIHRoZSB1c3VhbCBjb3B5IGZyb20gdGhlIHBhc3NlZCBvYmplY3QuIEkg
Y2hlY2tlZCB0aGUgCisgICAgICAgIFdpbmRvd3MgaW1wbGVtZW50YXRpb24gYW5kIGl0IGlzIGlt
cGxlbWVudGVkIGNvcnJlY3RseSBhbHJlYWR5LiBUaGUKKyAgICAgICAgYmVoYXZpb3Igd2FzIHRo
YXQgYW4gYWNjZWxlcmF0ZWQgYW5pbWF0aW9uIHdvdWxkIG5vdCBzdG9wIHdoZW4KKyAgICAgICAg
cGxheS1zdGF0ZTpwYXVzZWQgd2FzIHNldC4KKworICAgICAgICBUaGlzIHByb2JsZW0gd2FzIG5v
dCBjYXVnaHQgYnkgRFJULCBldmVuIHRoZXJlIGlzIGEgc3BlY2lmaWMgdGVzdCBmb3IgaXQuCisg
ICAgICAgIFRoYXQgdGVzdCBqdXN0IHZlcmlmaWVzIHRoYXQgdGhlIGhpZ2hlciBsZXZlbCBsb2dp
YyBpcyB3b3JraW5nIAorICAgICAgICBwcm9wZXJseSwgd2hpY2ggaXQgaXMuIFRoZXJlJ3Mgbm8g
cHJhY3RpY2FsIHdheSB0byBmaW5kIG91dCBpZiB0aGUKKyAgICAgICAgbGF5ZXIgaXMgY3VycmVu
dGx5IGFuaW1hdGluZy4gVGhlcmUgaXMgbm8gbG9naWMgd2hpY2ggcHJvYmVzIHRoYXQKKyAgICAg
ICAgZGVlcGx5IGludG8gdGhlIGxheWVyIG1lY2hhbmljcy4KKyAgICAgICAgCisgICAgICAgIEFs
c28gY2hhbmdlZCB0aGUgc2lnbmF0dXJlIHRvIHRoZSBjb3B5IGNvbnN0cnVjdG9yIHNvIGl0IGJl
aGF2ZXMgbGlrZQorICAgICAgICBhIHJlYWwgQysrIGNvcHkgY29uc3RydXRvci4gVGhlIHJlcXVp
cmVkIGEgY2hhbmdlIG9uIHRoZSBXaW4gaW1wbCBhcyB3ZWxsLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5pbWF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMubW06CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FBbmltYXRpb25XaW4uY3BwOgorCiAyMDExLTAy
LTA3ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBUdXJuIFVURi04
IGRlY29kZXIgb2ZmIGZvciBub3cgc28gd2UgY2FuIGxvb2sgaW50byBmYWlsaW5nIHRlc3RzCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dy
YXBoaWNzTGF5ZXJDQS5jcHAJKHJldmlzaW9uIDc3NTY4KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTUwNyw3ICsxNTA3LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnBhdXNlQ0FBbmltYXRpb25P
bgogICAgICAgICByZXR1cm47CiAKICAgICAvLyBBbmltYXRpb25zIG9uIHRoZSBsYXllciBhcmUg
aW1tdXRhYmxlLCBzbyB3ZSBoYXZlIHRvIGNsb25lIGFuZCBtb2RpZnkuCi0gICAgUmVmUHRyPFBs
YXRmb3JtQ0FBbmltYXRpb24+IG5ld0FuaW0gPSBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjcmVhdGUo
Y3VyQW5pbS5nZXQoKSk7CisgICAgUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IG5ld0FuaW0g
PSBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5KGN1ckFuaW0uZ2V0KCkpOwogCiAgICAgbmV3QW5p
bS0+c2V0U3BlZWQoMCk7CiAgICAgbmV3QW5pbS0+c2V0VGltZU9mZnNldCh0aW1lT2Zmc2V0KTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FBbmlt
YXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9QbGF0Zm9ybUNBQW5pbWF0aW9uLmgJKHJldmlzaW9uIDc3NTY4KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUFuaW1hdGlvbi5oCSh3b3JraW5nIGNv
cHkpCkBAIC02Myw4ICs2Myw4IEBAIHB1YmxpYzoKICAgICBlbnVtIFZhbHVlRnVuY3Rpb25UeXBl
IHsgTm9WYWx1ZUZ1bmN0aW9uLCBSb3RhdGVYLCBSb3RhdGVZLCBSb3RhdGVaLCBTY2FsZVgsIFNj
YWxlWSwgU2NhbGVaLCBTY2FsZSwgVHJhbnNsYXRlWCwgVHJhbnNsYXRlWSwgVHJhbnNsYXRlWiwg
VHJhbnNsYXRlIH07CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9u
PiBjcmVhdGUoQW5pbWF0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoKTsKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBjcmVhdGUoUGxhdGZvcm1BbmltYXRp
b25SZWYgYW5pbWF0aW9uKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0
aW9uPiBjcmVhdGUoY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogYW5pbWF0aW9uKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBjcmVhdGUoUGxhdGZvcm1Bbmlt
YXRpb25SZWYpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IGNv
cHkoY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiopOwogCiAgICAgflBsYXRmb3JtQ0FBbmltYXRp
b24oKTsKICAgICAKQEAgLTEzNiw4ICsxMzYsOCBAQCBwdWJsaWM6CiAgICAgCiBwcm90ZWN0ZWQ6
CiAgICAgUGxhdGZvcm1DQUFuaW1hdGlvbihBbmltYXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGtl
eVBhdGgpOwotICAgIFBsYXRmb3JtQ0FBbmltYXRpb24oUGxhdGZvcm1BbmltYXRpb25SZWYgYW5p
bWF0aW9uKTsKLSAgICBQbGF0Zm9ybUNBQW5pbWF0aW9uKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRp
b24qIGFuaW1hdGlvbik7CisgICAgUGxhdGZvcm1DQUFuaW1hdGlvbihQbGF0Zm9ybUFuaW1hdGlv
blJlZik7CisgICAgUGxhdGZvcm1DQUFuaW1hdGlvbihjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9u
Kik7CiAgICAgCiBwcml2YXRlOgogICAgIEFuaW1hdGlvblR5cGUgbV90eXBlOwpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25N
YWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
bWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMubW0JKHJldmlzaW9uIDc3NTY4KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTE1OSw3ICsxNTksNyBAQCBQYXNzUmVmUHRyPFBsYXRmb3Jt
Q0FBbmltYXRpb24+IFBsYXRmb3JtCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQbGF0Zm9ybUNB
QW5pbWF0aW9uKGFuaW1hdGlvbikpOwogfQogCi1QYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRp
b24+IFBsYXRmb3JtQ0FBbmltYXRpb246OmNyZWF0ZShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9u
KiBhbmltYXRpb24pCitQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IFBsYXRmb3JtQ0FB
bmltYXRpb246OmNvcHkoY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogYW5pbWF0aW9uKQogewog
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgUGxhdGZvcm1DQUFuaW1hdGlvbihhbmltYXRpb24pKTsK
IH0KQEAgLTE4OSwzMyArMTg5LDM3IEBAIFBsYXRmb3JtQ0FBbmltYXRpb246OlBsYXRmb3JtQ0FB
bmltYXRpb24KIAogUGxhdGZvcm1DQUFuaW1hdGlvbjo6UGxhdGZvcm1DQUFuaW1hdGlvbihjb25z
dCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiBhbmltYXRpb24pCiB7Ci0gICAgUGxhdGZvcm1DQUFuaW1h
dGlvbiogbmV3QW5pbWF0aW9uID0gbmV3IFBsYXRmb3JtQ0FBbmltYXRpb24oYW5pbWF0aW9uLT5h
bmltYXRpb25UeXBlKCksIGFuaW1hdGlvbi0+a2V5UGF0aCgpKTsKLQotICAgIG5ld0FuaW1hdGlv
bi0+c2V0QmVnaW5UaW1lKGFuaW1hdGlvbi0+YmVnaW5UaW1lKCkpOwotICAgIG5ld0FuaW1hdGlv
bi0+c2V0RHVyYXRpb24oYW5pbWF0aW9uLT5kdXJhdGlvbigpKTsKLSAgICBuZXdBbmltYXRpb24t
PnNldFNwZWVkKGFuaW1hdGlvbi0+c3BlZWQoKSk7Ci0gICAgbmV3QW5pbWF0aW9uLT5zZXRUaW1l
T2Zmc2V0KGFuaW1hdGlvbi0+dGltZU9mZnNldCgpKTsKLSAgICBuZXdBbmltYXRpb24tPnNldFJl
cGVhdENvdW50KGFuaW1hdGlvbi0+cmVwZWF0Q291bnQoKSk7Ci0gICAgbmV3QW5pbWF0aW9uLT5z
ZXRBdXRvcmV2ZXJzZXMoYW5pbWF0aW9uLT5hdXRvcmV2ZXJzZXMoKSk7Ci0gICAgbmV3QW5pbWF0
aW9uLT5zZXRGaWxsTW9kZShhbmltYXRpb24tPmZpbGxNb2RlKCkpOwotICAgIG5ld0FuaW1hdGlv
bi0+c2V0UmVtb3ZlZE9uQ29tcGxldGlvbihhbmltYXRpb24tPmlzUmVtb3ZlZE9uQ29tcGxldGlv
bigpKTsKLSAgICBuZXdBbmltYXRpb24tPnNldEFkZGl0aXZlKGFuaW1hdGlvbi0+aXNBZGRpdGl2
ZSgpKTsKLSAgICBuZXdBbmltYXRpb24tPmNvcHlUaW1pbmdGdW5jdGlvbkZyb20oYW5pbWF0aW9u
KTsKKyAgICBtX3R5cGUgPSBhbmltYXRpb24tPmFuaW1hdGlvblR5cGUoKTsKKyAgICBpZiAobV90
eXBlID09IEJhc2ljKQorICAgICAgICBtX2FuaW1hdGlvbi5hZG9wdE5TKFtbQ0FCYXNpY0FuaW1h
dGlvbiBhbmltYXRpb25XaXRoS2V5UGF0aDphbmltYXRpb24tPmtleVBhdGgoKV0gcmV0YWluXSk7
CisgICAgZWxzZQorICAgICAgICBtX2FuaW1hdGlvbi5hZG9wdE5TKFtbQ0FLZXlmcmFtZUFuaW1h
dGlvbiBhbmltYXRpb25XaXRoS2V5UGF0aDphbmltYXRpb24tPmtleVBhdGgoKV0gcmV0YWluXSk7
CisgICAgCisgICAgc2V0QmVnaW5UaW1lKGFuaW1hdGlvbi0+YmVnaW5UaW1lKCkpOworICAgIHNl
dER1cmF0aW9uKGFuaW1hdGlvbi0+ZHVyYXRpb24oKSk7CisgICAgc2V0U3BlZWQoYW5pbWF0aW9u
LT5zcGVlZCgpKTsKKyAgICBzZXRUaW1lT2Zmc2V0KGFuaW1hdGlvbi0+dGltZU9mZnNldCgpKTsK
KyAgICBzZXRSZXBlYXRDb3VudChhbmltYXRpb24tPnJlcGVhdENvdW50KCkpOworICAgIHNldEF1
dG9yZXZlcnNlcyhhbmltYXRpb24tPmF1dG9yZXZlcnNlcygpKTsKKyAgICBzZXRGaWxsTW9kZShh
bmltYXRpb24tPmZpbGxNb2RlKCkpOworICAgIHNldFJlbW92ZWRPbkNvbXBsZXRpb24oYW5pbWF0
aW9uLT5pc1JlbW92ZWRPbkNvbXBsZXRpb24oKSk7CisgICAgc2V0QWRkaXRpdmUoYW5pbWF0aW9u
LT5pc0FkZGl0aXZlKCkpOworICAgIGNvcHlUaW1pbmdGdW5jdGlvbkZyb20oYW5pbWF0aW9uKTsK
IAogI2lmIEhBVkVfTU9ERVJOX1FVQVJUWkNPUkUKLSAgICBuZXdBbmltYXRpb24tPnNldFZhbHVl
RnVuY3Rpb24oYW5pbWF0aW9uLT52YWx1ZUZ1bmN0aW9uKCkpOworICAgIHNldFZhbHVlRnVuY3Rp
b24oYW5pbWF0aW9uLT52YWx1ZUZ1bmN0aW9uKCkpOwogI2VuZGlmCiAKLSAgICBzZXROb25aZXJv
QmVnaW5UaW1lRmxhZyhuZXdBbmltYXRpb24sIGhhc05vblplcm9CZWdpblRpbWVGbGFnKGFuaW1h
dGlvbikpOworICAgIHNldE5vblplcm9CZWdpblRpbWVGbGFnKHRoaXMsIGhhc05vblplcm9CZWdp
blRpbWVGbGFnKGFuaW1hdGlvbikpOwogICAgIAogICAgIC8vIENvcHkgdGhlIHNwZWNpZmljIEJh
c2ljIG9yIEtleWZyYW1lIHZhbHVlcwogICAgIGlmIChhbmltYXRpb24tPmFuaW1hdGlvblR5cGUo
KSA9PSBLZXlmcmFtZSkgewotICAgICAgICBuZXdBbmltYXRpb24tPmNvcHlWYWx1ZXNGcm9tKGFu
aW1hdGlvbik7Ci0gICAgICAgIG5ld0FuaW1hdGlvbi0+Y29weUtleVRpbWVzRnJvbShhbmltYXRp
b24pOwotICAgICAgICBuZXdBbmltYXRpb24tPmNvcHlUaW1pbmdGdW5jdGlvbnNGcm9tKGFuaW1h
dGlvbik7CisgICAgICAgIGNvcHlWYWx1ZXNGcm9tKGFuaW1hdGlvbik7CisgICAgICAgIGNvcHlL
ZXlUaW1lc0Zyb20oYW5pbWF0aW9uKTsKKyAgICAgICAgY29weVRpbWluZ0Z1bmN0aW9uc0Zyb20o
YW5pbWF0aW9uKTsKICAgICB9IGVsc2UgewotICAgICAgICBuZXdBbmltYXRpb24tPmNvcHlGcm9t
VmFsdWVGcm9tKGFuaW1hdGlvbik7Ci0gICAgICAgIG5ld0FuaW1hdGlvbi0+Y29weVRvVmFsdWVG
cm9tKGFuaW1hdGlvbik7CisgICAgICAgIGNvcHlGcm9tVmFsdWVGcm9tKGFuaW1hdGlvbik7Cisg
ICAgICAgIGNvcHlUb1ZhbHVlRnJvbShhbmltYXRpb24pOwogICAgIH0KIH0KIApJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FBbmltYXRpb25X
aW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L3dpbi9QbGF0Zm9ybUNBQW5pbWF0aW9uV2luLmNwcAkocmV2aXNpb24gNzc1NjgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUFuaW1hdGlvbldp
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw3ICsxNDUsNyBAQCBQYXNzUmVmUHRyPFBsYXRm
b3JtQ0FBbmltYXRpb24+IFBsYXRmb3JtCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQbGF0Zm9y
bUNBQW5pbWF0aW9uKGFuaW1hdGlvbikpOwogfQogCi1QYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmlt
YXRpb24+IFBsYXRmb3JtQ0FBbmltYXRpb246OmNyZWF0ZShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0
aW9uKiBhbmltYXRpb24pCitQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IFBsYXRmb3Jt
Q0FBbmltYXRpb246OmNvcHkoY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogYW5pbWF0aW9uKQog
ewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgUGxhdGZvcm1DQUFuaW1hdGlvbihhbmltYXRpb24p
KTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81736</attachid>
            <date>2011-02-08 19:53:57 -0800</date>
            <delta_ts>2011-02-08 20:55:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53513-20110208195356.patch</filename>
            <type>text/plain</type>
            <size>10189</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3ODMzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMDItMDcgIENocmlzIE1h
cnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIExheW91dFRlc3RzL2FuaW1hdGlvbnMvcGxheS1zdGF0ZS5odG1s
IGhhcyB3cm9uZyBiZWhhdmlvciB3aXRoIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzUxMworCisgICAgICAg
IFRoZSBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjcmVhdGUoKSBmdW5jdGlvbiB3aGljaCB0b29rIGEg
cG9pbnRlciB0byBhbm90aGVyCisgICAgICAgIFBsYXRmb3JtQ0FBbmltYXRpb24gd2FzIHN1cHBv
c2VkIHRvIG1ha2UgYSBjb3B5IG9mIHRoYXQgcGFzc2VkIG9iamVjdC4KKyAgICAgICAgQnV0IGl0
IHdhcyBkb2luZyBjb21wbGV0ZWx5IHRoZSB3cm9uZyB0aGluZyBvbiBNYWMgYW5kIHdhcyBsZWFr
aW5nIGFuIG9iamVjdAorICAgICAgICB0byBib290LiBBbmQgdGhlIG5vdGlvbiBvZiBjb3B5aW5n
IGFuIG9iamVjdCB1c2luZyBhIHN0YXRpYyBjcmVhdGlvbiBmdW5jdGlvbgorICAgICAgICBpcyB3
cm9uZyBpbiB0aGUgZmlyc3QgcGxhY2UuIFNvIEkgY2hhbmdlZCBpdCB0byBhIG1lbWJlciBjb3B5
KCkgZnVuY3Rpb24KKyAgICAgICAgd2hpY2ggd291bGQgY3JlYXRlIGEgbmV3IFBsYXRmb3JtQ0FB
bmltYXRpb24gd2hpY2ggd2FzIGEgY29weSBvZiAndGhpcycgYW5kCisgICAgICAgIHJldHVybiBp
dC4gSSBjaGFuZ2VkIHRoZSBpbXBsZW1lbnRhdGlvbiBvbiBib3RoIE1hYyBhbmQgV2luIHRvIG1h
dGNoLgorCisgICAgICAgIFRoaXMgcHJvYmxlbSB3YXMgbm90IGNhdWdodCBieSBEUlQsIGV2ZW4g
dGhlcmUgaXMgYSBzcGVjaWZpYyB0ZXN0IGZvciBpdC4KKyAgICAgICAgVGhhdCB0ZXN0IGp1c3Qg
dmVyaWZpZXMgdGhhdCB0aGUgaGlnaGVyIGxldmVsIGxvZ2ljIGlzIHdvcmtpbmcgCisgICAgICAg
IHByb3Blcmx5LCB3aGljaCBpdCBpcy4gVGhlcmUncyBubyBwcmFjdGljYWwgd2F5IHRvIGZpbmQg
b3V0IGlmIHRoZQorICAgICAgICBsYXllciBpcyBjdXJyZW50bHkgYW5pbWF0aW5nLiBUaGVyZSBp
cyBubyBsb2dpYyB3aGljaCBwcm9iZXMgdGhhdAorICAgICAgICBkZWVwbHkgaW50byB0aGUgbGF5
ZXIgbWVjaGFuaWNzLgorICAgICAgICAKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRm
b3JtQ0FBbmltYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxh
dGZvcm1DQUFuaW1hdGlvbk1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS93
aW4vUGxhdGZvcm1DQUFuaW1hdGlvbldpbi5jcHA6CisKIDIwMTEtMDItMDcgIERhcmluIEFkbGVy
ICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFR1cm4gVVRGLTggZGVjb2RlciBvZmYgZm9y
IG5vdyBzbyB3ZSBjYW4gbG9vayBpbnRvIGZhaWxpbmcgdGVzdHMKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNw
cAkocmV2aXNpb24gNzc1NjgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9HcmFwaGljc0xheWVyQ0EuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTA3LDcgKzE1MDcsNyBA
QCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6cGF1c2VDQUFuaW1hdGlvbk9uCiAgICAgICAgIHJldHVy
bjsKIAogICAgIC8vIEFuaW1hdGlvbnMgb24gdGhlIGxheWVyIGFyZSBpbW11dGFibGUsIHNvIHdl
IGhhdmUgdG8gY2xvbmUgYW5kIG1vZGlmeS4KLSAgICBSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlv
bj4gbmV3QW5pbSA9IFBsYXRmb3JtQ0FBbmltYXRpb246OmNyZWF0ZShjdXJBbmltLmdldCgpKTsK
KyAgICBSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gbmV3QW5pbSA9IGN1ckFuaW0tPmNvcHko
KTsKIAogICAgIG5ld0FuaW0tPnNldFNwZWVkKDApOwogICAgIG5ld0FuaW0tPnNldFRpbWVPZmZz
ZXQodGltZU9mZnNldCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9QbGF0Zm9ybUNBQW5pbWF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUFuaW1hdGlvbi5oCShyZXZpc2lvbiA3NzU2OCkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FBbmltYXRp
b24uaAkod29ya2luZyBjb3B5KQpAQCAtNjMsMTMgKzYzLDE0IEBAIHB1YmxpYzoKICAgICBlbnVt
IFZhbHVlRnVuY3Rpb25UeXBlIHsgTm9WYWx1ZUZ1bmN0aW9uLCBSb3RhdGVYLCBSb3RhdGVZLCBS
b3RhdGVaLCBTY2FsZVgsIFNjYWxlWSwgU2NhbGVaLCBTY2FsZSwgVHJhbnNsYXRlWCwgVHJhbnNs
YXRlWSwgVHJhbnNsYXRlWiwgVHJhbnNsYXRlIH07CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxQ
bGF0Zm9ybUNBQW5pbWF0aW9uPiBjcmVhdGUoQW5pbWF0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBr
ZXlQYXRoKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBjcmVh
dGUoUGxhdGZvcm1BbmltYXRpb25SZWYgYW5pbWF0aW9uKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBjcmVhdGUoY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiog
YW5pbWF0aW9uKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBj
cmVhdGUoUGxhdGZvcm1BbmltYXRpb25SZWYpOwogCiAgICAgflBsYXRmb3JtQ0FBbmltYXRpb24o
KTsKICAgICAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c1ZhbHVlRnVuY3Rpb24oKTsKICAgICAK
KyAgICBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IGNvcHkoKSBjb25zdDsKKwogICAg
IFBsYXRmb3JtQW5pbWF0aW9uUmVmIHBsYXRmb3JtQW5pbWF0aW9uKCkgY29uc3Q7CiAgICAgCiAg
ICAgQW5pbWF0aW9uVHlwZSBhbmltYXRpb25UeXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9
CkBAIC0xMzYsOCArMTM3LDcgQEAgcHVibGljOgogICAgIAogcHJvdGVjdGVkOgogICAgIFBsYXRm
b3JtQ0FBbmltYXRpb24oQW5pbWF0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoKTsKLSAg
ICBQbGF0Zm9ybUNBQW5pbWF0aW9uKFBsYXRmb3JtQW5pbWF0aW9uUmVmIGFuaW1hdGlvbik7Ci0g
ICAgUGxhdGZvcm1DQUFuaW1hdGlvbihjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiBhbmltYXRp
b24pOworICAgIFBsYXRmb3JtQ0FBbmltYXRpb24oUGxhdGZvcm1BbmltYXRpb25SZWYpOwogICAg
IAogcHJpdmF0ZToKICAgICBBbmltYXRpb25UeXBlIG1fdHlwZTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0
Zm9ybUNBQW5pbWF0aW9uTWFjLm1tCShyZXZpc2lvbiA3NzU2OCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNTksMTEgKzE1OSw2IEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1h
dGlvbj4gUGxhdGZvcm0KICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBsYXRmb3JtQ0FBbmltYXRp
b24oYW5pbWF0aW9uKSk7CiB9CiAKLVBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gUGxh
dGZvcm1DQUFuaW1hdGlvbjo6Y3JlYXRlKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIGFuaW1h
dGlvbikKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBsYXRmb3JtQ0FBbmltYXRpb24oYW5p
bWF0aW9uKSk7Ci19Ci0KIFBsYXRmb3JtQ0FBbmltYXRpb246OlBsYXRmb3JtQ0FBbmltYXRpb24o
QW5pbWF0aW9uVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIGtleVBhdGgpCiAgICAgOiBtX3R5cGUo
dHlwZSkKIHsKQEAgLTE4NywzOCArMTgyLDM2IEBAIFBsYXRmb3JtQ0FBbmltYXRpb246OlBsYXRm
b3JtQ0FBbmltYXRpb24KICAgICBtX2FuaW1hdGlvbiA9IHN0YXRpY19jYXN0PENBUHJvcGVydHlB
bmltYXRpb24qPihhbmltYXRpb24pOwogfQogCi1QbGF0Zm9ybUNBQW5pbWF0aW9uOjpQbGF0Zm9y
bUNBQW5pbWF0aW9uKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIGFuaW1hdGlvbikKK1Bhc3NS
ZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29weSgpIGNv
bnN0CiB7Ci0gICAgUGxhdGZvcm1DQUFuaW1hdGlvbiogbmV3QW5pbWF0aW9uID0gbmV3IFBsYXRm
b3JtQ0FBbmltYXRpb24oYW5pbWF0aW9uLT5hbmltYXRpb25UeXBlKCksIGFuaW1hdGlvbi0+a2V5
UGF0aCgpKTsKLQotICAgIG5ld0FuaW1hdGlvbi0+c2V0QmVnaW5UaW1lKGFuaW1hdGlvbi0+YmVn
aW5UaW1lKCkpOwotICAgIG5ld0FuaW1hdGlvbi0+c2V0RHVyYXRpb24oYW5pbWF0aW9uLT5kdXJh
dGlvbigpKTsKLSAgICBuZXdBbmltYXRpb24tPnNldFNwZWVkKGFuaW1hdGlvbi0+c3BlZWQoKSk7
Ci0gICAgbmV3QW5pbWF0aW9uLT5zZXRUaW1lT2Zmc2V0KGFuaW1hdGlvbi0+dGltZU9mZnNldCgp
KTsKLSAgICBuZXdBbmltYXRpb24tPnNldFJlcGVhdENvdW50KGFuaW1hdGlvbi0+cmVwZWF0Q291
bnQoKSk7Ci0gICAgbmV3QW5pbWF0aW9uLT5zZXRBdXRvcmV2ZXJzZXMoYW5pbWF0aW9uLT5hdXRv
cmV2ZXJzZXMoKSk7Ci0gICAgbmV3QW5pbWF0aW9uLT5zZXRGaWxsTW9kZShhbmltYXRpb24tPmZp
bGxNb2RlKCkpOwotICAgIG5ld0FuaW1hdGlvbi0+c2V0UmVtb3ZlZE9uQ29tcGxldGlvbihhbmlt
YXRpb24tPmlzUmVtb3ZlZE9uQ29tcGxldGlvbigpKTsKLSAgICBuZXdBbmltYXRpb24tPnNldEFk
ZGl0aXZlKGFuaW1hdGlvbi0+aXNBZGRpdGl2ZSgpKTsKLSAgICBuZXdBbmltYXRpb24tPmNvcHlU
aW1pbmdGdW5jdGlvbkZyb20oYW5pbWF0aW9uKTsKLQotI2lmIEhBVkVfTU9ERVJOX1FVQVJUWkNP
UkUKLSAgICBuZXdBbmltYXRpb24tPnNldFZhbHVlRnVuY3Rpb24oYW5pbWF0aW9uLT52YWx1ZUZ1
bmN0aW9uKCkpOwotI2VuZGlmCisgICAgUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IGFuaW1h
dGlvbiA9IGNyZWF0ZShhbmltYXRpb25UeXBlKCksIGtleVBhdGgoKSk7CisgICAgCisgICAgYW5p
bWF0aW9uLT5zZXRCZWdpblRpbWUoYmVnaW5UaW1lKCkpOworICAgIGFuaW1hdGlvbi0+c2V0RHVy
YXRpb24oZHVyYXRpb24oKSk7CisgICAgYW5pbWF0aW9uLT5zZXRTcGVlZChzcGVlZCgpKTsKKyAg
ICBhbmltYXRpb24tPnNldFRpbWVPZmZzZXQodGltZU9mZnNldCgpKTsKKyAgICBhbmltYXRpb24t
PnNldFJlcGVhdENvdW50KHJlcGVhdENvdW50KCkpOworICAgIGFuaW1hdGlvbi0+c2V0QXV0b3Jl
dmVyc2VzKGF1dG9yZXZlcnNlcygpKTsKKyAgICBhbmltYXRpb24tPnNldEZpbGxNb2RlKGZpbGxN
b2RlKCkpOworICAgIGFuaW1hdGlvbi0+c2V0UmVtb3ZlZE9uQ29tcGxldGlvbihpc1JlbW92ZWRP
bkNvbXBsZXRpb24oKSk7CisgICAgYW5pbWF0aW9uLT5zZXRBZGRpdGl2ZShpc0FkZGl0aXZlKCkp
OworICAgIGFuaW1hdGlvbi0+Y29weVRpbWluZ0Z1bmN0aW9uRnJvbSh0aGlzKTsKKyAgICBhbmlt
YXRpb24tPnNldFZhbHVlRnVuY3Rpb24odmFsdWVGdW5jdGlvbigpKTsKIAotICAgIHNldE5vblpl
cm9CZWdpblRpbWVGbGFnKG5ld0FuaW1hdGlvbiwgaGFzTm9uWmVyb0JlZ2luVGltZUZsYWcoYW5p
bWF0aW9uKSk7CisgICAgc2V0Tm9uWmVyb0JlZ2luVGltZUZsYWcoYW5pbWF0aW9uLmdldCgpLCBo
YXNOb25aZXJvQmVnaW5UaW1lRmxhZyh0aGlzKSk7CiAgICAgCiAgICAgLy8gQ29weSB0aGUgc3Bl
Y2lmaWMgQmFzaWMgb3IgS2V5ZnJhbWUgdmFsdWVzCi0gICAgaWYgKGFuaW1hdGlvbi0+YW5pbWF0
aW9uVHlwZSgpID09IEtleWZyYW1lKSB7Ci0gICAgICAgIG5ld0FuaW1hdGlvbi0+Y29weVZhbHVl
c0Zyb20oYW5pbWF0aW9uKTsKLSAgICAgICAgbmV3QW5pbWF0aW9uLT5jb3B5S2V5VGltZXNGcm9t
KGFuaW1hdGlvbik7Ci0gICAgICAgIG5ld0FuaW1hdGlvbi0+Y29weVRpbWluZ0Z1bmN0aW9uc0Zy
b20oYW5pbWF0aW9uKTsKKyAgICBpZiAoYW5pbWF0aW9uVHlwZSgpID09IEtleWZyYW1lKSB7Cisg
ICAgICAgIGFuaW1hdGlvbi0+Y29weVZhbHVlc0Zyb20odGhpcyk7CisgICAgICAgIGFuaW1hdGlv
bi0+Y29weUtleVRpbWVzRnJvbSh0aGlzKTsKKyAgICAgICAgYW5pbWF0aW9uLT5jb3B5VGltaW5n
RnVuY3Rpb25zRnJvbSh0aGlzKTsKICAgICB9IGVsc2UgewotICAgICAgICBuZXdBbmltYXRpb24t
PmNvcHlGcm9tVmFsdWVGcm9tKGFuaW1hdGlvbik7Ci0gICAgICAgIG5ld0FuaW1hdGlvbi0+Y29w
eVRvVmFsdWVGcm9tKGFuaW1hdGlvbik7CisgICAgICAgIGFuaW1hdGlvbi0+Y29weUZyb21WYWx1
ZUZyb20odGhpcyk7CisgICAgICAgIGFuaW1hdGlvbi0+Y29weVRvVmFsdWVGcm9tKHRoaXMpOwog
ICAgIH0KKyAgICAKKyAgICByZXR1cm4gYW5pbWF0aW9uOwogfQotCiBQbGF0Zm9ybUNBQW5pbWF0
aW9uOjp+UGxhdGZvcm1DQUFuaW1hdGlvbigpCiB7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUFuaW1hdGlvbldpbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3Jt
Q0FBbmltYXRpb25XaW4uY3BwCShyZXZpc2lvbiA3NzU2OCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBQW5pbWF0aW9uV2luLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTQ1LDExICsxNDUsNiBAQCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRp
b24+IFBsYXRmb3JtCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQbGF0Zm9ybUNBQW5pbWF0aW9u
KGFuaW1hdGlvbikpOwogfQogCi1QYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IFBsYXRm
b3JtQ0FBbmltYXRpb246OmNyZWF0ZShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiBhbmltYXRp
b24pCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQbGF0Zm9ybUNBQW5pbWF0aW9uKGFuaW1h
dGlvbikpOwotfQotCiBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKEFu
aW1hdGlvblR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoKQogICAgIDogbV90eXBlKHR5
cGUpCiB7CkBAIC0xNzYsMzMgKzE3MSwzNSBAQCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpQbGF0Zm9y
bUNBQW5pbWF0aW9uCiAgICAgbV9hbmltYXRpb24gPSBhbmltYXRpb247CiB9CiAKLVBsYXRmb3Jt
Q0FBbmltYXRpb246OlBsYXRmb3JtQ0FBbmltYXRpb24oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlv
biogYW5pbWF0aW9uKQorUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNB
QW5pbWF0aW9uOjpjb3B5KCkgY29uc3QKIHsKLSAgICBtX2FuaW1hdGlvbi5hZG9wdENGKENBQ0ZB
bmltYXRpb25DcmVhdGUoKGFuaW1hdGlvbi0+YW5pbWF0aW9uVHlwZSgpID09IEJhc2ljKSA/IGtD
QUNGQmFzaWNBbmltYXRpb24gOiBrQ0FDRktleWZyYW1lQW5pbWF0aW9uKSk7Ci0gICAgUmV0YWlu
UHRyPENGU3RyaW5nUmVmPiBrZXlQYXRoKEFkb3B0Q0YsIGFuaW1hdGlvbi0+a2V5UGF0aCgpLmNy
ZWF0ZUNGU3RyaW5nKCkpOwotICAgIENBQ0ZBbmltYXRpb25TZXRLZXlQYXRoKG1fYW5pbWF0aW9u
LmdldCgpLCBrZXlQYXRoLmdldCgpKTsKLQotICAgIHNldEJlZ2luVGltZShhbmltYXRpb24tPmJl
Z2luVGltZSgpKTsKLSAgICBzZXREdXJhdGlvbihhbmltYXRpb24tPmR1cmF0aW9uKCkpOwotICAg
IHNldFNwZWVkKGFuaW1hdGlvbi0+c3BlZWQoKSk7Ci0gICAgc2V0VGltZU9mZnNldChhbmltYXRp
b24tPnRpbWVPZmZzZXQoKSk7Ci0gICAgc2V0UmVwZWF0Q291bnQoYW5pbWF0aW9uLT5yZXBlYXRD
b3VudCgpKTsKLSAgICBzZXRBdXRvcmV2ZXJzZXMoYW5pbWF0aW9uLT5hdXRvcmV2ZXJzZXMoKSk7
Ci0gICAgc2V0RmlsbE1vZGUoYW5pbWF0aW9uLT5maWxsTW9kZSgpKTsKLSAgICBzZXRSZW1vdmVk
T25Db21wbGV0aW9uKGFuaW1hdGlvbi0+aXNSZW1vdmVkT25Db21wbGV0aW9uKCkpOwotICAgIHNl
dEFkZGl0aXZlKGFuaW1hdGlvbi0+aXNBZGRpdGl2ZSgpKTsKLSAgICBjb3B5VGltaW5nRnVuY3Rp
b25Gcm9tKGFuaW1hdGlvbik7Ci0gICAgc2V0VmFsdWVGdW5jdGlvbihhbmltYXRpb24tPnZhbHVl
RnVuY3Rpb24oKSk7CisgICAgUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IGFuaW1hdGlvbiA9
IGNyZWF0ZShhbmltYXRpb25UeXBlKCksIGtleVBhdGgoKSk7CisgICAgCisgICAgYW5pbWF0aW9u
LT5zZXRCZWdpblRpbWUoYmVnaW5UaW1lKCkpOworICAgIGFuaW1hdGlvbi0+c2V0RHVyYXRpb24o
ZHVyYXRpb24oKSk7CisgICAgYW5pbWF0aW9uLT5zZXRTcGVlZChzcGVlZCgpKTsKKyAgICBhbmlt
YXRpb24tPnNldFRpbWVPZmZzZXQodGltZU9mZnNldCgpKTsKKyAgICBhbmltYXRpb24tPnNldFJl
cGVhdENvdW50KHJlcGVhdENvdW50KCkpOworICAgIGFuaW1hdGlvbi0+c2V0QXV0b3JldmVyc2Vz
KGF1dG9yZXZlcnNlcygpKTsKKyAgICBhbmltYXRpb24tPnNldEZpbGxNb2RlKGZpbGxNb2RlKCkp
OworICAgIGFuaW1hdGlvbi0+c2V0UmVtb3ZlZE9uQ29tcGxldGlvbihpc1JlbW92ZWRPbkNvbXBs
ZXRpb24oKSk7CisgICAgYW5pbWF0aW9uLT5zZXRBZGRpdGl2ZShpc0FkZGl0aXZlKCkpOworICAg
IGFuaW1hdGlvbi0+Y29weVRpbWluZ0Z1bmN0aW9uRnJvbSh0aGlzKTsKKyAgICBhbmltYXRpb24t
PnNldFZhbHVlRnVuY3Rpb24odmFsdWVGdW5jdGlvbigpKTsKIAorICAgIHNldE5vblplcm9CZWdp
blRpbWVGbGFnKGFuaW1hdGlvbi5nZXQoKSwgaGFzTm9uWmVyb0JlZ2luVGltZUZsYWcodGhpcykp
OworICAgIAogICAgIC8vIENvcHkgdGhlIHNwZWNpZmljIEJhc2ljIG9yIEtleWZyYW1lIHZhbHVl
cwotICAgIGlmIChhbmltYXRpb24tPmFuaW1hdGlvblR5cGUoKSA9PSBLZXlmcmFtZSkgewotICAg
ICAgICBjb3B5VmFsdWVzRnJvbShhbmltYXRpb24pOwotICAgICAgICBjb3B5S2V5VGltZXNGcm9t
KGFuaW1hdGlvbik7Ci0gICAgICAgIGNvcHlUaW1pbmdGdW5jdGlvbnNGcm9tKGFuaW1hdGlvbik7
CisgICAgaWYgKGFuaW1hdGlvblR5cGUoKSA9PSBLZXlmcmFtZSkgeworICAgICAgICBhbmltYXRp
b24tPmNvcHlWYWx1ZXNGcm9tKHRoaXMpOworICAgICAgICBhbmltYXRpb24tPmNvcHlLZXlUaW1l
c0Zyb20odGhpcyk7CisgICAgICAgIGFuaW1hdGlvbi0+Y29weVRpbWluZ0Z1bmN0aW9uc0Zyb20o
dGhpcyk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgY29weUZyb21WYWx1ZUZyb20oYW5pbWF0aW9u
KTsKLSAgICAgICAgY29weVRvVmFsdWVGcm9tKGFuaW1hdGlvbik7CisgICAgICAgIGFuaW1hdGlv
bi0+Y29weUZyb21WYWx1ZUZyb20odGhpcyk7CisgICAgICAgIGFuaW1hdGlvbi0+Y29weVRvVmFs
dWVGcm9tKHRoaXMpOwogICAgIH0KKyAgICAKKyAgICByZXR1cm4gYW5pbWF0aW9uOwogfQogCiBQ
bGF0Zm9ybUNBQW5pbWF0aW9uOjp+UGxhdGZvcm1DQUFuaW1hdGlvbigpCg==
</data>
<flag name="review"
          id="73344"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>