<?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>44380</bug_id>
          
          <creation_ts>2010-08-21 07:21:31 -0700</creation_ts>
          <short_desc>[Qt] Layer approach to support generic shadow handling</short_desc>
          <delta_ts>2010-08-22 01:37:26 -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>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>HTML5, Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>34479</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ariya Hidayat">ariya.hidayat</reporter>
          <assigned_to name="Ariya Hidayat">ariya.hidayat</assigned_to>
          <cc>hausmann</cc>
    
    <cc>kling</cc>
    
    <cc>krit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>267560</commentid>
    <comment_count>0</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-21 07:21:31 -0700</bug_when>
    <thetext>Class ContextShadow needs to have layer support, i.e via &quot;begin layer&quot; and &quot;end layer&quot; function which creates temporary surface to draw onto. For complex shapes (and also text) which cast shadow, with more complicated fill than just a solid color, this extra redirection is needed. Furthermore, blur filter has to operate on an extra surface anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267570</commentid>
    <comment_count>1</comment_count>
      <attachid>65025</attachid>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-21 07:55:49 -0700</bug_when>
    <thetext>Created attachment 65025
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267615</commentid>
    <comment_count>2</comment_count>
      <attachid>65037</attachid>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-21 16:57:04 -0700</bug_when>
    <thetext>Created attachment 65037
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267618</commentid>
    <comment_count>3</comment_count>
      <attachid>65038</attachid>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-21 18:19:19 -0700</bug_when>
    <thetext>Created attachment 65038
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267644</commentid>
    <comment_count>4</comment_count>
      <attachid>65038</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-08-21 22:17:50 -0700</bug_when>
    <thetext>Comment on attachment 65038
Patch

WebCore/platform/graphics/qt/ContextShadow.cpp:270
 +  QPainter* ContextShadow::beginShadowLayer(QPainter* p, const QRectF &amp;rect)
I wounder if we always know the size? It&apos;s not just SVG and CSS shadows for text and boxs in HTML that use shadow. We use it as well on Canvas, and it can transform the context multiple times between beginShadowLayer and endShadowLayer.

WebCore/platform/graphics/qt/ContextShadow.cpp:292
 +          // No need to have the buffer larger that the clip.
Typo: larger that the clip.

WebCore/platform/graphics/qt/ContextShadow.h:66
 +      // Note: multiple/nested shadow layer is NOT allowed.
Thats bad. In SVG we can have multiple shadows:
&lt;g style=&quot;-webkit-svg-shadow:...&quot;&gt;
  &lt;rect style=&quot;-webkit-svg-shadow:...&quot;/&gt;
  &lt;rect /&gt;
&lt;/g&gt;

Can&apos;t Canvas have multiple shadows?
You may want to work more like transparencyLayer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267648</commentid>
    <comment_count>5</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-21 23:21:11 -0700</bug_when>
    <thetext>&gt; I wounder if we always know the size?

Yes, since the use case of the layer is inside each primitive drawing in GraphicsContext.

&gt;  +          // No need to have the buffer larger that the clip.
&gt; Typo: larger that the clip.

Good catch.

&gt; WebCore/platform/graphics/qt/ContextShadow.h:66
&gt;  +      // Note: multiple/nested shadow layer is NOT allowed.
&gt; Thats bad. In SVG we can have multiple shadows:
&gt; &lt;g style=&quot;-webkit-svg-shadow:...&quot;&gt;
&gt;   &lt;rect style=&quot;-webkit-svg-shadow:...&quot;/&gt;
&gt;   &lt;rect /&gt;
&gt; &lt;/g&gt;
&gt; 
&gt; Can&apos;t Canvas have multiple shadows?
&gt; You may want to work more like transparencyLayer.

Not sure I need to tackle these case, I may miss something here.
The plan is to use begin and end *only* inside each primitive drawing in GraphicsContext, thus there is no need to support nested calls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267650</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-08-21 23:53:13 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Not sure I need to tackle these case, I may miss something here.
&gt; The plan is to use begin and end *only* inside each primitive drawing in GraphicsContext, thus there is no need to support nested calls.

Hm, if I understand you correctly, you just call beginShadowLayer and endShadowLayer for every primitive inside GC? That would mean, you can&apos;t make a groupe shadow of more than one primitive, right? At least SVG needs the ability to apply groupe shadows. And IIRC Canvas too?
I know that groupe shadow soesn&apos;t work right now, neither for Cairo, nor Skia, nor Qt. But a nested, common implementation of beginShadowLayer and endShadowLayer, that can be called from outside of GC could solve this problem. That&apos;s why I asked if it is possible to make it more like transparencyLayer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267651</commentid>
    <comment_count>7</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-22 00:06:04 -0700</bug_when>
    <thetext>&gt; Hm, if I understand you correctly, you just call beginShadowLayer and endShadowLayer for every
&gt; primitive inside GC? That would mean, you can&apos;t make a groupe shadow of more than one primitive, right? 

While I agree GraphicsContext::beginShadowLayer (and endShadowLayer) is a nice thing to have, unfortunately it is outside the scope of this patch.

Even if in the end we have such functionality in GraphicsContext, we still need something similar (ContextShadow) since Qt does not have native support for creating drop shadow on the fly.

IOW, don&apos;t think this like a layer but more like &quot;give me some surface for you to filter+blur, as the shadow for my shape&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267653</commentid>
    <comment_count>8</comment_count>
      <attachid>65038</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-08-22 00:13:51 -0700</bug_when>
    <thetext>Comment on attachment 65038
Patch

Indeed. Please fix the typo. r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267654</commentid>
    <comment_count>9</comment_count>
      <attachid>65050</attachid>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-22 00:14:31 -0700</bug_when>
    <thetext>Created attachment 65050
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267656</commentid>
    <comment_count>10</comment_count>
      <attachid>65050</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-08-22 00:16:00 -0700</bug_when>
    <thetext>Comment on attachment 65050
Patch

r=me, again ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267661</commentid>
    <comment_count>11</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-08-22 01:37:26 -0700</bug_when>
    <thetext>Committed r65782: &lt;http://trac.webkit.org/changeset/65782&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65025</attachid>
            <date>2010-08-21 07:55:49 -0700</date>
            <delta_ts>2010-08-21 16:57:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44380-20100821075544.patch</filename>
            <type>text/plain</type>
            <size>10174</size>
            <attacher name="Ariya Hidayat">ariya.hidayat</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
