<?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>87725</bug_id>
          
          <creation_ts>2012-05-29 03:58:45 -0700</creation_ts>
          <short_desc>GraphicsSurface: allow importing and exporting of textures directly on GPU side.</short_desc>
          <delta_ts>2012-05-30 15:44:05 -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>WebKit2</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>
          
          <blocked>86214</blocked>
    
    <blocked>87738</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zeno Albisser">zeno</reporter>
          <assigned_to name="Zeno Albisser">zeno</assigned_to>
          <cc>andersca</cc>
    
    <cc>dino</cc>
    
    <cc>kenneth</cc>
    
    <cc>noam</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>635841</commentid>
    <comment_count>0</comment_count>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-05-29 03:58:45 -0700</bug_when>
    <thetext>Add API to GraphicsSurface to allow reading in a texture directly from an FBO.
Further we should have a possibility to export a texture ID, so that the texture can directly be rebound in the GPU.
These changes should make the transferring of the texture from the UIProcess to the WebProcess much faster.
This is in particular necessary for WebGL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635845</commentid>
    <comment_count>1</comment_count>
      <attachid>144508</attachid>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-05-29 04:07:30 -0700</bug_when>
    <thetext>Created attachment 144508
patch for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635909</commentid>
    <comment_count>2</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-05-29 05:24:23 -0700</bug_when>
    <thetext>Up for review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635912</commentid>
    <comment_count>3</comment_count>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-05-29 05:33:28 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Up for review?

absolutely... if you have time. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635918</commentid>
    <comment_count>4</comment_count>
      <attachid>144508</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-05-29 05:43:57 -0700</bug_when>
    <thetext>Comment on attachment 144508
patch for review.

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        This allows binding/blitting the texture directly in the GPU.

on* ?

&gt; Source/WebCore/platform/graphics/surfaces/GraphicsSurface.h:67
&gt; +    void copyFromFramebuffer(uint32_t fbo, const IntRect&amp; sourceRect);

FrameBuffer ? what is used elsewhere?

&gt; Source/WebCore/platform/graphics/surfaces/GraphicsSurface.h:69
&gt;      uint32_t exportToken();
&gt; +    uint32_t exportTexture();

What does the exportToken do? Isn&apos;t it also like a texture id ?

&gt; Source/WebCore/platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:94
&gt; +void GraphicsSurface::platformCopyFromFramebuffer(uint32_t originFbo, const IntRect&amp; sourceRect)

Maybe FrameBufferObject? fbo?

&gt; Source/WebCore/platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:101
&gt; +    glPushAttrib(GL_ALL_ATTRIB_BITS);
&gt; +    if (!m_texture)
&gt; +        m_texture = createTexture(m_platformSurface);
&gt; +    if (!m_fbo)
&gt; +        glGenFramebuffers(1, &amp;m_fbo);
&gt; +    GLint oldFBO;

I like newlines before and after if clauses</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635925</commentid>
    <comment_count>5</comment_count>
      <attachid>144508</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-05-29 06:03:52 -0700</bug_when>
    <thetext>Comment on attachment 144508
patch for review.

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

Good direction, let&apos;s fix the nitpicks :)

&gt; Source/WebCore/platform/graphics/surfaces/GraphicsSurface.cpp:49
&gt; +uint32_t GraphicsSurface::exportTexture()

Let&apos;s call it getTextureID(). export is for cross-process sharing.

&gt;&gt; Source/WebCore/platform/graphics/surfaces/GraphicsSurface.h:69
&gt;&gt; +    uint32_t exportTexture();
&gt; 
&gt; What does the exportToken do? Isn&apos;t it also like a texture id ?

exportToken is a cross-process number that can mean anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635989</commentid>
    <comment_count>6</comment_count>
      <attachid>144508</attachid>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-05-29 07:12:24 -0700</bug_when>
    <thetext>Comment on attachment 144508
patch for review.

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

&gt;&gt; Source/WebCore/ChangeLog:9
&gt;&gt; +        This allows binding/blitting the texture directly in the GPU.
&gt; 
&gt; on* ?

fixed.

&gt;&gt; Source/WebCore/platform/graphics/surfaces/GraphicsSurface.cpp:49
&gt;&gt; +uint32_t GraphicsSurface::exportTexture()
&gt; 
&gt; Let&apos;s call it getTextureID(). export is for cross-process sharing.

fixed.

&gt;&gt; Source/WebCore/platform/graphics/surfaces/GraphicsSurface.h:67
&gt;&gt; +    void copyFromFramebuffer(uint32_t fbo, const IntRect&amp; sourceRect);
&gt; 
&gt; FrameBuffer ? what is used elsewhere?

