<?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>73257</bug_id>
          
          <creation_ts>2011-11-28 14:57:12 -0800</creation_ts>
          <short_desc>Canvas to WebGL Texture path Broken</short_desc>
          <delta_ts>2011-12-06 19:43:53 -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>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeff Timanus">twiz</reporter>
          <assigned_to name="Jeff Timanus">twiz</assigned_to>
          <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>rniwa</cc>
    
    <cc>senorblanco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>510223</commentid>
    <comment_count>0</comment_count>
    <who name="Jeff Timanus">twiz</who>
    <bug_when>2011-11-28 14:57:12 -0800</bug_when>
    <thetext>Repeatedly using the same canvas-2d element as a source for WebGL textures results in incorrect results.  The content of the 2d canvas during the first texture copy is the content that is used for all subsequent texture uploads.  This is because the software snapshot of the canvas contents, HTMLCanvasElement::m_copied is never reset when the hardware accelerated path is enabled.

Summary of the problem:
 - CanvasRenderingContext2D::didDraw will early-out when the accelerated path is enabled.
 - The early out prevents HTMLCanvasElement::didDraw from being called.
 - HTMLCanvasElement::m_copied image is never reset.
 - Subsequent accesses to the canvas for texture contents will return the copied image, which contains the contents of the first pass.

See original chromium issue here: crbug.com/105119</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510240</commentid>
    <comment_count>1</comment_count>
      <attachid>116833</attachid>
    <who name="Jeff Timanus">twiz</who>
    <bug_when>2011-11-28 15:07:39 -0800</bug_when>
    <thetext>Created attachment 116833
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510246</commentid>
    <comment_count>2</comment_count>
      <attachid>116833</attachid>
    <who name="Jeff Timanus">twiz</who>
    <bug_when>2011-11-28 15:10:00 -0800</bug_when>
    <thetext>Comment on attachment 116833
Patch

Removing the early out, as per comments on crbug.com/105119.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510266</commentid>
    <comment_count>3</comment_count>
    <who name="Jeff Timanus">twiz</who>
    <bug_when>2011-11-28 15:27:21 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 116833 [details])
&gt; Removing the early out, as per comments on crbug.com/105119.

Not to reviewers:  HTMLCanvasElement::didDraw can end up calling RenderBox::repaintRectangle.  Is this a problem for the accelerated path?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510282</commentid>
    <comment_count>4</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-28 15:45:11 -0800</bug_when>
    <thetext>Can we get a test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510290</commentid>
    <comment_count>5</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-28 15:54:56 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 116833 [details] [details])
&gt; &gt; Removing the early out, as per comments on crbug.com/105119.
&gt; 
&gt; Not to reviewers:  HTMLCanvasElement::didDraw can end up calling RenderBox::repaintRectangle.  Is this a problem for the accelerated path?

Accelerated canvases map to two layers in the composited tree, one layer for the &lt;canvas&gt; contents proper (called the m_contentsLayer in GraphicsLayerCA/GraphicsLayerChromium) and one for the element (called m_layer in GraphicsLayerCA/GraphicsLayerChromium).  The former has all of the rendering results of the 2d context, the latter has things like the background color of the &lt;canvas&gt; element, borders, etc.  The common case is that the &lt;canvas&gt; element itself does not have a border or a background or anything like that, which is optimized by RenderLayerBacking::isSimpleContainerCompositingLayer().  When we draw into the canvas in the accelerated path the m_contentsLayer is marked as needing a display via the contentChanged() call.  Currently we always mark the entire layer as needing a display and don&apos;t attempt to track which part of the canvas the draw call happened on, although it may be useful to track damage more tightly in the future.

Calling RenderBox::repaintRectangle() on the canvas will invalidate the m_layer. In the common case this layer is a optimized away so nothing should happen.  However if the &lt;canvas&gt; doesn&apos;t fall into the simple container optimization, then invalidating this layer will force us to do a software repaint and upload of the drawn region on the next frame.  This is pretty wasteful.  You can check if this optimization is happening on a given page by checking the drawsContent bit.

I think it&apos;d be better to avoid calling didDraw() in this case.  Maybe we should add an explicit call that drops the copiedImage but doesn&apos;t trigger a repaintRectangle() call?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511108</commentid>
    <comment_count>6</comment_count>
      <attachid>117045</attachid>
    <who name="Jeff Timanus">twiz</who>
    <bug_when>2011-11-29 14:29:52 -0800</bug_when>
    <thetext>Created attachment 117045
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511109</commentid>
    <comment_count>7</comment_count>
      <attachid>117045</attachid>
    <who name="Jeff Timanus">twiz</who>
    <bug_when>2011-11-29 14:30:58 -0800</bug_when>
    <thetext>Comment on attachment 117045