M2MzNjU1NGI0MGQ5N2JmOTVlNjZhMzFlNjFkNjU1YTlkNzU5NThmMS4uNDQ5NGU2ZmQyNjA4NzJh
NjhkZWVjM2M3ODE5ODRmOWY5NWVhMWUxMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0wOC0yMSAgQXJp
eWEgSGlkYXlhdCAgPGFyaXlhQHNlbmNoYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBMYXllciBhcHByb2FjaCB0byBzdXBwb3J0IGdl
bmVyaWMgc2hhZG93IGhhbmRsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00NDM4MAorCisgICAgICAgIFRoZSBwYWlyIGJlZ2luU2hhZG93TGF5ZXIg
YW5kIGVuZFNoYWRvd0xheWVyIGNyZWF0ZXMgYSB0ZW1wb3JhcnkgaW1hZ2UKKyAgICAgICAgd2hl
cmUgdGhlIGNhbGxlciBjYW4gZHJhdyBvbnRvLCB1c2luZyB0aGUgcmV0dXJuZWQgUVBhaW50ZXIu
IFdoZW4KKyAgICAgICAgZW5kU2hhZG93TGF5ZXIgaXMgY2FsbGVkLCB0aGUgdGVtcG9yYXJ5IGlt
YWdlIHdpbGwgYmUgZmlsdGVyZWQsIHVzaW5nCisgICAgICAgIHRoZSBzcGVjaWZpZWQgc2hhZG93
IGNvbG9yIGFuZCBibHVyIHJhZGl1cywgYW5kIGRyYXduIHRvIHRoZSBncmFwaGljcworICAgICAg
ICBjb250ZXh0LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvQ29udGV4dFNoYWRvdy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZXh0U2hhZG93OjpiZWdpblNoYWRvd0xheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRleHRTaGFkb3c6OmVuZFNoYWRvd0xheWVyKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9xdC9Db250ZXh0U2hhZG93Lmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpmaWxsUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQ6OmNvbnRleHRTaGFkb3cpOgorCiAyMDEwLTA4LTIwICBBbmRyZWFzIEtsaW5nICA8YW5kcmVh
cy5rbGluZ0Bub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQXJpeWEgSGlkYXlhdC4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmgg
Yi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCmluZGV4IGIwMDc5
ZTg5MDRlMTQ4ZGM4Zjc1N2VmNjc0NzMzODg2ZmY4MjdkYTEuLmVhZDJjYTU0ODkwOWQzZGYyY2U2
NTE5ODc1N2I5MmRkZmNkYmM5NjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQuaApAQCAtNDgsNiArNDgsOSBAQCBjbGFzcyBTdXJmYWNlT3BlblZHOwogdHlw
ZWRlZiBjbGFzcyBXZWJDb3JlOjpTdXJmYWNlT3BlblZHIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0
OwogI2VsaWYgUExBVEZPUk0oUVQpCiAjaW5jbHVkZSA8UVBhaW50ZXI+CituYW1lc3BhY2UgV2Vi
Q29yZSB7CitjbGFzcyBDb250ZXh0U2hhZG93OworfQogdHlwZWRlZiBRUGFpbnRlciBQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dDsKICNlbGlmIFBMQVRGT1JNKFdYKQogY2xhc3Mgd3hHQ0RDOwpAQCAt
Mzk2LDYgKzM5OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBwdXNoVHJh
bnNwYXJlbmN5TGF5ZXJJbnRlcm5hbChjb25zdCBRUmVjdCAmcmVjdCwgcXJlYWwgb3BhY2l0eSwg
UVBpeG1hcCYgYWxwaGFNYXNrKTsKICAgICAgICAgUVBlbiBwZW4oKTsKICAgICAgICAgc3RhdGlj
IFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGUgdG9RdENvbXBvc2l0aW9uTW9kZShDb21wb3NpdGVP
cGVyYXRvciBvcCk7CisgICAgICAgIENvbnRleHRTaGFkb3cqIGNvbnRleHRTaGFkb3coKTsKICNl
bmRpZgogCiAjaWYgUExBVEZPUk0oR1RLKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9xdC9Db250ZXh0U2hhZG93LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvQ29udGV4dFNoYWRvdy5jcHAKaW5kZXggODBiMTdmOWZhYjE5MTgzYjkwNjJmOWVlYTMzMTJl
ZWY0ODJiZjQ1NS4uNGRmMmZjZWRiMWQwZjgwOGM1NDZlNTA4YWNjMzY1NjdiMmNmNDQ1ZCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Db250ZXh0U2hhZG93LmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0NvbnRleHRTaGFkb3cuY3BwCkBAIC0y
NjcsNTYgKzI2Nyw2MSBAQCBzdGF0aWMgdm9pZCBzaGFkb3dCbHVyKFFJbWFnZSYgaW1hZ2UsIGlu
dCByYWRpdXMsIGNvbnN0IFFDb2xvciYgc2hhZG93Q29sb3IpCiAgICAgcC5lbmQoKTsKIH0KIAot
dm9pZCBDb250ZXh0U2hhZG93OjpkcmF3U2hhZG93UmVjdChRUGFpbnRlciogcCwgY29uc3QgUVJl
Y3RGJiByZWN0KQorUVBhaW50ZXIqIENvbnRleHRTaGFkb3c6OmJlZ2luU2hhZG93TGF5ZXIoUVBh
aW50ZXIqIHAsIGNvbnN0IFFSZWN0RiAmcmVjdCkKIHsKLSAgICBpZiAodHlwZSA9PSBOb1NoYWRv
dykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKHR5cGUgPT0gQmx1clNoYWRvdykgewotICAg
ICAgICBRUmVjdEYgc2hhZG93UmVjdCA9IHJlY3QudHJhbnNsYXRlZChvZmZzZXQpOwotCi0gICAg
ICAgIC8vIFdlIGV4cGFuZCB0aGUgYXJlYSBieSB0aGUgYmx1ciByYWRpdXMgKiAyIHRvIGdpdmUg
ZXh0cmEgc3BhY2UKLSAgICAgICAgLy8gZm9yIHRoZSBibHVyIHRyYW5zaXRpb24uCi0gICAgICAg
IGludCBleHRyYSA9IGJsdXJSYWRpdXMgKiAyOwotICAgICAgICBRUmVjdEYgYnVmZmVyUmVjdCA9
IHNoYWRvd1JlY3QuYWRqdXN0ZWQoLWV4dHJhLCAtZXh0cmEsIGV4dHJhLCBleHRyYSk7Ci0gICAg
ICAgIFFSZWN0IGFsaWduZWRCdWZmZXJSZWN0ID0gYnVmZmVyUmVjdC50b0FsaWduZWRSZWN0KCk7
Ci0KLSAgICAgICAgUVJlY3QgY2xpcFJlY3Q7Ci0gICAgICAgIGlmIChwLT5oYXNDbGlwcGluZygp
KQotICAgICAgICAgICAgY2xpcFJlY3QgPSBwLT5jbGlwUmVnaW9uKCkuYm91bmRpbmdSZWN0KCk7
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNsaXBSZWN0ID0gcC0+dHJhbnNmb3JtKCkuaW52
ZXJ0ZWQoKS5tYXBSZWN0KHAtPndpbmRvdygpKTsKLQotICAgICAgICBpZiAoIWNsaXBSZWN0LmNv
bnRhaW5zKGFsaWduZWRCdWZmZXJSZWN0KSkgewotCi0gICAgICAgICAgICAvLyBObyBuZWVkIHRv
IGhhdmUgdGhlIGJ1ZmZlciBsYXJnZXIgdGhhdCB0aGUgY2xpcC4KLSAgICAgICAgICAgIGFsaWdu
ZWRCdWZmZXJSZWN0ID0gYWxpZ25lZEJ1ZmZlclJlY3QuaW50ZXJzZWN0ZWQoY2xpcFJlY3QpOwot
ICAgICAgICAgICAgaWYgKGFsaWduZWRCdWZmZXJSZWN0LmlzRW1wdHkoKSkKLSAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgLy8gV2UgZXhwYW5kIHRoZSBhcmVhIGJ5IHRoZSBibHVyIHJhZGl1
cyAqIDIgdG8gZ2l2ZSBleHRyYSBzcGFjZQorICAgIC8vIGZvciB0aGUgYmx1ciB0cmFuc2l0aW9u
LgorICAgIGludCBleHRyYSA9ICh0eXBlID09IEJsdXJTaGFkb3cpID8gYmx1clJhZGl1cyAqIDIg
OiAwOworCisgICAgUVJlY3RGIHNoYWRvd1JlY3QgPSByZWN0LnRyYW5zbGF0ZWQob2Zmc2V0KTsK
KyAgICBRUmVjdEYgYnVmZmVyUmVjdCA9IHNoYWRvd1JlY3QuYWRqdXN0ZWQoLWV4dHJhLCAtZXh0
cmEsIGV4dHJhLCBleHRyYSk7CisgICAgbV9sYXllclJlY3QgPSBidWZmZXJSZWN0LnRvQWxpZ25l
ZFJlY3QoKTsKKworICAgIFFSZWN0IGNsaXBSZWN0OworICAgIGlmIChwLT5oYXNDbGlwcGluZygp
KQorICAgICAgICBjbGlwUmVjdCA9IHAtPmNsaXBSZWdpb24oKS5ib3VuZGluZ1JlY3QoKTsKKyAg
ICBlbHNlCisgICAgICAgIGNsaXBSZWN0ID0gcC0+dHJhbnNmb3JtKCkuaW52ZXJ0ZWQoKS5tYXBS
ZWN0KHAtPndpbmRvdygpKTsKKworICAgIGlmICghY2xpcFJlY3QuY29udGFpbnMobV9sYXllclJl
Y3QpKSB7CisKKyAgICAgICAgLy8gTm8gbmVlZCB0byBoYXZlIHRoZSBidWZmZXIgbGFyZ2VyIHRo
YXQgdGhlIGNsaXAuCisgICAgICAgIG1fbGF5ZXJSZWN0ID0gbV9sYXllclJlY3QuaW50ZXJzZWN0
ZWQoY2xpcFJlY3QpOworICAgICAgICBpZiAobV9sYXllclJlY3QuaXNFbXB0eSgpKQorICAgICAg
ICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAgLy8gV2UgYWRqdXN0IGFnYWluIGJlY2F1c2UgdGhl
IHBpeGVscyBhdCB0aGUgYm9yZGVycyBhcmUgc3RpbGwKKyAgICAgICAgLy8gcG90ZW50aWFsbHkg
YWZmZWN0ZWQgYnkgdGhlIHBpeGVscyBvdXRzaWRlIHRoZSBidWZmZXIuCisgICAgICAgIGlmICh0
eXBlID09IEJsdXJTaGFkb3cpCisgICAgICAgICAgICBtX2xheWVyUmVjdC5hZGp1c3QoLWV4dHJh
LCAtZXh0cmEsIGV4dHJhLCBleHRyYSk7CisgICAgfQogCi0gICAgICAgICAgICAvLyBXZSBhZGp1
c3QgYWdhaW4gYmVjYXVzZSB0aGUgcGl4ZWxzIGF0IHRoZSBib3JkZXJzIGFyZSBzdGlsbAotICAg
ICAgICAgICAgLy8gcG90ZW50aWFsbHkgYWZmZWN0ZWQgYnkgdGhlIHBpeGVscyBvdXRzaWRlIHRo
ZSBidWZmZXIuCi0gICAgICAgICAgICBhbGlnbmVkQnVmZmVyUmVjdC5hZGp1c3QoLWV4dHJhLCAt
ZXh0cmEsIGV4dHJhLCBleHRyYSk7Ci0gICAgICAgIH0KKyAgICBTaGFkb3dCdWZmZXIqIHNoYWRv
d0J1ZmZlciA9IHNjcmF0Y2hTaGFkb3dCdWZmZXIoKTsKKyAgICBRSW1hZ2UqIHNoYWRvd0ltYWdl
ID0gc2hhZG93QnVmZmVyLT5zY3JhdGNoSW1hZ2UobV9sYXllclJlY3Quc2l6ZSgpKTsKKyAgICBt
X2xheWVySW1hZ2UgPSBRSW1hZ2UoKnNoYWRvd0ltYWdlKTsKIAotICAgICAgICBTaGFkb3dCdWZm
ZXIqIHNoYWRvd0J1ZmZlciA9IHNjcmF0Y2hTaGFkb3dCdWZmZXIoKTsKLSAgICAgICAgUUltYWdl
KiBzaGFkb3dJbWFnZSA9IHNoYWRvd0J1ZmZlci0+c2NyYXRjaEltYWdlKGFsaWduZWRCdWZmZXJS
ZWN0LnNpemUoKSk7Ci0gICAgICAgIFFQYWludGVyIHNoYWRvd1BhaW50ZXIoc2hhZG93SW1hZ2Up
OworICAgIG1fbGF5ZXJQYWludGVyID0gbmV3IFFQYWludGVyOworICAgIG1fbGF5ZXJQYWludGVy
LT5iZWdpbigmbV9sYXllckltYWdlKTsKKyAgICBtX2xheWVyUGFpbnRlci0+dHJhbnNsYXRlKG9m
ZnNldCk7CiAKLSAgICAgICAgc2hhZG93UGFpbnRlci5maWxsUmVjdChzaGFkb3dSZWN0LnRyYW5z
bGF0ZWQoLWFsaWduZWRCdWZmZXJSZWN0LnRvcExlZnQoKSksIGNvbG9yKTsKLSAgICAgICAgc2hh
ZG93UGFpbnRlci5lbmQoKTsKKyAgICAvLyBUaGUgb3JpZ2luIGlzIG5vdyB0aGUgdG9wIGxlZnQg
Y29ybmVyIG9mIHRoZSBzY3JhdGNoIGltYWdlLgorICAgIG1fbGF5ZXJQYWludGVyLT50cmFuc2xh
dGUoLW1fbGF5ZXJSZWN0LnRvcExlZnQoKSk7CiAKLSAgICAgICAgc2hhZG93Qmx1cigqc2hhZG93
SW1hZ2UsIGJsdXJSYWRpdXMsIGNvbG9yKTsKKyAgICByZXR1cm4gbV9sYXllclBhaW50ZXI7Cit9
CiAKLSAgICAgICAgcC0+ZHJhd0ltYWdlKGFsaWduZWRCdWZmZXJSZWN0LnRvcExlZnQoKSwgKnNo
YWRvd0ltYWdlKTsKK3ZvaWQgQ29udGV4dFNoYWRvdzo6ZW5kU2hhZG93TGF5ZXIoUVBhaW50ZXIq
IHApCit7CisgICAgbV9sYXllclBhaW50ZXItPmVuZCgpOworICAgIGRlbGV0ZSBtX2xheWVyUGFp
bnRlcjsKKyAgICBtX2xheWVyUGFpbnRlciA9IDA7CiAKLSAgICAgICAgc2hhZG93QnVmZmVyLT5z
Y2hlZHVsZVB1cmdlKCk7CisgICAgaWYgKHR5cGUgPT0gQmx1clNoYWRvdykKKyAgICAgICAgc2hh
ZG93Qmx1cihtX2xheWVySW1hZ2UsIGJsdXJSYWRpdXMsIGNvbG9yKTsKIAotICAgICAgICByZXR1
cm47Ci0gICAgfQorICAgIHAtPmRyYXdJbWFnZShtX2xheWVyUmVjdC50b3BMZWZ0KCksIG1fbGF5
ZXJJbWFnZSk7CiAKLSAgICBwLT5maWxsUmVjdChyZWN0LnRyYW5zbGF0ZWQob2Zmc2V0KSwgY29s
b3IpOworICAgIHNjcmF0Y2hTaGFkb3dCdWZmZXIoKS0+c2NoZWR1bGVQdXJnZSgpOwogfQogCi0K
IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvQ29udGV4dFNoYWRv
dy5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Db250ZXh0U2hhZG93LmgKaW5kZXgg
ZTExNGViYzg2NDUzMzQ1MGVhMDg4YjZmOWZhMDBlOTY3MGU3YmQwNi4uNzE0MDM0MGQ3OGU0ZDQ4
MjQ4Y2YwMWNmNzM2ZmQyYjFkMDVhOTFkNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9xdC9Db250ZXh0U2hhZG93LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9xdC9Db250ZXh0U2hhZG93LmgKQEAgLTU4LDEyICs1OCwzNSBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIGNsZWFyKCk7CiAKLSAgICAvLyBEcmF3cyB0aGUgc2hhZG93IGZvciBjb2xvcmVkIHJlY3Rh
bmdsZSAoY2FuJ3QgYmUgZmlsbGVkIHdpdGggcGF0dGVybgotICAgIC8vIG9yIGdyYWRpZW50KSBh
Y2NvcmRpbmcgdG8gdGhlIHNoYWRvdyBwYXJhbWV0ZXJzLgotICAgIC8vIE5vdGU6ICdyZWN0JyBz
cGVjaWZpZXMgdGhlIHJlY3RhbmdsZSB3aGljaCBjYXN0cyB0aGUgc2hhZG93LAotICAgIC8vIE5P
VCB0aGUgYm91bmRpbmcgYm94IG9mIHRoZSBzaGFkb3cuCi0gICAgdm9pZCBkcmF3U2hhZG93UmVj
dChRUGFpbnRlciogcCwgY29uc3QgUVJlY3RGJiByZWN0KTsKKyAgICAvLyBUaGUgcGFpciBiZWdp
blNoYWRvd0xheWVyIGFuZCBlbmRTaGFkb3dMYXllciBjcmVhdGVzIGEgdGVtcG9yYXJ5IGltYWdl
CisgICAgLy8gd2hlcmUgdGhlIGNhbGxlciBjYW4gZHJhdyBvbnRvLCB1c2luZyB0aGUgcmV0dXJu
ZWQgUVBhaW50ZXIuIFRoaXMKKyAgICAvLyBRUGFpbnRlciBpbnN0YW5jZSBtdXN0IGJlIHVzZWQg
b25seSB0byBkcmF3IGJldHdlZW4gdGhlIGNhbGwgdG8KKyAgICAvLyBiZWdpblNoYWRvd0xheWVy
IGFuZCBlbmRTaGFkb3dMYXllci4KKyAgICAvLworICAgIC8vIE5vdGU6IG11bHRpcGxlL25lc3Rl
ZCBzaGFkb3cgbGF5ZXIgaXMgTk9UIGFsbG93ZWQuCisgICAgLy8KKyAgICAvLyBUaGUgY3VycmVu
dCBjbGlwIHJlZ2lvbiB3aWxsIGJlIHVzZWQgdG8gb3B0aW1pemUgdGhlIHNpemUgb2YgdGhlCisg
ICAgLy8gdGVtcG9yYXJ5IGltYWdlLiBUaHVzLCB0aGUgb3JpZ2luYWwgcGFpbnRlciBzaG91bGQg
bm90IGNoYW5nZSBhbnkKKyAgICAvLyBjbGlwcGluZyB1bnRpbCBlbmRTaGFkb3dMYXllci4KKyAg
ICAvLyBJZiB0aGUgc2hhZG93IHdpbGwgYmUgY29tcGxldGVseSBvdXRzaWRlIHRoZSBjbGlwcGlu
ZyByZWdpb24sCisgICAgLy8gYmVnaW5TaGFkb3dMYXllciB3aWxsIHJldHVybiAwLgorICAgIC8v
CisgICAgLy8gVGhlIHJldHVybmVkIFFQYWludGVyIHdpbGwgaGF2ZSB0aGUgdHJhbnNmb3JtYXRp
b24gbWF0cml4IGFuZCBjbGlwcGluZworICAgIC8vIHByb3Blcmx5IGluaXRpYWxpemVkIHRvIHN0
YXJ0IGRvaW5nIHRoZSBwYWludGluZyAobm8gbmVlZCB0byBhY2NvdW50CisgICAgLy8gZm9yIHRo
ZSBzaGFkb3cgb2Zmc2V0KSwgaG93ZXZlciBpdCB3aWxsIG5vdCBoYXZlIHRoZSBzYW1lIHJlbmRl
ciBoaW50cywKKyAgICAvLyBwZW4sIGJydXNoLCBldGMgYXMgdGhlIHBhc3NlZCBRUGFpbnRlci4g
VGhpcyBpcyBpbnRlbnRpb25hbCwgdXN1YWxseQorICAgIC8vIHNoYWRvdyBoYXMgZGlmZmVyZW50
IHByb3BlcnRpZXMgdGhhbiB0aGUgc2hhcGUgd2hpY2ggY2FzdHMgdGhlIHNoYWRvdy4KKyAgICAv
LworICAgIC8vIE9uY2UgZW5kU2hhZG93TGF5ZXIgaXMgY2FsbGVkLCB0aGUgdGVtcG9yYXJ5IGlt
YWdlIHdpbGwgYmUgZHJhd24KKyAgICAvLyB3aXRoIHRoZSBvcmlnaW5hbCBwYWludGVyLiBJZiBi
bHVyIHJhZGl1cyBpcyBzcGVjaWZpZWQsIHRoZSBzaGFkb3cKKyAgICAvLyB3aWxsIGJlIGZpbHRl
cmVkIGZpcnN0LgorICAgIFFQYWludGVyKiBiZWdpblNoYWRvd0xheWVyKFFQYWludGVyKiBwLCBj
b25zdCBRUmVjdEYmIHJlY3QpOworICAgIHZvaWQgZW5kU2hhZG93TGF5ZXIoUVBhaW50ZXIqIHAp
OwogCitwcml2YXRlOgorICAgIFFSZWN0IG1fbGF5ZXJSZWN0OworICAgIFFJbWFnZSBtX2xheWVy
SW1hZ2U7CisgICAgUVBhaW50ZXIqIG1fbGF5ZXJQYWludGVyOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFw
aGljc0NvbnRleHRRdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNz
Q29udGV4dFF0LmNwcAppbmRleCA4NDBlZjAyYTEyODM5YmNkZWU4NDc2ZmMzYWY1NTQ2MGFiNDUz
NTg4Li42N2ZmZWFlMTQ5OTQ3NjVjMjMwMDllZDllNGQ2MDYyYjNmMzJmZTY1IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcApAQCAt
Njk1LDExICs2OTUsMjYgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0KGNvbnN0IEZs
b2F0UmVjdCYgcmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclMKIAogICAgIG1fZGF0YS0+
c29saWRDb2xvci5zZXRDb2xvcihjb2xvcik7CiAgICAgUVBhaW50ZXIqIHAgPSBtX2RhdGEtPnAo
KTsKKyAgICBRUmVjdEYgbm9ybWFsaXplZFJlY3QgPSByZWN0Lm5vcm1hbGl6ZWQoKTsKIAotICAg
IGlmIChtX2RhdGEtPmhhc1NoYWRvdygpKQotICAgICAgICBtX2RhdGEtPnNoYWRvdy5kcmF3U2hh
ZG93UmVjdChwLCByZWN0KTsKKyAgICBpZiAoVU5MSUtFTFkobV9kYXRhLT5oYXNTaGFkb3coKSkp
IHsKKyAgICAgICAgQ29udGV4dFNoYWRvdyogc2hhZG93ID0gY29udGV4dFNoYWRvdygpOwogCi0g
ICAgcC0+ZmlsbFJlY3QocmVjdCwgbV9kYXRhLT5zb2xpZENvbG9yKTsKKyAgICAgICAgaWYgKHNo
YWRvdy0+dHlwZSAhPSBDb250ZXh0U2hhZG93OjpCbHVyU2hhZG93KSB7CisgICAgICAgICAgICAv
LyBXZSBkbyBub3QgbmVlZCBhbnkgbGF5ZXIgZm9yIHNpbXBsZSBzaGFkb3cuCisgICAgICAgICAg
ICBRQ29sb3Igc2hhZG93Q29sb3IgPSBzaGFkb3ctPmNvbG9yOworICAgICAgICAgICAgc2hhZG93
Q29sb3Iuc2V0QWxwaGEoY29sb3IuYWxwaGEoKSk7CisgICAgICAgICAgICBwLT5maWxsUmVjdChu
b3JtYWxpemVkUmVjdC50cmFuc2xhdGVkKG1fZGF0YS0+c2hhZG93Lm9mZnNldCksIHNoYWRvd0Nv
bG9yKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFFQYWludGVyKiBzaGFkb3dQYWlu
dGVyID0gc2hhZG93LT5iZWdpblNoYWRvd0xheWVyKHAsIG5vcm1hbGl6ZWRSZWN0KTsKKyAgICAg
ICAgICAgIGlmIChzaGFkb3dQYWludGVyKSB7CisgICAgICAgICAgICAgICAgc2hhZG93UGFpbnRl
ci0+ZmlsbFJlY3Qobm9ybWFsaXplZFJlY3QsIGNvbG9yKTsKKyAgICAgICAgICAgICAgICBzaGFk
b3ctPmVuZFNoYWRvd0xheWVyKHApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQor
CisgICAgcC0+ZmlsbFJlY3Qobm9ybWFsaXplZFJlY3QsIG1fZGF0YS0+c29saWRDb2xvcik7CiB9
CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUm91bmRlZFJlY3QoY29uc3QgSW50UmVjdCYg
cmVjdCwgY29uc3QgSW50U2l6ZSYgdG9wTGVmdCwgY29uc3QgSW50U2l6ZSYgdG9wUmlnaHQsIGNv
bnN0IEludFNpemUmIGJvdHRvbUxlZnQsIGNvbnN0IEludFNpemUmIGJvdHRvbVJpZ2h0LCBjb25z
dCBDb2xvciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKQEAgLTc0MSw2ICs3NTYsMTEg
QEAgUGxhdGZvcm1QYXRoKiBHcmFwaGljc0NvbnRleHQ6OmN1cnJlbnRQYXRoKCkKICAgICByZXR1
cm4gJm1fZGF0YS0+Y3VycmVudFBhdGg7CiB9CiAKK0NvbnRleHRTaGFkb3cqIEdyYXBoaWNzQ29u
dGV4dDo6Y29udGV4dFNoYWRvdygpCit7CisgICAgcmV0dXJuICZtX2RhdGEtPnNoYWRvdzsKK30K
Kwogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsaXAoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewog
ICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65037</attachid>
            <date>2010-08-21 16:57:04 -0700</date>
            <delta_ts>2010-08-21 18:19:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44380-20100821165703.patch</filename>
            <type>text/plain</type>
            <size>10387</size>
            <attacher name="Ariya Hidayat">ariya.hidayat</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDcxNmYyN2FhNmQwYjE4ZTExMjc4YTgyNGY5ODMzZjczMWQwYjljYi4uZGI0ZDNkNTE3YTgwYmJl