The abbreviation fbo is used quite frequently in GraphicsContext3DQt/GraphicsContext3DOpenGLCommon. I think FBO is quite well known in this &quot;context&quot;.

&gt;&gt;&gt; Source/WebCore/platform/graphics/surfaces/GraphicsSurface.h:69
&gt;&gt;&gt; +    uint32_t exportTexture();
&gt;&gt; 
&gt;&gt; What does the exportToken do? Isn&apos;t it also like a texture id ?
&gt; 
&gt; exportToken is a cross-process number that can mean anything.

In this specific case, the token identifies a GraphicsSurface, where the texture is a texture id that can be used directly with GL on the GPU.
I renamed &quot;exportTexture&quot; to &quot;getTextureID&quot; as proposed by Noam.

&gt;&gt; Source/WebCore/platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:94
&gt;&gt; +void GraphicsSurface::platformCopyFromFramebuffer(uint32_t originFbo, const IntRect&amp; sourceRect)
&gt; 
&gt; Maybe FrameBufferObject? fbo?

dito.

&gt;&gt; Source/WebCore/platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:101
&gt;&gt; +    GLint oldFBO;
&gt; 
&gt; I like newlines before and after if clauses

I don&apos;t, for single lines in a small function. :-$</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635992</commentid>
    <comment_count>7</comment_count>
      <attachid>144552</attachid>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-05-29 07:14:36 -0700</bug_when>
    <thetext>Created attachment 144552
patch for review. - fixed issues as commented before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637334</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-05-30 09:57:55 -0700</bug_when>
    <thetext>This patch is changing GraphicsSurfaceMac.cpp, but how is it used? I don&apos;t think Mac even uses GraphicsSurface* anywhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637399</commentid>
    <comment_count>9</comment_count>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-05-30 10:33:42 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; This patch is changing GraphicsSurfaceMac.cpp, but how is it used? I don&apos;t think Mac even uses GraphicsSurface* anywhere.
As far as i know GraphicsSurfaceMac is currently only used by the Qt port. (when compiling Qt/WebKit for Mac)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637429</commentid>
    <comment_count>10</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-05-30 11:02:13 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; This patch is changing GraphicsSurfaceMac.cpp, but how is it used? I don&apos;t think Mac even uses GraphicsSurface* anywhere.
&gt; As far as i know GraphicsSurfaceMac is currently only used by the Qt port. (when compiling Qt/WebKit for Mac)

It&apos;s a question I have.
GraphicsSurfaceMac is Mac-specific code, but we only use it in Qt.
There&apos;s nothing in the code that&apos;s Qt specific, but it&apos;s not used by &quot;the mac port&quot;.
What would be the way to go about files like that? I want to do the right thing but I don&apos;t have a strong opinion other way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637468</commentid>
    <comment_count>11</comment_count>
      <attachid>144552</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-05-30 11:26:30 -0700</bug_when>
    <thetext>Comment on attachment 144552
patch for review. - fixed issues as commented before.

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

&gt; Source/WebCore/platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:22
&gt; +#include &quot;GraphicsContext3D.h&quot;

What is this for?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637642</commentid>
    <comment_count>12</comment_count>
      <attachid>144552</attachid>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-05-30 13:39:06 -0700</bug_when>
    <thetext>Comment on attachment 144552
patch for review. - fixed issues as commented before.

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

&gt;&gt; Source/WebCore/platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:22
&gt;&gt; +#include &quot;GraphicsContext3D.h&quot;
&gt; 
&gt; What is this for?

I&apos;ll remove it.
Thanks for reviewing. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637768</commentid>
    <comment_count>13</comment_count>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-05-30 15:44:05 -0700</bug_when>
    <thetext>Committed r118987: &lt;http://trac.webkit.org/changeset/118987&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144508</attachid>
            <date>2012-05-29 04:07:30 -0700</date>
            <delta_ts>2012-05-29 07:14:36 -0700</delta_ts>
            <desc>patch for review.</desc>
            <filename>87725_20120529-130634.patch</filename>
            <type>text/plain</type>
            <size>5957</size>
            <attacher name="Zeno Albisser">zeno</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiNzliNDZhLi5kY2I3NmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMTItMDUtMjkgIFplbm8gQWxiaXNzZXIgIDx6ZW5vQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgR3JhcGhpY3NTdXJmYWNlOiBhbGxvdyBpbXBvcnRpbmcgYW5kIGV4cG9ydGluZyBvZiB0ZXh0