Patch

Patch addresses comments and adds a layout test that fails before application of the fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511223</commentid>
    <comment_count>8</comment_count>
      <attachid>117045</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-29 16:54:31 -0800</bug_when>
    <thetext>Comment on attachment 117045
Patch

Great! R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511759</commentid>
    <comment_count>9</comment_count>
      <attachid>117196</attachid>
    <who name="Jeff Timanus">twiz</who>
    <bug_when>2011-11-30 08:13:14 -0800</bug_when>
    <thetext>Created attachment 117196
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511762</commentid>
    <comment_count>10</comment_count>
      <attachid>117196</attachid>
    <who name="Jeff Timanus">twiz</who>
    <bug_when>2011-11-30 08:14:55 -0800</bug_when>
    <thetext>Comment on attachment 117196
Patch

The same patch as previously, except with a slightly modified test.

The previous test was not always failing previous to my patch because the compositor was not launching before the completion of the test.  The new test uses the z-transform trick to force the compositor from the beginning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511765</commentid>
    <comment_count>11</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2011-11-30 08:18:56 -0800</bug_when>
    <thetext>Looks great.  Thanks for your diligence wrt testing.  r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512355</commentid>
    <comment_count>12</comment_count>
      <attachid>117196</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-30 19:26:02 -0800</bug_when>
    <thetext>Comment on attachment 117196
Patch

Clearing flags on attachment: 117196

Committed r101592: &lt;http://trac.webkit.org/changeset/101592&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512356</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-30 19:26:06 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514043</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-12-02 13:04:11 -0800</bug_when>
    <thetext>This is causing a failure on lion:
http://build.webkit.org/results/Lion%20Intel%20Release%20(Tests)/r101592%20(3105)/fast/canvas/webgl/canvas-2d-webgl-texture-pretty-diff.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516018</commentid>
    <comment_count>15</comment_count>
    <who name="Jeff Timanus">twiz</who>
    <bug_when>2011-12-06 10:35:42 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; This is causing a failure on lion:
&gt; http://build.webkit.org/results/Lion%20Intel%20Release%20(Tests)/r101592%20(3105)/fast/canvas/webgl/canvas-2d-webgl-texture-pretty-diff.html

Investigating the failure.  Has it since been suppressed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516452</commentid>
    <comment_count>16</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-12-06 19:43:53 -0800</bug_when>
    <thetext>The test has been failing on Snow Leopard ever since it was added:
http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=fast%2Fcanvas%2Fwebgl%2Fcanvas-2d-webgl-texture.html&amp;group=%40ToT%20-%20webkit.org</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116833</attachid>
            <date>2011-11-28 15:07:39 -0800</date>
            <delta_ts>2011-11-29 14:29:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73257-20111128180737.patch</filename>
            <type>text/plain</type>
            <size>1755</size>
            <attacher name="Jeff Timanus">twiz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMTI4MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDExLTExLTI4ICBKZWZmIFRp
