<?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>105803</bug_id>
          
          <creation_ts>2012-12-27 11:26:42 -0800</creation_ts>
          <short_desc>[EFL][WK2] Regression(138462) Sometimes garbage in snapshots</short_desc>
          <delta_ts>2012-12-27 23:18:17 -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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Viatcheslav Ostapenko">ostap73</reporter>
          <assigned_to name="Viatcheslav Ostapenko">ostap73</assigned_to>
          <cc>cdumez</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>797631</commentid>
    <comment_count>0</comment_count>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2012-12-27 11:26:42 -0800</bug_when>
    <thetext>In EwkViewImpl::takeSnapshot surface created by cairo_image_surface_create_for_data is returned, but buffer is release on exit.
Doc for cairo_image_surface_create_for_data here http://www.cairographics.org/manual/cairo-Image-Surfaces.html#cairo-image-surface-create-for-data says:
&quot;The output buffer must be kept around until the cairo_surface_t is destroyed or cairo_surface_finish() is called on the surface.&quot;

It just keeps pointer internally to the provided image buffer. The data from buffer is copied only in WKImageCreateFromCairoSurface.
Mostly it works because data is copied immediately after return from already deallocated memory block, but I don&apos;t think it is right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797632</commentid>
    <comment_count>1</comment_count>
      <attachid>180812</attachid>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2012-12-27 11:33:52 -0800</bug_when>
    <thetext>Created attachment 180812
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797636</commentid>
    <comment_count>2</comment_count>
      <attachid>180812</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-12-27 11:55:07 -0800</bug_when>
    <thetext>Comment on attachment 180812
Patch

Sadly you are right. Sorry I missed that. However, I really don&apos;t like that we are returning a WKType from our C++ API. How about using copyCairoImageSurface() from CairoUtilities.h instead so that we can keep returning a PassRefPtr&lt;cairo_surface_t&gt;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797644</commentid>
    <comment_count>3</comment_count>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2012-12-27 12:18:25 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 180812 [details])
&gt; Sadly you are right. Sorry I missed that. However, I really don&apos;t like that we are returning a WKType from our C++ API. How about using copyCairoImageSurface() from CairoUtilities.h instead so that we can keep returning a PassRefPtr&lt;cairo_surface_t&gt;?

Do you mean it should copy image data 2 times?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797645</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-12-27 12:22:19 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 180812 [details] [details])
&gt; &gt; Sadly you are right. Sorry I missed that. However, I really don&apos;t like that we are returning a WKType from our C++ API. How about using copyCairoImageSurface() from CairoUtilities.h instead so that we can keep returning a PassRefPtr&lt;cairo_surface_t&gt;?
&gt; 
&gt; Do you mean it should copy image data 2 times?

Right, it will copy the image data twice in the accelerated compositing case. But at least, we would respect layering and the method would be more directly reusable by our public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797665</commentid>
    <comment_count>5</comment_count>
      <attachid>180819</attachid>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2012-12-27 13:28:26 -0800</bug_when>
    <thetext>Created attachment 180819
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797695</commentid>
    <comment_count>6</comment_count>
      <attachid>180819</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-12-27 15:40:25 -0800</bug_when>
    <thetext>Comment on attachment 180819
Patch

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

Nice idea, I like it

&gt; Source/WebKit2/ChangeLog:9
&gt; +        from it create cairo surface 1st and use surface image internal buffer

I would add a comma after &apos;it&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797717</commentid>
    <comment_count>7</comment_count>
      <attachid>180834</attachid>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2012-12-27 17:58:04 -0800</bug_when>
    <thetext>Created attachment 180834
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797723</commentid>
    <comment_count>8</comment_count>
      <attachid>180834</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-27 18:46:26 -0800</bug_when>
    <thetext>Comment on attachment 180834
Patch for landing

Clearing flags on attachment: 180834

Committed r138518: &lt;http://trac.webkit.org/changeset/138518&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797724</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-27 18:46:31 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797764</commentid>
    <comment_count>10</comment_count>
      <attachid>180834</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-12-27 22:25:17 -0800</bug_when>
    <thetext>Comment on attachment 180834