dXJlcyBkaXJlY3RseSBvbiBHUFUgc2lkZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg3NzI1CisKKyAgICAgICAgQWRkIGNvcHlGcm9tRnJhbWVidWZm
ZXIgZnVuY3Rpb24gdG8gY29weSBhIHRleHR1cmUgZnJvbSBhbiBGQk8KKyAgICAgICAgb250byB0
aGUgR3JhcGhpY3NTdXJmYWNlLgorICAgICAgICBBZGQgZXhwb3J0VGV4dHVyZSBmdW5jdGlvbiB0
byBleHBvcnQgdGhlIHRleHR1cmUgSUQuCisgICAgICAgIFRoaXMgYWxsb3dzIGJpbmRpbmcvYmxp
dHRpbmcgdGhlIHRleHR1cmUgZGlyZWN0bHkgaW4gdGhlIEdQVS4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL0dyYXBoaWNzU3VyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc1N1cmZh
Y2U6OmV4cG9ydFRleHR1cmUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc1N1cmZhY2U6OmNvcHlGcm9tRnJhbWVidWZmZXIpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dyYXBoaWNzU3VyZmFjZS5oOgorICAgICAgICAoR3JhcGhp
Y3NTdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9tYWMvR3Jh
cGhpY3NTdXJmYWNlTWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZTo6
cGxhdGZvcm1FeHBvcnRUZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NTdXJmYWNlOjpwbGF0Zm9ybUNvcHlGcm9tRnJhbWVidWZmZXIpOgorCiAy
MDEyLTA1LTI5ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQg
SFRNTElGcmFtZUVsZW1lbnQuc2VhbWxlc3MgcHJvcGVydHkgYWNjZXNzb3Igbm93IHRoYXQgc2Vh
bWxlc3MgaXMgZW5hYmxlZCBhbmQgd29ya3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dyYXBoaWNzU3VyZmFjZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HcmFwaGljc1N1cmZhY2UuY3BwCmluZGV4
IGI0M2ExMDEuLjEyMmQ2MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3N1cmZhY2VzL0dyYXBoaWNzU3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR3JhcGhpY3NTdXJmYWNlLmNwcApAQCAtNDYsNiAr
NDYsMTEgQEAgdWludDMyX3QgR3JhcGhpY3NTdXJmYWNlOjpleHBvcnRUb2tlbigpCiAgICAgcmV0
dXJuIHBsYXRmb3JtRXhwb3J0KCk7CiB9CiAKK3VpbnQzMl90IEdyYXBoaWNzU3VyZmFjZTo6ZXhw
b3J0VGV4dHVyZSgpCit7CisgICAgcmV0dXJuIHBsYXRmb3JtRXhwb3J0VGV4dHVyZSgpOworfQor
CiBQYXNzT3duUHRyPEdyYXBoaWNzQ29udGV4dD4gR3JhcGhpY3NTdXJmYWNlOjpiZWdpblBhaW50
KGNvbnN0IEludFJlY3QmIHJlY3QsIExvY2tPcHRpb25zIGxvY2tPcHRpb25zKQogewogICAgIGlu
dCBzdHJpZGUgPSAwOwpAQCAtNTksNiArNjQsMTEgQEAgdm9pZCBHcmFwaGljc1N1cmZhY2U6OmNv
cHlUb0dMVGV4dHVyZSh1aW50MzJfdCB0YXJnZXQsIHVpbnQzMl90IHRleHR1cmUsIGNvbnN0IEkK
ICAgICBwbGF0Zm9ybUNvcHlUb0dMVGV4dHVyZSh0YXJnZXQsIHRleHR1cmUsIHRhcmdldFJlY3Qs
IG9mZnNldCk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NTdXJmYWNlOjpjb3B5RnJvbUZyYW1lYnVmZmVy
KHVpbnQzMl90IGZibywgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCkKK3sKKyAgICBwbGF0Zm9y
bUNvcHlGcm9tRnJhbWVidWZmZXIoZmJvLCBzb3VyY2VSZWN0KTsKK30KKwogR3JhcGhpY3NTdXJm
YWNlOjpHcmFwaGljc1N1cmZhY2UoY29uc3QgSW50U2l6ZSYgc2l6ZSwgRmxhZ3MgZmxhZ3MpCiAg
ICAgOiBtX3NpemUoc2l6ZSkKICAgICAsIG1fZmxhZ3MoZmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HcmFwaGljc1N1cmZhY2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dyYXBoaWNzU3VyZmFj
ZS5oCmluZGV4IGRhOTQxZDQuLjJkNDY5YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dyYXBoaWNzU3VyZmFjZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dyYXBoaWNzU3VyZmFjZS5oCkBAIC02
NCw3ICs2NCw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxHcmFwaGljc1N1cmZh
Y2U+IGNyZWF0ZShjb25zdCBJbnRTaXplJiwgRmxhZ3MpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEdyYXBoaWNzU3VyZmFjZT4gY3JlYXRlKGNvbnN0IEludFNpemUmLCBGbGFncywgdWludDMyX3Qg
dG9rZW4pOwogICAgIHZvaWQgY29weVRvR0xUZXh0dXJlKHVpbnQzMl90IHRhcmdldCwgdWludDMy
X3QgdGV4dHVyZSwgY29uc3QgSW50UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgSW50UG9pbnQmIHNv
dXJjZU9mZnNldCk7CisgICAgdm9pZCBjb3B5RnJvbUZyYW1lYnVmZmVyKHVpbnQzMl90IGZibywg
Y29uc3QgSW50UmVjdCYgc291cmNlUmVjdCk7CiAgICAgdWludDMyX3QgZXhwb3J0VG9rZW4oKTsK
KyAgICB1aW50MzJfdCBleHBvcnRUZXh0dXJlKCk7CiAgICAgUGFzc093blB0cjxHcmFwaGljc0Nv
bnRleHQ+IGJlZ2luUGFpbnQoY29uc3QgSW50UmVjdCYsIExvY2tPcHRpb25zKTsKICAgICBQYXNz
UmVmUHRyPEltYWdlPiBjcmVhdGVSZWFkT25seUltYWdlKGNvbnN0IEludFJlY3QmKTsKIApAQCAt
NzQsOSArNzYsMTEgQEAgcHJvdGVjdGVkOgogICAgIHVpbnQzMl90IHBsYXRmb3JtRXhwb3J0KCk7
CiAgICAgdm9pZCBwbGF0Zm9ybURlc3Ryb3koKTsKIAorICAgIHVpbnQzMl90IHBsYXRmb3JtRXhw
b3J0VGV4dHVyZSgpOwogICAgIGNoYXIqIHBsYXRmb3JtTG9jayhjb25zdCBJbnRSZWN0JiwgaW50
KiBzdHJpZGUsIExvY2tPcHRpb25zKTsKICAgICB2b2lkIHBsYXRmb3JtVW5sb2NrKCk7CiAgICAg
dm9pZCBwbGF0Zm9ybUNvcHlUb0dMVGV4dHVyZSh1aW50MzJfdCB0YXJnZXQsIHVpbnQzMl90IHRl
eHR1cmUsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRQb2ludCYpOworICAgIHZvaWQgcGxhdGZv
cm1Db3B5RnJvbUZyYW1lYnVmZmVyKHVpbnQzMl90IGZibywgY29uc3QgSW50UmVjdCYgc291cmNl
UmVjdCk7CiAKICAgICBQYXNzT3duUHRyPEdyYXBoaWNzQ29udGV4dD4gcGxhdGZvcm1CZWdpblBh
aW50KGNvbnN0IEludFNpemUmLCBjaGFyKiBiaXRzLCBpbnQgc3RyaWRlKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvbWFjL0dyYXBoaWNz
U3VyZmFjZU1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNl
cy9tYWMvR3JhcGhpY3NTdXJmYWNlTWFjLmNwcAppbmRleCBiNmExYTAyLi5lNGFjYjFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9tYWMvR3Jh
cGhpY3NTdXJmYWNlTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9zdXJmYWNlcy9tYWMvR3JhcGhpY3NTdXJmYWNlTWFjLmNwcApAQCAtMTksNiArMTksNyBAQAog
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NTdXJmYWNlLmgiCisjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKIAogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKSAm
JiBPUyhEQVJXSU4pCiAjaW5jbHVkZSA8Q0ZOdW1iZXIuaD4KQEAgLTY0LDYgKzY1LDEzIEBAIHN0
YXRpYyB1aW50MzJfdCBjcmVhdGVUZXh0dXJlKElPU3VyZmFjZVJlZiBoYW5kbGUpCiAgICAgcmV0
dXJuIHRleHR1cmU7CiB9CiAKK3VpbnQzMl90IEdyYXBoaWNzU3VyZmFjZTo6cGxhdGZvcm1FeHBv
cnRUZXh0dXJlKCkKK3sKKyAgICBpZiAoIW1fdGV4dHVyZSkKKyAgICAgICAgbV90ZXh0dXJlID0g
Y3JlYXRlVGV4dHVyZShtX3BsYXRmb3JtU3VyZmFjZSk7CisgICAgcmV0dXJuIG1fdGV4dHVyZTsK
K30KKwogdm9pZCBHcmFwaGljc1N1cmZhY2U6OnBsYXRmb3JtQ29weVRvR0xUZXh0dXJlKHVpbnQz
Ml90IHRhcmdldCwgdWludDMyX3QgaWQsIGNvbnN0IEludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0
IEludFBvaW50JiBvZmZzZXQpCiB7CiAgICAgZ2xQdXNoQXR0cmliKEdMX0FMTF9BVFRSSUJfQklU
Uyk7CkBAIC04Myw2ICs5MSwyOCBAQCB2b2lkIEdyYXBoaWNzU3VyZmFjZTo6cGxhdGZvcm1Db3B5
VG9HTFRleHR1cmUodWludDMyX3QgdGFyZ2V0LCB1aW50MzJfdCBpZCwgY29ucwogICAgIGdsUG9w
QXR0cmliKCk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NTdXJmYWNlOjpwbGF0Zm9ybUNvcHlGcm9tRnJh
bWVidWZmZXIodWludDMyX3Qgb3JpZ2luRmJvLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0KQor
eworICAgIGdsUHVzaEF0dHJpYihHTF9BTExfQVRUUklCX0JJVFMpOworICAgIGlmICghbV90ZXh0
dXJlKQorICAgICAgICBtX3RleHR1cmUgPSBjcmVhdGVUZXh0dXJlKG1fcGxhdGZvcm1TdXJmYWNl
KTsKKyAgICBpZiAoIW1fZmJvKQorICAgICAgICBnbEdlbkZyYW1lYnVmZmVycygxLCAmbV9mYm8p
OworICAgIEdMaW50IG9sZEZCTzsKKyAgICBnbEdldEludGVnZXJ2KEdMX0ZSQU1FQlVGRkVSX0JJ
TkRJTkcsICZvbGRGQk8pOworICAgIGdsRW5hYmxlKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FSQik7
CisgICAgZ2xCaW5kRnJhbWVidWZmZXIoR0xfUkVBRF9GUkFNRUJVRkZFUiwgb3JpZ2luRmJvKTsK
KyAgICBnbEJpbmRGcmFtZWJ1ZmZlcihHTF9EUkFXX0ZSQU1FQlVGRkVSLCBtX2Zibyk7CisgICAg
Z2xGcmFtZWJ1ZmZlclRleHR1cmUyRChHTF9EUkFXX0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9BVFRB
Q0hNRU5UMCwgR0xfVEVYVFVSRV9SRUNUQU5HTEVfQVJCLCBtX3RleHR1cmUsIDApOworICAgIGds
QmxpdEZyYW1lYnVmZmVyKDAsIDAsIHNvdXJjZVJlY3Qud2lkdGgoKSwgc291cmNlUmVjdC5oZWln
aHQoKSwgMCwgc291cmNlUmVjdC5oZWlnaHQoKSwgc291cmNlUmVjdC53aWR0aCgpLCAwLCBHTF9D
T0xPUl9CVUZGRVJfQklULCBHTF9MSU5FQVIpOyAvLyBGbGlwIHRoZSB0ZXh0dXJlIHVwc2lkZSBk
b3duLgorICAgIGdsRnJhbWVidWZmZXJUZXh0dXJlMkQoR0xfRFJBV19GUkFNRUJVRkZFUiwgR0xf
Q09MT1JfQVRUQUNITUVOVDAsIEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FSQiwgMCwgMCk7CisgICAg
Z2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG9sZEZCTyk7CisgICAgZ2xQb3BBdHRy
aWIoKTsKKworICAgIC8vIEZsdXNoaW5nIHRoZSBnbCBjb21tYW5kIGJ1ZmZlciBpcyBuZWNlc3Nh
cnkgdG8gZW5zdXJlIHRoZSB0ZXh0dXJlIGhhcyBjb3JyZWN0bHkgYmVlbiBib3VuZCB0byB0aGUg
SU9TdXJmYWNlLgorICAgIGdsRmx1c2goKTsKK30KKwogYm9vbCBHcmFwaGljc1N1cmZhY2U6OnBs
YXRmb3JtQ3JlYXRlKGNvbnN0IEludFNpemUmIHNpemUsIEZsYWdzIGZsYWdzKQogewogICAgIHVu
c2lnbmVkIHBpeGVsRm9ybWF0ID0gJ0JHUkEnOwo=
</data>
<flag name="review"
          id="151389"
          type_id="1"
          status="-"
          setter="noam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144552</attachid>
            <date>2012-05-29 07:14:36 -0700</date>
            <delta_ts>2012-05-30 13:39:06 -0700</delta_ts>
            <desc>patch for review. - fixed issues as commented before.</desc>
            <filename>87725_20120529-161133.patch</filename>
            <type>text/plain</type>
            <size>5949</size>
            <attacher name="Zeno Albisser">zeno</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiNzliNDZhLi5mYTc4NTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMTItMDUtMjkgIFplbm8gQWxiaXNzZXIgIDx6ZW5vQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgR3JhcGhpY3NTdXJmYWNlOiBhbGxvdyBpbXBvcnRpbmcgYW5kIGV4cG9ydGluZyBvZiB0ZXh0