bWFudXMgIDx0d2l6QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZW1vdmUgYW4gZWFybHkgcmV0
dXJuIHRoYXQgd2FzIHByZXZlbnRpbmcgSFRNTENhbnZhc0VsZW1lbnQ6OmRpZERyYXcgbm90aWZp
Y2F0aW9ucworICAgICAgICBmcm9tIGJlaW5nIHRyaWdnZXJlZCB3aGVuIGFjY2VsZXJhdGVkIGNv
bXBvc2l0aW5nIHdhcyBlbmFibGVkLiBUaGUgbm90aWZpY2F0aW9uIGlzCisgICAgICAgIG5lY2Vz
c2FyeSB0byBtYWtlIHN1cmUgdGhhdCBhbnkgY2FjaGVkIHN0YXRlIGlzIGNsZWFyZWQgaW4gdGhl
IEhUTUxDYW52YXNFbGVtZW50IG9iamVjdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTczMjU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkaWREcmF3
KToKKwogMjAxMS0xMS0yOCAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBGaXggQXNwZWN0IFJhdGlvIFByb3BlcnR5IEluaGVyaXRhbmNlIEFuZCBNYWtlIHRo
ZSBDb21wdXRlZCBWYWx1ZSBFcXVhbCB0aGUgU3BlY2lmaWVkIFZhbHVlCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5jcHAJKHJldmlzaW9uIDEwMTI3OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3ODAsMTAgKzE3
ODAsOCBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZGlkRHJhdyhjCiAgICAgLy8g
SWYgd2UgYXJlIGRyYXdpbmcgdG8gaGFyZHdhcmUgYW5kIHdlIGhhdmUgYSBjb21wb3NpdGVkIGxh
eWVyLCBqdXN0IGNhbGwgY29udGVudENoYW5nZWQoKS4KICAgICBpZiAoaXNBY2NlbGVyYXRlZCgp
KSB7CiAgICAgICAgIFJlbmRlckJveCogcmVuZGVyQm94ID0gY2FudmFzKCktPnJlbmRlckJveCgp
OwotICAgICAgICBpZiAocmVuZGVyQm94ICYmIHJlbmRlckJveC0+aGFzTGF5ZXIoKSAmJiByZW5k
ZXJCb3gtPmxheWVyKCktPmhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSkgeworICAgICAgICBp
ZiAocmVuZGVyQm94ICYmIHJlbmRlckJveC0+aGFzTGF5ZXIoKSAmJiByZW5kZXJCb3gtPmxheWVy
KCktPmhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSkKICAgICAgICAgICAgIHJlbmRlckJveC0+
bGF5ZXIoKS0+Y29udGVudENoYW5nZWQoUmVuZGVyTGF5ZXI6OkNhbnZhc0NoYW5nZWQpOwotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CiAgICAgfQogI2VuZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117045</attachid>
            <date>2011-11-29 14:29:52 -0800</date>
            <delta_ts>2011-11-30 08:13:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73257-20111129172951.patch</filename>
            <type>text/plain</type>
            <size>7097</size>
            <attacher name="Jeff Timanus">twiz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMTQyMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDExLTExLTI5ICBKZWZmIFRp