Patch for landing

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

&gt; Source/WebKit2/UIProcess/API/efl/SnapshotImageGL.cpp:58
&gt; +    return newSurface;

Shouldn&apos;t we call release() here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797769</commentid>
    <comment_count>11</comment_count>
      <attachid>180834</attachid>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2012-12-27 22:59:26 -0800</bug_when>
    <thetext>Comment on attachment 180834
Patch for landing

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

&gt;&gt; Source/WebKit2/UIProcess/API/efl/SnapshotImageGL.cpp:58
&gt;&gt; +    return newSurface;
&gt; 
&gt; Shouldn&apos;t we call release() here?

Not necessary. I see that a lot of code use it this way with release, but it works fine without it. newSurface object will be deallocated in any case, but reference to the pointer will be kept by PassRefPtr object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797772</commentid>
    <comment_count>12</comment_count>
      <attachid>180834</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-12-27 23:18:17 -0800</bug_when>
    <thetext>Comment on attachment 180834
Patch for landing

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

&gt;&gt;&gt; Source/WebKit2/UIProcess/API/efl/SnapshotImageGL.cpp:58
&gt;&gt;&gt; +    return newSurface;
&gt;&gt; 
&gt;&gt; Shouldn&apos;t we call release() here?
&gt; 
&gt; Not necessary. I see that a lot of code use it this way with release, but it works fine without it. newSurface object will be deallocated in any case, but reference to the pointer will be kept by PassRefPtr object.

I know it is not strictly required but it is still good practice to call release() here. By not calling release() you&apos;re uselessly ref&apos;ing (when the PassRefPtr is constructed) and then unref&apos;ing (when the RefPtr goes out of scope). I still believe it should be done properly.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180812</attachid>
            <date>2012-12-27 11:33:52 -0800</date>
            <delta_ts>2012-12-27 13:28:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105803-20121227143103.patch</filename>
            <type>text/plain</type>
            <size>3487</size>
            <attacher name="Viatcheslav Ostapenko">ostap73</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTQwNDNlMjNkOTRlNWVm
YTZmYzI1OWNkNzEwNWQ1MWI0YTM4MDk1OS4uMzQzZWY4ZjIxYjhhNTIwNDZiMmYzZWU0NDI2ZTRi
ZDZhMGI3YmYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTEyLTI3ICBWaWF0
Y2hlc2xhdiBPc3RhcGVua28gIDxzbC5vc3RhcGVua29Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAg
W0VGTF1bV0syXSBSZWdyZXNzaW9uKDEzODQ2MikgU29tZXRpbWVzIGdhcmJhZ2UgaW4gc25hcHNo
b3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU4
MDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXJ0
aWFsbHkgcmV2ZXJ0IGNvbW1pdCAxMzg0NjIgdG8gYXZvaWQgcmVmZmVyZW5jaW5nIGFscmVhZHkK
KyAgICAgICAgZGVhbGxvY2F0ZWQgYnVmZmVyIGZyb20gY2Fpcm8gc3VyZmFjZS4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmNwcDoKKyAgICAgICAgKFdLVmlld0NyZWF0
ZVNuYXBzaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5jcHA6
CisgICAgICAgIChFd2tWaWV3SW1wbDo6dGFrZVNuYXBzaG90KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5oOgorICAgICAgICAoRXdrVmlld0ltcGwpOgorCiAyMDEy
LTEyLTI3ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CiAK
ICAgICAgICAgW0VGTF1bV0syXSBSZWdyZXNzaW9uKDEzNTkzNSkgbGF5b3V0IHRlc3RzIHNuYXBz
aG90cyBhcmUgZmxha3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9lZmwvV0tWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tW
aWV3LmNwcAppbmRleCBhMDYyMDUyYTI3NTc3ZjlkNjIwODg1MGVjMDc2YWU0ZGY3Njc3ZWMyLi4y
YzgzMTVkOGQ1MTljNmQxOTgzMzQ4YTk2YjBhMDk0NTRhZjUwNWI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwCkBAIC00OCw1ICs0OCw1IEBAIFdL
SW1hZ2VSZWYgV0tWaWV3Q3JlYXRlU25hcHNob3QoV0tWaWV3UmVmIHZpZXdSZWYpCiB7CiAgICAg
RXdrVmlld0ltcGwqIHZpZXdJbXBsID0gRXdrVmlld0ltcGw6OmZyb21FdmFzT2JqZWN0KHRvSW1w
bCh2aWV3UmVmKSk7CiAKLSAgICByZXR1cm4gV0tJbWFnZUNyZWF0ZUZyb21DYWlyb1N1cmZhY2Uo
dmlld0ltcGwtPnRha2VTbmFwc2hvdCgpLmdldCgpLCAwIC8qIG9wdGlvbnMgKi8pOworICAgIHJl
dHVybiB2aWV3SW1wbC0+dGFrZVNuYXBzaG90KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5jcHAKaW5kZXggNDg1NWNiZTE5Nzg2Njk4NmI4
ZDZmZDgwOTMwNGY3MzY3NmRhOTcxNi4uM2RlNDM2N2E4OGRkNDMwZjg0ZWQ5ZDYwOWY1YzJlMWYx
OTU2NjUxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdr
Vmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1Zp
ZXdJbXBsLmNwcApAQCAtMTAyOSw3ICsxMDI5LDcgQEAgdm9pZCBFd2tWaWV3SW1wbDo6b25GYXZp
Y29uQ2hhbmdlZChjb25zdCBjaGFyKiBwYWdlVVJMLCB2b2lkKiBldmVudEluZm8pCiAgICAgdmll
d0ltcGwtPmluZm9ybUljb25DaGFuZ2UoKTsKIH0KIAotUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNl
X3Q+IEV3a1ZpZXdJbXBsOjp0YWtlU25hcHNob3QoKQorV0tJbWFnZVJlZiBFd2tWaWV3SW1wbDo6
dGFrZVNuYXBzaG90KCkKIHsKICAgICAvLyBTdXNwZW5kIGFsbCBhbmltYXRpb25zIGJlZm9yZSB0
YWtpbmcgdGhlIHNuYXBzaG90LgogICAgIG1fcGFnZVByb3h5LT5zdXNwZW5kQWN0aXZlRE9NT2Jq
ZWN0c0FuZEFuaW1hdGlvbnMoKTsKQEAgLTEwNDYsNyArMTA0Niw3IEBAIFBhc3NSZWZQdHI8Y2Fp
cm9fc3VyZmFjZV90PiBFd2tWaWV3SW1wbDo6dGFrZVNuYXBzaG90KCkKICAgICAgICAgLy8gUmVz
dW1lIGFsbCBhbmltYXRpb25zLgogICAgICAgICBtX3BhZ2VQcm94eS0+cmVzdW1lQWN0aXZlRE9N
T2JqZWN0c0FuZEFuaW1hdGlvbnMoKTsKIAotICAgICAgICByZXR1cm4gc25hcHNob3QucmVsZWFz
ZSgpOworICAgICAgICByZXR1cm4gV0tJbWFnZUNyZWF0ZUZyb21DYWlyb1N1cmZhY2Uoc25hcHNo
b3QuZ2V0KCksIDAgLyogb3B0aW9ucyAqLyk7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQogICAgIH0KIApAQCAtMTA1NSw2ICsxMDU1LDYgQEAgUGFzc1JlZlB0cjxjYWlyb19zdXJm
YWNlX3Q+IEV3a1ZpZXdJbXBsOjp0YWtlU25hcHNob3QoKQogICAgIC8vIFJlc3VtZSBhbGwgYW5p
bWF0aW9ucy4KICAgICBtX3BhZ2VQcm94eS0+cmVzdW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1h
dGlvbnMoKTsKIAotICAgIHJldHVybiBzbmFwc2hvdC5yZWxlYXNlKCk7CisgICAgcmV0dXJuIFdL
SW1hZ2VDcmVhdGVGcm9tQ2Fpcm9TdXJmYWNlKHNuYXBzaG90LmdldCgpLCAwIC8qIG9wdGlvbnMg
Ki8pOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9Fd2tWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdr
Vmlld0ltcGwuaAppbmRleCAxOGZhNDk1NDYzN2JkYWM3ZTQzNWIyODAyNjg2NjZiZDM5ZDBlOGEx
Li41NmRlZmZhMjE1ZDY4NmU1Zjc1ZWI0Y2ZhYjcyZGZjOWU5Mjk0MzQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmgKQEAgLTIxNSw3ICsyMTUs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0hhcmR3YXJlQWNjZWxlcmF0ZWQoKSBjb25zdCB7IHJl
dHVybiBtX2lzSGFyZHdhcmVBY2NlbGVyYXRlZDsgfQogICAgIHZvaWQgc2V0RHJhd3NCYWNrZ3Jv
dW5kKGJvb2wgZW5hYmxlKSB7IG1fc2V0RHJhd3NCYWNrZ3JvdW5kID0gZW5hYmxlOyB9CiAKLSAg
ICBQYXNzUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gdGFrZVNuYXBzaG90KCk7CisgICAgV0tJbWFn
ZVJlZiB0YWtlU25hcHNob3QoKTsKIAogcHJpdmF0ZToKICNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180819</attachid>
            <date>2012-12-27 13:28:26 -0800</date>
            <delta_ts>2012-12-27 17:57:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105803-20121227162537.patch</filename>
            <type>text/plain</type>
            <size>4283</size>
            <attacher name="Viatcheslav Ostapenko">ostap73</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTQwNDNlMjNkOTRlNWVm
YTZmYzI1OWNkNzEwNWQ1MWI0YTM4MDk1OS4uY2Q2ZGJkMjM3ZjdkYTBjOThhYWFhYWI3OWI0OGRl
NTU4YzAwNjUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTEyLTI3ICBWaWF0
Y2hlc2xhdiBPc3RhcGVua28gIDxzbC5vc3RhcGVua29Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAg
W0VGTF1bV0syXSBSZWdyZXNzaW9uKDEzODQ2MikgU29tZXRpbWVzIGdhcmJhZ2UgaW4gc25hcHNo
b3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU4
MDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnN0
ZWFkIG9mIGNyZWF0aW5nIHRlbXBvcmFyeSBidWZmZXIgYW5kIHRoZW4gY3JlYXRpbmcgY2Fpcm8g
c3VyZmFjZQorICAgICAgICBmcm9tIGl0IGNyZWF0ZSBjYWlybyBzdXJmYWNlIDFzdCBhbmQgdXNl
IHN1cmZhY2UgaW1hZ2UgaW50ZXJuYWwgYnVmZmVyCisgICAgICAgIHRvIHJlYWQgcGl4ZWxzIGZy
b20gR0wgYnVmZmVyLiAKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBs
LmNwcDoKKyAgICAgICAgKEV3a1ZpZXdJbXBsOjp0YWtlU25hcHNob3QpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZWZsL1NuYXBzaG90SW1hZ2VHTC5jcHA6CisgICAgICAgIChnZXRJbWFnZVN1
cmZhY2VGcm9tRnJhbWVCdWZmZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL1NuYXBz
aG90SW1hZ2VHTC5oOgorCiAyMDEyLTEyLTI3ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3Bo
ZS5kdW1lekBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF1bV0syXSBSZWdyZXNzaW9uKDEzNTkz
NSkgbGF5b3V0IHRlc3RzIHNuYXBzaG90cyBhcmUgZmxha3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmNwcAppbmRleCA0ODU1Y2JlMTk3ODY2OTg2
YjhkNmZkODA5MzA0ZjczNjc2ZGE5NzE2Li42N2JmNTI0ZWFjMTMzYjZkMGRkMmU0ZDIyY2YzMjc5
ODU5YTI3N2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9F
d2tWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdr
Vmlld0ltcGwuY3BwCkBAIC0xMDUwLDggKzEwNTAsNyBAQCBQYXNzUmVmUHRyPGNhaXJvX3N1cmZh
Y2VfdD4gRXdrVmlld0ltcGw6OnRha2VTbmFwc2hvdCgpCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgIH0KIAotICAgIE93bkFycmF5UHRyPHVuc2lnbmVkIGNoYXI+IGJ1ZmZl
ciA9IGdldEltYWdlRGF0YUZyb21GcmFtZUJ1ZmZlcigwLCAwLCBzZC0+dmlldy53LCBzZC0+dmll
dy5oKTsKLSAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzbmFwc2hvdCA9IGFkb3B0UmVmKGNh
aXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKGJ1ZmZlci5nZXQoKSwgQ0FJUk9fRk9S
TUFUX0FSR0IzMiwgc2QtPnZpZXcudywgc2QtPnZpZXcuaCwgc2QtPnZpZXcudyAqIDQpKTsKKyAg
ICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzbmFwc2hvdCA9IGdldEltYWdlU3VyZmFjZUZyb21G
cmFtZUJ1ZmZlcigwLCAwLCBzZC0+dmlldy53LCBzZC0+dmlldy5oKTsKICAgICAvLyBSZXN1bWUg
YWxsIGFuaW1hdGlvbnMuCiAgICAgbV9wYWdlUHJveHktPnJlc3VtZUFjdGl2ZURPTU9iamVjdHNB
bmRBbmltYXRpb25zKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL1NuYXBzaG90SW1hZ2VHTC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9TbmFwc2hvdEltYWdlR0wuY3BwCmluZGV4IDYxODQ3MzZiY2IwMGM5M2QzODZhNDBjZGY0
NWI1M2I0MjM3ODliMjAuLmU4ZDg3ODM2MWU2OTU1NTA2YTRhYzdmZjQ3NTliMWM1OWEyY2E1Y2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1NuYXBzaG90SW1h
Z2VHTC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvU25hcHNob3RJ
bWFnZUdMLmNwcApAQCAtMzQsMTMgKzM0LDE3IEBACiAjaW5jbHVkZSAiT3BlbkdMU2hpbXMuaCIK
ICNlbmRpZgogCi1QYXNzT3duQXJyYXlQdHI8dW5zaWduZWQgY2hhcj4gZ2V0SW1hZ2VEYXRhRnJv
bUZyYW1lQnVmZmVyKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQorI2luY2x1
ZGUgPFdlYkNvcmUvQ2Fpcm9VdGlsaXRpZXNFZmwuaD4KKworUGFzc1JlZlB0cjxjYWlyb19zdXJm
YWNlX3Q+IGdldEltYWdlU3VyZmFjZUZyb21GcmFtZUJ1ZmZlcihpbnQgeCwgaW50IHksIGludCB3
aWR0aCwgaW50IGhlaWdodCkKIHsKLSAgICBPd25BcnJheVB0cjx1bnNpZ25lZCBjaGFyPiBidWZm
ZXIgPSBhZG9wdEFycmF5UHRyKG5ldyB1bnNpZ25lZCBjaGFyW3dpZHRoICogaGVpZ2h0ICogNF0p
OwotICAgIGdsUmVhZFBpeGVscyh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBHTF9CR1JBLCBHTF9VTlNJ
R05FRF9CWVRFLCBidWZmZXIuZ2V0KCkpOworICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IG5l
d1N1cmZhY2UgPSBhZG9wdFJlZihjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZShDQUlST19GT1JN
QVRfQVJHQjMyLCB3aWR0aCwgaGVpZ2h0KSk7CisgICAgdW5zaWduZWQgY2hhciogZGF0YSA9IGNh
aXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2RhdGEobmV3U3VyZmFjZS5nZXQoKSk7CisKKyAgICBnbFJl
YWRQaXhlbHMoeCwgeSwgd2lkdGgsIGhlaWdodCwgR0xfQkdSQSwgR0xfVU5TSUdORURfQllURSwg
ZGF0YSk7CiAKICAgICAvLyBUZXh0dXJlcyBhcmUgZmxpcHBlZCBvbiB0aGUgWSBheGlzLCBzbyB3
ZSBuZWVkIHRvIGZsaXAgdGhlIGltYWdlIGJhY2suCi0gICAgdW5zaWduZWQqIGJ1ZiA9IHJlaW50
ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihidWZmZXIuZ2V0KCkpOworICAgIHVuc2lnbmVkKiBidWYg
PSByZWludGVycHJldF9jYXN0PHVuc2lnbmVkKj4oZGF0YSk7CiAKICAgICBmb3IgKGludCBpID0g
MDsgaSA8IGhlaWdodCAvIDI7ICsraSkgewogICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHdp
ZHRoOyArK2opIHsKQEAgLTUwLDcgKzU0LDggQEAgUGFzc093bkFycmF5UHRyPHVuc2lnbmVkIGNo
YXI+IGdldEltYWdlRGF0YUZyb21GcmFtZUJ1ZmZlcihpbnQgeCwgaW50IHksIGludCB3aWQKICAg
ICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBidWZmZXIucmVsZWFzZSgpOworICAgIGNhaXJv
X3N1cmZhY2VfbWFya19kaXJ0eShuZXdTdXJmYWNlLmdldCgpKTsKKyAgICByZXR1cm4gbmV3U3Vy
ZmFjZTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9TbmFwc2hvdEltYWdlR0wuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL1NuYXBzaG90SW1hZ2VHTC5oCmluZGV4IGUyYTk0ODc5MWM1ZjI5YWI4N2U4YmU4MTE3NTRl
OTllMWM4NjQ4MWMuLjdlZWE4M2Y4NmUzMTJmODRiNmFkMTY3MTg4NTUyYjgxMzEwNDJmMTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1NuYXBzaG90SW1hZ2VH
TC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1NuYXBzaG90SW1hZ2VH
TC5oCkBAIC0yNiwxMCArMjYsMTEgQEAKICNpZm5kZWYgU25hcHNob3RJbWFnZUdMX2gKICNkZWZp
bmUgU25hcHNob3RJbWFnZUdMX2gKIAorI2luY2x1ZGUgPFJlZlB0ckNhaXJvLmg+CiAjaW5jbHVk
ZSA8d3RmL093bkFycmF5UHRyLmg+CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
Ci1QYXNzT3duQXJyYXlQdHI8dW5zaWduZWQgY2hhcj4gZ2V0SW1hZ2VEYXRhRnJvbUZyYW1lQnVm
ZmVyKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKK1Bhc3NSZWZQdHI8Y2Fp
cm9fc3VyZmFjZV90PiBnZXRJbWFnZVN1cmZhY2VGcm9tRnJhbWVCdWZmZXIoaW50IHgsIGludCB5
LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOwogI2VuZGlmCiAKICNlbmRpZiAvLyBTbmFwc2hvdElt
YWdlR0xfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180834</attachid>
            <date>2012-12-27 17:58:04 -0800</date>
            <delta_ts>2012-12-27 23:18:17 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-105803-20121227205515.patch</filename>
            <type>text/plain</type>
            <size>4296</size>
            <attacher name="Viatcheslav Ostapenko">ostap73</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTQwNDNlMjNkOTRlNWVm
YTZmYzI1OWNkNzEwNWQ1MWI0YTM4MDk1OS4uNDI1Mzg0N2E4YTNlNjY5YWZhOWI3ZGFmODBkNTFm
Y2Q2Nzc1ZmVkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTEyLTI3ICBWaWF0
Y2hlc2xhdiBPc3RhcGVua28gIDxzbC5vc3RhcGVua29Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAg
W0VGTF1bV0syXSBSZWdyZXNzaW9uKDEzODQ2MikgU29tZXRpbWVzIGdhcmJhZ2UgaW4gc25hcHNo
b3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU4
MDMKKworICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KKwor
ICAgICAgICBJbnN0ZWFkIG9mIGNyZWF0aW5nIHRlbXBvcmFyeSBidWZmZXIgYW5kIHRoZW4gY3Jl
YXRpbmcgY2Fpcm8gc3VyZmFjZQorICAgICAgICBmcm9tIGl0LCBjcmVhdGUgY2Fpcm8gc3VyZmFj
ZSAxc3QgYW5kIHVzZSBzdXJmYWNlIGltYWdlIGludGVybmFsIGJ1ZmZlcgorICAgICAgICB0byBy
ZWFkIHBpeGVscyBmcm9tIEdMIGJ1ZmZlci4gCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9Fd2tWaWV3SW1wbC5jcHA6CisgICAgICAgIChFd2tWaWV3SW1wbDo6dGFrZVNuYXBzaG90KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hvdEltYWdlR0wuY3BwOgorICAgICAg
ICAoZ2V0SW1hZ2VTdXJmYWNlRnJvbUZyYW1lQnVmZmVyKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2VmbC9TbmFwc2hvdEltYWdlR0wuaDoKKwogMjAxMi0xMi0yNyAgQ2hyaXN0b3BoZSBEdW1l
eiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdW1dLMl0gUmVn
cmVzc2lvbigxMzU5MzUpIGxheW91dCB0ZXN0cyBzbmFwc2hvdHMgYXJlIGZsYWt5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5jcHAKaW5kZXggNDg1
NWNiZTE5Nzg2Njk4NmI4ZDZmZDgwOTMwNGY3MzY3NmRhOTcxNi4uNjdiZjUyNGVhYzEzM2I2ZDBk
ZDJlNGQyMmNmMzI3OTg1OWEyNzdlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmNwcApAQCAtMTA1MCw4ICsxMDUwLDcgQEAgUGFzc1JlZlB0
cjxjYWlyb19zdXJmYWNlX3Q+IEV3a1ZpZXdJbXBsOjp0YWtlU25hcHNob3QoKQogI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB9CiAKLSAgICBPd25BcnJheVB0cjx1bnNpZ25l
ZCBjaGFyPiBidWZmZXIgPSBnZXRJbWFnZURhdGFGcm9tRnJhbWVCdWZmZXIoMCwgMCwgc2QtPnZp
ZXcudywgc2QtPnZpZXcuaCk7Ci0gICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gc25hcHNob3Qg
PSBhZG9wdFJlZihjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZV9mb3JfZGF0YShidWZmZXIuZ2V0
KCksIENBSVJPX0ZPUk1BVF9BUkdCMzIsIHNkLT52aWV3LncsIHNkLT52aWV3LmgsIHNkLT52aWV3
LncgKiA0KSk7CisgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gc25hcHNob3QgPSBnZXRJbWFn
ZVN1cmZhY2VGcm9tRnJhbWVCdWZmZXIoMCwgMCwgc2QtPnZpZXcudywgc2QtPnZpZXcuaCk7CiAg
ICAgLy8gUmVzdW1lIGFsbCBhbmltYXRpb25zLgogICAgIG1fcGFnZVByb3h5LT5yZXN1bWVBY3Rp
dmVET01PYmplY3RzQW5kQW5pbWF0aW9ucygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hvdEltYWdlR0wuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvU25hcHNob3RJbWFnZUdMLmNwcAppbmRleCA2MTg0NzM2YmNiMDBj
OTNkMzg2YTQwY2RmNDViNTNiNDIzNzg5YjIwLi5lOGQ4NzgzNjFlNjk1NTUwNmE0YWM3ZmY0NzU5
YjFjNTlhMmNhNWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9TbmFwc2hvdEltYWdlR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL1NuYXBzaG90SW1hZ2VHTC5jcHAKQEAgLTM0LDEzICszNCwxNyBAQAogI2luY2x1ZGUgIk9w
ZW5HTFNoaW1zLmgiCiAjZW5kaWYKIAotUGFzc093bkFycmF5UHRyPHVuc2lnbmVkIGNoYXI+IGdl
dEltYWdlRGF0YUZyb21GcmFtZUJ1ZmZlcihpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhl
aWdodCkKKyNpbmNsdWRlIDxXZWJDb3JlL0NhaXJvVXRpbGl0aWVzRWZsLmg+CisKK1Bhc3NSZWZQ
dHI8Y2Fpcm9fc3VyZmFjZV90PiBnZXRJbWFnZVN1cmZhY2VGcm9tRnJhbWVCdWZmZXIoaW50IHgs
IGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCiB7Ci0gICAgT3duQXJyYXlQdHI8dW5zaWdu
ZWQgY2hhcj4gYnVmZmVyID0gYWRvcHRBcnJheVB0cihuZXcgdW5zaWduZWQgY2hhclt3aWR0aCAq
IGhlaWdodCAqIDRdKTsKLSAgICBnbFJlYWRQaXhlbHMoeCwgeSwgd2lkdGgsIGhlaWdodCwgR0xf
QkdSQSwgR0xfVU5TSUdORURfQllURSwgYnVmZmVyLmdldCgpKTsKKyAgICBSZWZQdHI8Y2Fpcm9f
c3VyZmFjZV90PiBuZXdTdXJmYWNlID0gYWRvcHRSZWYoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVh
dGUoQ0FJUk9fRk9STUFUX0FSR0IzMiwgd2lkdGgsIGhlaWdodCkpOworICAgIHVuc2lnbmVkIGNo
YXIqIGRhdGEgPSBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9kYXRhKG5ld1N1cmZhY2UuZ2V0KCkp
OworCisgICAgZ2xSZWFkUGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIEdMX0JHUkEsIEdMX1VO
U0lHTkVEX0JZVEUsIGRhdGEpOwogCiAgICAgLy8gVGV4dHVyZXMgYXJlIGZsaXBwZWQgb24gdGhl
IFkgYXhpcywgc28gd2UgbmVlZCB0byBmbGlwIHRoZSBpbWFnZSBiYWNrLgotICAgIHVuc2lnbmVk
KiBidWYgPSByZWludGVycHJldF9jYXN0PHVuc2lnbmVkKj4oYnVmZmVyLmdldCgpKTsKKyAgICB1
bnNpZ25lZCogYnVmID0gcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCo+KGRhdGEpOwogCiAgICAg
Zm9yIChpbnQgaSA9IDA7IGkgPCBoZWlnaHQgLyAyOyArK2kpIHsKICAgICAgICAgZm9yIChpbnQg
aiA9IDA7IGogPCB3aWR0aDsgKytqKSB7CkBAIC01MCw3ICs1NCw4IEBAIFBhc3NPd25BcnJheVB0
cjx1bnNpZ25lZCBjaGFyPiBnZXRJbWFnZURhdGFGcm9tRnJhbWVCdWZmZXIoaW50IHgsIGludCB5
LCBpbnQgd2lkCiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gYnVmZmVyLnJlbGVhc2Uo
KTsKKyAgICBjYWlyb19zdXJmYWNlX21hcmtfZGlydHkobmV3U3VyZmFjZS5nZXQoKSk7CisgICAg
cmV0dXJuIG5ld1N1cmZhY2U7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvU25hcHNob3RJbWFnZUdMLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hvdEltYWdlR0wuaAppbmRleCBlMmE5NDg3OTFjNWYyOWFi
ODdlOGJlODExNzU0ZTk5ZTFjODY0ODFjLi43ZWVhODNmODZlMzEyZjg0YjZhZDE2NzE4ODU1MmI4
MTMxMDQyZjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9T
bmFwc2hvdEltYWdlR0wuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9T
bmFwc2hvdEltYWdlR0wuaApAQCAtMjYsMTAgKzI2LDExIEBACiAjaWZuZGVmIFNuYXBzaG90SW1h
Z2VHTF9oCiAjZGVmaW5lIFNuYXBzaG90SW1hZ2VHTF9oCiAKKyNpbmNsdWRlIDxSZWZQdHJDYWly
by5oPgogI2luY2x1ZGUgPHd0Zi9Pd25BcnJheVB0ci5oPgogCiAjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQotUGFzc093bkFycmF5UHRyPHVuc2lnbmVkIGNoYXI+IGdldEltYWdlRGF0
YUZyb21GcmFtZUJ1ZmZlcihpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCk7CitQ
YXNzUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gZ2V0SW1hZ2VTdXJmYWNlRnJvbUZyYW1lQnVmZmVy
KGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKICNlbmRpZgogCiAjZW5kaWYg
Ly8gU25hcHNob3RJbWFnZUdMX2gK
</data>

          </attachment>
      

    </bug>

</bugzilla>