M2QyNTZjNWM1MjIyNGNhMGJmN2ZmYTE3OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNyBAQAogMjAxMC0wOC0yMSAgQXJp
eWEgSGlkYXlhdCAgPGFyaXlhQHNlbmNoYS5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBMYXllciBhcHByb2FjaCB0byBzdXBwb3J0IGdl
bmVyaWMgc2hhZG93IGhhbmRsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00NDM4MAorCisgICAgICAgIFRoZSBwYWlyIGJlZ2luU2hhZG93TGF5ZXIg
YW5kIGVuZFNoYWRvd0xheWVyIGNyZWF0ZXMgYSB0ZW1wb3JhcnkgaW1hZ2UKKyAgICAgICAgd2hl
cmUgdGhlIGNhbGxlciBjYW4gZHJhdyBvbnRvLCB1c2luZyB0aGUgcmV0dXJuZWQgUVBhaW50ZXIu
IFdoZW4KKyAgICAgICAgZW5kU2hhZG93TGF5ZXIgaXMgY2FsbGVkLCB0aGUgdGVtcG9yYXJ5IGlt
YWdlIHdpbGwgYmUgZmlsdGVyZWQsIHVzaW5nCisgICAgICAgIHRoZSBzcGVjaWZpZWQgc2hhZG93
IGNvbG9yIGFuZCBibHVyIHJhZGl1cywgYW5kIGRyYXduIHRvIHRoZSBncmFwaGljcworICAgICAg
ICBjb250ZXh0LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvQ29udGV4dFNoYWRvdy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZXh0U2hhZG93OjpiZWdpblNoYWRvd0xheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRleHRTaGFkb3c6OmVuZFNoYWRvd0xheWVyKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9xdC9Db250ZXh0U2hhZG93Lmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpmaWxsUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQ6OmNvbnRleHRTaGFkb3cpOgorCisyMDEwLTA4LTIxICBBcml5YSBIaWRheWF0ICA8YXJpeWFA
c2VuY2hhLmNvbT4KKwogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlh
bnNlbi4KIAogICAgICAgICBbUXRdIEZhc3RlciBib3VuZGluZyByZWN0IGZvciB0aGUgc2hhZG93
IGNsaXAgcmVnaW9uCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
aAppbmRleCBiMDA3OWU4OTA0ZTE0OGRjOGY3NTdlZjY3NDczMzg4NmZmODI3ZGExLi5lYWQyY2E1
NDg5MDlkM2RmMmNlNjUxOTg3NTdiOTJkZGZjZGJjOTY4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAgLTQ4LDYgKzQ4LDkgQEAgY2xhc3MgU3VyZmFj
ZU9wZW5WRzsKIHR5cGVkZWYgY2xhc3MgV2ViQ29yZTo6U3VyZmFjZU9wZW5WRyBQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dDsKICNlbGlmIFBMQVRGT1JNKFFUKQogI2luY2x1ZGUgPFFQYWludGVyPgor
bmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ29udGV4dFNoYWRvdzsKK30KIHR5cGVkZWYgUVBh
aW50ZXIgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQ7CiAjZWxpZiBQTEFURk9STShXWCkKIGNsYXNz
IHd4R0NEQzsKQEAgLTM5Niw2ICszOTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IHZvaWQgcHVzaFRyYW5zcGFyZW5jeUxheWVySW50ZXJuYWwoY29uc3QgUVJlY3QgJnJlY3QsIHFy
ZWFsIG9wYWNpdHksIFFQaXhtYXAmIGFscGhhTWFzayk7CiAgICAgICAgIFFQZW4gcGVuKCk7CiAg
ICAgICAgIHN0YXRpYyBRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlIHRvUXRDb21wb3NpdGlvbk1v
ZGUoQ29tcG9zaXRlT3BlcmF0b3Igb3ApOworICAgICAgICBDb250ZXh0U2hhZG93KiBjb250ZXh0
U2hhZG93KCk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvQ29udGV4dFNoYWRvdy5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0NvbnRleHRTaGFkb3cuY3BwCmluZGV4IDdmOWI0MjdmOGQ0YzU0OTg2
YTA0Y2U3YzZjNTg0ZDlhNDNmNjgyYWEuLjFlYTBmNjE4NjIzNmMzNGQzMDQ1Nzc3YTJkNzUxYjIy
MTkyOTlkZWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvQ29udGV4
dFNoYWRvdy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Db250ZXh0U2hh
ZG93LmNwcApAQCAtMjY3LDYwICsyNjcsNjUgQEAgc3RhdGljIHZvaWQgc2hhZG93Qmx1cihRSW1h
Z2UmIGltYWdlLCBpbnQgcmFkaXVzLCBjb25zdCBRQ29sb3ImIHNoYWRvd0NvbG9yKQogICAgIHAu
ZW5kKCk7CiB9CiAKLXZvaWQgQ29udGV4dFNoYWRvdzo6ZHJhd1NoYWRvd1JlY3QoUVBhaW50ZXIq
IHAsIGNvbnN0IFFSZWN0RiYgcmVjdCkKK1FQYWludGVyKiBDb250ZXh0U2hhZG93OjpiZWdpblNo
YWRvd0xheWVyKFFQYWludGVyKiBwLCBjb25zdCBRUmVjdEYgJnJlY3QpCiB7Ci0gICAgaWYgKHR5
cGUgPT0gTm9TaGFkb3cpCi0gICAgICAgIHJldHVybjsKKyAgICAvLyBXZSBleHBhbmQgdGhlIGFy
ZWEgYnkgdGhlIGJsdXIgcmFkaXVzICogMiB0byBnaXZlIGV4dHJhIHNwYWNlCisgICAgLy8gZm9y
IHRoZSBibHVyIHRyYW5zaXRpb24uCisgICAgaW50IGV4dHJhID0gKHR5cGUgPT0gQmx1clNoYWRv
dykgPyBibHVyUmFkaXVzICogMiA6IDA7CiAKLSAgICBpZiAodHlwZSA9PSBCbHVyU2hhZG93KSB7
Ci0gICAgICAgIFFSZWN0RiBzaGFkb3dSZWN0ID0gcmVjdC50cmFuc2xhdGVkKG9mZnNldCk7Cisg
ICAgUVJlY3RGIHNoYWRvd1JlY3QgPSByZWN0LnRyYW5zbGF0ZWQob2Zmc2V0KTsKKyAgICBRUmVj
dEYgYnVmZmVyUmVjdCA9IHNoYWRvd1JlY3QuYWRqdXN0ZWQoLWV4dHJhLCAtZXh0cmEsIGV4dHJh
LCBleHRyYSk7CisgICAgbV9sYXllclJlY3QgPSBidWZmZXJSZWN0LnRvQWxpZ25lZFJlY3QoKTsK
IAotICAgICAgICAvLyBXZSBleHBhbmQgdGhlIGFyZWEgYnkgdGhlIGJsdXIgcmFkaXVzICogMiB0
byBnaXZlIGV4dHJhIHNwYWNlCi0gICAgICAgIC8vIGZvciB0aGUgYmx1ciB0cmFuc2l0aW9uLgot
ICAgICAgICBpbnQgZXh0cmEgPSBibHVyUmFkaXVzICogMjsKLSAgICAgICAgUVJlY3RGIGJ1ZmZl
clJlY3QgPSBzaGFkb3dSZWN0LmFkanVzdGVkKC1leHRyYSwgLWV4dHJhLCBleHRyYSwgZXh0cmEp
OwotICAgICAgICBRUmVjdCBhbGlnbmVkQnVmZmVyUmVjdCA9IGJ1ZmZlclJlY3QudG9BbGlnbmVk
UmVjdCgpOwotCi0gICAgICAgIFFSZWN0IGNsaXBSZWN0OwotICAgICAgICBpZiAocC0+aGFzQ2xp
cHBpbmcoKSkKKyAgICBRUmVjdCBjbGlwUmVjdDsKKyAgICBpZiAocC0+aGFzQ2xpcHBpbmcoKSkK
ICNpZiBRVF9WRVJTSU9OID49IFFUX1ZFUlNJT05fQ0hFQ0soNCwgOCwgMCkKLSAgICAgICAgICAg
IGNsaXBSZWN0ID0gcC0+Y2xpcEJvdW5kaW5nUmVjdCgpOworICAgICAgICBjbGlwUmVjdCA9IHAt
PmNsaXBCb3VuZGluZ1JlY3QoKTsKICNlbHNlCi0gICAgICAgICAgICBjbGlwUmVjdCA9IHAtPmNs
aXBSZWdpb24oKS5ib3VuZGluZ1JlY3QoKTsKKyAgICAgICAgY2xpcFJlY3QgPSBwLT5jbGlwUmVn
aW9uKCkuYm91bmRpbmdSZWN0KCk7CiAjZW5kaWYKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
Y2xpcFJlY3QgPSBwLT50cmFuc2Zvcm0oKS5pbnZlcnRlZCgpLm1hcFJlY3QocC0+d2luZG93KCkp
OworICAgIGVsc2UKKyAgICAgICAgY2xpcFJlY3QgPSBwLT50cmFuc2Zvcm0oKS5pbnZlcnRlZCgp
Lm1hcFJlY3QocC0+d2luZG93KCkpOwogCi0gICAgICAgIGlmICghY2xpcFJlY3QuY29udGFpbnMo
YWxpZ25lZEJ1ZmZlclJlY3QpKSB7CisgICAgaWYgKCFjbGlwUmVjdC5jb250YWlucyhtX2xheWVy
UmVjdCkpIHsKIAotICAgICAgICAgICAgLy8gTm8gbmVlZCB0byBoYXZlIHRoZSBidWZmZXIgbGFy
Z2VyIHRoYXQgdGhlIGNsaXAuCi0gICAgICAgICAgICBhbGlnbmVkQnVmZmVyUmVjdCA9IGFsaWdu
ZWRCdWZmZXJSZWN0LmludGVyc2VjdGVkKGNsaXBSZWN0KTsKLSAgICAgICAgICAgIGlmIChhbGln
bmVkQnVmZmVyUmVjdC5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAvLyBObyBuZWVkIHRvIGhhdmUgdGhlIGJ1ZmZlciBsYXJnZXIgdGhhdCB0aGUgY2xpcC4KKyAg
ICAgICAgbV9sYXllclJlY3QgPSBtX2xheWVyUmVjdC5pbnRlcnNlY3RlZChjbGlwUmVjdCk7Cisg
ICAgICAgIGlmIChtX2xheWVyUmVjdC5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gMDsK
IAotICAgICAgICAgICAgLy8gV2UgYWRqdXN0IGFnYWluIGJlY2F1c2UgdGhlIHBpeGVscyBhdCB0
aGUgYm9yZGVycyBhcmUgc3RpbGwKLSAgICAgICAgICAgIC8vIHBvdGVudGlhbGx5IGFmZmVjdGVk
IGJ5IHRoZSBwaXhlbHMgb3V0c2lkZSB0aGUgYnVmZmVyLgotICAgICAgICAgICAgYWxpZ25lZEJ1
ZmZlclJlY3QuYWRqdXN0KC1leHRyYSwgLWV4dHJhLCBleHRyYSwgZXh0cmEpOwotICAgICAgICB9
CisgICAgICAgIC8vIFdlIGFkanVzdCBhZ2FpbiBiZWNhdXNlIHRoZSBwaXhlbHMgYXQgdGhlIGJv
cmRlcnMgYXJlIHN0aWxsCisgICAgICAgIC8vIHBvdGVudGlhbGx5IGFmZmVjdGVkIGJ5IHRoZSBw
aXhlbHMgb3V0c2lkZSB0aGUgYnVmZmVyLgorICAgICAgICBpZiAodHlwZSA9PSBCbHVyU2hhZG93
KQorICAgICAgICAgICAgbV9sYXllclJlY3QuYWRqdXN0KC1leHRyYSwgLWV4dHJhLCBleHRyYSwg
ZXh0cmEpOworICAgIH0KIAotICAgICAgICBTaGFkb3dCdWZmZXIqIHNoYWRvd0J1ZmZlciA9IHNj
cmF0Y2hTaGFkb3dCdWZmZXIoKTsKLSAgICAgICAgUUltYWdlKiBzaGFkb3dJbWFnZSA9IHNoYWRv
d0J1ZmZlci0+c2NyYXRjaEltYWdlKGFsaWduZWRCdWZmZXJSZWN0LnNpemUoKSk7Ci0gICAgICAg
IFFQYWludGVyIHNoYWRvd1BhaW50ZXIoc2hhZG93SW1hZ2UpOworICAgIFNoYWRvd0J1ZmZlciog
c2hhZG93QnVmZmVyID0gc2NyYXRjaFNoYWRvd0J1ZmZlcigpOworICAgIFFJbWFnZSogc2hhZG93
SW1hZ2UgPSBzaGFkb3dCdWZmZXItPnNjcmF0Y2hJbWFnZShtX2xheWVyUmVjdC5zaXplKCkpOwor
ICAgIG1fbGF5ZXJJbWFnZSA9IFFJbWFnZSgqc2hhZG93SW1hZ2UpOwogCi0gICAgICAgIHNoYWRv
d1BhaW50ZXIuZmlsbFJlY3Qoc2hhZG93UmVjdC50cmFuc2xhdGVkKC1hbGlnbmVkQnVmZmVyUmVj
dC50b3BMZWZ0KCkpLCBjb2xvcik7Ci0gICAgICAgIHNoYWRvd1BhaW50ZXIuZW5kKCk7CisgICAg
bV9sYXllclBhaW50ZXIgPSBuZXcgUVBhaW50ZXI7CisgICAgbV9sYXllclBhaW50ZXItPmJlZ2lu
KCZtX2xheWVySW1hZ2UpOworICAgIG1fbGF5ZXJQYWludGVyLT50cmFuc2xhdGUob2Zmc2V0KTsK
IAotICAgICAgICBzaGFkb3dCbHVyKCpzaGFkb3dJbWFnZSwgYmx1clJhZGl1cywgY29sb3IpOwor
ICAgIC8vIFRoZSBvcmlnaW4gaXMgbm93IHRoZSB0b3AgbGVmdCBjb3JuZXIgb2YgdGhlIHNjcmF0
Y2ggaW1hZ2UuCisgICAgbV9sYXllclBhaW50ZXItPnRyYW5zbGF0ZSgtbV9sYXllclJlY3QudG9w
TGVmdCgpKTsKIAotICAgICAgICBwLT5kcmF3SW1hZ2UoYWxpZ25lZEJ1ZmZlclJlY3QudG9wTGVm
dCgpLCAqc2hhZG93SW1hZ2UpOworICAgIHJldHVybiBtX2xheWVyUGFpbnRlcjsKK30KIAotICAg
ICAgICBzaGFkb3dCdWZmZXItPnNjaGVkdWxlUHVyZ2UoKTsKK3ZvaWQgQ29udGV4dFNoYWRvdzo6
ZW5kU2hhZG93TGF5ZXIoUVBhaW50ZXIqIHApCit7CisgICAgbV9sYXllclBhaW50ZXItPmVuZCgp
OworICAgIGRlbGV0ZSBtX2xheWVyUGFpbnRlcjsKKyAgICBtX2xheWVyUGFpbnRlciA9IDA7CiAK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBpZiAodHlwZSA9PSBCbHVyU2hhZG93KQorICAg
ICAgICBzaGFkb3dCbHVyKG1fbGF5ZXJJbWFnZSwgYmx1clJhZGl1cywgY29sb3IpOwogCi0gICAg
cC0+ZmlsbFJlY3QocmVjdC50cmFuc2xhdGVkKG9mZnNldCksIGNvbG9yKTsKLX0KKyAgICBwLT5k
cmF3SW1hZ2UobV9sYXllclJlY3QudG9wTGVmdCgpLCBtX2xheWVySW1hZ2UpOwogCisgICAgc2Ny
YXRjaFNoYWRvd0J1ZmZlcigpLT5zY2hlZHVsZVB1cmdlKCk7Cit9CiAKIH0KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvQ29udGV4dFNoYWRvdy5oIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9xdC9Db250ZXh0U2hhZG93LmgKaW5kZXggZTExNGViYzg2NDUzMzQ1
MGVhMDg4YjZmOWZhMDBlOTY3MGU3YmQwNi4uNzE0MDM0MGQ3OGU0ZDQ4MjQ4Y2YwMWNmNzM2ZmQy
YjFkMDVhOTFkNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Db250
ZXh0U2hhZG93LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Db250ZXh0U2hh
ZG93LmgKQEAgLTU4LDEyICs1OCwzNSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNsZWFyKCk7CiAK
LSAgICAvLyBEcmF3cyB0aGUgc2hhZG93IGZvciBjb2xvcmVkIHJlY3RhbmdsZSAoY2FuJ3QgYmUg
ZmlsbGVkIHdpdGggcGF0dGVybgotICAgIC8vIG9yIGdyYWRpZW50KSBhY2NvcmRpbmcgdG8gdGhl
IHNoYWRvdyBwYXJhbWV0ZXJzLgotICAgIC8vIE5vdGU6ICdyZWN0JyBzcGVjaWZpZXMgdGhlIHJl
Y3RhbmdsZSB3aGljaCBjYXN0cyB0aGUgc2hhZG93LAotICAgIC8vIE5PVCB0aGUgYm91bmRpbmcg
Ym94IG9mIHRoZSBzaGFkb3cuCi0gICAgdm9pZCBkcmF3U2hhZG93UmVjdChRUGFpbnRlciogcCwg
Y29uc3QgUVJlY3RGJiByZWN0KTsKKyAgICAvLyBUaGUgcGFpciBiZWdpblNoYWRvd0xheWVyIGFu
ZCBlbmRTaGFkb3dMYXllciBjcmVhdGVzIGEgdGVtcG9yYXJ5IGltYWdlCisgICAgLy8gd2hlcmUg
dGhlIGNhbGxlciBjYW4gZHJhdyBvbnRvLCB1c2luZyB0aGUgcmV0dXJuZWQgUVBhaW50ZXIuIFRo
aXMKKyAgICAvLyBRUGFpbnRlciBpbnN0YW5jZSBtdXN0IGJlIHVzZWQgb25seSB0byBkcmF3IGJl
dHdlZW4gdGhlIGNhbGwgdG8KKyAgICAvLyBiZWdpblNoYWRvd0xheWVyIGFuZCBlbmRTaGFkb3dM
YXllci4KKyAgICAvLworICAgIC8vIE5vdGU6IG11bHRpcGxlL25lc3RlZCBzaGFkb3cgbGF5ZXIg
aXMgTk9UIGFsbG93ZWQuCisgICAgLy8KKyAgICAvLyBUaGUgY3VycmVudCBjbGlwIHJlZ2lvbiB3
aWxsIGJlIHVzZWQgdG8gb3B0aW1pemUgdGhlIHNpemUgb2YgdGhlCisgICAgLy8gdGVtcG9yYXJ5
IGltYWdlLiBUaHVzLCB0aGUgb3JpZ2luYWwgcGFpbnRlciBzaG91bGQgbm90IGNoYW5nZSBhbnkK
KyAgICAvLyBjbGlwcGluZyB1bnRpbCBlbmRTaGFkb3dMYXllci4KKyAgICAvLyBJZiB0aGUgc2hh
ZG93IHdpbGwgYmUgY29tcGxldGVseSBvdXRzaWRlIHRoZSBjbGlwcGluZyByZWdpb24sCisgICAg
Ly8gYmVnaW5TaGFkb3dMYXllciB3aWxsIHJldHVybiAwLgorICAgIC8vCisgICAgLy8gVGhlIHJl
dHVybmVkIFFQYWludGVyIHdpbGwgaGF2ZSB0aGUgdHJhbnNmb3JtYXRpb24gbWF0cml4IGFuZCBj
bGlwcGluZworICAgIC8vIHByb3Blcmx5IGluaXRpYWxpemVkIHRvIHN0YXJ0IGRvaW5nIHRoZSBw
YWludGluZyAobm8gbmVlZCB0byBhY2NvdW50CisgICAgLy8gZm9yIHRoZSBzaGFkb3cgb2Zmc2V0
KSwgaG93ZXZlciBpdCB3aWxsIG5vdCBoYXZlIHRoZSBzYW1lIHJlbmRlciBoaW50cywKKyAgICAv
LyBwZW4sIGJydXNoLCBldGMgYXMgdGhlIHBhc3NlZCBRUGFpbnRlci4gVGhpcyBpcyBpbnRlbnRp
b25hbCwgdXN1YWxseQorICAgIC8vIHNoYWRvdyBoYXMgZGlmZmVyZW50IHByb3BlcnRpZXMgdGhh
biB0aGUgc2hhcGUgd2hpY2ggY2FzdHMgdGhlIHNoYWRvdy4KKyAgICAvLworICAgIC8vIE9uY2Ug
ZW5kU2hhZG93TGF5ZXIgaXMgY2FsbGVkLCB0aGUgdGVtcG9yYXJ5IGltYWdlIHdpbGwgYmUgZHJh
d24KKyAgICAvLyB3aXRoIHRoZSBvcmlnaW5hbCBwYWludGVyLiBJZiBibHVyIHJhZGl1cyBpcyBz
cGVjaWZpZWQsIHRoZSBzaGFkb3cKKyAgICAvLyB3aWxsIGJlIGZpbHRlcmVkIGZpcnN0LgorICAg
IFFQYWludGVyKiBiZWdpblNoYWRvd0xheWVyKFFQYWludGVyKiBwLCBjb25zdCBRUmVjdEYmIHJl
Y3QpOworICAgIHZvaWQgZW5kU2hhZG93TGF5ZXIoUVBhaW50ZXIqIHApOwogCitwcml2YXRlOgor
ICAgIFFSZWN0IG1fbGF5ZXJSZWN0OworICAgIFFJbWFnZSBtX2xheWVySW1hZ2U7CisgICAgUVBh
aW50ZXIqIG1fbGF5ZXJQYWludGVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHRRdC5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcApp
bmRleCA4NDBlZjAyYTEyODM5YmNkZWU4NDc2ZmMzYWY1NTQ2MGFiNDUzNTg4Li42N2ZmZWFlMTQ5
OTQ3NjVjMjMwMDllZDllNGQ2MDYyYjNmMzJmZTY1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcApAQCAtNjk1LDExICs2OTUsMjYg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwg
Y29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclMKIAogICAgIG1fZGF0YS0+c29saWRDb2xvci5zZXRD
b2xvcihjb2xvcik7CiAgICAgUVBhaW50ZXIqIHAgPSBtX2RhdGEtPnAoKTsKKyAgICBRUmVjdEYg
bm9ybWFsaXplZFJlY3QgPSByZWN0Lm5vcm1hbGl6ZWQoKTsKIAotICAgIGlmIChtX2RhdGEtPmhh
c1NoYWRvdygpKQotICAgICAgICBtX2RhdGEtPnNoYWRvdy5kcmF3U2hhZG93UmVjdChwLCByZWN0
KTsKKyAgICBpZiAoVU5MSUtFTFkobV9kYXRhLT5oYXNTaGFkb3coKSkpIHsKKyAgICAgICAgQ29u
dGV4dFNoYWRvdyogc2hhZG93ID0gY29udGV4dFNoYWRvdygpOwogCi0gICAgcC0+ZmlsbFJlY3Qo
cmVjdCwgbV9kYXRhLT5zb2xpZENvbG9yKTsKKyAgICAgICAgaWYgKHNoYWRvdy0+dHlwZSAhPSBD
b250ZXh0U2hhZG93OjpCbHVyU2hhZG93KSB7CisgICAgICAgICAgICAvLyBXZSBkbyBub3QgbmVl
ZCBhbnkgbGF5ZXIgZm9yIHNpbXBsZSBzaGFkb3cuCisgICAgICAgICAgICBRQ29sb3Igc2hhZG93
Q29sb3IgPSBzaGFkb3ctPmNvbG9yOworICAgICAgICAgICAgc2hhZG93Q29sb3Iuc2V0QWxwaGEo
Y29sb3IuYWxwaGEoKSk7CisgICAgICAgICAgICBwLT5maWxsUmVjdChub3JtYWxpemVkUmVjdC50
cmFuc2xhdGVkKG1fZGF0YS0+c2hhZG93Lm9mZnNldCksIHNoYWRvd0NvbG9yKTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIFFQYWludGVyKiBzaGFkb3dQYWludGVyID0gc2hhZG93LT5i
ZWdpblNoYWRvd0xheWVyKHAsIG5vcm1hbGl6ZWRSZWN0KTsKKyAgICAgICAgICAgIGlmIChzaGFk
b3dQYWludGVyKSB7CisgICAgICAgICAgICAgICAgc2hhZG93UGFpbnRlci0+ZmlsbFJlY3Qobm9y
bWFsaXplZFJlY3QsIGNvbG9yKTsKKyAgICAgICAgICAgICAgICBzaGFkb3ctPmVuZFNoYWRvd0xh
eWVyKHApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcC0+ZmlsbFJl
Y3Qobm9ybWFsaXplZFJlY3QsIG1fZGF0YS0+c29saWRDb2xvcik7CiB9CiAKIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpmaWxsUm91bmRlZFJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgSW50
U2l6ZSYgdG9wTGVmdCwgY29uc3QgSW50U2l6ZSYgdG9wUmlnaHQsIGNvbnN0IEludFNpemUmIGJv
dHRvbUxlZnQsIGNvbnN0IEludFNpemUmIGJvdHRvbVJpZ2h0LCBjb25zdCBDb2xvciYgY29sb3Is
IENvbG9yU3BhY2UgY29sb3JTcGFjZSkKQEAgLTc0MSw2ICs3NTYsMTEgQEAgUGxhdGZvcm1QYXRo
KiBHcmFwaGljc0NvbnRleHQ6OmN1cnJlbnRQYXRoKCkKICAgICByZXR1cm4gJm1fZGF0YS0+Y3Vy
cmVudFBhdGg7CiB9CiAKK0NvbnRleHRTaGFkb3cqIEdyYXBoaWNzQ29udGV4dDo6Y29udGV4dFNo
YWRvdygpCit7CisgICAgcmV0dXJuICZtX2RhdGEtPnNoYWRvdzsKK30KKwogdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OmNsaXAoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewogICAgIGlmIChwYWludGlu
Z0Rpc2FibGVkKCkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65038</attachid>
            <date>2010-08-21 18:19:19 -0700</date>
            <delta_ts>2010-08-22 00:14:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44380-20100821181917.patch</filename>
            <type>text/plain</type>
            <size>10367</size>
            <attacher name="Ariya Hidayat">ariya.hidayat</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDcxNmYyN2FhNmQwYjE4ZTExMjc4YTgyNGY5ODMzZjczMWQwYjljYi4uZGI0ZDNkNTE3YTgwYmJl