bWFudXMgIDx0d2l6QGNocm9taXVtLm9yZz4KKworICAgICAgICBBbHRlciBhbiBlYXJseSByZXR1
cm4gdGhhdCB3YXMgcHJldmVudGluZyBIVE1MQ2FudmFzRWxlbWVudDo6ZGlkRHJhdyBub3RpZmlj
YXRpb25zCisgICAgICAgIGZyb20gYmVpbmcgdHJpZ2dlcmVkIHdoZW4gYWNjZWxlcmF0ZWQgY29t
cG9zaXRpbmcgd2FzIGVuYWJsZWQuIFRoZSBub3RpZmljYXRpb24gaXMKKyAgICAgICAgbmVjZXNz
YXJ5IHRvIG1ha2Ugc3VyZSB0aGF0IGFueSBjYWNoZWQgc3RhdGUgaXMgY2xlYXJlZCBpbiB0aGUg
SFRNTENhbnZhc0VsZW1lbnQgb2JqZWN0LgorICAgICAgICBUbyBwcmV2ZW50IHBlcmZvcm1hbmNl
IHJlZ3Jlc3Npb25zLCB0aGUgY2FjaGVkIHN0YXRlIGlzIGV4cGxpY2l0bHkgY2xlYXJlZCwgYXMg
dGhlIGRpZERyYXcKKyAgICAgICAgbWFjaGluZXJ5IGlzIG5vdCBuZWNlc3NhcnkgZm9yIGFjY2Vs
ZXJhdGVkIGNhbnZhc2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzMyNTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0OiBmYXN0L2NhbnZhcy93ZWJnbC9jYW52YXMtMmQtd2ViZ2wtdGV4dHVyZS5o
dG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpkaWREcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxDYW52YXNFbGVtZW50OjpzZXRTdXJmYWNlU2l6ZSk6CisgICAgICAgICogaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6ZGlkRHJhdyk6CisKIDIwMTEtMTEtMjkgIEVyaWsgQXJ2aWRzc29u
ICA8YXJ2QGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgW0NsYXNzTWV0
aG9kXSB0byBDb2RlR2VuZXJhdG9ySlMucG0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENhbnZhc0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENhbnZhc0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxMDEyNzgpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA1LDcgKzIwNSw3
IEBAIENhbnZhc1JlbmRlcmluZ0NvbnRleHQqIEhUTUxDYW52YXNFbGVtZW4KIAogdm9pZCBIVE1M
Q2FudmFzRWxlbWVudDo6ZGlkRHJhdyhjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAgbV9j
b3BpZWRJbWFnZS5jbGVhcigpOyAvLyBDbGVhciBvdXIgaW1hZ2Ugc25hcHNob3QgaWYgd2UgaGF2
ZSBvbmUuCisgICAgY2xlYXJDb3BpZWRJbWFnZSgpOwogCiAgICAgaWYgKFJlbmRlckJveCogcm8g
PSByZW5kZXJCb3goKSkgewogICAgICAgICBGbG9hdFJlY3QgZGVzdFJlY3QgPSByby0+Y29udGVu
dEJveFJlY3QoKTsKQEAgLTMyNSw3ICszMjUsNyBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50Ojpz
ZXRTdXJmYWNlU2l6ZShjCiAgICAgbV9zaXplID0gc2l6ZTsKICAgICBtX2hhc0NyZWF0ZWRJbWFn
ZUJ1ZmZlciA9IGZhbHNlOwogICAgIG1faW1hZ2VCdWZmZXIuY2xlYXIoKTsKLSAgICBtX2NvcGll
ZEltYWdlLmNsZWFyKCk7CisgICAgY2xlYXJDb3BpZWRJbWFnZSgpOwogfQogCiBTdHJpbmcgSFRN
TENhbnZhc0VsZW1lbnQ6OnRvRW5jb2RpbmdNaW1lVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBl
KQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuY3BwCShyZXZpc2lvbiAxMDEyNzgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNzgyLDYgKzE3ODIsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZGlk
RHJhdyhjCiAgICAgICAgIFJlbmRlckJveCogcmVuZGVyQm94ID0gY2FudmFzKCktPnJlbmRlckJv
eCgpOwogICAgICAgICBpZiAocmVuZGVyQm94ICYmIHJlbmRlckJveC0+aGFzTGF5ZXIoKSAmJiBy
ZW5kZXJCb3gtPmxheWVyKCktPmhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSkgewogICAgICAg
ICAgICAgcmVuZGVyQm94LT5sYXllcigpLT5jb250ZW50Q2hhbmdlZChSZW5kZXJMYXllcjo6Q2Fu
dmFzQ2hhbmdlZCk7CisgICAgICAgICAgICBjYW52YXMoKS0+Y2xlYXJDb3BpZWRJbWFnZSgpOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24g
MTAxNDIyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMTEtMTEtMjkgIEplZmYgVGltYW51cyAgPHR3aXpAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIEFsdGVyIGFuIGVhcmx5IHJldHVybiB0aGF0IHdhcyBwcmV2ZW50aW5nIEhUTUxD
YW52YXNFbGVtZW50OjpkaWREcmF3IG5vdGlmaWNhdGlvbnMKKyAgICAgICAgZnJvbSBiZWluZyB0
cmlnZ2VyZWQgd2hlbiBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyB3YXMgZW5hYmxlZC4gVGhlIG5v
dGlmaWNhdGlvbiBpcworICAgICAgICBuZWNlc3NhcnkgdG8gbWFrZSBzdXJlIHRoYXQgYW55IGNh
Y2hlZCBzdGF0ZSBpcyBjbGVhcmVkIGluIHRoZSBIVE1MQ2FudmFzRWxlbWVudCBvYmplY3QuCisg
ICAgICAgIFRvIHByZXZlbnQgcGVyZm9ybWFuY2UgcmVncmVzc2lvbnMsIHRoZSBjYWNoZWQgc3Rh
dGUgaXMgZXhwbGljaXRseSBjbGVhcmVkLCBhcyB0aGUgZGlkRHJhdworICAgICAgICBtYWNoaW5l
cnkgaXMgbm90IG5lY2Vzc2FyeSBmb3IgYWNjZWxlcmF0ZWQgY2FudmFzZXMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI1NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wv
Y2FudmFzLTJkLXdlYmdsLXRleHR1cmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2NhbnZhcy93ZWJnbC9jYW52YXMtMmQtd2ViZ2wtdGV4dHVyZS5odG1sOiBBZGRlZC4KKwog
MjAxMS0xMS0yOSAgQWxhbiBTdGVhcm5zICA8c3RlYXJuc0BhZG9iZS5jb20+CiAKICAgICAgICAg
Q2xlYW4gdXAgZmFzdC9yZWdpb25zL25vLXNwbGl0LWxpbmUtYm94Lmh0bWwgdGVzdApJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY2FudmFzLTJkLXdlYmdsLXRleHR1cmUtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2Nh
bnZhcy0yZC13ZWJnbC10ZXh0dXJlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy0yZC13ZWJnbC10ZXh0dXJlLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMSBAQAorQ2hlY2tzIHRoYXQgY29weWluZyBj
YW52YXMgcmVzdWx0cyB0byBhIFdlYkdMIHRleHR1cmUgZnVuY3Rpb25zIHdpdGhvdXQgZXJyb3Iu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgU2hvdWxkIGhhdmUgcmVuZGVyZWQgcmVk
LgorUEFTUyBTaG91bGQgaGF2ZSByZW5kZXJlZCBibHVlLgorIApJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvY2FudmFzLTJkLXdlYmdsLXRleHR1cmUuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9jYW52YXMtMmQtd2ViZ2wtdGV4dHVy
ZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY2Fu
dmFzLTJkLXdlYmdsLXRleHR1cmUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NyBAQAor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+IDwv
c2NyaXB0PgorPC9oZWFkPgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJDaGVja3MgdGhhdCBjb3B5
aW5nIGNhbnZhcyByZXN1bHRzIHRvIGEgV2ViR0wgdGV4dHVyZSBmdW5jdGlvbnMgd2l0aG91dCBl
cnJvci4iKTsKKwordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOworCitpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKwordmFyIGNh
bnZhczsKK3ZhciBnbDsKK3ZhciBjdHg7CisKK2Z1bmN0aW9uIGRyYXcoKQoreworICBjdHguZmls
bFN0eWxlID0gInJnYigyMDAsIDAsIDApIjsKKyAgY3R4LmZpbGxSZWN0KDAsIDAsIDI1NiwgMjU2
KTsKKyAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBn
bC5VTlNJR05FRF9CWVRFLCBjYW52YXMyZCk7CisKKyAgd3R1LmRyYXdRdWFkKGdsKTsKKyAgd3R1
LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgMSwgMSwgWzIwMCwgMCwgMCwgMjU1XSwgIlNob3Vs
ZCBoYXZlIHJlbmRlcmVkIHJlZC4iLCAxKTsKKworICBjdHguZmlsbFN0eWxlID0gInJnYigwLCAw
LCAyMDApIjsKKyAgY3R4LmZpbGxSZWN0KDAsIDAsIDI1NiwgMjU2KTsKKyAgZ2wudGV4SW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBj
YW52YXMyZCk7CisKKyAgd3R1LmRyYXdRdWFkKGdsKTsKKyAgd3R1LmNoZWNrQ2FudmFzUmVjdChn
bCwgMCwgMCwgMSwgMSwgWzAsIDAsIDIwMCwgMjU1XSwgIlNob3VsZCBoYXZlIHJlbmRlcmVkIGJs
dWUuIiwgMSk7CisKKyAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKword2luZG93Lm9ubG9hZCA9IGZ1
bmN0aW9uKCkKK3sKKyAgaWYgKHdpbmRvdy5pbml0Tm9uS2hyb25vc0ZyYW1ld29yaykKKyAgICB3
aW5kb3cuaW5pdE5vbktocm9ub3NGcmFtZXdvcmsoZmFsc2UpOworCisgIGNhbnZhcyA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWJnbC1jYW52YXMiKTsKKyAgZ2wgPSBjcmVhdGUzRENvbnRl
eHQoY2FudmFzKTsKKworICBjYW52YXMyZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52
YXMtMmQiKTsKKworICAvLyBTZXQgYSBzaXplIHRoYXQgZW5zdXJlcyBhIGhhcmR3YXJlLWFjY2Vs
ZXJhdGVkIGNhbnZhcy4KKyAgY2FudmFzMmQud2lkdGggPSAyNTY7CisgIGNhbnZhczJkLmhlaWdo
dCA9IDI1NjsKKyAgY3R4ID0gY2FudmFzMmQuZ2V0Q29udGV4dCgiMmQiKTsKKworICB2YXIgcHJv
Z3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVhZChnbCk7CisgIHZhciBidWZmZXJPYmplY3RzID0g
d3R1LnNldHVwVW5pdFF1YWQoZ2wpOworCisgIHZhciB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVy
ZSgpOworICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKTsKKyAgZ2wudGV4
UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVB
Uik7CisKKyAgZ2wudW5pZm9ybTFpKGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidGV4
IiksIDApOworICBnbC52aWV3cG9ydCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQp
OworCisgIC8vIEVuc3VyZSB0aGF0IHRoZSBjb21wb3NpdG9yIGhhcyBiZWNvbWUgYWN0aXZlLgor
ICBzZXRUaW1lb3V0KGRyYXcsIDEpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzxkaXYgaWQ9
ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGNhbnZhcyBp
ZD0id2ViZ2wtY2FudmFzIiB3aWR0aD0iMzJweCIgaGVpZ2h0PSIzMnB4Ij48L2NhbnZhcz4KKzxj
YW52YXMgaWQ9ImNhbnZhcy0yZCIgd2lkdGg9IjI1NnB4IiBoZWlnaHQ9IjI1NnB4Ij48L2NhbnZh
cz4KKzwvYm9keT4KKzwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdsL2NhbnZhcy0yZC13ZWJnbC10ZXh0dXJlLmh0bWwKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpB
ZGRlZDogc3ZuOmV4ZWN1dGFibGUKICAgKyAqCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117196</attachid>
            <date>2011-11-30 08:13:14 -0800</date>
            <delta_ts>2011-11-30 19:26:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73257-20111130111312.patch</filename>
            <type>text/plain</type>
            <size>7110</size>
            <attacher name="Jeff Timanus">twiz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMTQyMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDExLTExLTI5ICBKZWZmIFRp