dXJlcyBkaXJlY3RseSBvbiBHUFUgc2lkZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg3NzI1CisKKyAgICAgICAgQWRkIGNvcHlGcm9tRnJhbWVidWZm
ZXIgZnVuY3Rpb24gdG8gY29weSBhIHRleHR1cmUgZnJvbSBhbiBGQk8KKyAgICAgICAgb250byB0
aGUgR3JhcGhpY3NTdXJmYWNlLgorICAgICAgICBBZGQgZ2V0VGV4dHVyZUlEIGZ1bmN0aW9uIHRv
IGV4cG9ydCB0aGUgdGV4dHVyZSBJRC4KKyAgICAgICAgVGhpcyBhbGxvd3MgYmluZGluZy9ibGl0
dGluZyB0aGUgdGV4dHVyZSBkaXJlY3RseSBvbiB0aGUgR1BVLgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvR3JhcGhpY3NTdXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFj
ZTo6Z2V0VGV4dHVyZUlEKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NTdXJmYWNlOjpjb3B5RnJvbUZyYW1lYnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9zdXJmYWNlcy9HcmFwaGljc1N1cmZhY2UuaDoKKyAgICAgICAgKEdyYXBoaWNz
U3VyZmFjZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvbWFjL0dyYXBo
aWNzU3VyZmFjZU1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2U6OnBs
YXRmb3JtR2V0VGV4dHVyZUlEKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NTdXJmYWNlOjpwbGF0Zm9ybUNvcHlGcm9tRnJhbWVidWZmZXIpOgorCiAyMDEy
LTA1LTI5ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgSFRN
TElGcmFtZUVsZW1lbnQuc2VhbWxlc3MgcHJvcGVydHkgYWNjZXNzb3Igbm93IHRoYXQgc2VhbWxl
c3MgaXMgZW5hYmxlZCBhbmQgd29ya3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dyYXBoaWNzU3VyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HcmFwaGljc1N1cmZhY2UuY3BwCmluZGV4IGI0
M2ExMDEuLjAxOGE4OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3N1cmZhY2VzL0dyYXBoaWNzU3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR3JhcGhpY3NTdXJmYWNlLmNwcApAQCAtNDYsNiArNDYs
MTEgQEAgdWludDMyX3QgR3JhcGhpY3NTdXJmYWNlOjpleHBvcnRUb2tlbigpCiAgICAgcmV0dXJu
IHBsYXRmb3JtRXhwb3J0KCk7CiB9CiAKK3VpbnQzMl90IEdyYXBoaWNzU3VyZmFjZTo6Z2V0VGV4
dHVyZUlEKCkKK3sKKyAgICByZXR1cm4gcGxhdGZvcm1HZXRUZXh0dXJlSUQoKTsKK30KKwogUGFz
c093blB0cjxHcmFwaGljc0NvbnRleHQ+IEdyYXBoaWNzU3VyZmFjZTo6YmVnaW5QYWludChjb25z
dCBJbnRSZWN0JiByZWN0LCBMb2NrT3B0aW9ucyBsb2NrT3B0aW9ucykKIHsKICAgICBpbnQgc3Ry
aWRlID0gMDsKQEAgLTU5LDYgKzY0LDExIEBAIHZvaWQgR3JhcGhpY3NTdXJmYWNlOjpjb3B5VG9H
TFRleHR1cmUodWludDMyX3QgdGFyZ2V0LCB1aW50MzJfdCB0ZXh0dXJlLCBjb25zdCBJCiAgICAg
cGxhdGZvcm1Db3B5VG9HTFRleHR1cmUodGFyZ2V0LCB0ZXh0dXJlLCB0YXJnZXRSZWN0LCBvZmZz
ZXQpOwogfQogCit2b2lkIEdyYXBoaWNzU3VyZmFjZTo6Y29weUZyb21GcmFtZWJ1ZmZlcih1aW50
MzJfdCBmYm8sIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QpCit7CisgICAgcGxhdGZvcm1Db3B5
RnJvbUZyYW1lYnVmZmVyKGZibywgc291cmNlUmVjdCk7Cit9CisKIEdyYXBoaWNzU3VyZmFjZTo6
R3JhcGhpY3NTdXJmYWNlKGNvbnN0IEludFNpemUmIHNpemUsIEZsYWdzIGZsYWdzKQogICAgIDog
bV9zaXplKHNpemUpCiAgICAgLCBtX2ZsYWdzKGZsYWdzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR3JhcGhpY3NTdXJmYWNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HcmFwaGljc1N1cmZhY2UuaApp
bmRleCBkYTk0MWQ0Li45NmIxYzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9zdXJmYWNlcy9HcmFwaGljc1N1cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HcmFwaGljc1N1cmZhY2UuaApAQCAtNjQsNyAr
NjQsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8R3JhcGhpY3NTdXJmYWNlPiBj
cmVhdGUoY29uc3QgSW50U2l6ZSYsIEZsYWdzKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxHcmFw
aGljc1N1cmZhY2U+IGNyZWF0ZShjb25zdCBJbnRTaXplJiwgRmxhZ3MsIHVpbnQzMl90IHRva2Vu
KTsKICAgICB2b2lkIGNvcHlUb0dMVGV4dHVyZSh1aW50MzJfdCB0YXJnZXQsIHVpbnQzMl90IHRl
eHR1cmUsIGNvbnN0IEludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IEludFBvaW50JiBzb3VyY2VP
ZmZzZXQpOworICAgIHZvaWQgY29weUZyb21GcmFtZWJ1ZmZlcih1aW50MzJfdCBmYm8sIGNvbnN0
IEludFJlY3QmIHNvdXJjZVJlY3QpOwogICAgIHVpbnQzMl90IGV4cG9ydFRva2VuKCk7CisgICAg
dWludDMyX3QgZ2V0VGV4dHVyZUlEKCk7CiAgICAgUGFzc093blB0cjxHcmFwaGljc0NvbnRleHQ+
IGJlZ2luUGFpbnQoY29uc3QgSW50UmVjdCYsIExvY2tPcHRpb25zKTsKICAgICBQYXNzUmVmUHRy
PEltYWdlPiBjcmVhdGVSZWFkT25seUltYWdlKGNvbnN0IEludFJlY3QmKTsKIApAQCAtNzQsOSAr
NzYsMTEgQEAgcHJvdGVjdGVkOgogICAgIHVpbnQzMl90IHBsYXRmb3JtRXhwb3J0KCk7CiAgICAg
dm9pZCBwbGF0Zm9ybURlc3Ryb3koKTsKIAorICAgIHVpbnQzMl90IHBsYXRmb3JtR2V0VGV4dHVy
ZUlEKCk7CiAgICAgY2hhciogcGxhdGZvcm1Mb2NrKGNvbnN0IEludFJlY3QmLCBpbnQqIHN0cmlk
ZSwgTG9ja09wdGlvbnMpOwogICAgIHZvaWQgcGxhdGZvcm1VbmxvY2soKTsKICAgICB2b2lkIHBs
YXRmb3JtQ29weVRvR0xUZXh0dXJlKHVpbnQzMl90IHRhcmdldCwgdWludDMyX3QgdGV4dHVyZSwg
Y29uc3QgSW50UmVjdCYsIGNvbnN0IEludFBvaW50Jik7CisgICAgdm9pZCBwbGF0Zm9ybUNvcHlG
cm9tRnJhbWVidWZmZXIodWludDMyX3QgZmJvLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0KTsK
IAogICAgIFBhc3NPd25QdHI8R3JhcGhpY3NDb250ZXh0PiBwbGF0Zm9ybUJlZ2luUGFpbnQoY29u
c3QgSW50U2l6ZSYsIGNoYXIqIGJpdHMsIGludCBzdHJpZGUpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9tYWMvR3JhcGhpY3NTdXJmYWNl
TWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL21hYy9H
cmFwaGljc1N1cmZhY2VNYWMuY3BwCmluZGV4IGI2YTFhMDIuLmI5OWJlMzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL21hYy9HcmFwaGljc1N1
cmZhY2VNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL21hYy9HcmFwaGljc1N1cmZhY2VNYWMuY3BwCkBAIC0xOSw2ICsxOSw3IEBACiAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJHcmFwaGljc1N1cmZhY2UuaCIKKyNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHQzRC5oIgogCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpICYmIE9TKERB
UldJTikKICNpbmNsdWRlIDxDRk51bWJlci5oPgpAQCAtNjQsNiArNjUsMTMgQEAgc3RhdGljIHVp
bnQzMl90IGNyZWF0ZVRleHR1cmUoSU9TdXJmYWNlUmVmIGhhbmRsZSkKICAgICByZXR1cm4gdGV4
dHVyZTsKIH0KIAordWludDMyX3QgR3JhcGhpY3NTdXJmYWNlOjpwbGF0Zm9ybUdldFRleHR1cmVJ
RCgpCit7CisgICAgaWYgKCFtX3RleHR1cmUpCisgICAgICAgIG1fdGV4dHVyZSA9IGNyZWF0ZVRl
eHR1cmUobV9wbGF0Zm9ybVN1cmZhY2UpOworICAgIHJldHVybiBtX3RleHR1cmU7Cit9CisKIHZv
aWQgR3JhcGhpY3NTdXJmYWNlOjpwbGF0Zm9ybUNvcHlUb0dMVGV4dHVyZSh1aW50MzJfdCB0YXJn
ZXQsIHVpbnQzMl90IGlkLCBjb25zdCBJbnRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBJbnRQb2lu
dCYgb2Zmc2V0KQogewogICAgIGdsUHVzaEF0dHJpYihHTF9BTExfQVRUUklCX0JJVFMpOwpAQCAt
ODMsNiArOTEsMjggQEAgdm9pZCBHcmFwaGljc1N1cmZhY2U6OnBsYXRmb3JtQ29weVRvR0xUZXh0
dXJlKHVpbnQzMl90IHRhcmdldCwgdWludDMyX3QgaWQsIGNvbnMKICAgICBnbFBvcEF0dHJpYigp
OwogfQogCit2b2lkIEdyYXBoaWNzU3VyZmFjZTo6cGxhdGZvcm1Db3B5RnJvbUZyYW1lYnVmZmVy
KHVpbnQzMl90IG9yaWdpbkZibywgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCkKK3sKKyAgICBn
bFB1c2hBdHRyaWIoR0xfQUxMX0FUVFJJQl9CSVRTKTsKKyAgICBpZiAoIW1fdGV4dHVyZSkKKyAg
ICAgICAgbV90ZXh0dXJlID0gY3JlYXRlVGV4dHVyZShtX3BsYXRmb3JtU3VyZmFjZSk7CisgICAg
aWYgKCFtX2ZibykKKyAgICAgICAgZ2xHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fZmJvKTsKKyAgICBH
TGludCBvbGRGQk87CisgICAgZ2xHZXRJbnRlZ2VydihHTF9GUkFNRUJVRkZFUl9CSU5ESU5HLCAm
b2xkRkJPKTsKKyAgICBnbEVuYWJsZShHTF9URVhUVVJFX1JFQ1RBTkdMRV9BUkIpOworICAgIGds
QmluZEZyYW1lYnVmZmVyKEdMX1JFQURfRlJBTUVCVUZGRVIsIG9yaWdpbkZibyk7CisgICAgZ2xC
aW5kRnJhbWVidWZmZXIoR0xfRFJBV19GUkFNRUJVRkZFUiwgbV9mYm8pOworICAgIGdsRnJhbWVi
dWZmZXJUZXh0dXJlMkQoR0xfRFJBV19GUkFNRUJVRkZFUiwgR0xfQ09MT1JfQVRUQUNITUVOVDAs
IEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FSQiwgbV90ZXh0dXJlLCAwKTsKKyAgICBnbEJsaXRGcmFt
ZWJ1ZmZlcigwLCAwLCBzb3VyY2VSZWN0LndpZHRoKCksIHNvdXJjZVJlY3QuaGVpZ2h0KCksIDAs
IHNvdXJjZVJlY3QuaGVpZ2h0KCksIHNvdXJjZVJlY3Qud2lkdGgoKSwgMCwgR0xfQ09MT1JfQlVG
RkVSX0JJVCwgR0xfTElORUFSKTsgLy8gRmxpcCB0aGUgdGV4dHVyZSB1cHNpZGUgZG93bi4KKyAg
ICBnbEZyYW1lYnVmZmVyVGV4dHVyZTJEKEdMX0RSQVdfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FU
VEFDSE1FTlQwLCBHTF9URVhUVVJFX1JFQ1RBTkdMRV9BUkIsIDAsIDApOworICAgIGdsQmluZEZy
YW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBvbGRGQk8pOworICAgIGdsUG9wQXR0cmliKCk7CisK
KyAgICAvLyBGbHVzaGluZyB0aGUgZ2wgY29tbWFuZCBidWZmZXIgaXMgbmVjZXNzYXJ5IHRvIGVu
c3VyZSB0aGUgdGV4dHVyZSBoYXMgY29ycmVjdGx5IGJlZW4gYm91bmQgdG8gdGhlIElPU3VyZmFj
ZS4KKyAgICBnbEZsdXNoKCk7Cit9CisKIGJvb2wgR3JhcGhpY3NTdXJmYWNlOjpwbGF0Zm9ybUNy
ZWF0ZShjb25zdCBJbnRTaXplJiBzaXplLCBGbGFncyBmbGFncykKIHsKICAgICB1bnNpZ25lZCBw
aXhlbEZvcm1hdCA9ICdCR1JBJzsK
</data>
<flag name="review"
          id="151421"
          type_id="1"
          status="+"
          setter="noam"
    />
          </attachment>
      

    </bug>

</bugzilla>