M2QyNTZjNWM1MjIyNGNhMGJmN2ZmYTE3OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNyBAQAogMjAxMC0wOC0yMSAgQXJp
eWEgSGlkYXlhdCAgPGFyaXlhQHNlbmNoYS5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBMYXllciBhcHByb2FjaCB0byBzdXBwb3J0IGdl
bmVyaWMgc2hhZG93IGhhbmRsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00NDM4MAorCisgICAgICAgIFRoZSBwYWlyIGJlZ2luU2hhZG93TGF5ZXIg
YW5kIGVuZFNoYWRvd0xheWVyIGNyZWF0ZXMgYSB0ZW1wb3JhcnkgaW1hZ2UKKyAgICAgICAgd2hl
cmUgdGhlIGNhbGxlciBjYW4gZHJhdyBvbnRvLCB1c2luZyB0aGUgcmV0dXJuZWQgUVBhaW50ZXIu
IFdoZW4KKyAgICAgICAgZW5kU2hhZG93TGF5ZXIgaXMgY2FsbGVkLCB0aGUgdGVtcG9yYXJ5IGlt
YWdlIHdpbGwgYmUgZmlsdGVyZWQsIHVzaW5nCisgICAgICAgIHRoZSBzcGVjaWZpZWQgc2hhZG93
IGNvbG9yIGFuZCBibHVyIHJhZGl1cywgYW5kIGRyYXduIHRvIHRoZSBncmFwaGljcworICAgICAg
ICBjb250ZXh0LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvQ29udGV4dFNoYWRvdy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZXh0U2hhZG93OjpiZWdpblNoYWRvd0xheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRleHRTaGFkb3c6OmVuZFNoYWRvd0xheWVyKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9xdC9Db250ZXh0U2hhZG93Lmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpmaWxsUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQ6OmNvbnRleHRTaGFkb3cpOgorCisyMDEwLTA4LTIxICBBcml5YSBIaWRheWF0ICA8YXJpeWFA
c2VuY2hhLmNvbT4KKwogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlh
bnNlbi4KIAogICAgICAgICBbUXRdIEZhc3RlciBib3VuZGluZyByZWN0IGZvciB0aGUgc2hhZG93
IGNsaXAgcmVnaW9uCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
aAppbmRleCBiMDA3OWU4OTA0ZTE0OGRjOGY3NTdlZjY3NDczMzg4NmZmODI3ZGExLi5lYWQyY2E1
NDg5MDlkM2RmMmNlNjUxOTg3NTdiOTJkZGZjZGJjOTY4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAgLTQ4LDYgKzQ4LDkgQEAgY2xhc3MgU3VyZmFj
ZU9wZW5WRzsKIHR5cGVkZWYgY2xhc3MgV2ViQ29yZTo6U3VyZmFjZU9wZW5WRyBQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dDsKICNlbGlmIFBMQVRGT1JNKFFUKQogI2luY2x1ZGUgPFFQYWludGVyPgor
bmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ29udGV4dFNoYWRvdzsKK30KIHR5cGVkZWYgUVBh
aW50ZXIgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQ7CiAjZWxpZiBQTEFURk9STShXWCkKIGNsYXNz
IHd4R0NEQzsKQEAgLTM5Niw2ICszOTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IHZvaWQgcHVzaFRyYW5zcGFyZW5jeUxheWVySW50ZXJuYWwoY29uc3QgUVJlY3QgJnJlY3QsIHFy
ZWFsIG9wYWNpdHksIFFQaXhtYXAmIGFscGhhTWFzayk7CiAgICAgICAgIFFQZW4gcGVuKCk7CiAg
ICAgICAgIHN0YXRpYyBRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlIHRvUXRDb21wb3NpdGlvbk1v
ZGUoQ29tcG9zaXRlT3BlcmF0b3Igb3ApOworICAgICAgICBDb250ZXh0U2hhZG93KiBjb250ZXh0
U2hhZG93KCk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvQ29udGV4dFNoYWRvdy5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0NvbnRleHRTaGFkb3cuY3BwCmluZGV4IDdmOWI0MjdmOGQ0YzU0OTg2
YTA0Y2U3YzZjNTg0ZDlhNDNmNjgyYWEuLjFlYTBmNjE4NjIzNmMzNGQzMDQ1Nzc3YTJkNzUxYjIy
MTkyOTlkZWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvQ29udGV4
dFNoYWRvdy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Db250ZXh0U2hh
ZG93LmNwcApAQCAtMjY3LDYwICsyNjcsNjUgQEAgc3RhdGljIHZvaWQgc2hhZG93Qmx1cihRSW1h
Z2UmIGltYWdlLCBpbnQgcmFkaXVzLCBjb25zdCBRQ29sb3ImIHNoYWRvd0NvbG9yKQogICAgIHAu
ZW5kKCk7CiB9CiAKLXZvaWQgQ29udGV4dFNoYWRvdzo6ZHJhd1NoYWRvd1JlY3QoUVBhaW50ZXIq
IHAsIGNvbnN0IFFSZWN0RiYgcmVjdCkKK1FQYWludGVyKiBDb250ZXh0U2hhZG93OjpiZWdpblNo
YWRvd0xheWVyKFFQYWludGVyKiBwLCBjb25zdCBRUmVjdEYgJnJlY3QpCiB7Ci0gICAgaWYgKHR5
cGUgPT0gTm9TaGFkb3cpCi0gICAgICAgIHJldHVybjsKKyAgICAvLyBXZSBleHBhbmQgdGhlIGFy
ZWEgYnkgdGhlIGJsdXIgcmFkaXVzICogMiB0byBnaXZlIGV4dHJhIHNwYWNlCisgICAgLy8gZm9y
IHRoZSBibHVyIHRyYW5zaXRpb24uCisgICAgaW50IGV4dHJhID0gKHR5cGUgPT0gQmx1clNoYWRv
dykgPyBibHVyUmFkaXVzICogMiA6IDA7CiAKLSAgICBpZiAodHlwZSA9PSBCbHVyU2hhZG93KSB7
Ci0gICAgICAgIFFSZWN0RiBzaGFkb3dSZWN0ID0gcmVjdC50cmFuc2xhdGVkKG9mZnNldCk7Cisg
ICAgUVJlY3RGIHNoYWRvd1JlY3QgPSByZWN0LnRyYW5zbGF0ZWQob2Zmc2V0KTsKKyAgICBRUmVj
dEYgYnVmZmVyUmVjdCA9IHNoYWRvd1JlY3QuYWRqdXN0ZWQoLWV4dHJhLCAtZXh0cmEsIGV4dHJh
LCBleHRyYSk7CisgICAgbV9sYXllclJlY3QgPSBidWZmZXJSZWN0LnRvQWxpZ25lZFJlY3QoKTsK
IAotICAgICAgICAvLyBXZSBleHBhbmQgdGhlIGFyZWEgYnkgdGhlIGJsdXIgcmFkaXVzICogMiB0
byBnaXZlIGV4dHJhIHNwYWNlCi0gICAgICAgIC8vIGZvciB0aGUgYmx1ciB0cmFuc2l0aW9uLgot
ICAgICAgICBpbnQgZXh0cmEgPSBibHVyUmFkaXVzICogMjsKLSAgICAgICAgUVJlY3RGIGJ1ZmZl
clJlY3QgPSBzaGFkb3dSZWN0LmFkanVzdGVkKC1leHRyYSwgLWV4dHJhLCBleHRyYSwgZXh0cmEp
OwotICAgICAgICBRUmVjdCBhbGlnbmVkQnVmZmVyUmVjdCA9IGJ1ZmZlclJlY3QudG9BbGlnbmVk
UmVjdCgpOwotCi0gICAgICAgIFFSZWN0IGNsaXBSZWN0OwotICAgICAgICBpZiAocC0+aGFzQ2xp
cHBpbmcoKSkKKyAgICBRUmVjdCBjbGlwUmVjdDsKKyAgICBpZiAocC0+aGFzQ2xpcHBpbmcoKSkK
ICNpZiBRVF9WRVJTSU9OID49IFFUX1ZFUlNJT05fQ0hFQ0soNCwgOCwgMCkKLSAgICAgICAgICAg
IGNsaXBSZWN0ID0gcC0+Y2xpcEJvdW5kaW5nUmVjdCgpOworICAgICAgICBjbGlwUmVjdCA9IHAt
PmNsaXBCb3VuZGluZ1JlY3QoKTsKICNlbHNlCi0gICAgICAgICAgICBjbGlwUmVjdCA9IHAtPmNs
aXBSZWdpb24oKS5ib3VuZGluZ1JlY3QoKTsKKyAgICAgICAgY2xpcFJlY3QgPSBwLT5jbGlwUmVn
aW9uKCkuYm91bmRpbmdSZWN0KCk7CiAjZW5kaWYKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
Y2xpcFJlY3QgPSBwLT50cmFuc2Zvcm0oKS5pbnZlcnRlZCgpLm1hcFJlY3QocC0+d2luZG93KCkp
OworICAgIGVsc2UKKyAgICAgICAgY2xpcFJlY3QgPSBwLT50cmFuc2Zvcm0oKS5pbnZlcnRlZCgp
Lm1hcFJlY3QocC0+d2luZG93KCkpOwogCi0gICAgICAgIGlmICghY2xpcFJlY3QuY29udGFpbnMo
YWxpZ25lZEJ1ZmZlclJlY3QpKSB7CisgICAgaWYgKCFjbGlwUmVjdC5jb250YWlucyhtX2xheWVy
UmVjdCkpIHsKIAotICAgICAgICAgICAgLy8gTm8gbmVlZCB0byBoYXZlIHRoZSBidWZmZXIgbGFy
Z2VyIHRoYXQgdGhlIGNsaXAuCi0gICAgICAgICAgICBhbGlnbmVkQnVmZmVyUmVjdCA9IGFsaWdu
ZWRCdWZmZXJSZWN0LmludGVyc2VjdGVkKGNsaXBSZWN0KTsKLSAgICAgICAgICAgIGlmIChhbGln
bmVkQnVmZmVyUmVjdC5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAvLyBObyBuZWVkIHRvIGhhdmUgdGhlIGJ1ZmZlciBsYXJnZXIgdGhhdCB0aGUgY2xpcC4KKyAg
ICAgICAgbV9sYXllclJlY3QgPSBtX2xheWVyUmVjdC5pbnRlcnNlY3RlZChjbGlwUmVjdCk7Cisg
ICAgICAgIGlmIChtX2xheWVyUmVjdC5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gMDsK
IAotICAgICAgICAgICAgLy8gV2UgYWRqdXN0IGFnYWluIGJlY2F1c2UgdGhlIHBpeGVscyBhdCB0
aGUgYm9yZGVycyBhcmUgc3RpbGwKLSAgICAgICAgICAgIC8vIHBvdGVudGlhbGx5IGFmZmVjdGVk
IGJ5IHRoZSBwaXhlbHMgb3V0c2lkZSB0aGUgYnVmZmVyLgotICAgICAgICAgICAgYWxpZ25lZEJ1
ZmZlclJlY3QuYWRqdXN0KC1leHRyYSwgLWV4dHJhLCBleHRyYSwgZXh0cmEpOwotICAgICAgICB9
CisgICAgICAgIC8vIFdlIGFkanVzdCBhZ2FpbiBiZWNhdXNlIHRoZSBwaXhlbHMgYXQgdGhlIGJv
cmRlcnMgYXJlIHN0aWxsCisgICAgICAgIC8vIHBvdGVudGlhbGx5IGFmZmVjdGVkIGJ5IHRoZSBw
aXhlbHMgb3V0c2lkZSB0aGUgYnVmZmVyLgorICAgICAgICBpZiAodHlwZSA9PSBCbHVyU2hhZG93
KQorICAgICAgICAgICAgbV9sYXllclJlY3QuYWRqdXN0KC1leHRyYSwgLWV4dHJhLCBleHRyYSwg
ZXh0cmEpOworICAgIH0KIAotICAgICAgICBTaGFkb3dCdWZmZXIqIHNoYWRvd0J1ZmZlciA9IHNj
cmF0Y2hTaGFkb3dCdWZmZXIoKTsKLSAgICAgICAgUUltYWdlKiBzaGFkb3dJbWFnZSA9IHNoYWRv
d0J1ZmZlci0+c2NyYXRjaEltYWdlKGFsaWduZWRCdWZmZXJSZWN0LnNpemUoKSk7Ci0gICAgICAg
IFFQYWludGVyIHNoYWRvd1BhaW50ZXIoc2hhZG93SW1hZ2UpOworICAgIFNoYWRvd0J1ZmZlciog
c2hhZG93QnVmZmVyID0gc2NyYXRjaFNoYWRvd0J1ZmZlcigpOworICAgIFFJbWFnZSogc2hhZG93
SW1hZ2UgPSBzaGFkb3dCdWZmZXItPnNjcmF0Y2hJbWFnZShtX2xheWVyUmVjdC5zaXplKCkpOwor
ICAgIG1fbGF5ZXJJbWFnZSA9IFFJbWFnZSgqc2hhZG93SW1hZ2UpOwogCi0gICAgICAgIHNoYWRv
d1BhaW50ZXIuZmlsbFJlY3Qoc2hhZG93UmVjdC50cmFuc2xhdGVkKC1hbGlnbmVkQnVmZmVyUmVj
dC50b3BMZWZ0KCkpLCBjb2xvcik7Ci0gICAgICAgIHNoYWRvd1BhaW50ZXIuZW5kKCk7CisgICAg
bV9sYXllclBhaW50ZXIgPSBuZXcgUVBhaW50ZXI7CisgICAgbV9sYXllclBhaW50ZXItPmJlZ2lu
KCZtX2xheWVySW1hZ2UpOworICAgIG1fbGF5ZXJQYWludGVyLT50cmFuc2xhdGUob2Zmc2V0KTsK
IAotICAgICAgICBzaGFkb3dCbHVyKCpzaGFkb3dJbWFnZSwgYmx1clJhZGl1cywgY29sb3IpOwor
ICAgIC8vIFRoZSBvcmlnaW4gaXMgbm93IHRoZSB0b3AgbGVmdCBjb3JuZXIgb2YgdGhlIHNjcmF0
Y2ggaW1hZ2UuCisgICAgbV9sYXllclBhaW50ZXItPnRyYW5zbGF0ZSgtbV9sYXllclJlY3QudG9w
TGVmdCgpKTsKIAotICAgICAgICBwLT5kcmF3SW1hZ2UoYWxpZ25lZEJ1ZmZlclJlY3QudG9wTGVm
dCgpLCAqc2hhZG93SW1hZ2UpOworICAgIHJldHVybiBtX2xheWVyUGFpbnRlcjsKK30KIAotICAg
ICAgICBzaGFkb3dCdWZmZXItPnNjaGVkdWxlUHVyZ2UoKTsKK3ZvaWQgQ29udGV4dFNoYWRvdzo6
ZW5kU2hhZG93TGF5ZXIoUVBhaW50ZXIqIHApCit7CisgICAgbV9sYXllclBhaW50ZXItPmVuZCgp
OworICAgIGRlbGV0ZSBtX2xheWVyUGFpbnRlcjsKKyAgICBtX2xheWVyUGFpbnRlciA9IDA7CiAK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBpZiAodHlwZSA9PSBCbHVyU2hhZG93KQorICAg
ICAgICBzaGFkb3dCbHVyKG1fbGF5ZXJJbWFnZSwgYmx1clJhZGl1cywgY29sb3IpOwogCi0gICAg
cC0+ZmlsbFJlY3QocmVjdC50cmFuc2xhdGVkKG9mZnNldCksIGNvbG9yKTsKLX0KKyAgICBwLT5k
cmF3SW1hZ2UobV9sYXllclJlY3QudG9wTGVmdCgpLCBtX2xheWVySW1hZ2UpOwogCisgICAgc2Ny
YXRjaFNoYWRvd0J1ZmZlcigpLT5zY2hlZHVsZVB1cmdlKCk7Cit9CiAKIH0KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvQ29udGV4dFNoYWRvdy5oIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9xdC9Db250ZXh0U2hhZG93LmgKaW5kZXggZTExNGViYzg2NDUzMzQ1
MGVhMDg4YjZmOWZhMDBlOTY3MGU3YmQwNi4uNzE0MDM0MGQ3OGU0ZDQ4MjQ4Y2YwMWNmNzM2ZmQy
YjFkMDVhOTFkNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Db250
ZXh0U2hhZG93LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Db250ZXh0U2hh
ZG93LmgKQEAgLTU4LDEyICs1OCwzNSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNsZWFyKCk7CiAK
LSAgICAvLyBEcmF3cyB0aGUgc2hhZG93IGZvciBjb2xvcmVkIHJlY3RhbmdsZSAoY2FuJ3QgYmUg
ZmlsbGVkIHdpdGggcGF0dGVybgotICAgIC8vIG9yIGdyYWRpZW50KSBhY2NvcmRpbmcgdG8gdGhl
IHNoYWRvdyBwYXJhbWV0ZXJzLgotICAgIC8vIE5vdGU6ICdyZWN0JyBzcGVjaWZpZXMgdGhlIHJl
Y3RhbmdsZSB3aGljaCBjYXN0cyB0aGUgc2hhZG93LAotICAgIC8vIE5PVCB0aGUgYm91bmRpbmcg
Ym94IG9mIHRoZSBzaGFkb3cuCi0gICAgdm9pZCBkcmF3U2hhZG93UmVjdChRUGFpbnRlciogcCwg
Y29uc3QgUVJlY3RGJiByZWN0KTsKKyAgICAvLyBUaGUgcGFpciBiZWdpblNoYWRvd0xheWVyIGFu
ZCBlbmRTaGFkb3dMYXllciBjcmVhdGVzIGEgdGVtcG9yYXJ5IGltYWdlCisgICAgLy8gd2hlcmUg
dGhlIGNhbGxlciBjYW4gZHJhdyBvbnRvLCB1c2luZyB0aGUgcmV0dXJuZWQgUVBhaW50ZXIuIFRo
aXMKKyAgICAvLyBRUGFpbnRlciBpbnN0YW5jZSBtdXN0IGJlIHVzZWQgb25seSB0byBkcmF3IGJl
dHdlZW4gdGhlIGNhbGwgdG8KKyAgICAvLyBiZWdpblNoYWRvd0xheWVyIGFuZCBlbmRTaGFkb3dM
YXllci4KKyAgICAvLworICAgIC8vIE5vdGU6IG11bHRpcGxlL25lc3RlZCBzaGFkb3cgbGF5ZXIg
aXMgTk9UIGFsbG93ZWQuCisgICAgLy8KKyAgICAvLyBUaGUgY3VycmVudCBjbGlwIHJlZ2lvbiB3
aWxsIGJlIHVzZWQgdG8gb3B0aW1pemUgdGhlIHNpemUgb2YgdGhlCisgICAgLy8gdGVtcG9yYXJ5
IGltYWdlLiBUaHVzLCB0aGUgb3JpZ2luYWwgcGFpbnRlciBzaG91bGQgbm90IGNoYW5nZSBhbnkK
KyAgICAvLyBjbGlwcGluZyB1bnRpbCBlbmRTaGFkb3dMYXllci4KKyAgICAvLyBJZiB0aGUgc2hh
ZG93IHdpbGwgYmUgY29tcGxldGVseSBvdXRzaWRlIHRoZSBjbGlwcGluZyByZWdpb24sCisgICAg
Ly8gYmVnaW5TaGFkb3dMYXllciB3aWxsIHJldHVybiAwLgorICAgIC8vCisgICAgLy8gVGhlIHJl
dHVybmVkIFFQYWludGVyIHdpbGwgaGF2ZSB0aGUgdHJhbnNmb3JtYXRpb24gbWF0cml4IGFuZCBj
bGlwcGluZworICAgIC8vIHByb3Blcmx5IGluaXRpYWxpemVkIHRvIHN0YXJ0IGRvaW5nIHRoZSBw
YWludGluZyAobm8gbmVlZCB0byBhY2NvdW50CisgICAgLy8gZm9yIHRoZSBzaGFkb3cgb2Zmc2V0
KSwgaG93ZXZlciBpdCB3aWxsIG5vdCBoYXZlIHRoZSBzYW1lIHJlbmRlciBoaW50cywKKyAgICAv
LyBwZW4sIGJydXNoLCBldGMgYXMgdGhlIHBhc3NlZCBRUGFpbnRlci4gVGhpcyBpcyBpbnRlbnRp
b25hbCwgdXN1YWxseQorICAgIC8vIHNoYWRvdyBoYXMgZGlmZmVyZW50IHByb3BlcnRpZXMgdGhh
biB0aGUgc2hhcGUgd2hpY2ggY2FzdHMgdGhlIHNoYWRvdy4KKyAgICAvLworICAgIC8vIE9uY2Ug
ZW5kU2hhZG93TGF5ZXIgaXMgY2FsbGVkLCB0aGUgdGVtcG9yYXJ5IGltYWdlIHdpbGwgYmUgZHJh
d24KKyAgICAvLyB3aXRoIHRoZSBvcmlnaW5hbCBwYWludGVyLiBJZiBibHVyIHJhZGl1cyBpcyBz
cGVjaWZpZWQsIHRoZSBzaGFkb3cKKyAgICAvLyB3aWxsIGJlIGZpbHRlcmVkIGZpcnN0LgorICAg
IFFQYWludGVyKiBiZWdpblNoYWRvd0xheWVyKFFQYWludGVyKiBwLCBjb25zdCBRUmVjdEYmIHJl
Y3QpOworICAgIHZvaWQgZW5kU2hhZG93TGF5ZXIoUVBhaW50ZXIqIHApOwogCitwcml2YXRlOgor
ICAgIFFSZWN0IG1fbGF5ZXJSZWN0OworICAgIFFJbWFnZSBtX2xheWVySW1hZ2U7CisgICAgUVBh
aW50ZXIqIG1fbGF5ZXJQYWludGVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHRRdC5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcApp
bmRleCA4NDBlZjAyYTEyODM5YmNkZWU4NDc2ZmMzYWY1NTQ2MGFiNDUzNTg4Li5jOGUyODNjMTJk
ZTlmMDUwNTZiN2ViMjlhZDk2NmJhMTQ4MWM3NzRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcApAQCAtNjk1LDExICs2OTUsMjUg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwg
Y29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclMKIAogICAgIG1fZGF0YS0+c29saWRDb2xvci5zZXRD
b2xvcihjb2xvcik7CiAgICAgUVBhaW50ZXIqIHAgPSBtX2RhdGEtPnAoKTsKKyAgICBRUmVjdEYg
bm9ybWFsaXplZFJlY3QgPSByZWN0Lm5vcm1hbGl6ZWQoKTsKIAotICAgIGlmIChtX2RhdGEtPmhh
c1NoYWRvdygpKQotICAgICAgICBtX2RhdGEtPnNoYWRvdy5kcmF3U2hhZG93UmVjdChwLCByZWN0
KTsKKyAgICBpZiAobV9kYXRhLT5oYXNTaGFkb3coKSkgeworICAgICAgICBDb250ZXh0U2hhZG93
KiBzaGFkb3cgPSBjb250ZXh0U2hhZG93KCk7CiAKLSAgICBwLT5maWxsUmVjdChyZWN0LCBtX2Rh
dGEtPnNvbGlkQ29sb3IpOworICAgICAgICBpZiAoc2hhZG93LT50eXBlICE9IENvbnRleHRTaGFk
b3c6OkJsdXJTaGFkb3cpIHsKKyAgICAgICAgICAgIC8vIFdlIGRvIG5vdCBuZWVkIGFueSBsYXll
ciBmb3Igc2ltcGxlIHNoYWRvdy4KKyAgICAgICAgICAgIHAtPmZpbGxSZWN0KG5vcm1hbGl6ZWRS
ZWN0LnRyYW5zbGF0ZWQoc2hhZG93LT5vZmZzZXQpLCBzaGFkb3ctPmNvbG9yKTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIFFQYWludGVyKiBzaGFkb3dQYWludGVyID0gc2hhZG93LT5i
ZWdpblNoYWRvd0xheWVyKHAsIG5vcm1hbGl6ZWRSZWN0KTsKKyAgICAgICAgICAgIGlmIChzaGFk
b3dQYWludGVyKSB7CisgICAgICAgICAgICAgICAgc2hhZG93UGFpbnRlci0+c2V0Q29tcG9zaXRp
b25Nb2RlKFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfU291cmNlKTsKKyAgICAgICAgICAgICAg
ICBzaGFkb3dQYWludGVyLT5maWxsUmVjdChub3JtYWxpemVkUmVjdCwgc2hhZG93LT5jb2xvcik7
CisgICAgICAgICAgICAgICAgc2hhZG93LT5lbmRTaGFkb3dMYXllcihwKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHAtPmZpbGxSZWN0KG5vcm1hbGl6ZWRSZWN0LCBt
X2RhdGEtPnNvbGlkQ29sb3IpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJvdW5k
ZWRSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IEludFNpemUmIHRvcExlZnQsIGNvbnN0
IEludFNpemUmIHRvcFJpZ2h0LCBjb25zdCBJbnRTaXplJiBib3R0b21MZWZ0LCBjb25zdCBJbnRT
aXplJiBib3R0b21SaWdodCwgY29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclNwYWNlIGNvbG9yU3Bh
Y2UpCkBAIC03NDEsNiArNzU1LDExIEBAIFBsYXRmb3JtUGF0aCogR3JhcGhpY3NDb250ZXh0Ojpj
dXJyZW50UGF0aCgpCiAgICAgcmV0dXJuICZtX2RhdGEtPmN1cnJlbnRQYXRoOwogfQogCitDb250
ZXh0U2hhZG93KiBHcmFwaGljc0NvbnRleHQ6OmNvbnRleHRTaGFkb3coKQoreworICAgIHJldHVy
biAmbV9kYXRhLT5zaGFkb3c7Cit9CisKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGlwKGNvbnN0
IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65050</attachid>
            <date>2010-08-22 00:14:31 -0700</date>
            <delta_ts>2010-08-22 00:16:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44380-20100822001430.patch</filename>
            <type>text/plain</type>
            <size>10367</size>
            <attacher name="Ariya Hidayat">ariya.hidayat</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDcxNmYyN2FhNmQwYjE4ZTExMjc4YTgyNGY5ODMzZjczMWQwYjljYi4uZGI0ZDNkNTE3YTgwYmJl