bWFudXMgIDx0d2l6QGNocm9taXVtLm9yZz4KKworICAgICAgICBBbHRlciBhbiBlYXJseSByZXR1
cm4gdGhhdCB3YXMgcHJldmVudGluZyBIVE1MQ2FudmFzRWxlbWVudDo6ZGlkRHJhdyBub3RpZmlj
YXRpb25zCisgICAgICAgIGZyb20gYmVpbmcgdHJpZ2dlcmVkIHdoZW4gYWNjZWxlcmF0ZWQgY29t
cG9zaXRpbmcgd2FzIGVuYWJsZWQuIFRoZSBub3RpZmljYXRpb24gaXMKKyAgICAgICAgbmVjZXNz
YXJ5IHRvIG1ha2Ugc3VyZSB0aGF0IGFueSBjYWNoZWQgc3RhdGUgaXMgY2xlYXJlZCBpbiB0aGUg
SFRNTENhbnZhc0VsZW1lbnQgb2JqZWN0LgorICAgICAgICBUbyBwcmV2ZW50IHBlcmZvcm1hbmNl
IHJlZ3Jlc3Npb25zLCB0aGUgY2FjaGVkIHN0YXRlIGlzIGV4cGxpY2l0bHkgY2xlYXJlZCwgYXMg
dGhlIGRpZERyYXcKKyAgICAgICAgbWFjaGluZXJ5IGlzIG5vdCBuZWNlc3NhcnkgZm9yIGFjY2Vs
ZXJhdGVkIGNhbnZhc2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzMyNTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0OiBmYXN0L2NhbnZhcy93ZWJnbC9jYW52YXMtMmQtd2ViZ2wtdGV4dHVyZS5o
dG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpkaWREcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxDYW52YXNFbGVtZW50OjpzZXRTdXJmYWNlU2l6ZSk6CisgICAgICAgICogaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6ZGlkRHJhdyk6CisKIDIwMTEtMTEtMjkgIEVyaWsgQXJ2aWRzc29u
ICA8YXJ2QGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgW0NsYXNzTWV0
aG9kXSB0byBDb2RlR2VuZXJhdG9ySlMucG0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENhbnZhc0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENhbnZhc0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxMDEyNzgpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA1LDcgKzIwNSw3
IEBAIENhbnZhc1JlbmRlcmluZ0NvbnRleHQqIEhUTUxDYW52YXNFbGVtZW4KIAogdm9pZCBIVE1M
Q2FudmFzRWxlbWVudDo6ZGlkRHJhdyhjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAgbV9j
b3BpZWRJbWFnZS5jbGVhcigpOyAvLyBDbGVhciBvdXIgaW1hZ2Ugc25hcHNob3QgaWYgd2UgaGF2
ZSBvbmUuCisgICAgY2xlYXJDb3BpZWRJbWFnZSgpOwogCiAgICAgaWYgKFJlbmRlckJveCogcm8g
PSByZW5kZXJCb3goKSkgewogICAgICAgICBGbG9hdFJlY3QgZGVzdFJlY3QgPSByby0+Y29udGVu
dEJveFJlY3QoKTsKQEAgLTMyNSw3ICszMjUsNyBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50Ojpz
ZXRTdXJmYWNlU2l6ZShjCiAgICAgbV9zaXplID0gc2l6ZTsKICAgICBtX2hhc0NyZWF0ZWRJbWFn
ZUJ1ZmZlciA9IGZhbHNlOwogICAgIG1faW1hZ2VCdWZmZXIuY2xlYXIoKTsKLSAgICBtX2NvcGll
ZEltYWdlLmNsZWFyKCk7CisgICAgY2xlYXJDb3BpZWRJbWFnZSgpOwogfQogCiBTdHJpbmcgSFRN
TENhbnZhc0VsZW1lbnQ6OnRvRW5jb2RpbmdNaW1lVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBl
KQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuY3BwCShyZXZpc2lvbiAxMDEyNzgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNzgyLDYgKzE3ODIsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZGlk
RHJhdyhjCiAgICAgICAgIFJlbmRlckJveCogcmVuZGVyQm94ID0gY2FudmFzKCktPnJlbmRlckJv
eCgpOwogICAgICAgICBpZiAocmVuZGVyQm94ICYmIHJlbmRlckJveC0+aGFzTGF5ZXIoKSAmJiBy
ZW5kZXJCb3gtPmxheWVyKCktPmhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSkgewogICAgICAg
ICAgICAgcmVuZGVyQm94LT5sYXllcigpLT5jb250ZW50Q2hhbmdlZChSZW5kZXJMYXllcjo6Q2Fu
dmFzQ2hhbmdlZCk7CisgICAgICAgICAgICBjYW52YXMoKS0+Y2xlYXJDb3BpZWRJbWFnZSgpOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24g
MTAxNDIyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMTEtMTEtMjkgIEplZmYgVGltYW51cyAgPHR3aXpAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIEFsdGVyIGFuIGVhcmx5IHJldHVybiB0aGF0IHdhcyBwcmV2ZW50aW5nIEhUTUxD
YW52YXNFbGVtZW50OjpkaWREcmF3IG5vdGlmaWNhdGlvbnMKKyAgICAgICAgZnJvbSBiZWluZyB0
cmlnZ2VyZWQgd2hlbiBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyB3YXMgZW5hYmxlZC4gVGhlIG5v
dGlmaWNhdGlvbiBpcworICAgICAgICBuZWNlc3NhcnkgdG8gbWFrZSBzdXJlIHRoYXQgYW55IGNh
Y2hlZCBzdGF0ZSBpcyBjbGVhcmVkIGluIHRoZSBIVE1MQ2FudmFzRWxlbWVudCBvYmplY3QuCisg
ICAgICAgIFRvIHByZXZlbnQgcGVyZm9ybWFuY2UgcmVncmVzc2lvbnMsIHRoZSBjYWNoZWQgc3Rh
dGUgaXMgZXhwbGljaXRseSBjbGVhcmVkLCBhcyB0aGUgZGlkRHJhdworICAgICAgICBtYWNoaW5l
cnkgaXMgbm90IG5lY2Vzc2FyeSBmb3IgYWNjZWxlcmF0ZWQgY2FudmFzZXMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI1NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wv
Y2FudmFzLTJkLXdlYmdsLXRleHR1cmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2NhbnZhcy93ZWJnbC9jYW52YXMtMmQtd2ViZ2wtdGV4dHVyZS5odG1sOiBBZGRlZC4KKwog
MjAxMS0xMS0yOSAgQWxhbiBTdGVhcm5zICA8c3RlYXJuc0BhZG9iZS5jb20+CiAKICAgICAgICAg
Q2xlYW4gdXAgZmFzdC9yZWdpb25zL25vLXNwbGl0LWxpbmUtYm94Lmh0bWwgdGVzdApJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY2FudmFzLTJkLXdlYmdsLXRleHR1cmUtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2Nh
bnZhcy0yZC13ZWJnbC10ZXh0dXJlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy0yZC13ZWJnbC10ZXh0dXJlLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMSBAQAorQ2hlY2tzIHRoYXQgY29weWluZyBj
YW52YXMgcmVzdWx0cyB0byBhIFdlYkdMIHRleHR1cmUgZnVuY3Rpb25zIHdpdGhvdXQgZXJyb3Iu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgU2hvdWxkIGhhdmUgcmVuZGVyZWQgcmVk
LgorUEFTUyBTaG91bGQgaGF2ZSByZW5kZXJlZCBibHVlLgorIApJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvY2FudmFzLTJkLXdlYmdsLXRleHR1cmUuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9jYW52YXMtMmQtd2ViZ2wtdGV4dHVy
ZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY2Fu
dmFzLTJkLXdlYmdsLXRleHR1cmUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NyBAQAor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+IDwv
c2NyaXB0PgorPC9oZWFkPgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJDaGVja3MgdGhhdCBjb3B5
aW5nIGNhbnZhcyByZXN1bHRzIHRvIGEgV2ViR0wgdGV4dHVyZSBmdW5jdGlvbnMgd2l0aG91dCBl
cnJvci4iKTsKKwordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOworCitpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKwordmFyIGNh
bnZhczsKK3ZhciBnbDsKK3ZhciBjdHg7CisKK2Z1bmN0aW9uIGRyYXcoKQoreworICBjdHguZmls
bFN0eWxlID0gInJnYigyMDAsIDAsIDApIjsKKyAgY3R4LmZpbGxSZWN0KDAsIDAsIDI1NiwgMjU2
KTsKKyAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBn
bC5VTlNJR05FRF9CWVRFLCBjYW52YXMyZCk7CisKKyAgd3R1LmRyYXdRdWFkKGdsKTsKKyAgd3R1
LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgMSwgMSwgWzIwMCwgMCwgMCwgMjU1XSwgIlNob3Vs
ZCBoYXZlIHJlbmRlcmVkIHJlZC4iLCAxKTsKKworICBjdHguZmlsbFN0eWxlID0gInJnYigwLCAw
LCAyMDApIjsKKyAgY3R4LmZpbGxSZWN0KDAsIDAsIDI1NiwgMjU2KTsKKyAgZ2wudGV4SW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBj
YW52YXMyZCk7CisKKyAgd3R1LmRyYXdRdWFkKGdsKTsKKyAgd3R1LmNoZWNrQ2FudmFzUmVjdChn
bCwgMCwgMCwgMSwgMSwgWzAsIDAsIDIwMCwgMjU1XSwgIlNob3VsZCBoYXZlIHJlbmRlcmVkIGJs
dWUuIiwgMSk7CisKKyAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKword2luZG93Lm9ubG9hZCA9IGZ1
bmN0aW9uKCkKK3sKKyAgaWYgKHdpbmRvdy5pbml0Tm9uS2hyb25vc0ZyYW1ld29yaykKKyAgICB3
aW5kb3cuaW5pdE5vbktocm9ub3NGcmFtZXdvcmsoZmFsc2UpOworCisgIGNhbnZhcyA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWJnbC1jYW52YXMiKTsKKyAgZ2wgPSBjcmVhdGUzRENvbnRl
eHQoY2FudmFzKTsKKworICBjYW52YXMyZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52
YXMtMmQiKTsKKworICAvLyBTZXQgYSBzaXplIHRoYXQgZW5zdXJlcyBhIGhhcmR3YXJlLWFjY2Vs
ZXJhdGVkIGNhbnZhcy4KKyAgY2FudmFzMmQud2lkdGggPSAyNTY7CisgIGNhbnZhczJkLmhlaWdo
dCA9IDI1NjsKKyAgY3R4ID0gY2FudmFzMmQuZ2V0Q29udGV4dCgiMmQiKTsKKworICB2YXIgcHJv
Z3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVhZChnbCk7CisgIHZhciBidWZmZXJPYmplY3RzID0g
d3R1LnNldHVwVW5pdFF1YWQoZ2wpOworCisgIHZhciB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVy
ZSgpOworICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKTsKKyAgZ2wudGV4
UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLkxJTkVB
Uik7CisKKyAgZ2wudW5pZm9ybTFpKGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidGV4
IiksIDApOworICBnbC52aWV3cG9ydCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQp
OworCisgIC8vIEVuc3VyZSB0aGF0IHRoZSBjb21wb3NpdG9yIGhhcyBiZWNvbWUgYWN0aXZlLgor
ICBzZXRUaW1lb3V0KGRyYXcsIDApOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzxkaXYgaWQ9
ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGNhbnZhcyBp
ZD0id2ViZ2wtY2FudmFzIiB3aWR0aD0iMzJweCIgaGVpZ2h0PSIzMnB4Ij48L2NhbnZhcz4KKzxj
YW52YXMgaWQ9ImNhbnZhcy0yZCIgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVa
KDApOyI+PC9jYW52YXM+Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9jYW52YXMtMmQtd2ViZ2wtdGV4dHVyZS5odG1s
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KQWRkZWQ6IHN2bjpleGVjdXRhYmxlCiAgICsgKgoK
</data>

          </attachment>
      

    </bug>

</bugzilla>