M2QyNTZjNWM1MjIyNGNhMGJmN2ZmYTE3OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNyBAQAogMjAxMC0wOC0yMSAgQXJp
eWEgSGlkYXlhdCAgPGFyaXlhQHNlbmNoYS5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBMYXllciBhcHByb2FjaCB0byBzdXBwb3J0IGdl
bmVyaWMgc2hhZG93IGhhbmRsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00NDM4MAorCisgICAgICAgIFRoZSBwYWlyIGJlZ2luU2hhZG93TGF5ZXIg
YW5kIGVuZFNoYWRvd0xheWVyIGNyZWF0ZXMgYSB0ZW1wb3JhcnkgaW1hZ2UKKyAgICAgICAgd2hl
cmUgdGhlIGNhbGxlciBjYW4gZHJhdyBvbnRvLCB1c2luZyB0aGUgcmV0dXJuZWQgUVBhaW50ZXIu
IFdoZW4KKyAgICAgICAgZW5kU2hhZG93TGF5ZXIgaXMgY2FsbGVkLCB0aGUgdGVtcG9yYXJ5IGlt
YWdlIHdpbGwgYmUgZmlsdGVyZWQsIHVzaW5nCisgICAgICAgIHRoZSBzcGVjaWZpZWQgc2hhZG93
IGNvbG9yIGFuZCBibHVyIHJhZGl1cywgYW5kIGRyYXduIHRvIHRoZSBncmFwaGljcworICAgICAg
ICBjb250ZXh0LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvQ29udGV4dFNoYWRvdy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZXh0U2hhZG93OjpiZWdpblNoYWRvd0xheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRleHRTaGFkb3c6OmVuZFNoYWRvd0xheWVyKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9xdC9Db250ZXh0U2hhZG93Lmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpmaWxsUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQ6OmNvbnRleHRTaGFkb3cpOgorCisyMDEwLTA4LTIxICBBcml5YSBIaWRheWF0ICA8YXJpeWFA
c2VuY2hhLmNvbT4KKwogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlh
bnNlbi4KIAogICAgICAgICBbUXRdIEZhc3RlciBib3VuZGluZyByZWN0IGZvciB0aGUgc2hhZG93
IGNsaXAgcmVnaW9uCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
aAppbmRleCBiMDA3OWU4OTA0ZTE0OGRjOGY3NTdlZjY3NDczMzg4NmZmODI3ZGExLi5lYWQyY2E1
NDg5MDlkM2RmMmNlNjUxOTg3NTdiOTJkZGZjZGJjOTY4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAgLTQ4LDYgKzQ4LDkgQEAgY2xhc3MgU3VyZmFj
ZU9wZW5WRzsKIHR5cGVkZWYgY2xhc3MgV2ViQ29yZTo6U3VyZmFjZU9wZW5WRyBQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dDsKICNlbGlmIFBMQVRGT1JNKFFUKQogI2luY2x1ZGUgPFFQYWludGVyPgor
bmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ29udGV4dFNoYWRvdzsKK30KIHR5cGVkZWYgUVBh
aW50ZXIgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQ7CiAjZWxpZiBQTEFURk9STShXWCkKIGNsYXNz
IHd4R0NEQzsKQEAgLTM5Niw2ICszOTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IHZvaWQgcHVzaFRyYW5zcGFyZW5jeUxheWVySW50ZXJuYWwoY29uc3QgUVJlY3QgJnJlY3QsIHFy
ZWFsIG9wYWNpdHksIFFQaXhtYXAmIGFscGhhTWFzayk7CiAgICAgICAgIFFQZW4gcGVuKCk7CiAg
ICAgICAgIHN0YXRpYyBRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlIHRvUXRDb21wb3NpdGlvbk1v
ZGUoQ29tcG9zaXRlT3BlcmF0b3Igb3ApOworICAgICAgICBDb250ZXh0U2hhZG93KiBjb250ZXh0
U2hhZG93KCk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvQ29udGV4dFNoYWRvdy5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0NvbnRleHRTaGFkb3cuY3BwCmluZGV4IDdmOWI0MjdmOGQ0YzU0OTg2
YTA0Y2U3YzZjNTg0ZDlhNDNmNjgyYWEuLjgzZTI5MWRkYjg5MzM5NGUxMWFlMjNjMDY3NzI2YWQx
YTg5MTg4ZjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvQ29udGV4
dFNoYWRvdy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Db250ZXh0U2hh
ZG93LmNwcApAQCAtMjY3LDYwICsyNjcsNjUgQEAgc3RhdGljIHZvaWQgc2hhZG93Qmx1cihRSW1h
Z2UmIGltYWdlLCBpbnQgcmFkaXVzLCBjb25zdCBRQ29sb3ImIHNoYWRvd0NvbG9yKQogICAgIHAu
ZW5kKCk7CiB9CiAKLXZvaWQgQ29udGV4dFNoYWRvdzo6ZHJhd1NoYWRvd1JlY3QoUVBhaW50ZXIq
IHAsIGNvbnN0IFFSZWN0RiYgcmVjdCkKK1FQYWludGVyKiBDb250ZXh0U2hhZG93OjpiZWdpblNo
YWRvd0xheWVyKFFQYWludGVyKiBwLCBjb25zdCBRUmVjdEYgJnJlY3QpCiB7Ci0gICAgaWYgKHR5
cGUgPT0gTm9TaGFkb3cpCi0gICAgICAgIHJldHVybjsKKyAgICAvLyBXZSBleHBhbmQgdGhlIGFy
ZWEgYnkgdGhlIGJsdXIgcmFkaXVzICogMiB0byBnaXZlIGV4dHJhIHNwYWNlCisgICAgLy8gZm9y
IHRoZSBibHVyIHRyYW5zaXRpb24uCisgICAgaW50IGV4dHJhID0gKHR5cGUgPT0gQmx1clNoYWRv
dykgPyBibHVyUmFkaXVzICogMiA6IDA7CiAKLSAgICBpZiAodHlwZSA9PSBCbHVyU2hhZG93KSB7
Ci0gICAgICAgIFFSZWN0RiBzaGFkb3dSZWN0ID0gcmVjdC50cmFuc2xhdGVkKG9mZnNldCk7Cisg
ICAgUVJlY3RGIHNoYWRvd1JlY3QgPSByZWN0LnRyYW5zbGF0ZWQob2Zmc2V0KTsKKyAgICBRUmVj
dEYgYnVmZmVyUmVjdCA9IHNoYWRvd1JlY3QuYWRqdXN0ZWQoLWV4dHJhLCAtZXh0cmEsIGV4dHJh
LCBleHRyYSk7CisgICAgbV9sYXllclJlY3QgPSBidWZmZXJSZWN0LnRvQWxpZ25lZFJlY3QoKTsK
IAotICAgICAgICAvLyBXZSBleHBhbmQgdGhlIGFyZWEgYnkgdGhlIGJsdXIgcmFkaXVzICogMiB0
byBnaXZlIGV4dHJhIHNwYWNlCi0gICAgICAgIC8vIGZvciB0aGUgYmx1ciB0cmFuc2l0aW9uLgot
ICAgICAgICBpbnQgZXh0cmEgPSBibHVyUmFkaXVzICogMjsKLSAgICAgICAgUVJlY3RGIGJ1ZmZl
clJlY3QgPSBzaGFkb3dSZWN0LmFkanVzdGVkKC1leHRyYSwgLWV4dHJhLCBleHRyYSwgZXh0cmEp
OwotICAgICAgICBRUmVjdCBhbGlnbmVkQnVmZmVyUmVjdCA9IGJ1ZmZlclJlY3QudG9BbGlnbmVk
UmVjdCgpOwotCi0gICAgICAgIFFSZWN0IGNsaXBSZWN0OwotICAgICAgICBpZiAocC0+aGFzQ2xp
cHBpbmcoKSkKKyAgICBRUmVjdCBjbGlwUmVjdDsKKyAgICBpZiAocC0+aGFzQ2xpcHBpbmcoKSkK
ICNpZiBRVF9WRVJTSU9OID49IFFUX1ZFUlNJT05fQ0hFQ0soNCwgOCwgMCkKLSAgICAgICAgICAg
IGNsaXBSZWN0ID0gcC0+Y2xpcEJvdW5kaW5nUmVjdCgpOworICAgICAgICBjbGlwUmVjdCA9IHAt
PmNsaXBCb3VuZGluZ1JlY3QoKTsKICNlbHNlCi0gICAgICAgICAgICBjbGlwUmVjdCA9IHAtPmNs
aXBSZWdpb24oKS5ib3VuZGluZ1JlY3QoKTsKKyAgICAgICAgY2xpcFJlY3QgPSBwLT5jbGlwUmVn
aW9uKCkuYm91bmRpbmdSZWN0KCk7CiAjZW5kaWYKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
Y2xpcFJlY3QgPSBwLT50cmFuc2Zvcm0oKS5pbnZlcnRlZCgpLm1hcFJlY3QocC0+d2luZG93KCkp
OworICAgIGVsc2UKKyAgICAgICAgY2xpcFJlY3QgPSBwLT50cmFuc2Zvcm0oKS5pbnZlcnRlZCgp
Lm1hcFJlY3QocC0+d2luZG93KCkpOwogCi0gICAgICAgIGlmICghY2xpcFJlY3QuY29udGFpbnMo
YWxpZ25lZEJ1ZmZlclJlY3QpKSB7CisgICAgaWYgKCFjbGlwUmVjdC5jb250YWlucyhtX2xheWVy
UmVjdCkpIHsKIAotICAgICAgICAgICAgLy8gTm8gbmVlZCB0byBoYXZlIHRoZSBidWZmZXIgbGFy
Z2VyIHRoYXQgdGhlIGNsaXAuCi0gICAgICAgICAgICBhbGlnbmVkQnVmZmVyUmVjdCA9IGFsaWdu
ZWRCdWZmZXJSZWN0LmludGVyc2VjdGVkKGNsaXBSZWN0KTsKLSAgICAgICAgICAgIGlmIChhbGln
bmVkQnVmZmVyUmVjdC5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAvLyBObyBuZWVkIHRvIGhhdmUgdGhlIGJ1ZmZlciBsYXJnZXIgdGhhbiB0aGUgY2xpcC4KKyAg
ICAgICAgbV9sYXllclJlY3QgPSBtX2xheWVyUmVjdC5pbnRlcnNlY3RlZChjbGlwUmVjdCk7Cisg
ICAgICAgIGlmIChtX2xheWVyUmVjdC5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gMDsK
IAotICAgICAgICAgICAgLy8gV2UgYWRqdXN0IGFnYWluIGJlY2F1c2UgdGhlIHBpeGVscyBhdCB0
aGUgYm9yZGVycyBhcmUgc3RpbGwKLSAgICAgICAgICAgIC8vIHBvdGVudGlhbGx5IGFmZmVjdGVk
IGJ5IHRoZSBwaXhlbHMgb3V0c2lkZSB0aGUgYnVmZmVyLgotICAgICAgICAgICAgYWxpZ25lZEJ1
ZmZlclJlY3QuYWRqdXN0KC1leHRyYSwgLWV4dHJhLCBleHRyYSwgZXh0cmEpOwotICAgICAgICB9
CisgICAgICAgIC8vIFdlIGFkanVzdCBhZ2FpbiBiZWNhdXNlIHRoZSBwaXhlbHMgYXQgdGhlIGJv
cmRlcnMgYXJlIHN0aWxsCisgICAgICAgIC8vIHBvdGVudGlhbGx5IGFmZmVjdGVkIGJ5IHRoZSBw
aXhlbHMgb3V0c2lkZSB0aGUgYnVmZmVyLgorICAgICAgICBpZiAodHlwZSA9PSBCbHVyU2hhZG93
KQorICAgICAgICAgICAgbV9sYXllclJlY3QuYWRqdXN0KC1leHRyYSwgLWV4dHJhLCBleHRyYSwg
ZXh0cmEpOworICAgIH0KIAotICAgICAgICBTaGFkb3dCdWZmZXIqIHNoYWRvd0J1ZmZlciA9IHNj
cmF0Y2hTaGFkb3dCdWZmZXIoKTsKLSAgICAgICAgUUltYWdlKiBzaGFkb3dJbWFnZSA9IHNoYWRv
d0J1ZmZlci0+c2NyYXRjaEltYWdlKGFsaWduZWRCdWZmZXJSZWN0LnNpemUoKSk7Ci0gICAgICAg
IFFQYWludGVyIHNoYWRvd1BhaW50ZXIoc2hhZG93SW1hZ2UpOworICAgIFNoYWRvd0J1ZmZlciog
c2hhZG93QnVmZmVyID0gc2NyYXRjaFNoYWRvd0J1ZmZlcigpOworICAgIFFJbWFnZSogc2hhZG93
SW1hZ2UgPSBzaGFkb3dCdWZmZXItPnNjcmF0Y2hJbWFnZShtX2xheWVyUmVjdC5zaXplKCkpOwor
ICAgIG1fbGF5ZXJJbWFnZSA9IFFJbWFnZSgqc2hhZG93SW1hZ2UpOwogCi0gICAgICAgIHNoYWRv
d1BhaW50ZXIuZmlsbFJlY3Qoc2hhZG93UmVjdC50cmFuc2xhdGVkKC1hbGlnbmVkQnVmZmVyUmVj
dC50b3BMZWZ0KCkpLCBjb2xvcik7Ci0gICAgICAgIHNoYWRvd1BhaW50ZXIuZW5kKCk7CisgICAg
bV9sYXllclBhaW50ZXIgPSBuZXcgUVBhaW50ZXI7CisgICAgbV9sYXllclBhaW50ZXItPmJlZ2lu
KCZtX2xheWVySW1hZ2UpOworICAgIG1fbGF5ZXJQYWludGVyLT50cmFuc2xhdGUob2Zmc2V0KTsK
IAotICAgICAgICBzaGFkb3dCbHVyKCpzaGFkb3dJbWFnZSwgYmx1clJhZGl1cywgY29sb3IpOwor
ICAgIC8vIFRoZSBvcmlnaW4gaXMgbm93IHRoZSB0b3AgbGVmdCBjb3JuZXIgb2YgdGhlIHNjcmF0
Y2ggaW1hZ2UuCisgICAgbV9sYXllclBhaW50ZXItPnRyYW5zbGF0ZSgtbV9sYXllclJlY3QudG9w
TGVmdCgpKTsKIAotICAgICAgICBwLT5kcmF3SW1hZ2UoYWxpZ25lZEJ1ZmZlclJlY3QudG9wTGVm
dCgpLCAqc2hhZG93SW1hZ2UpOworICAgIHJldHVybiBtX2xheWVyUGFpbnRlcjsKK30KIAotICAg
ICAgICBzaGFkb3dCdWZmZXItPnNjaGVkdWxlUHVyZ2UoKTsKK3ZvaWQgQ29udGV4dFNoYWRvdzo6
ZW5kU2hhZG93TGF5ZXIoUVBhaW50ZXIqIHApCit7CisgICAgbV9sYXllclBhaW50ZXItPmVuZCgp
OworICAgIGRlbGV0ZSBtX2xheWVyUGFpbnRlcjsKKyAgICBtX2xheWVyUGFpbnRlciA9IDA7CiAK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBpZiAodHlwZSA9PSBCbHVyU2hhZG93KQorICAg
ICAgICBzaGFkb3dCbHVyKG1fbGF5ZXJJbWFnZSwgYmx1clJhZGl1cywgY29sb3IpOwogCi0gICAg
cC0+ZmlsbFJlY3QocmVjdC50cmFuc2xhdGVkKG9mZnNldCksIGNvbG9yKTsKLX0KKyAgICBwLT5k
cmF3SW1hZ2UobV9sYXllclJlY3QudG9wTGVmdCgpLCBtX2xheWVySW1hZ2UpOwogCisgICAgc2Ny
YXRjaFNoYWRvd0J1ZmZlcigpLT5zY2hlZHVsZVB1cmdlKCk7Cit9CiAKIH0KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvQ29udGV4dFNoYWRvdy5oIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9xdC9Db250ZXh0U2hhZG93LmgKaW5kZXggZTExNGViYzg2NDUzMzQ1
MGVhMDg4YjZmOWZhMDBlOTY3MGU3YmQwNi4uNzE0MDM0MGQ3OGU0ZDQ4MjQ4Y2YwMWNmNzM2ZmQy
YjFkMDVhOTFkNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Db250
ZXh0U2hhZG93LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Db250ZXh0U2hh
ZG93LmgKQEAgLTU4LDEyICs1OCwzNSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNsZWFyKCk7CiAK
LSAgICAvLyBEcmF3cyB0aGUgc2hhZG93IGZvciBjb2xvcmVkIHJlY3RhbmdsZSAoY2FuJ3QgYmUg
ZmlsbGVkIHdpdGggcGF0dGVybgotICAgIC8vIG9yIGdyYWRpZW50KSBhY2NvcmRpbmcgdG8gdGhl
IHNoYWRvdyBwYXJhbWV0ZXJzLgotICAgIC8vIE5vdGU6ICdyZWN0JyBzcGVjaWZpZXMgdGhlIHJl
Y3RhbmdsZSB3aGljaCBjYXN0cyB0aGUgc2hhZG93LAotICAgIC8vIE5PVCB0aGUgYm91bmRpbmcg
Ym94IG9mIHRoZSBzaGFkb3cuCi0gICAgdm9pZCBkcmF3U2hhZG93UmVjdChRUGFpbnRlciogcCwg
Y29uc3QgUVJlY3RGJiByZWN0KTsKKyAgICAvLyBUaGUgcGFpciBiZWdpblNoYWRvd0xheWVyIGFu
ZCBlbmRTaGFkb3dMYXllciBjcmVhdGVzIGEgdGVtcG9yYXJ5IGltYWdlCisgICAgLy8gd2hlcmUg
dGhlIGNhbGxlciBjYW4gZHJhdyBvbnRvLCB1c2luZyB0aGUgcmV0dXJuZWQgUVBhaW50ZXIuIFRo
aXMKKyAgICAvLyBRUGFpbnRlciBpbnN0YW5jZSBtdXN0IGJlIHVzZWQgb25seSB0byBkcmF3IGJl
dHdlZW4gdGhlIGNhbGwgdG8KKyAgICAvLyBiZWdpblNoYWRvd0xheWVyIGFuZCBlbmRTaGFkb3dM
YXllci4KKyAgICAvLworICAgIC8vIE5vdGU6IG11bHRpcGxlL25lc3RlZCBzaGFkb3cgbGF5ZXIg
aXMgTk9UIGFsbG93ZWQuCisgICAgLy8KKyAgICAvLyBUaGUgY3VycmVudCBjbGlwIHJlZ2lvbiB3
aWxsIGJlIHVzZWQgdG8gb3B0aW1pemUgdGhlIHNpemUgb2YgdGhlCisgICAgLy8gdGVtcG9yYXJ5
IGltYWdlLiBUaHVzLCB0aGUgb3JpZ2luYWwgcGFpbnRlciBzaG91bGQgbm90IGNoYW5nZSBhbnkK
KyAgICAvLyBjbGlwcGluZyB1bnRpbCBlbmRTaGFkb3dMYXllci4KKyAgICAvLyBJZiB0aGUgc2hh
ZG93IHdpbGwgYmUgY29tcGxldGVseSBvdXRzaWRlIHRoZSBjbGlwcGluZyByZWdpb24sCisgICAg
Ly8gYmVnaW5TaGFkb3dMYXllciB3aWxsIHJldHVybiAwLgorICAgIC8vCisgICAgLy8gVGhlIHJl
dHVybmVkIFFQYWludGVyIHdpbGwgaGF2ZSB0aGUgdHJhbnNmb3JtYXRpb24gbWF0cml4IGFuZCBj
bGlwcGluZworICAgIC8vIHByb3Blcmx5IGluaXRpYWxpemVkIHRvIHN0YXJ0IGRvaW5nIHRoZSBw
YWludGluZyAobm8gbmVlZCB0byBhY2NvdW50CisgICAgLy8gZm9yIHRoZSBzaGFkb3cgb2Zmc2V0
KSwgaG93ZXZlciBpdCB3aWxsIG5vdCBoYXZlIHRoZSBzYW1lIHJlbmRlciBoaW50cywKKyAgICAv
LyBwZW4sIGJydXNoLCBldGMgYXMgdGhlIHBhc3NlZCBRUGFpbnRlci4gVGhpcyBpcyBpbnRlbnRp
b25hbCwgdXN1YWxseQorICAgIC8vIHNoYWRvdyBoYXMgZGlmZmVyZW50IHByb3BlcnRpZXMgdGhh
biB0aGUgc2hhcGUgd2hpY2ggY2FzdHMgdGhlIHNoYWRvdy4KKyAgICAvLworICAgIC8vIE9uY2Ug
ZW5kU2hhZG93TGF5ZXIgaXMgY2FsbGVkLCB0aGUgdGVtcG9yYXJ5IGltYWdlIHdpbGwgYmUgZHJh
d24KKyAgICAvLyB3aXRoIHRoZSBvcmlnaW5hbCBwYWludGVyLiBJZiBibHVyIHJhZGl1cyBpcyBz
cGVjaWZpZWQsIHRoZSBzaGFkb3cKKyAgICAvLyB3aWxsIGJlIGZpbHRlcmVkIGZpcnN0LgorICAg
IFFQYWludGVyKiBiZWdpblNoYWRvd0xheWVyKFFQYWludGVyKiBwLCBjb25zdCBRUmVjdEYmIHJl
Y3QpOworICAgIHZvaWQgZW5kU2hhZG93TGF5ZXIoUVBhaW50ZXIqIHApOwogCitwcml2YXRlOgor
ICAgIFFSZWN0IG1fbGF5ZXJSZWN0OworICAgIFFJbWFnZSBtX2xheWVySW1hZ2U7CisgICAgUVBh
aW50ZXIqIG1fbGF5ZXJQYWludGVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHRRdC5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcApp
bmRleCA4NDBlZjAyYTEyODM5YmNkZWU4NDc2ZmMzYWY1NTQ2MGFiNDUzNTg4Li5jOGUyODNjMTJk
ZTlmMDUwNTZiN2ViMjlhZDk2NmJhMTQ4MWM3NzRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcApAQCAtNjk1LDExICs2OTUsMjUg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwg
Y29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclMKIAogICAgIG1fZGF0YS0+c29saWRDb2xvci5zZXRD
b2xvcihjb2xvcik7CiAgICAgUVBhaW50ZXIqIHAgPSBtX2RhdGEtPnAoKTsKKyAgICBRUmVjdEYg
bm9ybWFsaXplZFJlY3QgPSByZWN0Lm5vcm1hbGl6ZWQoKTsKIAotICAgIGlmIChtX2RhdGEtPmhh
c1NoYWRvdygpKQotICAgICAgICBtX2RhdGEtPnNoYWRvdy5kcmF3U2hhZG93UmVjdChwLCByZWN0
KTsKKyAgICBpZiAobV9kYXRhLT5oYXNTaGFkb3coKSkgeworICAgICAgICBDb250ZXh0U2hhZG93
KiBzaGFkb3cgPSBjb250ZXh0U2hhZG93KCk7CiAKLSAgICBwLT5maWxsUmVjdChyZWN0LCBtX2Rh
dGEtPnNvbGlkQ29sb3IpOworICAgICAgICBpZiAoc2hhZG93LT50eXBlICE9IENvbnRleHRTaGFk
b3c6OkJsdXJTaGFkb3cpIHsKKyAgICAgICAgICAgIC8vIFdlIGRvIG5vdCBuZWVkIGFueSBsYXll
ciBmb3Igc2ltcGxlIHNoYWRvdy4KKyAgICAgICAgICAgIHAtPmZpbGxSZWN0KG5vcm1hbGl6ZWRS
ZWN0LnRyYW5zbGF0ZWQoc2hhZG93LT5vZmZzZXQpLCBzaGFkb3ctPmNvbG9yKTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIFFQYWludGVyKiBzaGFkb3dQYWludGVyID0gc2hhZG93LT5i
ZWdpblNoYWRvd0xheWVyKHAsIG5vcm1hbGl6ZWRSZWN0KTsKKyAgICAgICAgICAgIGlmIChzaGFk
b3dQYWludGVyKSB7CisgICAgICAgICAgICAgICAgc2hhZG93UGFpbnRlci0+c2V0Q29tcG9zaXRp
b25Nb2RlKFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfU291cmNlKTsKKyAgICAgICAgICAgICAg
ICBzaGFkb3dQYWludGVyLT5maWxsUmVjdChub3JtYWxpemVkUmVjdCwgc2hhZG93LT5jb2xvcik7
CisgICAgICAgICAgICAgICAgc2hhZG93LT5lbmRTaGFkb3dMYXllcihwKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHAtPmZpbGxSZWN0KG5vcm1hbGl6ZWRSZWN0LCBt
X2RhdGEtPnNvbGlkQ29sb3IpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJvdW5k
ZWRSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IEludFNpemUmIHRvcExlZnQsIGNvbnN0
IEludFNpemUmIHRvcFJpZ2h0LCBjb25zdCBJbnRTaXplJiBib3R0b21MZWZ0LCBjb25zdCBJbnRT
aXplJiBib3R0b21SaWdodCwgY29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclNwYWNlIGNvbG9yU3Bh
Y2UpCkBAIC03NDEsNiArNzU1LDExIEBAIFBsYXRmb3JtUGF0aCogR3JhcGhpY3NDb250ZXh0Ojpj
dXJyZW50UGF0aCgpCiAgICAgcmV0dXJuICZtX2RhdGEtPmN1cnJlbnRQYXRoOwogfQogCitDb250
ZXh0U2hhZG93KiBHcmFwaGljc0NvbnRleHQ6OmNvbnRleHRTaGFkb3coKQoreworICAgIHJldHVy
biAmbV9kYXRhLT5zaGFkb3c7Cit9CisKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGlwKGNvbnN0
IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQo=
</data>
<flag name="review"
          id="53733"
          type_id="1"
          status="+"
          setter="krit"
    />
          </attachment>
      

    </bug>

</bugzilla>